CN113254952B - 一种基于Android系统的密钥保护管理方法 - Google Patents
一种基于Android系统的密钥保护管理方法 Download PDFInfo
- Publication number
- CN113254952B CN113254952B CN202110447920.8A CN202110447920A CN113254952B CN 113254952 B CN113254952 B CN 113254952B CN 202110447920 A CN202110447920 A CN 202110447920A CN 113254952 B CN113254952 B CN 113254952B
- Authority
- CN
- China
- Prior art keywords
- key
- password
- salt
- database
- aes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种基于Android系统的密钥保护管理方法,将Android系统中的隐私数据用AES算法加密,得到AES密钥,设置密码,同时使用随机数生成器生成盐1(salt),将密码和盐1(salt)组合为SM4密钥1并用于加密AES密钥,密码经过MD5散列运算得到的散列值,将AES密钥密文、密码MD5散列值和盐1(salt)存入数据库,同时可以利用密保问题答案和随机生成的盐2(salt)对密码进行SM4加密,以便密码遗失后对密码进行重置。密钥解密过程与加密过程相反。本发明利用多重加密策略,有效保护了加密密钥的安全,防止攻击者通过数据库得到密钥,保护了Android系统的数据安全。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及的是一种基于Android系统的密钥保护管理方法。
背景技术
Android系统是当今主流的移动操作系统并占据智能手机操作系统大部分的市场份额。开源性是Android系统的重要特点,既推动了Android系统的发展,另一方面也可能造成手机隐私数据的泄露。Android系统中数据是以明文形式存储在磁盘上,一旦被窃取,攻击者就能知道存储的所有数据。对隐私数据的加密能够很好地规避隐私数据明文被窃取的风险。
目前,主流的加密算法是AES算法,AES算法安全性高,消耗资源少,支持可变分组长度的密钥长度,通过AES算法可以产生密钥。数据的加密操作的核心是对密钥的保护与管理。一旦攻击者得到密钥,就能解密数据密文,隐私数据的安全无法保障。现有的密钥管理与保护方法往往以增加加密算法的复杂性来提高密钥的安全性,在保障安全的同时,不可避免地导致加密消耗时间长、加密过程繁琐的问题。另外密钥是明文存储在数据库中,攻击者可以直接通过数据库得到密钥明文,依旧存在一定风险。
发明内容
为了改善现有Android系统的加密系统对于密钥的管理与保护的不足,本发明提出了一种基于Android系统的密钥管理保护方法,能够有效地保障密钥的安全性,并从密钥的管理入手解决加密过程繁琐的问题,更好地适应Android系统对加密的需求。
本发明解决其技术问题所采用的技术方案是:
一种基于Android系统的密钥保护管理方法,所述密钥保护管理方法包括密钥加密过程和密钥解密过程,
所述密钥加密过程包括如下步骤:
1.1:随机生成AES算法加解密密钥,即AES密钥作为数据加解密密钥;
1.2:设置密码,同时使用随机数生成器生成盐1(salt),运用密码与盐1生成SM4算法的密钥并用于加密AES密钥,将AES密钥密文存入数据库;
1.3:密码经过MD5散列运算,将得到的散列值与盐1(salt)一起存入数据库;
1.4:用户设置密保问题与密保问题答案,防止密码被遗忘后无法重新设置密码的情况发生,用户设置的密保问题答案与随机生成的盐2(salt)组合对密码进行SM4加密,将密保问题答案经过MD5运算得到散列值,并将密码密文、盐2(salt)、密保问题以及密保问题答案散列值存入数据库中;
至此,有关密钥的保护加密步骤已经完成,数据库中存储的数据包括AES密钥密文、盐1(salt)、密码散列值、盐2(salt)、密码密文、密保问题以及密保问题答案散列值,如此一来即使攻击数据库依旧无法获取密钥明文,密钥得到了很好的保护;
从数据库存储的密钥密文中得到密钥明文也就是密钥解密过程,所述密钥解密过程包括如下步骤:
2.1:用户键入密码,如果密码正确则与数据库中的盐1(salt)组合生成SM4密钥将AES密钥密文解密;
2.2:如果密码不正确,可以需要修改密码,需要先回答密保问题,若密保问题答案正确,解密旧密码,然后解密AES密钥密文,更新数据库与密码有关的数据,用新密码和盐1(salt)加密AES密文,并用密保问题重新加密新密码。
进一步,所述步骤1.4中,用户设置密保问题1、2及其答案,将密保问题1、2存入数据库,并将密保问题的答案1、2进行MD5散列运算,然后将散列值存入数据库,将两个密保问题的答案拼接为一个答案数据,将其传入SM4的密钥生成器,返回盐2(salt),将盐2(salt)与答案拼接数据组合生成SM4密钥2,用此密钥对1.2中设置的密码进行SM4加密,将加密得到的序列,盐2(salt)存入数据库。
再进一步,所述步骤2.2中,如果密码不正确,用户可以修改密码,首先进行密保问题安全认证,将输入的密保问题答案经过散列运算得到散列值,与数据库中的密保问题答案散列值进行比对,若比对成功则取出盐2(salt),将答案与盐2(salt)组合为SM4密钥2,用SM4密钥2对密码密文进行解密,得到旧密码,用旧密码与盐1(salt)组合生成SM4密钥1,将加密过的AES密钥密文数据取出,用SM4密钥1进行解密,获得AES密钥,更新数据库与密码有关的数据,用新密码和盐1(salt)加密AES密文,并用密保问题重新加密新密码。
所述加密算法的选择并不局限于AES算法与SM4算法,AES算法和SM4算法是目前主流的加密算法,安全性高,所以选择了结合这两种算法来进行密码保护。
本发明的技术构思为:首先使用AES算法对数据进行加密,得到AES密钥,然后输入密码,将密码和盐1(salt)生成SM4算法的密钥并用于加密AES密钥,密码经过MD5散列运算,将AES密钥密文、密码散列值与盐1(salt)存入数据库,为了防止密码遗失,可以设置密保问题与密保问题答案,使用用户设置的密保问题答案与随机生成的盐2(salt)组合对密码进行SM4加密。
本发明的有益效果为:利用多重加密策略,提出了一种安全便捷的密钥保护和管理方法,有效保护了加密密钥的安全,防止攻击者通过数据库得到密钥,保护了Android系统的数据安全。
附图说明
图1为密钥加密流程图。
图2为密钥解密流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
参照图1和图2,一种基于Android系统的密钥保护管理方法,所述密钥保护管理方法包括密钥加密过程和密钥解密过程,
参照图1,所述密钥加密过程包括如下步骤:
1.1:随机生成AES密钥,作为加解密数据的密钥。
1.2:用户设置密码,首先是将密码输入到SM4封装好的密钥生成器里,系统会根据密码长度生成盐1(salt)并将盐1(salt)返回,然后将密码和盐1(salt)组合为SM4密钥1,运用SM4的加密算法对1.1中的AES密钥进行加密,得到加密后的序列,将SM4密钥1加密过的AES密钥和盐1(salt)存入数据库;
步1.3:密码经过MD5散列运算,将得到的散列值存入数据库,由于散列值无法运算得到原密码,所以能够保障密码的安全性,到当前步骤为止,与密钥相关的数据存储包括AES密钥密文、密码散列值与盐1(salt);
从攻击者的角度来看,AES密钥的外层采用SM4进行加密,所以攻击者若要获取AES密钥,则需要获取SM4密钥1,SM4密钥1由用户密码和随机生成的盐组成,盐存储在数据库中,假设攻击者能够拿到盐的情况下,则攻击者还需要用户密码,用户密码经过MD5散列计算,散列值存储在数据库中,假设攻击者拿到MD5散列值,但是通过散列值并不能逆向得到密码明文,由此安全性得以保障。
1.4:用户设置密保问题与密保问题答案提高密钥保护的安全性,用户设置密保问题1、2及其答案,将密保问题1、2存入数据库,并将密保问题的答案1、2进行MD5散列运算,然后将散列值存入数据库。将两个密保问题的答案拼接为一个答案数据,将其传入SM4的密钥生成器,返回盐2(salt),将盐2(salt)与答案拼接数据组合生成SM4密钥2,用此密钥对1.2中设置的密码进行SM4加密,将加密得到的序列,盐2(salt)存入数据库。
可以看到需要存储在数据库中的数据有9条:AES密钥密文、密码散列值、盐1(salt)、密保问题1、密保问题2、密保问题1答案的散列值、密保问题2答案的散列值、盐2(salt)、密码密文。
下面结合图2,从数据库存储的密钥密文中得到密钥明文也就是密钥解密过程,所述密钥解密过程包括如下步骤:
2.1:键入密码,如果密码正确,进行MD5散列运算,得到密码散列值,将密码散列值与数据库中密码的散列值进行比对,若相同则取出盐1(salt),将密码与盐1(salt)组合生成SM4密钥1,使用SM4密钥1解密AES密钥密文得到AES密钥;
2.2:如果密码不正确,用户可以修改密码,首先进行密保问题安全认证,将输入的密保问题答案经过散列运算得到散列值,与数据库中的密保问题答案散列值进行比对,若比对成功则取出盐2(salt),将答案与盐2(salt)组合为SM4密钥2,用SM4密钥2对密码密文进行解密,得到旧密码,用旧密码与盐1(salt)组合生成SM4密钥1,将加密过的AES密钥密文数据取出,用SM4密钥1进行解密,获得AES密钥,更新数据库与密码有关的数据,用新密码和盐1(salt)加密AES密文,并用密保问题重新加密新密码。
如上所述,本专利实施的具体实现步骤使本发明更加清晰。在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。
Claims (3)
1.一种基于Android系统的密钥保护管理方法,其特征在于:所述密钥保护管理方法包括密钥加密过程和密钥解密过程,
所述密钥加密过程包括如下步骤:
1.1:随机生成AES算法加解密密钥,即AES密钥作为数据加解密密钥;
1.2:设置密码,同时使用随机数生成器生成盐1,运用密码与盐1生成SM4算法的密钥1并用于加密AES密钥,将AES密钥密文存入数据库;
1.3:密码经过MD5散列运算,将得到的散列值与盐1一起存入数据库;
1.4:用户设置密保问题与密保问题答案,防止密码被遗忘后无法重新设置密码的情况发生,用户设置的密保问题答案与随机生成的盐2组合对密码进行SM4加密,将密保问题答案经过MD5运算得到散列值,并将密码密文、密保问题以及密保问题答案散列值存入数据库中;
至此,有关密钥的保护加密步骤已经完成,数据库中存储的数据包括AES密钥密文、盐1、密码散列值、盐2、密码密文、密保问题以及密保问题答案散列值;
从数据库存储的密钥密文中得到密钥明文也就是密钥解密过程,所述密钥解密过程包括如下步骤:
2.1:用户键入密码,如果密码正确则与数据库中的盐1组合生成SM4密钥将AES密钥密文解密;
2.2:如果密码不正确,需要修改密码,需要先回答密保问题;若密保问题答案正确,解密旧密码,然后解密AES密钥密文;更新数据库与密码有关的数据,用新密码和盐1加密AES密钥,并用密保问题重新加密新密码。
2.如权利要求1所述的一种基于Android系统的密钥保护管理方法,其特征在于:所述步骤1.4中,用户设置密保问题1、2及其答案,将密保问题1、2存入数据库,并将密保问题的答案1、2进行MD5散列运算,然后将散列值存入数据库,将两个密保问题的答案拼接为一个答案数据,将其传入SM4的密钥生成器,返回盐2,将盐2与答案拼接数据组合生成SM4密钥2,用此密钥2对步骤1.2中设置的密码进行SM4加密,将加密得到的序列,盐2存入数据库。
3.如权利要求2所述的一种基于Android系统的密钥保护管理方法,其特征在于:所述步骤2.2中,如果密码不正确,用户可以修改密码,首先进行密保问题安全认证,将输入的密保问题答案经过散列运算得到散列值,与数据库中的密保问题答案散列值进行比对,若比对成功则取出盐2,将答案与盐2组合为SM4密钥2,用SM4密钥2对密码密文进行解密,得到旧密码,用旧密码与盐1组合生成SM4密钥1,将加密过的AES密钥密文数据取出,用SM4密钥1进行解密,获得AES密钥,更新数据库与密码有关的数据,用新密码和盐1加密AES密钥,并用密保问题重新加密新密码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110447920.8A CN113254952B (zh) | 2021-04-25 | 2021-04-25 | 一种基于Android系统的密钥保护管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110447920.8A CN113254952B (zh) | 2021-04-25 | 2021-04-25 | 一种基于Android系统的密钥保护管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254952A CN113254952A (zh) | 2021-08-13 |
CN113254952B true CN113254952B (zh) | 2022-07-15 |
Family
ID=77221626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110447920.8A Active CN113254952B (zh) | 2021-04-25 | 2021-04-25 | 一种基于Android系统的密钥保护管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254952B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721390A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种加密存储方法和装置 |
CN105959099A (zh) * | 2016-06-20 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种实现ssr密码加密的方法 |
CN106656476A (zh) * | 2017-01-18 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种密码保护方法及装置 |
CN107070948A (zh) * | 2017-05-23 | 2017-08-18 | 广东工业大学 | 云存储中基于混合加密算法的签名与验证方法 |
CN110059458A (zh) * | 2019-03-12 | 2019-07-26 | 北京中海闻达信息技术有限公司 | 一种用户口令加密认证方法、装置及系统 |
CN110222142A (zh) * | 2019-05-09 | 2019-09-10 | 网宿科技股份有限公司 | 一种题目分发方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021269B2 (en) * | 2012-07-18 | 2015-04-28 | TapLink, Inc. | Blind hashing |
-
2021
- 2021-04-25 CN CN202110447920.8A patent/CN113254952B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721390A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种加密存储方法和装置 |
CN105959099A (zh) * | 2016-06-20 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种实现ssr密码加密的方法 |
CN106656476A (zh) * | 2017-01-18 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种密码保护方法及装置 |
CN107070948A (zh) * | 2017-05-23 | 2017-08-18 | 广东工业大学 | 云存储中基于混合加密算法的签名与验证方法 |
CN110059458A (zh) * | 2019-03-12 | 2019-07-26 | 北京中海闻达信息技术有限公司 | 一种用户口令加密认证方法、装置及系统 |
CN110222142A (zh) * | 2019-05-09 | 2019-09-10 | 网宿科技股份有限公司 | 一种题目分发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113254952A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108629027B (zh) | 基于区块链的用户数据库重建方法、装置、设备及介质 | |
CN104363215B (zh) | 一种基于属性的加密方法和系统 | |
US11874935B2 (en) | Protecting data from brute force attack | |
EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
US8681975B2 (en) | Encryption method and apparatus using composition of ciphers | |
CN107453880B (zh) | 一种云数据安全存储方法和系统 | |
US20130136256A1 (en) | Block encryption | |
CN109726567B (zh) | 一种基于全同态加密的移动目标加密方法 | |
US11444761B2 (en) | Data protection and recovery systems and methods | |
JP2014175970A (ja) | 情報配信システム、情報処理装置及びプログラム | |
CN104866784A (zh) | 一种基于bios加密的安全硬盘、数据加密及解密方法 | |
CN104579680A (zh) | 一种安全分发种子的方法 | |
JP2024511236A (ja) | コンピュータファイルのセキュリティ暗号化方法、復号化方法および読み取り可能な記憶媒体 | |
US8804953B2 (en) | Extensive ciphertext feedback | |
US20220284133A1 (en) | Executing entity-specific cryptographic code in a cryptographic coprocessor | |
JP2005252384A (ja) | 暗号化データ保管サーバシステム、暗号化データ保管方法及び再暗号化方法 | |
CN116707804B (zh) | 增强ff1格式保留加密安全性的方法及设备 | |
CN109495255A (zh) | 基于Android系统的数字密钥保护方法及其系统 | |
CN113254952B (zh) | 一种基于Android系统的密钥保护管理方法 | |
CN115499118A (zh) | 报文密钥生成、文件加密、解密方法、装置、设备和介质 | |
CN114499825A (zh) | 一种双控密钥管理方法、系统、加密机和存储介质 | |
WO2011059306A2 (en) | A secure key distribution protocol based on hash functions utilizing quantum authentication channel (kdp-6dp) | |
CN106027553A (zh) | 一种基于动态密码的加密、解密方法 | |
CN112149166A (zh) | 非常规密码保护方法及银行智能机器 | |
KR20110042419A (ko) | 멀티미디어 환경에 적용 가능한 블록암호 운용방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |