CN105389319A - 数据库的操作方法及装置 - Google Patents
数据库的操作方法及装置 Download PDFInfo
- Publication number
- CN105389319A CN105389319A CN201410455872.7A CN201410455872A CN105389319A CN 105389319 A CN105389319 A CN 105389319A CN 201410455872 A CN201410455872 A CN 201410455872A CN 105389319 A CN105389319 A CN 105389319A
- Authority
- CN
- China
- Prior art keywords
- key
- read
- database
- terminal
- write requests
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据库的操作方法及装置,其中,该方法包括:接收对第一终端的开源数据库的读写请求;在读写请求的触发下,生成访问开源数据库的第一密钥;比较第一密钥与第二密钥是否一致,其中,第二密钥为第一终端在创建开源数据库时根据第一终端的特征码生成的密钥;根据比较结果确定是否允许对开源数据库进行读写操作,其中,在比较结果指示一致时,允许对该开源数据库进行读写操作,在比较结果指示不一致时,禁止对该开源数据库进行读写操作。通过本发明解决了开源数据库存在安全隐患的问题,进而可以在系统层面对写入到数据库内的用户数据进行保护,避免了因这些数据被非法获取给用户带来安全隐含和损失。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据库的操作方法及装置。
背景技术
目前的应用最广泛的手机操作系统是Android,在Android系统中,大部分的系统及应用数据都使用SQLite数据库来存储,如系统配置数据、通讯录、短信、应用存储的网站登录密码、网上购物信息等。SQLite是一个非常小巧的跨平台嵌入式数据库,它的数据库以文件的形式存放在本地磁盘上。因其简单高效且跨平台的特性,SQLite在嵌入式系统中获得了广泛的应用,但是在其开源的免费版中却缺少了一个数据库中几乎是必备的功能:数据库的加密。这使得在获取到SQLite数据库的文件后,就可以使用任意的文本编辑工具或专门的SQLite数据库查看软件,直接看到数据库内存储的数据内容,存在较大的安全隐患。
遗憾的是,Android系统采用的恰好就是SQLite的开源免费版本。虽然Android系统限制了对系统及应用数据库文件的访问权限,但是获取到Android系统的Root权限后,所有人都可以不受限制的导出和查看这些数据库文件。一些恶意软件或病毒程序甚至可以通过特殊手段,在手机上直接读取这些数据库文件的内容。一旦这些数据被不怀好意的人拿到,就可能给使用者带来的潜在安全隐患和经济损失,因此有必要设计一种可以阻止数据库内容被轻易读出并识别的方法和技术来阻止这些信息的泄露。
针对相关技术中,开源数据库存在安全隐患的问题,还未提出有效的解决方案。
发明内容
本发明提供了一种数据库的操作方法及装置,以至少解决现有技术中开源数据库存在安全隐患的问题。
根据本发明的一个方面,提供了一种数据库的操作方法,包括:接收对第一终端的开源数据库的读写请求;在所述读写请求的触发下,生成访问所述开源数据库的第一密钥;比较所述第一密钥与第二密钥是否一致,其中,所述第二密钥为所述第一终端在创建所述开源数据库时根据所述第一终端的特征码生成的密钥;根据比较结果确定是否允许对所述开源数据库进行读写操作,其中,在比较结果指示一致时,允许对所述开源数据库进行读写操作,在比较结果指示不一致时,禁止对所述开源数据库进行读写操作。
优选地,生成访问所述开源数据库的所述第一密钥,包括:在所述读写请求为所述第一终端发送的读写请求时,根据所述第一终端的特征码生成所述第一密钥。
优选地,在所述读写请求为所述第一终端发送的读写请求时,所述比较结果指示所述第一密钥与所述第二密钥一致。
优选地,生成访问所述开源数据库的所述第一密钥,包括:在所述读写请求为第二终端发送的读写请求时,根据所述第二终端的特征码生成所述第一密钥。
优选地,在所述读写请求为所述第二终端发送的读写请求时,所述比较结果指示所述第一密钥与所述第二密钥不一致。
优选地,根据比较结果确定是否允许对所述开源数据库进行读写操作包括:根据比较结果确定是否允许对所述开源数据库本身进行读写操作,和/或对所述开源数据库中的内容进行读写操作。
优选地,所述特征码包括以下至少之一:终端的标识、蓝牙通信地址、WIFI地址。
根据本发明的另一个方面,提供了一种数据库的操作装置,包括:接收模块,用于接收对第一终端的开源数据库的读写请求;生成模块,用于在所述读写请求的触发下,生成访问所述开源数据库的第一密钥;比较模块,用于比较所述第一密钥与第二密钥是否一致,其中,所述第二密钥为所述第一终端在创建所述开源数据库时根据所述第一终端的特征码生成的密钥;确定模块,用于根据比较结果确定是否允许对所述开源数据库进行读写操作,其中,在比较结果指示一致时,允许对所述开源数据库进行读写操作,在比较结果指示不一致时,禁止对所述开源数据库进行读写操作。
优选地,所述生成模块还用于在所述读写请求为所述第一终端发送的读写请求时,根据所述第一终端的特征码生成所述第一密钥。
优选地,在所述读写请求为所述第一终端发送的读写请求时,所述比较模块还用于指示所述第一密钥与所述第二密钥一致。
优选地,所述生成模块还用于在所述读写请求为第二终端发送的读写请求时,根据所述第二终端的特征码生成所述第一密钥。
优选地,在所述读写请求为所述第二终端发送的读写请求时,所述比较模块还用于指示所述第一密钥与所述第二密钥不一致。
优选地,所述确定模块还用于根据比较结果确定是否允许对所述开源数据库本身进行读写操作,和/或对所述开源数据库中的内容进行读写操作。
优选地,所述特征码包括以下至少之一:终端的标识、蓝牙通信地址、WIFI地址。
通过本发明,接收对第一终端的开源数据库的读写请求;在读写请求的触发下,生成访问开源数据库的第一密钥;比较第一密钥与第二密钥是否一致,其中,第二密钥为第一终端在创建开源数据库时根据第一终端的特征码生成的密钥;根据比较结果确定是否允许对开源数据库进行读写操作,其中,在比较结果指示一致时,允许对该开源数据库进行读写操作,在比较结果指示不一致时,禁止对该开源数据库进行读写操作。解决了开源数据库存在安全隐患的问题,进而可以在系统层面对写入到数据库内的用户数据进行保护,避免了因这些数据被非法获取给用户带来安全隐含和损失。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据库的操作方法的流程图;
图2是根据本发明实施例的数据库的操作装置的结构框图;
图3是根据本发明实施例的数据库的操作方法的逻辑流程图;
图4是根据本发明实施例的数据库的操作业务流程流程图;
图5是根据本发明实施例的数据库密钥生成的业务流程图;
图6是本发明实施例的装置的模块组成图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种数据库的操作方法,图1是根据本发明实施例的数据库的操作方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,接收对第一终端的开源数据库的读写请求;
步骤S104,在该读写请求的触发下,生成访问该开源数据库的第一密钥;
步骤S106,比较该第一密钥与第二密钥是否一致,其中,第二密钥为第一终端在创建开源数据库时根据第一终端的特征码生成的密钥;
步骤S108,根据比较结果确定是否允许对开源数据库进行读写操作,其中,在比较结果指示一致时,允许对开源数据库进行读写操作,在比较结果指示不一致时,禁止对开源数据库进行读写操作。
通过上述步骤,将请求读写第一终端的开源数据库提供的第一密钥与第一终端在创建其开源数据库生成的第二密钥的比较,在第一密钥与第二密钥一致的情况下,才允许对开源数据库进行读写操作,相对于现有技术中没有对数据库进行加密或者仅仅为数据库设置了访问权限,上述步骤通过在系统层面对写入到数据库内的用户数据进行保护,避免了因这些数据被非法获取给用户带来安全隐含和损失。
上述步骤S104,涉及生成访问开源数据库的第一密钥,在一个优选实施例中,可以是开源数据库所属的第一终端发送的读写请求时,根据第一终端的特征码生成的第一密钥。在这种情况下,即在读写请求为第一终端发送的读写请求时,比较结果指示第一密钥与第二密钥一致,此时,允许对开源数据库进行读写操作。
在另一个优选实施例中,生成访问开源数据库的第一密钥,可以是在读写请求为第二终端发送的读写请求时,根据第二终端的特征码生成第一密钥。在这种情况下,比较结果指示第一密钥与第二密钥不一致,此时,不允许对开源数据库进行读写操作。
需要说明的是,对开源数据库进行读写操作可以包括多种方式,下面对此进行举例说明,在一个优选实施例中,根据比较结果确定是否允许对该开源数据库本身进行读写操作,在另一个优选实施例中,根据比较结果确定是否允许对该开源数据库中的内容进行读写操作。通过对数据库中的不同部分设置密钥,可以更加有针对性的对数据库中的各个部分进行加密设置,从而达到了更优的保密效果。
优选地,特征码包括以下至少之一:终端的标识、蓝牙通信地址、WIFI地址。
在本实施例中还提供了一种数据库的操作装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的数据库的操作装置的结构框图,如图2所示,该装置包括:接收模块22,用于接收对第一终端中开源数据库的读写请求;生成模块24,用于在读写请求的触发下,生成访问开源数据库的第一密钥;比较模块26,用于比较第一密钥与第二密钥是否一致,其中,第二密钥为第一终端在创建开源数据库时根据终端的特征码生成的密钥;确定模块28,用于根据比较结果确定是否允许对开源数据库进行读写操作,其中,在比较结果指示一致时,允许对开源数据库进行读写操作,在比较结果指示不一致时,禁止对开源数据库进行读写操作。
优选地,生成模块24还用于在读写请求为第一终端发送的读写请求时,根据第一终端的特征码生成第一密钥。
优选地,在读写请求为第一终端发送的读写请求时,比较模块26还用于指示第一密钥与第二密钥一致。
优选地,生成模块24还用于在读写请求为第二终端发送的读写请求时,根据第二终端的特征码生成第一密钥。
优选地,在读写请求为第二终端发送的读写请求时,比较模块26还用于指示第一密钥与第二密钥不一致。
优选地,确定模块28还用于根据比较结果确定是否允许对开源数据库本身进行读写操作,和/或对开源数据库中的内容进行读写操作。
优选地,特征码包括以下至少之一:终端的标识、蓝牙通信地址、WIFI地址。
针对相关技术中存在的上述问题,下面以Android系统中的SQLite的开源免费版本的数据库为例结合优选实施例进行说明。
阻止数据库内的信息被非法获取,既可在应用层面对写入数据库的数据进行加密,使得读取出来的数据对非法用户不可识别;也可以在系统层面对数据库本身或其存储的数据进行如加密、数据访问权限限制等手段,保证数据库内容的安全。
在应用层面对写入数据库的数据进行加密,虽然操作简单,但每次对数据库进行读/写操作的时候,都需对数据进行解密/加密,不但加重了应用的负担,而且因为Android系统的开放性,要求所有的应用都对写入数据库的数据进行加/解密在操作层面很难现实;在系统层面对数据库进行加密,则可由手机厂商在系统底层执行,不仅比应用具有更好的安全性,而且可以做到向应用透明,不影响应用的兼容性,是一种解决SQLite数据库安全隐患的好办法。
下面以在系统层面对数据库进行加密为例结合附图对本优选实施例进行详细说明。
本优选实施例的目的是提供一种Android系统下的数据库安全保护机制,同时描述了通过SQLite数据库的加密机制实现Android系统下的数据库安全保护的方法和技术,可以在系统层面对写入到数据库内的用户数据进行保护,避免因这些数据被非法获取给用户带来安全隐含和损失。
本优选实施例公开了一种Android系统下的数据库安全保护机制,该机制包括以下内容:对Android系统下使用的未加密的SQLite数据进行加密,以便防止数据库的内容被非法读出;这里的对数据库进行加密包括但不限于使用数据库本身的安全机制进行加密和对数据库文件本身进行加密;改进Android系统在框架层封装的数据库读写相关接口,在保证与原有的数据读写接口一致的前提下,提供对加密过的数据库的读写方法,从加密后的数据库中读写数据内容提供给Android上层的应用;因为修改的数据读写接口与Android原生的数据读写接口保持一致,对Android数据库的加密对应用而言是透明的,这些对底层的改动不影响应用的原有功能,不需要应用程序进行改动。
本优选实施例公开了一种通过SQLite数据库的加密机制实现Android系统下的数据库安全保护的方法和技术,该方法和技术包括以下几个基本模块:SQLite数据库的安全模块,该模块实现了SQLite数据库预留的加解密接口及相关的加解密函数、页面编码函数等,以构建一个具有加密功能的SQLite数据库;Android框架层封装的对加密数据库的读写接口,这里的数据读写接口主要是对Android框架中的原生数据库操作接口进行封装和扩展,在扩展接口中实现提供加密后数据库的密钥和打开加密数据库的相关操作;Android数据库密钥生成模块,因为数据库加密是对上层应用透明的,数据库的密钥由Android系统读取当前手机的串号等信息,通过一定的算法自动生成,且手机上的所有数据库都使用相同的密钥。但是每台手机都有唯一的密钥,手机上的数据库脱离当前手机运行环境后将无法使用。本优选实施例的Android系统下的数据库安全保护机制,可以应用于使用Android系统的手机、平板等设备。
图3是根据本发明实施例的数据库的操作方法的逻辑流程图,如图3所示,通过特定动作快速启动隐私保护模式的方法和机制包括以下步骤:
步骤S302:应用层发起数据库读写请求;
其中应用层是相对于Android系统的框架(Framework)层而言的,它包括了Android系统下的应用程序和Android系统功能模块对数据库的操作,如支撑Android系统运行的各个Provider数据库。
步骤S304:使用扩展的框架层数据库读写接口读写数据库;
其中扩展的框架层数据库读写接口,是通过在Android原生的数据库读写接口中添加跳转代码,将调用读写流程切换到扩展而来,应用层不关注底层的数据库是否加密,它们调用的接口都Android原生的数据库读写接口。
步骤S306:生成数据库密钥;
读取手机中可以唯一标识手机的特征码,使用指定的加密算法生成数据库的密钥,用于创建和打开数据库。
标识手机的唯一特征码包括但不限于手机串号、蓝牙、Wifi地址等,只要能够持续且唯一标识当前手机即可。
加密算法可以使用任意一种能够保护密钥的加密算法,此处的加密算法是保证数据库安全的特性之一。
为了使用方便和提高数据库的操作效率,生成密钥的动作可以在手机开机的时候生成并保存,每次读取数据库的时候直接获取并使用,但必须保证生成的密钥的安全性,防止被非法代码获取。
步骤S308:检查数据库是否已创建,检查数据库已创建时,执行步骤S312,检查数据库未创建时,执行步骤S310;
实际Android系统中创建数据库是在数据读写前是由专门的操作执行,这里检查数据库是否已创建是为了描述方便加入的步骤,目的是为了更加清晰的描述本发明的思路。
步骤S310:创建数据库并设置数据库的安全密钥;
步骤S312:数据库设置密钥试图打开数据库;
步骤S314:判断数据库安全模块验证设置的密钥是否正确,正确的情况下,执行步骤S316,不正确的情况下,执行步骤S318;
其中数据库安全模块负责数据库的安全性验证(密钥校验)、数据库自身或数据库内容的加/解密。
其中数据库安全模块可以是处于数据库外部与Android数据库操作框架之间的单独功能模块,也可以是应用数据库自身特性嵌入到数据库内部的功能模块,或者是结合了上述两者特性既有数据库内部安全的交互模块,只要能满足保证数据库数据内容的安全性能要求即可。
其中验证密钥是否正确,数据库安全模块根据密钥正确与否决定数据库是否允许被打开以便读写数据。
步骤S316:正常打开数据库,可向数据库读写数据;
其中向数据库读写数据,如数据库安全模块加密的对象是数据库本身,则数据库安全模块需对数据库文件本身进行解密,并负责将应用层请求的数据写入/读出;如数据库安全模块加密的对象是数据库数据内容,则数据库安全模块需对应用层请求的写输入数据进行加密并存入数据库;对应用层请求读出的数据,从数据库读出后需解密为明文,再提供给应用层。
不论是对数据库文件自身加密还是对存入数据库的数据内容进行加密,都需要能够有效防止数据库内容被非法读取和识别。
步骤S318:打开数据库失败,拒绝读写数据;
其中打开数据库失败,拒绝读写数据,会通过Android框架层将错误的读写返回到应用层供处理。
需要阐明的是,Android系统对数据库的读写时,不是每次都要打开数据库,而是在读写数据前打开数据库,完成后再关闭数据库。上面的步骤和流程只是为了阐述本发明的思路,不应将之作为Android系统下的数据库读写流程对待。使用Android系统的正常数据库操作流程操作加密数据库的流程和步骤,亦在本发明的保护范围之内。
SQLite数据库加密是通过SQLite数据库预留的数据库加密接口方式来实现的,SQLite的3.7版本预留的加密接口如下:
(1):sqlite3_key():指定数据库使用的密钥。
(2):sqlite3_rekey():为数据库重新设定密钥用于为数据库重新设定密钥。
(3):sqlite3CodecGetKey():返回数据库的当前密钥。
(4):sqlite3CodecAttach():将密钥及页面编码函数与数据库进行关联。
上面的加密接口只是提供了数据库加解密的特性,还需要单独提供对数据库数据的加/解密及数据库页面编码等辅助接口,并通过sqlite3CodecAttach与SQLite数据库关联,实现对数据库的加密功能。
对数据库数据的加/解密接口,可以使用任意一种能够保证数据安全性的加/解密算法。但是加/解密算法需要注意运行效率,过于复杂的加/解密算法虽然能够提供更好的数据安全性能,但会拖累数据库及手机的运行速度,影响用户体验。
另外,在另一个优选实施例中,因为所有数据库都使用统一的密钥且在同一台手机上唯一,没有数据库密钥重设的需求,sqlite3_rekey接口可以不用实现。
图4是根据本发明实施例的数据库的操作业务流程流程图,如图4所示,该流程包括如下步骤:
步骤S402:创建数据库;
其中创建数据库的操作由应用层发起。
步骤S404:设置数据库密钥;
其中设置数据库密钥由Android数据库框架的读写接口扩展来设置,设置的密钥由步骤S306生成,应用层不需干预。
步骤S406:提供密钥连接数据库;
其中提供密钥连接数据库由Android数据库框架的读写接口扩展执行,设置的密钥由步骤S306生成,应用层不需干预。
步骤S408:验证密钥是否正确,密钥正确的情况下,执行步骤S410,密钥不正确的情况下,执行步骤S416;
其中验证密钥是否正确由SQLitem数据库加密扩展接口执行,并根据验证结果决定数据库是否可以被打开,以便读写数据。
步骤S410:正常打开数据库;
其中打开数据库,和Android原生接口操作数据库类似,向应用层返回一个数据库连接,在关闭数据库连接前,应用层可不需再次验证密钥直接使用该连接向数据库中读写数据。
步骤S412:向数据库读/写数据,并对读/写数据内容进行解密/加密;
其中对读/写数据内容进行解密/加密,由SQLite数据库加密扩展接口在SQLite数据库内部执行,Android数据库框架读写接口,读/写的都是明文数据。
步骤S414:数据读写完成,关闭数据库;
其中关闭数据库由应用层发起,数据库关闭后,步骤S410打开的数据库连接也被关闭,后续再需要向数据库写入数据,应再出执行步骤S410,以获取数据库连接。
步骤S416:数据库打开失败,拒绝读写。
其中数据库打开失败,通过Android数据库框架读写接口返回给应用层,告知操作结果。
图5是根据本发明实施例的数据库密钥生成的业务流程图,如图5所示,该流程包括如下步骤:
步骤S502:获取手机的唯一识别串码;
其中手机的唯一识别串码是手机机身串号、Wifi/蓝牙地址等手机上存储的固定内容,不应是手机号码、IP地址等可能变更的内容,以便生成特定手机上唯一且固定的数据库密钥。
其中手机的唯一识别串码,可以是手机机身串号、Wifi/蓝牙地址等,也可以是这些内容的组合。考虑到该串码作为数据库密钥的加密明文,该串码应具有一定的复杂性,以保证数据库密钥不会被轻易破解。
步骤S504:对识别串码进行加密,生成加密后的数据库密钥。
加密串码生成密钥的加密算法,可以选择任意加密算法,因为加密后的密钥不需要还原,可以考虑加密强度较高且与数据库数据内容加/解密不同的加密算法及通过C/C++等本地代码实现加密算法,增强数据库密钥的安全性。
图6是本发明实施例的装置的模块组成图,如图6所示,该装置包含有以下几个基本模块组成:Android数据库框架扩展接口,用于将Android原生的数据库操作接口与加密数据库对接,向其上的应用层提供透明的加密数据库操作接口,向其下的加密数据库提供数据库密钥和操作加密后数据库的相关操作;数据库密钥生成模块,用于根据当前手机的唯一识别串码,生成适用于当前手机的加密数据库密钥;数据库安全模块,用于实现加密数据库的功能,包括数据库连接密钥,数据库自身文件或数据库内容的加密及解密,以保证数据库的内容不被非法读取和识别。
依据此装置的模块组成图,可以广泛应用于手机等使用Android系统的有数据库安全保护需求的终端设备中。
综上所述,通过本发明使用SQLite数据库加密机制实现的数据库安全保护的方法和机制,可以在对上层应用透明的前提下,提供系统级别的数据库安全保护机制,保障存储在数据库中数据内容的安全,避免了这些数据泄露给用户带来安全隐患和经济损失。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种数据库的操作方法,其特征在于,包括:
接收对第一终端的开源数据库的读写请求;
在所述读写请求的触发下,生成访问所述开源数据库的第一密钥;
比较所述第一密钥与第二密钥是否一致,其中,所述第二密钥为所述第一终端在创建所述开源数据库时根据所述第一终端的特征码生成的密钥;
根据比较结果确定是否允许对所述开源数据库进行读写操作,其中,在比较结果指示一致时,允许对所述开源数据库进行读写操作,在比较结果指示不一致时,禁止对所述开源数据库进行读写操作。
2.根据权利要求1所述的方法,其特征在于,生成访问所述开源数据库的所述第一密钥,包括:
在所述读写请求为所述第一终端发送的读写请求时,根据所述第一终端的特征码生成所述第一密钥。
3.根据权利要求2所述的方法,其特征在于,在所述读写请求为所述第一终端发送的读写请求时,所述比较结果指示所述第一密钥与所述第二密钥一致。
4.根据权利要求1所述的方法,其特征在于,生成访问所述开源数据库的所述第一密钥,包括:
在所述读写请求为第二终端发送的读写请求时,根据所述第二终端的特征码生成所述第一密钥。
5.根据权利要求4所述的方法,其特征在于,在所述读写请求为所述第二终端发送的读写请求时,所述比较结果指示所述第一密钥与所述第二密钥不一致。
6.根据权利要求1所述的方法,其特征在于,根据比较结果确定是否允许对所述开源数据库进行读写操作包括:
根据比较结果确定是否允许对所述开源数据库本身进行读写操作,和/或对所述开源数据库中的内容进行读写操作。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述特征码包括以下至少之一:
终端的标识、蓝牙通信地址、WIFI地址。
8.一种数据库的操作装置,其特征在于,包括:
接收模块,用于接收对第一终端的开源数据库的读写请求;
生成模块,用于在所述读写请求的触发下,生成访问所述开源数据库的第一密钥;
比较模块,用于比较所述第一密钥与第二密钥是否一致,其中,所述第二密钥为所述第一终端在创建所述开源数据库时根据所述第一终端的特征码生成的密钥;
确定模块,用于根据比较结果确定是否允许对所述开源数据库进行读写操作,其中,在比较结果指示一致时,允许对所述开源数据库进行读写操作,在比较结果指示不一致时,禁止对所述开源数据库进行读写操作。
9.根据权利要求8所述的装置,所述生成模块还用于在所述读写请求为所述第一终端发送的读写请求时,根据所述第一终端的特征码生成所述第一密钥。
10.根据权利要求9所述的装置,其特征在于,在所述读写请求为所述第一终端发送的读写请求时,所述比较模块还用于指示所述第一密钥与所述第二密钥一致。
11.根据权利要求8所述的装置,其特征在于,所述生成模块还用于在所述读写请求为第二终端发送的读写请求时,根据所述第二终端的特征码生成所述第一密钥。
12.根据权利要求11所述的装置,其特征在于,在所述读写请求为所述第二终端发送的读写请求时,所述比较模块还用于指示所述第一密钥与所述第二密钥不一致。
13.根据权利要求8所述的装置,其特征在于,所述确定模块还用于根据比较结果确定是否允许对所述开源数据库本身进行读写操作,和/或对所述开源数据库中的内容进行读写操作。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述特征码包括以下至少之一:
终端的标识、蓝牙通信地址、WIFI地址。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410455872.7A CN105389319A (zh) | 2014-09-09 | 2014-09-09 | 数据库的操作方法及装置 |
EP14889120.3A EP3193262A1 (en) | 2014-09-09 | 2014-11-18 | Database operation method and device |
US15/509,369 US20170262640A1 (en) | 2014-09-09 | 2014-11-18 | Database operation method and device |
PCT/CN2014/091442 WO2015154469A1 (zh) | 2014-09-09 | 2014-11-18 | 数据库的操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410455872.7A CN105389319A (zh) | 2014-09-09 | 2014-09-09 | 数据库的操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105389319A true CN105389319A (zh) | 2016-03-09 |
Family
ID=54287225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410455872.7A Pending CN105389319A (zh) | 2014-09-09 | 2014-09-09 | 数据库的操作方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170262640A1 (zh) |
EP (1) | EP3193262A1 (zh) |
CN (1) | CN105389319A (zh) |
WO (1) | WO2015154469A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198913A (zh) * | 2019-12-10 | 2020-05-26 | 北京康沙士信息科技有限公司 | 一种异构数据库网络融合的方法及系统 |
CN111316262A (zh) * | 2017-05-19 | 2020-06-19 | 思他信息网络处理英国有限公司 | 用于提供乘客或用户信息的系统、设备和方法 |
WO2022251987A1 (zh) * | 2021-05-29 | 2022-12-08 | 华为技术有限公司 | 一种数据加解密方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722115A (zh) * | 2022-02-15 | 2022-07-08 | 阿里巴巴(中国)有限公司 | 数据库操作方法和全加密数据库 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1856957A (zh) * | 2003-08-25 | 2006-11-01 | 捷讯研究有限公司 | 用于保证无线数据安全的系统和方法 |
CN101120569A (zh) * | 2004-12-28 | 2008-02-06 | 意大利电信股份公司 | 用户从用户终端远程访问终端设备的远程访问系统和方法 |
CN102426637A (zh) * | 2011-11-01 | 2012-04-25 | 北京人大金仓信息技术股份有限公司 | 一种嵌入式数据库加密存储方法 |
CN102664903A (zh) * | 2012-05-16 | 2012-09-12 | 李明 | 一种网络用户验证方法及系统 |
US20130145447A1 (en) * | 2011-12-01 | 2013-06-06 | Dashlane SAS | Cloud-based data backup and sync with secure local storage of access keys |
CN103441984A (zh) * | 2006-04-24 | 2013-12-11 | 鲁库斯无线公司 | 安全无线网络中的动态认证 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146261B (zh) * | 2007-10-19 | 2010-12-08 | 深圳掌媒科技有限公司 | 一种电子媒体数字保护的实现方法 |
CN101901320A (zh) * | 2010-07-29 | 2010-12-01 | 广东欧珀电子工业有限公司 | 一种用于电子书阅读器的数据防泄漏方法 |
CN103106372B (zh) * | 2013-01-17 | 2015-10-28 | 上海交通大学 | 用于Android系统的轻量级隐私数据加密方法及系统 |
CN103684786A (zh) * | 2013-12-10 | 2014-03-26 | 北京天威诚信电子商务服务有限公司 | 数字证书的存储与硬件载体绑定的方法及系统 |
-
2014
- 2014-09-09 CN CN201410455872.7A patent/CN105389319A/zh active Pending
- 2014-11-18 WO PCT/CN2014/091442 patent/WO2015154469A1/zh active Application Filing
- 2014-11-18 EP EP14889120.3A patent/EP3193262A1/en not_active Withdrawn
- 2014-11-18 US US15/509,369 patent/US20170262640A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1856957A (zh) * | 2003-08-25 | 2006-11-01 | 捷讯研究有限公司 | 用于保证无线数据安全的系统和方法 |
CN101120569A (zh) * | 2004-12-28 | 2008-02-06 | 意大利电信股份公司 | 用户从用户终端远程访问终端设备的远程访问系统和方法 |
CN103441984A (zh) * | 2006-04-24 | 2013-12-11 | 鲁库斯无线公司 | 安全无线网络中的动态认证 |
CN102426637A (zh) * | 2011-11-01 | 2012-04-25 | 北京人大金仓信息技术股份有限公司 | 一种嵌入式数据库加密存储方法 |
US20130145447A1 (en) * | 2011-12-01 | 2013-06-06 | Dashlane SAS | Cloud-based data backup and sync with secure local storage of access keys |
CN102664903A (zh) * | 2012-05-16 | 2012-09-12 | 李明 | 一种网络用户验证方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111316262A (zh) * | 2017-05-19 | 2020-06-19 | 思他信息网络处理英国有限公司 | 用于提供乘客或用户信息的系统、设备和方法 |
CN111316262B (zh) * | 2017-05-19 | 2024-04-12 | 思他信息网络处理英国有限公司 | 用于提供乘客或用户信息的系统、设备和方法 |
CN111198913A (zh) * | 2019-12-10 | 2020-05-26 | 北京康沙士信息科技有限公司 | 一种异构数据库网络融合的方法及系统 |
WO2022251987A1 (zh) * | 2021-05-29 | 2022-12-08 | 华为技术有限公司 | 一种数据加解密方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170262640A1 (en) | 2017-09-14 |
WO2015154469A1 (zh) | 2015-10-15 |
EP3193262A4 (en) | 2017-07-19 |
EP3193262A1 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103106372B (zh) | 用于Android系统的轻量级隐私数据加密方法及系统 | |
CN105812332A (zh) | 数据保护方法 | |
CN105637800A (zh) | 密钥基础结构 | |
CN105975867B (zh) | 一种数据处理方法 | |
US20120137372A1 (en) | Apparatus and method for protecting confidential information of mobile terminal | |
US9276748B2 (en) | Data-encrypting method and decrypting method for a mobile phone | |
CN105612715A (zh) | 具有可配置访问控制的安全处理单元 | |
CN111901360B (zh) | 一种适用于内网数据安全访问的控制系统与方法 | |
KR101625785B1 (ko) | 이동 단말 정보 보안 관리 방법, 장치 및 이동 단말 | |
CN101815292B (zh) | 一种移动终端的数据保护装置及方法 | |
CN103971034A (zh) | 一种保护Java软件的方法及装置 | |
CN103929312A (zh) | 一种移动终端及其个人信息保护方法和系统 | |
CN105337722A (zh) | 数据加密方法及装置 | |
CN105389319A (zh) | 数据库的操作方法及装置 | |
CN100476845C (zh) | 一种数字版权管理方法 | |
CN102368798A (zh) | 手机设置控制系统、方法、设置方法、装置及手机 | |
CN105516136A (zh) | 权限管理方法、装置和系统 | |
CN103458101B (zh) | 一种手机私密联系人的硬件加密存储方法及系统 | |
CN103370718B (zh) | 使用分布式安全密钥的数据保护方法、设备和系统 | |
CN103177224A (zh) | 用于终端的外接存储卡数据保护的方法及装置 | |
CN105447398A (zh) | 数据安全保护方法及装置 | |
KR101680536B1 (ko) | 기업용 모바일 업무데이터 보안 서비스 방법 및 그 시스템 | |
CN104955043A (zh) | 一种智能终端安全防护系统 | |
KR101206735B1 (ko) | 모바일 단말기의 보안 관련 정보 보호 장치 및 그 방법 | |
CN109784072B (zh) | 一种安全文件管理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160309 |
|
WD01 | Invention patent application deemed withdrawn after publication |