CN114844848A - 一种即时通讯应用的本地数据存储方法及终端 - Google Patents
一种即时通讯应用的本地数据存储方法及终端 Download PDFInfo
- Publication number
- CN114844848A CN114844848A CN202210257622.7A CN202210257622A CN114844848A CN 114844848 A CN114844848 A CN 114844848A CN 202210257622 A CN202210257622 A CN 202210257622A CN 114844848 A CN114844848 A CN 114844848A
- Authority
- CN
- China
- Prior art keywords
- value
- table field
- data storage
- field
- encryption
- 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000001965 increasing effect Effects 0.000 abstract description 9
- 238000005336 cracking Methods 0.000 abstract description 7
- 238000013461 design Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 39
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000008001 rakum palm Nutrition 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/063—Content adaptation, e.g. replacement of unsuitable content
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种即时通讯应用的本地数据存储方法及终端,接收本地数据存储请求,所述本地数据存储请求包括本地数据;根据所述本地数据存储请求获取加密基础表以及加密聊天表;基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;将所述第五密文保存至所述数据存储表,使得加密后的密文无法被破解,最终的数据存储表无法直接看出具体内容,实现本地数据的安全存储,增加了程序的健壮性,通过各个表之间环环相扣的设计,提高了数据存储的合理性和安全性,增加了黑客和攻击者破解的难度和时间成本,从而有效提高本地数据存储的安全性。
Description
技术领域
本发明涉及即时通讯技术领域,尤其涉及一种即时通讯应用的本地数据存储方法及终端。
背景技术
随着智能手机的普及和即时通讯应用的发展,通过即时通讯应用进行日常交际交流已经成为常态。大量的聊天数据的产生必然对数据的安全有着更高的要求,越来越的即时通讯应用都在通过不同的途径不断提升自己的数据安全性。而Briar应用是集认证安全、传输安全、存储安全为一体的多方位安全加密的通讯应用之一。
Briar最大的特点就是使用了去中心化的通讯方式,没有中心服务器,可以通过蓝牙、局域网、Tor网络等方式进行点对点通信,所以即使在没有互联网的时候,软件依然可以通过蓝牙通信功能进行数据传输。Briar还有着极其安全的信息加密机制可以保证信息传输中不会被任何人截取或者监听。软件还可以在有互联网的状态下通过Tor网络传输信息,以保证数据及其来源的安全。加上丰富的聊天功能,比如具有论坛、群聊等功能,为各类人士日常工作交流提供了更加安全的通讯手段。由于Briar等应用的去中心化通讯方式及端对端传输方式,提高了一定的数据传输的安全性,但同时也呈现了本地数据缓存上的一些不足。数据只在本地存储,没有其他备份,登录密码是本地数据还原和解密的唯一方式,如果密码丢失,就意味着数据永久的丢失,无法再找回,而且本地数据在存储时仅在数据库密钥上采用了复杂的流密码加密,一旦数据库密钥被逆向破解,存储的所有本地数据的安全性就无法得到保障。
发明内容
本发明所要解决的技术问题是:提供一种即时通讯应用的本地数据存储方法及终端,能够有效提高本地数据存储的安全性。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种即时通讯应用的本地数据存储方法,包括步骤:
接收本地数据存储请求,所述本地数据存储请求包括本地数据;
根据所述本地数据存储请求获取加密基础表以及加密聊天表;
基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;
将所述第五密文保存至所述数据存储表。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种即时通讯应用的本地数据存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收本地数据存储请求,所述本地数据存储请求包括本地数据;
根据所述本地数据存储请求获取加密基础表以及加密聊天表;
基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;
将所述第五密文保存至所述数据存储表。
本发明的有益效果在于:根据本地数据存储请求获取加密基础表以及加密聊天表,加密基础表以及加密聊天表是经过混淆处理的,基于加密基础表生成数据存储表,使得生成的数据存储表也相当于经过了混淆处理,并基于加密聊天表对本地数据进行加密,得到第五密文,将第五密文保存至所述数据存储表,使得加密后的密文无法被破解,最终的数据存储表无法直接看出具体内容,实现本地数据的安全存储,增加了程序的健壮性,通过各个表之间环环相扣的设计,提高了数据存储的合理性和安全性,增加了黑客和攻击者破解的难度和时间成本,从而有效提高本地数据存储的安全性。
附图说明
图1为本发明实施例的一种即时通讯应用的本地数据存储方法的步骤流程图;
图2为本发明实施例的一种即时通讯应用的本地数据存储终端的结构示意图;
图3为现有技术中的Briar应用节点之间的通信模式示意图;
图4为本发明实施例即时通讯应用数据的备份方法中的第一加密密钥和第二加密密钥的生成和获取流程示意图;
图5为本发明实施例即时通讯应用数据的备份方法中的加密基础表示意图;
图6为本发明实施例即时通讯应用数据的备份方法中的加密聊天表示意图;
图7为本发明实施例即时通讯应用数据的备份方法中的本地数据加密示意图;
图8为现有技术中的Briar应用的密文保存示意图;
图9为现有技术中的Briar应用的首次登录的密钥生成部分代码示意图;
图10为现有技术中的Briar应用的Salsa20-Poly1305算法对密钥的加密代码示意图;
图11为现有技术中的Briar应用的对密文进行解密的代码示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种即时通讯应用的本地数据存储方法,包括步骤:
接收本地数据存储请求,所述本地数据存储请求包括本地数据;
根据所述本地数据存储请求获取加密基础表以及加密聊天表;
基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;
将所述第五密文保存至所述数据存储表。
从上述描述可知,本发明的有益效果在于:根据本地数据存储请求获取加密基础表以及加密聊天表,加密基础表以及加密聊天表是经过混淆处理的,基于加密基础表生成数据存储表,使得生成的数据存储表也相当于经过了混淆处理,并基于加密聊天表对本地数据进行加密,得到第五密文,将第五密文保存至所述数据存储表,使得加密后的密文无法被破解,最终的数据存储表无法直接看出具体内容,实现本地数据的安全存储,增加了程序的健壮性,通过各个表之间环环相扣的设计,提高了数据存储的合理性和安全性,增加了黑客和攻击者破解的难度和时间成本,从而有效提高本地数据存储的安全性。
进一步地,所述接收本地数据存储请求之前包括:
接收加密基础表生成请求,所述加密基础表生成请求包括设备标识、设备机型、国际移动设备识别码和用户名;
确定第一预设值集合,并确定所述第一预设值集合对应的第一MD5值集合;
基于所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第一MD5值集合进行消息摘要计算,得到第一表名、第一表字段、第二表字段和第三表字段;
使用随机函数生成第一字符串和第二字符串,并将所述第一字符串确定为所述第一表字段的值,将所述第二字符串确定为所述第二表字段的值;
确定所述用户名对应的第五MD5值,并基于所述第一表字段的值与所述第二表字段的值对所述第五MD5值进行加密,得到第一密文;
将所述第一密文确定为所述第三表字段的值,并根据所述第一表名、所述第一表字段、所述第二表字段、所述第三表字段、所述第一表字段的值、所述第二表字段的值和所述第三表字段的值生成加密基础表。
由上述描述可知,基于设备标识、设备机型、国际移动设备识别码以及第一MD5值集合进行消息摘要计算,得到第一表名、第一表字段、第二表字段和第三表字段,将第一字符串确定为第一表字段的值,将第二字符串确定为第二表字段的值,将第一密文确定为第三表字段的值,以此生成加密基础表,表名、表字段以及表字段的值都经过了混淆处理,以数字编码的形式表示,且具有随机性,即使获取到加密基础表也无法直接获取加密基础表的具体含义,但实质内容又与用户相关联,解密后能够获取到有意义的语义,并且加密基础表的生成过程中结合了消息摘要计算以及随机字符串生成,对加密基础表进行逆向分析也无法获取到有效信息,大大增强了加密基础表的安全性。
进一步地,所述根据所述第一表名、所述第一表字段、所述第二表字段、所述第三表字段、所述第一表字段的值、所述第二表字段的值和所述第三表字段的值生成加密基础表之后包括:
接收加密聊天表生成请求;
根据所述加密聊天表生成请求确定第二预设值集合以及所述第二预设值集合对应的第二MD5值集合;
确定所述第三表字段的值对应的第十一MD5值;
基于所述第十一MD5值、所述第二MD5值集合进行消息摘要计算,得到第二表名、第四表字段、第五表字段和第六表字段;
使用所述随机函数生成第三字符串、第四字符串和第五字符串,并基于所述第三字符串和所述第四字符串对所述第五字符串进行加密,得到第二密文;
将所述第二密文确定为所述第六表字段的值;
基于所述第六表字段的值对所述第三字符串进行加密,得到第三密文,并基于所述第三密文确定所述第四表字段的值;
基于所述第六表字段的值对所述第四字符串进行加密,得到第四密文,并基于所述第四密文确定所述第五表字段的值;
根据所述第二表名、所述第四表字段、所述第五表字段、所述第六表字段、所述第六表字段的值、所述第四表字段的值和所述第五表字段的值生成加密聊天表。
由上述描述可知,表名和表字段是基于加密基础表进行消息摘要计算得来的,再利用生成的随机字符串确定表字段的值,实现了加密聊天表的混淆处理,并与加密基础表关联,确保了加密聊天表的安全性,避免加密聊天表被破解的现象发生。
进一步地,所述基于所述加密基础表生成数据存储表包括:
确定第三预设值集合,并确定所述第三预设值集合对应的第三MD5值集合;
基于所述加密基础表的所述第十MD5值和所述第三MD5值集合进行消息摘要计算,得到第三表名和第七表字段;
根据所述第三表名和第七表字段生成数据存储表。
由上述描述可知,最终存储本地数据的数据存储表利用加密基础表的第十MD5值生成表名和表字段,在无法获取加密基础表的有效信息的情况下,也无法获取数据存储表的有效信息,进一步加强了本地数据存储的安全性和可靠性。
进一步地,所述第三预设值集合包括第九预设值和第十预设值;
所述第三MD5值集合包括所述第九预设值对应的第九MD5值和所述第十预设值对应的第十MD5值;
所述基于所述第三表字段的值对应的第十一MD5值和所述第三MD5值集合进行消息摘要计算,得到第三表名和第七表字段包括:
对所述第三表字段的值对应的第十一MD5值和所述第九MD5值进行消息摘要计算,得到第三表名;
对所述第三表字段的值对应的第十一MD5值和所述第十MD5值进行消息摘要计算,得到第七表字段。
由上述描述可知,对第三表字段的值对应的第十一MD5值和第九MD5值进行消息摘要计算,得到第三表名,对第三表字段的值对应的第十一MD5值和第十MD5值进行消息摘要计算,得到第七表字段,当黑客或不法分子想获取数据存储表时,就必须先确定加密基础表的生成方式,通过环环相扣的设计大大提高了本地数据存储的安全性。
进一步地,所述基于所述加密聊天表对所述本地数据进行加密,得到第五密文包括:
基于所述加密聊天表的所述第四表字段的值和所述第五表字段的值对所述本地数据使用AES-CBC模式进行加密,得到第五密文。
由上述描述可知,对本地数据加密时基于加密聊天表的第四表字段的值和第五表字段的值使用AES-CBC模式进行加密,想要对本地数据进行解密,就需要先确定加密聊天表的生成方式,而加密聊天表又依赖于加密基础表,因此还需要对加密基础表进行分析,通过这样的方式有效增强了本地数据存储的稳定性和安全性。
进一步地,所述将所述第五密文保存至所述数据存储表包括:
将所述第五密文保存至所述数据存储表的所述第七表字段中。
由上述描述可知,将第五密文保存至数据存储表的第七表字段中,即使被他人获取到数据存储表,也无法分辨表字段的含义和表字段的值的含义,以此避免本地数据的具体信息被他人获取,从而确保了即时通讯应用用户的隐私安全。
进一步地,所述接收加密基础表生成请求之前包括:
接收登录请求,所述登录请求包括用户名和密码;
根据所述登录请求判断是否为首次登录,若是,则根据所述用户名和密码生成第一加密密钥和第二加密密钥;
使用所述第二加密密钥对所述第一加密密钥进行加密,得到加密后的第一加密密钥;
将所述加密后的第一加密密钥保存至本地缓存文件,并将所述第二加密密钥写入KeyStore文件。
由上述描述可知,当用户是首次登录时,根据用户的用户名和密码生成第一加密密钥和第二加密密钥,第二加密密钥用于对第一加密密钥进行加密,第一加密密钥用于对数据库进行加密,将第二加密密钥写入KeyStore文件,KeyStore文件为Android***自己的密钥库,具有较高的安全性,即使用户忘记了密码也能够从KeyStore文件获取第二加密密钥,使用第二加密密钥获取第一加密密钥,来实现对数据库的操作,避免出现忘记密码而导致无法对数据库进行操作,进而丢失本地数据的情况。
进一步地,所述将所述第五密文保存至所述数据存储表之后包括:
将所述加密基础表、所述加密聊天表以及所述数据存储表保存至数据库;
使用所述第一加密密钥对所述数据库进行加密,得到加密后的数据库。
由上述描述可知,将加密基础表、加密聊天表以及数据存储表保存至数据库,使用第一加密密钥对数据库进行加密,进一步加强了本地数据的安全性,确保了加密基础表、加密聊天表以及数据存储表不那么轻易被他人获取到,从而有效提高本地数据存储的安全性。
请参照图2,本发明另一实施例提供了一种即时通讯应用的本地数据存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述即时通讯应用的本地数据存储方法中的各个步骤。
本发明上述的即时通讯应用的本地数据存储方法能够适用于去中心化的即时通讯应用中,比如Briar应用,以下通过具体实施方式进行说明:
实施例一
以Briar为例,如图3所示,Briar各个应用端之间都是不经过服务器可以直接进行数据安全通信的,对数据传输的安全和个人隐私处理得比较好;Briar可以通过多种网络途径进行传输消息,可以基于Tor网络进行匿名传输,如果Tor匿名网络被封锁,应用也可以使用WiFi网络进行局域网传输,甚至在没有局域网络的情况下通过蓝牙进行近距离数据通讯,这个传输特点及传输模式保证数据在传输过程中安全性的同时也为数据的本地存储和还原带来了很大的隐患,数据没有统一服务器存储,所有数据仅在本设备中存储,而且唯一还原数据及解密的方法是用户的登录密码,用户丢失密码将导致数据永远丢失,另外,可以通过逆向分析模拟登录过程hook到数据库密钥,本地存储的数据也将被泄露;
Briar的本地数据库都是经过数据加密的,安全性非常之高,主要是密钥没有在本地缓存的,每次的解密密钥都是要通过输入的密码作为解密参数对本地缓存的密钥密文先进行解密运算获取数据库密钥的明文,而且密码的安全性要求以及去中心化的通信特点,密码是没有任何地方缓存的,也就是说,没有服务器缓存登录密码,本地也不会缓存登录密码,登录的安全认证环节都是在客户端进行的,本地既不会缓存登录密钥和登录的cookie,也不会在服务端存储任何和登录密钥相关的token,用户个人输入的登录密码是数据库解密的唯一外部输入参数;
首次登录时,如图9所示,通过登录时的用户名和密码生成数据库加密密钥KEY1和对数据库加密密钥进行加密的KEY2,通过数据库加密密钥KEY1操作应用重要数据的缓存数据库,每次数据库的读取都需要数据库加密密钥KEY1才能访问;对数据库加密密钥自身加密后的密文保存在应用本地数据目录(data\data\org.briarproject.briar.android)下的‘app_key\db.key’文件中,如图8所示,图8展示了保存在‘app_key\db.key’文件中的密文;
如图10所示,通过逆向分析可以获取到密钥的加密方法是采用移动端常用的Salsa20-Poly1305加密认证算法,非首次登录时,通过应用的登录密码作为参数,采用首次登录时KEY2的生成方法,生成对数据库加密密钥进行加密的密钥KEY2,然后从本地储存的‘app_key\db.key’文件中读取数据密钥的加密密文,如图11所示,通过KEY2对密文进行逆向解密,生成明文的数据库加密密钥KEY1,然后通过KEY1在访问本地的应用数据库的数据,完成数据本地存储的安全性保护,这种本地数据的安全保护流程适用于大多数这种点对点的去中心化的即时通讯模式;
名词解释:
Salsa20-Poly1305算法:Salsa20-Poly1305算法是由Salsa20流密码加密算法和Poly1305消息摘要算法结合的一种应用在互联网安全协议中的认证加密算法;
Android KeyStore:Android***的Keystore文件可以理解为Android***自己的密钥库,是一个存储密钥的容器,可以用来为每个独立的应用存储自己的密钥;
消息摘要算法:消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文;消息摘要算法的特点:(1)无论输入的消息有多长,计算出来的消息摘要的长度总是固定的;(2)只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同,相同的输入必会产生相同的输出;(3)消息摘要函数是无陷门的单向函数,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息;
请参照图1、图4-图7,本实施例的一种即时通讯应用的本地数据存储方法,包括步骤:
S0.1、接收登录请求,所述登录请求包括用户名和密码;
S0.2、根据所述登录请求判断是否为首次登录,若是,则根据所述用户名和密码生成第一加密密钥和第二加密密钥;若否,则在登录成功后从本地缓存文件读取加密后的第一加密密钥,从KeyStore文件读取第二加密密钥,使用第二加密密钥对所述加密后的第一加密密钥进行解密,得到第一加密密钥,如图4所示;
其中,所述第一加密密钥KEY1和第二加密密钥KEY2在首次登录之后就固定下来,后续登录相同账号不再生成新的第一加密密钥和第二加密密钥,当用户更改密码时,再重新生成根据用户名和新密码生成第一加密密钥和第二加密密钥,如图4所示;
S0.3、使用所述第二加密密钥对所述第一加密密钥进行加密,得到加密后的第一加密密钥;
具体的,根据Salsa20-Poly1305算法使用第二加密密钥KEY2对所述第一加密密钥KEY1进行加密,得到加密后的第一加密密钥KEY1-SECRET;
S0.4、将所述加密后的第一加密密钥保存至本地缓存文件,并将所述第二加密密钥写入KeyStore文件(Android KeyStore System);
用户在后续登录账号成功后,通过Android***仅限应用本身访问自己的KeyStore文件的存储数据的特点,从KeyStore文件中获取KEY2,使用KEY2对KEY1-SERRET进行解密,从而获取数据库的第一加密密钥KEY1;无论应用密码修改、密码丢失或丢失进行密码找回后(可增加密码找回流程)也是可以重新获取原来的缓存数据(只要不清理原来的缓存文件),如图4所示;
S0.5、接收加密基础表生成请求,所述加密基础表生成请求包括设备标识、设备机型、国际移动设备识别码和用户名,如图7所示;
S0.6、确定第一预设值集合,并确定所述第一预设值集合对应的第一MD5值集合;
其中,所述第一预设值集合包括第一预设值、第二预设值、第三预设值和第四预设值,所述第一MD5值集合包括所述第一预设值对应的第一MD5值、所述第二预设值对应的第二MD5值、所述第三预设值对应的第三MD5值和所述第四预设值对应的第四MD5值;
本实施例中,所述第一预设值为root_Table,所述第二预设值为root_Key,所述第三预设值为root_IV,所述第四预设值为root_Value;
S0.7、基于所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第一MD5值集合进行消息摘要计算,得到第一表名、第一表字段、第二表字段和第三表字段,具体包括:
S0.7.1、根据所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第一MD5值进行消息摘要计算,得到第一表名;
具体的,根据Android对应的设备ID、设备机型、IMEI(国际移动设备识别码,International Mobile Equipment Identity)以及root_Table的MD5值进行消息摘要计算,得到第一表名;
S0.7.2、根据所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第二MD5值进行消息摘要计算,得到第一表字段;
具体的,根据Android对应的设备ID、设备机型、IMEI以及root_Key的MD5值进行消息摘要计算,得到第一表字段;
S0.7.3、根据所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第三MD5值进行消息摘要计算,得到第二表字段;
具体的,根据Android对应的设备ID、设备机型、IMEI以及root_IV的MD5值进行消息摘要计算,得到第二表字段;
S0.7.4、根据所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第四MD5值进行消息摘要计算,得到第三表字段;
具体的,根据Android对应的设备ID、设备机型、IMEI以及root_Value的MD5值进行消息摘要计算,得到第三表字段;
S0.8、使用随机函数生成第一字符串和第二字符串,并将所述第一字符串确定为所述第一表字段的值,将所述第二字符串确定为所述第二表字段的值;
其中,所述第一字符串为32位字符串,所述第二字符串为16位字符串;
S0.9、确定所述用户名对应的第五MD5值,并基于所述第一表字段的值与所述第二表字段的值对所述第五MD5值进行加密,得到第一密文;
具体的,确定用户名user_id对应的第五MD5值,并使用AES-CBC模式将第一表字段的值作为AES的key,将第二表字段的值作为AES的IV向量,对第五MD5值进行加密,得到第一密文;
S0.10、将所述第一密文确定为所述第三表字段的值,并根据所述第一表名、所述第一表字段、所述第二表字段、所述第三表字段、所述第一表字段的值、所述第二表字段的值和所述第三表字段的值生成加密基础表,如图5所示,其中,从左往右的第二个字段开始分别为生成的所述第一表字段、所述第二表字段、所述第三表字段;
S0.11、接收加密聊天表生成请求;
S0.12、根据所述加密聊天表生成请求确定第二预设值集合以及所述第二预设值集合对应的第二MD5值集合;
其中,所述第二预设值集合包括第五预设值、第六预设值、第七预设值和第八预设值,所述第二MD5值集合包括所述第五预设值对应的第六MD5值、所述第六预设值对应的第七MD5值、所述第七预设值对应的第八MD5值和所述第八预设值对应的第十二MD5值;
本实施例中,所述第五预设值为chat_Table,所述第六预设值为chat_Key,所述第七预设值为chat_IV,所述第八预设值为chat_Value;
S0.13、确定所述第三表字段的值对应的第十一MD5值;
S0.14、基于所述第十一MD5值、所述第二MD5值集合进行消息摘要计算,得到第二表名、第四表字段、第五表字段和第六表字段,如图7所示,具体包括:
S0.14.1、将所述第十一MD5值加上所述第六MD5值进行消息摘要计算,得到第二表名;
S0.14.2、将所述第十一MD5值加上所述第七MD5值进行消息摘要计算,得到第四表字段;
S0.14.3、将所述第十一MD5值加上所述第八MD5值进行消息摘要计算,得到第五表字段;
S0.14.4、将所述第十一MD5值加上所述第十二MD5值进行消息摘要计算,得到第六表字段;
S0.15、使用所述随机函数生成第三字符串、第四字符串和第五字符串,并基于所述第三字符串和所述第四字符串对所述第五字符串进行加密,得到第二密文;
其中,所述第三字符串为32位字符串,所述第四字符串为16位字符串,所述第五字符串为32位字符串;
具体的,使用AES-CBC模式(Advanced Encryption Standard-Cipher BlockChaining,对称加密算法-密码分组链接模式)将第三字符串作为AES的key,将第四字符串作为AES的IV向量,对第五字符串进行加密,得到第二密文;
S0.16、将所述第二密文确定为所述第六表字段的值;
S0.17、基于所述第六表字段的值对所述第三字符串进行加密,得到第三密文,并基于所述第三密文确定所述第四表字段的值,具体包括:
S0.17.1、对所述第六表字段的值截取第一预设位,得到第一目标值;
S0.17.2、根据所述第一目标值对所述第三字符串进行加密,得到第三密文;
具体的,使用AES-EBC模式(Advanced Encryption Standard-ElectronicCodebook Book,对称加密算法-电码本模式)将第一目标值作为AES的key,对所述第三字符串进行加密,得到第三密文;
S0.17.3、对所述第三密文截取第二预设位,得到第一目标密文;
S0.17.4、将所述第一目标密文确定为所述第四表字段的值;
S0.18、基于所述第六表字段的值对所述第四字符串进行加密,得到第四密文,并基于所述第四密文确定所述第五表字段的值,具体包括:
S0.18.1、对所述第六表字段的值截取所述第一预设位,得到第二目标值;
S0.18.2、根据所述第二目标值对所述第四字符串进行加密,得到第四密文;
具体的,使用AES的EBC模式将第二目标值作为AES的key,对所述第四字符串进行加密,得到第四密文;
S0.18.3、对所述第四密文截取第三预设位,得到第二目标密文;
S0.18.4、将所述第二目标密文确定为所述第五表字段的值;
S0.19、根据所述第二表名、所述第四表字段、所述第五表字段、所述第六表字段、所述第六表字段的值、所述第四表字段的值和所述第五表字段的值生成加密聊天表,如图6所示,其中,从左往右的第二个字段开始分别为生成的所述第四表字段、所述第五表字段、所述第六表字段;
S1、接收本地数据存储请求,所述本地数据存储请求包括本地数据;
S2、根据所述本地数据存储请求获取加密基础表以及加密聊天表;
S3、基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文,如图7所示,具体包括:
S3.1、确定第三预设值集合,并确定所述第三预设值集合对应的第三MD5值集合;
其中,所述第三预设值集合包括第九预设值和第十预设值;所述第三MD5值集合包括所述第九预设值对应的第九MD5值和所述第十预设值对应的第十MD5值;
本实施例中,所述第九预设值为chat_private_chatinfo,所述第十预设值为chat_msg;
S3.2、基于所述第三表字段的值对应的第十一MD5值和所述第三MD5值集合进行消息摘要计算,得到第三表名和第七表字段,具体包括:
S3.2.1、对所述第三表字段的值对应的第十一MD5值和所述第九MD5值进行消息摘要计算,得到第三表名;
具体的,将第三表字段的值对应的第十一MD5值加上chat_private_chatinfo的MD5值进行消息摘要计算,得到第三表名;
S3.2.2、对所述第三表字段的值对应的第十一MD5值和所述第十MD5值进行消息摘要计算,得到第七表字段;
具体的,将第三表字段的值对应的第十一MD5值加上chat_msg的MD5值进行消息摘要计算,得到第七表字段;
S3.3、根据所述第三表名和第七表字段生成数据存储表;
S3.4、基于所述加密聊天表对所述本地数据进行加密,得到第五密文,具体包括:
基于所述加密聊天表的所述第四表字段的值和所述第五表字段的值对所述本地数据使用AES-CBC模式进行加密,得到第五密文;
具体的,将加密聊天表的第四表字段的值作为AES的key,将第五表字段的值作为IV向量,对本地数据使用AES-CBC模式进行加密,得到第五密文;
S4、将所述第五密文保存至所述数据存储表;
具体的,将所述第五密文保存至所述数据存储表的所述第七表字段中;
在另一种可选的实施方式中,若本地数据为聊天记录,则所述第三预设值集合还包括第十一预设值;所述第三MD5值集合还包括所述第十一预设值对应的第十三MD5值,所述第十一预设值为chat_msg_sender;将第三表字段的值对应的第十一MD5值加上chat_msg_sender的MD5值进行消息摘要计算,得到第八表字段,所述第八表字段可用于存储聊天记录的发送者信息,还可依此生成数据存储表的其他自定义字段名称;
S5、将所述加密基础表、所述加密聊天表以及所述数据存储表保存至数据库;
S6、使用所述第一加密密钥对所述数据库进行加密,得到加密后的数据库;
通过动态生成混淆的SQLite数据库表名和字段名及动态随机的对称加密参数,用于对本地数据存储时再次加密,实现本地数据的安全存储,该方法可以增加程序的健壮性,提高数据存储的合理性和安全性,从而增加黑客和攻击者破解的难度和时间成本,即使数据库密钥被破解的情况下也是很难能解析到本地数据的原文。
实施例二
请参照图2,本实施例的一种即时通讯应用的本地数据存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的即时通讯应用的本地数据存储方法中的各个步骤。
综上所述,本发明提供的一种即时通讯应用的本地数据存储方法及终端,在存储本地数据之前,生成加密基础表,表名、表字段以及表字段的值都经过了混淆处理,以数字编码的形式表示,且具有随机性,即使获取到加密基础表也无法直接获取加密基础表的具体含义,但实质内容又与用户相关联,解密后能够获取到有意义的语义,并且加密基础表的生成过程中结合了消息摘要计算以及随机字符串生成,对加密基础表进行逆向分析也无法获取到有效信息;再生成加密聊天表,加密聊天表的表名和表字段是基于加密基础表进行消息摘要计算得来的,再利用生成的随机字符串确定表字段的值,实现了加密聊天表的混淆处理,并与加密基础表关联,确保了加密聊天表的安全性,避免加密聊天表被破解的现象发生;根据本地数据存储请求获取加密基础表以及加密聊天表;基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;将所述第五密文保存至所述数据存储表,使得加密后的密文无法被破解,最终的数据存储表无法直接看出具体内容,实现本地数据的安全存储,增加了程序的健壮性,通过各个表之间环环相扣的设计,提高了数据存储的合理性和安全性,增加了黑客和攻击者破解的难度和时间成本,从而有效提高本地数据存储的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种即时通讯应用的本地数据存储方法,其特征在于,包括步骤:
接收本地数据存储请求,所述本地数据存储请求包括本地数据;
根据所述本地数据存储请求获取加密基础表以及加密聊天表;
基于所述加密基础表生成数据存储表,并基于所述加密聊天表对所述本地数据进行加密,得到第五密文;
将所述第五密文保存至所述数据存储表。
2.根据权利要求1所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述接收本地数据存储请求之前包括:
接收加密基础表生成请求,所述加密基础表生成请求包括设备标识、设备机型、国际移动设备识别码和用户名;
确定第一预设值集合,并确定所述第一预设值集合对应的第一MD5值集合;
基于所述设备标识、所述设备机型、所述国际移动设备识别码以及所述第一MD5值集合进行消息摘要计算,得到第一表名、第一表字段、第二表字段和第三表字段;
使用随机函数生成第一字符串和第二字符串,并将所述第一字符串确定为所述第一表字段的值,将所述第二字符串确定为所述第二表字段的值;
确定所述用户名对应的第五MD5值,并基于所述第一表字段的值与所述第二表字段的值对所述第五MD5值进行加密,得到第一密文;
将所述第一密文确定为所述第三表字段的值,并根据所述第一表名、所述第一表字段、所述第二表字段、所述第三表字段、所述第一表字段的值、所述第二表字段的值和所述第三表字段的值生成加密基础表。
3.根据权利要求2所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述根据所述第一表名、所述第一表字段、所述第二表字段、所述第三表字段、所述第一表字段的值、所述第二表字段的值和所述第三表字段的值生成加密基础表之后包括:
接收加密聊天表生成请求;
根据所述加密聊天表生成请求确定第二预设值集合以及所述第二预设值集合对应的第二MD5值集合;
确定所述第三表字段的值对应的第十一MD5值;
基于所述第十一MD5值、所述第二MD5值集合进行消息摘要计算,得到第二表名、第四表字段、第五表字段和第六表字段;
使用所述随机函数生成第三字符串、第四字符串和第五字符串,并基于所述第三字符串和所述第四字符串对所述第五字符串进行加密,得到第二密文;
将所述第二密文确定为所述第六表字段的值;
基于所述第六表字段的值对所述第三字符串进行加密,得到第三密文,并基于所述第三密文确定所述第四表字段的值;
基于所述第六表字段的值对所述第四字符串进行加密,得到第四密文,并基于所述第四密文确定所述第五表字段的值;
根据所述第二表名、所述第四表字段、所述第五表字段、所述第六表字段、所述第六表字段的值、所述第四表字段的值和所述第五表字段的值生成加密聊天表。
4.根据权利要求2所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述基于所述加密基础表生成数据存储表包括:
确定第三预设值集合,并确定所述第三预设值集合对应的第三MD5值集合;
基于所述第三表字段的值对应的第十一MD5值和所述第三MD5值集合进行消息摘要计算,得到第三表名和第七表字段;
根据所述第三表名和第七表字段生成数据存储表。
5.根据权利要求4所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述第三预设值集合包括第九预设值和第十预设值;
所述第三MD5值集合包括所述第九预设值对应的第九MD5值和所述第十预设值对应的第十MD5值;
所述基于所述第三表字段的值对应的第十一MD5值和所述第三MD5值集合进行消息摘要计算,得到第三表名和第七表字段包括:
对所述第三表字段的值对应的第十一MD5值和所述第九MD5值进行消息摘要计算,得到第三表名;
对所述第三表字段的值对应的第十一MD5值和所述第十MD5值进行消息摘要计算,得到第七表字段。
6.根据权利要求3所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述基于所述加密聊天表对所述本地数据进行加密,得到第五密文包括:
基于所述加密聊天表的所述第四表字段的值和所述第五表字段的值对所述本地数据使用AES-CBC模式进行加密,得到第五密文。
7.根据权利要求4所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述将所述第五密文保存至所述数据存储表包括:
将所述第五密文保存至所述数据存储表的所述第七表字段中。
8.根据权利要求2所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述接收加密基础表生成请求之前包括:
接收登录请求,所述登录请求包括用户名和密码;
根据所述登录请求判断是否为首次登录,若是,则根据所述用户名和密码生成第一加密密钥和第二加密密钥;
使用所述第二加密密钥对所述第一加密密钥进行加密,得到加密后的第一加密密钥;
将所述加密后的第一加密密钥保存至本地缓存文件,并将所述第二加密密钥写入KeyStore文件。
9.根据权利要求8所述的一种即时通讯应用的本地数据存储方法,其特征在于,所述将所述第五密文保存至所述数据存储表之后包括:
将所述加密基础表、所述加密聊天表以及所述数据存储表保存至数据库;
使用所述第一加密密钥对所述数据库进行加密,得到加密后的数据库。
10.一种即时通讯应用的本地数据存储终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的一种即时通讯应用的本地数据存储方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257622.7A CN114844848B (zh) | 2022-03-16 | 2022-03-16 | 一种即时通讯应用的本地数据存储方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257622.7A CN114844848B (zh) | 2022-03-16 | 2022-03-16 | 一种即时通讯应用的本地数据存储方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114844848A true CN114844848A (zh) | 2022-08-02 |
CN114844848B CN114844848B (zh) | 2024-08-20 |
Family
ID=82561605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210257622.7A Active CN114844848B (zh) | 2022-03-16 | 2022-03-16 | 一种即时通讯应用的本地数据存储方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844848B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028699A1 (en) * | 2013-03-13 | 2016-01-28 | Jumpto Media Inc. | Encrypted network storage space |
CN106919348A (zh) * | 2017-03-24 | 2017-07-04 | 枣庄学院 | 防暴力破解的分布式存储***及存储方法 |
CN109858255A (zh) * | 2018-12-19 | 2019-06-07 | 杭州安恒信息技术股份有限公司 | 数据加密存储方法、装置及实现装置 |
CN110427779A (zh) * | 2019-08-13 | 2019-11-08 | 威富通科技有限公司 | 一种数据库表字段的加、解密方法及数据服务器 |
CN112149076A (zh) * | 2020-10-10 | 2020-12-29 | 上海威固信息技术股份有限公司 | 一种安全的计算机存储*** |
US20210152351A1 (en) * | 2019-04-09 | 2021-05-20 | Mark Rodney Anson | Computer System Implemented Method for Generating a Symmetric Encryption Key Used for Encrypting and Decrypting a Computer System User's Hidden Data |
CN113886847A (zh) * | 2021-09-15 | 2022-01-04 | 金钱猫科技股份有限公司 | 一种ipfs文件***加密存储与访问的方法和*** |
-
2022
- 2022-03-16 CN CN202210257622.7A patent/CN114844848B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028699A1 (en) * | 2013-03-13 | 2016-01-28 | Jumpto Media Inc. | Encrypted network storage space |
CN106919348A (zh) * | 2017-03-24 | 2017-07-04 | 枣庄学院 | 防暴力破解的分布式存储***及存储方法 |
CN109858255A (zh) * | 2018-12-19 | 2019-06-07 | 杭州安恒信息技术股份有限公司 | 数据加密存储方法、装置及实现装置 |
US20210152351A1 (en) * | 2019-04-09 | 2021-05-20 | Mark Rodney Anson | Computer System Implemented Method for Generating a Symmetric Encryption Key Used for Encrypting and Decrypting a Computer System User's Hidden Data |
CN110427779A (zh) * | 2019-08-13 | 2019-11-08 | 威富通科技有限公司 | 一种数据库表字段的加、解密方法及数据服务器 |
CN112149076A (zh) * | 2020-10-10 | 2020-12-29 | 上海威固信息技术股份有限公司 | 一种安全的计算机存储*** |
CN113886847A (zh) * | 2021-09-15 | 2022-01-04 | 金钱猫科技股份有限公司 | 一种ipfs文件***加密存储与访问的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN114844848B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790250B (zh) | 数据处理、加密、完整性校验方法及身份鉴别方法及*** | |
US8185942B2 (en) | Client-server opaque token passing apparatus and method | |
CN113067699B (zh) | 基于量子密钥的数据共享方法、装置和计算机设备 | |
Choi et al. | Digital forensic analysis of encrypted database files in instant messaging applications on Windows operating systems: Case study with KakaoTalk, NateOn and QQ messenger | |
CN109543434B (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
CN106104562A (zh) | 机密数据安全储存和恢复***及方法 | |
US20080165965A1 (en) | Method of two strings private key (symmetric) encryption and decryption algorithm | |
CN112738051B (zh) | 数据信息加密方法、***及计算机可读存储介质 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN102055685B (zh) | 网页邮件信息加密的方法 | |
CN104243149A (zh) | 加、解密方法,装置和服务器 | |
CN103701596A (zh) | 文件访问及响应文件访问请求的方法、***和设备 | |
CN107241184A (zh) | 基于改良aes的个人密码生成和管理方法 | |
Kim et al. | Forensic analysis of instant messaging apps: Decrypting Wickr and private text messaging data | |
CN112822228A (zh) | 一种基于国密算法的浏览器文件加密上传方法及*** | |
CN114244508A (zh) | 数据加密方法、装置、设备及存储介质 | |
US10623400B2 (en) | Method and device for credential and data protection | |
CN112995204B (zh) | ProtonMail加密邮件的安全读取方法、装置、设备及存储介质 | |
CN108737087B (zh) | 邮箱账号密码的保护方法及计算机可读存储介质 | |
JP4794970B2 (ja) | 秘密情報の保護方法及び通信装置 | |
CN111711521B (zh) | 一种区块链账号私钥重置方法及*** | |
CN113726515A (zh) | 一种基于ukey的密钥处理方法、存储介质及电子设备 | |
CN112199730A (zh) | 一种终端上应用数据的处理方法、装置及电子设备 | |
CN105187379A (zh) | 基于多方互不信任的密码拆分管理方法 | |
CN111212068B (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 |