CN105681039A - 用于生成密钥及对应解密的方法和设备 - Google Patents

用于生成密钥及对应解密的方法和设备 Download PDF

Info

Publication number
CN105681039A
CN105681039A CN201610236733.4A CN201610236733A CN105681039A CN 105681039 A CN105681039 A CN 105681039A CN 201610236733 A CN201610236733 A CN 201610236733A CN 105681039 A CN105681039 A CN 105681039A
Authority
CN
China
Prior art keywords
subscriber equipment
crypted password
key information
application
key
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.)
Granted
Application number
CN201610236733.4A
Other languages
English (en)
Other versions
CN105681039B (zh
Inventor
赵伟
黄明文
甄健鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Upper Marine Infotech Share Co Ltd Of Interrogating
Original Assignee
Upper Marine Infotech Share Co Ltd Of Interrogating
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Upper Marine Infotech Share Co Ltd Of Interrogating filed Critical Upper Marine Infotech Share Co Ltd Of Interrogating
Priority to CN201610236733.4A priority Critical patent/CN105681039B/zh
Publication of CN105681039A publication Critical patent/CN105681039A/zh
Application granted granted Critical
Publication of CN105681039B publication Critical patent/CN105681039B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请的目的是提供一种用于生成密钥及对应解密的方法和设备,通过基于用户设备的唯一标识符迭代生成加密密码;获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。使得密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求。当用户设备启动当前应用时,基于用户设备的唯一标识符,进行迭代运算以获取加密密码;接着,获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;最后,利用所解密的密钥信息解密所述当前应用所存储的相关数据,从而实现密钥仅在用户使用应用时才能被使用,满足用户赞同的密钥安全需求。

Description

用于生成密钥及对应解密的方法和设备
技术领域
本申请涉及计算机领域,尤其涉及一种用于生成密钥及对应解密的技术。
背景技术
移动终端密钥的攻击模型分为三种:恶意软件,申请所有可用的系统权限,比如发短信、打电话、读取联系人、获取地理位置等隐私信息;越狱攻击,获取设备最高权限,扫描文件系统,获取系统敏感数据;监听Root攻击,监听用户键盘输入,获取输入内容。
目前针对移动终端密钥保护方式主要有如下几种:第一,ARMTrustZone技术,从系统总线、处理器等方面的设计将嵌入式设备划分为两个独立的运行环境,NormalWord负责AndroidOS运行,Secureword负责处理敏感进程与数据。因Secureword中的密码获取困难,所以使用ARMTrustZone技术能够增强密码加密后的密钥库文件的安全性。在ARMTrustZone技术中,密钥库文件命名为UID_USRPKEY_KeyAlias,UID是系统分配给应用的用户账号,UID_USRPKEY是固定字符串,KeyAlias是密钥别名。在移动终端被获取最高权限后,恶意软件可以拷贝上述密钥库文件并进行重命名,将上述UID变更成恶意软件自身UID,此时调用AndroidKeyStoreService进程读取Secureword密码解密密钥库文件获得密钥。ARMTrustZone技术的缺陷是移动终端被越狱后密钥可以安装在同一个终端上的其他应用获取。
第二,移动应用私有空间方式。移动操作系统为每一个应用分配私有存储空间,将用于加密密钥库的密码直接存储在上述私有空间目录下,因其他非授权应用无法访问此应用的私有空间数据,所以增强使用上述密码加密后的密钥库文件的安全性。在私有目录下,密钥库密码存储在文件系统的文件或数据库,在移动终端被获取最高权限后,恶意软件可以针对文件系统进行全面扫描获取到密钥库密码。移动应用私有空间存储密钥库的缺陷是密钥可以被同一个终端上的应用获取,也可以被拷贝到其他终端上使用。
第三,用户手动输入的方式。密钥库密码不存储在移动终端上,移动应用启动时,要求用户输入密码,使用此密码加密密钥库文件,移动应用进程关闭后,清除内存中密码数据。因恶意软件无法直接通过扫描文件系统获取到密码,所以增强使用上述密码加密后的密钥库文件的安全性。此方法的缺陷是用户输入的密码安全强度低,很容易被暴力破解。在移动终端被获取最高权限的情况下,键盘输入内容可以被监听。这样,密钥可以被同一个终端上的应用获取,也可以被拷贝到其他终端上使用。
发明内容
本申请的目的是提供一种用于生成密钥及对应解密的方法与设备,以解决用户设备端的密钥安全问题。
根据本申请的一个方面,提供了一种在用户设备端生成密钥的方法,包括:
基于用户设备的唯一标识符迭代生成加密密码;
获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
其中,所述基于用户设备的唯一标识符迭代生成加密密码包括:以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
进一步地,所述方法还包括:将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
进一步地,所述方法还包括:在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
根据本申请的一个方面,提供了一种在用户设备端解密的方法,包括:
基于用户设备的唯一标识符,进行迭代运算以获取加密密码;
获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;
利用所解密的密钥信息解密所述当前应用所存储的相关数据。
进一步地,所述方法还包括:关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
根据本申请的另一方面,还提供了一种用于生成密钥的用户设备,包括:
生成密码装置,用于基于用户设备的唯一标识符迭代生成加密密码;
加密装置,用于获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
其中,所述生成密码装置包括:第一计算单元,用于以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
进一步地,所述用户设备还包括:存储装置,用于将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
进一步地,所述用户设备还包括:处理装置,用于在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
根据本申请的另一方面,还提供了一种用于解密的用户设备,包括:
获取装置,用于基于用户设备的唯一标识符,进行迭代运算以获取加密密码;
第一解密装置,用于获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;
第二解密装置,用于利用所解密的密钥信息解密所述当前应用所存储的相关数据。
进一步地,所述用户设备还包括:清除装置,用于关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
与现有技术相比,根据本申请实施例的方法和设备,通过基于用户设备的唯一标识符迭代生成加密密码;接着,获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。进一步地,将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。从而其他非授权应用无法获取密钥,达到密钥是安全的目的;进一步地使得密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求。当用户设备启动当前应用时,基于用户设备的唯一标识符,进行迭代运算以获取加密密码;接着,获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;最后,利用所解密的密钥信息解密所述当前应用所存储的相关数据。进一步地,关闭所述当前应用时,清除内存中的所述加密密码的数据信息。从而实现密钥仅在用户使用应用时才能被使用,满足用户赞同的密钥安全需求。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种用于生成密钥的用户设备的结构示意图;
图2示出根据本申请一个方面的一个优选实施例的密钥生成过程的示意图;
图3示出根据本申请又一个方面的一种用于解密的用户设备的结构示意图;
图4示出根据本申请又一个方面的一个优选实施例的解密过程的示意图;
图5示出根据本申请再一个方面的一种在用户设备端生成密钥的方法流程示意图;
图6示出根据本申请再一个方面的一种在用户设备端解密的方法流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
图1示出根据本申请一个方面的一种用于生成密钥的用户设备的结构示意图。所述用户设备1包括生成密码装置11和加密装置12,其中,生成密码装置11基于用户设备的唯一标识符迭代生成加密密码;加密装置12获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
在此,所述用户设备1包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。优选地,用户设备1还可以是运行于所述用户设备、或用户设备与网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述用户设备1仅为举例,其他现有的或今后可能出现的用户设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,例如所述生成密码装置11持续基于用户设备的唯一标识符迭代生成加密密码;加密装置12持续获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密,直至所述用户设备完成生成密钥工作或停止工作。
本申请一实施例所述用户设备1用于生成密钥,使得密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求,实现用户设备端的密钥保护。
具体地,生成密码装置11基于用户设备的唯一标识符迭代生成加密密码。
在一优选实施例中,所述用户设备优选的为移动终端设备,在注册服务器系统时,服务为每一台移动终端设备分配整个系统唯一标识符UDID,调用散列函数,并将当前应用随机生成的任意一字符串与设备的唯一标识符UDID进行混淆以进行散列计算得出字符串密码作为加密密码。
本领域技术人员应能理解,所述UDID(UniqueDeviceIdentifier,设备的唯一标识符)由字母和数字组成的字符串序号,用来区别每一个唯一的用户设备。
优选地,所述生成密码装置11包括:第一计算单元(未示出),用于以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
在此,调用加盐散列函数以用户设备的唯一标识符UDID作为参数计算出加密密码,其中,加盐散列函数优选为改造后的加盐散列函数,即基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,用户设备会为每个应用随机生成一个字符串,例如,安装应用A时,需要进行密钥保护,调用改造的PKCS5_PBKDF2_HMAC_SHA1将一个任意字符串与用户设备的UDID进行混淆,使用改造后的加盐散列函数中的SHA1对混淆后的字符串进行散列计算,将散列结果再与用户设备的UDID进行混淆,一共进行8912轮迭代散列计算。其中,任意字符串为随机生成的,但一旦生成即为固定的,即为应用A随机生成的任意字符串为字符串a,当进行解密时,需要的字符串也为字符串a。
在此,本领域技术人员应能理解,所述SHA1(SecureHashAlgorithm,安全哈希算法)对于长度小于128位的消息,SHA1会产生一个160位的消息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。上述迭代散列计算次数优选的为8912次,在本申请实施例中仅为一优选的计算次数,只需满足迭代次数大于1000即可。
本领域技术人员应能理解,所述基于PKCS5_PBKDF2_HMAC_SHA1改造的函数仅为本申请的一优选进行迭代散列计算的函数,现有或今后可能出现的适合本申请迭代散列计算的方法,均可以引用的方式包含于本申请。
更优选地,所述第一计算单元还用于:获取用于记录所述加密密码长度的常量字;对所述常量字进行加密处理。
在此,SHA1摘要算法获得消息时需将其中的常量字进行加密处理,而常量字能够确定最后迭代算出的加密字符串的长度,是可以定义的,如可为64位,128位等满足是2的倍数。对常量字的加密处理保证了密钥的安全性。另外,加盐散列函数PKCS5_PBKDF2_HMAC_SHA1改造的内容还包括:第一,加盐散列的迭代次数进行8912次;第二,针对SHA1摘要算法中常量字的加密处理后的加密常量字定义为宏常量;第三,针对加密常量字对应的解密的密钥与方法定义为宏常量与宏函数。因此,在用户设备调用上述改造后的加盐散列函数可实现将任意字符串与用户设备的UDID进行迭代散列运算生成加密密码,从而达到应用绑定和设备绑定的密钥安全需求,即密钥仅能被一个特定的应用访问,不能被其他应用或设备访问和密钥仅能在一台特定的设备上使用。
具体地,加密装置12获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
在此,获取当前应用的密钥信息,利用生成密码装置11所生成的加密密码对当前应用的密钥信息进行加密。其中,优选地,获取基于应用程序编程接口生成的所述当前应用的密钥信息,其中,所述密钥信息包括密钥及密钥库文件。例如,在一优选实施例中,调用BouncyCastle代码库的API(应用程序编程接口)生成128位密钥以及BKS格式的密钥库文件keystore,使用生成密码装置11所生成的加密密码对密钥及密钥库文件keystore进行加密。需要说明的是,本申请所述的密钥库文件格式为XXX.BKS,仅为一优选的文件格式,密钥库文件格式包括但不限于BKS格式;所述密钥的长度包括但不限于128位,如还可以为64位、32位等满足2的倍数。
本领域技术人员应能理解,所述BouncyCastle代码库是一种用于Java平台的开放源码的轻量级密码术包,支持大量的密码算术。在本申请中仅为生成密钥信息的优选方法,当然,现有或今后可能出现的适合本申请生成密钥信息的方法,均可以引用的方式包含于本申请。
优选地,所述用户设备1还包括:存储装置(未示出),用于将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
在此,每一个用户设备的操作系统为每一个应用分配私有存储空间,将前例中的加密后的密钥库文件keystore存储在应用私有空间目录下,因其他非法授权应用无法访问此应用的私有空间数据,所以增强使用了加密后的密钥库文件的安全性。同时使用本申请的调用改造后的加盐散列函数基于用户设备的UDID生成的加密密码即使在用户设备端被获取最高权限的情况下,恶意软件可以扫描文件系统,也可以将密钥库文件拷贝到其他用户设备,但恶意软件不了解基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,无法获取到加密密钥库文件的密码,密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求。
优选地,所述用户设备1还包括:处理装置(未示出),用于在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
在此,在用户设备端进行应用软件的安装包打包时进行代码混淆处理,在一优选实施例中,如在装有安卓(Android)系统的移动终端设备上,应用软件APK打包时进行代码混淆处理,优选地,所述混淆处理包括:用无意义的字符串序列进行替换类名、方法名;对功能代码流程进行乱序处理。在此,为打包时进行配置文件时,按照一定的语法规则调用第三方混淆处理工具对所配置的文件的脚本文件进行混淆处理,如将无意义的字符序列替换类名、方法名,例如,打包某应用安装包时将类名XXX替换为bbb1122,同时将功能代码流程进行乱序处理,使反编译工具反编译出来的代码难以阅读,从而达到防止被逆向破解的目的。需要说明的是,所述APK(Applicationpackagefile,应用程序包文件)为一种安卓操作系统上的应用程序安装文件格式,一个安卓应用程序的代码若要在安卓设备上运行,必须先进行编译,然后被打包成为一个备安卓操作系统所能识别的文件才可以被运行,而这种能被安卓操作系统识别并运行的文件格式是APK。
图2示出根据本申请一个方面的一个优选实施例的密钥生成过程的示意图;在用户设备端,首先,步骤A中将应用的工程源代码进行乱序处理,即用无意义的字符序列来替换类名、方法名同时功能代码流程进行乱序后得到代码混淆后的APK包;接着,步骤B中调用改造后的PKCS5_PBKDF2_HMAC_SHA1函数,将移动终端UDID作为参数传入所调用的函数中,与任意一字符串函数进行混淆后对混淆后的字符串进行迭代散列运算,即将上一步中混淆后的字符串与移动终端UDID进行再次混淆,共进行8912轮迭代散列运算后生成字符串密码;步骤C中,调用BouncyCastle代码库提供的API生成密钥信息,其中密钥信息包括128位密钥以及BKS密钥库文件keystore;步骤D中,获取到步骤C中所生成的密钥信息,利用步骤B中生成的字符串密码对密钥信息进行加密;最后,步骤F中,将步骤D中加密后的密钥、加密后的BKS密钥库文件keystore进行存储在应用私有空间目录下。从而实现了用户设备端应用的密钥保护,密钥仅能被一个特定应用访问,满足应用与设备绑定的要求。
图3示出根据本申请又一个方面的一种用于解密的用户设备的结构示意图;所述用户设备2包括:获取装置21、第一解密装置22和第二解密装置23,其中,获取装置21基于用户设备的唯一标识符,进行迭代运算以获取加密密码;第一解密装置22获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;第二解密装置23利用所解密的密钥信息解密所述当前应用所存储的相关数据。
在此,用户设备2与用户设备1为同一台用户设备,有唯一标识符UDID,通过本申请所述的用于解密的用户设备2,使得基于用户设备的唯一标识符生成的加密密码仅能在应用启动时被允许解密破解获取。
具体地,获取装置21基于用户设备的唯一标识符,进行迭代运算以获取加密密码;在此,在用户设备端当前应用启动时,程序将设备的UDID作为参数调用基于PKCS5_PBKDF2_HMAC_SHA1改造的加盐散列函数计算出密钥库文件密码。
本领域技术人员应能理解,所述基于PKCS5_PBKDF2_HMAC_SHA1改造的函数仅为本申请的一优选进行迭代散列计算的函数,现有或今后可能出现的适合本申请迭代散列计算的方法,均可以引用的方式包含于本申请。
优选地,所述获取装置21包括:第二计算单元(未示出),用于以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码。
在此,调用加盐散列函数以用户设备的唯一标识符UDID作为参数计算出加密密码,其中,加盐散列函数优选的为改造后的加盐散列函数,即基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,利用前述生成密钥阶段与UDID进行混淆迭代散列运算的字符串,与用户设备的UDID进行混淆得到散列结果,将散列结果再与用户设备的UDID进行混淆,一共进行8912轮迭代散列计算,获得一字符串密码,则此最终计算出的字符串密码为生成密钥阶段的加密密码,利用此加密密码进行后续的解密操作。
需要说明的是,改造后的加盐散列函数的特征是,在函数参数相同的情况下,总能计算出一致的结果。加密密码生成阶段与加密密码获取阶段使用的均是用户设备唯一标识符UDID作为函数参数,其中,UDID与任意字符串混淆迭代散列运算中所用的字符串为加密密码生成阶段所使用的字符串,字符串为随机生成的,可为任意字符串,但一旦生成后在加密和解密两个阶段为同一个,不发生变化。
本领域技术人员应能理解,所述SHA1(SecureHashAlgorithm,安全哈希算法)对于长度小于128位的消息,SHA1会产生一个160位的消息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。上述迭代散列计算次数优选的为8912次,在本申请实施例中仅为一优选的计算次数,只需满足迭代次数大于1000即可。
更优选地,所述第一计算单元还用于:获取用于记录所述加密密码长度的常量字;对所述常量字进行加密处理。
在此,SHA1摘要算法获得消息时需将其中的常量字进行加密处理,而常量字能够确定最后迭代算出的加密字符串的长度,是可以定义的,如可为64位,128位等满足是2的倍数。对常量字的加密处理保证了密钥的安全性。另外,加盐散列函数PKCS5_PBKDF2_HMAC_SHA1改造的内容还包括:第一,加盐散列的迭代次数进行8912次;第二,针对SHA1摘要算法中常量字的加密处理后的加密常量字定义为宏常量;第三,针对加密常量字对应的解密的密钥与方法定义为宏常量与宏函数。因此,在用户设备调用上述改造后的加盐散列函数可实现将任意字符串与用户设备的UDID进行迭代散列运算生成加密密码。
具体地,第一解密装置22获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密。
在此,获取当前应用的加密的密钥信息包括当前应用的加密后的密钥以及加密后的密钥库文件,利用获取装置21中获取到的加密密码对加密的密钥信息进行解密得到密钥信息。
具体地,第二解密装置23利用所解密的密钥信息解密所述当前应用所存储的相关数据。
在此,利用所解密的密钥信息对当前应用所存储的相关密文数据进行解密获得明文数据。例如,用户设备上安装的联系人应用,在启动联系人应用时,将当前的用户设备的UDID作为参数调用改造的加盐散列函数计算出保护联系人应用的加密密码,进行解密获取到联系人应用中的具体联系人信息等隐私信息,能够进行打电话等该应用所允许的权限行为,而恶意软件或越狱攻击等因无法获得改造后的加盐散列函数信息及没有当前用户设备的UDID,因此不可访问联系人应用,进而无法获取到隐私信息。
优选地,所述用户设备2还包括:清除装置(未示出),用于关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
在此,当前应用启动时进行相应的解密进行访问使用,当关闭当前应用时,需清除内存中的加密密码的数据信息,使得密钥仅在用户使用应用时才能够被使用,满足用户赞同的密钥安全需求。
图4示出根据本申请又一个方面的一个优选实施例的解密过程的示意图;在一优选实施例中,用户设备优选为移动终端设备,在移动终端设备上启动应用时,在步骤a中,将移动终端UDID作为参数传入到所调用的改造后的PKCS5_PBKDF2_HMAC_SHA1函数中与密钥生成阶段所用的字符串进行混淆迭代散列计算,生成一字符串密码即为密钥的加密密码;接着,步骤b中,将加密后的密钥、加密后的BKS密钥库keystore利用步骤a中获得的加密密码进行解密得到密钥信息;最后,步骤c中将所存储的当前应用的相关密文数据利用步骤b中所得到的密钥信息进行解密获得到明文数据。从而实现密钥仅能在应用启动时才能被使用,进而满足移动终端设备密钥完全需求,提供了一种安全性高的密钥保护机制。
图5示出根据本申请再一个方面的一种在用户设备端生成密钥的方法的流程示意图。所述方法包括步骤S11和步骤S12,其中,在步骤S11中,基于用户设备的唯一标识符迭代生成加密密码;在步骤S12中,获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
本申请一实施例所述在用户设备端生成密钥的方法,使得密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求,实现用户设备端的密钥保护。
具体地,在步骤S11中,基于用户设备的唯一标识符迭代生成加密密码。
在一优选实施例中,所述用户设备优选为移动终端设备,在注册服务器系统时,服务为每一台移动终端设备分配整个系统唯一标识符UDID,调用散列函数,并将当前应用随机生成的任意一字符串与设备的唯一标识符UDID进行混淆以进行散列计算得出字符串密码作为加密密码。
本领域技术人员应能理解,所述UDID(UniqueDeviceIdentifier,设备的唯一标识符)由字母和数字组成的字符串序号,用来区别每一个唯一的用户设备。
优选地,所述基于用户设备的唯一标识符迭代生成加密密码包括:以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
在此,调用加盐散列函数以用户设备的唯一标识符UDID作为参数计算出加密密码,其中,加盐散列函数优选的为改造后的加盐散列函数,即基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,用户设备会为每个应用随机生成一个字符串,例如,安装应用A时,需要进行密钥保护,调用改造的PKCS5_PBKDF2_HMAC_SHA1将一个任意字符串与用户设备的UDID进行混淆,使用改造后的加盐散列函数中的SHA1对混淆后的字符串进行散列计算,将散列结果再与用户设备的UDID进行混淆,一共进行8912轮迭代散列计算。其中,任意字符串为随机生成的,但一旦生成即为固定的,即为应用A随机生成的任意字符串为字符串a,当进行解密时,需要的字符串也为字符串a。
在此,本领域技术人员应能理解,所述SHA1(SecureHashAlgorithm,安全哈希算法)对于长度小于128位的消息,SHA1会产生一个160位的消息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。上述迭代散列计算次数优选的为8912次,在本申请实施例中仅为一优选的计算次数,只需满足迭代次数大于1000即可。
本领域技术人员应能理解,所述基于PKCS5_PBKDF2_HMAC_SHA1改造的函数仅为本申请的一优选进行迭代散列计算的函数,现有或今后可能出现的适合本申请迭代散列计算的方法,均可以引用的方式包含于本申请。
更优选地,所述以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码还包括:获取用于记录所述加密密码长度的常量字;对所述常量字进行加密处理。
在此,SHA1摘要算法获得消息时需将其中的常量字进行加密处理,而常量字能够确定最后迭代算出的加密字符串的长度,是可以定义的,如可为64位,128位等满足是2的倍数。对常量字的加密处理保证了密钥的安全性。另外,加盐散列函数PKCS5_PBKDF2_HMAC_SHA1改造的内容还包括:第一,加盐散列的迭代次数进行8912次;第二,针对SHA1摘要算法中常量字的加密处理后的加密常量字定义为宏常量;第三,针对加密常量字对应的解密的密钥与方法定义为宏常量与宏函数。因此,在用户设备调用上述改造后的加盐散列函数可实现将任意字符串与用户设备的UDID进行迭代散列运算生成加密密码,从而达到应用绑定和设备绑定的密钥安全需求,即密钥仅能被一个特定的应用访问,不能被其他应用或设备访问和密钥仅能在一台特定的设备上使用。
具体地,在步骤S12中,获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
在此,获取当前应用的密钥信息,利用步骤S11中所生成的加密密码对当前应用的密钥信息进行加密。其中,优选地,获取基于应用程序编程接口生成的所述当前应用的密钥信息,其中,所述密钥信息包括密钥及密钥库文件。例如,在一优选实施例中,调用BouncyCastle代码库的API(应用程序编程接口)生成128位密钥以及BKS格式的密钥库文件keystore,使用步骤S11中所生成的加密密码对密钥及密钥库文件keystore进行加密。需要说明的是,本申请所述的密钥库文件格式为XXX.BKS,仅为一优选的文件格式,密钥库文件格式包括但不限于BKS格式;所述密钥的长度包括但不限于128位,如还可以为64位、32位等满足2的倍数。
本领域技术人员应能理解,所述BouncyCastle代码库是一种用于Java平台的开放源码的轻量级密码术包,支持大量的密码算术。在本申请中仅为生成密钥信息的优选方法,当然,现有或今后可能出现的适合本申请生成密钥信息的方法,均可以引用的方式包含于本申请。
优选地,所述方法还包括:将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
在此,每一个用户设备的操作系统为每一个应用分配私有存储空间,将前例中的加密后的密钥库文件keystore存储在应用私有空间目录下,因其他非法授权应用无法访问此应用的私有空间数据,所以增强使用了加密后的密钥库文件的安全性。同时使用本申请的调用改造后的加盐散列函数基于用户设备的UDID生成的加密密码即使在用户设备端被获取最高权限的情况下,恶意软件可以扫描文件系统,也可以将密钥库文件拷贝到其他用户设备,但恶意软件不了解基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,无法获取到加密密钥库文件的密码,密钥仅能被一个特定应用访问,不能被其他应用或终端访问,满足应用绑定与设备绑定的要求。
优选地,所述方法还包括:在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
在此,在用户设备端进行应用软件的安装包打包时进行代码混淆处理,在一优选实施例中,如在装有安卓(Android)系统的移动终端设备上,应用软件APK打包时进行代码混淆处理,优选地,所述混淆处理包括:用无意义的字符串序列进行替换类名、方法名;对功能代码流程进行乱序处理。在此,为打包时进行配置文件时,按照一定的语法规则调用第三方混淆处理工具对所配置的文件的脚本文件进行混淆处理,如将无意义的字符序列替换类名、方法名,例如,打包某应用安装包时将类名XXX替换为bbb1122,同时将功能代码流程进行乱序处理,使反编译工具反编译出来的代码难以阅读,从而达到防止被逆向破解的目的。需要说明的是,所述APK(Applicationpackagefile,应用程序包文件)为一种安卓操作系统上的应用程序安装文件格式,一个安卓应用程序的代码若要在安卓设备上运行,必须先进行编译,然后被打包成为一个备安卓操作系统所能识别的文件才可以被运行,而这种能被安卓操作系统识别并运行的文件格式是APK。
图2示出根据本申请一个方面的一个优选实施例的密钥生成过程的示意图;在用户设备端,首先,步骤A中将应用的工程源代码进行乱序处理,即用无意义的字符序列来替换类名、方法名同时功能代码流程进行乱序后得到代码混淆后的APK包;接着,步骤B中调用改造后的PKCS5_PBKDF2_HMAC_SHA1函数,将移动终端UDID作为参数传入所调用的函数中,与任意一字符串函数进行混淆后对混淆后的字符串进行迭代散列运算,即将上一步中混淆后的字符串与移动终端UDID进行再次混淆,共进行8912轮迭代散列运算后生成字符串密码;步骤C中,调用BouncyCastle代码库提供的API生成密钥信息,其中密钥信息包括128位密钥以及BKS密钥库文件keystore;步骤D中,获取到步骤C中所生成的密钥信息,利用步骤B中生成的字符串密码对密钥信息进行加密;最后,步骤F中,将步骤D中加密后的密钥、加密后的BKS密钥库文件keystore进行存储在应用私有空间目录下。从而实现了用户设备端应用的密钥保护,密钥仅能被一个特定应用访问,满足应用与设备绑定的要求。
图6示出根据本申请再一个方面的一种在用户设备端解密的方法流程示意图;所述方法包括:步骤S21、步骤S22和步骤S23,其中,在步骤S21中,基于用户设备的唯一标识符,进行迭代运算以获取加密密码;在步骤S22中,获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;在步骤S23中,利用所解密的密钥信息解密所述当前应用所存储的相关数据。
在此,通过本申请所述的在用户设备端解密的方法,使得基于用户设备的唯一标识符生成的加密密码仅能在应用启动时被允许解密破解获取。
具体地,在步骤S21中,基于用户设备的唯一标识符,进行迭代运算以获取加密密码;在此,在用户设备端当前应用启动时,程序将设备的UDID作为参数调用基于PKCS5_PBKDF2_HMAC_SHA1改造的加盐散列函数计算出密钥库文件密码。
本领域技术人员应能理解,所述基于PKCS5_PBKDF2_HMAC_SHA1改造的函数仅为本申请的一优选进行迭代散列计算的函数,现有或今后可能出现的适合本申请迭代散列计算的方法,均可以引用的方式包含于本申请。
优选地,所述步骤S21包括:以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码。
在此,调用加盐散列函数以用户设备的唯一标识符UDID作为参数计算出加密密码,其中,加盐散列函数优选的为改造后的加盐散列函数,即基于PKCS5_PBKDF2_HMAC_SHA1改造的函数,利用前述生成密钥阶段与UDID进行混淆迭代散列运算的字符串,与用户设备的UDID进行混淆得到散列结果,将散列结果再与用户设备的UDID进行混淆,一共进行8912轮迭代散列计算,获得一字符串密码,则此最终计算出的字符串密码为生成密钥阶段的加密密码,利用此加密密码进行后续的解密操作。
需要说明的是,改造后的加盐散列函数的特征是,在函数参数相同的情况下,总能计算出一致的结果。加密密码生成阶段与加密密码获取阶段使用的均是用户设备唯一标识符UDID作为函数参数,其中,UDID与任意字符串混淆迭代散列运算中所用的字符串为加密密码生成阶段所使用的字符串,字符串为随机生成的,可为任意字符串,但一旦生成后在加密和解密两个阶段为同一个,不发生变化。
本领域技术人员应能理解,所述SHA1(SecureHashAlgorithm,安全哈希算法)对于长度小于128位的消息,SHA1会产生一个160位的消息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。上述迭代散列计算次数优选的为8912次,在本申请实施例中仅为一优选的计算次数,只需满足迭代次数大于1000即可。
更优选地,所述以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码还包括:获取用于记录所述加密密码长度的常量字;对所述常量字进行加密处理。
在此,SHA1摘要算法获得消息时需将其中的常量字进行加密处理,而常量字能够确定最后迭代算出的加密字符串的长度,是可以定义的,如可为64位,128位等满足是2的倍数。对常量字的加密处理保证了密钥的安全性。另外,加盐散列函数PKCS5_PBKDF2_HMAC_SHA1改造的内容还包括:第一,加盐散列的迭代次数进行8912次;第二,针对SHA1摘要算法中常量字的加密处理后的加密常量字定义为宏常量;第三,针对加密常量字对应的解密的密钥与方法定义为宏常量与宏函数。因此,在用户设备调用上述改造后的加盐散列函数可实现将任意字符串与用户设备的UDID进行迭代散列运算生成加密密码。
具体地,在步骤S22中,获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密。
在此,获取当前应用的加密的密钥信息包括当前应用的加密后的密钥以及加密后的密钥库文件,利用步骤S21中获取到的加密密码对加密的密钥信息进行解密得到密钥信息。
具体地,在步骤S23中,利用所解密的密钥信息解密所述当前应用所存储的相关数据。
在此,利用所解密的密钥信息对当前应用所存储的相关密文数据进行解密获得明文数据。例如,用户设备上安装的联系人应用,在启动联系人应用时,将当前的用户设备的UDID作为参数调用改造的加盐散列函数计算出保护联系人应用的加密密码,进行解密获取到联系人应用中的具体联系人信息等隐私信息,能够进行打电话等该应用所允许的权限行为,而恶意软件或越狱攻击等因无法获得改造后的加盐散列函数信息及没有当前用户设备的UDID,因此不可访问联系人应用,进而无法获取到隐私信息。
优选地,所述方法还包括:关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
在此,当前应用启动时进行相应的解密进行访问使用,当关闭当前应用时,需清除内存中的加密密码的数据信息,使得密钥仅在用户使用应用时才能够被使用,满足用户赞同的密钥安全需求。
图4示出根据本申请又一个方面的一个优选实施例的解密过程的示意图;在一优选实施例中,用户设备优选为移动终端设备,在移动终端设备上启动应用时,在步骤a中,将移动终端UDID作为参数传入到所调用的改造后的PKCS5_PBKDF2_HMAC_SHA1函数中与密钥生成阶段所用的字符串进行混淆迭代散列计算,生成一字符串密码即为密钥的加密密码;接着,步骤b中,将加密后的密钥、加密后的BKS密钥库keystore利用步骤a中获得的加密密码进行解密得到密钥信息;最后,步骤c中将所存储的当前应用的相关密文数据利用步骤b中所得到的密钥信息进行解密获得到明文数据。从而实现密钥仅能在应用启动时才能被使用,进而满足移动终端设备密钥完全需求,提供了一种安全性高的密钥保护机制。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (22)

1.一种在用户设备端生成密钥的方法,其中,所述方法包括:
基于用户设备的唯一标识符迭代生成加密密码;
获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
2.根据权利要求1所述的方法,其中,所述方法还包括:
将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
3.根据权利要求1所述的方法,其中,所述方法还包括:
在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
4.根据权利要求3所述的方法,其中,所述在生成所述当前应用的安装包时,对所述安装包进行混淆处理包括:
用无意义的字符串序列进行替换类名、方法名;
对功能代码流程进行乱序处理。
5.根据权利要求1所述的方法,其中,所述基于用户设备的唯一标识符迭代生成加密密码包括:
以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
6.根据权利要求5所述的方法,其中,所述以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码还包括:
获取用于记录所述加密密码长度的常量字;
对所述常量字进行加密处理。
7.根据权利要求1所述的方法,其中,所述获取当前应用的密钥信息包括:
获取基于应用程序编程接口生成的所述当前应用的密钥信息,其中,所述密钥信息包括密钥及密钥库文件。
8.一种在用户设备端解密的方法,其中,所述方法包括:
基于用户设备的唯一标识符,进行迭代运算以获取加密密码;
获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;
利用所解密的密钥信息解密所述当前应用所存储的相关数据。
9.根据权利要求8所述的方法,其中,所述基于用户设备的唯一标识符,进行迭代运算以获取加密密码包括:
以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码。
10.根据权利要求9所述的方法,其中,所述以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码还包括:
获取用于记录所述加密密码长度的常量字;
对所述常量字进行加密处理。
11.根据权利要求8所述的方法,其中,所述方法还包括:
关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
12.一种用于生成密钥的用户设备,其中,所述用户设备包括:
生成密码装置,用于基于用户设备的唯一标识符迭代生成加密密码;
加密装置,用于获取当前应用的密钥信息,并利用所述加密密码对所述密钥信息进行加密。
13.根据权利要求12所述的用户设备,其中,所述用户设备还包括:
存储装置,用于将所加密的所述密钥信息存储至所述当前应用的私有空间目录下。
14.根据权利要求12所述的用户设备,其中,所述用户设备还包括:
处理装置,用于在生成所述当前应用的安装包时,对所述安装包进行混淆处理。
15.根据权利要求12所述的用户设备,其中,所述处理装置用于:
用无意义的字符串序列进行替换类名、方法名;
对功能代码流程进行乱序处理。
16.根据权利要求12所述的用户设备,其中,所述生成密码装置包括:
第一计算单元,用于以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以生成所述加密密码。
17.根据权利要求16所述的用户设备,其中,所述第一计算单元还用于:
获取用于记录所述加密密码长度的常量字;
对所述常量字进行加密处理。
18.根据权利要求12所述的用户设备,其中,所述加密装置用于:
获取基于应用程序编程接口生成的所述当前应用的密钥信息,其中,所述密钥信息包括密钥及密钥库文件。
19.一种用于解密的用户设备,其中,所述用户设备包括:
获取装置,用于基于用户设备的唯一标识符,进行迭代运算以获取加密密码;
第一解密装置,用于获取当前应用的加密的密钥信息,并利用所述加密密码对所述加密的密钥信息进行解密;
第二解密装置,用于利用所解密的密钥信息解密所述当前应用所存储的相关数据。
20.根据权利要求19所述的用户设备,其中,所述获取装置包括:
第二计算单元,用于以所述用户设备的唯一标识符为参数,迭代进行加盐散列计算,以获取所述加密密码。
21.根据权利要求20所述的用户设备,其中,所述第二计算单元还用于:
获取用于记录所述加密密码长度的常量字;
对所述常量字进行加密处理。
22.根据权利要求19所述的用户设备,其中,所述用户设备还包括:
清除装置,用于关闭所述当前应用时,清除内存中的所述加密密码的数据信息。
CN201610236733.4A 2016-04-15 2016-04-15 用于生成密钥及对应解密的方法和设备 Active CN105681039B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610236733.4A CN105681039B (zh) 2016-04-15 2016-04-15 用于生成密钥及对应解密的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610236733.4A CN105681039B (zh) 2016-04-15 2016-04-15 用于生成密钥及对应解密的方法和设备

Publications (2)

Publication Number Publication Date
CN105681039A true CN105681039A (zh) 2016-06-15
CN105681039B CN105681039B (zh) 2021-04-13

Family

ID=56309904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610236733.4A Active CN105681039B (zh) 2016-04-15 2016-04-15 用于生成密钥及对应解密的方法和设备

Country Status (1)

Country Link
CN (1) CN105681039B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027228A (zh) * 2016-07-20 2016-10-12 努比亚技术有限公司 一种网页标识的加解密方法及其加解密系统
CN106375983A (zh) * 2016-11-01 2017-02-01 武汉斗鱼网络科技有限公司 一种标识符生成方法和装置
CN107332660A (zh) * 2017-06-28 2017-11-07 深圳市对接平台科技发展有限公司 一种新型移动数据加密安全系统
CN108197485A (zh) * 2018-01-29 2018-06-22 世纪龙信息网络有限责任公司 终端数据加密方法和系统、终端数据解密方法和系统
CN109150508A (zh) * 2017-06-27 2019-01-04 腾讯科技(深圳)有限公司 设备控制和受控方法、装置、计算机设备和存储介质
CN109284622A (zh) * 2017-07-20 2019-01-29 腾讯科技(深圳)有限公司 联系人信息处理方法、装置及存储介质
CN109510702A (zh) * 2018-10-27 2019-03-22 福建福诺移动通信技术有限公司 一种基于计算机特征码的密钥存储及使用的方法
CN109564615A (zh) * 2018-10-31 2019-04-02 算丰科技(北京)有限公司 模型数据的载入方法、装置、设备和存储介质
CN110178348A (zh) * 2016-12-16 2019-08-27 亚马逊技术有限公司 敏感数据的跨网络安全数据流出
WO2020020127A1 (zh) * 2018-07-25 2020-01-30 海南新软软件有限公司 一种私钥存储和读取方法、装置及硬件设备
CN110765423A (zh) * 2018-07-27 2020-02-07 北京京东尚科信息技术有限公司 一种应用程序混淆加密方法和装置
CN111506910A (zh) * 2020-04-15 2020-08-07 上海数禾信息科技有限公司 数据库加密的方法及装置
CN112199730A (zh) * 2020-11-17 2021-01-08 上海优扬新媒信息技术有限公司 一种终端上应用数据的处理方法、装置及电子设备
CN112632577A (zh) * 2020-12-24 2021-04-09 平安银行股份有限公司 一种截屏方法、装置、设备及存储介质
CN113517981A (zh) * 2021-04-28 2021-10-19 河南中烟工业有限责任公司 一种密钥管理方法、代码版本的管理方法及装置
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
CN114553412A (zh) * 2022-02-28 2022-05-27 百果园技术(新加坡)有限公司 一种数据传输方法、装置、设备及存储介质
WO2023072206A1 (zh) * 2021-10-29 2023-05-04 华为技术有限公司 密钥迁移方法及相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971578A (zh) * 2005-10-31 2007-05-30 捷讯研究有限公司 安全许可密钥方法和系统
CN101447009A (zh) * 2008-12-29 2009-06-03 北京飞天诚信科技有限公司 软件安装方法、装置及系统
US20110252243A1 (en) * 2010-04-07 2011-10-13 Apple Inc. System and method for content protection based on a combination of a user pin and a device specific identifier
CN103475664A (zh) * 2013-09-18 2013-12-25 北京工业大学 面向Android的数字证据的可信提取方法
CN103559430A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用账号管理方法和装置
US20140258708A1 (en) * 2013-03-08 2014-09-11 Broadcom Corporation Securing variable length keyladder key
CN104283853A (zh) * 2013-07-08 2015-01-14 华为技术有限公司 一种提高信息安全性的方法、终端设备及网络设备
CN105005718A (zh) * 2015-06-23 2015-10-28 电子科技大学 一种利用马尔可夫链实现代码混淆的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971578A (zh) * 2005-10-31 2007-05-30 捷讯研究有限公司 安全许可密钥方法和系统
CN101447009A (zh) * 2008-12-29 2009-06-03 北京飞天诚信科技有限公司 软件安装方法、装置及系统
US20110252243A1 (en) * 2010-04-07 2011-10-13 Apple Inc. System and method for content protection based on a combination of a user pin and a device specific identifier
US20140258708A1 (en) * 2013-03-08 2014-09-11 Broadcom Corporation Securing variable length keyladder key
CN104283853A (zh) * 2013-07-08 2015-01-14 华为技术有限公司 一种提高信息安全性的方法、终端设备及网络设备
CN103475664A (zh) * 2013-09-18 2013-12-25 北京工业大学 面向Android的数字证据的可信提取方法
CN103559430A (zh) * 2013-10-24 2014-02-05 北京奇虎科技有限公司 基于安卓系统的应用账号管理方法和装置
CN105005718A (zh) * 2015-06-23 2015-10-28 电子科技大学 一种利用马尔可夫链实现代码混淆的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SHORTSOFTT: "Android混淆技术", 《HTTPS://JINGYAN.BAIDU.COM/ARTICLE/72EE561AB02632E16138DFF8.HTML》 *
何峣等: "智能手机操作系统安全技术探讨", 《移动通信》 *
罗宇皓: "Android软件安全分析和系统安全增强研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027228A (zh) * 2016-07-20 2016-10-12 努比亚技术有限公司 一种网页标识的加解密方法及其加解密系统
CN106375983A (zh) * 2016-11-01 2017-02-01 武汉斗鱼网络科技有限公司 一种标识符生成方法和装置
CN110178348A (zh) * 2016-12-16 2019-08-27 亚马逊技术有限公司 敏感数据的跨网络安全数据流出
CN109150508A (zh) * 2017-06-27 2019-01-04 腾讯科技(深圳)有限公司 设备控制和受控方法、装置、计算机设备和存储介质
CN107332660A (zh) * 2017-06-28 2017-11-07 深圳市对接平台科技发展有限公司 一种新型移动数据加密安全系统
CN109284622A (zh) * 2017-07-20 2019-01-29 腾讯科技(深圳)有限公司 联系人信息处理方法、装置及存储介质
CN109284622B (zh) * 2017-07-20 2022-05-17 腾讯科技(深圳)有限公司 联系人信息处理方法、装置及存储介质
CN108197485B (zh) * 2018-01-29 2020-08-18 世纪龙信息网络有限责任公司 终端数据加密方法和系统、终端数据解密方法和系统
CN108197485A (zh) * 2018-01-29 2018-06-22 世纪龙信息网络有限责任公司 终端数据加密方法和系统、终端数据解密方法和系统
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
WO2020020127A1 (zh) * 2018-07-25 2020-01-30 海南新软软件有限公司 一种私钥存储和读取方法、装置及硬件设备
CN110765423A (zh) * 2018-07-27 2020-02-07 北京京东尚科信息技术有限公司 一种应用程序混淆加密方法和装置
CN109510702A (zh) * 2018-10-27 2019-03-22 福建福诺移动通信技术有限公司 一种基于计算机特征码的密钥存储及使用的方法
CN109564615A (zh) * 2018-10-31 2019-04-02 算丰科技(北京)有限公司 模型数据的载入方法、装置、设备和存储介质
CN111506910A (zh) * 2020-04-15 2020-08-07 上海数禾信息科技有限公司 数据库加密的方法及装置
CN111506910B (zh) * 2020-04-15 2023-06-06 上海数禾信息科技有限公司 数据库加密的方法及装置
CN112199730A (zh) * 2020-11-17 2021-01-08 上海优扬新媒信息技术有限公司 一种终端上应用数据的处理方法、装置及电子设备
CN112632577A (zh) * 2020-12-24 2021-04-09 平安银行股份有限公司 一种截屏方法、装置、设备及存储介质
CN113517981A (zh) * 2021-04-28 2021-10-19 河南中烟工业有限责任公司 一种密钥管理方法、代码版本的管理方法及装置
CN113517981B (zh) * 2021-04-28 2023-05-23 河南中烟工业有限责任公司 一种密钥管理方法、代码版本的管理方法及装置
WO2023072206A1 (zh) * 2021-10-29 2023-05-04 华为技术有限公司 密钥迁移方法及相关设备
CN114553412A (zh) * 2022-02-28 2022-05-27 百果园技术(新加坡)有限公司 一种数据传输方法、装置、设备及存储介质
CN114553412B (zh) * 2022-02-28 2024-02-23 百果园技术(新加坡)有限公司 一种数据传输方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105681039B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN105681039A (zh) 用于生成密钥及对应解密的方法和设备
CN109583217B (zh) 一种互联网电商平台用户隐私数据加密及解密方法
CN108769027B (zh) 安全通信方法、装置、移动终端和存储介质
CN106506159A (zh) 用于密钥安全的加密方法和设备
CN102334124A (zh) 文件的保护方法及装置
KR20140099126A (ko) 소프트웨어를 보안하기 위하여 해시 함수를 이용한 소프트웨어 처리 방법, 그 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN101957903A (zh) 一种保护类文件的方法和装置
US9367700B2 (en) System and method for establishing a shared secret for communication between different security domains
CN109510702B (zh) 一种基于计算机特征码的密钥存储及使用的方法
KR101625785B1 (ko) 이동 단말 정보 보안 관리 방법, 장치 및 이동 단말
CN103929312A (zh) 一种移动终端及其个人信息保护方法和系统
Kim et al. A study on the decryption methods of telegram X and BBM-Enterprise databases in mobile and PC
CN108133147B (zh) 可执行代码的保护方法、设备及可读存储介质
CN101710307A (zh) 一种数码设备的数据安全保护方法
CN105825142A (zh) 用于对移动终端中文档加解密的方法和装置
KR102585404B1 (ko) 데이터 보안 장치
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
US20170054554A1 (en) Apparatus for obfuscating and restoring program execution code and method thereof
JP2014160383A (ja) 携帯端末装置及び復号処理プログラム
KR101267875B1 (ko) 가상 키보드를 이용한 메시지 암·복호화 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
CN103379133A (zh) 一种安全可信的云存储系统
KR101485968B1 (ko) 암호화된 파일 접근 방법
CN109784072B (zh) 一种安全文件管理方法和系统
CN103605927A (zh) 一种基于嵌入式Linux系统实现加密和解密方法
CN100561913C (zh) 一种访问密码设备的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for generating key and corresponding decryption

Effective date of registration: 20221008

Granted publication date: 20210413

Pledgee: Industrial Bank Co.,Ltd. Shanghai Branch

Pledgor: SHANGHAI SUNINFO TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000279

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231017

Granted publication date: 20210413

Pledgee: Industrial Bank Co.,Ltd. Shanghai Branch

Pledgor: SHANGHAI SUNINFO TECHNOLOGY Co.,Ltd.

Registration number: Y2022310000279

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for generating keys and corresponding decryption

Effective date of registration: 20231025

Granted publication date: 20210413

Pledgee: Industrial Bank Co.,Ltd. Shanghai Jinshan Branch

Pledgor: SHANGHAI SUNINFO TECHNOLOGY Co.,Ltd.

Registration number: Y2023980062535

PE01 Entry into force of the registration of the contract for pledge of patent right