CN108985096B - 一种Android SQLite数据库安全增强、安全操作方法以及装置 - Google Patents
一种Android SQLite数据库安全增强、安全操作方法以及装置 Download PDFInfo
- Publication number
- CN108985096B CN108985096B CN201810776747.4A CN201810776747A CN108985096B CN 108985096 B CN108985096 B CN 108985096B CN 201810776747 A CN201810776747 A CN 201810776747A CN 108985096 B CN108985096 B CN 108985096B
- Authority
- CN
- China
- Prior art keywords
- database
- sqlcipher
- jar
- libsqlcipher
- security
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Android SQLite数据库安全增强、安全操作方法以及装置,属于计算机安全技术领域。该方法提出一种Android SQLite数据库的安全增强方法,包括:加密Sqlcipher.jar,其中,Sqlcipher.jar包括对SQLite的数据库操作;创建目标动态库,其中,目标动态库中包括对Sqlcipher.jar中的数据库操作的封装;加密Libsqlcipher.so,其中,Libsqlcipher.so包括对SQLite的数据库的加/解密。另外,还提出一种适用于上述数据库安全增强方法的数据库的安全操作方法。本发明能够在采用Sqlcipher对SQLite数据库进行加密的情况下,进一步增强Android SQLite数据库操作的安全性。
Description
技术领域
本发明涉及计算机安全技术领域,具体涉及SQLite数据库安全增强、安全操作方法以及装置。
背景技术
Android是目前市场上最流行的智能手机操作系统,进而吸引了越来越多的人关注Android操作系统破解,想要获取用户的敏感数据。越来越多应用选择把用户数据存储在数据库中,SQLite是一款Android内置的轻量级的关系型数据库,具有运行速度快,占用资源小的特点,但是内置SQLite数据库是没有加密的。如果被人获取应用的数据库文件,则可以使用普通的数据库工具读取,进而会引发安全严重的安全问题。
Sqlcipher是一个在SQLite基础之上进行扩展的开源数据库,非常适合嵌入式应用的数据库保护,适用于移动开发。因此,为了保护数据,目前很多android应用同时使用了Sqlcipher加密数据库,用来保护用户的敏感数据。然而通过实践和逆向分析发现,Sqlcipher等相关的数据库保护方法同样存在着一些安全问题,主要原因为以下几点:
1、Sqlcipher实现代码是开源的,加密算法可知,只需要获取数据库的密码就可以解密数据库,进而获取到数据库中的敏感数据,而密码可以通过静态或动态分析,或者HOOK方式获取;
2、Sqlcipher在处理数据库数据的时,通过函数传入密码后打开数据库后,返回一个数据库在内存中的类地址,通过类地址即可操作数据库,可通过静态或动态分析,或者HOOK方式获取到该类地址,即在不知道密码的情况下也可以操作数据库,从而获取数据库的数据。
发明内容
为了克服如上的技术问题,本发明提出一种Android SQLite数据库安全增强、安全操作方法以及装置,能够在采用Sqlcipher对SQLite数据库进行加密的情况下,进一步增强Android SQLite数据库操作的安全性。本发明采用的技术方案如下:
第一方面,提出一种Android SQLite数据库的安全增强方法,包括:
加密Sqlcipher.jar,其中,Sqlcipher.jar包括对SQLite的数据库操作;
创建目标动态库,其中,目标动态库中包括对Sqlcipher.jar中的数据库操作的封装;
加密Libsqlcipher.so,其中,Libsqlcipher.so包括对SQLite的数据库的加/解密。
进一步地,在加密Sqlcipher.jar的同时,还可以对Sqlcipher.jar中的函数进行代码抽取加密保存。
更进一步地,还可以绑定数据库文件密码和创建数据库文件的系统。
第二方面,提出一种适用于上述数据库安全增强方法的数据库的安全操作方法,包括:
当目标动态库对数据库进行操作时,
S1,对Sqlcipher.jar进行解密;
S2,判断Sqlcipher.jar的完整性值是否正确,若正确,转到S3,若不正确,转到S7;
S3,加载Sqlcipher.jar;
S4,解密Libsqlcipher.so;
S5,判断Libsqlcipher.so的完整性值是否正确,若正确,转到S6,若不正确,转到S7;
S6,加载Libsqlcipher.so;
S7,操作结束。
第三方面,提供一种具有Android SQLite数据库的计算机装置,包括处理器和存储器,存储器存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器执行以实现如第一方面和第二方面的所述的AndroidSQLite数据库的安全增强方法以及适用于上述安全增强方法的数据库的安全操作方法。
第四方面,提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器执行以实现如第一方面和第二方面的所述的Android SQLite数据库的安全增强方法以及适用于上述安全增强方法的数据库的安全操作方法。
本发明提供的技术方案带来的有益效果是:
针对目前在采用Sqlcipher对SQLite数据库进行加密的情况下,存在的数据库密码和数据库数据仍然可能被恶意获取的安全问题,本发明第一方面,通过对Sqlcipher.jar中的数据操作进行封装,创建目标动态库,第二方面,对进行数据库操作的Sqlcipher.jar进行加密,第三方面,对数据库进行加/解密的Libsqlcipher.so进行加密,通过将数据库操作行为封装后,达到隐藏数据库类地址的目的,使得外界无法轻易通过获取数据库类地址的手段来访问数据库,另外,通过对Sqlcipher.jar和Libsqlcipher.so进行加密,进一步增加了数据库破解的难度。因此,本发明所提出的Android SQLite数据库安全增强或数据安全操作方法能够在采用Sqlcipher对SQLite数据库进行加密的情况下,进一步增强AndroidSQLite数据库操作的安全性。
附图说明
图1所示为应用程序使用Sqlcipher加/解密数据库的示意框图;
图2所示为一种Android SQLite数据库的安全增强方法的示意框图;
图3中示出了一种Android SQLite数据库的安全操作方法实施例流程图;
图4示出了本发明一种具有Android SQLite数据库的计算机装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方案作进一步地详细描述。
Sqlcipher是一个在SQLite基础之上进行扩展的开源数据库,Sqlcipher支持很多种不同的平台,它主要是在SQLite的基础之上增加了数据加密功能,能够增加存储数据的安全性。
图1所示为在android平台上的应用程序使用Sqlcipher加密数据库的示意框图,包括应用程序101、Sqlcipher.jar102、Libsqlcipher.so103以及File.db104中。
应用程序101是在android平台上进行开发的应用程序,File.db104是指sqlite数据库文件,应用程序101需要在File.db104中存储数据信息。
当Sqlcipher工具包被引入到具体项目中后,包括Sqlcipher.jar102、Libsqlcipher.so103等文件,其中,Sqlcipher.jar102主要处理对数据库的操作,其需要依赖Libsqlcipher.so103,因为Libsqlcipher.so103主要包括对数据库文件File.db104进行加/解密。
如图2所示为一种Android SQLite数据库的安全增强方法的示意框图,包括:
在步骤201中,加密Sqlcipher.jar,其中,Sqlcipher.jar包括对SQLite的数据库操作;
在应用程序中引入的Sqlcipher.jar包括对SQLite的数据库操作,外界可通过Hook方式获取Sqlcipher.jar在访问数据库时返回的数据库类地址,通过数据库类地址就能直接操作数据库中的数据,这里的Hook实现方式为在函数调用前或者后面进行挂钩,插入需要相应的操作,比如获取参数值、变更参数值和主动调用函数。在一种可能的操作中,在应用程序编译生成时,对Sqlcipher.jar进行加密,同时生成Sqlcipher.jar的完整性值,保存在应用程序的安装包中。目标动态库在执行Sqlcipher.jar中的函数时才进行解密,同时通过校验其完整性值来判断Sqlcipher.jar的完整性。
当目标动态库判断Sqlcipher.jar的完整性值是正确的,才导入Sqlcipher.jar,然而,在此过程中数据库操作仍然可能被Hook。在一种可能的实际操作中,为了防止在导入Sqlcipher.jar时候被Hook系统程序,则在导入Sqlcipher.jar的同时检查是否被Hook,若被Hook,将Sqlcipher.jar替换成被加密的Sqlcipher.jar包。
在一种可能的操作中,对Sqlcipher.jar进行代码抽取加密保存,比如函数名为openOrCreateDatabase的函数,将其函数内容都抽取保存在程序安装包中,通过静态分析只能知道函数名,无法知道其具体内容,函数体经过被混淆以及重写的处理,而且,只有目标动态库在调用函数时才进行解密。
在步骤202中,创建目标动态库,其中,目标动态库中包括对Sqlcipher.jar中的数据库操作的封装;
通过在native层编写调用Sqlcipher.jar中的数据库操作方法的目标动态库(so库),将数据库操作行为封装起来,这样可以达到隐藏java层数据库类的地址的目的,防止Hook架构直接获取数据库类的地址调用函数,进而操作数据库内容。
在步骤203中,加密Libsqlcipher.so,其中,Libsqlcipher.so包括对SQLite的数据库的加/解密。
在访问数据库过程中,Libsqlcipher.so实现对SQLite的数据库文件进行加/解密处理,若在采用步骤201中加密Sqlcipher.jar的方法后,数据库操作仍然被破解,本步骤203通过对Libsqlcipher.so进行加密,实现对数据库的二次保护,大大增强了外界破坏数据库安全性的难度。
在一种可能的操作中,在应用程序编译生成时,对Libsqlcipher.so进行加密,同时生成Libsqlcipher.so的完整性值,保存在应用程序的安装包中。目标动态库在执行Libsqlcipher.so中的函数时才进行解密,同时判断Libsqlcipher.so的完整性。
当目标动态库在判断Libsqlcipher.so的完整性值是正确的,才导入Libsqlcipher.so,然而,在此过程中数据库操作仍然可能被Hook。在一种可能的实际操作中,为了防止在导入Sqlcipher.jar时候被Hook系统程序,则在导入Libsqlcipher.so的同时检查是否被Hook,若被Hook,将Sqlcipher.jar替换成被加密的Libsqlcipher.so。
需要说明的是,上述步骤201、202和203并没有先后关系,可任意调换顺序,均不影响实施效果。
通过实际使用和逆向破解可知,应用程序的数据可以通过复制整体数据到另外一台智能终端或者虚拟机中进行数据库的破解,使用Hook架构可以很轻易地得到数据库中的解密数据,甚至不需要知道密码。因此,本申请所提出的一种Android SQLite数据库的安全增强方法还进一步地包括生成与系统绑定的密码,使得数据库只能在被创建的系统中才能被解密。
在可能的实现操作中,创建数据库的系统分为:普通系统和具有TrustZone的系统。需要说明的是,TrustZone技术是ARM平台上的一种可信执行环境标准,其通过硬件的访问隔离和安全内核软件的配合,提供了在可信执行环境中安全地执行部分代码的能力。
在普通系统中,目标动态库采集系统的IMEI(International Mobile EquipmentIdentity,国际移动设备身份码的缩写,国际移动装备辨识码)值,系统的CPU特性值,可选的,包括系统CPU的序列号等,系统的MAC地址,并使用加密算法生成数据库加密密码,可选的,以上述获取到的相关系统参数,通过使用MD5算法、SHA-256算法等其他常见加密算法中至少一种生成数据库加密密码,这样可以将数据库加密密码和系统硬件进行绑定。
在具有TrustZone模块的系统中,则生成密码算法的目标动态库处于可信模块中,TA(可信应用)专门处理数据库的加/解密操作,保证数据库操作的安全性。
本实施例第一方面,通过对Sqlcipher.jar中的数据操作进行封装,创建目标动态库,第二方面,对进行数据库操作的Sqlcipher.jar进行加密,第三方面,对数据库进行加/解密的Libsqlcipher.so进行加密,通过将数据库操作行为封装后,达到隐藏数据库类地址的目的,使得外界无法轻易通过获取数据库类地址的手段来访问数据库,另外,通过对Sqlcipher.jar和Libsqlcipher.so进行加密,进一步增加了数据库破解的难度,进一步地,生成与系统绑定的密码,使得数据库只能在被创建的系统中才能被解密,大大增强了外界破坏数据库安全性的难度,提高了数据库安全性。
本发明在上一实施例中公布了一种Android SQLite数据库的安全增强方法,图3中示出了适用于本发明所提出的Android SQLite数据库的安全增强方法的数据库的安全操作方法实施例流程图。
步骤301中,目标动态库开始访问数据库;
目标动态库中包括对Sqlcipher.jar中的数据库操作的封装。
步骤302中,检测是否安全环境,若处于安全环境,转入步骤303中,反之,转入步骤310中;
步骤303中,解密Sqlcipher.jar;
Sqlcipher.jar包括对SQLite的数据库操作。
步骤304中,解密Libsqlcipher.so中的函数;
Libsqlcipher.so包括对SQLite的数据库的加/解密。
步骤305中,判断Sqlcipher.jar是否完整,若是完整的,转入步骤306,反之,转入步骤310;
步骤306中,加载Sqlcipher.jar;
步骤307中,解密Libsqlcipher.so;
步骤308中,判断Libsqlcipher.so是否完整,若是完整的,转入步骤309,反之,转入步骤310;
步骤309,加载Libsqlcipher.so;
步骤310,操作结束。
进一步地,上述数据库安全操作方法还可以包括:当检测到当前系统未处于安全模式下,系统改变调用函数路径或直接返回错误的信息,使得数据库无法在不安全环境中被访问;并记录下不安全的行为,保存在本地或上传到云端,以便后续进行数据库安全分析和预防。
图4示出了本发明一个实施例所涉及的具有Android SQLite数据库的计算机装置结构示意图,需要说明的是,计算机可以是桌上型计算机、笔记本、掌上电脑及云端服务器、智能手机等计算设备等。该计算机装置包括:处理器401、存储器402和总线403。
处理器401包括一个或一个以上处理核心,处理器402通过总线403与处理器401相连,存储器403用于存储程序指令,处理器401执行存储器402中的程序指令时实现上述各方法实施例提供的Android SQLite数据库的安全增强方法以及适用于上述安全增强方法的数据库的安全操作方法。
可选的,存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本发明还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的Android SQLite数据库的安全增强方法以及适用于上述安全增强方法的数据库的安全操作方法。
可选的,本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的Android SQLite数据库的安全增强方法以及适用于上述安全增强方法的数据库的安全操作方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储与一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用于以限制发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种Android SQLite数据库的安全增强方法,其特征在于,包括:
加密Sqlcipher.jar,其中,所述Sqlcipher.jar包括对SQLite的数据库操作和对Sqlcipher.jar中的函数进行代码抽取加密保存;
创建目标动态库,其中,所述目标动态库中包括对Sqlcipher.jar中的数据库操作的封装;
加密Libsqlcipher.so,其中,所述Libsqlcipher.so包括对SQLite的数据库的加/解密;
Sqlcipher.jar和Libsqlcipher.so加密的方法为:在应用程序编译生成时,对Sqlcipher.jar和Libsqlcipher.so进行加密,同时生成Sqlcipher.jar和Libsqlcipher.so的完整性值,保存在应用程序的安装包中;目标动态库在执行Sqlcipher.jar和Libsqlcipher.so中的函数时才对Sqlcipher.jar和Libsqlcipher.so进行解密,同时通过校验各自对应的完整性值来判断Sqlcipher.jar和Libsqlcipher.so的完整性;当目标动态库判断Sqlcipher.jar和Libsqlcipher.so的完整性值是正确的,才导入Sqlcipher.jar和Libsqlcipher.so;在导入Sqlcipher.jar或Libsqlcipher.so的同时检查是否被Hook,若被Hook,将Sqlcipher.jar或Libsqlcipher.so替换成被加密的Sqlcipher.jar或Libsqlcipher.so;
对Sqlcipher.jar中的函数进行代码抽取加密保存,将函数的函数内容保存在程序安装包内,并对函数体进行混淆及重写的处理,只有目标动态库在调用函数时才对函数进行解密。
2.根据权利要求1所述的Android SQLite数据库的安全增强方法,其特征在于,还包括:
绑定数据库文件密码和创建所述数据库文件的系统。
3.一种适用于如权利要求1-2任一所述的安全增强方法的数据库的安全操作方法,其特征在于,包括:
当所述目标动态库对数据库进行操作时,
S1,对所述Sqlcipher.jar进行解密;
S2,判断所述Sqlcipher.jar的完整性值是否正确,若正确,转到S3,若不正确,转到S7;
S3,加载所述Sqlcipher.jar;
S4,解密Libsqlcipher.so;
S5,判断所述Libsqlcipher.so的完整性值是否正确,若正确,转到S6,若不正确,转到S7;
S6,加载Libsqlcipher.so;
S7,操作结束。
4.根据权利要求3所述的数据库的安全操作方法,其特征在于,所述S1还包括:
对Sqlcipher.jar中的函数进行解密。
5.根据权利要求3所述的数据库的安全操作方法,其特征在于,所述S1之前还包括:
检测当前系统是否处于安全模式下。
6.根据权利要求3所述的数据库的安全操作方法,其特征在于,还包括:
当检测到当前系统未处于安全模式下,
改变调用函数路径或直接返回错误的信息;
记录下不安全的行为。
7.一种具有Android SQLite数据库的计算机装置,其特征在于,包括处理器和存储器,所述存储器存储有至少一段程序,所述程序由所述处理器执行以实现如权利要求1至2任一所述的安全增强方法以及执行以实现如权利要求3至6任一所述的安全操作方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至2任一所述的安全增强方法以及执行以实现如权利要求3至6任一所述的安全操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810776747.4A CN108985096B (zh) | 2018-07-13 | 2018-07-13 | 一种Android SQLite数据库安全增强、安全操作方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810776747.4A CN108985096B (zh) | 2018-07-13 | 2018-07-13 | 一种Android SQLite数据库安全增强、安全操作方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108985096A CN108985096A (zh) | 2018-12-11 |
CN108985096B true CN108985096B (zh) | 2021-11-02 |
Family
ID=64548900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810776747.4A Active CN108985096B (zh) | 2018-07-13 | 2018-07-13 | 一种Android SQLite数据库安全增强、安全操作方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108985096B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851849A (zh) * | 2019-11-12 | 2020-02-28 | 西安中科星图空间数据技术有限公司 | 一种免费地图影像数据的加密方法及装置 |
CN111324910A (zh) * | 2020-03-20 | 2020-06-23 | 山东大学 | 一种采用TrustZone技术实现内存数据库的方法 |
CN112231694A (zh) * | 2020-10-27 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 一种数据库的检测方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268444A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种云OS Java源代码保护方法 |
US9146881B2 (en) * | 2011-06-03 | 2015-09-29 | Commandhub, Inc. | Mobile data vault |
CN106372465A (zh) * | 2016-08-30 | 2017-02-01 | 北京深思数盾科技股份有限公司 | 一种动态链接库安全管理方法、系统和电子设备 |
CN108229106A (zh) * | 2017-12-26 | 2018-06-29 | 深圳数字太和科技有限公司 | 一种基于交互协议的动态库加解密及动态加载方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447398A (zh) * | 2014-08-15 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据安全保护方法及装置 |
CN107579987A (zh) * | 2017-09-22 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种服务器云端诊断系统规则库二级加密、访问方法及系统 |
-
2018
- 2018-07-13 CN CN201810776747.4A patent/CN108985096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146881B2 (en) * | 2011-06-03 | 2015-09-29 | Commandhub, Inc. | Mobile data vault |
CN104268444A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种云OS Java源代码保护方法 |
CN106372465A (zh) * | 2016-08-30 | 2017-02-01 | 北京深思数盾科技股份有限公司 | 一种动态链接库安全管理方法、系统和电子设备 |
CN108229106A (zh) * | 2017-12-26 | 2018-06-29 | 深圳数字太和科技有限公司 | 一种基于交互协议的动态库加解密及动态加载方法 |
Non-Patent Citations (1)
Title |
---|
SQLCipher之攻与防;FB客服;《https://cloud.tencent.com/developer/article/1040171》;20180208;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108985096A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2012337403B2 (en) | Cryptographic system and methodology for securing software cryptography | |
CN107077428B (zh) | 保护应用秘密的方法、电子系统和计算机存储介质 | |
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
US20210124824A1 (en) | Securing secret data embedded in code against compromised interrupt and exception handlers | |
CN108985096B (zh) | 一种Android SQLite数据库安全增强、安全操作方法以及装置 | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
CN111159658B (zh) | 字节码处理方法、系统、装置、计算机设备和存储介质 | |
US20210109870A1 (en) | Isolating memory within trusted execution environments | |
CN113569246A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
EP3178032B1 (en) | Embedding secret data in code | |
US11886350B2 (en) | System memory context determination for integrity monitoring and related techniques | |
US8972745B2 (en) | Secure data handling in a computer system | |
EP3440586B1 (en) | Method for write-protecting boot code if boot sequence integrity check fails | |
Bousquet et al. | Mandatory access control for the android dalvik virtual machine | |
WO2016126206A1 (en) | Method for obfuscation of code using return oriented programming | |
WO2022019910A1 (en) | Read protection for uefi variables | |
Hong et al. | MobiGemini: sensitive-based data and resource protection framework for mobile device | |
CN113849819B (zh) | 命令行指令的处理方法、装置、计算机设备和存储介质 | |
US20170147798A1 (en) | Mobile Device And Method Of Operating Mobile Device | |
Park et al. | Multi-partitioned bytecode wrapping scheme for minimizing code exposure on android | |
KR20190060181A (ko) | 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
CN112052464B (zh) | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 | |
EP3009952A1 (en) | System and method for protecting a device against attacks on procedure calls by encrypting arguments | |
CN116738382A (zh) | 代码处理方法、装置、计算机设备和存储介质 | |
CN115982699A (zh) | 基于安全内存的恶意攻击防御方法、装置、设备及介质 |
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 |