一种基于安卓系统的密钥存储方法及装置、数据加解密方法制造方法及图纸

技术编号:31824614 阅读:12 留言:0更新日期:2022-01-12 12:48
本发明专利技术提供了一种基于安卓系统的密钥存储方法及装置、数据加解密方法,属于网络安全领域。所述密钥存储方法采用Openssl算法作为Android客户端的加密工具,基于MacOS操作系统对Openssl算法进行编译,并加载至Android客户端;基于Android客户端编译并加载的Openssl算法,配置Android的本地工具开发包NDK的加密解密安全库;再将3DES

【技术实现步骤摘要】
一种基于安卓系统的密钥存储方法及装置、数据加解密方法


[0001]本专利技术属于网络安全领域,具体涉及一种基于安卓系统的密钥存储方法及装置、数据加解密方法。

技术介绍

[0002]随着网络的发展,数据传输和交换变得越来越频繁。如何在数据的存储、传输、交换及应用中确保数据的安全,变得越来越重要。尤其是对于涉及到用户个人信息的相关数据时,安全性变得更加重要。。
[0003]在Android客户端数据加密及解密中,密钥的保存方式很重要。现有技术中,基于安卓系统,通常将密钥存储在JAVA程序中。但是上述存储方式经容易让非法用户通过反汇编的方式分析出密钥算法,从而无法确保数据的安全性,存在一定的安全隐患。

技术实现思路

[0004]鉴于现有技术中的上述缺陷或不足,本专利技术旨在提供一种基于安卓系统的密钥存储方法及装置、数据加解密方法,将密钥分两部分存储,提高Android客户端密钥存储的安全性;同时为了提高此动态链接库的安全性,通过校验客户端打包证书来检测运行环境是否安全;最后,通过第三方安全应用软件对此动态链接库进行安全加固。
[0005]为了实现上述目的,本专利技术实施例采用如下技术方案:
[0006]第一方面,本专利技术实施例提供了一种基于安卓系统的密钥存储方法,所述密钥存储方法包括如下步骤:
[0007]步骤S1,采用Openssl算法作为Android客户端的加密工具,基于MacOS操作系统对Openssl算法进行编译,并加载至Android客户端;
[0008]步骤S2,基于Android客户端编译并加载的Openssl算法,配置 Android的本地工具开发包NDK的加密解密安全库;
[0009]步骤S3,以3DES

CBC模式下的三个密钥字符串为K1,K2,K3;其中,将密钥K1生成方式配置在JAVA代码内,将密钥K2和K3生成方式配置在Android客户端的所述NDK加密解密安全库内。
[0010]作为本专利技术的一个优选实施例,所述步骤S1的编译,具体步骤包括:
[0011]步骤S11,打开终端界面后,创建opensslbuildcompile文件夹并 CD进入此目录;
[0012]步骤S12,下载openssl安装压缩包,优选地,所述openssl安装压缩包版本为1.1.1g,然后对其使用tar命令完成解压缩;
[0013]步骤S13,下载Android NDK修订版14b,并解压缩;
[0014]步骤S14,创建openssl编译脚本openssl

android

arm.sh;
[0015]步骤S15,在openssl

android

arm.sh脚本内配置相应参数,指定至少一种应用程序二进制接口ABI架构,作为目标架构,且编译目标架构下的动态链接库文件;
[0016]步骤S16,执行openssl

android

arm.sh脚本,完成openssl编译,并在脚本文件配
置定义好的输出文件夹内找到目标架构下编译成功的文件夹,创建名为openssl

build

目标架构的文件夹,用来存放编译好的libcrypto.a,libssl.a静态库以及相关头文件。
[0017]作为本专利技术的一个优选实施例,在所述步骤S16执行 openssl

android

arm.sh脚本前,还包括:
[0018]将MacOS安全性与隐私调整为“任何来源”;
[0019]当没有发现该选项时,在终端内运行sudo spctl
‑‑
master

disable命令显示“任何来源”选项。
[0020]作为本专利技术的一个优选实施例,所述ABI架构包括armeabi、 armeabi

v7a、arm64

v8a和x86中的一种。
[0021]作为本专利技术的一个优选实施例,所述配置Android客户端的 NDK加密解密安全库,使用Android Studio新建一个Native工程,并做如下修改:
[0022]将openssl

build

目标架构的文件夹拷贝至该工程app目录下;
[0023]将工程src/main/cpp目录下CMakeLists.txt文件拷贝至app根目录下;
[0024]打开app目录下build.gradle文件,在defaultConfig节点内添加配置,指定该工程ABI架构为所述目标架构;
[0025]打开app目录下build.gradle文件,在android节点内添加配置,指定该工程cmake目录文件地址;
[0026]打开CMakeLists.txt,配置编译好的openssl

build

目标架构静态库及头文件路径;CMakeLists.txt详细配置可通过相关文件查询获得;
[0027]打开该原始工程native

lib.cpp文件;导入openssl/crypto.h头文件;在return语句内调用OpenSSL_version查看编译版本及配置是否正确;当正确编译且配置完成后运行该原始工程。
[0028]第二方面,本专利技术实施例还提供了一种基于上述密钥存储方法的数据加解密方法,所述数据加解密方法包括如下步骤:
[0029]步骤S4,基于Android客户端3DES

CBC模式,用户通过客户端发起http网络请求,客户端收到http网络请求后向本地加密系统请求数据加密;
[0030]步骤S5,客户端在本地加密系统中加载的Openssl算法,在JAVA 代码内生成密钥K1,在Android客户端的NDK加密解密安全库内生成密钥K2和K3,并组装密钥K1,K2和K3得到加密密钥,通过加密密钥对请求加密的数据进行加密,再向客户端返回加密数据;
[0031]步骤S6,客户端通过接口服务发送http网络请求,请求数据为加密状态;
[0032]步骤S7,接口服务通过Openssl算法对所述加密的http请求数据进行解密,并对http返回数据加密,再向客户端返回http网络请求,返回数据为加密状态;
[0033]步骤S8,客户端将所返回的加密状态的http网络请求数据发送给本地解密系统,请求数据解密;
[0034]步骤S9,客户端在本地解密系统中加载的Openssl算法,在JAVA 代码内生成密钥K1,在Android客户端的NDK加密解密安全库内生成密钥K2和K3,并组装密钥K1,K2和K3得到解密密钥,通过解密密钥对请求解密的数据进行解密,再向客户端返回解密数据;
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于安卓系统的密钥存储方法,其特征在于,所述密钥存储方法包括如下步骤:步骤S1,采用Openssl算法作为Android客户端的加密工具,基于MacOS操作系统对Openssl算法进行编译,并加载至Android客户端;步骤S2,基于Android客户端编译并加载的Openssl算法,配置Android的本地工具开发包NDK的加密解密安全库;步骤S3,以3DES

CBC模式下的三个密钥字符串为K1,K2,K3;其中,将密钥K1生成方式配置在JAVA代码内,将密钥K2和K3生成方式配置在Android客户端的所述NDK加密解密安全库内。2.根据权利要求1所述的密钥存储方法,其特征在于,所述步骤S1的编译,具体步骤包括:步骤S11,打开终端界面后,创建opensslbuildcompile文件夹并CD进入此目录;步骤S12,下载openssl安装压缩包,然后对所述openssl安装压缩包使用tar命令完成解压缩;步骤S13,下载Android NDK修订版14b,并解压缩;步骤S14,创建openssl编译脚本openssl

android

arm.sh;步骤S15,在openssl

android

arm.sh脚本内配置相应参数,指定至少一种应用程序二进制接口ABI架构,作为目标架构,且编译目标架构下的动态链接库文件;步骤S16,执行openssl

android

arm.sh脚本,完成openssl编译,并在脚本文件配置定义好的输出文件夹内找到目标架构下编译成功的文件夹,创建名为openssl

build

目标架构的文件夹,用来存放编译好的libcrypto.a,libssl.a静态库以及相关头文件。3.根据权利要求2所述的密钥存储方法,其特征在于,在所述步骤S16执行openssl

android

arm.sh脚本前,还包括:将MacOS安全性与隐私调整为“任何来源”;当没有发现该选项时,在终端内运行sudo spctl
‑‑
master

disable命令显示“任何来源”选项。4.根据权利要求2所述的密钥存储方法,其特征在于,所述ABI架构包括armeabi、armeabi

v7a、arm64

v8a和x86中的一种。5.根据权利要求2所述的密钥存储方法,其特征在于,所述配置Android客户端的NDK加密解密安全库,使用Android Studio新建一个Native工程,并做如下修改:将openssl

build

目标架构的文件夹拷贝至该工程app目录下;将工程src/main/cpp目录下CMakeLists.txt文件拷贝至app根目录下;打开app目录下b...

【专利技术属性】
技术研发人员:张晓明白尔利范军王建华
申请(专利权)人:兰州乐智教育科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1