CN115510458A - 检测方法及相关装置 - Google Patents

检测方法及相关装置 Download PDF

Info

Publication number
CN115510458A
CN115510458A CN202110634370.0A CN202110634370A CN115510458A CN 115510458 A CN115510458 A CN 115510458A CN 202110634370 A CN202110634370 A CN 202110634370A CN 115510458 A CN115510458 A CN 115510458A
Authority
CN
China
Prior art keywords
hash
ciphertext
terminal
data
server
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
Application number
CN202110634370.0A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110634370.0A priority Critical patent/CN115510458A/zh
Publication of CN115510458A publication Critical patent/CN115510458A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种检测方法,该方法中终端向服务器发送终端的帐号口令对应的哈希前缀集和哈希密文集;服务器利用私密密钥对终端的哈希密文集进行再次加密,基于终端发送的哈希前缀集在已经泄露的帐号口令的哈希前缀中检索匹配的哈希前缀,并获取对应的哈希密文,再将该哈希密文映射到过滤器上;终端基于服务器反馈的过滤器和双方加密的哈希密文集,可以确定终端的帐号口令是否已泄露。实施本申请实施例,能够批量检测终端管理的帐号口令的泄露情况,且在检测过程中,帐号口令始终处于加密的密文态,保证了在检测过程中帐号口令的机密性。

Description

检测方法及相关装置
技术领域
本申请实施例涉及通信领域,尤其涉及检测方法及相关装置。
背景技术
帐号(Username)和口令(Password)作为数字身份的标识符和凭证,是当前用来进行身份认证的最常用方式。随着网站和应用数量的激增,用户个人的帐号和口令数量也迅速增长。密码管理工具可以在用户登录网站或应用时自动填充帐号和口令。然而,帐号和口令的泄露会严重威胁用户的个人信息和财产安全,对于用户而言如何及时发现帐号和口令的泄露极其重要。
目前的密码管理工具并不具备帐号和口令的泄露检测功能,因此,如何为用户提供安全便捷的帐号口令的泄露检测还有待研究。
发明内容
本申请提供了检测方法及相关装置,能够批量检测终端管理的帐号口令的泄露情况,且在泄露检测过程中保证帐号口令的机密性。
第一方面,本申请提供了检测方法,应用于终端,包括:获取第一哈希前缀集和第一哈希密文集,第一哈希前缀集包括第一数据集中的数据的哈希前缀,第一哈希密文集包括第一数据集中的数据的哈希密文,第一数据集中的数据的哈希密文是通过第一加密方式加密的;向服务器发送第一请求,第一请求用于获取第一数据集和服务器的第二数据集的交集,第一请求携第一哈希前缀集和第一哈希密文集;接收服务器发送的第二哈希密文集和第一信息;第二哈希密文集是通过第二加密方式对第一哈希密文集中的哈希密文加密后获取的,第一信息用于指示第一哈希密文,第一哈希密文为第二数据集的数据的哈希前缀中与第一哈希前缀匹配的哈希前缀对应的哈希密文,第一哈希前缀为第一哈希前缀集中的任一哈希前缀,第二数据集的数据的哈希密文是基于所述第二加密方式确定的;利用第一加密方式对第二哈希密文集中的哈希密文进行解密,获取解密后的第三哈希密文集;确定第三哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据。
实施本申请实施例,能够批量检测终端管理的帐号口令的泄露情况,且通过第一加密方式和第二加密方式的加密,在检测过程中保证帐号口令的机密性,有效方式避免检测过程中帐号口令的泄露。
在一种实现方式中,依次使用第一加密方式和第二加密方式加密的哈希密文,等同于依次使用第二加密方式和第一加密方式加密的哈希密文;针对依次使用第二加密方式和第一加密方式加密的哈希密文,利用第二加密方式解密为使用第一加密方式加密的哈希密文。第一加密方式和第二加密方式满足加密顺序的可交换性质。
在一种实现方式中,第一加密方式为通过终端的第一私密密钥和预设加密算法进行加密;第二加密方式为通过服务器的第二私密密钥和预设加密算法进行加密;预设加密算法满足阿贝尔群上运算的可交换性质。
在一种实现方式中,预设加密算法包括椭圆曲线加密算法、密钥流异或加密算法。
在一种实现方式中,上述获取第一哈希前缀集和第一哈希密文集之前,上述方法还包括:在第一数据集中加入预设数量的干扰数据。
在一种实现方式中,上述向服务器发送第一请求之前,上述方法还包括:利用终端的数字签名的私密密钥,获取第一哈希前缀集的第一签名和第一哈希密文集的第二签名,第一请求还携带第一签名和第二签名,第一签名和第二签名用于检测第一请求的合法性。
在一种实现方式中,第一数据集中的第一数据的哈希密文为通过终端的第一私密密钥和预设加密算法对第一数据加密后生成的哈希密文,第一数据是第一数据集的任一数据;第二数据集中的第二数据的哈希密文是通过第三私密密钥和散列消息鉴别码HMAC对第二哈希密文加密后生成的第三哈希密文,第二哈希密文为通过服务器的第二私密密钥和预设加密算法对第二数据加密后生成的哈希密文;预设加密算法满足阿贝尔群上运算的可交换性质;上述确定第三哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据,具体包括:通过第四私密密钥和HMAC对第三哈希密文集中的第一数据的哈希密文加密,生成第四哈希密文集,确定第四哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据。
在一种实现方式中,上述获取第一哈希前缀集和第一哈希密文集之前,还包括:向服务器发送注册请求,注册请求用于注册第一服务,第一服务用于获取第一数据集与第二数据集的交集数据;接收服务器发送的注册响应;上述获取第一哈希前缀集和第一哈希密文集之前,具体包括:响应于注册响应,获取第一哈希前缀集和第一哈希密文集。
在一种实现方式中,上述向服务器发送第一请求之前,还包括:接收服务器发送的提示消息,提示消息用于提示终端第二数据集有更新。
在一种实现方式中,上述向服务器发送第一请求之前,还包括:响应于提示消息,显示提示信息,提示信息用于提示用户第二数据集有更新;接收用户的第二输入操作;上述向服务器发送第一请求,具体包括:响应于第二输入操作,向服务器发送第一请求。
在一种实现方式中,第一数据集中的数据为终端管理的帐号口令,第二数据集中的数据为服务器获取的已泄露的帐号口令。
在一种实现方式中,第一数据集中的数据为终端管理的个人联系人信息,第二数据集中的数据为服务器获取的已注册第一应用服务的联系人信息。
在一种实现方式中,第一数据集中的数据为终端的应用软件信息,第二数据集中的数据为服务器获取的恶意应用软件信息。
在一种实现方式中,第一数据集中的数据为终端访问的网址,第二数据集中的数据为服务器获取的恶意网址。
第二方面,本申请提供了检测方法,应用于服务器,包括:获取第二数据集中的数据的哈希前缀和哈希密文,第二数据集中的数据的哈希密文是基于第二加密方式确定的;接收终端发送的第一请求;第一请求用于获取第二数据集和终端的第一数据集的交集,第一请求携第一哈希前缀集和第一哈希密文集,第一哈希前缀集包括第一数据集中的数据的哈希前缀,第一哈希密文集包括第一数据集中的数据的哈希密文,第一数据集中的数据的哈希密文是通过第一加密方式加密的;通过第二加密方式对第一哈希密文集中的哈希密文加密,生成第二哈希密文集;检索第二数据集的数据的哈希前缀中与第一哈希前缀匹配的哈希前缀对应的第一哈希密文,第一哈希前缀为第一哈希前缀集中的任一哈希前缀;向终端发送第二哈希密文集和第一信息,第一信息用于指示第一哈希密文,第二哈希密文集和第一信息用于终端确定第一数据集与第二数据集的交集数据。
实施本申请实施例,能够批量检测终端管理的帐号口令的泄露情况,且通过第一加密方式和第二加密方式的加密,在检测过程中保证帐号口令的机密性,有效方式避免检测过程中帐号口令的泄露。
在一种实现方式中,依次使用第一加密方式和第二加密方式加密的哈希密文,等同于依次使用第二加密方式和第一加密方式加密的哈希密文;针对依次使用第二加密方式和第一加密方式加密的哈希密文,利用第二加密方式解密为使用第一加密方式加密的哈希密文。第一加密方式和第二加密方式满足加密顺序的可交换性质。
在一种实现方式中,第一加密方式为通过终端的第一私密密钥和预设加密算法进行加密;第二加密方式为通过服务器的第二私密密钥和预设加密算法进行加密;预设加密算法满足阿贝尔群上运算的可交换性质。
在一种实现方式中,预设加密算法包括椭圆曲线加密算法、密钥流异或加密算法。
在一种实现方式中,第一信息包括过滤器,向终端发送第二哈希密文集和第一信息之前,方法还包括:将第一哈希密文映射到过滤器。
在一种实现方式中,过滤器包括:Bloom过滤器、Cuckoo过滤器或Morton过滤器。
在一种实现方式中,第一信息包括第一哈希密文。
在一种实现方式中,第一请求还携带第一哈希前缀集的第一签名和第一哈希密文集的第二签名,第一签名和第二签名是利用终端的数字签名的私密密钥生成的,通过第二加密方式对第一哈希密文集中的哈希密文加密之前,方法还包括:利用终端的数字签名的公开密钥、第一签名和第二签名,验证第一请求的合法性;通过第二加密方式对第一哈希密文集中的哈希密文加密,具体包括:当验证第一请求合法时,通过第二加密方式对第一哈希密文集中的哈希密文加密。
在一种实现方式中,接收终端发送的第一请求之前,还包括:在第一数据集更新时,向终端发送提示消息,以提示终端第一数据集有更新;第一请求是终端基于提示消息确定的。
在一种实现方式中,接收终端发送的第一请求之前,还包括:接收终端发送的注册请求,注册请求用于注册第一服务;向终端发送注册响应。
在一种实现方式中,第一数据集中的数据为终端管理的帐号口令,第二数据集中的数据为服务器获取的已泄露的帐号口令。
在一种实现方式中,第一数据集中的数据为终端管理的个人联系人信息,第二数据集中的数据为服务器获取的已注册第一应用服务的联系人信息。
在一种实现方式中,第一数据集中的数据为终端的应用软件信息,第二数据集中的数据为服务器获取的恶意应用软件信息。
在一种实现方式中,第一数据集中的数据为终端访问的网址,第二数据集中的数据为服务器获取的恶意网址。
第三方面,本申请提供了一种终端,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第一方面任一项可能的实现方式中的检测方法。
第四方面,本申请提供了一种服务器,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述第二方面任一项可能的实现方式中的检测方法。
第五方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的检测方法。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的检测方法。
附图说明
图1为本申请实施例提供的通信***的示意图;
图2A至图2D为本申请实施例提供的应用场景的用户界面示意图;
图3A至图3C为本申请实施例提供的应用场景的用户界面示意图;
图4A至图4C为本申请实施例提供的应用场景的用户界面示意图;
图5为本申请实施例提供的检测方法的流程示意图;
图6为本申请实施例提供的服务器和终端的功能结构示意图;
图7为本申请实施例提供的一种终端的结构示意图;
图8为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面对本申请实施例涉及的通信***进行介绍。
图1为本申请实施例提供的一种通信***10的示意图。该通信***10可以包括至少一个服务器100(仅示出1个)以及与服务器100连接的一个或多个终端200(仅示出1个)。其中,服务器100与终端200可以通过无线和/或有线网络进行通信。
本申请实施例涉及的服务器100是可以为终端200提供帐号口令的泄露检测服务的服务器,该服务器也可以为终端200提供其他类型的业务。服务器100可以是云服务器,也可以是其他类型的服务器,此处不进行具体限定。
本申请实施例涉及的终端200可以向服务器100请求注册帐号口令的泄露检测服务,并可以在注册泄露检测服务后向服务器100发起帐号口令的泄露检测请求。
本申请实施例涉及的终端200可以搭载iOS、Android、Microsoft或者其它操作***。终端200也可以称为用户设备(user equipment,UE)、接入终端、用户单元、用户站、移动台、移动设备、用户终端、终端设备、无线通信设备或用户装置。示例性的,终端200可以是手机、平板电脑、桌面型计算机、膝上型计算机、笔记本电脑、上网本,以及无人机、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备和/或智能家居设备等,本申请实施例对该终端200的具体类型不作特殊限制。
本申请实施例中,上述无线网络可以为无线保真网络(wireless fidelity,wifi)、第三代(3rd-generation,3G)移动通信技术网络、第五代(5th-generation,5G)移动通信技术网络、新空口(new radio,NR)或通用分组无线服务技术(general packet radioservice,GPRS)等;有线网络可以为传输控制协议/互联网协议(Transmission ControlProtocol/InternetProtocol,TCP/IP)网络、光纤网络或无限带宽(InfiniBand,IB)网络等,此处均不作具体限定。
应当理解,图1仅仅为本申请实施例提供的通信***的***结构示意图,该通信***中还可以包括其它设备,例如,还可以包括无线中继设备和无线回传设备(图1中未示出),在此不作限定。
需要说明的是,本申请实施例中,口令也可以被称为密码,帐号和该帐号对应的口令也可以被简称为帐号口令。
下面通过图2A至图4C对本申请实施例提供的检测方法的一种应用场景进行介绍。
终端200设置有密码保险箱,密码保险箱可管理用户的网站和/或应用的帐号口令,当用户在终端200上使用网站和/或应用登录帐号时,可以自动为用户填充相应的帐号口令,并可以为用户提供帐号口令的泄露检测功能。
示例性的,图2A示出了用于展示终端200安装的应用程序的用户界面11。用户界面11可以包括:状态栏101,日历指示符102,天气指示符103,具有常用应用程序图标的托盘104,以及其他应用程序图标105。可选的,用户界面10还可以包括页面指示符106。其他应用程序图标可分布在多个页面,页面指示符106可用于指示用户当前查看的是哪一个页面中的应用程序。用户可以左右滑动其他应用程序图标的区域,来查看其他页面中的应用程序图标。
如图2A所示,其他应用程序图标105可展示设置图标105A。设置图标105A可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图2B所示的设置的用户界面12。
如图2B所示,用户界面12可以包括安全和隐私设置条目201,还可以包括华为帐号的帐号设置条目、有无线和网络设置条目等设置条目。其中,安全和隐私设置条目201可用于管理解锁码密码(例如人脸解锁密码、指纹解锁密码、锁屏密码等)、密码保险箱等隐私信息。安全和隐私设置条目201可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图2C所示的用户界面13。
如图2C所示,用户界面13可以包括密码保险箱条目202,还可以包括指纹解锁和人脸解锁等设置条目。密码保险箱条目202可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图2D所示的密码保险箱的用户界面14。
在一些实施例中,响应于针对密码保险箱的输入操作,终端200还可以显示身份认证界面,用户通过指纹、人脸和/或密码进行身份认证,当用户通过身份认证时终端200才显示密码保险箱的用户界面14。这样,可以进一步保护密码保险箱中的隐私信息。
如图2D所示,用户界面14可以包括泄露检测条目203以及密码保险箱管理的一或多个应用的密码管理条目(例如应用1的密码管理条目204)。泄露检测条目203可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图3A所示的用户界面15。
如图3A所示,用户界面15包括开关控件205,该开关控件可用于开启或关闭对密码保险箱管理的帐号口令的泄露检测服务。其中,开关控件处于打开(ON)状态时,终端200向提供帐号口令的泄露检测服务的服务器100进行了服务注册,服务器100可以向终端200提供帐号口令的泄露检测服务。开关控件处于关闭(OFF)状态时,终端200未进行上述服务注册,或删除了上述服务注册,服务器100不会向终端200提供帐号口令的泄露检测服务。如图3A所示,开关控件205处于关闭(OFF)状态,开关控件205可接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以切换开关控件205的状态为图3B所示的打开(ON)状态,并显示启动检测控件206。启动检测控件206用于触发对密码保险箱管理的帐号口令的泄露检测。
密码管理条目204可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图3C所示的应用1的密码管理的用户界面16。示例性的,如图3C所示,用户界面16可以包括应用1的登录帐号1和登录帐号2。
在一些实施例中,当终端200检测到密码保险箱管理的帐号口令有泄露风险时,在当前显示的用户界面上显示图4A所示的提示信息207,以提示用户到密码保险箱进行泄露检测;还可以在图4B所示的用户界面15上显示提示信息208,以提示用户帐号口令有泄露风险。示例性的,提示信息207可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以显示如图4B所示的用户界面15。
如图4B和图4C所示,泄露检测控件206可以接收用户的输入操作(例如触摸操作),响应于上述输入操作,终端200可以触发对密码保险箱管理的应用和/或网站的帐号口令进行泄露检测;当检测到有应用和/或网站的帐号口令有泄露时,在图4C所示的用户界面15中显示一或多个一泄露的帐号(例如应用1的登录帐号209和邮箱1的登录帐号210),并提示用户及时更改相应的口令。这样,可以避免隐私信息的进一步泄露。
在一些实施例中,终端200向服务器100注册了泄露检测服务,当服务器100检测到已泄露的帐号口令有更新时,向所有注册泄露检测服务的终端(例如终端200)广播提示消息,终端200基于该提示消息显示提示信息207和/或提示信息208。可选的,终端200接收到服务器100发送的上述提示消息后,自动触发泄露检测,无需用户手动触发泄露检测;即终端200响应于接收到的上述提示消息,向服务器发送泄露检测请求,以请求服务器100协助终端200进行帐号口令的泄露检测。
可以理解,图2A至图4C仅仅示例性示出了终端200显示的用户界面,不应构成对本申请实施例的限定。
基于前述通信***和应用场景,下面对本申请实施例提供的检测方法进行详细介绍。
本申请实施例中,终端200向服务器100发送终端200的帐号口令对应的哈希前缀集和哈希密文集;服务器100利用私密密钥对终端200的哈希密文集进行再次加密,生成双方加密的哈希密文集;服务器100基于终端200发送的哈希前缀集在已经泄露的帐号口令的哈希前缀中检索匹配的哈希前缀,并获取对应的哈希密文,再将该哈希密文映射到过滤器上;终端200基于服务器100反馈的过滤器和双方加密的哈希密文集,可以确定终端200的帐号口令是否已泄露。实施本申请实施例,能够批量检测终端200管理的帐号口令的泄露情况,且在泄露检测过程中,帐号口令始终处于加密的密文态,保证了在泄露检测过程中帐号口令不会泄露。
图5示出了本申请实施例提供的检测方法的方法流程示意图,上述检测方法包括预处理阶段和运行阶段,上述检测方法包括但不限于步骤S101至S124,下面对上述检测方法进行详细介绍。
阶段一、预处理阶段
S101、服务器100获取已经泄露的帐号口令集x,帐号口令xi∈x,i∈M1
其中,帐号口令集x包括m1条帐号口令,帐号口令集x中的第i条帐号口令可以表示为xi,M1={1,…,m1},i∈M1,m1为正整数。
需要说明的是,服务器100是可以提供帐号口令的泄露检测服务的服务器,服务器100可以从多种渠道搜集已经泄露的帐号口令,服务器100可以根据搜集到的已经泄露的帐号口令实时更新帐号口令集x。本申请实施例对服务器100获取已泄露的帐号口令的渠道不做具体限定。例如,目前有多种安全检测平台会检测已泄露的帐号口令,并提供给可信任的服务器。
S102、服务器100获取帐号口令xi的哈希值Xi
在一些实施例中,服务器100将帐号口令xi中的帐号和口令进行拼接,生成帐号口令xi的拼接值;服务器100对上述拼接值进行哈希运算,得到哈希值Xi。可选的,将帐号口令xi中的帐号对应的序列和口令对应的序列按预设顺序拼接为一个序列,该拼接后的序列即为上述拼接值。
其中,哈希运算(又叫做预映射pre-image)是指将任意长度的输入通过散列算法变换成固定长度的输出,该输出为散列值。本申请实施例对哈希运算的具体实现不做限定。
S103、服务器100基于哈希值Xi获取帐号口令xi的哈希前缀HP(Xi)。
在一些实施例中,取哈希值Xi的前N个比特(bit)作为帐号口令xi的哈希前缀HP(Xi),HP(Xi)=Xi[0bit,(N-1)bit]。其中,N为正整数。可选的,若哈希值Xi是二进制的,则HP(Xi)=Xi[0bit,(N-1)bit]。
在一些实施例中,取哈希值Xi的前N个字符作为帐号口令xi的哈希前缀HP(Xi),HP(Xi)=Xi[0字符,(N-1)字符]。一个字符等于8bit。其中,N为正整数。可选的,若哈希值Xi是十六进制的,则HP(Xi)=Xi[0字符,(N-1)字符]。
S104、服务器100利用私密密钥key1以及预设加密算法E(.)对哈希值Xi加密,获取帐号口令xi的第一类哈希密文E(key1,Xi),哈希密文集A1={E(key1,Xi),i∈M1}。
本申请实施例中,上述预设加密算法E(.)为满足阿贝尔群上运算的可交换性质的加密算法,满足代数运算特征E(key2,E(key1,m))=E(key1,E(key2,m)),即利用两个不同的密钥按照不同的加密顺序对m加密两次得到的两个双重加密的密文相等。上述预设加密算法可以为椭圆曲线加密算法、密钥流异或加密算法等。
在一些实施例中,上述预设加密算法可以为椭圆曲线加密算法。可选的,步骤S104具体包括:服务器100计算H(Xi),H(Xi)表示将哈希值Xi映射到椭圆曲线的点上;服务器100利用私密密钥key1对H(Xi)进行加密,获取第一类哈希密文E(key1,Xi),E(key1,Xi)=key1·H(Xi)。基于椭圆曲线加密算法和私密密钥key1,可以实现128bit的密码学安全保护强度,安全性更高。
可选的,私密密钥key1是服务器100预先随机生成的整数。
可选的,私密密钥key1为服务器100从隐私保护集合交集(Private SetIntersection,PSI)协议的预设密钥集合中随机选取的。其中,PSI协议允许持有各自数据集合的两方执行双方集合的交集运算,PSI协议结束之后,一方或两方能够得到交集结果,但是双方都无法获知交集以外的对方集合数据的任何信息。
S105、服务器100利用私密密钥key2和基于哈希的散列消息鉴别码(Hash-basedMessage Authentication Code,HMAC)对第一类哈希密文E(key1,Xi)加密,获取帐号口令xi的第二类哈希密文HMAC(key2,E(key1,Xi)),哈希密文集A2={HMAC(key2,E(key1,Xi)),i∈M1}。
可选的,key2可以取值为帐号口令xi的哈希值Xi。可选的,key2可以为服务器100和终端200预设的HMAC的私密秘钥,服务器100和终端200的HMAC加密均采用key2
可以理解,通过私密密钥key2和HMAC的再次加密,可以进一步提高帐号口令xi的哈希密文的安全性。
S106、服务器100生成帐号口令的哈希前缀与第二类哈希密文的映射表Table,Table={(HP(Xi),HMAC(key2,E(key1,Xi))),i∈M1}。
在一些实施例中,服务器100以哈希前缀HP(Xi)作为分区索引,在映射表Table中对哈希密文进行分区存储。
示例性的,服务器100对帐号口令xi进行哈希,获取帐号口令xi的哈希值Xi为“A8B1 C088 78 1C 2B 38 4F 68A4 B5 C1 66”;服务器100取哈希值Xi的前2个字符(即“A8B1”)作为帐号口令xi的哈希前缀;服务器100利用椭圆曲线加密算法和HMAC对哈希值Xi加密,生成帐号口令xi对应的哈密密文为“Aijssksiwo84jllsbbxuskslsue9n#s*&ssabsjsj”;服务器100生成哈希前缀与哈希密文的映射表Table,并以哈希前缀作为分区索引进行分区存储。示例性的,如表1所示,映射表Table中哈希前缀为“A8 B1”的哈希密文可以依次存储。
表1
Figure BDA0003104823070000081
S107、终端200接收用户的第一输入操作,第一输入操作用于开启帐号口令的泄露检测服务。
在一些实施例中,终端200接收用户的用于开启帐号口令的泄露检测服务的第一输入操作,响应于第一输入操作,终端200向服务器100发送泄露检测服务的注册请求;服务器100接收终端200发送的注册请求后,向终端200发送注册响应。示例性的,第一输入操作为图3A所示的作用于开关控件205的触摸操作。可选的,响应于上述输入操作,终端200还执行S108。可选的,响应于上述注册响应,终端200执行S108。
S108、终端200获取终端200管理的帐号口令集y中的帐号口令yj的哈希值Yj,yj∈y,j∈M2
其中,帐号口令集y包括m2条帐号口令,帐号口令集y中的第j条帐号口令可以表示为Yj,M2={1,…,m2},j∈M2,m2为正整数。
在一些实施例中,服务器100将帐号口令yj中的帐号和口令进行拼接,生成帐号口令yj的拼接值;服务器100对上述拼接值进行哈希运算,得到哈希值Yi
示例性的,终端200管理的帐号口令集包括图2D所示的多个应用(例如应用1、支付应用、邮箱1、浏览器等应用)的帐号口令。
S109、终端200基于哈希值Yj获取帐号口令yj的哈希前缀HP(Yj)。
在一些实施例中,取哈希值Yj的前N个比特作为帐号口令yj的哈希前缀HP(Yj),HP(Yj)=Yj[0bit,(N-1)bit]。可选的,若哈希值Yj是二进制的,则HP(Xi)=Xi[0bit,(N-1)bit]。
在一些实施例中,取哈希值Yj的前N个字符作为帐号口令yj的哈希前缀HP(Yj),HP(Yj)=Yj[0字符,(N-1)字符]。可选的,若哈希值Yj是十六进制的,则HP(Yj)=Yj[0字符,(N-1)字符]。
需要说明的是,本申请实施例中,哈希前缀HP(Xi)和哈希前缀HP(Yj)的获取方式是相同的。
S110、终端200利用私密密钥key3以及预设加密算法E(.)对哈希值Yi加密,获取帐号口令yj的第一类哈希密文E(key3,Yj),哈希密文集B1={E(key3,Yj),j∈M2}。
在一些实施例中,上述预设加密算法E(.)可以为椭圆曲线加密算法。可选的,步骤S110具体包括:终端200计算H(Yj),H(Yj)表示将哈希值Yj映射到椭圆曲线的点上;服务器100利用私密密钥key3对H(Yj)进行加密,获取第一类哈希密文E(key3,Yj),E(key3,Yj)=key3·H(Yj)。
可选的,私密密钥key3是终端200随机生成的整数。可选的,私密密钥key3为终端200从PSI协议的预设密钥集合中随机选取的。
S111、终端200生成哈希前缀集{HP(Yj),j∈M2}的签名S1和哈希密文集B1的签名S2
本申请实施例中,终端200利用终端200的数字签名的私密密钥sk2生成哈希前缀集{HP(Yj),j∈M2}的签名S1和哈希密文集B1的签名S2
需要说明的是,步骤S101至S106为服务器100的预处理过程,步骤S107至S111为终端200的预处理过程,本申请实施例对服务器100和终端200的预处理过程的执行顺序不做具体限定。
阶段二、运行阶段
S112、服务器100更新已泄露的帐号口令集x。
本申请实施例中,服务器100更新已泄露的帐号口令集x时,对新增的帐号口令进行预处理,更新了前述映射表Table,后续步骤涉及的映射表即为更新后的Table。具体的,新增的帐号口令的预处理可以参考步骤S102至S106,此处不再赘述。
S113、服务器100向终端200发送提示消息,终端200接收服务器100发送的提示消息,该提示消息用于提示终端200进行帐号口令的泄露检测。
在一些实施例中,步骤S112是可选的。可选的,无论是否更新帐号口令集x,服务器100均定期向终端200发送上述提示消息。
S114、终端200接收用户的第二输入操作,第二输入操作用于触发帐号口令的泄露检测。
在一些实施例中,终端200接收上述提示消息后,显示提示信息以提示用户进行帐号口令的泄露检测;然后,终端200接收用户的第二输入操作,响应于该输入操作,终端200执行S115。示例性的,上述提示信息可以是图4A所示的提示信息207或图4B所示的提示信息208,第二输入操作为图4B所示的作用于启动检测控件206的触摸操作。实施本申请实施例,服务器100可以在检测到已泄露的帐号口令有更新时,即向终端200发提示消息,以便于及时为用户提供帐号口令的泄露检测服务,以保护其隐私数据的安全。
在一些实施例中,步骤S112和步骤S113是可选的。可选的,无论是否接收到服务器100发送的提示消息,在接收到用户的第二输入操作时,终端200触发帐号口令的泄露检测,即执行S115。
在一些实施例中,步骤S112、步骤S113和S114均是可选的。可选的,终端200可以主动定期触发帐号口令的泄露检测。
S115、终端200向服务器100发送泄露检测请求,泄露检测请求携带哈希前缀集{HP(Yj),j∈M2}、哈希密文集B1、签名S1和签名S2,服务器100接收终端200发送的泄露检测请求。
在一些实施例中,在向服务器100发送的哈希前缀集{HP(Yj),j∈M2}和哈希密文集B1中,终端200混入了预设数量的不真实的帐号口令对应的哈希前缀和哈希密文,即进行混淆处理,以进一步增加泄漏检测的安全性。可选的,终端200在接收到用户的第一操作之后,在执行步骤S108之前,若帐号口令集y中的帐号口令少于R条,则服务器100在帐号口令集y中混人预设数量的不真实的帐号口令。
S116、服务器100验证签名S1和签名S2是否为终端200的数字签名;若是,则服务器100执行S117。
本申请实施例中,步骤114中终端200发送的泄露检测请求还携带了终端200的身份标识(Identity,ID)或者指定应用的帐号,服务器100根据终端200的ID或帐号可以获取终端200的数字签名的公开密钥pk2;服务器100利用公开密钥pk2可以验证签名S1和签名S2是否是通过终端200的数字签名的私密密钥sk2加密生成的;若是,则确定签名S1和签名S2验证通过,对应地,可以确定哈希前缀集{HP(Yj),j∈M2}和哈希密文集B1是来自于终端200的合法消息;若否,则确定签名S1和签名S2验证不通过,对应地,可以确定哈希前缀集{HP(Yj),j∈M2}和哈希密文集B1可能是被篡改、替换或仿冒的非法消息。
可以理解,若使用终端200的数字签名的私密密钥来生成签名,则需使用终端200的数字签名的公开密钥来验证签名。
实施本申请实施例,通过验证签名S1和签名S2可以进一步保障泄露检测服务的安全性。
在一些实施例中,步骤S111和步骤S116是可选的。可选的,步骤S115中终端200无需发送签名S1和签名S2,步骤S115之后服务器100可以直接执行步骤S117。
S117、服务器100获取映射表Table中与哈希前缀HP(Yi)匹配的哈希前缀对应的哈希密文集A3,A3={HMAC(key2,E(key1,Zn)),n∈M3}。
在一些实施例中,步骤S106中,服务器100以哈希前缀HP(Xi)作为分区索引,将映射表Table中的哈希密文进行分区存储;相应的,步骤S117中,服务器100以哈希前缀HP(Yi)作为分区索引,对映射表Table中的哈希前缀进行分区检索,获取映射表Table中与哈希前缀HP(Yi)匹配的一或多个哈希前缀,进而获取上述一或多个哈希前缀对应的第二类哈希密文组成的哈希密文集A3,A3={HMAC(key2,E(key1,Zn)),n∈M3}。哈希密文集A3包括m3条帐号口令的哈希密文,哈希密文集A3中的第n条哈希密文对应的帐号口令的哈希值可以表示为Zn,上述第n条哈希密文可以表示为HMAC(key2,E(key1,Zn)),M3={1,…,m3},n∈M3,m3为正整数。
需要说明的是,在另一种实现方案中,服务器100和终端200可以不对帐号口令的哈希值进行加密,服务器100可以根据终端200发送的哈希前缀在已泄露的帐号口令的哈希前缀中检索匹配的哈希前缀,并获取匹配的哈希前缀对应的哈希值组成的哈希集合,该哈希集合包括M条帐号口令的哈希值,M为正整数。然而这种方案中,基于哈希前缀检索得到的哈希集合,服务器100或第三方攻击端可以有1/M的概率推断出用户的帐号口令的哈希值,进而利用已泄露的帐号口令集有1/M的概率推断出用户的帐号口令的明文。而本申请实施例,通过预设加密算法(或者预设加密算法和HAMC加密算法)对帐号口令的哈希值的再次加密,可以有效避免上述问题,保障了泄露检测过程中帐号口令的安全性。
S118、服务器100将哈希密文集A3映射到过滤器。
本申请实施例涉及的过滤器本质上是由一个或多个数组组成的一个数值矩阵,用于快速检索某个元素是否存在于特定的集合中,过滤器包括但不限于布隆(Bloom)过滤器、布谷鸟(Cuckoo)过滤器和莫顿(Morton)过滤器等。过滤器的原理是:当一个元素被加入集合时,通过K个散列函数将这个元素映射成过滤器的一个数组中的K个位置(也可以被称为K个点)(K≥1),并把上述K个位置的取值置为1。在对指定元素进行检索时,通过相同的映射方式确定在一个数组中该指定元素对应的映射位置,进而针对过滤器中的每个数组判定该指定元素对应的映射位置是否均取值为1;当该指定元素对应的映射位置存在至少一个位置取值为0时,上述集合中不存在该指定元素;当该指定元素对应的映射位置均取值为1时,上述集合中很可能存在该指定元素。相比于其它的数据结构,通过过滤器检索指定元素在空间和时间方面都有巨大的优势。
具体的,服务器100将哈希密文集A3中每个哈希密文通过K个散列函数映射成过滤器的一个数组中的K个位置(K≥1),并把上述K个位置的取值置为1。
S119、服务器100利用私密密钥key1和预设加密算法E(.)对哈希密文集B1中的第一类哈希密文进行二次加密,获取哈希密文集B2,B2={E(key1,E(key3,Yi)),i∈M1}。
在一些实施例中,上述预设加密算法为椭圆曲线加密算法,哈希密文集B1中的第一类哈希密文E(key3,Yj)=key3·H(Yj),哈希密文集B2中的哈希密文E(key1,E(key3,Yi))=key1·key3·H(Yj)。
S120、服务器100向终端200发送过滤器和哈希密文集B2,终端200接收服务器100发送的过滤器和哈希密文集B2
需要说明的是,若服务器100向终端200反馈的是未经加密的哈希集合,第三方攻击端可利用彩虹表攻击服务器100反馈的哈希集合,进而可能获取上述哈希集合中的哈希值对应的帐号口令的明文。此外,直接反馈哈希集合的通信开销较大。而本申请实施例提供的检测方法中,服务器100将检索到的哈希密文集A2映射到过滤器上,并反馈过滤器,这样,可以有效保护帐号口令的安全性,且反馈过滤器可以大幅度缩减通信开销。
S121、终端200利用私密密钥key3解析B2,获取哈希密文集B3={E(key1,Yi),i∈M1}。
本申请实施例中,上述预设加密算法满足阿贝尔群上运算的可交换性质,{E(key1,E(key3,Yi)),i∈M1}={E(key3,E(key1,Yi)),i∈M1}。终端200利用私密密钥key3解析{E(key1,E(key3,Yi)),i∈M1}等同于利用私密密钥key3解析{E(key3,E(key1,Yi)),i∈M1},E(key3,E(key1,Yi)通过私密密钥key3可以解析为E(key1,Yi)。
在一些实施例中,上述预设加密算法为椭圆曲线加密算法,哈希密文集B2中的哈希密文E(key1,E(key3,Yi))=key1·key3·H(Yj)=key3·key1·H(Yj),终端200利用私密密钥key3解析E(key1,E(key3,Yi))为key3 -1·key3·key1·H(Yj),即key1·H(Yj)。
S122、终端200利用私密密钥key4和散列消息鉴别码HMAC对哈希密文集B3中的第一类哈希密文E(key1,Yi)加密,获取帐号口令yi的第二类哈希密文HMAC(key4,E(key1,Yi)),哈希密文集B4={HMAC(key4,E(key1,Yi)),i∈M1}。
可选的,key4可以取值为帐号口令yi的哈希值Yi。可选的,key4等于前述key2,key2为服务器100和终端200预设的HMAC的私密秘钥,服务器100和终端200的HMAC加密均采用key2
S123、终端200将哈希密文集B4中的第二类哈希密文与过滤器中映射的第二类哈希密文进行匹配。
S124、当过滤器映射的第二类哈希密文存在与哈希密文集B4中的第二类哈希密文HMAC(key4,E(key1,Yi))匹配的哈希密文,终端200确定哈希密文HMAC(key4,E(key1,Yi))对应的帐号口令yi已泄露。
具体的,通过K个散列函数将哈希密文集B4中的第二类哈希密文HMAC(key4,E(key1,Yi))映射到过滤器的一个数组中的指定的K个位置(K≥1);当过滤器的第一数组中上述指定的K个位置均取值为1时,判断第一数组映射的第二类哈希密文与第二类哈希密文HMAC(key4,E(key1,Yi))匹配,进而确定该哈希密文对应的帐号口令yi很可能已泄露。
需要说明的是,若终端200的HMAC加密的私密密钥key2为帐号口令xi的哈希值Xi,服务器100的HMAC加密的私密密钥key4为帐号口令yi的哈希值Yi,当帐号口令xi与帐号口令yi相同时,key2和key4也相等。
应当理解,针对同一帐号口令,由于哈希密文集B4中的第二类哈希密文和过滤器中映射的第二类哈希密文均是通过相同的私密密钥和加密算法加密的,因此,可以对哈希密文集B3中的第二类哈希密文和过滤器中映射的第二类哈希密文可以进行匹配。
可以理解,当过滤器映射的第二类哈希密文不存在与哈希密文集B4中的第二类哈希密文HMAC(key4,E(key1,Yi))匹配的哈希密文,终端200确定哈希密文HMAC(key4,E(key1,Yi))对应的帐号口令yi处于安全状态。
示例性,参考图4C,终端200确定已泄露的帐号口令后,在图4C所示的用户界面15显示已泄露的帐号,以提示用户及时更新相应的口令。
在一些实施例中,步骤S118是可选的。可选的,步骤S120中服务器100可以直接将哈希密文集A3发送给终端200,不进行过滤器映射;终端200直接将哈希密文集B4中的第二类哈希密文与哈希密文集A3中的第二类哈希密文进行匹配,确定哈希密文集B4的第二类哈希密文中是否存在与哈希密文集A3中的第二类哈希密文匹配的哈希密文。若存在匹配的哈希密文,则判定上述匹配的哈希密文对应的帐号口令为已泄露的帐号口令。
在一些实施例中,步骤S105和S121是可选的。可选的,步骤S106中服务器100可以生成帐号口令的哈希前缀与第一类哈希密文的映射表Table,Table={(HP(Xi),E(key1,Xi)),i∈M1};步骤S117中服务器100获取映射表Table中与哈希前缀HP(Yi)匹配的哈希前缀对应的第一类哈希密文的哈希密文集A3,A3={E(key1,Zn),n∈M3}。步骤S118中服务器100将哈希密文集A3中的第一类哈希密文映射到过滤器;步骤S121之后,终端200将哈希密文集B3中的第一类哈希密文与过滤器中映射的第一类哈希密文进行匹配。当过滤器映射的第一类哈希密文存在与哈希密文集B3中的第一类哈希密文E(key1,Yi)匹配的哈希密文,终端200确定第一类哈希密文E(key1,Yi)对应的帐号口令yi已泄露。
在一些实施例中,步骤S105中服务器100对HMAC加密后的第二类哈希密文进行截断处理,生成经过截断处理的第三类哈希密文。例如,HMAC加密后的帐号口令xi的第二类哈希密文HMAC(key2,E(key1,Xi))为256bit,服务器100取上述256bit的哈希密文的前128bit作为帐号口令xi的第三类哈希密文。步骤S106中服务器100可以生成帐号口令的哈希前缀与第三类哈希密文的映射表Table;步骤S117中服务器100获取映射表Table中与哈希前缀HP(Yi)匹配的哈希前缀对应的第三类哈希密文的哈希密文集A3。步骤S118中服务器100将哈希密文集A3中的第三类哈希密文映射到过滤器;步骤S122中,终端200将哈希密文集B4中的第二类哈希密文进行相同的截断处理,生成包括第三类哈希密文的哈希密文集B5。步骤S123中,终端200将哈希密文集B5中的第三类哈希密文与过滤器中映射的第三类哈希密文进行匹配。当过滤器映射的第三类哈希密文存在与哈希密文集B5中的第三类哈希密文匹配的哈希密文,终端200确定该哈希密文对应的帐号口令已泄露。
需要说明的是,对HMAC加密后的哈希密文进行截断处理,可以降低步骤S106中帐号口令的哈希密文的存储开销,步骤S118中服务器100和终端200间的通信开销,以及步骤S123中哈希密文匹配的计算开销。
在一些实施例中,步骤S120之前还包括:服务器100利用服务器100的数字签名的私密密钥sk1生成过滤器的签名S3和哈希密文集B2的签名S4。步骤S120具体包括:服务器100向终端200发送过滤器、哈希密文集B2、签名S3和签名S4,终端200接收服务器100发送的过滤器、哈希密文集B2、签名S3和签名S4。步骤S121具体包括:终端200利用服务器100的数字签名的公开密钥pk1验证签名S3和签名S4是否是通过服务器100的数字签名的私密密钥生成的,若是,则服务器100利用私密密钥key3解析B2,获取哈希密文集B3={E(key1,Yi),i∈M1}。
综上所述,实施本申请实施例,能够批量检测终端200管理的帐号口令的泄露情况,让用户及时获知已泄露的帐号口令,避免个人财产丢失和隐私数据泄露;在进行帐号口令的泄露检测过程中,帐号口令始终处于加密的密文态,检测结果由终端200确定,也仅在终端侧呈现,用户的帐号口令不会泄露给服务器100和第三方攻击端,保证了在泄露检测过程中帐号口令的机密性。
不限于帐号口令的泄露检测,本申请实施例提供的检测方法还能应用于其他应用场景,涉及双方对各自持有的私密数据集合求交集的应用场景,本实施例提供的检测方法均适用,本申请对此不做具体限定。典型的扩展应用场景描述如下。
扩展场景一:私密联系人发现(Private Contact Discovery)。
简单来讲,私密联系人发现就是在某一特定应用平台上寻找联系人,即当用户注册使用一种新应用服务(如注册使用即时通讯应用)时,从用户现有的个人联系人列表中寻找有哪些已经注册了同类应用服务,这种功能已经成为注册新应用服务时的一种常规功能,为用户使用上述新应用服务提供了便捷操作。可以理解,通过将用户的个人联系人发送给上述新应用服务的提供商可以有效地完成这项功能,但是与此同时,用户的个人联系人信息也被泄露给上述提供商了,而用户并不希望个人联系人信息被泄露。因此,在这种场景下,将用户的个人联系人信息作为一方的输入,将提供商获取的已注册上述新应用服务的所有用户信息作为另一方的输入,通过本申请实施例提供的检测方法可以完成私密联系人发现的功能,而且可以避免用户的个人联系人信息被泄露。
针对私密联系人发现场景,本申请实施例提供的检测方法也包括预处理阶段和运行阶段,其中:
在预处理阶段中,服务器100获取已注册第一应用服务的所有联系人信息组成的注册联系人集,并对注册联系人集实施预处理,获取注册联系人信息的哈希、哈希前缀、哈希密文;终端200注册并使用第一应用服务时,对个人联系人信息组成的个人联系人集实施预处理,获取个人联系人信息的哈希、哈希前缀、哈希密文。
在运行阶段中,用户触发针对第一应用服务的私密联系人发现寻找联系人的功能时,终端200向服务器100发送个人联系人集对应的哈希前缀集1和哈希密文集1;服务器100利用服务器100的私密密钥key1对终端200发送的哈希密文集1中的哈希密文进行再次加密,获取个人联系人集对应的双方加密的哈希密文集2;服务器100基于终端200发送的哈希前缀集1,对注册联系人的哈希前缀进行检索,获取匹配的注册联系人的哈希前缀对应的哈希密文,并将检索到的哈希密文映射到过滤器上;服务器100向终端200发送过滤器和上述双方加密的哈希密文集2;终端200利用终端200的私密密钥key3对上述双方加密的哈希密文集2进行解析,获取被key1加密的个人联系人集对应的哈希密文集3;终端200将上述哈希密文集3与过滤器映射的哈希密文进行匹配;当上述哈希密文集3中存在匹配的哈希密文时,该哈希密文对应的个人联系人即为已注册第一应用服务的联系人。
具体的,上述注册联系人集的预处理过程可以参考前述步骤S101至S106的相关描述,上述个人联系人集的预处理过程可以参考步骤S107至S111的相关描述,上述运行阶段可以参考前述步骤S112至S124的相关描述,此处均不再赘述。
扩展场景二:恶意应用软件检测(Malicious Application SoftwareDetection)。
针对终端200的应用软件安装列表以及云侧恶意应用软件列表,通过求解二者的交集,可以检测终端200安装的应用软件是否是为恶意应用软件,以确保终端200的数据安全和绿色软件使用环境。
针对恶意应用软件检测场景,本申请实施例提供的检测方法也包括预处理阶段和运行阶段,其中:
在预处理阶段中,服务器100获取已披露的恶意应用软件信息组成的恶意应用软件集,并对恶意应用软件集实施预处理,获取恶意应用软件信息的哈希、哈希前缀、哈希密文;终端200对终端应用软件信息组成的终端应用软件集实施预处理,获取终端应用软件信息的哈希、哈希前缀、哈希密文。
在运行阶段中,用户触发恶意应用软件检测的功能时,终端200向服务器100发送终端应用软件集对应的哈希前缀集1和哈希密文集1;服务器100利用服务器100的私密密钥key1对终端200发送的哈希密文集1中的哈希密文进行再次加密,获取终端应用软件集对应的双方加密的哈希密文集2;服务器100基于终端200发送的哈希前缀集1,对恶意应用软件信息的哈希前缀进行检索,获取匹配的恶意应用软件信息的哈希前缀对应的哈希密文,并将检索到的哈希密文映射到过滤器上;服务器100向终端200发送过滤器和上述双方加密的哈希密文集2;终端200利用终端200的私密密钥key3对上述双方加密的哈希密文集2进行解析,获取被key1加密的终端应用软件集对应的哈希密文集3;终端200将上述哈希密文集3与过滤器映射的哈希密文进行匹配;当上述哈希密文集3中存在匹配的哈希密文时,该哈希密文对应的终端应用软件即为已披露的恶意应用软件。
在一些实施例中,终端200检测到用户下载或安装应用软件时,即向服务器100发送检测请求,请求服务器100检测该应用软件是否为恶意应用软件,当检测到该应用软件为恶意应用软件时,及时提醒用户该应用软件有风险,谨慎安装该应用软件。
具体的,上述恶意应用软件集的预处理过程可以参考前述步骤S101至S106的相关描述,上述终端应用软件集的预处理过程可以参考步骤S107至S111的相关描述,上述运行阶段可以参考前述步骤S112至S124的相关描述,此处均不再赘述。
扩展场景三:恶意网址检测(Malicious Website Detection)。
针对终端200的浏览器访问的网址以及云侧恶意网址列表,通过求解二者的交集,可以实时检测终端200的浏览器当前访问的网址是否为恶意网址,以维护安全绿色的网络访问环境。
针对恶意网址检测场景,本申请实施例提供的检测方法也包括预处理阶段和运行阶段,其中:
在预处理阶段中,服务器100获取已披露的恶意网址组成恶意网址集,并对恶意网址集实施预处理,获取恶意网址的哈希、哈希前缀、哈希密文。
在运行阶段中,终端200访问第一网址时,终端200对的第一网址实施预处理,获取第一网址的哈希、哈希前缀、哈希密文。终端200向服务器100发送第一网址的哈希前缀和哈希密文;服务器100利用服务器100的私密密钥key1对第一网址的哈希密文进行再次加密,获取第一网址的双方加密的哈希密文;服务器100基于终端200发送的第一网址的哈希前缀,对恶意网址的哈希前缀进行检索,获取匹配的恶意网址的哈希前缀对应的哈希密文,并将检索到的哈希密文映射到过滤器上;服务器100向终端200发送过滤器和上述双方加密的哈希密文;终端200利用终端200的私密密钥key3对上述双方加密的哈希密文进行解析,获取被key1加密的第一网址的哈希密文;终端200将被key1加密的第一网址的哈希密文与过滤器映射的哈希密文进行匹配;当存在匹配的哈希密文时,确定第一网址为已披露的恶意网址。
具体的,上述恶意网址集的预处理过程可以参考前述步骤S101至S106的相关描述,上述第一网址的预处理过程可以参考步骤S108至S111的相关描述,上述运行阶段可以参考前述步骤S112至S124的相关描述,此处均不再赘述。
下面介绍本申请实施例涉及的服务器100和终端200的功能模块。
本申请实施例可以根据前述检测方法对服务器100和终端200进行功能模块的划分,例如,可以终端设备的各个功能划分各个功能模块,也可以将终端设备的两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图6示出了本申请实施例涉及的服务器100的一种结构示意图。如图6所示,服务器100包括拼接模块1、密码服务模块1、分区存储模块、广播模块、过滤器生成模块和检索模块。
其中,拼接模块1用于对已泄露的帐号口令集x中的帐号口令xi进行拼接,生成帐号口令的拼接值,xi∈x,i∈M1;密码服务模块1用于对帐号口令xi对应的拼接值进行预处理,生成已泄露的帐号口令xi的哈希值Xi、哈希前缀HP(Xi)以及哈希密文;分区存储模块模块用于生成哈希前缀HP(Xi)和哈希密文的映射表,并以哈希前缀为分区索引进行分区存储。
示例性的,图6还示出了本申请实施例涉及的终端200的一种结构示意图。如图6所示,终端200包括拼接模块2、密码服务模块2、匿名模块、显示模块、触发模块、密文转换模块和密文匹配模块。
其中,拼接模块2用于对终端200管理的帐号口令集y中的帐号口令yj进行拼接,生成帐号口令的拼接值,yj∈y,j∈M2;密码服务模块1用于对帐号口令yj对应的拼接值进行预处理,生成已泄露的帐号口令yj的哈希值Yj、哈希前缀HP(Yj)以及哈希密文。匿名模块用于在帐号口令集y混入预设数量的不真实的帐号口令,拼接模块2会对对上述不真实的帐号口令进行拼接,密码服务模块1也会对获取上述不真实的帐号口令对应的哈希前缀和哈希密文。本申请实施例中匿名模块是可选的。
此外,服务器100的广播模块用于在帐号口令集x更新时,向注册泄露检测服务的终端200广播提示消息,以提示终端200进行帐号口令的泄露检测。
终端200的显示模块用于基于服务器100发送的提示消息显示提示信息,以提示用户触发帐号口令的泄露检测。终端200的触发模块用于响应于用户的输入操作,触发帐号口令的泄露检测,即触发终端200将密码服务模块2生成的帐号口令集y对应的哈希前缀集和哈希密文集B1发送给服务器100。
在一些实施例中,服务器100的检索模块用于基于终端200发送的帐号口令集y对应的哈希前缀集,在分区存储模块中检索匹配的哈希前缀,进而获取上述哈希前缀对应的第一类哈希密文组成的哈希密文集A3;过滤器生成模块用于将哈希密文集A3中的第一类哈希密文映射到过滤器上。服务器100的密码服务模块1还用于对哈希密文集B1再次进行加密,获取双方加密的哈希密文集B2。服务器100将过滤器和哈希密文集B2发送给终端200。
终端200的密文转换模块还用于通过终端200的私密密钥对服务器100发送的双方加密的哈希密文集B2进行解析,获取解析后的哈希密文集B3;密文匹配模块用于将哈希密文集B3与过滤器中映射的第一类哈希密文进行匹配,确定哈希密文集B3是否存在匹配的第一类哈希密文;若存在匹配的第一类哈希密文,则该哈希密文对应的帐号口令即为帐号口令集y中已泄露的帐号口令。
在一些实施例中,服务器100的检索模块还用于基于终端200发送的帐号口令集y对应的哈希前缀集,在分区存储模块中检索匹配的哈希前缀,进而获取上述哈希前缀对应的第二类哈希密文组成的哈希密文集A3;过滤器生成模块用于将哈希密文集A3中的第二类哈希密文映射到过滤器上。服务器100的密码服务模块1还用于对哈希密文集B1再次进行加密,获取双方加密的哈希密文集B2。服务器100将过滤器和哈希密文集B2发送给终端200。
终端200的密文转换模块还用于通过HAMC对哈希密文集B3进行加密,获取第二类哈希密文的哈希密文集B4。终端200的密文匹配模块还用于将哈希密文集B4与过滤器中映射的第二类哈希密文进行匹配,确定哈希密文集B4是否存在匹配的第二类哈希密文;若存在匹配的第二类哈希密文,则该哈希密文对应的帐号口令即为帐号口令集y中已泄露的帐号口令。
下面对本申请实施例涉及的终端200的硬件结构进行介绍。
示例性的,图7示出了终端200的结构示意图。
终端200可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端200的具体限定。在本申请另一些实施例中,终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
充电管理模块140用于从充电器接收充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
终端200的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在终端200上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端200的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(globalnavigation satellite system,GLONASS),北斗卫星导航***(beidou navigationsatellite system,BDS),准天顶卫星***(quasi-zenith satellite system,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
终端200通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可以包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端200可以包括1个或N个显示屏194,N为大于1的正整数。
终端200可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。在一些实施例中,终端200可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端200可以支持一种或多种视频编解码器。这样,终端200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
终端200可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端200的表面,与显示屏194所处的位置不同。
下面介绍本申请实施例提供的一种服务器100的结构。
图8示例性示出了本申请实施例提供的一种服务器100的结构。
如图8所示,服务器100可以包括:一个或多个网络设备处理器201、存储器202、通信接口203、接收器205、发射器206、耦合器207、天线208、网络设备接口209。这些部件可通过总线204或者其他方式连接,图8以通过总线连接为例。其中:
通信接口203可用于服务器100与其他通信设备,例如终端设备,进行通信。具体地,终端设备可以是图7所示的终端200。具体地,通信接口203可以是5G通信接口,也可以是未来新空口的通信接口。不限于无线通信接口,服务器100还可以配置有有线的通信接口203,例如局域接入网(local access network,LAN)接口。发射器206可用于对网络设备处理器201输出的信号进行发射处理。接收器205可用于对天线208接收的移动通信信号进行接收处理。
在本申请的一些实施例中,发射器206和接收器205可看作一个无线调制解调器。在服务器100中,发射器206和接收器205的数量均可以是一个或者多个。天线208可用于将传输线中的电磁能转换成自由空间中的电磁波,或者将自由空间中的电磁波转换成传输线中的电磁能。耦合器207用于将天线208接收到的移动通信信号分成多路,分配给多个的接收器205。
存储器202与网络设备处理器201耦合,用于存储各种软件程序和/或多组指令。具体地,存储器202可以包括高速随机存取的存储器,并且也可以包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器202可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个终端设备,一个或多个网络设备进行通信。
在本申请的一些实施例中,存储器202可用于存储本申请的一个或多个实施例提供的上行同步方法在服务器100侧的实现程序。关于本申请的一个或多个实施例提供的检测方法的实现,请参考上述实施例。
网络设备处理器201可用于读取和执行计算机可读指令。具体地,网络设备处理器201可用于调用存储于存储器202中的程序,例如本申请的一个或多个实施例提供的检测方法在服务器100侧的实现程序,并执行该程序包含的指令。
需要说明的是,图8所示的服务器100仅仅是本申请实施例的一种实现方式,实际应用中,服务器100还可以包括更多或更少的部件,在此不作限定。
基于前述通信***、应用场景、功能模块和硬件结构,本申请实施例提供了一种检测方法。所述检测方法包括步骤S201至步骤S208,其中:
S201、服务器100获取第二数据集中的数据的哈希前缀和哈希密文,第二数据集中的数据的哈希密文是基于第二加密方式确定的。
S202、终端200获取第一哈希前缀集和第一哈希密文集,第一哈希前缀集包括第一数据集中的数据的哈希前缀,第一哈希密文集包括第一数据集中的数据的哈希密文,第一数据集中的数据的哈希密文是通过第一加密方式加密的。
S203、终端200向服务器100发送第一请求,服务器100接收终端200发送的第一请求,第一请求用于获取第一数据集和服务器100的第二数据集的交集,第一请求携第一哈希前缀集和第一哈希密文集。
S204、服务器100通过第二加密方式对第一哈希密文集中的哈希密文加密,生成第二哈希密文集。
S205、服务器100检索第二数据集的数据的哈希前缀中与第一哈希前缀匹配的哈希前缀对应的第一哈希密文,第一哈希前缀为第一哈希前缀集中的任一哈希前缀。
S206、服务器100向终端200发送第二哈希密文集和第一信息,终端200接收服务器100发送的第二哈希密文集和第一信息,第一信息用于指示第一哈希密文,第二哈希密文集和第一信息用于终端200确定第一数据集与第二数据集的交集数据。
S207、终端200利用第一加密方式对第二哈希密文集中的哈希密文进行解密,获取解密后的第三哈希密文集。
S208、终端200确定第三哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据。
在一些实施例中,依次使用第一加密方式和第二加密方式加密的哈希密文,等同于依次使用第二加密方式和第一加密方式加密的哈希密文;针对依次使用第二加密方式和第一加密方式加密的哈希密文,利用第二加密方式解密为使用第一加密方式加密的哈希密文。可以理解,使用第一加密方式和第二加密方式进行加密时,不同加密顺序下的加密结果相同,第一加密方式和第二加密方式的加密顺序具有可交换性质。
在一些实施例中,第一加密方式为通过终端200的第一私密密钥和预设加密算法进行加密;第二加密方式为通过服务器100的第二私密密钥和预设加密算法进行加密;预设加密算法满足阿贝尔群上运算的可交换性质。可选的,第一私密密钥为前述私密密钥key3,第二私密密钥为前述私密密钥key1
在一些实施例中,预设加密算法包括椭圆曲线加密算法、密钥流异或加密算法。
在一些实施例中,第一信息包括过滤器,上述服务器100向终端200发送第二哈希密文集和第一信息之前,所述方法还包括:服务器100将第一哈希密文映射到过滤器。
在一种实现方式中,过滤器包括:Bloom过滤器、Cuckoo过滤器或Morton过滤器。
在一种实现方式中,第一信息包括第一哈希密文。
在一些实施例中,第二数据集为前述帐号口令集x;第一数据集为前述帐号口令集y,第一哈希前缀集为帐号口令集y对应的哈希前缀集,即{HP(Yj),j∈M2},第一哈希密文集为前述哈希密文集B1,B1={E(Key3,Yj),j∈M2},第二哈希密文集为前述哈希密文集B2,B2={E(key1,E(key3,Yi)),i∈M1},第三哈希密文集为前述哈希密文集B3,B3={E(key1,Yi),i∈M1};第一请求为前述泄露检测请求;第一哈希密文为前述哈希密文集A3中的任一哈希密文。
可选的,第二数据集中的数据的哈希密文是通过服务器100的私密密钥key1和预设加密算法进行加密的第一类哈希密文,第一哈希密文为第一类哈希密文。哈希密文集A3包括前述第一类哈希密文E(key1,Zn),A3={E(key1,Zn),n∈M3}。
可选的,第二数据集中的数据的哈希密文是通过服务器100的私密密钥key1和预设加密算法进行加密后,再经过第三私密密钥和HMAC加密的第二类哈希密文。其中,第三私密密钥可以为前述私密密钥key2,哈希密文集A3包括前述第二类哈希密文HMAC(key2,E(key1,Zn),哈希密文集A3={HMAC(key2,E(key1,Zn)),n∈M3},第一哈希密文为第二类哈希密文。上述确定第三哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据,具体包括:通过第四私密密钥和HMAC对第三哈希密文集中的数据的哈希密文加密,生成第四哈希密文集,确定第四哈希密文集中与第一哈希密文匹配的哈希密文对应的数据,为第一数据集与第二数据集的交集数据。其中,第四私密密钥可以为前述私密密钥key4,第四哈希密文集可以为前述哈希密文集B4,B4={HMAC(key4,E(key1,Yi)),i∈M1}。
在一些实施例中,上述终端200获取第一哈希前缀集和第一哈希密文集之前,所述方法还包括:终端200在第一数据集中加入预设数量的干扰数据。其中,预设数量的干扰数据可以是前述预设数量的不真实的帐号口令。
在一些实施例中,上述终端200向服务器100发送第一请求之前,所述方法还包括:终端200利用终端200的数字签名的私密密钥sk2,获取第一哈希前缀集的第一签名和第一哈希密文集的第二签名,第一请求还携带第一签名和第二签名,第一签名和第二签名用于检测第一请求的合法性。上述服务器100通过第二加密方式对第一哈希密文集中的哈希密文加密之前,方法还包括:服务器100利用终端200的数字签名的公开密钥pk2、第一签名和第二签名,验证第一请求的合法性;上述通过第二加密方式对第一哈希密文集中的哈希密文加密,具体包括:当验证第一请求合法时,通过第二加密方式对第一哈希密文集中的哈希密文加密。其中,第一签名可以是前述S1,第二签名可以是前述S2
在一些实施例中,上述终端200获取第一哈希前缀集和第一哈希密文集之前,还包括:终端200向服务器100发送注册请求,服务器100接收终端200发送的注册请求,注册请求用于注册第一服务,第一服务用于获取第一数据集与第二数据集的交集数据;服务器100向终端200发送注册响应,终端200接收服务器100发送的注册响应;上述终端200获取第一哈希前缀集和第一哈希密文集之前,具体包括:终端200响应于注册响应,获取第一哈希前缀集和第一哈希密文集。其中,第一服务可以是前述帐号口令的泄露检测服务。
在一些实施例中,上述终端200向服务器100发送第一请求之前,还包括:服务器100在第一数据集更新时,向终端200发送提示消息,终端200接收服务器100发送的提示消息,提示消息用于提示终端200第二数据集有更新。
在一些实施例中,上述终端200向服务器100发送第一请求之前,还包括:终端200响应于提示消息,显示提示信息,提示信息用于提示用户第二数据集有更新;终端200接收用户的第二输入操作;上述终端200向服务器100发送第一请求,具体包括:终端200响应于第二输入操作,向服务器100发送第一请求。
在一些实施例中,第一数据集中的数据为终端管理的个人联系人信息,第二数据集中的数据为服务器获取的已注册第一应用服务的联系人信息。
在一些实施例中,第一数据集中的数据为终端的应用软件信息,第二数据集中的数据为服务器获取的恶意应用软件信息。
在一些实施例中,第一数据集中的数据为终端访问的网址,第二数据集中的数据为服务器获取的恶意网址。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可以包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (15)

1.一种检测方法,其特征在于,应用于终端,包括:
获取第一哈希前缀集和第一哈希密文集,所述第一哈希前缀集包括第一数据集中的数据的哈希前缀,所述第一哈希密文集包括所述第一数据集中的数据的哈希密文,所述第一数据集中的数据的哈希密文是通过第一加密方式加密的;
向服务器发送第一请求,所述第一请求用于获取所述第一数据集和所述服务器的第二数据集的交集,所述第一请求携所述第一哈希前缀集和所述第一哈希密文集;
接收所述服务器发送的第二哈希密文集和第一信息;所述第二哈希密文集是通过第二加密方式对所述第一哈希密文集中的哈希密文加密后获取的,所述第一信息用于指示第一哈希密文,所述第一哈希密文为所述第二数据集的数据的哈希前缀中与所述第一哈希前缀匹配的哈希前缀对应的哈希密文,所述第一哈希前缀为所述第一哈希前缀集中的任一哈希前缀,第二数据集的数据的哈希密文是基于所述第二加密方式确定的;
利用所述第一加密方式对所述第二哈希密文集中的哈希密文进行解密,获取解密后的第三哈希密文集;
确定所述第三哈希密文集中与所述第一哈希密文匹配的哈希密文对应的数据,为所述第一数据集与所述第二数据集的交集数据。
2.根据权利要求1所述的方法,其特征在于,依次使用所述第一加密方式和所述第二加密方式加密的哈希密文,等同于依次使用所述第二加密方式和所述第一加密方式加密的哈希密文;针对依次使用所述第二加密方式和所述第一加密方式加密的哈希密文,利用所述第二加密方式解密为使用所述第一加密方式加密的哈希密文。
3.根据权利要求2所述的方法,其特征在于,所述第一加密方式为通过所述终端的第一私密密钥和预设加密算法进行加密;所述第二加密方式为通过所述服务器的第二私密密钥和所述预设加密算法进行加密;所述预设加密算法满足阿贝尔群上运算的可交换性质。
4.根据权利要求3所述的方法,其特征在于,所述预设加密算法包括椭圆曲线加密算法、密钥流异或加密算法。
5.根据权利要求1所述的方法,其特征在于,所述获取第一哈希前缀集和第一哈希密文集之前,所述方法还包括:
在所述第一数据集中加入预设数量的干扰数据。
6.根据权利要求1所述的方法,其特征在于,所述向服务器发送第一请求之前,所述方法还包括:
利用所述终端的数字签名的私密密钥,获取所述第一哈希前缀集的第一签名和所述第一哈希密文集的第二签名,所述第一请求还携带所述第一签名和所述第二签名,所述第一签名和所述第二签名用于检测所述第一请求的合法性。
7.一种检测方法,其特征在于,应用于服务器,包括:
获取第二数据集中的数据的哈希前缀和哈希密文,所述第二数据集中的数据的哈希密文是基于第二加密方式确定的;
接收终端发送的第一请求;所述第一请求用于获取所述第二数据集和所述终端的第一数据集的交集,所述第一请求携第一哈希前缀集和第一哈希密文集,所述第一哈希前缀集包括所述第一数据集中的数据的哈希前缀,所述第一哈希密文集包括所述第一数据集中的数据的哈希密文,所述第一数据集中的数据的哈希密文是通过第一加密方式加密的;
通过所述第二加密方式对所述第一哈希密文集中的哈希密文加密,生成第二哈希密文集;检索所述第二数据集的数据的哈希前缀中与所述第一哈希前缀匹配的哈希前缀对应的第一哈希密文,所述第一哈希前缀为所述第一哈希前缀集中的任一哈希前缀;
向所述终端发送所述第二哈希密文集和所述第一信息,所述第一信息用于指示所述第一哈希密文,所述第二哈希密文集和所述第一信息用于所述终端确定所述第一数据集与所述第二数据集的交集数据。
8.根据权利要求7所述的方法,其特征在于,依次使用所述第一加密方式和所述第二加密方式加密的哈希密文,等同于依次使用所述第二加密方式和所述第一加密方式加密的哈希密文;针对依次使用所述第二加密方式和所述第一加密方式加密的哈希密文,利用所述第二加密方式解密为使用所述第一加密方式加密的哈希密文。
9.根据权利要求8所述的方法,其特征在于,所述第一加密方式为通过所述终端的第一私密密钥和预设加密算法进行加密;所述第二加密方式为通过所述服务器的第二私密密钥和所述预设加密算法进行加密;所述预设加密算法满足阿贝尔群上运算的可交换性质。
10.根据权利要求7所述的方法,其特征在于,所述第一信息包括过滤器,所述向所述终端发送所述第二哈希密文集和所述第一信息之前,所述方法还包括:
将所述第一哈希密文映射到所述过滤器。
11.根据权利要求7所述的方法,其特征在于,所述第一请求还携带所述第一哈希前缀集的第一签名和所述第一哈希密文集的第二签名,所述第一签名和所述第二签名是利用所述终端的数字签名的私密密钥生成的,所述通过所述第二加密方式对所述第一哈希密文集中的哈希密文加密之前,所述方法还包括:
利用所述终端的数字签名的公开密钥、所述第一签名和所述第二签名,验证所述第一请求的合法性;
所述通过所述第二加密方式对所述第一哈希密文集中的哈希密文加密,具体包括:
当验证所述第一请求合法时,通过所述第二加密方式对所述第一哈希密文集中的哈希密文加密。
12.一种终端,其特征在于,包括存储器和处理器,所述存储器和所述处理器电偶合,所述存储器用于存储程序指令,所述处理器被配置用于调用所述存储器存储的全部或部分程序指令,执行如权利要求1-6任一项所述的方法。
13.一种服务器,其特征在于,包括存储器和处理器,所述存储器和所述处理器电偶合,所述存储器用于存储程序指令,所述处理器被配置用于调用所述存储器存储的全部或部分程序指令,执行如权利要求7-11任一项所述的方法。
14.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6或7-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-6或7-11任一项所述的方法。
CN202110634370.0A 2021-06-07 2021-06-07 检测方法及相关装置 Pending CN115510458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110634370.0A CN115510458A (zh) 2021-06-07 2021-06-07 检测方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110634370.0A CN115510458A (zh) 2021-06-07 2021-06-07 检测方法及相关装置

Publications (1)

Publication Number Publication Date
CN115510458A true CN115510458A (zh) 2022-12-23

Family

ID=84499140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110634370.0A Pending CN115510458A (zh) 2021-06-07 2021-06-07 检测方法及相关装置

Country Status (1)

Country Link
CN (1) CN115510458A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117729535A (zh) * 2023-05-17 2024-03-19 荣耀终端有限公司 一种查询方法、电子设备及***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117729535A (zh) * 2023-05-17 2024-03-19 荣耀终端有限公司 一种查询方法、电子设备及***

Similar Documents

Publication Publication Date Title
CN110971415B (zh) 一种天地一体化空间信息网络匿名接入认证方法及***
US10567165B2 (en) Secure key transmission protocol without certificates or pre-shared symmetrical keys
US9137223B2 (en) Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
CN111130803B (zh) 数字签名的方法、***及装置
US8331567B2 (en) Methods and apparatuses for generating dynamic pairwise master keys using an image
CN106452770B (zh) 一种数据加密方法、解密方法、装置和***
US20130151853A1 (en) Systems and methods for secure peer-to-peer communications
CN110932851A (zh) 一种基于pki的多方协同运算的密钥保护方法
CN112597523B (zh) 文件处理方法、文件转换加密机、终端、服务器及介质
CN110621016B (zh) 一种用户身份保护方法、用户终端和基站
CN112566119A (zh) 终端认证方法、装置、计算机设备及存储介质
CN112533202A (zh) 身份鉴别方法及装置
WO2010023506A1 (en) Methods, apparatuses, computer program products, and systems for providing secure pairing and association for wireless devices
CN113301036A (zh) 通信加密方法和装置、设备及存储介质
CN110730447B (zh) 一种用户身份保护方法、用户终端和核心网
CN110572825A (zh) 一种可穿戴设备认证装置及认证加密方法
WO2022166214A1 (zh) 一种密接数据验证方法、客户端、服务器及存储介质
EP3149883B1 (en) Management of cryptographic keys
KR20200099873A (ko) 드론(Unnamed Aerial vehicle)시스템을 위한 HMAC기반의 송신원 인증 및 비밀키 공유 방법 및 시스템
CN115510458A (zh) 检测方法及相关装置
CN111277605B (zh) 数据分享方法、装置、计算机设备以及存储介质
WO2019066719A1 (en) SECURING IBC EXTERNAL COMMUNICATION-VEHICLE
EP3355546B1 (en) Device identification encryption
WO2021129012A1 (zh) 隐私信息传输方法、装置、计算机设备及计算机可读介质
Yoon et al. Security enhancement scheme for mobile device using H/W cryptographic module

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