CN108021831A - 用于将机密数据安全地传输给终端的用户的方法 - Google Patents
用于将机密数据安全地传输给终端的用户的方法 Download PDFInfo
- Publication number
- CN108021831A CN108021831A CN201711061891.1A CN201711061891A CN108021831A CN 108021831 A CN108021831 A CN 108021831A CN 201711061891 A CN201711061891 A CN 201711061891A CN 108021831 A CN108021831 A CN 108021831A
- Authority
- CN
- China
- Prior art keywords
- terminal
- user
- component software
- data
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000000007 visual effect Effects 0.000 claims abstract description 17
- 230000002085 persistent effect Effects 0.000 claims abstract description 10
- 230000004913 activation Effects 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 230000001413 cellular effect Effects 0.000 description 5
- 230000005611 electricity Effects 0.000 description 5
- 208000026760 granular corneal dystrophy type I Diseases 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001256 tonic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C5/00—Ciphering 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2103—Challenge-response
Abstract
本发明涉及一种用于将机密数据安全地传输给终端的用户的方法,所述方法包括:由用户终端从安全处理器接收软件组件,所述软件组件防止篡改和逆向工程并且被配置为生成相邻像素组(SG),所述像素组处于可见或不可见状态的概率低于100%;由所述用户终端以帧显示刷新速率来执行所述软件组件,以便以所述显示刷新速率来生成所述像素组;将通过所述软件组件的每次执行生成的所述像素组插入到一个相应图像帧(FRM)中;以及激活以所述帧显示刷新速率来显示所述图像帧,所述图像帧包括由所述像素组形成的机器不可识别的信息(KYL、CC),由于所述人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
Description
技术领域
本发明涉及一种用于从非安全终端安全地认证用户、以及用于基于此类用户认证执行涉及此类非安全终端和远程服务器的安全交易的方法和设备。
背景技术
期望执行从诸如智能电话、个人计算机、数字平板计算机之类的移动终端、或者任何其它已连接设备(包括属于物联网(IoT)的设备)(不确定这是相关的,因为所要求保护的方法需要人)启动的交易,例如电子商务交易或资金转账。但是,这产生安全问题,特别是因为终端的处理器(CPU)可能执行“恶意软件”。恶意软件可以能够访问可由处理器访问的所有或部分存储器,并且因此可以被恶意地配置为监视由终端执行的任何交易,并恢复在这些交易期间操纵的任何机密数据以便通过网络传输。
为了确保此类交易的安全性,已经提出将加密计算委托给专用安全元件,例如UICC(“通用集成电路卡”)卡的处理器,UICC卡例如包括手机通常配备的SIM(用户识别模块)卡。为了能够执行一个或多个支付应用,安全处理器必须能够存储与支付应用一样多的机密加密密钥。但是,将应用加载到安全处理器的存储器中是一种需要高度安全的复杂操作。具体地说,它涉及诸如可信服务管理器之类的外部各方。因为SIM卡由蜂窝电话运营商发行,所以后者可能拒绝将此类应用安装在卡中。此外,在发生被盗的情况下,或者在电话维修期间,SIM卡的处理器可能被寻求发现存储在SIM卡存储器中的密钥的黑客攻击。
此外,访问安装在SIM卡的处理器中的安全功能通常需要借助连接到终端的主处理器的小键盘或触敏表面来输入密码(PIN码)。在传统配置中,由用户输入的密码必然经过主处理器。由主处理器执行的恶意软件因此能够访问该密码。
由申请人提交的专利申请WO2012/107698公开一种使用终端的图形处理器作为执行交易的安全元件的方法。该方法包括以下步骤:在终端的图形处理器与认证服务器之间建立安全通信链路、以及显示具有以随机顺序布置的键的虚拟小键盘。通过连续显示其中键的标记不可识别的互补帧,使用视觉加密显示小键盘的图像,由于用户的视网膜残留(retinal remanence),互补帧被用户的视觉系统组合成可识别的图像。以这种方式,即使在终端的主处理器上运行的恶意程序能够访问由用户在密码输入期间触摸的键的位置,该恶意程序也不能通过获得连续屏幕截图来确定哪些标记对应于被触摸键。
但是,该方法需要重要的计算资源,所有便携式设备(例如市场上的所有现有智能电话)中都未提供这些资源。
为了保护使用连接到网站的终端执行的交易,已提出使用一次性密码,每次需要验证交易时将一次性密码传输给用户。根据第一解决方案,经由不同的通信通道(例如经由电话链路或SMS(短消息服务))将一次性密码传输给用户,用户需要在终端上输入所接收的密码以便验证交易。另一种已知的解决方案向每个用户提供额外硬件设备,该设备借助诸如密码或生物数据之类的凭证,在用户认证之后生成一次性密码。对于并非始终在附近具有电话或移动或无线网络覆盖或该硬件设备(当需要它们以便验证交易时)的用户,这些解决方案令人烦恼。需要额外硬件设备的解决方案对于银行组织而言成本高昂。此外,使用由SMS传输的密码的解决方案不能提供足够高的安全级别,因为它已经被成功攻击。
因此,可期望提出一种用于借助非安全用户终端认证用户的方法。还可期望保护由用户输入的机密数据和通过此类非安全终端传输的交易数据。此外,可期望使提出的方法与所有现有终端兼容,甚至与低计算能力的终端兼容。
因此,可期望提出一种用于借助非安全用户终端将机密数据安全地传输给用户的方法。还可期望保护由用户输入的机密数据和通过此类非安全终端传输的交易数据。此外,可期望使提出的方法与所有现有终端兼容,甚至与低计算能力的终端兼容。
发明内容
公开一种用于将机密信息安全地传输给用户的方法,所述方法包括:由用户终端从安全处理器接收软件组件,所述软件组件防止篡改和逆向工程并被配置为生成具有相邻像素的像素组,每个像素组具有可见和不可见状态并且处于所述可见或不可见状态的概率低于100%;由所述用户终端以对应于帧显示刷新速率的速率来执行所述软件组件,以便以所述显示刷新速率来生成所述像素组;将通过所述软件组件的每次执行生成的所述像素组插入到一个相应图像帧中;以及激活以所述帧显示刷新速率来显示所述图像帧,所述图像帧包括由所述像素组形成的机器不可识别的信息,由于人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
根据一个实施例,所述软件组件被编码为包括电路输入端、电路输出端、逻辑门和线的乱码电路,每个逻辑门具有两个输入端和一个输出端,每个线具有第一端和第二端,所述第一端连接到所述电路输入端之一或所述逻辑门输出端之一,所述第二端连接到所述逻辑门输入端之一或所述电路输出端之一,通过以下操作生成所述乱码电路:针对每个所述线的每个二进制状态,选择有效数据;以及针对所述乱码电路的一个逻辑门,根据该述逻辑门的每个输入端的每个有效数据、该逻辑门的所述输出端的每个有效数据以及由该逻辑门执行的逻辑运算来计算真值表值。
根据一个实施例,所述软件组件针对要生成的每个像素组包括一个像素组生成电路,每个生成电路包括第一逻辑门和一组第二逻辑门,所述第一逻辑门将第一输入数据组合到随机选择的第二数据并且向每个所述第二逻辑门的第一输入端提供输出数据,每个所述第二逻辑门的第二输入端接收第三输入数据,所述第二逻辑门的每个所述输出端提供所述像素组的一个像素值。
根据一个实施例,所述像素组生成电路之一包括多个第一逻辑门,所述多个第一逻辑门接收第一输入数据和随机选择的第二输入数据,并且向每个所述第二逻辑门提供所述输出数据。
根据一个实施例,每个像素组在所述图像帧中具有随机选择的位置和/或方向和/或形状。
根据一个实施例,每个像素组形成一个段,由所述像素组形成的所述段被布置为形成符号或数字或字母数字字符,每个所述段在所述显示的图像帧中可见的概率低于100%。
根据一个实施例,所述软件组件被配置为以介于12.5%与87.5%之间的概率提供处于两个二进制状态之一的所述输出数据,所述方法进一步包括根据用户体验水平调整用于提供处于所述两个二进制状态之一的所述输出数据的概率。
根据一个实施例,所述软件组件被配置为生成图像帧的已加密图像部分,所述已加密图像部分包括像素,所述像素处于两种备选二进制状态之一的概率低于100%,所述方法进一步包括:由所述用户终端使用传输到所述用户终端的解密掩码,通过将每个所生成的已加密图像部分的每个像素与所述解密掩码的相应像素组合,对每个已加密图像部分进行解密;由所述用户终端将已解密图像部分插入到图像帧背景中,以便以所述显示刷新速率来生成所述图像帧;以及由所述用户终端激活所生成的图像帧的显示,所显示的图像帧包括由在所显示的图像帧中可见的概率低于100%的像素形成的机器不可识别的信息,由于所述人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
实施例还可以涉及一种用于将机密数据从用户安全地传输到安全处理器的方法,所述方法包括:根据先前定义的方法,借助用户终端向用户安全地显示机密质询;获得由所述用户输入的与所显示的机密质询相关的数据;以及由所述用户终端将由所述用户输入的所述数据传输到所述安全处理器,所述用户知晓的所述机密数据能够从由所述用户输入的所述数据和从所述机密质询来确定。
实施例还可以涉及一种用户终端,其被配置为:从安全处理器接收软件组件,所述软件组件防止篡改和逆向工程并被配置为生成像素组,所述像素处于可见或不可见状态的概率低于100%;以对应于帧显示刷新速率的速率来执行所述软件组件,以便以所述显示刷新速率来生成所述像素组;将通过所述软件组件的每次执行生成的所述像素组插入到一个相应图像帧中;以及激活以所述帧显示刷新速率来显示所述图像帧,所述图像帧包括由所述像素组形成的机器不可识别的信息,由于人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
根据一个实施例,所述终端被配置为执行由先前限定的方法中的终端执行的操作。
根据一个实施例,所述安全处理器是连接到所述终端的主处理器的安全元件。
根据一个实施例,所述安全处理器属于通过数据传输网络链接到所述终端的远程服务器。
实施例还可以涉及一种安全元件,其被配置为执行由先前限定的方法中的安全处理器执行的操作,所述安全元件连接到终端的主处理器。
实施例还可以涉及一种服务器,其被配置为执行由先前限定的方法中的安全处理器执行的操作,所述服务器通过数据传输网络链接到所述用户终端。
实施例还可以涉及一种计算机程序产品,其可加载到计算机存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以便执行由先前限定的用户终端执行的操作。
附图说明
参考以下附图和说明,可以更好地理解所述方法和/或设备的示例。使用以下附图描述非限制性和非穷举的说明,这些附图是:
图1是执行与远程服务器的交易的用户终端的框图;
图2是用户终端的框图;
图3是根据一个实施例的由用户终端、认证服务器以及应用服务器执行的初始化步骤的顺序图;
图4是示出根据一个实施例的认证步骤的顺序图;
图5是根据一个实施例的由认证服务器管理的数据库的框图;
图6A和6B分别示出根据一个实施例的由用户终端显示的图像帧和能够由用户终端的用户观察到的对应合成图像(resultant image);
图7示出根据一个实施例的具有由用户终端叠加显示的图像帧的一部分、由用户终端显示的合成图像帧的对应部分、以及能够由用户终端的用户观察到的合成图像的对应部分的两个层;
图8是根据一个实施例的由用户终端执行的应用程序的框图;
图9是根据一个实施例的由用户终端中的软件实现的电路的框图;
图10是根据一个实施例的描述在用户终端中实现的电路的数据库的框图;
图11是示出根据一个实施例的为了显示图6A的图像帧而由应用程序执行的处理的框图;
图12是根据另一个实施例的图9的电路的一部分的框图;
图13是示出根据另一个实施例的认证步骤的顺序图。
具体实施方式
在附图中,相同参考符号可以指不同图中的相同部分,除非另外指定。
在下文中,术语“安全”是根据其对所属技术领域的普通技术人员的一般含义采用的,并且在不同实施例中,其包含由技术产生的安全性,这些技术例如包括加密、或者用于将信息与公众隔离或保护信息免受未授权访问或操作的其它类型的软件或硬件控制。表达“安全通信”和“安全通信链路”指以下通信:这些通信使用公钥/私钥对、或者具有在通信点之间共享的密钥的对称密钥加密进行加密。“受保护通信”还可以涉及虚拟专用网络、以及用于在通信点之间建立经认证和经加密通信的其它方法和技术。
图1示出能够通过通信网络NT执行与远程服务提供方服务器或应用服务器SSRV的交易的用户终端UT。在下文中,术语“用户终端”将是同义的,并且指能够与一个或多个远程服务器(例如应用服务器和服务提供方服务器)通信的任何设备。因此,用户终端可以是例如移动电话、智能电话、个人计算机、数字平板计算机或包括通信和显示能力的任何设备。这两种功能还可以由两个或数个设备提供,前提是这些设备被安全地关联和/或链接。通信网络可以包括诸如因特网、移动或蜂窝网络、无线网络之类的IP(网际协议)网络、以及能够用于在用户终端与远程服务器之间建立通信链路的任何种类的网络。
根据一个实施例,认证服务器ASRV被配置为实现一种方法,该方法用于在涉及应用或服务提供方服务器SSRV和用户终端UT的交易期间,基于双因素认证方案来认证用户。
图2示出包括通信电路NIT的常规终端UT,NIT用于通过诸如网络NT之类的传输网络与诸如服务器ASRV之类的远程服务器通信。终端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、BluetoothTM、或者任何其它射频或无线通信方法);和/或任何其它有线或无线连接电路,它们可以链接到诸如因特网之类的数据传输网络。
图3示出用于注册要用于认证用户以验证交易的用户终端UT的注册步骤S1至S14。步骤S1至S7能够被执行一次。在步骤S1,用户将用户终端OT连接到服务提供方的服务器SSRV(例如连接到服务提供方的网站),并且向服务器SSRV提供凭证,例如用户标识符UID和对应密码UPW。在步骤S2,由终端OT将用户凭证UID、UPW传输到服务器SSRV。在步骤S3,服务器SSRV检查所接收的凭证UID、UPW的一致性,并且如果它们对应于有效的注册用户,则服务器SSRV向认证服务器ASRV发送注册请求RGRQ,注册请求RGRQ包含用户标识符UID和与服务提供方服务器SSRV相关的服务标识符SID(步骤S4)。保护服务器SSRV与ASRV之间的通信链路,以使得黑客不能取得传输的数据。由服务器ASRV执行的以下步骤由服务器ASRV的安全处理器执行或者在该安全处理器的安全域内执行。此外,终端OT与服务器SSRV之间以及终端UT与服务器ASRV之间的链路不需要是安全链路。
在步骤S4和S5,认证服务器ASRV生成一次性链路令牌LTK(专用于在步骤S2标识的用户注册),并且响应于注册请求RGRQ将LTK传输到服务器SSRV。链路令牌LTK在所接收的用户标识符UID与服务标识符SID之间建立链路。链路令牌LTK具有时间有限的有效性,该有效性可以被固定为数分钟与数小时之间的值。在步骤S6,服务器SSRV接收链路令牌LTK并将其传输到终端OT。在步骤S7,终端OT显示链路令牌LTK。
步骤S8至S13被连续执行。在步骤S8,用户在要用于认证并涉及认证服务器ASRV的用户终端UT中,下载和/或安装和/或启动专用于或涉及用户认证的应用APP。终端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。消息RP包含用户标识符UID和注册状态,注册状态取决于在步骤S13执行的链路令牌的有效性检查。
如果在步骤S13执行的检查成功,则用户终端UT由服务器ASRV定期注册,并且因此能够用作与用户关联的第二认证因素,由服务提供方服务器SSRV对用户的认证被视为用户的第一认证。
图4示出认证步骤S21至S32,连续执行这些步骤以便在由应用APP进行的交易期间认证用户、或者用于执行需要认证用户的该应用的操作。在认证过程期间,用户终端UT已例如通过执行图3的步骤S1至S15而由认证服务器ASRV预先注册,这可以在单独的初步过程中完成。在步骤S21,服务提供方服务器SSRV将认证请求ARQ传输到认证服务器ASRV。认证请求ARQ包含服务的标识符SID、交易中涉及的用户的标识符UID、以及可选地包含要向用户显示并呈现与要由用户验证的交易相关的信息(例如要支付的金额)的消息MSG。认证请求ARQ还可以包含地址SURL,其中认证结果必须由认证服务器ASRV传输。
在步骤S22,认证服务器ASRV接收请求ARQ,并且生成唯一交易标识符TID。认证服务器ASRV进一步在数据库UDB中搜索对应于用户标识符UID的设备标识符DID,并且生成优选地为一次性的交易验证码CC、以及用于对应于在数据库UDB中发现的设备标识符DID的每个用户终端UT的不同专用软件组件GC。因为软件组件GC被设计为显示验证码CC,所以它特定于该代码。在步骤S23,服务器ASRV向终端UT发送加密形式的结构和内容数据GCD(其定义软件组件GC并且包括软件组件的输入数据)、要应用于由软件组件电路生成的图像帧部分的最终掩码IMSK、以及要用于执行软件组件的加密数据GCK。在步骤S24,服务器ASRV将确认消息ACK发送到服务器SSRV,该消息包含用户标识符UID和交易标识符TID。在步骤S25,由终端UT执行的应用APP接收在步骤S23传输的与软件组件GC相关的数据GCD、IMSK、GCK,并且将确认消息AKM发送到服务器ASRV。如果应用APP当前没有在终端UT上运行,则与软件组件相关的数据的接收可以触发应用APP的执行。在步骤S26,服务器ASRV向终端UT发送用于执行软件组件GC的请求RGC。在步骤S27,通知RGC的接收触发由应用APP执行软件组件GC,软件组件GC显示图像帧,这些图像帧显示例如具有键的小键盘、消息MSG和一次性交易验证码CC(例如两个或更多数字)。
根据一个实施例,小键盘的键以随机选择的布局被布置在所显示的帧中,并且在每个帧中仅显示部分键标记和部分验证码,以使得键标记和验证码仅对于人类视觉系统可识别(由于人类视觉系统的暂留性),而在显示屏DSP的屏幕截图中不可识别。根据一个实施例,验证码CC叠加在消息MSG上(或反之亦然),以使得不能在不干扰验证显示的情况下改变消息。
在步骤S28,终端UT的用户输入密码PC和所显示的验证码CC。在智能电话的示例中,用户使用所显示的小键盘,并且触摸所显示的小键盘的键的对应位置POSi。在步骤S29,应用APP将由用户选择的位置POSi序列与设备标识符DID一起传输到服务器ASRV。在步骤S30,服务器ASRV确定对应于由用户键入的位置POSi的密码PC1和代码CC1。因为用于输入位置POSi的小键盘由服务器ASRV生成的软件组件GC来显示,所以服务器ASRV知道显示的小键盘布局并且因此能够确定对应于位置POSi的键标记,并且因此能够确定由用户键入的密码和验证码的值。在步骤S31,服务器ASRV检查输入的密码PC1和验证码CC1与存储在数据库UDB中的与设备标识符DID关联的密码和验证码(PC、CC)的一致性。出于安全原因,数据库UDB可以仅存储散列值HPC而不是在步骤S10输入的密码PC的明文值,通过以下操作执行密码PC的比较操作:将散列函数应用于键入的密码PC1,并且将散列函数的结果与存储在数据库UDB中的密码PC的散列值HPC相比较。在步骤S32,服务器ASRV使用地址SURL向服务提供方服务器SSRV传输认证响应,该认证响应包含用户标识符UID和在步骤S31执行的比较的结果。以这种方式,认证对应于标识符UID的用户,并且仅当键入的密码PC1和验证码CC1与存储在数据库UDB中的密码PC和对应于在步骤S23由服务器ASRV发送到用户终端UT的软件组件GC的验证码CC相匹配时,才可以验证交易TID。
在一个实施例中,通过使用两个不同软件组件执行两次步骤S27至S30来执行步骤S10的密码PC的输入,以便从用户获得两个密码。在每次执行步骤S27至S30之后,检查验证码CC1,并且仅当由用户输入的验证码CC1与由执行一个软件组件GC的用户终端UT显示的验证码CC相同时,服务器ASRV才验证由用户输入的密码PC1。在两次成功执行步骤S27至S30之后(每次均提供已验证密码PC1),比较在第一次和第二次执行步骤S27至S30期间输入的已验证密码PC1,并且如果它们完全相同,则将密码PC1存储在数据库UDB中以便将其分配给用户终端UT。此外,仅在将由用户输入的密码PC1存储在数据库UDB中之后,才执行步骤S11至S15。以这种方式,仅将由用户键入的位置POSi从用户终端UT传输到服务器ASRV。因此,安装在终端UT中的恶意软件或服务器ASRV与用户终端UT之间的中间人攻击不能在不执行软件组件的情况下发现键入的代码PC和CC。如果发生这种情况,则执行攻击的黑客必须将消息ARP发送到服务器ASRV(如在步骤S29)。因此,服务器ASRV可能针对同一交易或从同一用户终端UT接收两个消息ARP,一个来自经认证的用户,一个来自黑客。在这种情况下,服务器ARSV能够决定使交易无效或加标志或执行与该事件相关的任何其它具体动作。
根据一个实施例,由用户通过另一个传输通道将消息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中删除对应于已经结束的交易的记录,但可以保留这些记录以便用于统计目的或确保每个交易的单一性。根据另一个实施例,每个软件组件能够用于预定义数量的认证或在预定义的时段内使用。
可以通过将所接收的链路令牌LTK与在步骤S4存储在表LNK中的令牌相比较,执行在步骤S13检查所接收的链路令牌的操作。必须针对具有与在步骤S12由服务器ASRV接收的设备标识符DID对应的设备的用户标识符UID,并且根据表DEV,在表LNK的记录中检索所接收的链路令牌。如果不是这种情况,则所接收的链路令牌被视为无效,并且不在表DEV中注册用户终端UT。
图6A示出当用户终端UT执行软件组件GC时由用户终端UT显示的图像帧FRM的一个示例。图像帧FRM包括横幅(banner)帧BNF,其显示消息MSG和叠加在消息MSG上的一次性代码CC。图像帧FRM进一步包括小键盘图像帧KYPF,其显示例如十二键的小键盘,小键盘的每个键都显示有向用户指示键功能的标记KYL。小键盘包括擦除键“C”和验证键“V”、以及对应于数字并且具有特定于生成图像帧FRM的软件组件GC的布局的十个键。图像帧FRM可以进一步包括显示区域FBD,其中每次用户触摸一个新的键KY时都显示一个点。在图6A的示例中,显示区域FBD显示用户已经键入三个键。
在图6A的示例中,小键盘包括四行,每行三个键,小键盘的第一行包括(从左到右)数字“9”、“3”和“6”,第二行包括数字“2”、“0”和“1”,第三行包括数字“4”、“7”和“8”,并且第四行包括验证键“V”、数字“5”和擦除键“C”。根据要显示的键标记KYL,每个数字键的标记KYL由数个段SG(例如七个段)显示(可见或不可见)。根据一个实施例,为了防止使用终端UT的屏幕截图功能获得小键盘布局,在由软件组件GC生成的每个图像帧中仅显示每个键KY中的可见段的一部分。为此,要显示的每个可见段存在于由软件组件GC生成的图像帧FRM中的概率低于100%,例如等于50%。由于人类视觉系统的暂留性,人类视觉系统组合由终端UT相继显示的图像帧。因此,所显示的键标记KYL对于用户变得可识别,但不能使用屏幕截图功能被捕获。图6B示出可由人类视觉系统感知的显示的图像IMG,此时以足够高的频率(大于30Hz)(例如以60Hz)显示由软件组件GC生成的图像帧FRM,以使得每16.6毫秒(ms)显示由软件组件生成的新帧。如图6B的示例中所示,当以低于100%的概率将键标记的要显示的可见段插入帧FRM中时,键标记KYL对用户显示为灰色。
图7在顶部示出由软件组件GC产生并且由终端UT显示的横幅帧BNF的两个叠加层的一个示例。图7的中央部示出所生成和显示的横幅帧。图7的底部示出能够由用户感知的横幅BN。横幅帧BNF的第一层(在图7的左上方)包括要显示的消息MSG“Order:transfer xx€ to yyyy(订单:向yyyy转账xx欧元)”。第二层(在图7的右上方)包括对应于要由用户在终端UT中输入的验证码CC的两位数字。使用数个段SG(例如七个段)显示验证码CC的每个数字,这些段根据要显示的数字而被显示或不被显示。为了防止使用终端UT的屏幕截图功能获得验证码CC,在由软件组件GC生成的每个图像帧FRM中仅显示可见段SG的一部分,以使得要显示的每个可见段SG存在于由软件组件GC生成的图像帧FRM中的概率低于100%,例如等于50%。第一和第二层的像素可以通过异或运算组合在一起。因此,在如图7的中央部中所示的生成的横幅帧BNF中,当以不同于背景颜色的颜色显示消息和段时,以背景颜色显示属于消息MSG和验证码CC的段两者的像素。
图7的底部示出能由人类视觉系统感知的所显示的横幅BN,此时以足够高的频率(大于30Hz)(例如以60Hz)显示由软件组件生成的图像帧FRM,以使得每16.6毫秒显示新帧FRM。当以低于100%的概率将要显示的可见段插入横幅帧BNF中时,验证码CC的两个数字标记DL对用户显示为灰色(在图7的示例中)。
根据一个实施例,要显示的每个数字KYL、DL的可见和不可见段以相应概率出现在帧FRM中,以使得所显示的数字对于人类视觉系统可识别(由于人类视觉系统的暂留性)。例如,所生成的软件组件GC被配置为以0至15%的概率显示不可见段,并且以50至100%的概率显示可见段。可以以介于50与100%之间的相应概率显示形成键标记KYL或验证码CC的数字的可见段,并且以介于0与15%之间的相应概率显示键标记或验证码CC的数字中的不可见段。可以根据帧显示频率来调整形成键标记和验证码CC的数字的段的显示概率,以使得所显示的数字的标记对于人类视觉系统保持可识别。当分别以图像帧的背景颜色或不同于背景颜色的颜色显示段或像素时,段或像素在图像帧FRM中不可见或可见。背景颜色由所考虑的段SG周围的像素颜色定义,并且可以根据段在图像帧FRM内的位置而变化。
显示的小键盘KYPF可能不需要具有验证键“V”,当用户输入要键入的密码PC和验证码CC的最后一个数字时,执行键入的代码的验证。例如,如果密码PC包括四个数字并且验证码CC包括两个数字,则当用户输入六个数字时,可以结束软件组件GC的执行。可以管理取消键“C”,以便删除最后一个键入的数字或所有先前键入的数字。可以通过擦除显示区域FBD中的一个或所有点,向用户显示取消键“C”的作用。
图8示出根据一个实施例的应用APP的功能架构。应用APP包括管理模块MGM、初始化模块INM、认证模块AUTM、链接模块LKM、软件组件执行模块GCM。管理模块MGM通过通信电路NIT控制其它模块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的输入值并且执行软件组件GC。模块GCM产生在终端UT的显示屏DSP上显示的图像帧FRM。
图9示出根据一个实施例的软件组件GC的一个示例。软件组件GC是被加密为乱码电路的软件实现的布尔电路。软件组件GC包括两个电路层L1、L2和两个互连矩阵XM1、XM2。第一互连矩阵XM1接收软件组件GC的输入数据INi、INj、SGi、RNi。第一层L1包括逻辑门AGi,每个门从矩阵XM1接收两个输入值SGi、RNi,并将一个输出值Di提供给第二互连矩阵XM2。第二层L2包括逻辑门XGi、XGj,每个门从矩阵XM2接收两个输入值,并提供表示像素值的一个输出值PXi、PXj。第一层L1的逻辑门AGi中的每一者接收由矩阵XM1选择的软件组件GC的输入值SGi、RNi。另一层L2的逻辑门XGi中的每一者接收软件组件的一个输入值INi和由属于前一层(L1)的一个逻辑门AGi提供的一个输出值,这些输入值由矩阵XM2选择。层L2的逻辑门XGj中的每一者接收软件组件的两个输入值INj1、INj2,这些输入值由矩阵XM1和/或XM2选择。软件组件的这种结构使能并行处理,因为能够同时处理同一电路层L1、L2中的所有逻辑门。
根据一个实施例,为了产生图6A所示的图像帧FRM,软件组件GC针对在图像帧FRM中可见或不可见的每个段SG包括一个电路SGCi,以及针对与段像素PXi不同的每个像素PXj包括一个电路FPCj(例如围绕段SG或在横幅帧BNF内)。因此,在图6A的示例中,要显示的图像帧FRM包括用于小键盘KYP的70个段(10个键标记数字×7段/数字),加上用于验证码CC的14个段(2数字×7段/数字),软件组件包括84个电路SGCi。电路SGCi中的每一者在电路层L1中包括一个逻辑门AGi,以及在电路层L2中包括与形成图像帧FRM中所示的段SG的像素PXi1、PXi2、...PXip的数量一样多的逻辑门XGi。
门AGi例如执行诸如与、或、与非、或非之类的逻辑运算,以50%的概率显示每个可视段,并且每个不可见段的可见概率为0%。每个门XGi利用软件组件的输入INi执行逻辑异或运算。门AGi接收一个段输入值SGi和对应的随机输入值RNi。门AGi的输出Di连接到电路SGCi的所有门XGi的输入端。每个门XGi还接收输入值INi1-INip中的一者,并将一个像素值PXi1-PXip提供给电路GC的输出端。
电路FPCj中的每一者包括一个逻辑门XGj,该逻辑门针对由软件组件GC控制且与图像帧FRM中的段像素不同的每个像素PXj执行逻辑异或运算。门XGj中的每一者接收软件组件GC的两个输入值INj1、INj2,并提供一个像素值PXj。门XGj中的每一者可以位于层L1中或层L2中。输入值INi、INj的数量能够被限于由软件组件GC控制的像素PXi、PXj的数量的平方根附近的值。
电路SGCi被配置为以50%的概率显示键标记KYL和验证码SG的数字的可见段,并且这些数字的不可见段以0%的概率显示。软件组件GC的结构能够适合于将其它显示概率应用于要显示的数字的可见和不可见段。当然,数字也能够被控制和/或布置(例如,通过更多的段)以显示除了诸如字母字符之类的数字之外的其它符号,或者更一般地显示包括ASCII字符的符号。
在图9的软件组件的示例中,一个输入INi或INj能够连接到多个逻辑门XGi、XGj,以使得输入INi、INj的数量少于逻辑门XGi的数量加两倍的逻辑门XGj的数量。
互连矩阵XM2定义由软件组件生成的哪个像素属于段SG。根据一个实施例,取决于用户终端的显示分辨率,每个段SG的位置、取向和形状从一个软件组件到另一个软件组件变化一个或几个像素。这种设置使得更难以执行显示符号的机器光学识别。
可以观察到,本文所使用的术语“段”指示由一个相同的段输入值SGi控制的一组像素。形成段的一组像素不一定由相邻像素形成,而是能够包括相邻像素构成的组作为形成键标记KYL的段。此外,形成段的像素在一个所显示的图像段FRM中全部可见或全部不可见。
图10示出根据一个实施例的当软件组件被设计为乱码电路时,定义软件组件(其在步骤S23中发送)的结构和内容数据GCD。数据GCD包括:
唯一的软件组件标识符GCID,
数集(number set)DIM,其包括输入值INi、INj的数量n、输出值的数量m、段输入值SG或随机输入值RNi的数量s、门AGi、XGi、XGj的数量g、门AGi的数量k、电路中的线的数量w,以及电路GC中的电路层L1、L2的数量l,
输入数据表INLB,其包括针对软件组件的执行指定的,例如从1到n进行编号的电路GC的输入INi、INj的所有值,
段表SGLB,其包括针对软件组件的执行指定的从1到s进行编号的软件组件GC的段输入SGi的所有值,
随机数据表RNLB,其包括从1到s进行编号的随机值RNi,
门线表GTW,其定义两个输入线号IN1、IN2、输出线号ON和软件组件GC的每个逻辑门AG、XG的类型标识符GTYP,电路的门从1到g进行编号,以及
门真值表,其针对软件组件GC的逻辑门AG中的每一者包括四个值OV00、OV01、OV10、OV11。
在图9的示例中,类型GTYP指定对应的逻辑门执行异或运算或其它逻辑运算,如与、或、或非、与非。
根据一个实施例,分别表示二进制逻辑状态0或1的逻辑门AGi、XGi、XGj的输入值INi、SGi、RNi、INj以及输出值Di、PXi、PXj由若干位的数量定义,例如64位或128位。以这种方式,乱码电路GC内的每个输入和输出仅具有两个有效值,并且当考虑这些值的位的大小时,所有其它可能的值无效。当生成软件组件GC时,随机选择软件组件的每个输入SGi、RNi、INi、INj的两个有效值,前提是两个有效值的最低有效位不同,当计算逻辑门之一的输出值时,这些最低有效位被用于选择逻辑门的真值表中的一个值。
每个逻辑门AGi的真值表GTT[i]包括四个值OV00、OV01、OV10、OV11,其分别对应于与该逻辑门的输入值对应的二进制输入值的组合(0,0)、(0,1)、(1,0)、(1,1)。可以通过对软件组件的每个线(即,从1到(n+2s)的软件组件的每个输入线,以及从(n+2s+1)到(n+2s+g)的逻辑门的每个输出)进行编号,以及通过将每个逻辑门AGi、XGi、XGj与表GTW(包括到门的两个输入的两个线号IN1、IN2,以及到门的输出的一个线号ON)的一个记录进行关联,在表GTW中定义软件组件的拓扑。软件组件GC的输出的线号从(n+2s+g-m+1)到(n+2s+g)进行编号。
根据一个实施例,表RNLB包含两个有效值RNV1、RNV2,其分别对应于随机输入值RNi中的每一者的逻辑状态0和1。每个值RNV1、RNV2能够以相同的概率等于分别对应于状态0和1的随机值RNi的两个有效值中的一者或另一者。
异或门XGi、XGj能够通过使用在表GTT中编码的真值表,或者通过对门的输入值中的同一等级的每对位应用异或运算来执行。在后一种情况下,表GTW的字段GTYP定义门是异或门还是另一门,并且表GTT针对每个门AGi仅包括一个记录。
根据一个实施例,表INLB、SGLB、RNLB、GTT中的每个值通过128位字编码,并且表GTW的每个记录在64位字上编码,线号IN1、IN2、ON在21位字上编码。表GTW能够以压缩形式(例如使用gzip压缩方案)被从服务器ASRV传输到终端UT。
根据一个实施例,门表GTW和GTT中的逻辑门的顺序可以被随机定义,前提是索引i处的表记录GTW[i]和GTT[i]指示同一门。
图11示出根据一个实施例的被配置为执行软件组件并生成图像帧FRM的模块GCM。每当要生成新的图像帧时,即以等于或大于30Hz的帧刷新率生成新的图像帧时,模块GCM执行软件组件。为此,每当必须生成新的图像帧时,能够通过具有例如上升沿的同步信号SNC激活模块GCM。模块GCM包括切换模块SWC、软件组件解译器GCI、异或掩码电路XRG以及像素映射模块MPF。切换模块SWC接收同步信号SNC和定义要执行的软件组件GC的结构和内容数据GCD,并且将要通过软件组件GC的下一次执行处理的数据加载到输入数据结构GCDI中。因此,切换模块SWC在不修改结构GCDI的情况下发送数据DIM、INLB、SGLB、NBGL、GTW、GTT和GCK。
根据一个实施例,切换模块SWC执行切换操作SWi以选择每个输入随机值RNi的两个有效值RNiV1、RNiV2中的一者或另一者。每个切换功能SWi由具有s个位的随机数RNB(由随机数生成函数RNG生成)的相应位RNBi控制,s是要输入到软件组件GC的随机值RNi的数量或要显示的所有数字的段SGi的总数。每个切换操作SWi针对随机值RNi中的每一者提供存储在结构GCDI中的随机选定值RNiVk。作为选择随机值RNi(对应于被设定为状态1的输入数据SGi的要显示的可见段SG)的两个有效值RNiV1、RNiV2中的一者的结果,对应的与门AGi的输出被设定为状态1或0,具体取决于所选择的随机值RNiVk的逻辑状态。结果,可见段SGi出现在每个帧FRM中的概率等于随机输入值RNi被设定为状态1的概率。如果数量RNB是真随机数,则该概率等于50%。
模块GCI是专用解译模块,其被配置为依次执行由输入数据结构GCDI中的数据定义的第一电路层L1的逻辑门中的每一者和第二电路层L2的逻辑门中的每一者。为此,解译模块GCI能够使用线表接收软件组件GC的每个线的值,该值被写在表中对应于线值的线号的索引处。线表首先加载以软件组件的输入值INi、INj、SGi、RNiVk,这些值被写在表中对应于被分配给所述输入值的线号的索引(1到n+2s之间)处。然后将每个执行的逻辑门的所计算的输出值写在线表中对应于输出值的线号的索引处。在软件组件的执行结束时,线表在从(n+2s+g-m+1)到(n+2s+g)的索引处包括软件组件的输出的值。
每个逻辑门的输出值可以通过应用不可逆函数来计算,所述不可逆函数被应用于该门的两个输入值以及在该门的真值表中根据两个输入值中的每一者的最低有效位而选择的一个值:
OV=PF1(IN1,IN2,G) (1)
其中IN1和IN2表示该门的输入值,G=GTT[IN1{0}//IN2{0}]、IN1{0}和IN2{0}表示输入值IN1、IN2的最低有效位,“//”表示位连接运算符,GTT表示该门的四元素真值表,PF1表示不可逆函数。
根据一个实施例,函数PF1可以使用加密功能,诸如使用被分配给软件组件的加密密钥的AES(高级加密标准)。在这种情况下,加密密钥GCK可以被存储在软件组件GC的结构和内容数据GCD中。例如,逻辑门的输出值OV可以如下计算:
其中表示异或(XOR)运算符,T表示被分配给逻辑门的编号,例如逻辑门的编号,并且也可取决于输入值IN1、IN2,CF表示组合函数,AES(GCK,K)表示使用加密密钥GCK的AES加密算法的K的经加密值。组合函数能够是异或运算或以下形式的运算:
SH(IN1,a)表示X的左移a位的移位运算。
由模块GCI提供的软件组件GC的每个输出数据的最低有效位被视为像素值PXi、PXj。模块XRG将每个像素值PXi(由软件组件提供的每个输出值的最低有效位)与属于在结构和内容数据GCD中提供的图像掩码IMSK的相应掩码位值MKi相组合。所使用的组合运算可以是异或运算XRi。软件组件的输出值PXi、PXj的相应最低有效位表示白噪声,因为包括输入值的最低有效位的软件组件的输出值是随机选择的。因此,由软件组件生成的图像部分采取加密形式,并且使用图像掩码IMSK进行解密。
图像掩码IMSK包括消息MSG,以使得当与由软件组件GC提供的像素PXj相组合时,消息MSG变得可识别并且与验证码CC的段SG相组合。图像掩码IMSK还可以被配置为使与固定到二进制状态0(被配置为不可见的段)的段输入值SGi对应的数字段SG的像素PXi可见。以这种方式,所述段在所生成的图像帧FRM中始终可见(概率为100%)。将段配置为始终可见或不可见的另一种方式是将相同的值赋予与已发送的结构和内容数据GCD中的相关段输入值SGi对应的两个随机值RNiV1、RNiV2。
根据一个实施例,为了更安全,在步骤S23使用另一通信信道将最终掩码IMSK发送到终端UT。
互连矩阵XM1、XM2定义在图像帧FRM中显示对应于输入值INj的像素PXj和对应于段输入值SGi的像素PXi的位置。输入值INi、INj与图像掩码IMSK相关地定义软件组件GC的输出中的对应像素PXi、PXj是可见还是不可见,像素PXi的可视性也取决于随机输入RNi的对应值。能够在生成软件组件时随机选择输入值INi、INj的各自的二进制状态,然后根据输入值INi、INj的所选择的二进制状态、互连矩阵XM1、XM2以及要显示的定义图像帧中的可见和不可见像素的图像帧FRM,生成图像掩码IMSK。
映射模块MPF将由模块XRG提供的像素值组PXi'在合适的位置插入到背景图像帧BCKF中,以生成要显示的图像帧FRM之一。具体地说,模块XRG提供形成如图7所示的横幅帧BNF的像素组PXi',并且提供形成要在帧FRM中显示的一个小键盘帧KYPF的键标记KYL中的每一者的像素组PXi'。映射模块MPF将这些像素组插入背景图像帧BCKF中的相应预定位置以生成图6A所示的图像帧FRM之一。在一个实施例中,模块XRG输出可直接显示的图像帧。在这种情况下,映射模块不是强制性的。
软件组件的结构和内容数据GCD中的随机输入RNi的两个有效值的传输使能以非常低的成本在软件组件的执行和输出数据中引入随机性。相比之下,产生随机输出数据的软件组件将需要在软件组件中引入随机发生器,这会不可避免地增加乱码电路复杂性,因此增加定义软件组件的结构和内容数据GCD的大小。此外,随机输入RNi的两个有效值RNiV1、RNiV2的传输不会降低引入密码PC和验证码CC的安全性,因为每个随机输入值RNiV1、RNiV2和其二进制值0或1之间的对应关系不容易建立。
根据一个实施例,每当终端UT必须执行新的认证时,在步骤S27执行显示具有不同键布局的小键盘KYP以及显示不同的验证码CC的新的软件组件GC。
根据一个实施例,为了避免一个软件组件GC的传输(在步骤S23),每当需要用户终端执行新的认证时,可以一次在终端UT中下载多个备选软件组件(由结构和内容数据GCD定义),并且终端UT在每次必须执行新的认证时选择一个未准备好被执行的软件组件。作为一个示例,当应用APP被下载并安装在用户终端UT中时,与应用APP一起下载了若干软件组件。然后,当使用一个或多个软件组件时,例如在终端具有有效的网络连接的情况下,可以将新的一组软件组件从服务器ASRV下载到终端UT。
根据一个实施例,若干备选软件组件以加密形式被存储在终端UT中,并且每当终端UT必须执行新的软件组件时,服务器ASRV向用户终端发送相应的解密密钥。
根据一个实施例,每个软件组件中只有一部分被下载到终端UT中。当软件组件为乱码电路时,每个软件组件的已下载部分可以包括带有或不带有表RNLB的数据GCID、DIM、NBGL、GTW。每当终端UT必须执行新的认证时,在步骤S23,服务器ASRV只向终端发送数据INLB、SGLB、GCK和IMSK。然后,终端UT例如在步骤S25或S29将用于认证的软件组件的标识符GCID发送到服务器ASRV。当从用户终端UT接收到软件组件标识符GCID时,服务器ASRV在数据库UDB中检查所接收的标识符对应于先前被发送到终端UT的下一个未执行或有效的软件组件。如果所接收的标识符与先前发送到终端UT的下一个未执行或有效的软件组件不对应,则服务器ASRV使用户认证和相应的交易无效。服务器ASRV也可以使通过同一软件组件(对应于同一标识符GCID)执行的先前交易无效。
根据一个实施例,服务器ASRV能够将有效性指示符(例如,在图5的表GCP中)分配给其为用户终端生成的每个软件组件。当在步骤S23将对应的软件组件发送到用户终端时,服务器ARSV将有效性指示符设定为有效,当在步骤S29接收对应的消息ARP时,服务器ARSV使有效性指示符无效。此外,服务器ARSV能够为每个生成的软件组件分配有效期,当软件组件的有效期已经过去时,该软件组件被设定为无效。当在步骤S29发送的消息ARP对应于被设定为无效的软件组件时,服务器ASRV可被配置为拒绝该消息ARP。
根据一个实施例,若干有效的软件组件被存储在用户终端UT中。在执行软件组件之前,用户终端选择要在步骤S27执行的已存储的有效软件组件之一。已存储的有效软件组件中的每一者可以在一系列已存储的有效软件组件中具有等级(rank)。由用户终端执行的有效软件组件可以被随机选择,或根据其在一系列已存储的有效软件组件中的等级而被选择。为此,要执行的有效软件组件的等级能够被预定义为服务器ASRV和终端均已知的值。例如在步骤S25(在步骤S27执行软件组件之前),服务器ASRV也可以将要执行的有效软件组件的等级值发送到UT终端。
当用户终端随机选择要执行的有效软件组件时,服务器ASRV能够根据终端在步骤S29发送到服务器的数据POSi,并通过以下方式确定由用户终端执行的最后一个软件组件:即,逐一执行已经下载到用户终端中的有效软件组件,直到执行与在步骤S29发送的数据对应的软件组件。在图4的认证过程中,服务器ASRV在步骤S30、S31逐一执行有效软件组件,直到所发送的位置POSi对应于已存储的数据CC、PC。如果所发送的位置POSi与用户终端中的有效软件组件中的每一者的已存储数据PC、CC不对应,则用户无法通过认证。该实施例提升了安全级别,因为黑客不再能通过执行被发送到终端的最后一个软件组件来确定所显示的图像。在该实施例中,黑客还必须确定终端执行了哪个软件组件。
出于安全原因,能够决定防止二次执行同一软件组件。为此,在被用户终端UT执行之后,有效软件组件能被设定为无效。对于更高的安全级别,存储在终端中的一组软件组件的所有有效软件组件能够在终端执行这些有效软件组件中的一者之后被设定为无效。
如果服务器ASRV确定数据POSi来自无效软件组件,则服务器拒绝终端用户的认证。
只有软件组件集中的每一软件组件的数据部分能够被下载到终端UT中。在这种情况下,每当终端UT必须执行用户认证时,服务器ASRV在步骤S23向终端发送一个或多个软件组件的已存储数据部分的补充数据部分,从而使得终端能够在步骤S27执行这几个软件组件中的任一者。用于对由软件组件提供的输出数据进行解密的输出掩码IMSK可以是在步骤S23被发送给用户终端的补充数据部分。
图12示出根据另一个实施例的软件组件GC的一部分。图12中公开的电路部分旨在取代图9的电路中的一个逻辑门AGi。在图12的示例中,该电路部分包括三个与门AGi1、AGi2和AGi3以及两个或门OGi1、OGi2。代替针对以低于100%的概率显示的图像帧FRM的每个段具有一个段输入SGi和一个随机输入RNi,该电路部分针对一个段包括三个段输入SGi1、SGi2、SGi3和三个相应的随机输入RNi1、RNi2、RNi3。门AGi1、AGi2、AGi3中的每一者将一个相应的段输入SGi1、SGi2、SGi3与一个相应的随机输入RNi1、RNi2、RNi3进行组合。门AGi1和AGi2的输出端连接到门OGi1的输入端,门AGi3和OGi1的输出端连接到门OGi2的输入端。门OGi2的输出端Di连接到与形成由输入SGi1、SGi2、SGi3控制的段的像素的数量相同的门XGi。以这种方式,当所有段输入SGi1、SGi2、SGi3被设定为二进制状态0时,门OGi2的输出端Di被设定为二进制状态1的概率是0%。当段输入SGi1、SGi2、SGi3中的仅一者被设定为二进制状态1时,门OGi2的输出端Di被设定为二进制状态1的概率是50%。当段输入SGi1、SGi2、SGi3中的仅两者被设定为二进制状态1时,门OGi2的输出端Di被设定为二进制状态1的概率是75%,并且当全部三个段输入SGi1、SGi2、SGi3被设定为二进制状态1时,门OGi2的输出端Di被设定为二进制状态1的概率是87.5%。取决于对应输入值INi1-INip和掩码IMSK的对应掩码位值MKi1-MKip,以及段输入值SGi1、SGi2、SGi3,可以以固定为0%、12.5%、25%、50%、75%、82.5%或100%的概率显示段SGi。根据一个实施例,可见段SG以被随机设定为12.5%、25%、50%、75%、82.5%或100%的概率在图像帧FRM中显示。
这些概率或其它概率能够使用组合了三个段输入值SGi1、SGi2、SGi3和三个随机输入值RNi1、RNi2、RNi3的其它逻辑门组合来获得。
显然,软件组件能够通过增加一个段的输入数,进而通过增加第一电路层L1中的与门数和后续电路层中的组合或门数来达到其它概率值。
根据一个实施例,以随着用户体验级别而减小的概率显示可见段。在从第一次安装应用APP执行的第一认证时,可见段SG能够以高概率(例如,在75%到100%之间)显示在图像帧FRM中。随着用户体验级别的增长,这些概率能够逐渐减小,最终被设定为随机选择的值,例如在12.5%到50%之间。
在使用乱码电路的实施例中,由服务器ASRV在步骤S22执行的软件组件的生成包括生成表示软件组件的逻辑门的输入位和输出位的二进制状态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的数字的总和或乘积之类的组合。
除了该实施例或在另一个实施例中,所生成的帧可以包括与先前生成的帧的差异。
根据另一个实施例,通过设定图形处理器的像素强度、加法或减法像素颜色、像素刷新率、或像素闪烁参数,能够直接在图形处理器中控制/由图形处理器控制段的闪烁或闪动。
除了将质询显示在显示屏上之外,还能够使用其它方式将质询发送给用户。例如,能够通过使用诸如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、自动售货机、TV、公共显示屏、投影显示屏、虚拟显示器、3D显示器或全息图之类的任何显示器。在其它实施例中,终端可以是包括例如触摸屏、游戏附件、手势获取系统、语音或声音命令系统之类的任何输入设备。
在其它实施例中,图像帧FRM在不应用掩码IMSK的情况下生成,并且使用两个显示设备与掩码IMSK分开地显示,两个显示设备中的一个是透明的,诸如采取眼镜形式的显示设备,当所显示的图像与所显示的掩码IMSK叠加时,所显示的图像变得对用户可识别,所显示的掩码的白色像素是透明的,并且所显示的掩码的黑色像素是不透明的。
此外,本文公开的在执行防止篡改和逆向工程的软件组件时引入随机化的方法不限于在图像或图像帧中生成闪烁的像素。更一般来说,这些方法能用于任何这样的应用:其中敏感软件功能中需要随机状态,防止被执行逆向工程和篡改,软件功能接收输入数据并提供输出数据。例如,这些方法能应用于数据保护而不使用容易被盗的加密或解密密钥。在本示例中,软件组件被配置为根据一组随机输入数据提供受保护数据的一部分,每个随机输入数据具有两个可能值。应用于软件组件的随机输入值的每个组合被用于计算受保护数据的相应部分。随机输入值的组合数量定义了可以通过执行软件组件来计算的数据部分的数量。作为一个示例,要保护的数据可以是图像,并且此类图像的数据部分可以是图像的像素值或图像像素的颜色分量值,软件组件的执行提供了像素值或像素值的一部分和像素在图像中的位置(请参见X.Arogya Presskila、Sobana Sumi所著的“Secure Image Datasetsin Cloud Computing(云计算中的安全图像数据集)”,国际计算机科学与软件工程高级研究杂志,第4卷,第3期,2014年3月)。通过应用于输入值的一个组合的软件组件的一次执行来计算的要保护的数据的一部分能够如所需要的那样小。例如,软件组件能够被配置为通过一次执行提供高斯曲线的点或用于计算直方图的值,所述数据部分值对应于由软件组件计算的最高值或对应于具有直方图中的最高出现次数的值。当仅提供软件组件的输入数据的两个备选值的一部分时,只能访问受保护数据的一部分,其中针对软件组件的其它输入数据仅提供一个值。
此外,本文公开的方法不限于涉及认证服务器的实施方式。其它实施方式可以涉及用户终端内的安全元件,例如图2所示的安全处理器SE,或终端主处理器HP内的安全域。在本文公开的方法中,由服务器ASRV执行的所有操作都能够由此类安全元件执行。图13示出由用户终端UT以及链接到终端UT的主处理器HP的安全元件SE执行并使得安全元件能够认证用户的认证步骤S41到S44。在步骤S41,终端UT将命令CMD发送到安全元件SE,该命令在被安全元件执行之前需要用户的认证。然后如前所述,安全元件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,在该步骤S43,安全元件SE执行在步骤S41请求的命令CMD。在步骤S44,安全元件SE发送命令CMD的执行报告RS。
此外,本文公开的方法不限于基于用户引入密码PC、PC1的用户认证。在简化的认证方法中,用户只需引入所显示的验证码CC即可。
此外,本文公开的方法不限于包括仅具有两个输入端和一个输出端的门的乱码电路,上面描述的乱码电路只是为了清晰说明。可以使用具有多于四条线的真值表来实现具有三个或更多个输入端和一个或多个输出端、或接收具有多于两个有效状态的数据的其它类型的门。因此,通过发送和选择输入RNi的可能值RNiV1和RNiV2之一获得的随机性也能够通过发送和随机选择乱码电路的输入端的三个或更多个有效值中的一个值来获得。
此外,本文公开的方法不限于通过乱码电路实现软件组件。诸如包含混淆程序的软件组件的其它实施方式能够用于隐藏在终端UT的主处理器中加载的程序部分,和/或用于防止程序的敏感部分被未经授权的人员公开或修改。混淆程序的方法例如在文献“Obfuscating Circuits via Composite-Order Graded Encoding(经由复合次序分级编码混淆电路),Benny Applebaumy、Zvika Brakerskiz著,IACR-TCC,2015年1月12日”和“Howto Obfuscate Programs Directly(如何直接混淆程序),Joe Zimmerman著,IACR,2014年9月30日”中公开。
更一般地说,可以通过将使用诸如C或C++之类的语言编写的程序转换为诸如VHDL或Verilog之类的电路设计语言以获得包括逻辑门的逻辑或布尔电路来执行乱码电路的概念。
此外,本文公开的方法不限于使用防止篡改和逆向工程的软件组件,例如使用混淆或乱码电路方法生成的软件组件。作为此类应用的一个示例,本文公开的方法可用于执行不需要高安全级别的操作,例如数据隐私保护,视频游戏(例如可用的虚拟生活的管理)或医学眼睛测试。
此外,本文公开的方法不限于涉及掩码(诸如用于对软件组件的输出值进行解密的图像掩码IMSK)的实施方式。其它实施方式能够生成并执行直接输出要显示的像素值的软件组件。另外,能够在输出像素值中直接提供消息MSG。另外,掩码IMSK能够例如经由不同传输手段被与软件组件或软件组件的结构和内容数据分开地发送,可选地在软件组件的执行之后被全部发送或分成几部分发送。
此外,本文公开的方法能够通过仅包括硬件小键盘的用户终端UT来实现,所显示的帧FRM的显示只是为了将其它键标记分配给物理小键盘。因此,代替触摸显示屏幕的位置以输入位置POSi,用户与所显示的帧FRM中示出的已分配标记相一致地激活小键盘的硬件键。
本文中用于标准显示屏的术语像素可以被理解为坐标,即,用于2D显示的2D坐标,或用于3D或立体显示或用于投影的3D坐标等。
此外,所述公开和例示被认为是说明性的而不是限制性的,并且所附权利要求旨在覆盖落入说明书的真实精神和范围的所有此类修改、增强和其它实施例或它们的组合。因此,以下权利要求的范围由权利要求及其等同物的最广泛的许可解释来确定,并且不受前述说明书的限制或限定。
Claims (16)
1.一种用于将机密信息安全地传输给用户的方法,所述方法包括:
由用户终端从安全处理器接收软件组件,所述软件组件防止篡改和逆向工程并被配置为生成具有相邻像素的像素组,每个像素组具有可见和不可见状态并且处于所述可见或不可见状态的概率低于100%;
由所述用户终端以对应于帧显示刷新速率的速率来执行所述软件组件,以便以所述显示刷新速率来生成所述像素组;
将通过所述软件组件的每次执行生成的所述像素组插入到一个相应图像帧中;以及
激活以所述帧显示刷新速率来显示所述图像帧,所述图像帧包括由所述像素组形成的机器不可识别的信息,由于人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
2.根据权利要求1所述的方法,其中所述软件组件被编码为包括电路输入端、电路输出端、逻辑门和线的乱码电路,每个逻辑门具有两个输入端和一个输出端,每个线具有第一端和第二端,所述第一端连接到所述电路输入端之一或所述逻辑门输出端之一,所述第二端连接到所述逻辑门输入端之一或所述电路输出端之一,通过以下操作生成所述乱码电路:针对每个所述线的每个二进制状态,选择有效数据;以及针对所述乱码电路的一个逻辑门,根据该述逻辑门的每个输入端的每个有效数据、该逻辑门的所述输出端的每个有效数据以及由该逻辑门执行的逻辑运算来计算真值表值。
3.根据权利要求2所述的方法,其中所述软件组件针对要生成的每个像素组包括一个像素组生成电路,每个生成电路包括第一逻辑门和一组第二逻辑门,所述第一逻辑门将第一输入数据组合到随机选择的第二数据并且向每个所述第二逻辑门的第一输入端提供输出数据,每个所述第二逻辑门的第二输入端接收第三输入数据,所述第二逻辑门的每个所述输出端提供所述像素组的一个像素值。
4.根据权利要求3所述的方法,其中所述像素组生成电路之一包括多个第一逻辑门,所述多个第一逻辑门接收第一输入数据和随机选择的第二输入数据,并且向每个所述第二逻辑门提供所述输出数据。
5.根据权利要求1至4中的一项所述的方法,其中每个像素组在所述图像帧中具有随机选择的位置和/或方向和/或形状。
6.根据权利要求1至5中的一项所述的方法,其中每个像素组形成一个段,由所述像素组形成的所述段被布置为形成符号或数字或字母数字字符,每个所述段在所述显示的图像帧中可见的概率低于100%。
7.根据权利要求1至6中的一项所述的方法,其中所述软件组件被配置为以介于12.5%与87.5%之间的概率提供处于两个二进制状态之一的所述输出数据,所述方法进一步包括根据用户体验水平调整用于提供处于所述两个二进制状态之一的所述输出数据的概率。
8.根据权利要求1至7中的一项所述的方法,其中所述软件组件被配置为生成图像帧的已加密图像部分,所述已加密图像部分包括像素,所述像素处于两种备选二进制状态之一的概率低于100%,所述方法进一步包括:
由所述用户终端使用传输到所述用户终端的解密掩码,通过将每个所生成的已加密图像部分的每个像素与所述解密掩码的相应像素组合,对每个已加密图像部分进行解密;
由所述用户终端将已解密图像部分插入到图像帧背景中,以便以所述显示刷新速率来生成所述图像帧;以及
由所述用户终端激活所生成的图像帧的显示,所显示的图像帧包括由在所显示的图像帧中可见的概率低于100%的像素形成的机器不可识别的信息,由于所述人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
9.一种用于将机密数据从用户安全地传输到安全处理器的方法,所述方法包括:
根据权利要求1至8中的一项所述的方法,借助用户终端向用户安全地显示机密质询;
获得由所述用户输入的与所显示的机密质询相关的数据;以及
由所述用户终端将由所述用户输入的所述数据传输到所述安全处理器,所述用户知晓的所述机密数据能够从由所述用户输入的所述数据和从所述机密质询来确定。
10.一种用户终端,其被配置为:
从安全处理器接收软件组件,所述软件组件防止篡改和逆向工程并被配置为生成像素组,所述像素处于可见或不可见状态的概率低于100%;
以对应于帧显示刷新速率的速率来执行所述软件组件,以便以所述显示刷新速率来生成所述像素组;
将通过所述软件组件的每次执行生成的所述像素组插入到一个相应图像帧中;以及
激活以所述帧显示刷新速率来显示所述图像帧,所述图像帧包括由所述像素组形成的机器不可识别的信息,由于人类视觉系统的暂留性,所述信息在所述显示刷新速率下对于用户变得可识别。
11.根据权利要求10所述的终端,所述终端被配置为执行在权利要求2至9中的一项所述的方法中由终端执行的操作。
12.根据权利要求10或11所述的终端,其中所述安全处理器是连接到所述终端的主处理器的安全元件。
13.根据权利要求10或11所述的终端,其中所述安全处理器属于通过数据传输网络链接到所述终端的远程服务器。
14.一种安全元件,其被配置为执行在权利要求1至9中的一项所述的方法中由安全处理器执行的操作,其中所述安全元件连接到终端的主处理器。
15.一种服务器,其被配置为执行在权利要求1至9中的一项所述的方法中由安全处理器执行的操作,所述服务器通过数据传输网络被链接到所述终端。
16.一种计算机程序产品,其能加载到计算机存储器中并包括代码部分,当由计算机执行时,所述代码部分配置所述计算机以执行由权利要求10至13中的一项所述的终端执行的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16196950.6A EP3319001A1 (en) | 2016-11-02 | 2016-11-02 | Method for securely transmitting a secret data to a user of a terminal |
EP16196950.6 | 2016-11-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108021831A true CN108021831A (zh) | 2018-05-11 |
Family
ID=57240924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711061891.1A Pending CN108021831A (zh) | 2016-11-02 | 2017-11-02 | 用于将机密数据安全地传输给终端的用户的方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3319001A1 (zh) |
KR (1) | KR20180048425A (zh) |
CN (1) | CN108021831A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3594838A1 (en) | 2018-07-09 | 2020-01-15 | Skeyecode | Method for recovering a secret key securely stored in a secure element |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010122493A (ja) * | 2008-11-20 | 2010-06-03 | Eastman Kodak Co | 表示装置 |
US20120293537A1 (en) * | 2010-02-26 | 2012-11-22 | Rakuten, Inc. | Data-generating device, data-generating method, data-generating program and recording medium |
US20140040633A1 (en) * | 2011-02-11 | 2014-02-06 | Jean-Luc Leleu | Secure transaction method from a non-secure terminal |
CN104115440A (zh) * | 2011-12-30 | 2014-10-22 | 英特尔公司 | 防止电子码本加密中的图案识别 |
US9076231B1 (en) * | 2014-02-18 | 2015-07-07 | Charles Hill | Techniques for displaying content on a display to reduce screenshot quality |
CN105103487A (zh) * | 2013-08-09 | 2015-11-25 | 汤姆逊许可公司 | 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统 |
-
2016
- 2016-11-02 EP EP16196950.6A patent/EP3319001A1/en not_active Withdrawn
-
2017
- 2017-11-02 CN CN201711061891.1A patent/CN108021831A/zh active Pending
- 2017-11-02 KR KR1020170145455A patent/KR20180048425A/ko unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010122493A (ja) * | 2008-11-20 | 2010-06-03 | Eastman Kodak Co | 表示装置 |
US20120293537A1 (en) * | 2010-02-26 | 2012-11-22 | Rakuten, Inc. | Data-generating device, data-generating method, data-generating program and recording medium |
US20140040633A1 (en) * | 2011-02-11 | 2014-02-06 | Jean-Luc Leleu | Secure transaction method from a non-secure terminal |
CN104115440A (zh) * | 2011-12-30 | 2014-10-22 | 英特尔公司 | 防止电子码本加密中的图案识别 |
CN105103487A (zh) * | 2013-08-09 | 2015-11-25 | 汤姆逊许可公司 | 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统 |
US9076231B1 (en) * | 2014-02-18 | 2015-07-07 | Charles Hill | Techniques for displaying content on a display to reduce screenshot quality |
Non-Patent Citations (1)
Title |
---|
JRVINEN,K.,ET AL.: "Garbled Circuits for Leakage-Resilience: Hardware Implementation and Evaluation of One-Time Programs", 《CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS, CHES 2010, 12TH INTERNATIONAL WORKSHOP》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3319001A1 (en) | 2018-05-09 |
KR20180048425A (ko) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021800A (zh) | 用于通过非安全终端认证用户的方法 | |
CN108141350A (zh) | 从非安全终端确保交易的方法 | |
CN108021813A (zh) | 用于保护从非安全终端执行的交易的方法 | |
CN108009418A (zh) | 用于借助非安全终端认证用户的方法 | |
Guerar et al. | Color wheel pin: Usable and resilient ATM authentication | |
US20180159686A1 (en) | Method and a system for generating a multi-factor authentication code | |
CN109891821A (zh) | 用于使用非安全终端安全地执行敏感性操作的方法 | |
CN108021831A (zh) | 用于将机密数据安全地传输给终端的用户的方法 | |
CN108022095A (zh) | 用于将机密数据安全地发送到终端的用户的方法 | |
CN108009826A (zh) | 用于使用非安全终端安全地执行敏感操作的方法 | |
EP3594838A1 (en) | Method for recovering a secret key securely stored in a secure element | |
EP3319269A1 (en) | Method for securely performing a sensitive operation using a non-secure terminal | |
KR20090028067A (ko) | 온라인에서의 계정정보 보안 방법 및 그 장치 |
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: 20180511 |
|
WD01 | Invention patent application deemed withdrawn after publication |