CN116018590A - 动态私密性保护应用程序认证 - Google Patents

动态私密性保护应用程序认证 Download PDF

Info

Publication number
CN116018590A
CN116018590A CN202180053999.4A CN202180053999A CN116018590A CN 116018590 A CN116018590 A CN 116018590A CN 202180053999 A CN202180053999 A CN 202180053999A CN 116018590 A CN116018590 A CN 116018590A
Authority
CN
China
Prior art keywords
user device
server computer
application
key value
authentication
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
CN202180053999.4A
Other languages
English (en)
Inventor
M·克里斯托多雷斯库
M·希尔瓦尼安
D·M·S·扎沃阿德
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of CN116018590A publication Critical patent/CN116018590A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了使用安全的应用程序数据验算来认证应用程序或设备。服务器计算机接收认证请求,所述认证请求包括应用程序标识符或与用户设备相关联的用户设备标识符,所述认证请求源自所述用户设备。所述服务器计算机接收与所述应用程序或所述用户设备相关联的一组行为数据。响应于接收到所述应用程序标识符或设备标识符,所述服务器计算机获得与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库。所述服务器计算机使用所述模糊保险库和所述一组行为数据来确定重构密钥值。使用所述重构密钥值来认证所述应用程序或所述用户设备。

Description

动态私密性保护应用程序认证
相关申请的交叉引用
本申请要求2020年9月3日提交的美国临时申请No.63/074,355的优先权的权益,该临时申请出于所有目的以引用方式并入本文。
背景技术
客户端-服务器设置中的应用程序和设备通常使用凭证进行认证。以安全的方式管理凭证具有挑战性,集中式解决方案可变成单点故障。通常使用某种形式的凭证(诸如密码和加密密钥)来执行应用程序认证。由于客户端应用程序和设备负责安全地存储和管理凭证,因此这种方法易于受到针对客户端的攻击。集中管理的凭证存储装置也容易受到各种攻击的影响,并且如果受损,可能会泄漏秘密凭证。
实施方案单独地和共同地解决这些问题和其他问题。
发明内容
在一些实施方案中,提供了用于认证应用程序或设备的改进技术。通过使用模糊保险库来存储利用应用程序或设备行为数据锁定的认证密钥,认证的安全性和私密性得到改进。所述应用程序或设备的行为被监控并用于将所述密钥安全地存储在所述模糊保险库中。在将与应用程序或设备相关联地收集的行为数据与存储在所述模糊保险库中的所述数据进行比较时,可检索并验算所述密钥以认证所述应用程序或设备。
在一些实施方案中,一种计算机实现的方法包括:由服务器计算机接收认证请求,所述认证请求包括与应用程序相关联的应用程序标识符或者与用户设备相关联的用户设备标识符,所述认证请求源自所述用户设备;由所述服务器计算机接收与所述应用程序或所述用户设备相关联的一组行为数据;响应于接收到所述应用程序标识符或设备标识符,由所述服务器计算机获得与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库;以及由所述服务器计算机使用所述模糊保险库和所述一组行为数据来确定重构密钥值,其中使用所述重构密钥值来认证所述应用程序或所述用户设备。
在一些方面中,所述服务器计算机是模糊提取器服务器计算机,并且所述模糊保险库存储在认证服务器计算机中,并且所述方法还包括:由所述模糊提取器服务器计算机生成所述重构密钥值的散列;以及由所述模糊提取器服务器计算机将所述重构密钥值的所述散列和所述应用程序标识符或所述用户设备标识符传输到所述认证服务器计算机,其中所述认证服务器计算机用注册密钥值的散列来验证所述重构密钥值的所述散列,并且其中所述认证服务器计算机向所述用户设备通知所述用户设备或所述应用程序被认证。
在一些方面中,从与所述用户设备通信或位于所述用户设备内的多个传感器获得所述一组行为数据。在一些方面中,所述一组行为数据包括以下中的一者或多者:所述应用程序或所述用户设备的CPU消耗、所述应用程序或所述用户设备的存储消耗、利用所述应用程序或所述用户设备的成功通信的数量、所述应用程序或所述用户设备访问的文件的数量、所述应用程序或所述用户设备执行的系统调用的数量、所述应用程序或所述用户设备的平均响应时间、所述应用程序或所述用户设备发送的分组的数量,或所述应用程序或所述用户设备接收的分组的数量。在一些方面中,所述服务器计算机是模糊提取器服务器计算机,并且所述模糊保险库存储在认证服务器计算机中,并且所述模糊提取器服务器计算机经由所述认证服务器计算机从所述用户设备接收所述认证请求。
在一些方面中,由所述服务器计算机使用所述模糊保险库和所述一组行为数据来确定所述重构密钥值包括:使用所述行为数据来标识所述模糊保险库中的候选的一组点;用所述候选的一组点来形成多项式;以及使用所述多项式的系数来确定所述重构密钥值。在一些方面中,使用所述行为数据来标识所述模糊保险库中的所述候选的一组点包括:对于多个特征值中的每个特征值,将所述特征值与对应于所述模糊保险库中的点的模糊保险库值进行比较;以及在所述模糊保险库值在所述特征值中的所述一个特征值的预先确定的阈值内的情况下,选择所述模糊保险库中的所述点作为所述候选的一组点中的一个点。
在一些方面中,所述服务器计算机是模糊提取器服务器计算机,并且所述模糊保险库存储在认证服务器计算机中,并且所述模糊提取器服务器计算机经由所述认证服务器计算机从所述用户设备接收所述模糊保险库以及所述用户设备标识符或所述用户设备标识符。
在一些方面中,所述一组行为数据是第一组行为数据,并且所述方法还包括注册过程,所述注册过程包括:由所述服务器计算机接收注册请求,所述注册请求包括所述应用程序标识符或所述用户设备标识符以及注册密钥值;由所述服务器计算机接收与所述用户设备或所述应用程序相关联的第二组行为数据;由所述服务器计算机使用所述注册密钥值来形成多项式,其中所述注册密钥值的一个或多个部分形成所述多项式的系数;由所述服务器计算机通过将所述第二组行为数据输入到所述多项式中来确定一组真实点;以及使用所述一组真实点和随机杂凑点来形成所述模糊保险库。
在一些方面中,所述模糊保险库在图上包括所述一组真实点和所述随机杂凑点。在一些方面中,所述方法还包括将所述模糊保险库传输到所述用户设备,其中所述用户设备存储所述模糊保险库。在一些方面中,所述方法还包括:在形成所述模糊保险库之后,由所述服务器计算机删除所述注册密钥值。在一些方面中,所述服务器计算机是模糊提取器服务器计算机,并且所述注册密钥值由认证服务器计算机生成,并且由所述认证服务器计算机散列,并且所散列的注册密钥由所述认证服务器计算机存储。
在一些方面中,由所述服务器计算机接收与所述应用程序或所述用户设备相关联的所述一组行为数据包括接收与所述用户设备相关联的所述一组行为数据。在一些方面中,由所述服务器计算机接收与所述应用程序或所述用户设备相关联的所述一组行为数据包括接收与所述应用程序相关联的所述一组行为数据。在一些方面中,基于所述认证来授予所述应用程序或所述用户设备对计算服务的访问。
在一些方面中,所述一组行为数据包括时间序列数据,并且所述方法还包括基于所述时间序列数据来为所述行为数据的至少子集计算统计值,其中所述统计值用于确定所述重构密钥值。在一些方面中,所述一组行为数据包括多个特征值,并且所述方法还包括计算所述特征值中的每一者的归一化值。在一些方面中,所述方法还包括基于所述归一化值来生成二进制特征向量,其中所述二进制特征向量用于确定所述重构密钥值。
在一些实施方案中,一种计算机实现的方法包括:由认证服务器计算机向模糊提取器服务器计算机传输针对应用程序或用户设备的认证请求,所述认证请求包括应用程序标识符或与用户设备相关联的用户设备标识符,所述认证请求源自所述用户设备,从而引起由所述模糊提取器服务器计算机使用与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库以及与所述应用程序或所述用户设备相关联的一组行为数据来计算重构密钥值;接收所述重构密钥值或所述重构密钥值的散列;以及由所述认证服务器计算机用所述重构密钥值或所述重构密钥值的所述散列来认证所述应用程序或所述用户设备。
在一些方面中,认证所述应用程序或所述用户设备包括:由所述认证服务器计算机将所述重构密钥值的所述散列与存储的散列密钥进行比较;以及由所述认证服务器计算机确定所述重构密钥值的所述散列与所述存储的散列密钥匹配。在一些方面中,所述方法还包括由所述认证服务器计算机从所述用户设备接收所述认证请求。
实施方案还包括用于执行本文所述的技术的计算机系统和计算机可读介质。
术语
在讨论具体实施方案之前,可详细描述一些术语。
“服务器计算机”可包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群,或者像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到Web服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
“存储器”可包括可存储电子数据的合适的一个或多个装置。合适的存储器可以包括非瞬态计算机可读介质,其存储可以由处理器执行以实现期望方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。
“处理器”可包括任何合适的一个或多个数据计算设备。处理器可以包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序部件。该CPU可以是微处理器,诸如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
“用户设备”可包括可由用户操作的任何电子设备。用户设备可提供通信能力,所述通信能力包括通过移动电话(无线)网络、无线数据网络(例如,3G、4G或类似网络)、Wi-Fi、Wi-Max,或者可提供对网络(诸如互联网或专用网络)的访问的任何其他通信介质的通信。用户设备的示例包括移动电话(例如,蜂窝电话)、PDA、平板电脑、上网本、膝上型计算机、台式计算机、个人音乐播放器、手持式专用阅读器、可穿戴设备(例如,手表)、车辆(例如,汽车)等。用户设备可包括用于执行此类功能的任何合适的硬件和软件,并且还可包括多个设备或部件(例如,当设备通过网络共享到另一设备—即,将另一设备用作中继器—而能够远程访问网络时,联系在一起的这两个设备可被认为是单个用户设备)。
“模糊保险库”或“模糊保险库方案”可以是基于数据集的模糊匹配来提供安全认证的方法。模糊保险库可以是加密方案,其利用了纠错码的一些概念,以将信息编码成使得即使用于编码的方法是众所周知的,在没有用于编码的“密钥”的情况下也难以获得该信息。经编码信息可以呈数据保险库的形式。模糊保险库也在以下文献中进行了描述:A.Juels和M.Sudan,“A Fuzzy Vault Scheme,”Proc.IEEE Int’l.Symp.Inf.Theory,A.Lapidoth和E.Teletar,Eds.,pp.408,2002。以及K.Nandakumar等人,“Fingerprint-based fuzzy vault:Implementation and performance,”IEEE Transactions onInformation Forensics and Security(Dec.2007)。
“数据保险库”可以是数据的安全编码。数据仓库中的数据可能以某种形式进行保护,使得只能用正确的密钥获得数据。数据保险库可以是加密数据,并且在一些实施方案中,可使用模糊保险库方案来形成数据保险库。
“散列”或“散列值”是从任意大小的数据(例如,文本字符串)生成的值(通常具有固定大小)。散列可以是例如数值或字符串值。哈希可能显著小于数据本身。散列可由“散列函数”生成,使得一些其他数据将产生相同的散列值是极其不可能的,并且基于散列值来重构数据是极其困难的。
“认证数据”可包括适合于证明某事真实有效的任何数据。可从应用程序/设备获得认证数据。从用户获得的认证数据的示例可包括认证令牌、标识符、密码等。可从设备获得的认证数据的示例可包括设备序列号、硬件安全元素标识符、设备指纹、电话号码、IMEI编号、存储在设备上的模板等。
“凭证”可包括充当价值、所有权、身份或权限的可靠证据的任何合适的信息。凭证可以是一串数字、字母或任何其他合适的字符,或者可充当确认的任何对象或文档。凭证的示例包括身份证、认证文档、访问卡、密码和其他登录信息、支付账号、访问徽章编号、支付令牌、访问令牌等。
“设备代码”或“设备标识符”可包括专门与设备(例如,仅一个设备)相关联的任何代码。可从任何装置特定信息中导出装置代码,这些信息包括但不限于以下项中的一个或多个:安全元件标识符(SE ID)、IMEI编号、电话号码、地理位置、装置序列号、装置指纹等。可使用包括散列和/或加密的任何适当的数学运算来从此类信息中导出此类代码。设备代码可包括任何合适数量和/或类型的字符。
“特征”可包括表征应用程序或设备的信息。每个特征可对应于与客户端或客户端-服务器交互作用相关的单个特性。每个特征可与在给定时间下可被编码成数字表示的值相关联。虽然一组特征是唯一的,并且随着时间的推移是不可复制的,但是各个特征在多个应用程序或相同应用程序的实例中可能是相同或相似的。特征的一些示例包括基于主机的特征(例如,日均应用程序CPU消耗)、基于应用程序审计跟踪的特征(例如,每天成功连接的数量),和基于网络的特征(例如,每天唯一URL的数量)。
“传感器”可包括收集特征的值的设备或部件。传感器可收集与应用程序或设备相关联的特征的瞬时值。传感器可包括防火墙、入侵检测系统、操作系统监视器、客户端应用程序监视器和服务器计算机。传感器可提供在给定时间下的特征值。在一些情况下,传感器可存储或跟踪这些值的历史。
“行为”可指代关于实体的特性信息。行为可对应于随着时间的推移所采集的一系列特征值。行为可对应于一组唯一且不可复制的特征,随着时间的推移,这些特征可区分在相同或不同的硬件机器上运行的两个不同的应用程序或相同应用程序的两个实例。行为可被视为特征在一段持续时间内的一组当前值和过去值。在一些情况下,行为对应于来自应用程序的一次执行的特征值序列。
附图说明
图1示出了根据一些实施方案的用于注册认证服务的系统和方法的概述。
图2示出了根据一些实施方案的用于认证的系统和方法的概述。
图3示出了根据一些实施方案的模糊提取器服务器计算机。
图4示出了根据一些实施方案的认证服务器计算机。
图5示出了根据一些实施方案的用户设备。
图6是示出根据一些实施方案的模糊保险库生成技术的示意图。
图7是示出根据一些实施方案的模糊保险库解锁技术的示意图。
图8是示出根据一些实施方案的认证注册技术的流程图。
图9是示出根据一些实施方案的认证技术的流程图。
图10是根据一些实施方案的模糊保险库的可视化。
图11A和图11B是根据一些实施方案的对应于成功和不成功认证尝试的模糊保险库的可视化。
具体实施方式
用于应用程序或用户设备的改进认证的技术包括生成模糊保险库以存储利用应用程序或用户设备的行为数据锁定的认证密钥。应用程序或用户设备的行为被监控并用于将密钥安全地存储在模糊保险库中。在将与应用程序或用户设备相关联地收集的行为数据与存储在模糊保险库中的数据进行比较时,可检索并验算密钥以认证应用程序或设备。
通常使用某种形式的凭证(诸如API密钥)来执行应用程序或设备的认证。无论是由待认证的客户端还是由对客户端进行认证的服务器存储,凭证都容易受到各种攻击的影响。
为了解决秘密管理的这些问题和其他问题,与应用程序或设备相关联的行为数据用于在设置阶段锁定秘密密钥值,以及解锁密钥以进行认证。密钥是用于向认证服务器计算机认证应用程序或设备的凭证,诸如加密密钥、API密钥、令牌或密码。在设置或注册阶段,密钥与标识应用程序或设备的行为数据一起用于生成多项式。该行为数据可由设备内或耦合到设备的网络中的传感器采集,诸如防火墙、入侵检测系统和操作系统监视器。多项式上的点以及随机杂凑点一起存储在数据保险库中,这些随机杂凑点使多项式上的点变得模糊。该数据保险库称为模糊保险库,并且用于认证的密钥的注册和重构可由模糊提取器服务器计算机来执行。
在认证期间,模糊提取器服务器计算机从传感器检索行为数据。模糊提取器服务器计算机通过基于行为数据重构多项式来解锁模糊保险库。如果所采集的行为数据与在设置阶段中使用的行为数据在一定的噪声容限下匹配(例如,指示认证请求源自相同应用程序或设备),则模糊提取器服务器可基于多项式来重构密钥。模糊提取器服务器将秘密密钥值发布给认证服务器计算机。认证服务器计算机可将重构密钥值与存储的密钥值进行比较,并且在密钥匹配的情况下认证应用程序或用户设备。在一些实施方案中,认证服务器计算机以散列形式存储密钥值,并且模糊提取器服务器在将密钥值传输到认证服务器以进行验算之前对其散列。这进一步保护了秘密密钥免于受损。
实施方案包括抵抗客户端受损的应用程序或设备认证技术。模糊提取器服务器计算机可连续地或周期性地收集应用程序或用户设备的行为以用于认证。应用程序和用户设备行为是唯一且不可复制的,尽管有噪声。这些特性允许将应用程序或用户设备行为唯一地映射到认证凭证。虽然这种方法在认证过程中结合了应用程序或用户设备的行为,但是它并不尝试在服务器处部署行为模型。在服务器处部署行为模型以用于认证是计算密集型的,通常依赖于复杂的机器学习模型,并且需要大量的存储。有利的是,本发明技术允许认证服务器计算机使用安全且相对简单的密钥验算协议。本发明技术使得客户端上的密钥管理更容易,并且不需要由客户端或认证服务器计算机对凭证进行安全存储。
注册系统和方法概述
图1示出了根据一些实施方案的用于注册认证服务的系统100和方法。系统100可包括用户设备102、传感器104、行为模型105、模糊提取器服务器计算机106和认证服务器计算机108。为了简化说明,在图1中示出有限数量的部件。然而,应当理解,实施方案可包括多于一个每种部件。
图1中描绘的系统中的部件可通过任何合适的通信信道或通信网络彼此进行操作性通信。合适的通信网络可以是下列中的任一个和/或组合:直接互连、互联网、局域网(LAN)、城域网(MAN)、作为互联网节点的运行任务(OMNI)、安全定制连接、广域网(WAN)、无线网络(例如,采用协议诸如但不限于无线应用协议(WAP)、I-模式等)等。可使用安全通信协议诸如但不限于文件传送协议(FTP)、超文本传送协议(HTTP)、安全超文本传送协议(HTTPS)、安全套接层(SSL)等来传输计算机、网络与设备之间的消息。
在一些实施方案中,用户设备102是可由用户操作并且能够执行应用程序的设备。例如,用户设备102可以是智能电话、计算机、平板电脑等。用户设备102可使用本文所述的技术向另一设备或应用程序进行认证。用户设备102本身或在用户设备102上执行的应用程序向另一设备或应用程序注册认证服务并进行认证,如本文所述。下面参照图5更详细地描述了用户设备的示例。
传感器104包括被配置为采集与应用程序或设备相关联的行为数据的硬件和/或软件。传感器104可在用户设备102上和/或在用户设备102外部执行。例如,传感器104可包括通过网络与用户设备102通信的网络监控设备。传感器104的示例包括防火墙、入侵检测系统、操作系统和客户端应用程序。传感器104提供对应于应用程序或设备在给定时间下的行为的特征值。
行为模型105将行为数据映射到值诸如风险评分。在一些具体实施中,行为模型105是机器学习分类器,其以准确和稳健的方式区分正常执行和受损执行。在这种上下文中,稳健性意味着对对抗攻击的弹性,并且特别是对模仿攻击的弹性。行为模型105可用于对从应用程序执行中收集的特征的数量和类型设置下限。经由传感器104收集的数据和经由行为模型105生成的值可被安全地传递到模糊提取器服务器计算机106。例如,考虑到基于应用程序类型、操作环境等的风险,可收集更多的特征或不同的特征。在一些具体实施中,行为模型105使用积分梯度方法来导出特征属性数据(参见Sundararajan等人,“Axiomatic Attribution for Deep Networks,”in Proceedings of the 34thInternational Conference on Machine Learning,Vol.70,ser.ICML’17.JMLR.org,pp.3319–3328(2017))。积分梯度用于通过标识对输出贡献最大的特征的子集来解释传感器104的输出。然后,模糊提取器服务器计算机106聚焦于这个简明特征子集的值。在一些方面中,这可用于从预先配置的入侵检测系统中采集数据,然后定制馈送给模糊提取器服务器计算机的行为数据。
模糊提取器服务器计算机106是被配置为使用模糊保险库安全地管理密钥的服务器。模糊提取器服务器计算机106执行本文所述的注册和验算过程。模糊提取器服务器计算机106被配置为管理和执行一对生成和重构过程。模糊提取器服务器计算机106可与认证服务器计算机108分开,或者在一些具体实施中,是认证服务器计算机108的一部分。将在下面参照图3更详细地描述模糊提取器服务器计算机106的示例。
认证服务器计算机108可以是认证应用程序或用户设备102的服务器计算机。认证服务器计算机108可存储密钥,在一些具体实施中,以散列形式存储密钥,以用于与由模糊提取器服务器计算机106生成的重构密钥值进行比较。在一些具体实施中,认证服务器计算机108可向应用程序或用户设备102提供资源或计算服务。如果分开实现,则认证服务器计算机108和模糊提取器服务器计算机106经由安全通信信道连接。例如,可经由相互认证和/或消息加密来保护通信。
在认证应用程序或设备之前,执行注册过程。注册过程包括将密钥值绑定到与应用程序设备相关联的行为数据或其衍生物。密钥值和行为数据存储到模糊保险库中,以用于在后续的认证过程中使用。
在一些实施方案中,在S110处,为了开始注册过程,用户设备102向认证服务器计算机108发送注册请求。用户设备102可例如经由消息、API推送等通过网络将注册请求传输到认证服务器计算机108。注册请求包括应用程序或用户设备的标识符。在一些具体实施中,应用程序或用户设备的标识符是秘密值。应用程序或用户设备的标识符可能已经由认证服务器计算机108或模糊提取器服务器计算机106生成并提供给用户设备102。例如,认证服务器计算机108基于行为数据或秘密密钥中的一者或多者来生成应用程序或用户设备的标识符。另选地,应用程序或用户设备的标识符可以是随机或伪随机值、基于应用程序名称分配的值等。
在步骤S112处,认证服务器计算机108标识密钥值。密钥可以是用于向认证服务器计算机108认证用户设备102的凭证,诸如加密密钥、令牌、密码、API密钥等。作为示例,认证服务器计算机108可随机生成密钥、从一组存储的密钥中选择密钥,或者使用加密算法来生成密钥。在一些具体实施中,认证服务器计算机108存储密钥值的散列。这是有利的,因为密钥值本身不被认证服务器计算机108存储,并且不会受损,即使认证服务器计算机108受损。另选地,在一些具体实施中,认证服务器计算机以明文形式存储密钥值。存储的密钥或散列密钥可用于后续的认证处理。
在步骤S114处,认证服务器计算机108将注册请求传输到模糊提取器服务器计算机106。认证服务器计算机108可首先修改注册请求以包括密钥值,使得注册请求包括应用程序或设备标识符和密钥值。认证服务器计算机可例如通过网络向模糊提取器服务器计算机106传输消息、API推送等。
在步骤S116处,模糊提取器服务器计算机106从传感器104和行为模型105获得应用程序或用户设备的行为数据。模糊提取器服务器计算机106可从一个或多个传感器检索与应用程序或用户设备相关联的行为数据。在一些具体实施中,经由行为模型105从传感器接收行为数据。行为数据可包括多个特征B={b1;...,bn},用于特征1、2、...、n。这些特征可包括例如:
·基于主机的特征
·应用程序或设备的CPU消耗
·应用程序或设备的存储消耗
·设备上的运行过程的数量
·安全区域信息
·基于应用程序审计跟踪的特征
·向和从应用程序或设备的成功通信的数量
·向和从应用程序或设备的失败通信的数量
·应用程序或设备打开的文件的数量
·应用程序或设备访问的文件的数量
·应用程序或设备进行的系统调用的数量
·基于网络的特征
·按端口的连接的数量
·数据长度的总和、平均值和/或标准差
·应用程序或设备的平均响应时间
·不同源端口的数量
·不同目的地端口的数量
·按连接状态的连接的数量
·应用程序或设备发送和接收的分组的数量
·各种协议的数量
·区域传送的数量。
作为具体示例,模糊提取器服务器计算机106从企业网络的各种传感器104收集针对应用程序或设备的十四种行为属性或特征。这些特征为:
·应用程序或设备访问的唯一URL的数量,
·应用程序或设备所访问URL的唯一类别的数量,
·应用程序或设备从所有源接收的字节的数量,
·应用程序或设备发送到所有目的地的字节的数量,
·应用程序或设备发起的HTTP请求的数量,
·应用程序或设备发起的SSL请求的数量,
·应用程序或设备失败的代理认证的数量,
·以HTTP Code 200接收的响应的数量,
·应用程序被允许的防火墙请求的数量,
·应用程序被拒绝的防火墙请求的数量,
·来自应用程序托管机器或设备的传出连接的数量,和
·基于来自应用程序托管机器或设备的所有传出连接的唯一目的地的数量。
模糊提取器服务器计算机106基于各个特征值来计算统计测量,这些特征值可对应于每个特征的许多时间序列特征值。作为具体示例,模糊提取器服务器计算机106在两个月时段内收集这些属性中的每一者的数据。模糊提取器服务器计算机106计算15天时间窗口内每个属性的平均值、标准差、第50百分位(中值)和第75百分位值,从而得到56个特征。
在步骤S118处,模糊提取器服务器计算机206使用行为数据(图1中的B)来安全地隐藏密钥值。模糊提取器使用模糊提取器生成函数(FEGen)来生成模糊保险库以隐藏密钥值。在一些实施方案中,模糊提取器服务器计算机106使用多项式P来隐藏密钥值。模糊提取器服务器计算机106将密钥值k分配为d+1份额,其中d是多项式的次数。这些份额被设置为次数为d的多项式的系数,c={c1,...,cd+1}。多项式P为:
Pd(x)=cnxn+...+c1x+c0
,其中n是从要包括在保险库中的应用程序或设备行为中选择的特征的数量。共享秘密算法可用于将密钥k分成d+1份额,其中每个份额仅携带秘密的一部分,并且不单独揭露秘密密钥。可组合这些份额中的全部或一些来重构密钥值。
在一些实施方案中,模糊提取器服务器计算机106将行为数据编码成向量。例如,行为B={b1;...,bn}被编码成X={x1,...,xm}:大小为m(m≤n)的向量。
在一些实施方案中,针对经编码行为中的每个元素,xi X;1≤i≤m,模糊提取器服务器计算机106将xi在多项式上的投影计算为:
yi=Pd(xi)
。模糊提取器服务器计算机106基于经编码行为数据和经编码行为数据在多项式上的投影在保险库中生成一组真实点。例如,模糊保险库中的点为:
F={(x1;y1),...(xm;ym)}。
在一些实施方案中,模糊提取器服务器计算机106生成杂凑点。杂凑点与真实点一起包括在模糊保险库中,以便使真实点变得模糊。因此,即使入侵者访问了模糊保险库,也不能辨别真实点与杂凑点。在一些具体实施中,生成一组随机杂凑点,使得杂凑点不位于多项式上。
基于密钥值、所生成的真实点和所生成的杂凑点,模糊提取器服务器计算机106初始化模糊保险库。模糊提取器服务器计算机106通过生成这些点并将它们存储在一起来初始化模糊保险库。下面参照图6和图8进一步描述模糊保险库生成过程。
在一些实施方案中,在S120处,模糊提取器服务器计算机106将模糊保险库V传输到用户设备102。在一些具体实施中,模糊保险库V存储到用户设备。另选地或另外地,模糊保险库V可被传输到认证服务器计算机108并由其存储。另选地或另外地,模糊保险库V由模糊提取器服务器计算机106存储。由于密钥值在模糊保险库V中是模糊的,因此它不需要必须存储到安全硬件。
在步骤S122处,模糊提取器服务器计算机106丢弃密钥值。在一些具体实施中,模糊提取器服务器计算机106和认证服务器计算机108都不存储明文密钥,从而保护了密钥的安全性。
在步骤S124处,模糊提取器服务器计算机106向认证服务器计算机108传输注册完成的通知。一旦注册完成,模糊保险库就可用于认证应用程序或用户设备。
认证系统和方法概述
图2示出了根据一些实施方案的用于认证的系统200和方法。系统200可包括用户设备202(例如,图1所示的用户设备102)、传感器204和行为模型205(例如,图1所示的传感器104和行为模型105)、模糊提取器服务器计算机206(例如,图1所示的模糊提取器服务器计算机106)和认证服务器计算机208(例如,图1所示的认证服务器计算机108)。
在步骤S210处,用户设备202向认证服务器计算机208发起认证。用户设备202向认证服务器计算机208传输认证请求。认证请求包括应用程序或设备的标识符。在一些具体实施中(例如,在模糊保险库V存储到用户设备202的情况下),认证请求还包括模糊保险库V。用户设备202可例如经由消息、API推送等通过网络将认证请求传输到认证服务器计算机208。
在步骤S212处,认证服务器计算机208将认证请求转发给模糊提取器服务器计算机206。认证服务器计算机208可例如经由消息、API推送等通过网络将注册请求传输到模糊提取器服务器计算机206。
在步骤S214处,模糊提取器服务器计算机206从传感器204和/或行为模型205检索行为数据B’。行为数据可包括对应于一组行为特征的一组值,如上面参照图1的步骤S116所描述的。在稍后的时间,行为特征B’i很可能不同于上面参照图1描述的在注册阶段采集的初始行为特征Bi。例如,应用程序或设备通常已同时执行附加操作,诸如发送附加消息、执行附加CPU周期等。然而,如果结合相同的应用程序或设备来采集,则B和B’将具有某种程度的相似性。
在步骤S216处,模糊提取器服务器计算机206执行密钥重构过程,以从应用程序或设备的当前行为以及模糊保险库V重构密钥值。模糊提取器服务器计算机可通过基于在步骤S214处检索的行为数据内插多项式来重构密钥值。例如,模糊提取器服务器计算机将行为数据b’0编码为x个值,X’={x’1,..,x’m}。模糊提取器服务器计算机206标识模糊保险库V中坐标在某个阈值内接近经编码行为数据的值。模糊提取器服务器计算机206可例如根据距离函数来计算距离,并且从在S214处检索的经编码行为数据和模糊保险库V中的点标识距离。针对经编码行为向量中的每个元素,基于距离函数来选择最接近的一对(xi;yi)。可通过距离函数来测量两个值x和x0之间的距离。
为从保险库中选择的表示多项式上的可能点的所有对生成候选集F’。如果距离小于某个阈值,则可选择一组点。通过标识这些点,模糊提取器服务器计算机206重构多项式P。下面参照图7更详细地描述了用于重构多项式的技术。
使用重构多项式P,模糊提取器服务器计算机206重构了重构密钥值k’。例如,从重构多项式P的系数中标识k’。下面参照图7和图9更详细地描述了重构过程。
在一些具体实施中,为了考虑应用程序或用户设备行为随着时间的推移的变化,可进行多次尝试,并且如果需要,可更新存储的模板数据。例如,如果注册密钥的散列与重构密钥值的散列不匹配,则可重复步骤S214至S218,直到达到最大尝试数量。在一些情况下,模糊提取器服务器计算机可确认不匹配的应用程序或设备确实是相同的应用程序或设备(例如,使用机器学习或管理员确认)。可基于新的行为数据来更新模糊保险库。
在步骤S218处,模糊提取器服务器计算机206计算k’的散列H(k’),并且将重构密钥值的散列(H(k’))传输到认证服务器计算机208。另选地,模糊提取器服务器计算机206可以明文形式将重构密钥值发送到认证服务器计算机208。模糊提取器服务器计算机206还可将应用程序或设备的标识符传输到认证服务器计算机208,以便于将密钥值匹配到应用程序或用户设备。
在步骤S220处,认证服务器计算机208使用存储的注册密钥的散列(H(k))来验证所接收的散列密钥(H(k’))。认证服务器计算机208可比较散列的重构密钥值和散列的注册密钥,并确定散列密钥是否匹配。
在步骤S222处,认证服务器计算机208向用户设备202传输完成认证的通知。该通知可包括应用程序或用户设备的标识符,以及认证是否成功的指示。认证是否成功是重构密钥值k’的函数,并且还可基于阈值(T/O,如图2所示),如上面参照步骤220所述。如果重构密钥值(k’)的散列和存储的注册密钥(k)匹配,则认证服务器计算机208可向用户设备202发送认证成功消息和/或授予用户设备202对服务或资源的访问。如果重构密钥值(k’)的散列和存储的注册密钥(k)不匹配,则认证服务器计算机208可向用户设备202发送认证失败消息和/或拒绝用户设备202对服务或资源的访问。
示例性模糊提取器服务器计算机
图3示出了根据一些实施方案的模糊提取器服务器计算机300的框图。模糊提取器服务器计算机300可包括处理器302。处理器302可以是如上所述的任何合适的处理装置或设备。处理器302可耦合到通信接口304和计算机可读介质306。
通信接口304可包括可允许模糊提取器服务器计算机300与外部计算机通信的接口。通信接口304可使得模糊提取器服务器计算机300能够向和从另一设备(例如,用户设备、认证服务器计算机等)传送数据。通信接口304的一些示例可包括调制解调器、物理网络接口(诸如以太网卡或其他网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。由通信接口304启用的无线协议可包括Wi-FiTM。经由通信接口304传送的数据可以呈信号的形式,所述信号可以是电信号、电磁信号、光信号,或者能够由外部通信接口接收的任何其他信号(统称为“电子信号”或“电子消息”)。可经由通信路径或信道在通信接口304与其他设备之间提供可包括数据或指令的这些电子消息。如上所述,可使用任何合适的通信路径或信道,诸如电线或电缆、光纤、电话线、蜂窝链路、射频(RF)链路、WAN或LAN网络、互联网,或任何其他合适的介质。通信接口304可利用长距离通信信道和/或短距离通信信道。
计算机可读介质306可以是非暂时性计算机可读介质,其包括存储为一系列指令或命令的软件代码。计算机可读介质306可包括能够由处理器302执行以实现一种方法的代码,该方法包括:由服务器计算机接收认证请求,该认证请求包括与应用程序相关联的应用程序标识符或者与用户设备相关联的用户设备标识符,该认证请求源自该用户设备;由服务器计算机接收与应用程序或用户设备相关联的一组行为数据;响应于接收到应用程序标识符或设备标识符,由服务器计算机获得与应用程序标识符或用户设备标识符相关联的模糊保险库;以及由服务器计算机使用模糊保险库和该组行为数据来确定重构密钥值,其中使用重构密钥值来认证应用程序或用户设备。
计算机可读介质306可包括通信模块308、注册模块310和重构模块312。这些模块中的每一者可包括被配置为结合处理器302执行下面描述的功能的代码。
通信模块308可包括使处理器302生成消息、转发消息、重新格式化消息和/或以其他方式与其他实体通信的代码。
注册模块310可包括使处理器302执行注册过程的代码。如上面参照图1所描述的,注册过程可包括生成模糊保险库,该模糊保险库存储包括真实点的点,这些真实点位于基于在正在注册认证服务的应用程序或设备的行为数据生成的多项式上,以便隐藏用于认证应用程序或设备的密钥值。注册模块可包括使得模糊提取器服务器计算机300能够执行与生成数据保险库相关联的任何功能的代码。这些功能可包括基于密钥值来生成函数、通过将行为数据作为输入应用于函数来生成真实点、生成随机点或杂凑点,以及将真实点和杂凑点打包或分组到数据保险库中,如本文所述。注册模块310可利用任何适当的数学库来执行这些功能,诸如与随机或伪随机数生成、函数生成和泛函分析相关联的库。
重构模块312可包括使处理器302重构用于执行应用程序或用户设备的认证的密钥值的代码。重构模块312可包括能够由处理器302执行以用于存储和解锁数据保险库的代码或指令,如上面参考图2所描述的。这些代码或指令可包括例如使用采集的行为数据来确定对应于模糊保险库的真实点的子集、内插函数,以及基于函数来确定重构密钥值。该重构模块312可与处理器302合作地采集与待认证的应用程序或设备相关联的行为数据。重构模块312基于行为数据来重构多项式,该多项式用于重构密钥。然后,可将该重构密钥值与注册过程中使用的原始密钥进行比较,以便认证应用程序或设备。
示例性认证服务器计算机
图4示出了根据一些实施方案的认证服务器计算机400的框图。认证服务器计算机400可包括耦合到通信接口404和计算机可读介质406的处理器402。处理器402和通信接口404可类似于上面参照图3描述的处理器302和通信接口304。认证服务器计算机400还可包括或可通信地耦合到数据库420。
计算机可读介质406可以是非暂时性计算机可读介质,其包括存储为一系列指令或命令的软件代码。计算机可读介质406可包括能够由处理器402执行以实现一种方法的代码,该方法包括:由认证服务器计算机传输针对应用程序或用户设备的认证请求,该认证请求包括应用程序标识符或用户设备标识符,该认证请求源自该用户设备,从而引起使用与应用程序标识符或用户设备标识符相关联的模糊保险库以及与应用程序或用户设备相关联的一组行为数据来计算重构密钥值;以及由认证服务器计算机使用重构密钥值来认证应用程序或用户设备。
计算机可读介质406可包括请求管理模块408、密钥管理模块410和验算模块412。这些模块中的每一者可包括被配置为结合处理器402执行下面描述的功能的代码。
请求管理模块408可包括使处理器402管理注册和认证请求的代码。管理请求可包括生成消息、转发消息、重新格式化消息和/或以其他方式与其他实体通信。
密钥管理模块410可包括使处理器402管理密钥的代码。这可包括生成散列密钥。由密钥管理模块410执行的密钥管理还可包括将密钥存储到数据库420,在一些具体实施中,以散列形式存储到该数据库。
该数据库420可以是用于存储数据的存储单元和/或设备(例如,文件系统、数据库、表的集合或其他存储机构)。在一些实施方案中,数据库420包括密钥存储库422和一个或多个模糊保险库242。密钥存储库422包括可能呈散列形式的密钥,其可被索引到在认证协议中注册的不同应用程序和设备的不同应用程序或设备标识符。如上面参照图1所述,密钥可以是加密密钥、令牌、密码或任何合适的凭证。
在一些具体实施中,模糊保险库存储在认证服务器计算机中。数据库420可包括一组模糊保险库424,每个模糊保险库被索引到相应的应用程序或设备标识符。例如,应用程序A具有存储到与应用程序A的标识符相关联的数据库420的第一模糊保险库,应用程序B具有存储到与应用程序B相关联的数据库420的第二模糊保险库等。另选地或另外地,用户设备可本地地存储模糊保险库,如图5所示。
验算模块412可包括使处理器402使用来自数据库420的密钥存储库422的可能呈散列形式的密钥和从模糊保险库服务器接收的重构密钥值来验算认证的代码。验算模块412将重构密钥值与密钥存储库422中的对应密钥进行比较。验算模块412可使处理器402确定重构密钥与存储密钥是否匹配。
示例性用户设备
图5示出了根据一些实施方案的用户设备500的示例。用户设备500可包括用于实现某些设备功能的电路,诸如无线通信或电话。负责实现那些功能的功能元件可包括处理器502,该处理器可执行实现用户设备的功能和操作的指令。处理器502可访问应用程序/数据存储装置510(或另一合适的存储区域或元件)以检索指令或在执行指令时使用的数据。
数据输入/输出506(诸如键盘或触摸屏)可用于使得用户能够操作用户设备500(例如,允许用户导航至认证应用程序516)。数据输入/输出506还可被配置为(例如,经由扬声器)输出数据。显示器504也可用于将数据输出给用户。通信元件508可用于实现用户设备500与有线或无线网络之间的(例如,经由天线524的)数据传送,实现数据传送功能,并且可用于辅助与互联网或另一网络的连接。
应用程序/数据存储装置510可包括计算机可读介质,该计算机可读介质可包括多个软件模块,诸如通信模块512、行为跟踪模块514、认证应用程序516和认证模块518。模糊保险库520存储对应于安全地存储用于认证的密钥的一组点的数据,如上所述。模糊保险库520可存储在应用程序/数据存储装置510内,或者存储在分开的存储单元或设备中。
通信模块512可包括使得处理器502能够实施或实现用户设备500与其他设备(诸如其他用户设备或服务器计算机)之间的通信的代码。通信模块512可允许根据任何适当的协议诸如TCP、UDP、IS-IS、OSPF、IGRP、EIGRP、RIP、BGP等来进行通信。通信模块512可通过使得处理器502能够在用户设备500与其他设备之间建立安全或加密的通信信道来允许安全通信。通信模块512可允许将模糊保险库和其他数据传输到其他设备,诸如认证服务器计算机或模糊保险库服务器计算机。
行为跟踪模块514可包括使得用户设备500能够跟踪认证应用程序516或用户设备500的行为的代码。行为跟踪模块514可包括如上面参照图1所描述的传感器,以用于跟踪应用程序或设备行为诸如存储消耗、CPU消耗、访问的文件的数量等。
认证应用程序516可以是使用本文所述的技术向认证服务器计算机进行认证的应用程序。认证应用程序516可以是任何合适类型的应用程序,诸如电子邮件应用程序、银行业务应用程序、社交媒体应用程序、购物应用程序、防病毒应用程序、自动化引擎、恶意软件沙箱化应用程序、端点响应工具等。在一些方面中,认证应用程序516与认证服务器计算机交互,以请求对安全资源或计算服务的访问。例如,认证应用程序516在具有认证服务器计算机的企业系统中执行。响应于访问安全资源或计算服务的请求,可执行认证操作。
认证模块518执行认证功能,并且可以是认证应用程序516的一部分,或者可以是分开的(例如,在整体地认证用户设备的情况下)。认证模块518的功能可包括准备认证请求和跟踪要与认证请求一起发送的必要信息,诸如模糊保险库520和应用程序或用户设备的标识符。
用于使用模糊保险库来保护密钥的技术
图6示出了示出通过生成模糊保险库608来安全地存储密钥的技术的示意图。一般来讲,数据保险库(例如,模糊保险库608)包括一组点。每个点可包括两个值,这两个值在图6中标记为“x”和“y”。一些点是“随机点”或“杂凑点”。这些点可对应于两个随机值。其他点对应于数据和该数据的函数。在实施方案中,这些其他点可称为“真实点”,并且可对应于密钥值602、行为数据606(例如,基于与应用程序或用户设备相关联的行为数据的特征向量)和函数P(x)604。可从密钥值602导出函数P(x)604。因此,模糊保险库608可包括一组点,该组点包括一组随机点和对应于与应用程序或设备相关联的行为数据以及密钥值602的多个真实点。
因为模糊保险库608包含随机点,所以不可能仅通过观察来区分哪些点对应于密钥值602或行为数据606。因此,恶意行为者不能从模糊保险库608中提取密钥值602和行为数据606。同样,因为模糊保险库608包含随机点,所以不可能仅通过观察来唯一地确定函数P(x)604。
在一些具体实施中,可由如图3所描绘的模糊保险库服务器计算机执行用于生成模糊保险库608的技术。模糊保险库服务器计算机可生成对应于密钥值602的函数P(x)604。在图6所描绘的示例中,密钥值602被示出为12位数字序列。可使用多种不同的技术来生成函数P(x)604。一种技术涉及使用对应于密钥值602的数字来生成x的多项式函数。
在一些实施方案中,模糊提取器服务器计算机应用秘密共享技术以将密钥值嵌入到多项式中。模糊提取器服务器计算机可应用秘密共享算法,该秘密共享算法将密钥值分成一组份额,其中每个份额仅携带秘密密钥的一部分,并且不单独揭露秘密密钥。
如图6所示,可例如通过使用由密钥值602的三个连续数字构成的每个块作为多项式系数来生成函数P(x)604。多项式函数可能是方便的,因为存在生成和内插多项式的有效技术,其可分别用于锁定和解锁保险库。然而,可用多项式函数之外的函数P(x)604来实践实施方案。
然后,模糊提取器服务器计算机可通过应用表示应用程序或设备的行为数据606的特征向量作为函数P(x)604的输入来生成一组真实点。特征向量中的每个值可以是由待认证的应用程序或设备中或耦合到待认证的应用程序或设备的传感器采集的归一化的、平均的和/或以其他方式改变的行为数据606点。在下面参照图9更详细地描述了用于生成表示行为数据的特征向量的技术。
行为数据606的特征向量可包括对应于应用程序或设备的行为特征的数据值的序列或阵列。每个数据值可用数字表示。为了将特征向量投影到多项式中,每个数据值和可作为输入应用于函数P(x)604。结果是一组P(x)或“y”值。这些值可与它们相应的行为数据606(“x”)值配对,以便生成该组真实点。模糊提取器服务器计算机同样可生成多个随机杂凑点610,例如使用随机或伪随机数生成器。
模糊保险库608以图形形式描绘。随机杂凑点610是随机点的示例,既不对应于函数P(x)604,也不对应于密钥值602或行为数据606。真实点612是真实点的示例,位于对应于函数P(x)604的线614上,该函数是密钥值602和行为数据606的函数。
模糊保险库也被描绘为一组值616。模糊保险库中的该组值616包括对应于真实点612和随机杂凑点610两者的x、y值。该组值616可以是无序的或打乱的,使得不可能基于模糊保险库中该组值616的顺序来确定该组值616中的哪些对应于随机杂凑点610以及该组值中的哪些对应于真实点612。
用于使用模糊保险库来重构密钥的技术
图7示出了根据一些实施方案的示出通过解锁模糊保险库来重构密钥的技术的示意图。这些技术可用于重构用于认证应用程序或设备的重构密钥值716,并且可由如图3所描绘的模糊提取器服务器计算机执行。模糊保险库是数据集,其在图7中被描绘为一组值702和模糊保险库708的作为由该组值702表示的标绘点的图形描绘两者。
在一些实施方案中,模糊提取器服务器计算机将模糊保险库中的该组值702与所捕获的行为数据704(即,在图2的步骤S214和图9的步骤904处接收到的该组行为数据,其可被归一化、平均或以其他方式进行操纵,如参照图9的步骤904所描述的)进行比较。模糊提取器服务器计算机将模糊保险库中的该组值702与所捕获的行为数据704进行比较,以确定模糊保险库中对应于所捕获的行为数据704的该组值的子集706。
模糊保险库中的该组值的子集706包括具有所捕获的行为数据704与模糊保险库中的该组值702之间的共同值的点。当应用程序或设备的行为随着时间的推移而改变时,所捕获的行为数据704将可能偏离与模糊保险库中的真实点的精确匹配,即使它们源自相同的应用程序或设备。例如,由于应用程序或设备在不同的日子执行不同的功能,因此行为特征可每天都变化。某一天,用户可能大量地使用应用程序或设备,并且在其他日子则根本不使用它。因此,行为特征诸如CPU周期、存储使用和网络传输将随着时间的推移而变化。
因此,预期行为数据将不会精确匹配,并且所捕获的行为数据704中不一定存在对应于数据保险库中的每个值702的值。然而,预期存储到模糊保险库的行为数据值(例如,多项式上的点712)中的至少一些(即,子集)将匹配所捕获的行为数据704点。模糊保险库中的该组值的这些子集706可包括来自模糊保险库708的与所捕获的行为数据704共享一个值(例如,“x”值)或者在某个阈值内与之足够接近的点。
在一些具体实施中,使用距离函数来选择模糊保险库中的点。可通过距离函数D(x,x′)=|x-x′|来测量两个特征值x(例如,模糊保险库中的值)与x’(例如,所检测的行为特征)之间的距离。例如,欧式距离可用于测量两点之间的距离。使用距离函数来计算认证期间收集的特征值与存储在保险库中的特征值的接近程度。如果距离小于预定义阈值,则选择存储到模糊保险库的最接近的x值和对应的y值。
与应用程序或设备相关联的行为数据固有地就有噪声,并且随着时间的推移而改变。与生物特征数据诸如指纹(预期其少量地变化)和凭证诸如密码(通常其应该根本不会变化)不同,应用程序或设备行为数据可随着时间的推移而显著地改变。因此,应该通过选择正确的阈值来考虑由于应用程序行为中的噪声和变化而引起的变化,以便于在适当的行为数据值范围内进行认证以考虑噪声。适当的阈值将允许应用程序或设备在不同环境下(尽管有噪声)准确地进行认证,同时拒绝恶意和错误的尝试。如果距离小于预定义阈值,则选择保险库值来重构密钥值。总的来说,较大的阈值允许较高的噪声,因此降低了误拒绝率,但是可能增加认证错误应用程序的可能,即增加了误接受率。可实现用于选择阈值的各种方法。例如,模糊提取器服务器计算机可使用一个全局阈值,每个应用程序实例一个阈值,或者每个应用程序实例的每个特征一个阈值。
对于一个全局阈值的方法,模糊提取器服务器计算机对所有特征和所有应用程序使用一个单个阈值。对于这种方法,选择一个初始数值,并通过实验逐渐改变阈值来标识最佳值。例如,执行认证以标识正误识率和/或负误识率,并且调整阈值以减少正误识和/或负误识。适当的阈值可根据所用多项式的次数和感兴趣的特征而变化。在一些具体实施中,对于32次多项式,选择大约50(例如,57.5)的阈值。
对于每个应用程序实例一个阈值的方法,模糊提取器服务器计算机为一个单个应用程序的所有特征选择单个阈值。模糊提取器在一个时间段(例如,2个月)内收集并归一化与应用程序或用户设备相关联的行为数据。可使用最小最大缩放器算法来执行归一化,如下面参照图9进一步描述的。模糊提取器服务器计算机将归一化值映射到二进制特征向量,如下面参照图9进一步描述的。如下面参照图9的步骤904所描述的,将归一化值映射到二进制特征可包括计算量化向量b1和b2。对于每个特征,模糊提取器服务器标识b1和b2的最小值和最大值,并且计算最大值与最小值之间的差值。模糊提取器服务器从应用程序或设备的所有特征中选择最大差值。最大差值被设置为针对应用程序的阈值。可实现b1和b2的最大值与最小值之间的差值的不同函数,诸如
Figure BDA0004103256880000251
Figure BDA0004103256880000252
然后,可通过实验确定最佳配置。
对于每个应用程序实例的每个特征一个阈值的方法,模糊提取器服务器计算机标记每个特征。模糊提取器服务器基于每个特征将采取的值的范围为该特征选择由特定阈值组成的阈值向量。例如,可预期给定一天中的存储使用落入某个值范围内。类似于第二种方法,在数据归一化和二进制映射之后,模糊提取器服务器为每个特征计算b1和b2的最小值和最大值。b1和b2的最大值与最小值之间的差值用于建立阈值。在一些具体实施中,使用这些最大值和最小值的各种配置,诸如
Figure BDA0004103256880000253
Figure BDA0004103256880000254
3被设置为特征的阈值。可通过实验确定最佳配置。
如果应用基于特征的阈值,则在每个特征的基础上确定最接近的x和x’值对。模糊提取器服务器通过将距离与为该特定行为特征标记的点进行比较并将其与特定于特征的阈值进行比较来确定最接近的对。
模糊保险库708示出了行为数据在模糊保险库708内的图形表示。点712是属于模糊保险库中已基于匹配所捕获的行为数据704而选择的该组值的子集706的一个点的示例。示出了对应于函数P(x)714的线。模糊保险库还包括随机杂凑点710。模糊保险库中的该组值的子集706对应于位于对应于函数P(x)714的线上的点。
然后,模糊提取器服务器计算机可基于数据点的子集来确定函数P(x)714。存在可用于确定函数P(x)714的多种技术。例如,如果函数P(x)714是多项式函数(如图7所示),则可使用多项式内插来确定函数,例如,通过使用拉格朗日多项式。
一般来讲,为了限定次数为d的多项式,需要d+1个唯一点。由于该特性,假如该组值的子集706包括至少n个点,就可准确地重构函数P(x)714。例如,对于四次多项式函数P(x)714(如图7所示),该组值的子集706应该包括至少五个点。又如,对于十六次多项式函数P(x)714,该组值的子集706应该包括至少17个点。
然后,模糊提取器服务器计算机可基于函数P(x)714来重构该重构密钥值716。模糊提取器服务器计算机可利用或逆转用于生成函数P(x)714的过程,以便确定重构密钥值716。例如,如果图6中描绘的密钥值602被用于在注册过程中生成多项式系数,则模糊提取器服务器计算机可使用多项式系数来重构该重构密钥值716。
注册流程
图8是示出根据一些实施方案的用于认证注册的注册过程800的流程图。注册过程800可类似于上面参照图1和图6描述的注册技术。注册过程800可由图3中描绘的模糊提取器服务器计算机300与图1中描绘的系统100的其他部件合作地执行。
在步骤802处,模糊提取器服务器计算机接收包括应用程序标识符或用户设备标识符以及注册密钥值的注册请求。如上面参照图1所描述的,应用程序或设备标识符可唯一地标识待注册认证服务的应用程序或设备,并且注册密钥值是要在将来的认证处理中使用的秘密值,诸如加密密钥、API密钥、令牌等。
在一些实施方案中,注册密钥值由认证服务器计算机生成。认证服务器计算机散列注册密钥值以生成散列的注册密钥值。认证服务器通过应用散列函数将密钥映射到固定大小的值来散列密钥。认证服务器计算机存储散列的注册密钥值。散列的注册密钥值可用于稍后的认证,而不必存储明文密钥,这提供了增强的安全性。
在步骤804处,模糊提取器服务器计算机接收与应用程序或用户设备相关联的行为数据(例如,“第二组行为数据”)。如上面参照图1所描述的,待认证的应用程序或用户设备包括和/或耦合到一组传感器。这些传感器收集与应用程序或用户设备相关联的行为数据。行为数据可包括一组值,每个值对应于一组特征。每个特征可包括特性值,诸如存储使用、发送或接收的分组、带宽使用等。在一些实施方案中,特征对应于时间序列数据(例如,每个特征对应于一组值和对应的时间戳)。时间序列数据可被平均或以其他方式进行操纵以生成用于在注册过程800中使用的特征值。可为行为数据计算的各种统计值,如下面参照图9进一步描述的。如下面参照图9的步骤904进一步描述的,在一些具体实施中,每个行为特征值也被编码和/或归一化。
在步骤806处,模糊提取器服务器计算机使用注册密钥值来形成多项式。在一些实施方案中,注册密钥值的一个或多个部分形成多项式的系数。如上面参照图6所描述的,模糊提取器服务器计算机可将注册密钥值分成组块(例如,如图6所描绘的具有三个数字,或者任何合适数量的数字,例如4个数字、1个数字等,这取决于密钥值中的数字的数量和多项式的次数)。
在步骤808处,模糊提取器服务器计算机通过将行为数据输入多项式中来确定一组真实点。如上面参照图6所描述的,行为数据可被编码成一组x值。在一些具体实施中,行为数据还可用于生成统计值(例如,以提取时间序列数据)。行为数据还可被归一化和/或映射到二进制特征。下面参照图9的步骤904更详细地描述了这些操作。结果是基于行为数据的一组经编码特征值,其可以呈包括一组特征值的特征向量的形式。特征值被输入到多项式中,以生成相应的y值,如上面参照图6更详细地描述的。
在一些具体实施中,模糊提取器服务器计算机使用初始秘密来生成初始多项式,该初始多项式后续被更新。模糊提取器服务器计算机生成初始秘密Ri。模糊提取器服务器计算机可为n个特征生成n个随机变量。使用初始随机秘密有助于确保所生成的模糊保险库值是唯一的。模糊提取器服务器计算机计算基于初始秘密的编码Xi=BiF(Ri)。在一些方面中,Xi将用于在下一时期创建模板,并且是应用程序数据Bi和初始秘密Ri的函数。模糊提取器服务器计算机存储Xi和Ri。该编码技术可用于“固定”任意特征值。这实现了每个应用程序每个特征的归一化和在大量字段中的量化,这对于大量可能的应用程序数据(例如,约216x216个字段)是一个挑战。
在第M个时期的后续注册可使用函数
Xi M=Bi MF(Xi M-1)
Xi 0=Ri
行为特征链化确保考虑了应用程序或用户设备的过去行为。特征历史压缩可用于处理由应用程序或设备生成的时间序列。系统可监控自动重新注册,以处理应用程序行为漂移。
在步骤810处,模糊提取器服务器计算机使用在步骤808处确定的该组真实点和随机杂凑点来形成模糊保险库。形成模糊保险库可包括将真实点与随机杂凑点存储在一起。模糊提取器服务器计算机可例如用随机数生成器生成随机杂凑点。模糊提取器服务器计算机可执行验算和/或修改,以确保每个杂凑点都在阈值边界内(例如,根据可使用上面参照图7描述的技术来建立的预先确定的阈值)。模糊提取器服务器计算机可以无序的方式存储与随机杂凑点混合在一起的真实点,使得无法通过简单检视模糊保险库而辨别真实点与杂凑点。
如上面参照图7所述,在一些具体实施中,可为认证过程建立不同的阈值,包括基于特征的阈值。如果使用基于特征的阈值,则可在每个特征的基础上生成杂凑点。模糊提取器服务器计算机针对该阈值方案为每个特征产生一组杂凑点,从而得到保险库中总数为n+n×c个点,其中n是特征数,并且c是每个特征的杂凑点数。当为特征添加杂凑点时,模糊提取器服务器计算机可基于针对每个特征的阈值来执行验算和/或修改。
在一些实施方案中,模糊提取器服务器计算机将模糊保险库传输到用户设备。用户设备存储模糊保险库。另选地或另外地,模糊提取器服务器计算机将模糊保险库传输到认证服务器计算机,并且认证服务器计算机存储模糊保险库。如上面参照图4所描述的,在一些具体实施中,认证服务器计算机存储与应用程序和/或用户设备的多个标识符相关联的多个模糊保险库。另选地或另外地,模糊提取器服务器可本地地存储模糊保险库。
在一些实施方案中,在形成模糊保险库之后,模糊提取器服务器计算机删除注册密钥。模糊提取器服务器不需要存储敏感信息,并且针对模糊提取器服务器的攻击将不会暴露敏感信息。即使模糊保险库被暴露,在没有适当的行为数据和应用程序或设备标识符的情况下,也无法将其解锁。注册密钥隐藏在模糊保险库中,并且可基于设备的应用程序的行为数据被检索以用于后续认证,如下面参照图9所描述的。
在一些实施方案中,周期性地重新执行注册过程以刷新模糊保险库。模糊保险库服务器计算机可自我监控自动重新注册,以考虑应用程序或用户设备中的行为漂移。由于不同的工作负载、不同的使用模式等,应用程序或设备行为可随着时间的推移而改变。在一些方面中,模糊保险库服务器监控缓慢认证的序列(其可指示多次未确定匹配并且多次尝试了密钥重构)。如果检测到缓慢认证,则模糊保险库服务器可重新执行上述注册过程,使得模糊保险库中的行为数据是最新的。
认证流程
图9是示出根据一些实施方案的认证过程900的流程图。认证过程900可类似于上面参照图2和图7描述的认证技术。认证过程900可由图3中描绘的模糊提取器服务器计算机300和图4中描绘的认证服务器计算机400与图1中描绘的系统100的其他部件合作地执行。
在步骤902处,模糊提取器服务器计算机接收源自用户设备的认证请求。认证请求包括应用程序标识符或用户设备标识符。在一些实施方案中,模糊提取器服务器计算机经由认证服务器计算机从用户设备接收认证请求。用户设备可例如经由消息、API推送等通过网络将认证请求传输到认证服务器计算机,并且认证服务器计算机将认证请求转发给模糊提取器服务器计算机。
在步骤904处,模糊提取器服务器计算机接收与应用程序或用户设备相关联的一组行为数据(例如,“第一组行为数据”)。模糊提取器服务器计算机可从与用户设备通信或位于用户设备内的多个传感器获得该组行为数据。如上面参照图1所描述的,位于用户设备内的传感器和/或与用户设备通信的网络传感器可收集与各种行为特征相关联的值。该组行为数据可包括应用程序或用户设备的CPU消耗、应用程序或用户设备的存储消耗、利用应用程序或用户设备的成功通信的数量、应用程序或用户设备访问的文件的数量、应用程序或用户设备执行的系统调用的数量、应用程序或用户设备的平均响应时间、应用程序或用户设备发送的分组的数量、应用程序或用户设备接收的分组的数量等。
在一些具体实施中,由传感器收集的数据被进一步处理。收集的数据可用于计算统计值。收集的数据可被归一化。收集的数据可被编码以生成二进制特征。
在一些实施方案中,该组行为数据可包括时间序列数据。由于应用程序和设备行为随着时间的推移的固有变化,使用原始传感器数据(例如,日志文件和防火墙统计数据)可能不提供对整体应用程序或用户设备行为的准确表示。因此,作为瞬时值的补充或者替代,模糊提取器服务器可捕获历史趋势。
在一些实施方案中,基于时间序列数据来为行为数据的至少子集计算统计值。统计值的示例包括事件总数(例如,应用程序访问的唯一URL的数量)。统计值的另一示例是平均值(例如,在给定时间段内以HTTP Code 200接收的响应的平均数)。统计值的另一示例是一阶统计量(例如,特征的一组时间序列数据的最小值,诸如用户设备在24小时时段内的最低存储使用)。统计值的另一示例是二阶统计量(例如,电子邮件应用程序在一天中发送的电子邮件的第二低数量)。作为其他示例,可为给定特征计算统计值,诸如平均值、中值或标准差。在步骤908处,这些统计值可用于确定重构密钥值。
在一些实施方案中,该组行为数据包括多个特征值,并且模糊提取器服务器计算这些特征值中的每一者的归一化值。由于可与应用程序或设备行为相关联地收集的行为特征的多样性,因此从一个特征到另一特征存在大量的多种特征值。可执行归一化以将值投影到相同的范围中以实现比较。在一些具体实施中,每个特征被归一化(例如,CPU周期的平均数、发送的分组的总数等各自被归一化)。模糊提取器服务器可使用L1归一化来归一化一组特征值(参见例如,Garcia,“L0 Norm,L1 Norm,L2 Norm,&L-Infinity Norm,”Medium,可见于https://montjoile.medium.com/l0-norm-l1-norm-l2-norm-l-infinity-norm-7a7d18a4f40c(2018))。另选地或另外地,模糊提取器服务器可计算最小最大缩放器归一化,以基于每个特征的时间序列数据(诸如特征在两个月时段内的一组值)为该特征分配归一化值(参见例如,“MinMaxScaler,”SciKit Learn,可见于https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html)。在一些实施方案中,在归一化特征值之前,特征值用于生成特征向量,特征向量的每个元素是特征值中的一者。然后,特征向量被归一化,从而得到具有值在范围[0,1]内的特征的特征向量。
在一些实施方案中,模糊提取器服务器计算机为行为数据生成二进制特征向量。例如,在基于原始行为数据计算统计值和/或归一化行为数据之后,模糊提取器服务器计算机使用所选择的数据点来生成二进制特征向量,该二进制特征向量可用于在步骤908处确定重构密钥值。模糊提取器服务器计算机可通过将特征(例如,实值归一化特征)映射到二进制值来生成二进制特征向量。例如,模糊提取器服务器计算机生成大小为m×m的两个随机标准正交矩阵Q1和Q2,其中m大于或等于一加上用于构造模糊保险库的多项式P的阶。例如,可使用Gram-Schmidt方法来计算标准正交矩阵(参见例如,Taboga,“Gram-SchmidtProcess,”StatLect,可见于https://www.statlect.com/matrix-algebra/Gram-Schmidt-process;Wang和Plataniotis,“Fuzzy Vault for Face Based Cryptographic KeyGeneration,”Biometrics Symposium(2007))。然后,模糊提取器服务器计算机选择大小为m的两个随机向量r1和r2。模糊提取器服务器计算机将Q1和Q2的每一列分别乘以r1和r2的每个元素,以计算两个矩阵R1和R2。在一些具体实施中,R1和R2特定于每个应用程序并存储在模糊保险库中。向量d1和d2被计算为c特征向量与R1和R2的每一列之间的欧式距离。d1和d2的每个元素都量化为256级,从而生成两个二进制向量b1和b2。通过连接b1和b2来生成经编码特征向量。
在步骤906处,模糊提取器服务器计算机获得与应用程序标识符或用户设备标识符相关联的模糊保险库。模糊提取器服务器计算机可通过从本地存储中检索模糊保险库来获得模糊保险库。例如,模糊提取器服务器问询本地数据存储库以标识与所接收的应用程序或用户设备的标识符相关联地存储的模糊保险库。另选地,模糊提取器服务器计算机可从认证服务器计算机获得模糊保险库。
在一些具体实施中,从认证服务器接收模糊保险库,该模糊保险库在步骤902处接收的认证请求中。模糊保险库可存储到认证服务器。在这种情况下,例如,认证服务器计算机从用户设备接收认证请求,包括应用程序或用户设备的标识符。认证服务器计算机问询本地数据库以标识和检索用于该应用程序或用户设备的适当的模糊保险库,该模糊保险库与标识符相关联地存储。认证服务器计算机将模糊保险库添加到认证请求中,并且将其传输到模糊提取器服务器计算机。模糊提取器服务器计算机从认证服务器接收模糊保险库以及用户设备标识符或用户设备标识符。另选地或另外地,用户设备可本地地存储模糊保险库,将模糊保险库添加到认证请求,并且将包括模糊保险库和应用程序或用户设备的标识符的认证请求传输到认证服务器计算机。然后,认证服务器计算机将模糊保险库传输到模糊提取器服务器计算机(例如,在认证请求中)。
在步骤908处,模糊提取器服务器计算机使用模糊保险库和该组行为数据来确定重构密钥值。模糊提取器服务器计算机可通过以下操作来确定重构密钥值:使用行为数据来标识模糊保险库中的候选的一组点、用该候选的一组点来形成多项式,以及使用多项式的系数来确定重构密钥值,如上面参照图7更详细地描述的。在一些具体实施中,上面参照步骤904描述的二进制特征向量用于确定重构密钥值。
在步骤910处,使用重构密钥值来认证应用程序或用户设备。在一些具体实施中,用户设备由图4中描绘的认证服务器计算机认证。使用重构密钥值来认证用户设备可包括将重构密钥值与由认证服务器计算机存储的注册密钥进行比较。
在一些具体实施中,认证服务器计算机存储注册密钥的散列。模糊提取器服务器计算机生成重构密钥值的散列,并且将散列的重构密钥值传输到认证服务器计算机以用于认证。模糊提取器服务器计算机可将重构密钥值的散列和应用程序标识符或用户设备标识符传输到认证服务器计算机。认证服务器计算机用注册密钥值的散列来验证重构密钥值的散列。认证服务器计算机可通过将散列的注册密钥值与散列的重构密钥值进行比较来执行验证。如果散列的注册密钥值匹配散列的重构密钥值,则用户设备或应用程序被认证。如上面参照图2所描述的,在一些具体实施中,如果密钥不匹配,则在确定认证失败之前,密钥验算过程可重复某个预先确定的次数。
在一些具体实施中,认证服务器计算机向用户设备通知用户设备或应用程序被认证。认证服务器计算机可例如通过网络向用户设备传输通知,其中该通知指示认证成功或失败。另选地或另外地,基于认证来授予应用程序或用户设备对计算服务的访问。例如,应用程序向认证服务器计算机成功地认证以获得云计算服务。基于认证应用程序,认证服务器计算机向应用程序授予云计算服务。可基于认证来授予应用程序或用户设备对安全资源的访问。例如,用户设备向认证服务器成功地认证以获得对文件的访问。响应于认证用户设备,认证服务器计算机将文件推送给用户设备。
示例性模糊保险库
图10是根据一些实施方案的模糊保险库1000的可视化。如上所述,模糊保险库1000包括一组点。每个点具有x值1002和y值1004。一些点是杂凑点1006。每个杂凑点1006可对应于两个随机值(例如,对应于模糊保险库中的点的x和y值)。模糊保险库中的其他点包括真实点1008。真实点1008是存储到模糊保险库1000的注册特征。如上所述,真实点1008可位于基于经编码行为值和密钥值计算的多项式上。图10中描绘的模糊保险库1000在图上包括该组真实点1008和随机杂凑点1006。
图11A和图11B是根据一些实施方案的分别对应于成功和不成功认证尝试的模糊保险库1100A和1100B的可视化。
图11A示出了用于成功认证尝试的模糊保险库1110A的示例。在图11A中,相同的应用程序或设备已用于生成注册特征1102和认证特征1106。为了安全起见,还存储了杂凑点1104。在图11A所示的示例中,注册特征1102与认证特征1106重叠,并且使用本文所述的技术来确定匹配。
图11B示出了用于不成功认证尝试的模糊保险库1110B的示例。在图11B中,不同的应用程序或设备已用于生成注册特征1108和认证特征1112。为了安全起见,还存储了杂凑点1110。在图11B所示的示例中,注册特征1108和认证特征1112不匹配,并且在模糊保险库1110B中,来自不同应用程序的注册特征1108与认证特征1112之间几乎没有重叠。使用本文所述的技术未确定匹配,从而导致不成功认证尝试。
优点
本文所述的技术的优点包括针对客户端受损的安全性、针对保险库受损的安全性以及防止行为数据被窥探或窃取的保护。本发明技术还可被快速执行,同时最小化误接受和误拒绝。
本文所述的技术提供了针对客户端受损的安全性。即使攻击者损害注册本发明认证方案的应用程序或设备,攻击者也不能标识密钥值。即使在观察当前特征值之后也是如此。因此,也提供了针对行为数据受损的安全性。即使攻击者通过损害应用程序或设备或窃听网络在一段时间内观察行为特征值,只要观察在初始注册之后开始,攻击者就不能复制应用程序或设备的行为。
本文所述的技术还提供了针对数据保险库受损的安全性。如果攻击者设法访问模糊保险库,由于杂凑数据和行为数据的均匀分布,攻击者实际上无法检索密钥。本文所述的技术还提供了针对数据保险库受损的安全性。如果攻击者设法访问模糊保险库,由于杂凑数据和原始行为数据的均匀分布,攻击者实际上无法检索密钥。
本文所述的技术还提供了动态认证。行为数据在模糊保险库中被刷新以确保认证过程的准确性。协议还允许密钥被更新(例如,如果密钥受损,则密钥可被撤销和替换)。
本文所述的技术还提供了对认证的准确性和速度的改进。例如,在一些具体实施中,本公开方案的技术达到了0%的误接受率。在一些具体实施中,本公开方案的技术达到了7%的误拒绝率,或者甚至0%的误拒绝率,这取决于所实现的多项式的次数。成功认证可在少于100毫秒(ms)内(例如,在约51ms内)执行。
此外,本文所述的技术并不旨在在认证服务器侧构建行为识别系统。如上所述,此类方案可能需要认证服务器的大量计算和存储成本。使用本文所述的技术,认证服务器计算机可使用简单且既定的凭证认证协议来认证应用程序或设备。在一些具体实施中,通过集成模糊提取器服务器计算机,系统在抵抗客户端侧攻击的同时需要对认证服务器进行零到最小的改变。此外,认证服务器计算机不接收关于应用程序或用户设备的行为的信息,从而保护了私密性。对于其中由外部组织(诸如通过API提供服务的云平台)提供服务的使用情况而言,这是特别期望的特性。
本文所提及的任何计算机系统都可利用任何合适数量的子系统。在一些实施方案中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的部件。在其他实施方案中,计算机系统可包括多个计算机设备,每个计算机设备都是具有内部部件的子系统。
计算机系统可包括例如由外部接口或由内部接口连接在一起的多个部件或子系统。在一些实施方案中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,并且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可各自包括多个系统、子系统或部件。
应理解,本公开的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实施,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实现本发明的实施方案的其他方式和/或方法。
本申请中描述的任何软件部件或功能可实现为使用任何合适的计算机语言诸如Java、C、C++、C#、Objective-C、Swift或脚本语言诸如Perl或Python使用例如面向对象的或功能性的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传输,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁介质(诸如硬盘驱动器或软盘),或者光学介质(诸如光盘(CD)或DVD(数字通用光盘))、闪存存储器等。计算机可读介质可以是此类存储设备或传输设备的任何组合。
此类程序还可使用适于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的一个实施方案的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容设备一起封装或者与其他设备分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,并且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其他合适的显示器。
本文所述的任何方法可完全地或部分地用包括可被配置为执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施例可涉及配置成执行本文描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管以编号的步骤呈现,但是本文中的方法步骤也可以同时执行或以不同的次序执行。另外,这些步骤的部分可与来自其他方法的其他步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其他手段来执行。
在不偏离本发明的实施方案的精神和范围的情况下,具体实施方案的特定细节可以任何合适的方式组合。然而,本发明的其他实施方案可涉及与每个单独的方面相关的特定实施方案,或者这些单独的方面的特定组合。上文对本发明的示例性实施方案的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变型是可能的。选择和描述这些实施方案是为了最好地解释本公开的原理及其实际应用,由此使本领域的技术人员能够在各种实施方案中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
以上描述是说明性的而不是限制性的。在阅读了本公开之后,本发明的许多变型形式对于本领域的技术人员将变得显而易见。因此,本发明的范围不应当参考上面的描述来确定,而是应当参考未决的权利要求连同其完整范围或等同物来确定。
在不偏离本发明的范围的情况下,任何实施方案的一个或多个特征可与任何其他实施方案的一个或多个特征组合。
除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。
本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。并非承认它们是现有技术。

Claims (30)

1.一种计算机实现的方法,包括:
由服务器计算机接收认证请求,所述认证请求包括与应用程序相关联的应用程序标识符或者与用户设备相关联的用户设备标识符,所述认证请求源自所述用户设备;
由所述服务器计算机接收与所述应用程序或所述用户设备相关联的一组行为数据;
响应于接收到所述应用程序标识符或设备标识符,由所述服务器计算机获得与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库;以及
由所述服务器计算机使用所述模糊保险库和所述一组行为数据来确定重构密钥值,
其中所述应用程序或所述用户设备是使用所述重构密钥值来认证的。
2.如权利要求1所述的方法,其中所述服务器计算机是模糊提取器服务器计算机,并且其中所述模糊保险库被存储在认证服务器计算机中,并且所述方法还包括:
由所述模糊提取器服务器计算机生成所述重构密钥值的散列;以及
由所述模糊提取器服务器计算机将所述重构密钥值的所述散列和所述应用程序标识符或所述用户设备标识符传输到所述认证服务器计算机,其中所述认证服务器计算机用注册密钥值的散列来验证所述重构密钥值的所述散列,并且其中所述认证服务器计算机向所述用户设备通知所述用户设备或所述应用程序被认证。
3.如权利要求1所述的方法,其中所述一组行为数据是从与所述用户设备通信或位于所述用户设备内的多个传感器获得的。
4.如权利要求1所述的方法,其中所述一组行为数据包括以下中的一者或多者:所述应用程序或所述用户设备的CPU消耗、所述应用程序或所述用户设备的存储消耗、利用所述应用程序或所述用户设备的成功通信的数量、所述应用程序或所述用户设备访问的文件的数量、所述应用程序或所述用户设备执行的系统调用的数量、所述应用程序或所述用户设备的平均响应时间、所述应用程序或所述用户设备发送的分组的数量、或所述应用程序或所述用户设备接收的分组的数量。
5.如权利要求1所述的方法,其中所述服务器计算机是模糊提取器服务器计算机,并且其中所述模糊保险库被存储在认证服务器计算机中,并且所述模糊提取器服务器计算机经由所述认证服务器计算机从所述用户设备接收所述认证请求。
6.如权利要求1所述的方法,其中由所述服务器计算机使用所述模糊保险库和所述一组行为数据来确定所述重构密钥值包括:
使用所述行为数据来标识所述模糊保险库中的候选的一组点;
用所述候选的一组点来形成多项式;以及
使用所述多项式的系数来确定所述重构密钥值。
7.如权利要求6所述的方法,其中所述行为数据包括多个特征值,并且使用所述行为数据来标识所述模糊保险库中的所述候选的一组点包括:
对于所述多个特征值中的每个特征值,将所述特征值与对应于所述模糊保险库中的点的模糊保险库值进行比较;以及
在所述模糊保险库值在所述特征值中的所述一个特征值的预先确定的阈值内的情况下,选择所述模糊保险库中的所述点作为所述候选的一组点中的一个点。
8.如权利要求1所述的方法,其中所述服务器计算机是模糊提取器服务器计算机,并且其中所述模糊保险库被存储在认证服务器计算机中,并且所述模糊提取器服务器计算机经由所述认证服务器计算机从所述用户设备接收所述模糊保险库以及所述用户设备标识符或所述用户设备标识符。
9.如权利要求1所述的方法,其中所述一组行为数据是第一组行为数据,并且其中所述方法还包括注册过程,所述注册过程包括:
由所述服务器计算机接收注册请求,所述注册请求包括所述应用程序标识符或所述用户设备标识符以及注册密钥值;
由所述服务器计算机接收与所述用户设备或所述应用程序相关联的第二组行为数据;
由所述服务器计算机使用所述注册密钥值来形成多项式,其中所述注册密钥值的一个或多个部分形成所述多项式的系数;
由所述服务器计算机通过将所述第二组行为数据输入到所述多项式中来确定一组真实点;以及
使用所述一组真实点和随机杂凑点来形成所述模糊保险库。
10.如权利要求9所述的方法,其中所述模糊保险库在图上包括所述一组真实点和所述随机杂凑点。
11.如权利要求9所述的方法,还包括:
将所述模糊保险库传输到所述用户设备,其中所述用户设备存储所述模糊保险库。
12.如权利要求9所述的方法,还包括:
在形成所述模糊保险库之后,由所述服务器计算机删除所述注册密钥值。
13.如权利要求9所述的方法,其中所述服务器计算机是模糊提取器服务器计算机,并且其中所述注册密钥值是由认证服务器计算机生成的,并且是由所述认证服务器计算机散列的,并且所散列的注册密钥由所述认证服务器计算机存储。
14.如权利要求1所述的方法,其中由所述服务器计算机接收与所述应用程序或所述用户设备相关联的所述一组行为数据包括:接收与所述用户设备相关联的所述一组行为数据。
15.如权利要求1所述的方法,其中由所述服务器计算机接收与所述应用程序或所述用户设备相关联的所述一组行为数据包括:接收与所述应用程序相关联的所述一组行为数据。
16.如权利要求1所述的方法,其中基于所述认证来授予所述应用程序或所述用户设备对计算服务的访问。
17.如权利要求1所述的方法,其中所述一组行为数据包括时间序列数据,所述方法还包括:
基于所述时间序列数据来为所述行为数据的至少子集计算统计值,其中所述统计值用于确定所述重构密钥值。
18.如权利要求1所述的方法,其中所述一组行为数据包括多个特征值,所述方法还包括:
计算所述特征值中的每一者的归一化值。
19.如权利要求18所述的方法,还包括:
基于所述归一化值来生成二进制特征向量,其中所述二进制特征向量用于确定所述重构密钥值。
20.一种服务器计算机,包括:
处理器;和
非暂时性计算机可读介质,所述非暂时性计算机可读介质包括代码,所述代码能够由所述处理器执行以用于实现包括以下的操作:
接收认证请求,所述认证请求包括与应用程序相关联的应用程序标识符或者与用户设备相关联的用户设备标识符,所述认证请求源自所述用户设备;
接收与所述应用程序或所述用户设备相关联的一组行为数据;
响应于接收到所述应用程序标识符或设备标识符,获得与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库;以及
使用所述模糊保险库和所述一组行为数据来确定重构密钥值,
其中所述应用程序或所述用户设备是使用所述重构密钥值来认证的。
21.如权利要求20所述的服务器计算机,其中:
所述一组行为数据是从与所述用户设备通信或位于所述用户设备内的多个传感器获得的;并且
所述一组行为数据包括以下中的一者或多者:所述应用程序或所述用户设备的CPU消耗、所述应用程序或所述用户设备的存储消耗、利用所述应用程序或所述用户设备的成功通信的数量、所述应用程序或所述用户设备访问的文件的数量、所述应用程序或所述用户设备执行的系统调用的数量、所述应用程序或所述用户设备的平均响应时间、所述应用程序或所述用户设备发送的分组的数量、或所述应用程序或所述用户设备接收的分组的数量。
22.如权利要求20所述的服务器计算机,其中使用所述模糊保险库和所述一组行为数据来确定所述重构密钥值包括:
使用所述行为数据来标识所述模糊保险库中的候选的一组点;
用所述候选的一组点来形成多项式;以及
使用所述多项式的系数来确定所述重构密钥值。
23.如权利要求20所述的服务器计算机,其中所述一组行为数据是第一组行为数据,并且其中所述操作还包括注册过程,所述注册过程包括:
由所述服务器计算机接收注册请求,所述注册请求包括所述应用程序标识符或所述用户设备标识符以及注册密钥值;
由所述服务器计算机接收与所述用户设备或所述应用程序相关联的第二组行为数据;
由所述服务器计算机使用所述注册密钥值来形成多项式,其中所述注册密钥值的一个或多个部分形成所述多项式的系数;
通过将所述第二组行为数据输入到所述多项式中来确定一组真实点;以及
使用所述一组真实点和随机杂凑点来形成所述模糊保险库。
24.如权利要求20所述的服务器计算机,其中基于所述认证来授予所述应用程序或所述用户设备对计算服务的访问。
25.如权利要求20所述的服务器计算机,其中所述一组行为数据包括时间序列数据,所述操作还包括:
基于所述时间序列数据来为所述行为数据的至少子集计算统计值,其中所述统计值用于确定所述重构密钥值。
26.如权利要求20所述的服务器计算机,其中所述一组行为数据包括多个特征值,所述操作还包括:
计算所述特征值中的每一者的归一化值;以及
基于所述归一化值来生成二进制特征向量,其中所述二进制特征向量用于确定所述重构密钥值。
27.一种计算机实现的方法,包括:
由认证服务器计算机向模糊提取器服务器计算机传输针对应用程序或用户设备的认证请求,所述认证请求包括应用程序标识符或用户设备标识符,所述认证请求源自所述用户设备,
从而引起由所述模糊提取器服务器计算机使用与所述应用程序标识符或所述用户设备标识符相关联的模糊保险库以及与所述应用程序或所述用户设备相关联的一组行为数据来计算重构密钥值;
接收所述重构密钥值或所述重构密钥值的散列;以及
由所述认证服务器计算机用所述重构密钥值或所述重构密钥值的所述散列来认证所述应用程序或所述用户设备。
28.如权利要求27所述的方法,其中认证所述应用程序或所述用户设备包括:
由所述认证服务器计算机将所述重构密钥值的所述散列与存储的散列密钥进行比较;以及
由所述认证服务器计算机确定所述重构密钥值的所述散列与所述存储的散列密钥匹配。
29.如权利要求27所述的方法,还包括:
由所述认证服务器计算机从所述用户设备接收所述认证请求。
30.如权利要求27所述的方法,其中:
所述一组行为数据是从与所述用户设备通信或位于所述用户设备内的多个传感器获得的;并且
所述一组行为数据包括以下中的一者或多者:所述应用程序或所述用户设备的CPU消耗、所述应用程序或所述用户设备的存储消耗、利用所述应用程序或所述用户设备的成功通信的数量、所述应用程序或所述用户设备访问的文件的数量、所述应用程序或所述用户设备执行的系统调用的数量、所述应用程序或所述用户设备的平均响应时间、所述应用程序或所述用户设备发送的分组的数量、或所述应用程序或所述用户设备接收的分组的数量。
CN202180053999.4A 2020-09-03 2021-09-02 动态私密性保护应用程序认证 Pending CN116018590A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063074355P 2020-09-03 2020-09-03
US63/074,355 2020-09-03
PCT/US2021/048822 WO2022051463A1 (en) 2020-09-03 2021-09-02 Dynamic privacy-preserving application authentication

Publications (1)

Publication Number Publication Date
CN116018590A true CN116018590A (zh) 2023-04-25

Family

ID=80491518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180053999.4A Pending CN116018590A (zh) 2020-09-03 2021-09-02 动态私密性保护应用程序认证

Country Status (4)

Country Link
US (1) US20230246820A1 (zh)
EP (1) EP4208803A4 (zh)
CN (1) CN116018590A (zh)
WO (1) WO2022051463A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230179406A1 (en) * 2021-12-06 2023-06-08 Vmware, Inc. Distributed Registration and Authentication via Threshold Secret Sharing
CN118018336A (zh) * 2024-04-10 2024-05-10 江苏中天互联科技有限公司 数据传输方法、服务器及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009295193A1 (en) * 2008-09-22 2010-03-25 Tefaye, Joseph Elie Mr Method and system for user authentication
US9426140B2 (en) * 2013-09-09 2016-08-23 Layer, Inc. Federated authentication of client computers in networked data communications services callable by applications
US10932129B2 (en) * 2017-07-24 2021-02-23 Cisco Technology, Inc. Network access control
US10462126B2 (en) * 2017-08-17 2019-10-29 Bank Of America Corporation Self-adjusting multifactor network authentication
US10462665B2 (en) * 2017-08-17 2019-10-29 Bank Of America Corporation Multifactor network authentication
US10878218B2 (en) * 2018-06-18 2020-12-29 Salesforce.Com, Inc. Device fingerprinting, tracking, and management
US11271931B2 (en) * 2018-09-20 2022-03-08 Visa International Service Association Dynamic and private security fingerprinting

Also Published As

Publication number Publication date
US20230246820A1 (en) 2023-08-03
WO2022051463A1 (en) 2022-03-10
EP4208803A4 (en) 2024-02-28
EP4208803A1 (en) 2023-07-12

Similar Documents

Publication Publication Date Title
US11824991B2 (en) Securing transactions with a blockchain network
US10728027B2 (en) One-time passcodes with asymmetric keys
Clancy et al. Secure smartcardbased fingerprint authentication
US20220360449A1 (en) Authentication system using secure multi-party computation
KR101755995B1 (ko) 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템
EP3121991B1 (en) System and method of user authentication using digital signatures
US11805122B2 (en) Encryption parameter selection
US20230246820A1 (en) Dynamic privacy-preserving application authentication
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
ArunPrakash et al. Biometric encoding and biometric authentication (BEBA) protocol for secure cloud in m-commerce environment
Kwon et al. CCTV-based multi-factor authentication system
Aanjanadevi et al. Face Attribute Convolutional Neural Network System for Data Security with Improved Crypto Biometrics.
Verma et al. A novel model to enhance the data security in cloud environment
CN113507380A (zh) 一种隐私保护远程统一生物认证方法及装置、电子设备
Selimović et al. Authentication based on the image encryption using delaunay triangulation and catalan objects
Albahbooh et al. A mobile phone device as a biometrics authentication method for an ATM terminal
CN114065169B (zh) 一种隐私保护生物认证方法和装置、电子设备
Bentahar et al. Biometric cryptosystem scheme for Internet of Things using fuzzy commitment principle
Sathish et al. Biometric authentication utilizing fuzzy extractor with PSO based security ensuring the data security mechanism as Trio in Cloud
Meraoumia et al. Biometric cryptosystem to secure smart object communications in the internet of things
US20240169350A1 (en) Securing transactions with a blockchain network
CN117371048B (zh) 远程访问的数据处理方法、装置、设备及存储介质
Yu et al. Authentication Methods Based on Digital Fingerprint Random Encryption IBC.
Belhadri et al. New biometric cryptosystem to protect sensitive data in Internet of objects
Christodorescu et al. Privacy-Preserving Application-to-Application Authentication Using Dynamic Runtime Behaviors

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