CN109891418A - 用于保护从非安全终端执行的交易的方法 - Google Patents

用于保护从非安全终端执行的交易的方法 Download PDF

Info

Publication number
CN109891418A
CN109891418A CN201780066980.7A CN201780066980A CN109891418A CN 109891418 A CN109891418 A CN 109891418A CN 201780066980 A CN201780066980 A CN 201780066980A CN 109891418 A CN109891418 A CN 109891418A
Authority
CN
China
Prior art keywords
software component
user
image frame
input
input data
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
CN201780066980.7A
Other languages
English (en)
Inventor
G·皮特尔
J-L·勒卢
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.)
J Kaye Codd Co
Original Assignee
J Kaye Codd Co
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
Priority claimed from EP16196945.6A external-priority patent/EP3319000A1/en
Priority claimed from EP16196947.2A external-priority patent/EP3319067B1/en
Priority claimed from EP16196950.6A external-priority patent/EP3319001A1/en
Priority claimed from EP16196957.1A external-priority patent/EP3319002B1/en
Application filed by J Kaye Codd Co filed Critical J Kaye Codd Co
Publication of CN109891418A publication Critical patent/CN109891418A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/13Sensors therefor
    • G06V40/1318Sensors therefor using electro-optical elements or layers, e.g. electroluminescent sensing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • G06Q20/40145Biometric identity checks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Technology Law (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Ophthalmology & Optometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Telephonic Communication Services (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Power Engineering (AREA)

Abstract

本发明涉及一种用于认证用户的方法,该方法包括:从安全处理器(ASRV、SE)接收软件组件(GC、GC1)和软件组件(GC、GC1)的输入数据(ADl、RDk、INb、INc),软件组件(GC、GC1)被配置为生成包括对于用户可理解的信息(KYL、CC、ND)的图像帧(FRM),软件组件包括第一输入,第一输入被配置为接收第一输入数据(ADl、RDk),第一输入数据具有两个随机选择的有效值(AD1V1、AD1V2、RDkV1、RDkV2)以及无效值,所传输的输入数据包括第一输入数据的有效值;多次执行以下操作:选择所传输的输入数据中的第一输入数据的有效值中的一个;通过将所传输的输入数据应用于软件组件的输入并且将所选择的有效值应用于软件组件的第一输入,执行软件组件,软件组件的执行根据第一输入的所选择的有效值生成具有处于可见或不可见状态的像素的图像帧并定义所述信息;显示图像帧;从用户获取响应,响应取决于所显示的图像帧中的所述信息;以及向安全处理器发送所获取的响应。

Description

用于保护从非安全终端执行的交易的方法
技术领域
本发明涉及一种用于从非安全终端安全地认证用户,尤其是考虑到基于这种用户认证来执行涉及这种非安全终端和远程服务器的安全交易的方法和设备。
背景技术
安全单元安全单元期望执行从诸如智能电话、个人计算机、数字平板计算机等的移动终端或包括属于物联网(IoT)的设备的任何其它连接设备发起的交易,例如电子商务交易或资金转移(不确定这是否相关,因为所要求保护的方法需要人)。然而,这引起了安全性问题,尤其是因为终端的处理器(CPU)可能会执行“恶意软件”。恶意软件可能能够访问处理器可访问的全部或部分存储器,并且因此可能被恶意地配置为监视由终端执行的任何交易并恢复在这些交易期间操作的任何秘密数据以用于通过网络进行传输。
为了确保这种交易的安全性,已经提出将加密计算委托给诸如UICC(“通用集成电路卡”)卡的处理器的专用安全单元,例如手机通常都配备了的SIM(用户识别模块)卡。为了能够执行一个或多个支付应用,安全处理器必须能够存储与存在的支付应用一样多的秘密加密密钥。然而,将应用加载到安全处理器的存储器中是一项复杂的操作,其需要是高度安全的。具体而言,它涉及诸如可信服务管理器的外部多方。由于SIM卡是由手机运营商发行的,后者可能拒绝在该卡中安装这种应用。此外,在被盗或电话维修期间,SIM卡的处理器可能被寻求发现存储在其存储器中的秘密密钥的黑客攻击。
另外,访问安装在SIM卡的处理器中的安全功能通常需要借助于连接到终端的处理器的键盘或触敏表面来输入密码(PIN码)。在典型的配置中,用户输入的密码必须通过终端的处理器。因此,终端的处理器执行的恶意软件可以访问该密码。
申请人提交的专利申请WO2012/107698公开了一种用于将终端的图形处理器用作执行交易的安全单元的方法。该方法包括在终端的图形处理器与认证服务器之间建立安全通信链路,以及显示具有以随机顺序排列的键的虚拟键盘的步骤。键盘的图像使用视觉加密技术来显示,通过连续显示其中的键的标签不可理解的互补帧,由于用户的视觉系统的视网膜残留,用户的视觉系统将这些互补帧组合成可理解的图像。以此方式,即使在终端的处理器上运行的恶意程序能够在密码输入期间访问用户触摸的键的位置,它也不能通过连续截屏来确定哪些标签对应所触摸的键。
然而,该方法需要重要的计算资源,这些资源并非在诸如市场上已有的所有智能电话的所有便携式设备中都可用。
为了保护使用连接到网站的终端执行的交易,已经提出使用一次性密码,每次需要验证交易时,该一次性密码就被发送给用户。根据第一种解决方案,一次性密码经由不同的通信信道被发送给用户,例如经由电话链接或SMS(短消息服务),用户被要求在终端上输入所接收的密码以验证交易。另一种已知的解决方案为每个用户提供附加的硬件设备,该设备在通过诸如口令或生物识别数据的凭证对用户进行认证之后生成一次性密码。当需要验证交易时,这些解决方案对于并非总是处于移动电话或无线网络覆盖范围附近的用户,或者该硬件设备来说有负担。需要附加的硬件设备的解决方案对于银行组织来说是昂贵的。另外,使用通过SMS发送的密码的解决方案不提供足够高的安全性级别,因为它已经受了成功的攻击。
因此,可期望提出一种用于保护使用非安全终端执行的诸如交易的敏感性操作的方法,交易例如是支付交易、或用户认证、或更一般地是需要防止篡改的操作。还可期望保护由用户输入的秘密数据和通过这种非安全终端中转的交易数据。此外,可期望使所提出的方法与所有已有的终端兼容,甚至对于低计算能力的终端也是如此。
发明内容
公开了一种用于认证用户的方法,其包括:从安全处理器接收软件组件和软件组件的输入数据,软件组件被配置为生成包括对于用户可理解的信息的图像帧,软件组件包括第一输入,第一输入被配置为接收第一输入数据,第一输入数据具有两个随机选择的有效值以及无效值,所传输的输入数据包括第一输入数据的有效值;多次执行以下操作:选择所传输的输入数据中的第一输入数据的有效值中的一个;通过将所传输的输入数据应用于软件组件的输入并且将所选择的有效值应用于软件组件的第一输入,执行软件组件,软件组件的执行根据第一输入的所选择的有效值生成具有处于可见或不可见状态的像素的图像帧并定义所述信息;显示图像帧;从用户获取响应,响应取决于所显示的图像帧中的所述信息;以及向安全处理器发送所获取的响应。
根据实施例,用于显示第一图像帧的第一输入数据的有效值根据由安全处理器提供的数据来选择,用于显示另一个图像帧的第一输入数据的有效值中的一个根据从用户获取的对先前显示的图像帧的响应来选择。
根据实施例,用于显示通过连续执行软件组件而生成的图像帧的第一输入数据的有效值是随机选择的,并且定义每个生成的图像帧的数据签名被发送到安全处理器。
根据实施例,软件组件被配置为生成图像帧,其中,使用图像帧中可见概率低于100%的随机像素来显示所述信息,软件组件被多次执行以生成多个图像帧,多个图像帧以使得信息变得对于用户可理解的帧显示速率来显示。
根据实施例,所述信息:包括根据第一输入数据排序的键盘的一系列标签,来自用户的响应包括由用户选择键盘的键的键位置;或者包括根据第一输入数据排序的键盘的一系列标签以及属于验证码的一个符号,来自用户的响应包括由用户选择的键盘的键的键位置;或者指定生物识别质询,来自用户的响应包括由用户使用生物识别传感器输入的生物识别数据。
根据实施例,软件组件被配置为响应于随机选择,提供在两个二进制状态中概率在12.5%和87.5%之间或者被设置为50%的一个二进制状态中的输出数据。
根据实施例,软件组件被配置为存储多个图像帧配置,多个图像帧配置通过选择软件组件的输入数据的值来选择。
根据实施例,软件组件被配置为生成图像帧的加密部分,所述方法还包括:执行软件组件;使用从安全处理器发送的解密掩码来解密每个生成的加密图像帧部分;将每个解密的图像帧部分插入图像帧背景中以生成图像帧;以及显示所生成的图像帧。
根据实施例,所述方法还包括:从用户获取与所显示的信息相关的响应;向安全单元发送响应;以及当响应与信息对应并且与由用户和安全单元共享的秘密数据对应时,由安全单元认证用户。
根据实施例,软件组件被编码为包括电路输入、电路输出、逻辑门和线的乱码电路,每个逻辑门具有两个输入和一个输出,每个线具有第一端和第二端,第一端连接到电路输入中的一个或逻辑门输出中的一个,第二端连接到逻辑门输入中的一个或电路输出中的一个,乱码电路通过以下操作生成:针对每个线的每个二进制状态,选择有效数据;以及针对乱码电路的一个逻辑门,根据逻辑门的每个输入的每个有效数据、逻辑门的输出的每个有效数据和由逻辑门执行的逻辑操作来计算真值表值。
实施例还可以涉及用户终端,其被配置为:从安全处理器接收软件组件和软件组件的输入数据,软件组件被配置为生成包括对于用户可理解的信息的图像帧,软件组件包括第一输入,第一输入被配置为接收第一输入数据,第一输入数据具有两个随机选择的有效值以及无效值,所传输的输入数据包括第一输入数据的有效值;多次执行以下操作:选择所传输的输入数据中的第一输入数据的有效值中的一个;通过将所传输的输入数据应用于软件组件的输入并且将所选择的有效值应用于软件组件的第一输入,执行软件组件,软件组件的执行根据所选择的有效值生成具有处于可见或不可见状态的像素的图像帧并定义所述信息;显示图像帧;从用户获取响应,响应取决于所显示的图像帧中的所述信息;以及向安全处理器发送所获取的响应。
根据实施例,终端进一步被配置为执行在先前公开的方法中由终端执行的操作。
根据实施例,安全处理器是连接到终端的主处理器的安全单元。
根据实施例,安全处理器属于通过数据传输网络链接到终端的远程服务器。
实施例还可以涉及安全单元,其被配置为执行在先前公开的方法中由安全处理器执行的操作,其中,安全单元连接到终端的主处理器。
实施例还可以涉及服务器,其被配置为执行在先前公开的方法中由安全处理器执行的操作,服务器通过数据传输网络链接到终端。
实施例还可以涉及计算机程序产品,其能够加载到计算机存储器中并且包括代码部分,代码部分在由计算机执行时配置计算机以执行先前公开的方法。
附图说明
参考以下附图和描述可以更好地理解本方法和/或设备的示例。通过以下附图来描述非限制性和非穷举性描述。
图1是执行与远程服务器的交易的用户终端的框图;
图2是用户终端的框图;
图3是根据实施例的由用户终端、认证服务器和应用服务器执行的初始化步骤的顺序图;
图4是根据实施例的示出用户认证过程的步骤的顺序图;
图5是根据实施例的由认证服务器管理的数据库的框图;
图6示出根据实施例的由用户终端显示的图像帧;
图7是根据实施例的由用户终端执行的应用程序的框图;
图8是根据实施例的由用户终端中的软件实现的电路的框图;
图9是根据实施例的图8的电路的一部分的框图;
图10A、图10B和图11是根据实施例的图9的电路的一部分的框图;
图12是根据实施例的描述图8电路的数据库的框图;
图13是根据实施例的示出由用于使用图7的电路来显示图6的图像帧的应用程序执行的处理的框图;
图14A和图14B分别示出根据实施例的由用户终端显示的图像帧,以及可由执行图14电路的用户终端的用户观察到的对应的结果图像;
图15示出根据实施例的由用户终端叠加(superimposed)显示的图像帧的一部分的两层,由用户终端显示的结果图像帧的对应部分,以及可由用户终端的用户观察到的结果图像的对应部分;
图16是根据另一个实施例的由用户终端中的软件实现的电路的框图;
图17是根据实施例的描述图16的电路的数据库的框图;
图18是根据实施例的示出由用于执行图16的电路的应用程序执行的处理的框图;
图19是根据另一个实施例的图16的电路的一部分的框图;
图20、图21和图22示出根据各种实施例的由用户终端显示的图像帧;
图23是根据另一个实施例的示出认证步骤的顺序图。
具体实施方式
在附图中,除非另有说明,否则相同的附图标记可以在不同附图中指代相同的部件。
在下文中,术语“安全”根据其对本领域的普通技术人员的普通含义而使用,并且在不同实施例中包括由诸如加密的技术,或者用于从公众隔离信息的其它类型的软件或硬件控制或者用于保护该信息免受未经授权的访问或操作而引起的安全性。表述“安全通信”和“安全通信链路”是指使用公钥/私钥对进行加密的通信,或者是用在通信点之间共享的密钥的对称密钥加密。“安全通信”还可以涉及虚拟专用网络,以及用于在通信点之间建立认证和加密的通信的其它方法和技术。
图1示出了可以通过通信网络NT与远程服务提供商服务器或应用服务器SSRV执行交易的用户终端UT。在下文中,术语“用户终端”应是同义的并且指代可以与诸如应用服务器和服务提供商服务器的一个或多个远程服务器进行通信的任何设备。因此,用户终端例如可以是移动电话、智能电话、智能手表、个人计算机、支付终端和数字平板计算机或者具有通信和人机接口能力的任何设备。这两个功能也可以由两个或若干设备来提供,只要这些设备安全地关联和/或链接。通信网络可以包括IP(因特网协议)网络,例如因特网、移动或蜂窝网络、无线网络,以及可用于在用户终端与远程服务器之间建立通信链路的任何类型的网络。
根据实施例,认证服务器ASRV被配置为实现一种方法,该方法用于在涉及应用或服务提供商服务器SSRV和用户终端UT的交易期间,基于双因素认证方案来认证用户。
图2示出了传统的终端UT,包括用于通过诸如网络NT的传输网络与诸如服务器ASRV的远程服务器通信的通信电路NIT。终端UT可以是蜂窝电话、智能电话或PDA(个人数字助理)或者诸如包括连接到诸如因特网网络的网络的通信电路的数字平板计算机或个人计算机的任何其它设备。用户终端UT还包括连接到通信电路NIT的主处理器HP(也称为“中央处理单元,CPU”)、显示屏DSP、连接到处理器HP并且控制显示屏DSP的图形处理器GP,以及连接到处理器HP的控制设备CM。控制设备可以包括键盘或小键盘,或者例如透明且布置在显示屏DSP上的触敏表面。控制设备CM还可以包括诸如鼠标、铅笔或笔的指向设备。
终端UT还可以包括安全单元SE,例如可以是独立的或者嵌入智能卡UICC中的安全处理器。安全处理器SE例如可以是SIM(“用户识别模块”)卡或USIM(“通用用户识别模块”),其提供对蜂窝网络的访问。安全处理器SE可以包括NFC(“近场通信”)电路以与非接触式读取器进行通信。NFC电路可以被嵌入SIM卡(SIM-NFC)或UICC中,或者嵌入SoC(“片上系统”)电路中,或者嵌入例如“SD卡”的外部存储卡中。电路NIT可以包括允许通过蜂窝网络和/或无线通信电路(Wi-Fi、蓝牙TM或任何其它无线电频率或者无线通信方法)访问移动蜂窝网络和/或因特网网络的移动电信电路,和/或可链接到诸如因特网的数据传输网络的任何其它有线或无线连接电路。
图3示出了用于注册用户终端UT以用于认证用户来验证交易的步骤S1到步骤S15。在步骤S1中,用户将用户终端OT连接到服务提供商的服务器SSRV,例如,连接到服务提供商的网站,并且向服务器SSRV提供诸如用户标识符UID和对应口令UPW的凭证。在步骤S2中,用户凭证UID、UPW由终端OT发送到服务器SSRV。在步骤S3中,服务器SSRV检查所接收的凭证UID、UPW,并且如果它们对应于有效的注册用户,则服务器SSRV向认证服务器ASRV发送包含与服务提供商服务器SSRV相关的用户标识符UID和服务标识符SID的注册请求RGRQ。服务器SSRV与ASRV之间的通信链路是安全的,以使得黑客无法获取所发送的数据。由服务器ASRV执行的以下步骤由服务器ASRV的安全处理器执行或在其安全域内执行。此外,终端OT与服务器SSRV之间以及终端UT与服务器ASRV之间的链路不要求是安全链路。
在步骤S4和步骤S5中,认证服务器ASRV生成一次性链接令牌LTK(专用于在步骤S2中识别的用户的注册),并且响应于注册请求RGRQ将其发送到服务器SSRV。链接令牌LTK在所接收的用户标识符UID与服务标识符SID之间建立链接。链接令牌LTK具有时间限制的有效性,其可以固定为几分钟和几小时之间的值。在步骤S6中,服务器SSRV接收链接令牌LTK并将其发送到终端OT。在步骤S7中,终端OT显示链接令牌LTK。
在步骤S8中,用户在用户终端UT中下载和/或安装和/或启动专用于用户认证的应用APP,用户终端UT将用于认证并涉及认证服务器ASRV。终端UT可以是终端OT或另一个终端(移动电话、智能电话、智能手表、个人计算机、支付终端和数字平板计算机,或者具有通信和人机接口能力的任何设备)。在第一次执行应用APP时,执行步骤S9到步骤S13。在步骤S9中,应用APP生成终端UT的唯一设备标识符DID。然后,用户被邀请选择口令PC,并且输入在步骤S6、S7中接收和显示的链接令牌LTK。在步骤S10和步骤S11中,用户输入口令PC和链接令牌LTK。链接令牌LTK可以采用诸如QR码的光学代码的形式显示,并且由应用APP使用终端UT的摄像头在终端OT的显示屏幕上捕获。在步骤S12中,应用APP将注册消息ERP发送到认证服务器ASRV,该消息包含设备标识符DID、口令PC和链接令牌LTK。在步骤S13中,服务器ASRV检查所接收的链接令牌LTK的有效性。当链接令牌的有效期已过,或者当链接令牌已经被使用一次或预定义次数以识别设备时,可以认为该链接令牌是无效的。如果链接令牌是有效的,则服务器ASRV在步骤S14中将设备标识符DID和口令PC存储在用户数据库UDB中。在步骤S15中,服务器ASRV响应于请求RGRQ将消息RP发送到服务提供商服务器SSRV。取决于在步骤S13中执行的链接令牌的有效性检查,消息RP包含用户标识符UID和注册状态。
如果在步骤S13中执行的检查成功,则用户终端UT由服务器ASRV照例注册,因此它可被用作与用户相关联的第二认证因素,由服务提供商服务器SSRV进行用户认证被认为是用户的第一认证。
图4示出了认证步骤S21到步骤S32,其被执行以在由应用APP进行的交易期间认证用户或者用于执行该应用的操作,而所述操作要求用户被认证。在认证过程期间,用户终端UT已经由认证服务器ASRV预先注册,例如通过执行图3的步骤S1到步骤S15。用户注册可以在单独的初步过程中被执行。在步骤S21中,服务提供商服务器SSRV将认证请求ARQ发送到认证服务器ASRV。认证请求ARQ包含服务的标识符SID;交易中涉及的用户的标识符UID;将要向用户显示的消息MSG,并且消息MSG呈现与将要由用户验证的交易有关的信息;以及地址SURL,其中,认证结果必须由认证服务器ASRV发送。认证请求ARQ还可以可选地包含将要向用户显示的消息MSG,并且消息MSG例如呈现与将要由用户验证的交易有关的信息(例如,将要支付的钱数)。
在步骤S22中,认证服务器ASRV接收请求ARQ,并且生成唯一的交易标识符TID。认证服务器ASRV进一步在数据库UDB中搜索与用户标识符UID对应的设备标识符DID,并且为对应于在数据库UDB中找到的设备标识符DID的每个用户终端UT生成优选为一次性的交易验证码CC和不同的专用软件组件GC。由于软件组件GC被设计为显示验证码CC,因此它特定于此代码。在步骤S23中,服务器ASRV向终端UT发送定义软件组件GC并且以加密形式包括软件组件的输入数据的结构和内容数据GCD,将要应用于由软件组件电路生成的图像帧部分的最终掩码IMSK,以及将要用于执行软件组件的密码数据GCK。在步骤S24中,服务器ASRV向服务器SSRV发送确认消息ACK,该消息包含用户标识符UID和交易标识符TID。在步骤S25中,由终端UT执行的应用APP接收与软件组件GC相关并在步骤S23中被发送的数据GCD、IMSK、GCK,并且将确认消息AKM发送到服务器ASRV。如果应用APP当前没有在终端UT上运行,则与软件组件相关的数据的接收可以触发应用APP的执行。在步骤S26中,服务器ASRV向终端UT发送执行软件组件GC的请求RGC。在步骤S27中,通知RGC的接收触发由生成图像帧的软件组件GC的应用APP的执行,该图像帧例如示出具有键的键盘、消息MSG以及一次性交易验证码CC的一个或多个数字,例如,两位或更多个数字。
根据实施例,键盘的键在显示的帧中以随机选择的布局排列,并且每次用户在步骤S28中按下所显示的键盘的键时,新的键盘布局被选择并且用户终端UT显示具有新选择的布局的键盘。
根据实施例,第一显示的键盘具有从服务器ASRV已知的布局,并且每个新显示的键盘具有根据由用户按下的前一个键在键盘中的位置和由用户先前按下的键的数量而选择的布局。根据实施例,只有验证码CC的一个数字同时显示在由软件组件生成的图像中,并且当用户输入验证码的第一个数字时,第一个数字在生成的图像中被验证码的第二个数字替换。
根据一个实施例,验证码CC的第一显示的数字的值根据由用户先前选择的用于输入口令PC的最后一个数字的键来计算。另外,验证码CC的第二显示的数字的值可以根据由用户先前选择的用于输入验证码的第一个数字的键来计算。当用户输入口令PC和验证码CC时,所显示的验证码CC的数字还可以根据由用户先前按下的键的数量来计算。
在步骤S28中,终端UT的用户输入口令PC的一个数字或者验证码CC的所显示的数字。在智能电话的示例中,用户使用所显示的键盘,并且触摸所显示的键盘的键的对应位置POSi。步骤S27和步骤S28被再次执行,直到口令PC和验证码CC的所有数字全部被用户输入为止。在步骤S29中,应用APP将用户选择的位置序列POSi与设备标识符DID一起发送到服务器ASRV。在步骤S30中,服务器ASRV确定与用户输入的位置POSi对应的代码CC1和口令PC1。为此目的,服务器ASRV知道用于输入第一位置POSi的键盘,并且可以确定由软件组件GC生成的随后显示的键盘布局,因此可以确定与位置POSi对应的键标签,从而可以确定由用户输入的口令和验证码的值。在步骤S31中,服务器ASRV检查输入的口令PC1和验证码CC1与存储在数据库UDB中的与设备标识符DID相关联的那些(PC,CC)之间的符合性(compliance)。出于安全性原因,数据库UDB可以仅存储散列值HPC而不是在步骤S10中输入的口令PC的明确值,通过对输入的口令PC1应用散列函数并通过将散列函数的结果与存储在数据库UDB中的口令PC的散列值HPC进行比较,口令PC的验证操作被执行。在步骤S32中,服务器ASRV使用地址SURL向服务提供商服务器SSRV发送包含用户标识符UID和在步骤S31中执行的验证结果的认证响应。以此方式,与标识符UID对应的用户被认证,并且仅当输入的口令PC1和验证码CC1与存储在数据库UDB中的口令PC和与在步骤S23中由服务器ASRV发送到用户终端UT的软件组件GC对应的验证码CC匹配时,才可以验证交易TID。
在一个实施例中,通过使用两个不同的软件组件从用户获得两个口令将执行步骤S27到步骤S30两次,步骤S10中的口令PC的输入被执行。在每次执行步骤S27到步骤S30之后,仅当用户输入的验证码CC1与由执行一个软件组件GC的用户终端UT显示的验证码CC1相同时,才检查验证码CC1并且由用户输入的口令PC1才由服务器ASRV验证。在成功执行步骤S27到步骤S30两次之后,每次都提供已验证口令PC1,在步骤S27到步骤S30的第一次和第二次执行期间输入的已验证口令PC1被进行比较,并且如果它们一致,则将口令PC1存储在数据库UDB中以将其分配给用户终端UT。另外,仅当用户输入的口令PC1存储在数据库UDB中时,才执行步骤S11到步骤S15。以此方式,只有用户输入的位置POSi才从用户终端UT被发送到服务器ASRV。因此,安装在终端UT中的恶意软件或服务器ASRV与用户终端UT之间的中间人攻击无法在不执行软件组件的情况下发现输入的代码PC和CC。如果发生这种情况,执行攻击的黑客必须向服务器ASRV发送消息ARP(如步骤S29中)。因此,服务器ASRV可接收针对相同交易或者来自相同用户终端UT的两个消息ARP,一个来自认证用户,一个来自黑客,并且可决定使交易无效或者加标志或者执行与此事件相关的任何其它特定操作。
根据实施例,消息ARP由用户通过另一发送信道发送到服务器ASRV(步骤S29)。
图5示出了数据库UDB中的不同的表DEV、LNK、SVC、TT和GCP。表DEV包含每个已注册的用户设备或终端UT的一个记录,每个记录包括设备标识符DID、用户在步骤S10中输入的口令PC或其散列值HPC,以及对应的用户标识符UID。表SVC包含每个已注册的服务提供商的一个记录,表SVC的每个记录包括服务标识符SID和服务名称。表LNK包含在步骤S4中生成的针对每个链接令牌的一个记录,每个记录包括在步骤S4中用链接令牌LTK生成的链接标识符LID、在步骤S3中请求链接令牌的服务器SSRV的服务标识符SID、在步骤S2中已经触发了链接令牌请求RGRQ的用户的用户标识符UID、链接令牌值LTK,以及链接令牌的有效期。表TT包含针对每个当前交易的一个记录,每个记录包括交易标识符TID、设备标识符DID、服务标识符SID、将要由具有标识符DID的终端执行的应用APP显示的消息MSG、在步骤S21中提供的地址SURL、标识为交易TID生成的软件组件的标识符GCID,以及一次性交易验证码CC。表GCP包含针对由服务器ASRV生成的每个软件组件的一个记录,每个记录包括标识软件组件的标识符GCID、针对在步骤S22中为其生成软件组件的设备UT的设备标识符DID,以及为其生成软件组件的交易的标识符TID。由于软件组件专用于一个交易并且因此仅针对一个用户认证进行生成和执行,因此可以从表GCP中删除与已结束的交易对应的记录,但是它们可被保留用于统计目的或者确保每笔交易的唯一性。在其它实施例中,每个软件组件可被执行给定次数或者具有使用的有效期。
在步骤S13中检查所接收的链接令牌的操作可以通过将接收的链接令牌LTK与在步骤S4中存储在表LNK中的令牌进行比较来执行。必须在与用户标识符UID有关的表LNK的记录中获取所接收的链接令牌,该用户标识符UID具有与在步骤S12中由服务器ASRV接收的设备标识符DID对应的设备,并且依据表DEV。如果不是这种情况,则接收的链接令牌被视为无效,并且用户终端UT不被注册在表DEV中。
替代由应用APP来执行,步骤S22、S25、S27和S29可以在终端UT中安装的网页浏览器内执行,或者由在终端UT中安装的网络浏览器来执行,步骤S25、S27和S29由网页浏览器执行并且例如由服务器ASRV在网页中传输的脚本来执行,诸如采用“JavaScript”写的脚本。在实施例中,那些传输可被加密以增强安全性级别。
图6示出了当用户终端UT执行软件组件GC时显示的图像帧FRM的示例。图像帧FRM包括横幅(banner)帧BNF,其显示消息MSG和一次性代码CC的一个数字。图像帧FRM还包括键盘图像帧KYP,其示出例如十二键键盘,该键盘的每个键显示有标签KYL,标签KYL向用户指示键的功能。该键盘包括擦除键“C”和验证键“V”,以及与数字对应的十个键,并且具有特定于生成图像帧FRM的软件组件GC的布局。图像帧FRM还可以包括显示区FBD,其中,每次用户触摸一个新的键KY时显示一个点。在图6的示例中,显示区FBD示出用户已经输入了三个键。
在图6的示例中,键盘包括四行,每行三个键,键盘第一行包括(从左到右)数字“9”、“3”和“6”,第二行包括数字“2”、“0”和“1”,第三行包括数字“4”、“7”和“9”,以及第四行——验证键“V”、数字“5”和擦除键“C”。根据将要显示的键标签KYL,每个数字键的标签KYL由若干可见或不可见的段SG(例如,七个段)来显示。
图7示出了根据实施例的应用APP的功能架构。应用APP包括管理模块MGM、初始化模块INM、认证模块AUTM、链接模块LKM、软件组件执行模块GCM。管理模块MGM通过通信电路NT来控制其它模块INIM、RGM、LKM和GCM,以及应用APP与服务器ASRV之间的通信。初始化模块INM执行步骤S9。链接模块LKM执行步骤S11和S12。为此目的,链接模块可以连接到终端UT的图像传感器IMS,以获取与终端UT将要接收并由终端OT显示的链接令牌LTK对应的光学代码。认证模块AUTM执行步骤S25到步骤S29,以处理在步骤S23中接收的认证请求,触发软件组件GC的执行,以及接收和发送由用户输入的位置POSi。模块AUTM被连接到终端UT的键盘或触敏表面TSIN。模块GCM执行步骤S27,以生成并且以适当的刷新率显示图像帧FRM,模块GCM在每帧处进行选择,输入值以应用于软件组件GC并执行后者。模块GCM生成图像帧FRM,图像帧FRM显示在终端UT的显示屏DSP上。
图8示出了根据实施例的软件组件GC的示例。软件组件GC是软件实现的布尔电路,其被加密为乱码电路。软件组件GC包括电路PLS、电路层L2,以及两个互连矩阵XM1、XM2。第一互连矩阵XM1接收软件组件GC的输入数据INb、INc、ADl、RNk。电路PLS接收由矩阵XM1置换的输入数据ADl和RDk,并向第二互连矩阵XM2提供输出值SGj。电路层L2包括逻辑门XGb、XGj,每个门从矩阵XM2接收两个输入值,并提供表示像素值的一个输出值PXb、PXj。电路层L2的每个逻辑门XGj接收软件组件的一个输入值INc和由电路PLS提供的一个输出值SGj,这些输入值由矩阵XM2来选择。电路层L2的每个逻辑门XGb接收软件组件的两个输入值INb1、INb2,这些输入值由矩阵XM1和/或XM2来选择。
软件组件GC被布置在可被同时处理的并行逻辑门的层中,以使得软件组件可被并行处理执行。
根据实施例,为了生成如图6中所示的图像帧FRM,软件组件GC包括用于在图像帧FRM中可见或不可见的每个段SG的一个电路SGCj,以及用于与例如在段SG周围或在横幅帧BNF中的段像素PXj不同的的每个像素PXb的一个电路FPCb。因此,当将要显示的图像帧FRM包括用于键盘KYP的70个段(10个键标签数字×每个数字的7个段),以及用于验证码CC的一个显示的数字的7个段(1个数字×每个数字7个段)时,软件组件包括77个电路SGCj。每个电路SGCj在电路层L2中包括与形成在像素图像帧FRM中显示的段SG的像素PXj1、PXj2、...PXjp的数量一样多的逻辑门XGj。
每个门XGj执行与软件组件的输入INi的逻辑XOR运算。电路PLS的每个输出SGj被连接到电路SGCj的所有门XGj的输入。每个门XGj还接收输入值INc1-INcp中的一个,并向电路GC的输出提供一个像素值PXj1-PXjp。
每个电路FPCb包括一个逻辑门PXb,其执行每个像素PXb的逻辑XOR运算,每个像素PXb由软件组件GC控制并且与图像帧FRM中的段像素不同。电路层L2中的每个门XGb接收软件组件GC的两个输入值INb1、INb2,并提供一个像素值PXb。输入值INb、INc的数量可被限制为由软件组件GC控制的像素PXb、PXj的数量平方根周围的值。当然,还可以控制和/或布置数字(例如,用更多的段)以显示除了数字以外的其它符号,诸如字母字符或者包括ASCII字符的更一般的符号。
在图8的软件组件的示例中,一个输入INb或INc可被连接到若干逻辑门XGb、XGj,以使得输入INb、INc少于逻辑门XGj的数量加上逻辑门XGb的数量的两倍。
互连矩阵XM2定义了由软件组件生成的哪个像素属于段SG。根据一个实施例,根据用户终端的显示分辨率,每个段SG的位置、定向和形状从一个软件组件到另一个软件组件而被改变一个或若干像素。该规定使得对所显示的符号执行机器光学识别变得更加困难。
可以观察到,在本文中使用的术语“段”表示由电路PLS的输出中的相同的段值SGj控制的一组像素。形成段的像素组不必由相邻像素形成,而是可以将相邻像素的组包括为形成键标签KYL的段。另外,形成段的像素在一个显示的图像帧FRM中都是可见的或都是不可见的。
图9示出了电路PLS的示例。电路PLS包括地址解码电路ADC、包括形成存储器单元的逻辑门MCij的存储器平面MP,以及读取电路RCT。电路ADC接收输入数据ADl(l=1,...n)并且包括执行逻辑AND运算的2n个电路AGi,每个电路AGi具有n个输入和一个输出,该输出向存储器平面MP中的存储器单元MCij提供相应的选择信号SLi。每个地址信号ADl被提供给电路AGi(即2n-1个电路AGi)的一半的反相输入,并且被提供给电路AGi的另一半的非反相输入。电路AGi中的一个只具有反相输入,而电路AGi中的一个只具有非反相输入。每个电路AGi具有一个输出SLi、SLi',输出SLi、SLi'被连接到包括m×2n个存储器单元MCij的电路MP中的m个相应的存储器单元MCi1至MCim。每个存储器单元MCij具有接收输入数据RDk中的一个的另一个输入。每个存储器单元MCij在读取电路RCT中具有被连接到执行逻辑OR运算的m个电路OGj的相应输入的一个输出。每个电路OGj具有2n个输入和一个输出,该输出向第二互连矩阵XM2提供相应的数据SGj(SG1-SGm)。每个读取信号RDk可被提供给任何位列(rank)i的存储器平面MP中的一个或多个存储器单元MCij。因此,被提供给存储器平面MP的读取信号RDk的数量s被包括在2(对应于两个二进制状态)和2n之间。结果,存储在存储器平面MP中的原始数据的数据片可以随机地分布在存储器单元MCij中。由电路AGi输出的信号被生成,以使得存储器平面MP中的m个存储器单元MCi1-MCim同时被选择以进行读取。每个电路OGj仅从所选择的存储器单元接收一个信号,所有其它接收的信号由未被选择的存储器单元发布并且处于不活动的二进制状态。取决于存储在存储器单元MCij中的二进制值,由每个电路OGj接收的来自所选择的存储器单元MCij中的一个的单个信号SGj可以处于活动或不活动的二进制状态。
根据简化的示例,s等于“一(“1”)”,以使得单个读取信号RD被应用于存储器平面MC中的所有存储器单元MCij。
根据另一个示例,电路GC的读取信号输入RDk可以通过逻辑门组合在一起,逻辑门输出被应用于存储器单元MCij的读取信号。因此,被提供给布尔电路的读取信号RDk的数量s可以大于存储器平面MP中的存储器单元MCij的数量(2n×m)。
根据另一个示例,电路PLS可以包括另一个解码电路,其可以是与电路ADC相同的电路,并且输入数据RDk的数量s可被设置为等于n(即,输入数据ADl的数量),以使得每组的n个输入数据ADl对应于一组n个输入数据RDk。该另一个解码电路生成活动的读取信号,其被提供给由信号SLi中的一个选择的存储器单元MCij。
图10A、图10B分别示出了存储两个不同的二进制值的存储器单元MC1、MC2的示例。每个存储器单元MC1、MC2包括逻辑AND门A1、A2,其中两个输入分别接收选择信号SL和读取信号RD。为了存储不同的二进制值,接收读取信号RD的输入在门A2中反相,而在门A1中不反相。当选择信号SL的活动状态被设置为1时,在读取信号RD的活动状态被设置为1的时候,存储器单元MC1、MC2可被认为分别存储“1”和“0”。相反,当读取信号RD的活动状态被设置为0时,存储器单元MC1、MC2可被认为分别存储“0”和“1”。通过例如使用包括具有用于选择信号SL的反相输入的逻辑AND门的存储器单元,选择信号SL的活动状态可被设置为0。
可以使用其它类型的逻辑门来代替用于存储器单元MCij的AND门。在一个示例中,存储器单元可以包括逻辑NAND门,其中读取信号RD的输入根据存储器单元存储的二进制数据被反转或不反转。在另一个示例中,存储器单元还可以包括逻辑OR或NOR门,其中读取信号RD的输入根据由存储器单元存储的二进制数据被反转或不反转。如果存储器单元的输出被连接到对应电路OGj的反相输入,则存储器MCij单元的输出值也可以是0以用于存储“1”。存储器单元也可以使它们的选择信号输入SL反转。
另外,存储器平面MP中的所有存储器单元Mij不必具有相同的类型,诸如仅出于说明的目的而提供的在图10A、图10B中公开的类型。存储器平面MP可以用不同类型的逻辑门形成,并且选择和读取信号SLi、RDk对于存储器平面MP的所有存储器单元不必具有相同的活动状态。
在图6的的示例(其中将要显示77个段)中,m=77,并且2n对应于可以使用输入数据ADl来选择的不同键盘布局的数量。例如,数量n可被设置为4,以便获得具有第一显示的验证码CC的值的16个可选择的不同键盘布局。
图11示出了可以仅使用具有两个输入和一个输出的逻辑门G来实现读取电路RCT中的每个电路OGj的电路。图11中的电路包括2r个输入和一个输出。为此目的,电路OGj包括门G的r个层LR1、...LRr-2,LRr-1,LRr,第一层LR1包括2r-1个门G,层LRk包括2r-k个门G(k=1,...r),而最后一层LRr仅包括提供电路RCT的输出的一个(=2)门G。每个层LRk的门G的输出被连接到下一层LRk-1的门G的输入。在电路OGj的情况下,门G可以是逻辑OR门和/或逻辑NAND门。在图8和图9的示例中,每个电路OGj包括2n个输入和n层的门。
每个电路AGi可以具有如在图11中所公开的结构,其中门G是逻辑AND门,并且r=n,根据将要实现的门AGi的反相输入和非反相输入的数量,第一层LR1的门G具有反相和/或非反相输入。
图12示出了根据实施例的当被设计为乱码电路时定义软件组件的结构和内容数据GCD(在步骤S23中被发送到用户终端)。数据GCD包括:
唯一的软件组件标识符GCID;
数字组DIM,其包括输入值INb、INc的数量d、输入值ADl的数量n、输入值RDk的数量s、电路GC的输出值PXi、PXj的数量z、电路AGi、OGj中的门MCij、XGb、XGj的数量g1、不包括XOR门XGb、XGj的所有这些门的数量g2、电路中的线的数量w、以及电路GC中的并行逻辑门LRk、L2的电路层的数量y;
输入数据表INLB,其包括电路GC的输入INb、INc的所有值,例如编号为从1到d,如为执行软件组件所规定的;
输入数据表ADLB,其包括软件组件GC的输入数据ADl的所有值,其编号为从1到n,以用于软件组件的执行;
输入数据表RDLB,其包括软件组件GC的输入数据RDk的所有值,其编号从1到s,以用于软件组件的执行;
门线表GTW,其定义了两个输入线编号IN1、IN2,输出线编号ON,以及软件组件GC的每个逻辑门(AGi、OGj、XGb和XGj的逻辑门)的类型标识符GTYP,电路的门被从1到g进行编号;以及
门控真值表GTT,其包括针对软件组件GC的每个逻辑门的四个值OV00、OV01、OV10、OV11。
在图9的示例中,类型GTYP规定对应的逻辑门执行XOR操作或诸如AND、OR、NOR、NAND的另一个逻辑操作。当类型标识符被用于标识电路GC的XOR门时,XOR门XGb和XGj被从表GTT中排除。
根据实施例,乱码电路GC,电路AGi和OGj的逻辑门G,以及门MCij、XGi、XGj的输入值INb、ADl、RDk、INc和输出值PXb、PXj,每个表示二进制逻辑状态0或1,由若干位的数字来定义,例如64或128位。以此方式,乱码电路GC内的每个输入和输出仅具有两个有效值,并且当考虑这些值的位大小时,所有其它可能的值都是无效的。当软件组件GC被生成时,软件组件的每个输入ADl、RDk、INb、INc的两个有效值被随机地选择,前提是两个有效值的最低有效位不同,在计算逻辑门的输出值时这些最低有效位被用于选择逻辑门的真值表中的一个值,并且被用于确定电路GC的输出的逻辑状态。
电路AGi、OGj和MCij的每个逻辑门的真值表GTT[i]包括四个值OV00、OV01、OV10、OV11,每个值对应于二进制输入值的组合(0,0)、(0,1)、(1,0)、(1,1),二进制输入值对应于逻辑门的输入值。软件组件GC的拓扑结构可以在表GTW中定义:通过对软件组件的每个线进行编号,即软件组件的每个输入线从1到(=d+s+n+2y),逻辑门的每个输出从(INN+1)到(INN+g1)进行编号,并且通过将表GTW的一个记录关联到软件组件GC的每个逻辑门,包括将两个线编号IN1、IN2关联到门的两个输入以及将一个线编号ON关联到门的输出。软件组件GC的输出的线编号被从(INN+g1-z+1)到(INN+g1)进行编号。
根据实施例,表ADLB、RDLB分别包含每个输入值ADl的有效值ADlV1、ADlV2,以及每个输入值RDk的有效值RDkV1、RDkV2,对应于逻辑状态0和1。每个值RDkV1、RDkV2可以有相同的概率等于分别对应于状态0和1的输入值RDk的两个有效值中的一个或另一个。以类似的方式,每个值RDkV1、RDkV2可以有相同的概率等于分别对应于状态0和1的输入值ADl的两个有效值中的一个或另一个。
通过使用在表GTT中编码的真值表,或者通过对门的输入值中的相同位列的每对位应用XOR运算,XOR门XGb、XGj可被执行。在后一种情况下,表GTW的字段GTYP定义门是XOR门还是另一个门,并且表GTT针对不同于XOR门的每个门包括一个记录。
根据实施例,表INLB、ADLB、RDLB、GTT中的每个值由128位字编码,并且表GTW的每个记录在64位字上进行编码,线编号IN1、IN2、ON在21位字上编码。表GTW可以采用压缩的形式从服务器ASRV被发送到终端UT,压缩形式例如是使用gzip压缩方案。
根据实施例,门表GTW和GTT中的逻辑门的顺序可以是随机定义的,只要该表在索引i处记录的GTW[i]和GTT[i]是指相同的门。
图13示出了模块GCM,其被配置为执行软件组件GC并生成图像帧FRM。根据实施例,每次必须生成新的图像帧时,即每次用户选择所显示的键盘KYP的键KY中的一个时(例如,按键),模块GCM执行软件组件GC,软件组件用新的一组输入值RDkVq1、ADlVq2来执行,其可以根据先前选择的键的位置和/或先前选择的键的数量来选择。
模块GCM包括切换模块SWC、软件组件解译器GCI、XOR掩码电路XRG和像素映射模块MPF。切换模块SWC接收定义将要执行的软件组件GC的结构和内容数据GCD,并且将下一次执行软件组件GC时将要处理的数据加载到输入数据结构GCDI中。因此,切换模块SWC发送数据DIM、INLB、SGLB、NBGL、GTW、GTT和GCK而不修改结构GCDI。
根据实施例,切换模块SWC执行切换操作SW1k、SW2l以选择每个输入值RDk的两个有效值RDkV1、RDkV2中的一个或另一个,以及每个输入值ADl的两个有效值ADlV1、ADlV2中的一个或另一个。每个切换功能SW1k由具有s位的数字NB1的相应位NB1k控制,s是将要输入到软件组件GC的输入值RDk的数量。每个切换功能SW2l由具有n位的数字NB2的相应位NB2l控制,n是将要输入到软件组件GC的输入值ADl的数量。每个切换操作SW1k、SW2l针对输入值RDk、ADl中的每一个提供存储在结构GCDI中的值RDkV1、RDkV2。作为输入值RDk的两个有效值RDkV1、RDkV2的选择和输入值ADl的两个有效值ADlV1、ADlV2的选择的结果,一个键盘布局在2n个预定义的键盘布局中被选择,具有所选择的布局的键盘然后被生成。
功能SEL可以从服务器ARSV接收第一数字NB1、NB2以显示第一图像帧,第一图像帧示出具有第一键布局的键盘。每次用户选择所显示的键盘的键时,功能SEL可以根据用户先前在所显示的键盘中选择的键,和/或根据来自第一次执行软件组件GC的用户先前选择的键的数量来计算数字NB1、NB2。数字NB1、NB2分别被计算模s和n。
在另一个实施例中,服务器ASRV可以向终端UT发送所有的数字NB1、NB2,以用于显示具有不同的键布局的键盘的序列。
模块GCI是专用解译模块,其被配置为连续地执行每个电路层的每个逻辑门,这是由输入数据结构GCDI中的数据所定义的,从第一电路层开始。为此目的,解译模块GCI可以使用接收软件组件GC的每个线的值的线表,这些值在与线值的线编号对应的索引处被写入表中。线表首先被加载软件组件的输入值INb、INc、RDkVq1、ADlVq2,这些输入值在与被分配给输入值的线编号对应的索引(在1和INN=d+s+n+y之间)处被写入表中。然后,将每个所执行的逻辑门的计算输出值在与被执行的逻辑门的输出的线编号对应的索引处写入线表中。在软件组件执行结束时,线表包括在从(INN+g1-z+1)到(INN+g1)的索引处的软件组件GC的输出值。
根据两个输入值中的每一个的最低有效位,每个逻辑门的输出值可以通过应用不可逆函数来计算,该不可逆函数被应用于门的输入值和在门的真值表中选择的一个值:
OV=PF1(IN1,IN2,GG) (1)
其中,IN1和IN2表示门的输入值,GG=GTT[IN1{0}//IN2{0}],IN1{0}和IN2{0}表示输入值INI、IN2的最低有效位,“//”表示位串联运算符,GTT表示门的四元素真值表,PF1表示不可逆函数。
根据实施例,通过使用分配给软件组件的加密密钥,函数PF1可以使用诸如AES(高级加密标准)的加密功能。在这种情况下,加密密钥GCK可以存储在软件组件GC的结构和内容数据GCD中。例如,逻辑门的输出值OV可以计算如下:
表示异或(XOR)运算符,T表示分配给逻辑门的数字,例如逻辑门的编号,并且T也可以取决于输入的值IN1、IN2,CF表示组合函数,而AES(GCK,K)表示使用加密密钥GCK的AES加密算法的K的加密值。组合函数可以是XOR操作或以下形式的操作:
SH(X,a)表示X的左移a位的移位运算。
由模块GCI提供的软件组件GC的每个输出数据PXv(PXb、PXj1-PXjp)的最低有效位被认为是像素值PXv。模块XRG将由软件组件GC提供的每个输出值PXv的最低有效位与属于在结构和内容数据GCD中提供的图像掩码IMSK的相应的掩码位值MKv组合。使用的组合操作可以是XOR操作XRv,其提供针对每个输出数据PXv的像素值PX'v。软件组件GV的输出值PXv的相应的最低有效位可以表示白噪声,因为包括最低有效位的软件组件的输出值是随机选择的。因此,由软件组件生成的图像部分采用加密形式,并且使用图像掩码IMSK来解密。
图像掩码IMSK包括消息MSG,以使得当与由软件组件GC提供的像素PXv组合时,消息MSG变得可理解并且可以与验证码CC的段SG组合。图像掩码IMSK还可被配置为使对应于由所选择的值RDkVq1、ADlVq2定义的键盘布局的数字段SG的像素PX'v可见。通过将对应的段值SGj固定为二进制状态0(被配置为不可见的段)并且通过将掩码IMSK中的对应像素MKv设置为1,段SG可被设置为始终可见。配置段始终可见(或不可见)的另一种方式是配置电路PLS,以使得它总是针对RDk和ADl的所有可能的值提供可见(或不可见,分别地)的段值SGj。
当分别用图像帧的背景颜色或者用与背景颜色不同的颜色显示它们时,段SG或像素PXv在所生成的图像帧FRM中的一个中是不可见或可见的。背景颜色由所考虑的段SG周围的像素的颜色来定义,并且可以根据图像帧FRM内的段的位置而变化。在另一个实施例中,段被显示在背景图像上。不可见段的每个像素用位于段像素下方的背景图像中的对应像素的颜色来显示。
根据一个实施例,为了更高的安全性,在步骤S23中使用另一个通信信道将最终掩码IMSK发送到终端UT。
互连矩阵XM1、XM2定义在所生成的图像帧FRM中显示的对应于软件组件GC的输入值的像素PX'v的位置。如果软件组件GC的输出中的对应像素PX'v是可见或不可见的,则软件组件GC的输入值INb、INc与图像掩码IMSK相关地定义。可以在生成软件组件时随机选择软件组件GC的输入值INb、INc的相应的二进制状态,然后根据2n个键盘布局和软件组件GC的架构,尤其是根据互连矩阵XM1、XM2来生成图像掩码IMSK。
映射模块MPF将模块XRG提供的像素值PX'v组在适当的位置插入背景图像帧BCKF中,以生成将要显示的图像帧FRM中的一个。特别地,模块XRG提供形成如图7中所示的横幅框BNF的像素组PX'v,以及形成在帧FRM中将要显示的一个键盘帧KYPF的每个键标签KYL的像素组PX'v。映射模块MPF将这些像素组插入背景图像帧BCKF中的相应的预定义位置,以生成如图6中所示的图像帧FRM中的一个。在一个实施例中,模块XRG输出可直接显示的图像帧。在这种情况下,映射模块不是强制的。
根据另一个实施例,由模块XRG执行的解掩码操作可以与所生成的图像帧FRM组合,即,在由映射模块MPF执行的图像映射操作之后。因此,掩模IMSK可以具有背景图像帧BCKF或图像帧FRM的大小。
根据实施例,在步骤23接收软件组件GC,其中第一数字NB1、NB2用于选择输入值RDkVq1、ADlVq2(k=1,...,s并且l=1,...n)。因此,生成软件组件的服务器ASRV知道对应的第一键盘布局。然后,每次用户选择键盘的键时,终端UT(模块GCM)计算新的数字NB1、NB2以选择并显示具有另一个键布局的键盘KYP。如果用户按下擦除键“C”,则可以通过使用对应的数字NB1、NB2而不改变键盘布局或者可以再次显示先前显示的键盘。
每次用户选择键盘的键时,可以根据赋值于(attributed to)用户选择的最后一个键的数字来计算和更新数字NB1、NB2,而该数字根据该键在键盘中的位置而赋值于键。另外,可以根据用户用当前执行的软件组件来选择键的次数来执行数字NB1、NB2的计算。附加地或可替代地,可以根据数字NB1、NB2的先前值来执行数字NB1、NB2的计算。数字NB1和NB2的更新值分别被执行模s和n。模块GCM可以管理擦除键“C”的使用,以使得在步骤S29发送到服务器ASRV的位置POSi仅包括由用户验证的位置。在这种情况下,通过使用对应的数字NB1、NB2,模块GCM在用户在擦除键之前选择错误的键按下时命令显示被显示的键盘。
根据另一个实施例,由用户选择的键盘的所有位置由终端UT发送到服务器ARSV,并且数字NB1、NB2的更新还考虑了用户对擦除键“C”的选择。由于服务器知道数字NB1、NB2的第一值、这些数字的更新函数以及用户输入的POSi位置,所以它可以计算由终端UT使用的数字NB1、NB2的序列,并且确定由终端显示的键盘布局的序列,由用户输入的口令和验证码数字PC、CC是从每个位置POSi和对应的键盘布局确定的。可以管理取消键“C”以删除最后输入的数字或者所有先前输入的数字。通过擦除显示区FBD中的一个点或所有点,可以向用户显示取消键“C”的效果。
根据实施例,仅当要求用户输入该代码时,例如在用户输入口令PC之后,才显示验证码CC的数字。由模块GCM计算的数字NB1、NB2的序列可以使得在用户输入口令PC之后,显示验证码的一个数字的段变得可见,例如,在用户进行四次验证键选择之后,如果口令包括四个数字。
根据实施例,验证码CC可以在软件组件GC的结构和数据中定义,以使得它独立于用户先前输入的键。
根据另一个实施例,验证码CC可以根据用户为了输入口令PC而先前输入(并且可能被验证)的最后一个键或所有键而定义。以此方式,如果用户输入的口令PC错误,则所显示的验证码CC也是错误的,并且用户无法输入服务器ASRV所期望的正确的验证码CC。为此目的,使用电路部分PLS,形成验证码CC的数字的段可被形成为形成键标签KYL的段。
根据另一个实施例,将要用于选择键盘布局的第一数字NB1、NB2或所有数字NB1、NB2的序列和验证码的数字被随机地选择,并且由终端UT向服务器ASRV发送表示所显示的图像帧的数据,这些数据使服务器能够确定所显示的键盘布局的序列和验证码的数字。
在软件组件GC的结构和内容数据GCD中发送输入数据RDk、ADl的两个有效值,以使得能够以非常低的成本在软件组件的执行和输出数据中引入随机性。相反,生成随机输出数据的软件组件需要在软件组件中引入随机生成器,这在不增加乱码电路的复杂性的情况下,并且因此在不增加定义了软件组件的结构和内容数据GCD的大小的情况下,无法通过使用乱码电路技术明显地实现。另外,由于不能够容易地建立每个输入值RDkV1、RDkV2、ADlV1、ADlV2与其二进制值0或1之间的对应关系,输入数据RDk的两个有效值RDkV1、RDkV2,以及输入数据ADl的两个有效值ADlV1、ADlV2的传输不会降低口令PC和验证码CC的引入的安全性。
根据实施例,可以不请求输入口令以认证用户,仅向用户请求所显示的验证码CC。在这种情况下,第一显示的图像帧显示验证码CC的第一个数字,而每个后续显示的图像帧显示验证码的其它数字中的一个。
根据一个实施例,每次终端UT必须执行新的认证时,在步骤S27中执行新的软件组件GC,该新的软件组件GC显示具有不同的键布局的键盘KYP并且显示不同的验证码CC。
据实施例,为了避免一个软件组件GC的传输(在步骤S23中),每次要求用户终端执行新的认证时,若干备选的软件组件(由结构和内容数据GCD定义)可以在终端UT中一次性下载,并且每次终端UT必须执行新的认证时选择尚未执行的软件组件。作为示例,当应用APP被下载并安装在用户终端UT中时,若干软件组件与应用APP一起被下载。然后,当使用一个或多个软件组件时,例如当终端具有有效的网络连接时可以从服务器ASRV将新的一组软件组件下载到终端UT。
根据实施例,若干备选软件组件以加密形式存储在终端UT中,并且每次终端UT必须执行新的软件组件时,服务器ASRV向用户终端对发送应的解密密钥。
根据实施例,仅将每个软件组件的一部分下载到终端UT中。每个软件组件的下载部分可以包括具有或不具有表RNLB的数据GCID、DIM、NBGL、GTW。每次终端UT必须执行新的认证时,在步骤S23中,服务器ASRV仅向终端发送数据INLB、SGLB、GCK和EVISK。然后,例如在步骤S25或步骤S29中,终端UT向服务器ASRV发送用于认证的软件组件的标识符GCID。当服务器ASRV从用户终端UT接收到软件组件标识符GCID时,它在数据库UDB中检查所接收的标识符GCID对应于先前发送到终端UT的下一个未执行或有效的软件组件。如果所接收的标识符与先前发送到终端UT的下一个未执行或有效的软件组件不对应,则用户认证和对应的交易被服务器ASRV无效。用相同的软件组件(对应于相同的标识符GCID)执行的先前交易也可被服务器ASRV无效。
根据实施例,服务器ASRV可以向它为用户终端生成的每个软件组件分配有效性指示符(例如,在图5的表GCP中)。当服务器ARSV在步骤S23中向用户终端发送对应的软件组件时,它将有效性指示符设置为有效,并且当其在步骤S29中接收到对应的消息ARP时将有效性指示符设置为无效。另外,服务器ARSV可以为每个生成的软件组件分配有效期,当其有效期已过时,软件组件被设置为无效。服务器ASRV可被配置为当其与被设置为无效的软件组件对应时拒绝在步骤S29中发送的消息ARP。
根据实施例,为了防止使用终端UT的截屏功能来获取键盘布局,在由软件组件GC生成的每个图像帧中仅显示每个键KY中的一部分可见段。为此,将要显示的每个可见段以低于100%的概率出现在由软件组件GC生成的图像帧FRM中,例如等于50%。图14A示出了与图6中相同的框架,除了所显示的键标签KYI和验证码的所显示的数字的某些段SG是不可见的。由于人类视觉系统的视觉暂留特性,人类视觉系统对终端UT连续显示的图像帧进行组合。因此,所显示的键标签KYL变得对用户可理解,但无法使用截屏功能捕获。图14B示出了当由软件组件GC生成的图像帧FRM例如以60Hz的足够高的频率(优选大于30Hz)显示时由人类视觉系统可感知的显示图像IMG,使得每16.6ms显示由软件组件生成的新的帧,每个必须可见的段以大于30Hz的频率显示。如在图14B中所示,当将要显示的键标签的可见段以低于100%的概率插入帧FRM中时,键标签KYL和验证码CC的数字采用灰色向用户显示。
图15在顶部示出了由软件组件GC生成并由终端UT显示的横幅帧BNF的两个叠加层的一个示例。图15的中心部分示出了生成和显示的横幅帧。图15的底部示出了横幅BN,而它可被用户感知。横幅框BNF的第一层(图15的左上方)包括将要显示的消息MSG“Order:transfer xx€to yyyy”。第二层(图15的右上方)包括与将要通过终端UT的用户输入的验证码CC对应的两个数字。为了防止使用终端UT的截屏功能来获取验证码CC,在由软件组件GC生成的每个图像帧FRM中仅显示可见段SG的一部分,以使得将要显示的每个可见段SG以低于100%的概率出现在由软件组件GC生成的图像帧FRM中,例如等于50%。可以通过XOR运算将第一层和第二层的像素组合在一起。因此,在如图15的中心部分所示的所生成的横幅框BNF中,当消息和段采用与背景颜色不同的颜色显示时,同属于消息MSG和验证码CC的段的像素采用背景颜色显示。
图15的底部示出了当由软件组件生成的图像帧FRM以例如60Hz的足够高的频率(大于30Hz)显示时人类视觉系统可感知的所显示的横幅BN,使得每16.6ms显示新的帧FRM。当将要显示的可见段以低于100%的概率插入横幅帧BNF中时,验证码CC的数字DL采用灰色向用户显示。
根据实施例,将要显示的每个数字KYL、DL的可见和不可见段以相应的概率出现在帧FRM中,以使得所显示的数字对于人类视觉系统是可理解的,这归功于后者的视觉暂留。例如,所生成的软件组件GC被配置为以0到15%的概率显示不可见段,并且以50到100%的概率显示可见段。形成键标签KYL或验证码CC的数字的可见段可以以50%和100%之间的相应的概率显示,并且可以以在0和15%之间的相应的概率来显示键标签或验证码CC的数字中的不可见段。形成键标签和验证码CC的数字的段的显示概率可以根据帧显示频率而调整,以使得所显示的数字的标签对于人类视觉系统保持可理解。
所显示的键盘KYP可以不需要具有验证键“V”,当用户输入将要输入的口令PC和验证码CC的最后一个数字时,所输入的代码的验证被执行。例如,如果口令PC包括四个数字并且验证码CC包括两个数字,则当用户输入六个数字时,软件组件GC的执行可被结束。
图16示了根据另一个实施例的软件组件GC1。软件组件GC1与软件组件GC的不同之处在于它包括插入在电路PLS与互连矩阵XM2之间的附加电路层L1。根据实施例,为了生成如图14A中所示的图像帧FRM,软件组件GC1的每个电路SGCj包括用于每个段SG的一个门BGj,段SG可以在图像帧FRM中可见或不可见。门BGj被配置为以50%的概率生成键标签KYL和验证码SG的数字的可见段,并且以0%的概率生成这些数字的不可见段。软件组件GC的结构可适于将其它显示概率应用于将要显示的数字的可见和不可见段。例如,门BGi执行诸如AND、OR、NAND、NOR的逻辑操作,以50%的概率显示每个可见段,并且每个不可见段有0%的概率可见。电路层L1包括2n个逻辑门BGj,每个门BGj处理电路PLS的一个输出值SGj,然后通过互连矩阵XM2传输到电路层L2。每个门BGj具有接收电路PLS的一个输出值SGj和电路GC1的一个输入值RNj的两个输入,并且向层L2中的门XGj1、...XGjp提供输出值SGj'。门BGj根据输入值RNj将可见段SG转变为不可见。
图17示出了根据实施例的当被设计为乱码电路时定义软件组件GC1(其可以在步骤S23中发送到用户终端)的结构和内容数据GCD1。数据GCD1与数据结构GCD的不同之处在于它包括输入数据表RNLB,其包括软件组件GC1的输入数据RNj的所有可能的值,从1到2n进行编号,以用于软件组件GC1的执行,门线表GTW和门真值表GTT被修改以考虑电路GC1中的门BGj的存在。
根据实施例,表RNLB包含对应于逻辑状态0和1的每个输入值RNj的有效值RNjV1、RNjV2。每个值RNjV1、RNjV2可以有相同的概率与分别对应于状态0和1的随机值RNj的两个有效值中的一个或另一个相等。
图18示出了模块GCM1,其被配置为执行软件组件GC1并生成图像帧FRM。根据实施例,每次要以等于或大于30Hz的帧刷新率生成新图像帧时,模块GCM1执行软件组件GC1。为此目的,每次必须生成新的图像帧时,模块GCM1可以由具有例如上升沿的同步信号SNC激活。
模块GCM1与模块GCM的不同之处在于它包括修改的切换模块SWC1。模块SWC1与模块SWC的不同之处在于它执行附加的切换操作SWi,以选择每个随机输入值RNj的两个有效值RNjV1、RNjV2中的一个或另一个。每个切换功能SWj由具有2n位的随机数RNBj的相应位RNBj控制,随机数RNBj由在功能SEL中实现的随机数生成功能生成,并且以由信号SNC定义的速率生成2n位的随机数。每个切换操作SWj针对随机输入值RNj中的每一个提供随机选择的值RNiVq3,其被存储在结构GCDI中。作为选择随机输入值RNj的两个有效值RNjV1、RNjV2中的一个的选择的结果(将要显示的可见段SG对应于由电路PLS输出的被设置为状态1的数据SGj),对应的AND门BGj的输出根据所选择的随机值RNjVq3的逻辑状态而被设置为状态为0或1。结果,可见段SGj以等于随机输入值RNj被设置为状态1的概率出现在每个帧FRM中。如果数字RNB是真随机数,则该概率等于50%。
图像掩码IMSK可被配置为使与固定为二进制状态0的段输入值SGj对应的数字段SG(被配置为不可见的段)的像素PXv可见。以此方式,在生成的图像帧FRM中,段是始终可见的(概率为100%)。另一种配置始终可见或不可见的段的方式是将相同的值赋予与所发送的结构和内容数据GCD中的相关的段输入值SGj对应的两个随机值RNjV1、RNjV2。
在软件组件GC1的结构和内容数据GCD1中,随机输入RNj的两个有效值的传输使得能够在软件组件GC1的执行和输出数据中引入随机性。
图19示出了根据另一个实施例的软件组件GC1的一部分。图19中公开的电路部分旨在代替图16的电路中的一个逻辑门BGj。在图19的示例中,电路部分包括三个AND门AGj1、AGj2和AGj3以及两个OR门OGj1、OGj2。代替对于要以低于100%的概率显示的图像帧FRM的每个段具有一个段输入SGj和一个随机输入RNj,该电路部分针对一个段包括三个段输入SGj1、SGj2、SGj3和三个对应的随机输入RNj1、RNj2、RNj3。每个门AGj1、AGj2、AGj3将一个相应的段输入SGj1、SGj2、SGj3与一个相应的随机输入RNj1、RNj2、RNj3组合。门AGj1和AGj2的输出被连接到门OGj1的输入,门AGj3和OGj1的输出被连接到门OGj2的输入。门OGj2的输出Dj被连接到数量与形成由输入SGj1、SGj2、SGj3控制的段的像素一样多的门XGj。以此方式,当所有的段输入SGj1、SGj2、SGj3被设置为二进制状态0时,门OGj2的输出Dj被设置为二进制状态1,概率为0%。当段输入SGj1、SGj2、SGj3中只有一个被设置为二进制状态1时,门OGj2的输出Dj被设置为二进制状态1,概率为50%。当段输入SGj1、SGj2、SGj3中只有两个被设置为二进制状态1时,门OGj2的输出Dj被设置为二进制状态1,概率为75%,并且当全部三个段值SGj1、SGj2、SGj3被设置为二进制状态1时,门OGj2的输出Dj被设置为二进制状态1,概率为87.5%。取决于掩码IMSK的对应的输入值INi1-INip和对应的掩码位值MKi1-MKip,以及由电路PLS提供的段输入值SGj1、SGj2、SGj3,可以以固定为0%、12.5%、25%、50%、75%、82.5%或100%的概率显示段SG。根据实施例,可见段SG在图像帧FRM中以随机设置为12.5%、25%、50%、75%;82.5%或100%的概率显示。
使用组合三个段输入值SGj1、SGj2、SGj3和三个随机输入值RNj1、RNj2、RNj3的逻辑门的其它组合,可以获得这些概率或其它概率。
通过增加用于一个段的输入数量,从而通过增加第一电路层L1中的AND门的数量和后续电路层中的组合OR门的数量,软件组件可以达到其它概率值。
根据一个实施例,以根据用户的经验水平而降低的概率显示可见段。在从应用APP的第一次安装执行的第一次认证时,可见段SG可以有高概率在图像帧FRM中显示,例如,在75%和100%之间。随着用户的经验水平的增长,这些概率可以逐渐减小并最终设置为随机选择的值,例如在12.5%和50%之间。
替代显示具有可变键布局的键盘,软件组件GC和对应的掩码IMSK可被配置为显示生物识别质询,请求用户使用例如可用作生物识别传感器的传感器来输入响应。传感器可以是相机、指纹传感器或麦克风(或虹膜传感器、心率监视器、葡萄糖监视器、血压传感器...)。在这种情况下,例如根据显示的说明,可以在步骤S10中邀请用户使用终端UT的一个或多个传感器(和/或与终端安全地关联的一个或多个传感器)在终端UT中引入所请求的生物识别数据RBD。根据示例,可以指示用户使用指纹传感器输入他的几个或所有手指的指纹,和/或使用相机(传统的成像相机,或者任何其它类型的相机,诸如热或红外相机)拍摄他的面部的图片(例如,左部、前部、右部图片),和/或通过使用麦克风说出由终端UT显示的单词、字母或图形的列表以进行语音记录。在步骤S12中,由用户输入的生物识别数据被发送到服务器ARSV并存储在用户数据库UDB中。当在步骤S27执行软件组件时,用户在由软件组件显示的图像帧中引入与生物识别质询对应的所请求的生物识别数据(步骤S28)。在步骤S29中,将用户引入的生物识别数据发送到服务器ARSV。在步骤S30、S31中,服务器ASRV将所接收的生物识别数据与存储在用户数据库UDB中并且对应于用户的生物识别数据进行比较。
示出这种生物识别质询的示例的图20示出了当用户终端UT执行软件组件GC时由其显示的图像帧FRM的示例。图像帧FRM包括显示消息MSG的横幅帧BNF。在图20的示例中,消息MSG包含与将要由用户验证的交易有关的信息,例如“Order:transfer xx€to yyyy”。图像帧FRM进一步呈现生物识别质询,其请求用户使用终端UT的或者与其相关联的摄像头来捕获他的面部的一部分(可选地以安全的方式)。为此目的,图像帧FRM呈现程式化的人类头部,头部的左、前和右侧与相应的随机选择的数字ND相关联。图像帧FRM进一步呈现生物识别质询“示出你的面部的侧<编号>”以及验证键“V”,“<编号>”对应于所显示的数字ND中的一个。在图20的示例中,面部的左、前和右侧被编号为3、9和7,而请求捕获的面部的侧是侧3,即面部的左侧。
根据实施例,每次用户输入图像并对其进行验证时,使用通过数字NB1、NB2的新的值而选择的输入数据ADl、RDk的不同值来生成新的图像帧FRM。
根据另一个实施例,为了防止使用终端UT的截屏功能来获取所显示的数字ND,使用例如七个段的段SG来显示数字ND,并且只有形成每个所显示的数字ND的段的一部分被显示在由软件组件GC1生成的每个图像帧中。为此目的,将要显示的每个可见段SG以低于100%的概率出现在由软件组件GC1生成的图像帧FRM中,例如等于50%。由于人类视觉系统的视觉暂留,人类视觉系统对终端UT连续显示的图像帧进行组合。因此,所显示的数字ND变得对于用户可理解,但无法使用截屏功能以有效的方式捕获。
图21示出了当用户终端UT执行软件组件GC时由其显示的图像帧FRM的另一个示例。图像帧FRM包括显示消息MSG的横幅帧BNF。图像帧FRM进一步呈现另一个生物识别质询,其请求用户使用例如终端UT或者连接到终端UT的指纹传感器来输入指定手指的指纹。为此目的,图像帧FRM呈现程式化的左人手和右人手,每个手指与随机选择的数字ND相关联。图像帧FRM进一步呈现生物识别质询“示出手指<编号>然后<数字>”以及验证键“V”。数字ND使用段SG来显示,例如使用七个段。在图21的示例中,示出了手的背面,左手被放在右手的左侧,并且十个手指分别与随机选择的数字(从左到右)8、3、1、2、6、7、5、4、9和0相关联。所请求的指纹被编号为0然后6,其对应于右手小指的指纹和左手拇指的指纹。
图22示出了当用户终端UT执行软件组件GC时由其显示的图像帧FRM的另一个示例。图像帧FRM包括显示消息MSG的横幅帧BNF。图像帧FRM进一步呈现另一个生物识别质询,其请求用户使用终端UT或者与其连接的麦克风来读出一个或多个单词。为此目的,图像帧FRM呈现可以在字典中选择的单词列表,每个单词与随机选择的数字ND相关联。图像帧FRM进一步呈现生物识别质询“说出单词<编号>”以及验证键“V”。在图10B的示例中,当将要显示的可见段SG以低于100%的概率被插入帧FRM中时,所显示的数字ND采用灰色向用户显示。在这个示例中,所选择显示的单词是“单词1”、“单词2”和“单词3”并且分别与数字3、9和7相关联,请求说出的单词编号为7,即单词“单词3”。替代单词,可以请求用户说出字母(可以是所显示单词的一部分)和/或可以使用段SG显示的数字,只有形成每个所显示的字母或数字的段的一部分被显示在由软件组件GC生成的每个图像帧中。数字ND使用段SG来显示,例如七个段。
在另一个实施例中,生物识别质询例如是“说出单词<编号1>、<编号2>和<编号3>”或者“读出<编号3>单词的字母<编号1>和<编号2>”。
根据实施例,每次用户在图21和图22的示例中输入响应并对其进行验证时,使用输入数据ADl、RDk的不同的输入值来重新生成图像帧FRM。以此方式,每次用户输入生物识别质询的答案时,所显示的数字ND改变。根据实施例,可以在随机选择的时刻使用输入数据ADl、RDk的不同的输入值来重新生成图像帧FRM。
根据实施例,,只有形成每个所显示数字的段的一部分被显示在由软件组件GC生成的每个显示的图像帧中。为此目的,将要显示的每个可见段SG以低于100%的概率出现在由软件组件GC生成的图像帧FRM中,例如等于50%。
当基于生物识别质询对用户进行认证时(图20、图21、图22),用于确定选择所显示数字ND的输入值ADl和RDk的数字NB1、NB2的完整序列可以通过服务器ASRV被发送到终端UT。以此方式,每次用户输入对生物识别质询的响应时,所显示的数字ND可以改变,并且服务器知道在每个显示的图像帧中显示了哪些数字。可以以由服务器提供的随机频率来选择新的数字NB1、NB2。
在使用乱码电路的实施例中,由服务器ASRV在步骤S22中执行的软件组件的生成包括生成表示输入位的二进制状态0和1以及软件组件的逻辑门的输出位的二进制状态0和1的随机值,逻辑门输出的一部分与乱码电路的输出相对应。软件组件的生成还包括随机选择互连矩阵XM1、XM2,即随机选择软件组件的输入与软件组件的逻辑门的输入之间以及一些逻辑门的输出与其它逻辑门的输入之间的链路(表格GTW的定义)。软件组件的生成还包括定义软件组件的逻辑门的真值表GTT,以及使用加密密钥来加密这些真值表的每个值。根据示例,软件组件GC的逻辑门的真值表的每四个值G(=GTT[IN1{0}//IN2{0}])可以计算如下:
G=PF2(IN1,IN2,OV) (4)
当考虑与IN1、IN2和OV的有效值对应的二进制状态以及由逻辑门执行的逻辑操作时,对于输入IN1、IN2和输出OV的有效值的每种可能组合,PF2代表不可逆函数。根据公式(2)定义的示例,逻辑门的真值表的每四个值G可以计算如下:
其中,
因此,很难确定输入和输出值的二进制状态以及软件组件的逻辑门的功能。因此,不能容易地确定软件组件GC的功能。另外,软件组件只能在大量无效值中处理电路每个输入的两个有效值。因此,不可能将任何值都应用于软件组件的输入。关于乱码电路的更多细节,可以参考Mihir Bellare、Viet Tung Hoang、Phillip Rogaway于2012年10月1日的文档“乱码电路的基础(Foundations of Garbled Circuits)”。
由终端UT执行的黑客或恶意软件程序可能能够在步骤S10中获得用户输入的口令PC。然而,由于输入位置POSi必须与通过执行在步骤S23中发送到终端UT的软件组件GC而显示的键盘KYP和验证码CC相对应,因此知道口令不足以使黑客在步骤S21到步骤S32中通过认证。通过分析所显示的图像帧FRM或通过执行或分析软件组件,黑客或恶意软件只有非常短的时间以得到键盘键布局。
当服务器ASRV生成软件组件GC时,它可以决定在软件组件的线的值中使用另一个位位列来定义这些值的对应二进制状态。在逻辑门AGi的输入值中在所选择的位位列的位被用于选择逻辑门的真值表GTT中的数据,并且在软件组件GC的输出值PXi中在所选择的位位列的位被提取并应用于模块XRG。
在本文中描述的图示旨在提供对各种实施例的结构的一般理解。这些图示不旨在作为利用其中描述的结构或方法的装置、处理器和系统的所有元件和特征的完整描述。通过组合所公开的实施例,许多其它实施例或其组合对于在阅读本公开的本领域的普通技术人员而言是显而易见的。可以利用并从本公开中获得其它实施例,以使得可以在不背离本公开的范围的情况下进行结构和逻辑替换和改变。
在本文中公开的方法可以完全或部分地由可由用户终端UT的主处理器HP(CPU)执行的软件程序实现,和/或至少部分地由用户终端UT的图形处理器GP来实现。
此外,在本文中公开的方法不限于显示诸如具有随机选择的布局的键盘和验证码的敏感信息。实际上,这种显示的目的是检查用户是否知道与服务器ASRV共享的秘密数据,并且以仅可由人类感知的方式感知终端呈现的信息。替代的质询-响应方案可以在其它实施例中实现。根据实施例,所显示的消息MSG可以请求用户输入诸如所显示的验证码CC的数字的总和或相乘的组合。
除此之外或在另一个实施例中,所生成的帧可以包括与先前生成的帧的不同之处。
根据另一个实施例,通过设置图形处理器的像素强度、加或减像素颜色,像素刷新率或像素闪烁参数,可以直接在图形处理器中/由图形处理器来控制段的闪烁或闪动。
根据实施例,显示屏DSP可以与用户终端UT分离。例如,显示屏可以是智能手表、智能眼镜或虚拟现实或增强现实耳机中的一个,而用户终端可以是智能电话、平板计算机或笔记本计算机/台式计算机。在一些实施例中,显示器与用户终端之间的通信链路可以是无线的。例如,通信链路可以是蓝牙、Wi-Fi或任何其它无线点频率或无线通信技术中的一个或组合。
根据一些实施例,生物识别传感器与用户终端UT分离(例如,不是其一部分)。另外,可以单独或组合地使用各种传感器来获取生物识别数据BIOD。在心率监视器的示例中,智能手表可以提供生物识别传感器和用于显示生物识别质询的显示器。在另一个实施例中,可以使用单独佩戴的葡萄糖监视器。此外,在其它实施例中,心率监视器可以与热成像相机组合。在一些实施例中,生物传感器与用户终端之间的通信链路可以是无线的。在一些实施例中,一部分而不是所有通信链路可以使用安全协议。
可以使用除了将其显示在显示屏上以外的其它方式向用户发送质询。例如,可以使用诸如Yusuf Adriansyah于2010年4月29日的“简单音频加密(Simple AudioCryptography)”中描述的音频加密算法通过音频装置向用户发送质询。根据该算法,原始音频序列被分解成长度与原始音频序列相同的多个源音频序列,其方式是使得可以只通过同时播放通过分解生成的所有源音频序列来重建原始音频序列,并且使得如果缺少任何一个源音频序列,则很难重建原始音频序列。可以规定同时播放两个源音频序列,一个经由终端UT播放,另一个经由其它装置,诸如具有存储源音频序列的存储器和播放所存储的源音频序列的耳机,而无需收听它的终端麦克风。如果用户通过同时播放两个源音频序列而听到可理解的音频消息,则这意味着便携式设备播放的源音频序列对源音频序列做出了补充。
根据另一个实施例,用户在步骤S10中记录他的指纹。在步骤S27中,软件组件GC显示请求用户输入一个或两个特定指纹的消息,例如,拇指指纹和无名指指纹。使用段来显示该消息,如表示键标签KYL和验证码CC的数字。在步骤S28中,用户输入所请求的指纹,并且在验证步骤S30和步骤S31处,服务器ASRV将输入的指纹与在步骤S10之后存储的指纹进行比较。在此,共享秘密数据是指纹,并且将要由用户感知的信息是所请求的手指的指定。
此外,在本文中公开的方法不限于鉴于验证交易而对用户进行认证。在本文中公开的方法可被应用于向用户或从用户安全地发送秘密或敏感的信息,或者更一般地,可被应用于在非安全环境中安全地执行敏感性操作。
此外,在本文中公开的方法不限于包括使用单个用户终端来显示图像帧和秘密数据(PC,CC)的引入的方法。在本文中公开的方法可被应用于在另一个连接设备上安全地认证用户,帧图像被显示在用户终端上或者远程显示器上,诸如智能手表、虚拟或增强现实眼镜或镜片,或者被投影在表面上或以3D图像的形式投影,或者被显示在具有显示功能的任何物联网(IoT)设备上等。类似地,生物识别数据可被输入到与用户终端连接的另一个设备中。类似地,秘密数据可以在连接到用户终端的另一个设备中输入或者使用语音或手势来输入。因此,词语“用户终端”可以指定单个设备或设备组,包括没有显示器的终端、IoT设备、智能家庭终端,以及允许用户输入数据的任何输入终端。
可以通过语音或手势来控制用户终端UT。语音命令可以转换为命令。每个被识别的命令等同于POSi中的一个。键盘可以由任何其它表示来代替,诸如需要手势、跟随几何图形或跟踪点之间的链接的表示。此外,输入终端可以是3D输入终端,用户可以通过在空中的3D手势用该3D输入终端来进行交互。因此,位置POSi可以是空间中的3D坐标位置。
在其它实施例中,显示器可以是任何显示器,例如包括ATM、自动售货机、电视、公共显示器、投影显示器、虚拟显示器、3D显示器或全息图。在其它实施例中,终端可以是任何输入设备,例如包括触摸屏、游戏配件、手势获取系统、语音或声音命令系统。
在其它实施例中,图像帧FRM在不应用掩模IMSK的情况下生成,并且使用两个显示设备与掩模IMSK分开显示,两个显示设备中的一个是透明的,诸如眼睛透镜形式的显示设备,当所显示的图像与所显示的掩模IMSK叠加时,所显示的图像变得可理解,所显示的掩模的白色像素是透明的,而所显示的掩模的黑色像素是不透明的。
此外,在本文中公开的方法在防止篡改和逆向工程的软件组件的执行中引入随机化,该方法不限于在图像或图像帧中生成闪烁像素。更一般地,这些方法可被用于任何应用中,其中,在敏感软件功能、防止逆向工程和篡改,以及接收输入数据并提供输出数据的软件功能中需要随机状态。例如,这些方法可被应用于数据保护,而不使用有密钥被盗危险的加密或解密密钥。在该示例中,软件组件被配置为根据一组随机输入数据来提供受保护数据的一部分,每个随机输入数据具有两个可能的值。应用于软件组件的随机输入值的每个组合被用于计算受保护数据的对应部分。随机输入值的组合的数量定义了可以通过执行软件组件来计算的数据部分的数量。作为示例,要保护的数据可以是图像,并且这种图像的数据部分可以是图像的像素值或图像像素的颜色分量值,软件组件的执行提供了像素值或其一部分以及像素在图像中的位置(参见X.Arogya Presskila、P.Sobana Sumi于2014年3月在国际计算机科学与软件工程高级研究期刊,第3期,第4卷上发表的“云计算中的安全图像数据集(Secure Image Datasets in Cloud Computing)”)。每个通过应用于输入值的一个组合的软件组件的一次执行而计算的将要保护的数据部分可如所需要的那样小。例如,软件组件可被配置为通过一次执行高斯曲线的点或用于计算直方图的值,来提供与由软件组件计算的最高值对应的或者与在直方图中具有最高出现次数的值对应的数据部分值。当仅提供软件组件的输入数据的两个替代值的一部分时,仅可以使一部分受保护数据可访问,仅为软件组件的其它输入数据提供一个值。
此外,在本文中公开的方法不限于涉及认证服务器的实现。其它实现可以涉及诸如在图2中所示的安全处理器SE的用户终端内的安全单元,或者终端的主处理器HP内的安全域。在本文所公开的方法中,由服务器ASRV执行的所有操作都可以由这种安全单元执行。图23示出了由用户终端UT和链接到终端UT的主处理器HP的安全单元SE执行并且使得安全单元能够认证用户的认证步骤S41到步骤S44。在步骤S41中,终端UT向安全单元SE发送命令CMD,该命令在被安全单元执行之前需要用户认证。然后,如前所述,安全单元SE和终端UT执行步骤S22、步骤S23以及步骤S25到步骤S30。安全单元SE代替服务器ASRV执行步骤S22、步骤S23、步骤S26和步骤S30。然后,安全单元SE执行步骤S42到步骤S44。在步骤S42中,安全单元SE将用户输入的口令PC1和验证码CC1与由安全单元SE安全存储的对应的值PC和CC进行比较。如果由用户输入的口令PC1和验证码CC1与由安全单元SE存储的值PC和CC匹配,则安全单元SE执行步骤S43,其中,它执行在步骤S41中请求的命令CMD。在步骤S44中,安全单元SE发送命令CMD的执行报告RS。以此方式,只有在终端UT的用户对其授权的情况下,安全单元SE才执行命令CMD。
根据实施例,图23中的安全单元SE可以通过借助于诸如NFC(近场通信)或蓝牙TM的通信链路连接到用户终端UT的外部终端来实现或者可以被实现为借助于诸如NFC(近场通信)或蓝牙TM的通信链路连接到用户终端UT的外部终端的一部分。外部终端可以是销售点终端。
此外,在本文中公开的方法不限于包括仅具有两个输入和一个输出的门的乱码电路。具有三个或更多输入以及一个或多个输出或者接收具有多于两个的有效状态的数据的其它类型的门可以使用具有多于四个线的真值表来实现。因此,通过发送和选择输入RNi的可能值RNiV1和RNiV2中的一个而获得的随机性也可以通过在乱码电路的输入的三个或更多个有效值中发送和随机选择一个值来获得。
此外,在本文中公开的方法不限于通过乱码电路来实现软件组件。诸如包括混淆程序的软件组件的其它实现可用于隐藏加载在终端UT的主处理器中的程序的部分,和/或用于防止程序的敏感部分被未经授权的人揭露或修改。混淆程序的方法例如已在BennyApplebaumy、Zvika Brakerskiz于2015年1月12日在IACR-TCC发表的“经由复合次序分级编码的混淆电路(Obfuscating Circuits via Composite-Order Graded Encoding)”和JoeZimmerman于2014年9月30日在IACR发表的“如何直接混淆程序(How to ObfuscatePrograms Directly)”的文献中公开。
更一般地,可以通过将用诸如C或C++的语言编写的程序翻译成诸如VHDL或Verilog的电路设计语言来执行乱码电路的概念以获得包括逻辑门的逻辑或布尔电路。
此外,在本文中公开的方法不限于使用防止篡改和逆向工程的软件组件,诸如使用混淆或乱码电路方法生成的软件组件。作为这种应用的示例,在本文中公开的方法可用于执行不需要高安全性级别的操作,诸如数据隐私保护、视频游戏(例如,可用虚拟实况的管理)或医学眼睛测试。
此外,在本文中公开的方法不限于涉及掩模的实现,诸如用于解密软件组件的输出值的图像掩码IMSK掩模的实现。其它实现可以生成并执行直接输出将要显示的像素值的软件组件。另外,消息MSG可以在输出像素值中直接地提供。另外,掩码可以与软件组件或其结构和内容数据分开发送,例如,经由不同的发送装置,可选地在执行软件组件之后完全发送或分几部分发送。
此外,本文公开的方法可以用仅包括硬件键盘的用户终端UT来实现,所显示的帧FRM仅被显示以将其它键标签分配给物理键盘。因此,代替触摸显示屏位置来输入位置POSi,用户根据在所显示的帧FRM中示出的指定标签来激活键盘的硬件键。
在本文中用于标准显示屏的术语“像素”可被理解为坐标,用于2D显示器的2D坐标或者用于3D或立体显示器或投影显示器的3D坐标等。
此外,本公开和图示应被视为说明性的而非限制性的,并且所附权利要求旨在覆盖落入本说明书的真实精神和范围内的所有这种修改、增强和其它实施例或其组合。因此,所附权利要求的范围将由权利要求及其等同物的最宽泛的可允许解释来确定,并且不应受前述描述的约束或限制。

Claims (17)

1.一种用于认证用户的方法,所述方法包括:
从安全处理器(ASRV、SE)接收软件组件(GC、GC1)和所述软件组件(GC、GC1)的输入数据(ADl、RDk、INb、INc),所述软件组件被配置为生成包括对于所述用户可理解的信息(KYL、CC、ND)的图像帧(FRM),所述软件组件包括第一输入,所述第一输入被配置为接收第一输入数据(ADl、RDk),所述第一输入数据具有两个随机选择的有效值(AD1V1、AD1V2、RDkV1、RDkV2)以及无效值,所传输的输入数据包括所述第一输入数据的所述有效值;
多次执行以下操作:
选择所传输的输入数据中的所述第一输入数据的所述有效值中的一个;
通过将所传输的输入数据应用于所述软件组件的输入并且将所选择的有效值应用于所述软件组件的所述第一输入,执行所述软件组件,所述软件组件的所述执行根据所述第一输入的所选择的有效值生成具有处于可见或不可见状态的像素的所述图像帧并定义所述信息;
显示所述图像帧;
从所述用户获取响应,所述响应取决于所显示的图像帧中的所述信息;以及
向所述安全处理器发送所获取的响应。
2.根据权利要求1所述的方法,其中,用于显示第一图像帧(FRM)的所述第一输入数据的第一有效值根据由所述安全处理器提供的数据来选择,用于显示另一个图像帧的所述第一输入数据的所述有效值中的一个根据从所述用户获取的对先前显示的图像帧的响应来选择。
3.根据权利要求1所述的方法,其中,用于显示通过连续执行所述软件组件(GC、GC1)而生成的所述图像帧(FRM)的所述第一输入数据的所述有效值是随机选择的,并且定义每个生成的图像帧的数据签名被发送到所述安全处理器(ASRV、SE)。
4.根据权利要求1至3中任一项所述的方法,其中,所述软件组件(GC1)被配置为生成图像帧(FRM),其中使用所述图像帧中可见概率低于100%的随机像素(PXi)来显示所述信息,所述软件组件被多次执行以生成多个图像帧,所述多个图像帧以使得所述信息变得对于用户可理解的帧显示速率来显示。
5.根据权利要求1至4中任一项所述的方法,其中,所述信息:
包括根据所述第一输入数据排序的键盘的一系列标签,来自所述用户的所述响应包括由所述用户选择的所述键盘的键的键位置(POSi);或者
包括根据所述第一输入数据排序的键盘的一系列标签以及属于验证码的一个符号,来自所述用户的所述响应包括由所述用户选择的所述键盘的键的键位置(POSi);或者
指定生物识别质询,来自所述用户的响应包括由所述用户使用生物识别传感器输入的生物识别数据。
6.根据权利要求5所述的方法,其中,所述软件组件(GC1)被配置为响应于所述随机选择,提供在两个二进制状态中概率在12.5%和87.5%之间或者被设置为50%的一个二进制状态中的输出数据(PXi)。
7.根据权利要求1至6中任一项所述的方法,其中,所述软件组件(GC、GC1)被配置为存储多个图像帧配置,所述多个图像帧配置通过选择所述软件组件的输入数据的值来选择。
8.根据权利要求1至7中任一项所述的方法,其中,所述软件组件(GC)被配置为生成图像帧(FRM)的加密部分(MSG、CC、KYL),所述方法还包括:
执行所述软件组件;
使用从所述安全处理器(ASRV、SE)发送的解密掩码(IMSK)来解密每个生成的加密图像帧部分;
将每个解密的图像帧部分插入图像帧背景(BCKF)中以生成图像帧(FRM);以及
显示所生成的图像帧。
9.根据权利要求8所述的方法,还包括:
从所述用户获取与所显示的信息(KYL、CC)相关的响应(POSi);
向所述安全单元(ASRV、SE)发送所述响应;以及
当所述响应与所述信息对应并且与由所述用户和所述安全单元共享的秘密数据(PC)对应时,由所述安全单元认证所述用户。
10.根据权利要求1至9中任一项所述的方法,其中,所述软件组件被编码为包括电路输入(SGi、RNi、INi、INj)、电路输出(PXi、PXj)、逻辑门(AGi、XGi、XGj)和线的乱码电路(GC),每个逻辑门具有两个输入和一个输出,每个线具有第一端和第二端,所述第一端连接到所述电路输入中的一个或所述逻辑门输出中的一个,所述第二端连接到所述逻辑门输入中的一个或所述电路输出中的一个,所述乱码电路通过以下操作生成:针对每个所述线的每个二进制状态,选择有效数据;以及针对所述乱码电路的一个逻辑门,根据所述逻辑门的每个输入的每个有效数据、所述逻辑门的所述输出的每个有效数据和由所述逻辑门执行的逻辑操作来计算真值表值。
11.一种用户终端,被配置为:
从安全处理器(ASRV、SE)接收软件组件(GC、GC1)和所述软件组件(GC、GC1)的输入数据(ADl、RDk、INi、INj),所述软件组件被配置为生成包括对于所述用户可理解的信息(KYL、CC、ND)的图像帧(FRM),所述软件组件包括第一输入,所述第一输入被配置为接收第一输入数据(ADl、RDk),所述第一输入数据具有两个随机选择的有效值(AD1V1、AD1V2、RDkV1、RDkV2)以及无效值,所传输的输入数据包括所述第一输入数据的所述有效值;
多次执行以下操作:
选择所传输的输入数据中的所述第一输入数据的所述有效值中的一个;
通过将所传输的输入数据应用于所述软件组件的输入并且将所选择的有效值应用于所述软件组件的所述第一输入,执行所述软件组件,所述软件组件的所述执行根据所选择的有效值生成具有处于可见或不可见状态的像素的所述图像帧并定义所述信息;
显示所述图像帧;
从所述用户获取响应,所述响应取决于所显示的图像帧中的所述信息;以及
向所述安全处理器发送所获取的响应。
12.根据权利要求11所述的终端,被配置为执行在权利要求2至10中的一项所述的方法中由终端执行的操作。
13.根据权利要求11或12所述的终端,其中,所述安全处理器是连接到所述终端的主处理器(HP)的安全单元(SE)。
14.根据权利要求11或12所述的终端,其中,所述安全处理器属于通过数据传输网络(NT)链接到所述终端的远程服务器(ASRV)。
15.一种安全单元,被配置为执行在权利要求1至10中任一项所述的方法中由安全处理器执行的操作,其中,所述安全单元(SE)连接到终端(UT)的主处理器(HP)。
16.一种服务器,被配置为执行在权利要求1至10中任一项所述的方法中由安全处理器执行的操作,所述服务器(ASRV)通过数据传输网络(NT)链接到所述终端(UT)。
17.一种计算机程序产品,所述计算机程序产品能够被加载到计算机存储器中并且包括代码部分,所述代码部分在由计算机执行时配置所述计算机以执行权利要求1到10中任一项所述的方法。
CN201780066980.7A 2016-11-02 2017-10-31 用于保护从非安全终端执行的交易的方法 Pending CN109891418A (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
EP16196945.6A EP3319000A1 (en) 2016-11-02 2016-11-02 Method for securing a transaction performed from a non-secure terminal
EP16196950.6 2016-11-02
EP16196957.1 2016-11-02
EP16196947.2A EP3319067B1 (en) 2016-11-02 2016-11-02 Method for authenticating a user by means of a non-secure terminal
EP16196950.6A EP3319001A1 (en) 2016-11-02 2016-11-02 Method for securely transmitting a secret data to a user of a terminal
EP16196957.1A EP3319002B1 (en) 2016-11-02 2016-11-02 Method for securely performing a sensitive operation using a non-secure terminal
EP16196947.2 2016-11-02
EP16196945.6 2016-11-02
EP17172856.1 2017-05-24
EP17172856.1A EP3319069B1 (en) 2016-11-02 2017-05-24 Method for authenticating a user by means of a non-secure terminal
EP17195479.5 2017-10-09
EP17195479.5A EP3319070A1 (en) 2016-11-02 2017-10-09 Method for authenticating a user by means of a non-secure terminal
PCT/EP2017/077895 WO2018083088A1 (en) 2016-11-02 2017-10-31 Method for securing a transaction performed from a non-secure terminal

Publications (1)

Publication Number Publication Date
CN109891418A true CN109891418A (zh) 2019-06-14

Family

ID=61767971

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201780067275.9A Pending CN109891478A (zh) 2016-11-02 2017-10-31 用于保护从非安全终端执行的交易的方法
CN201780066980.7A Pending CN109891418A (zh) 2016-11-02 2017-10-31 用于保护从非安全终端执行的交易的方法
CN201711064864.XA Pending CN108021793A (zh) 2016-11-02 2017-11-02 用于借助于非安全终端认证用户的方法
CN201711065166.1A Pending CN108021800A (zh) 2016-11-02 2017-11-02 用于通过非安全终端认证用户的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780067275.9A Pending CN109891478A (zh) 2016-11-02 2017-10-31 用于保护从非安全终端执行的交易的方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201711064864.XA Pending CN108021793A (zh) 2016-11-02 2017-11-02 用于借助于非安全终端认证用户的方法
CN201711065166.1A Pending CN108021800A (zh) 2016-11-02 2017-11-02 用于通过非安全终端认证用户的方法

Country Status (5)

Country Link
US (9) US20180196952A1 (zh)
EP (4) EP3319069B1 (zh)
KR (2) KR20180048428A (zh)
CN (4) CN109891478A (zh)
WO (2) WO2018083089A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429971B1 (en) * 2016-06-03 2022-08-30 Jpmorgan Chase Bank, N.A. Systems, methods, and devices for integrating a first party service into a second party computer application
CN110494854B (zh) * 2017-03-24 2023-09-01 维萨国际服务协会 使用安全多方计算的认证系统
US11818249B2 (en) * 2017-12-04 2023-11-14 Koninklijke Philips N.V. Nodes and methods of operating the same
EP3528161A1 (en) * 2018-02-19 2019-08-21 Skeyecode Method for signing a transaction
US11042626B2 (en) * 2018-05-21 2021-06-22 Nextek Power Systems, Inc. Method of and system for authenticating a user for security and control
CN110661764A (zh) 2018-06-29 2020-01-07 阿里巴巴集团控股有限公司 安全多方计算协议的输入获取方法和装置
US10768951B2 (en) 2018-08-29 2020-09-08 Bank Of America Corporation Providing augmented reality user interfaces and controlling automated systems based on user activity information and pre-staging information
US11120496B2 (en) 2018-09-06 2021-09-14 Bank Of America Corporation Providing augmented reality user interfaces and controlling back-office data processing systems based on augmented reality events
US20200125705A1 (en) * 2018-10-19 2020-04-23 Ca, Inc. User authentication based on an association of biometric information with a character-based password
CN111639956B (zh) * 2018-11-16 2023-04-28 创新先进技术有限公司 提供和获取安全身份信息的方法及装置
US11374752B2 (en) * 2019-06-07 2022-06-28 Panasonic Avionics Corporation Secure transactions for in-flight entertainment systems
CN110516775B (zh) * 2019-07-11 2023-07-25 西安邮电大学 基于qr码用户秘密信息隐藏方法
GB201916413D0 (en) * 2019-11-11 2019-12-25 Mrb Corp Ltd Improved human verification
US11275945B2 (en) * 2020-03-26 2022-03-15 Varjo Technologies Oy Imaging system and method for producing images with virtually-superimposed functional elements
US10797866B1 (en) * 2020-03-30 2020-10-06 Bar-Ilan University System and method for enforcement of correctness of inputs of multi-party computations
US20230164142A1 (en) * 2020-04-10 2023-05-25 Nec Corporation Authentication server, authentication system, control method of authentication server, and storage medium
JPWO2022018973A1 (zh) * 2020-07-22 2022-01-27
EP3979102A1 (en) * 2020-09-30 2022-04-06 Rubean AG Electronic device for performing an authentication operation
WO2022079657A1 (en) * 2020-10-15 2022-04-21 Vea Technologies Ltd A method and system for authenticating a user
CN112565265B (zh) * 2020-12-04 2022-11-01 国网辽宁省电力有限公司沈阳供电公司 物联网终端设备间的认证方法、认证系统及通讯方法
US12021861B2 (en) * 2021-01-04 2024-06-25 Bank Of America Corporation Identity verification through multisystem cooperation
US11223652B1 (en) * 2021-01-27 2022-01-11 BlackCloak, Inc. Deception system
CN112836627B (zh) * 2021-01-29 2022-07-19 支付宝(杭州)信息技术有限公司 活体检测方法和装置
CN114285558B (zh) * 2021-12-24 2023-09-08 浙江大学 一种基于半可信硬件的多方隐私计算方法及装置
EP4369223A1 (en) * 2022-11-08 2024-05-15 Telefónica Innovación Digital, S.L.U. Multi-factor authentication method and system for virtual reality
FR3143790A1 (fr) * 2022-12-19 2024-06-21 Banks And Acquirers International Holding Procédé et système de saisie sécurisée d’un code secret au moyen d’un clavier

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006128876A2 (en) * 2005-06-01 2006-12-07 Hewlett-Packard Development Company, L.P. Software checking
US8209743B1 (en) * 2010-03-09 2012-06-26 Facebook, Inc. CAPTCHA image scramble
CN102714592A (zh) * 2009-06-24 2012-10-03 亚洲凯普托服务有限公司 产生可视密钥的方法和系统
EP2523140A1 (en) * 2011-05-12 2012-11-14 Konvax Corporation Secure user credential control
US20140040633A1 (en) * 2011-02-11 2014-02-06 Jean-Luc Leleu Secure transaction method from a non-secure terminal
US9483653B2 (en) * 2014-10-29 2016-11-01 Square, Inc. Secure display element

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US20020188872A1 (en) * 2001-06-06 2002-12-12 Willeby Tandy G. Secure key entry using a graphical user inerface
CN1682477A (zh) * 2002-09-09 2005-10-12 皇家飞利浦电子股份有限公司 图像加密方法和视觉解密设备
KR20060040698A (ko) * 2003-07-21 2006-05-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 영상 정렬
CA2509706A1 (en) * 2004-06-17 2005-12-17 Ronald Neville Langford Authenticating images identified by a software application
KR20070122515A (ko) * 2005-04-29 2007-12-31 오브리스트 클로저스 스위쩔런드 게엠베하 개봉 확인용 클로저
US8448226B2 (en) * 2005-05-13 2013-05-21 Sarangan Narasimhan Coordinate based computer authentication system and methods
US7484173B2 (en) * 2005-10-18 2009-01-27 International Business Machines Corporation Alternative key pad layout for enhanced security
KR100848642B1 (ko) * 2007-02-22 2008-07-28 고려대학교 산학협력단 영상 프레임을 암호화하는 방법과 복원하는 방법
US20080209227A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation User Authentication Via Biometric Hashing
JP4696099B2 (ja) * 2007-08-07 2011-06-08 日立オムロンターミナルソリューションズ株式会社 表示画像変換装置
CN101897165B (zh) * 2007-10-30 2013-06-12 意大利电信股份公司 数据处理系统中验证用户的方法
US8010782B2 (en) * 2008-01-18 2011-08-30 Sap Ag Method and system for mediated secure computation
US8456478B2 (en) * 2008-10-30 2013-06-04 Microchip Technology Incorporated Microcontroller with integrated graphical processing unit
JP4950315B2 (ja) * 2010-02-26 2012-06-13 楽天株式会社 データ生成装置、データ生成方法、及びデータ生成プログラム
WO2012033489A1 (en) * 2010-09-08 2012-03-15 Hewlett-Packard Development Company, L.P. Secure upgrade supplies and methods
WO2012107879A2 (en) * 2011-02-10 2012-08-16 Site Black Box Ltd. DISTINGUISH VALID USERS FROM BOTS, OCRs AND THIRD PARTY SOLVERS WHEN PRESENTING CAPTCHA
US8682750B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Method and apparatus for enabling purchase of or information requests for objects in digital content
US9485237B1 (en) * 2011-10-19 2016-11-01 Amazon Technologies, Inc. Confidence-based authentication
CN102340402B (zh) * 2011-10-28 2013-09-18 中国人民解放军国防科学技术大学 基于视觉密码的身份认证方法
US20130301830A1 (en) * 2012-05-08 2013-11-14 Hagai Bar-El Device, system, and method of secure entry and handling of passwords
US20150067786A1 (en) * 2013-09-04 2015-03-05 Michael Stephen Fiske Visual image authentication and transaction authorization using non-determinism
US10048861B2 (en) * 2012-11-27 2018-08-14 Thomson Licensing Adaptive virtual keyboard
US9741085B2 (en) * 2013-03-14 2017-08-22 Artificial Intelligence Research Group Limited System and method of encoding content and an image
US9003196B2 (en) * 2013-05-13 2015-04-07 Hoyos Labs Corp. System and method for authorizing access to access-controlled environments
JP5801348B2 (ja) * 2013-06-10 2015-10-28 レノボ・シンガポール・プライベート・リミテッド 入力システム、入力方法およびスマートフォン
CN103345602B (zh) 2013-06-14 2015-08-19 腾讯科技(深圳)有限公司 一种客户端代码完整性检测方法、装置和系统
US9582716B2 (en) * 2013-09-09 2017-02-28 Delta ID Inc. Apparatuses and methods for iris based biometric recognition
US9076231B1 (en) * 2014-02-18 2015-07-07 Charles Hill Techniques for displaying content on a display to reduce screenshot quality
WO2015196122A1 (en) * 2014-06-19 2015-12-23 Contentguard Holdings, Inc. Rendering content using obscuration techniques
US10846696B2 (en) * 2015-08-24 2020-11-24 Samsung Electronics Co., Ltd. Apparatus and method for trusted execution environment based secure payment transactions
EP3144798B1 (en) * 2015-09-18 2020-12-16 Canon Kabushiki Kaisha Image processing apparatus, method of controlling the same, and storage medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006128876A2 (en) * 2005-06-01 2006-12-07 Hewlett-Packard Development Company, L.P. Software checking
CN102714592A (zh) * 2009-06-24 2012-10-03 亚洲凯普托服务有限公司 产生可视密钥的方法和系统
US8209743B1 (en) * 2010-03-09 2012-06-26 Facebook, Inc. CAPTCHA image scramble
US20140040633A1 (en) * 2011-02-11 2014-02-06 Jean-Luc Leleu Secure transaction method from a non-secure terminal
US20160085974A1 (en) * 2011-02-11 2016-03-24 Jean-Luc Leleu Secure transaction method from a non-secure terminal
EP2523140A1 (en) * 2011-05-12 2012-11-14 Konvax Corporation Secure user credential control
US9483653B2 (en) * 2014-10-29 2016-11-01 Square, Inc. Secure display element

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIMMO JÄRVINEN 等: "Garbled Circuits for Leakage-Resilience: Hardware Implementation and Evaluation of One-Time Programs", 《RESEARCHGATE》 *

Also Published As

Publication number Publication date
CN109891478A (zh) 2019-06-14
CN108021793A (zh) 2018-05-11
KR20180048429A (ko) 2018-05-10
US20180165443A1 (en) 2018-06-14
KR20180048428A (ko) 2018-05-10
US20180198784A1 (en) 2018-07-12
US10565357B2 (en) 2020-02-18
US20190260747A1 (en) 2019-08-22
US20180198774A1 (en) 2018-07-12
US20190260748A1 (en) 2019-08-22
EP3319069A1 (en) 2018-05-09
US20180196952A1 (en) 2018-07-12
EP3535680A1 (en) 2019-09-11
US20180145827A1 (en) 2018-05-24
CN108021800A (zh) 2018-05-11
WO2018083089A1 (en) 2018-05-11
EP3319069B1 (en) 2019-05-01
EP3535746A1 (en) 2019-09-11
US20180196927A1 (en) 2018-07-12
WO2018083088A1 (en) 2018-05-11
US20180144112A1 (en) 2018-05-24
EP3319070A1 (en) 2018-05-09

Similar Documents

Publication Publication Date Title
US10565357B2 (en) Method for securely transmitting a secret data to a user of a terminal
US11036845B2 (en) Authentication methods and systems
US20160127134A1 (en) User authentication system and method
US20180240100A1 (en) Method for securing a transaction from a non-secure terminal
KR20110119521A (ko) 비밀번호 키의 이동값을 이용하는 비밀번호 안전 입력 시스템 및 그 비밀번호 안전 입력 방법
US20190258829A1 (en) Securely performing a sensitive operation using a non-secure terminal
EP3319067B1 (en) Method for authenticating a user by means of a non-secure terminal
EP3319001A1 (en) Method for securely transmitting a secret data to a user of a terminal
EP3319000A1 (en) Method for securing a transaction performed from a non-secure terminal
WO2019158397A1 (en) Method for signing a transaction
EP3319068A1 (en) Method for securely transmitting a secret data to a user of a terminal
EP3594838A1 (en) Method for recovering a secret key securely stored in a secure element
EP3319002B1 (en) Method for securely performing a sensitive operation using a non-secure terminal
EP3319269A1 (en) Method for securely performing a sensitive operation using a non-secure terminal

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190614

WD01 Invention patent application deemed withdrawn after publication