用于保护从非安全终端执行的交易的方法与流程

文档序号:17932368发布日期:2019-06-15 01:00阅读:272来源:国知局
用于保护从非安全终端执行的交易的方法与流程

本发明涉及一种用于从非安全终端安全地认证用户,尤其是考虑到基于这种用户认证来执行涉及这种非安全终端和远程服务器的安全交易的方法和设备。



背景技术:

安全单元期望执行从诸如智能电话、个人计算机、数字平板计算机等的移动终端或包括属于物联网(iot)的设备的任何其它连接设备发起的交易,例如电子商务交易或资金转移(不确定这是否相关,因为所要求保护的方法需要人)。然而,这引起了安全性问题,尤其是因为终端的处理器(cpu)可能会执行“恶意软件”。恶意软件可能能够访问处理器可访问的全部或部分存储器,并且因此可能被恶意地配置为监视由终端执行的任何交易并恢复在这些交易期间操作的任何秘密数据以用于通过网络进行传输。

为了确保这种交易的安全性,已经提出将加密计算委托给诸如uicc(“通用集成电路卡”)卡的处理器的专用安全单元,例如手机通常都配备了的sim(用户识别模块)卡。为了能够执行一个或多个支付应用,安全处理器必须能够存储与存在的支付应用一样多的秘密加密密钥。然而,将应用加载到安全处理器的存储器中是一项复杂的操作,其需要是高度安全的。具体而言,它涉及诸如可信服务管理器的外部多方。由于sim卡是由手机运营商发行的,后者可能拒绝在该卡中安装这种应用。此外,在被盗或电话维修期间,sim卡的处理器可能被寻求发现存储在其存储器中的秘密密钥的黑客攻击。

另外,访问安装在sim卡的处理器中的安全功能通常需要借助于连接到终端的处理器的键盘或触敏表面来输入密码(pin码)。在典型的配置中,用户输入的密码必须通过终端的处理器。因此,终端的处理器执行的恶意软件可以访问该密码。

申请人提交的专利申请wo2012/107698公开了一种用于将终端的图形处理器用作执行交易的安全单元的方法。该方法包括在终端的图形处理器与认证服务器之间建立安全通信链路,以及显示具有以随机顺序排列的键的虚拟键盘的步骤。键盘的图像使用视觉加密技术来显示,通过连续显示其中的键的标签不可理解的互补帧,由于用户的视觉系统的视网膜残留,用户的视觉系统将这些互补帧组合成可理解的图像。以此方式,即使在终端的处理器上运行的恶意程序能够在密码输入期间访问用户触摸的键的位置,它也不能通过连续截屏来确定哪些标签对应所触摸的键。

然而,该方法需要重要的计算资源,这些资源并非在诸如市场上已有的所有智能电话的所有便携式设备中都可用。

为了保护使用连接到网站的终端执行的交易,已经提出使用一次性密码,每次需要验证交易时,该一次性密码就被发送给用户。根据第一种解决方案,一次性密码经由不同的通信信道被发送给用户,例如经由电话链接或sms(短消息服务),用户被要求在终端上输入所接收的密码以验证交易。另一种已知的解决方案为每个用户提供附加的硬件设备,该设备在通过诸如口令或生物识别数据的凭证对用户进行认证之后生成一次性密码。当需要验证交易时,这些解决方案对于并非总是处于移动电话或无线网络覆盖范围附近的用户,或者该硬件设备来说有负担。需要附加的硬件设备的解决方案对于银行组织来说是昂贵的。另外,使用通过sms发送的密码的解决方案不提供足够高的安全性级别,因为它已经受了成功的攻击。

因此,可期望提出一种用于保护使用非安全终端执行的诸如交易的敏感性操作的方法,交易例如是支付交易、或用户认证、或更一般地是需要防止篡改的操作。还可期望保护由用户输入的秘密数据和通过这种非安全终端中转的交易数据。此外,可期望使所提出的方法与所有已有的终端兼容,甚至对于低计算能力的终端也是如此。



技术实现要素:

公开了一种用于认证用户的方法,所述方法包括:接收软件组件,软件组件被配置为生成包括加密信息的图像帧;执行软件组件,软件组件的执行生成图像帧;显示图像帧;在图像帧上叠加包括透明像素和不透明像素的半透明图像,半透明图像被配置为使加密信息对于用户可理解;从用户获取响应,响应取决于所述信息;以及向安全处理器发送所获取的响应,用户由安全处理器根据所获取的响应而被认证或不被认证。

根据实施例,当所获取的响应与所述信息对应并且与由用户和安全处理器共享的秘密信息对应时,用户被认证。

根据实施例,软件组件被执行一次以生成被显示以用于认证用户的图像帧,并且被设置为无效。

根据实施例,半透明图像被印刷在透明标签上,或者被显示在透明显示器上。

根据实施例,所述信息:包括具有特定于软件组件的键布局的键盘的一系列标签,来自用户的响应包括由用户选择的键盘的键的键位置;或者包括键盘的一系列标签以及验证码,一系列标签以及验证码特定于软件组件,来自用户的响应包括由用户选择的键盘的键位置;或者指定生物识别质询,来自用户的响应包括由用户使用生物识别传感器输入的生物识别数据。

根据实施例,所述方法还包括:由安全处理器生成软件组件,当向用户终端发送软件组件时,由安全处理器将软件组件设置为有效;以及在已经过第一时段之后或者在由安全处理器从用户终端接收软件组件的执行报告之后,由安全处理器将软件组件设置为无效,与被设置为无效的软件组件相关的执行报告被安全处理器拒绝。

根据实施例,软件组件被配置为生成加密图像帧的加密部分,所述方法还包括:从安全处理器接收解密掩码;使用解密掩码对每个生成的加密图像帧部分应用部分解密操作,以获得部分解密的图像帧部分;以及将每个部分解密的图像帧部分插入图像帧背景中以生成图像帧。

根据实施例,部分解密操作通过异或操作将由软件组件提供的每个像素值与解密掩码的对应的像素值组合。

根据实施例,软件组件被编码为乱码电路,乱码电路包括电路输入、电路输出、逻辑门和线,每个逻辑门具有两个输入和一个输出,每个线具有第一端和第二端,第一端连接到电路输入中的一个或逻辑门输出中的一个,第二端连接到逻辑门输入中的一个或电路输出中的一个,乱码电路通过以下操作生成:针对每个线的每个二进制状态,选择有效数据;以及针对乱码电路的一个逻辑门,根据逻辑门的每个输入的每个有效数据、逻辑门的所述输出的每个有效数据和由逻辑门执行的逻辑操作来计算真值表值。

实施例还可以涉及用户终端,其被配置为:接收软件组件,软件组件被配置为生成包括加密信息的图像帧;执行软件组件,软件组件的执行生成图像帧;显示图像帧;在图像帧上叠加包括透明像素和不透明像素的半透明图像,半透明图像被配置为使加密信息对于用户可理解;从用户获取响应,响应取决于所述信息;以及向安全处理器发送所获取的响应,用户由安全处理器根据所获取的响应而被认证或不被认证。

根据实施例,终端进一步被配置为执行在先前公开的方法中由终端执行的操作。

根据实施例,安全处理器是连接到终端的主处理器的安全单元。

根据实施例,安全处理器属于通过数据传输网络链接到终端的远程服务器。

实施例还可以涉及安全单元,其被配置为执行在先前公开的方法中由安全处理器执行的操作,其中,安全单元连接到终端的主处理器。

实施例还可以涉及服务器,其被配置为执行在先前公开的方法中由安全处理器执行的操作,服务器通过数据传输网络链接到终端。

实施例还可以涉及计算机程序产品,其能够加载到计算机存储器中并且包括代码部分,代码部分在由计算机执行时配置计算机以执行先前公开的方法。

附图说明

参考以下附图和描述可以更好地理解本方法和/或设备的示例。通过以下附图来描述非限制性和非穷举性描述。

图1是执行与远程服务器的交易的用户终端的框图;

图2是用户终端的框图;

图3是根据实施例的由用户终端、认证服务器和应用服务器执行的初始化步骤的顺序图;

图4是根据实施例的示出用户认证过程的步骤的顺序图;

图5是根据实施例的由认证服务器管理的数据库的框图;

图6示出根据实施例的由用户终端显示的图像帧,以及可由用户终端的用户通过半透明设备观察到的对应的结果图像;

图7示出根据实施例的图像帧的像素、半透明设备和图6的结果图像之间的关系;

图8是根据实施例的由用户终端中的软件实现的电路的框图;

图9是根据实施例的描述在用户终端中实现的电路的数据库的框图;

图10是根据实施例的由用户终端执行的应用程序的框图;

图11是根据实施例的示出由图10的应用程序使用图8的电路来执行用于显示图6的图像帧的处理的框图;

图12、图13和图14示出根据其它实施例的可由用户终端的用户观察到的结果图像;

图15是根据另一个实施例的示出认证步骤的顺序图。

具体实施方式

在附图中,除非另有说明,否则相同的附图标记可以在不同附图中指代相同的部件。

在下文中,术语“安全”根据其对本领域的普通技术人员的普通含义而使用,并且在不同实施例中包括由诸如加密的技术,或者用于从公众隔离信息的其它类型的软件或硬件控制或者用于保护该信息免受未经授权的访问或操作而引起的安全性。表述“安全通信”和“安全通信链路”是指使用公钥/私钥对进行加密的通信,或者是用在通信点之间共享的密钥的对称密钥加密。“安全通信”还可以涉及虚拟专用网络,以及用于在通信点之间建立认证和加密的通信的其它方法和技术。

图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到步骤s14。在步骤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的一个或多个数字,例如,两位或更多个数字。

根据实施例,键盘的键在显示的图像帧中以随机选择的布局排列,并且以加密形式生成其中显示键的标签和验证码的数字的图像部分,以使得所显示的键标签和验证码对于人类是不可理解的(由键盘的键执行的相应功能不能由用户从所显示的加密键标签确定),但是通过以下操作而变得可理解:在所显示的图像帧上放置半透明设备,以便在所显示的图像帧中和由半透明设备显示的图像中分别叠加互补的像素图案,其中由半透明设备显示的图像包括不透明像素和透明像素。显示消息msg的图像部分也可以以加密形式生成。

在步骤s28中,终端ut的用户输入口令pc和所显示的验证码cc。在智能电话的示例中,用户使用所显示的键盘,并且触摸所显示的键盘的键的对应位置posi。在步骤s29中,应用app将用户选择的位置序列posi与设备标识符did一起发送到服务器asrv。在步骤s30中,服务器asrv确定与用户输入的位置posi对应的代码cc1和口令pc1。由于用于输入位置posi的键盘由服务器asrv生成的软件组件gc显示,因此服务器asrv知道显示的键盘布局,因此可以确定与位置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还包括键盘图像帧kypf,其示出例如十二键键盘,该键盘的每个键ky显示有标签kyl,标签kyl向用户指示键的功能。该键盘包括擦除键“c”和验证键“v”,以及与数字对应的十个键,并且具有特定于生成图像帧frm的软件组件gc的布局。图像帧frm还可以包括显示区fbd,其中,每次用户触摸一个新的键ky时显示一个点。在图6的示例中,显示区fbd示出用户已经输入了三个键。

根据实施例,键标签kyl和验证码cc的数字显示在图像帧frm的加密部分中,其可以使用对应的半透明显示设备tdd(图1)解密,以便在图像帧frm中并且在半透明显示设备tdd上显示的图像omsk中叠加互补的像素图案。显示设备tdd上的图像omsk具有透明和不透明的像素。当适当地叠加图像帧frm和半透明显示设备tdd的图像omsk时,可以通过显示设备tdd观察到在图6中示出的结果图像img。

在图6的示例中,键盘kyp包括四行,每行三个键ky,键盘第一行包括(从左到右)数字“9”、“3”和“6”,第二行包括数字“2”、“0”和“1”,第三行包括数字“4”、“7”和“9”,以及第四行——验证键“v”、数字“5”和擦除键“c”。根据将要显示的键标签kyl,每个数字键的标签kyl由若干可见或不可见的段sg(例如,七个段)来显示。图像帧frm包括加密的横幅ebnf,其可以使用由显示设备tdd显示的图像omsk解密成图6中的横幅bnf。

在图6的示例中,横幅bn包括消息msg“order:transferxx€toyyyy”和对应于用户将在终端ut中输入的验证码cc的两个数字。同样,验证码cc的每个数字使用若干段sg(例如,七段)来显示,这些段根据将要显示的数字而显示或不显示(可见或不可见)。

所显示的键盘kypf可以不需要具有验证键“v”,当用户输入将要输入的口令pc和验证码cc的最后一个数字时,所输入的代码的验证被执行。例如,如果口令pc包括四个数字并且验证码cc包括两个数字,则当用户输入六个数字时,软件组件gc的执行可被结束。可以管理取消键“c”以删除最后输入的数字或所有先前输入的数字。可以通过擦除显示区fbd中的一个或所有的点来向用户显示取消键“c”的效果。

图7示出了在由显示设备tdd显示的图像omsk中和图像帧frm中的黑白互补像素图案mpx的示例,以及当互补像素图案被叠加时用户可观察到的图像img中的结果像素图案。针对由半透明设备tdd显示的图像omsk的每个像素图案,图7示出了两个互补像素图案0/1,其可以交替地在图像帧frm中显示以获得黑色的结果像素图案或灰色(如向用户呈现的)像素图案。在图7的示例中,像素图案包括以正方形排列的四个像素。图像omsk和图像帧frm中的可能的像素图案包括6个不同的像素图案,即,其中两个黑色像素和两个白色像素水平排列的两个水平图案,其中两个黑色像素和两个白色像素垂直排列的两个垂直图案,以及其中两个黑色像素和两个白色像素对角排列的两个对角图案。通过叠加两个像素图案以使得在结果像素图案中所有像素都是黑色的来获得黑色的结果像素图案。通过叠加两个像素图案以使得在结果像素图案中至少一个像素是白色的来获得灰色的结果像素图案。

以此方式,只有拥有与用于显示图像帧frm的软件组件对应的半透明设备tdd的用户才能访问所显示的加密信息,当半透明设备tdd被正确叠加在所显示的图像帧frm上时,该加密信息变得可理解。因此,安装在用户终端上的恶意软件不可能仅通过执行显示屏幕的截屏来得到所显示的加密信息。可以观察到图像omsk的每个像素图案可用于无差别地显示黑色或灰色的结果像素图案。因此,半透明设备omsk上的相同的图像可以与不同的图像帧frm一起使用以显示不同的图像img。

半透明设备tdd上的图像omsk可以与一个软件组件一起仅使用一次,或者与若干软件组件一起使用预定义的最大次数。

图10示出了根据实施例的应用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包括门层l1和互连矩阵xm1。互连矩阵xm1接收软件组件gc的输入数据inb、inc、sgj。门层l1包括逻辑门xgb、xgj,每个门接收来自矩阵xm1的两个输入值,并提供表示像素值的一个输出值pxb、pxj。门层l1的每个逻辑门xgj接收软件组件的一个输入值inc和一个输入值sgj,这些输入值由矩阵xm1来选择。门层l1的每个逻辑门xgb接收软件组件的两个输入值inb1、inb2,这些输入值由矩阵xm1来选择。

软件组件gc被布置在可被同时处理的并行逻辑门的层中,以使得软件组件可被并行处理执行。

根据实施例,为了生成如图6中所示的图像帧frm,软件组件gc包括用于在图像帧frm中可见或不可见的每个段sg的一个电路sgcj,以及用于与例如在段sg周围或在横幅帧bnf中的段像素pxj不同的的每个像素pxb的一个电路fpcb。因此,当将要显示的图像帧frm包括用于键盘kyp的70个段(10个键标签数字×每个数字的7个段),以及用于验证码cc的两个数字的7个段(1个数字×每个数字7个段)时,软件组件包括84个电路sgcj。每个电路sgcj在门层l1中包括与形成在图像帧frm中以加密形式显示的段sg的像素pxj1、pxj2、...pxjp的数量一样多的逻辑门xgj,并且使用半透明设备omsk在观察到的图像img中变得可见。

每个门xgj执行与软件组件的输入ini的逻辑xor运算。每个输入sgj被连接到电路sgcj的所有门xgj的输入。每个门xgj还接收输入值inc1-incp中的一个,并向电路gc的输出提供一个像素值pxj1-pxjp。

每个电路fpcb包括一个逻辑门pxb,其执行每个像素pxb的逻辑xor运算,每个像素pxb由软件组件gc控制并且与图像帧frm中的段像素不同。门层l1中的每个门xgb接收软件组件gc的两个输入值inb1、inb2,并提供一个像素值pxb。逻辑门xgj位于门层l1中。输入值inb、inc的数量可被限制为由软件组件gc控制的像素pxb、pxj的数量平方根周围的值。当然,还可以控制和/或布置数字(例如,用更多的段)以显示除了数字以外的其它符号,诸如字母字符或者包括ascii字符的更一般的符号。

在图8的软件组件的示例中,一个输入inb或inc可被连接到若干逻辑门xgb、xgj,以使得输入inb、inc少于逻辑门xgj的数量加上逻辑门xgb的数量的两倍。

根据一个实施例,根据用户终端的显示分辨率,每个段sg的位置、定向和形状从一个软件组件到另一个软件组件而被改变一个或若干像素。该规定使得从与该图像一起使用的若干图像帧frm确定由半透明显示设备tdd显示的图像omsk变得更加困难。

可以观察到,在本文中使用的术语“段”表示由相同的段值sgj控制的一组像素。形成段的像素组不必由相邻像素形成,而是可以将相邻像素的组包括为形成键标签kyl的段。

图9示出了根据实施例的当被设计为乱码电路时定义软件组件的结构和内容数据gcd(在步骤s23中被发送到用户终端)。数据gcd包括:

唯一的软件组件标识符gcid,

数字组dim,其包括输入值inb、inc的数量d、输入值sgj的数量n、电路gc的输出值pxi、pxj的数量z、电路中的门xgb、xgj的数量g、电路中的线的数量w,以及电路gc中的并行逻辑门的门层l1的数量y;

输入数据表inlb,其包括电路gc的输入inb、inc的所有值,例如编号为从1到d,如为执行软件组件所规定的;

输入数据表sglb,其包括软件组件gc的输入数据sgj的所有值,其编号为从1到n,用于执行软件组件;

门线表gtw,其定义了两个输入线编号in1、in2,输出线编号on,和软件组件gc的每个逻辑门的类型标识符gtyp,电路的门被从1到g进行编号;以及

门控真值表,其包括针对软件组件gc的每个逻辑门ag的四个值ov00、ov01、ov10、ov11。

在图9的示例中,类型gtyp规定对应的逻辑门执行xor操作或诸如and、or、nor、nand的另一个逻辑操作。当类型标识符被用于标识电路gc的xor门时,xor门xgb和xgj被从表gtt中排除。

根据实施例,乱码电路gc和逻辑门xgb、xgc的输入值inb、sgj、inc和输出值pxb、pxj,每个表示二进制逻辑状态0或1,由若干位的数字来定义,例如64或128位。以此方式,乱码电路gc内的每个输入和输出仅具有两个有效值,并且当考虑这些值的位大小时,所有其它可能的值都是无效的。当软件组件gc被生成时,软件组件的每个输入sgj、inb、inc的两个有效值被随机地选择,前提是两个有效值的最低有效位不同,在计算逻辑门的输出值时这些最低有效位被用于选择逻辑门的真值表中的一个值,并且被用于确定电路gc的输出的逻辑状态。

每个逻辑门的真值表gtt[i]包括四个值ov00、ov01、ov10、ov11,每个值对应于二进制输入值的组合(0,0)、(0,1)、(1,0)、(1,1),二进制输入值对应于逻辑门的输入值。软件组件gc的拓扑结构可以在表gtw中定义:通过对软件组件的每个线进行编号,即软件组件的每个输入线从1到(=d+n),逻辑门的每个输出从(inn+1)到(inn+g)进行编号,并且通过将表gtw的一个记录关联到软件组件gc的每个逻辑门,包括将两个线编号in1、in2关联到门的两个输入以及将一个线编号on关联到门的输出。软件组件gc的输出的线编号被从(inn+g-z+1)到(inn+g)进行编号。

通过使用在表gtt中编码的真值表,或者通过对门的输入值中的相同位列的每对位应用xor运算,xor门xgb、xgc可被执行。在后一种情况下,表gtw的字段gtyp定义门是xor门还是另一个门,并且表gtt针对不同于xor门的每个门包括一个记录。

根据实施例,表inlb、sglb、gtt中的每个值由128位字编码,并且表gtw的每个记录在64位字上进行编码,线编号in1、in2、on在21位字上编码。表gtw可以采用压缩的形式从服务器asrv被发送到终端ut,压缩形式例如是使用gzip压缩方案。

根据实施例,门表gtw和gtt中的逻辑门的顺序可以是随机定义的,只要该表在索引i处记录的gtw[i]和gtt[i]是指相同的门。

图10示出了根据实施例的应用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上。

图11示出了模块gcm,其被配置为执行软件组件gc并生成图像帧frm。模块gcm包括软件组件解译器gci、xor掩码电路xrg和像素映射模块mpf。解译器gci接收定义将要执行的软件组件gc的结构和内容数据gcd。因此,解译器gci接收数据dim、inlb、sglb、gtw、gtt和gck。

模块gci是专用解译模块,其被配置为连续地执行每个门层的每个逻辑门,这是由输入数据结构gcd中的数据所定义的,从第一门层开始。为此目的,解译模块gci可以使用接收软件组件gc的每个线的值的线表,这些值在与线值的线编号对应的索引处被写入表中。线表首先被加载软件组件的输入值inb、inc、rdkvq1、adlvq2,这些输入值在与被分配给输入值的线编号对应的索引(在1和inn=d+n之间)处被写入表中。然后,将每个所执行的逻辑门的计算输出值在与被执行的逻辑门的输出的线编号对应的索引处写入线表中。在软件组件执行结束时,线表包括在从(inn+g-z+1)到(inn+g)的索引处的软件组件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在与半透明图像omsk组合时变得可理解。图像掩码imsk被配置为根据对应的像素pxv的值和由半透明显示设备tdd显示的图像omsk中的对应的像素,使数字段sg或消息msg中的像素pxv在可观察到的图像img中可见或不可见。

当分别用图像帧的背景颜色或者用与背景颜色不同的颜色显示它们时,段sg或像素pxv在可观察到的图像img中的一个中是不可见或可见的。背景颜色由所考虑的段sg周围的像素的颜色来定义,并且可以根据图像img内的段的位置而变化。在另一个实施例中,段被显示在背景图像上。不可见段的每个像素用位于段像素下方的背景图像中的对应像素的颜色来显示。

根据一个实施例,为了更高的安全性,在步骤s23中使用另一个通信信道将最终掩码imsk发送到终端ut。

互连矩阵xm1定义被插入所生成的图像帧frm中的对应于软件组件gc的输入值的像素px'v的位置。如果软件组件gc的输出中的对应像素px'v通过半透明图像omsk是可见或不可见的,则软件组件gc的输入值inb、inc与图像掩码imsk相关地定义。可以在生成软件组件时随机选择软件组件gc的输入值inb、inc的相应的二进制状态,然后根据互连矩阵xm1、层l1中的门的结构,以及将通过半透明图像omsk观察到的图像img来生成图像掩码imsk。

映射模块mpf将模块xrg提供的像素值px'v组在适当的位置插入背景图像帧bckf中,以生成将要显示的图像帧frm中的一个。特别地,模块xrg提供形成如图6中所示的横幅框bnf的像素组px'v,以及形成在帧frm中将要显示的一个键盘帧kypf的每个键标签kyl的像素组px'v。映射模块mpf将这些像素组插入背景图像帧bckf中的相应的预定义位置,以生成如图6中所示的图像帧frm中的一个。在一个实施例中,模块xrg输出可直接显示的图像帧。在这种情况下,映射模块mpf不是强制的。

根据另一个实施例,由模块xrg执行的解掩码操作可以与所生成的图像帧frm组合,即,在由映射模块mpf执行的图像映射操作之后。因此,掩模imsk可以具有背景图像帧bckf或图像帧frm的大小。

根据实施例,可以不请求输入口令以认证用户,仅向用户请求所显示的验证码cc。

根据一个实施例,每次终端ut必须执行新的认证时,在步骤s27中执行新的软件组件gc,该新的软件组件gc显示具有不同的键布局的键盘kyp并且显示不同的验证码cc。

据实施例,为了避免一个软件组件gc的传输(在步骤s23中),每次要求用户终端执行新的认证时,若干备选的软件组件(由结构和内容数据gcd定义)可以在终端ut中一次性下载,并且每次终端ut必须执行新的认证时选择尚未执行的软件组件。作为示例,当应用app被下载并安装在用户终端ut中时,若干软件组件与应用app一起被下载。然后,当使用一个或多个软件组件时,例如当终端具有有效的网络连接时可以从服务器asrv将新的一组软件组件下载到终端ut。

根据实施例,若干备选软件组件以加密形式存储在终端ut中,并且每次终端ut必须执行新的软件组件时,服务器asrv向用户终端对发送应的解密密钥。

根据实施例,仅将每个软件组件的一部分下载到终端ut中。每个软件组件的下载部分可以包括数据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。

在使用乱码电路的实施例中,由服务器asrv在步骤s22中执行的软件组件的生成包括生成表示输入位的二进制状态0和1以及软件组件的逻辑门的输出位的二进制状态0和1的随机值,逻辑门输出的一部分对应于乱码电路的输出。软件组件的生成还包括随机选择互连矩阵xm1,即随机选择软件组件的输入和软件组件的逻辑门的输入之间的,以及一些逻辑门的输出和其他逻辑门的输入之间的链路(表格gtw的定义)。软件组件的生成还包括定义软件组件的逻辑门的真值表gtt,以及使用加密密钥来加密这些真值表的每个值。。

在使用乱码电路的实施例中,由服务器asrv在步骤s22中执行的软件组件的生成包括生成表示输入位的二进制状态0和1以及软件组件的逻辑门的输出位的二进制状态0和1的随机值,逻辑门输出的一部分与乱码电路的输出相对应。软件组件的生成还包括随机选择互连矩阵xm1,即随机选择软件组件的输入与软件组件的逻辑门的输入之间以及一些逻辑门的输出与其它逻辑门的输入之间的链路(表格gtw的定义)。软件组件的生成还包括定义软件组件的逻辑门的真值表gtt,以及使用加密密钥来加密这些真值表的每个值。软件组件的生成还包括根据所选择的乱码电路的有效输出值和由半透明显示设备tdd显示的图像omsk来生成解密掩码imsk。即使当图像omsk固定时,乱码电路和掩码imsk的生成也提供足够大的自由度以使得能够生成大量不同的乱码电路和仅可使用一次以执行单个用户认证的掩码imsk。

根据示例,软件组件gc的逻辑门的真值表的每四个值g(=gtt[in1{0}//in2{0}])可以计算如下:

g=pf2(in1,in2,ov)(4)

当考虑与in1、in2和ov的有效值对应的二进制状态以及由逻辑门执行的逻辑操作时,对于输入in1、in2和输出ov的有效值的每种可能组合,pf2代表不可逆函数。根据等式(2)定义的示例,逻辑门的真值表的每四个值g可以计算如下:

其中,

因此,很难确定输入和输出值的二进制状态以及软件组件的逻辑门的功能。因此,不能容易地确定软件组件gc的功能。另外,软件组件只能在大量无效值中处理电路每个输入的两个有效值。因此,不可能将任何值都应用于软件组件的输入。关于乱码电路的更多细节,可以参考mihirbellare、viettunghoang、philliprogaway于2012年10月1日的文档“乱码电路的基础(foundationsofgarbledcircuits)”。

由终端ut执行的黑客或恶意软件程序可能能够在步骤s10中获得用户输入的口令pc。然而,由于输入位置posi必须与通过执行在步骤s23中发送到终端ut的软件组件gc而显示的键盘kyp和验证码cc相对应,因此知道口令不足以使黑客在步骤s21到步骤s32中通过认证。通过分析所显示的图像帧frm或通过执行或分析软件组件,黑客或恶意软件只有非常短的时间以得到键盘键布局。

当服务器asrv生成软件组件gc时,它可以决定在软件组件的线的值中使用另一个位位列来定义这些值的对应二进制状态。在逻辑门agi的输入值中在所选择的位位列的位被用于选择逻辑门的真值表gtt中的数据,并且在软件组件gc的输出值pxi中在所选择的位位列的位被提取并应用于模块xrg。

替代显示具有可变键布局的键盘,软件组件gc和对应的掩码imsk可被配置为显示生物识别质询,请求用户使用可用作生物识别传感器的传感器来输入响应。传感器可以是相机、指纹传感器或麦克风(或虹膜传感器、心率监视器、葡萄糖监视器、血压传感器...)。在这种情况下,例如根据显示的说明,可以在步骤s10中邀请用户使用终端ut的传感器(或与终端安全地关联的传感器)在终端ut中引入所请求的生物识别数据。根据示例,可以指示用户使用指纹传感器输入他的几个或所有手指的指纹,和/或使用相机(传统的成像相机,或者任何其它类型的相机,诸如热或红外相机)拍摄他的面部的图片(例如,左部、前部、右部图片),和/或通过使用麦克风说出由终端ut显示的单词、字母或图形的列表以进行语音记录。在步骤s12中,由用户输入的生物识别数据被发送到服务器arsv并存储在用户数据库udb中。当在步骤s27执行软件组件时,用户在由软件组件显示的图像帧中引入与生物识别质询对应的所请求的生物识别数据(步骤s28)。在步骤s29中,将用户引入的生物识别数据发送到服务器arsv。在步骤s30、s31中,服务器asrv将所接收的生物识别数据与存储在用户数据库udb中并且对应于用户的生物识别数据进行比较。

示出这种生物识别质询的示例的图12示出了当用户终端ut执行软件组件gc时由其显示的图像帧frm的图像img1,其中图像img1可通过半透明图像omsk被观察到。图像img1包括显示消息msg的横幅帧bnf。在图12的示例中,消息msg包含与将要由用户验证的交易有关的信息,例如“order:transferxx€toyyyy”。图像img1进一步呈现生物识别质询,其请求用户使用终端ut的或者与其连接的摄像头来捕获他的面部的一部分。为此目的,图像img1呈现程式化的人类头部,头部的左、前和右侧与相应的随机选择的数字nd相关联。图像img1进一步呈现生物识别请求“示出你的面部的侧<编号>”以及验证键“v”,“<编号>”对应于所显示的数字nd中的一个。在图20的示例中,面部的左、前和右侧被编号为3、9和7,而请求捕获的面部的侧是侧3,即面部的左侧。

图13示出了当用户终端ut执行软件组件gc时由其显示的图像帧frm的图像img2的另一个示例,其中图像img2可通过半透明图像omsk被观察到。图像img2包括显示消息msg的横幅帧bnf。图像img2进一步呈现另一个生物识别质询,其请求用户使用例如终端ut或者连接到终端ut的指纹传感器来输入指定手指的指纹。为此目的,图像img2呈现程式化的左人手和右人手,每个手指与随机选择的数字nd相关联。图像img2进一步呈现生物识别请求“示出手指<编号>然后<数字>”以及验证键“v”。数字nd使用段sg来显示,例如使用七个段。在图13的示例中,示出了手的背面,左手被放在右手的左侧,并且十个手指分别与随机选择的数字(从左到右)8、3、1、2、6、7、5、4、9和0相关联。所请求的指纹被编号为0然后6,其对应于右手小指的指纹和左手拇指的指纹。

图14示出了通过半透明图像omsk被观察到的显示的图像帧frm的图像img3的另一个示例。图像img3包括显示消息msg的横幅帧bnf。图像img3进一步呈现另一个生物识别质询,其请求用户使用终端ut或者与其连接的麦克风来读出一个或多个单词。为此目的,图像img3呈现可以在字典中选择的单词列表,每个单词与随机选择的数字nd相关联。图像img3进一步呈现生物识别请求“说出单词<编号>”以及验证键“v”。在图14的示例中,所选择显示的单词是“单词1”、“单词2”和“单词3”并且分别与数字3、9和7相关联,请求说出的单词编号为7,即单词“单词3”。替代单词,可以请求用户说出字母或可以使用段sg显示的数字(其仅通过半透明图像omsk可见)。数字nd使用段sg来显示,例如七个段。

在另一些实施例中,生物识别质询例如可以是“说出单词<编号1>、<编号2>和<编号3>”或者“读出<编号3>单词的字母<编号1>和<编号2>”。

根据实施例,为了防止使用终端ut的截屏功能来获取所显示的数字nd(在图12、13、14中),使用段sg来显示数字nd,例如使用七个段,这些段仅通过半透明图像omsk可见。因此,所显示的数字nd变得对于用户可理解,但是不能使用截屏功能来捕获,因为它们在图像帧frm中不可见。

根据实施例,软件组件gc和掩码imsk被配置为使得定义请求回答的种类(如图6中的键盘中的键选择,或者如图12、13、14中的请求的生物识别质询)的像素仅在图像帧frm中不可见,而仅通过半透明图像omsk可见。为此目的,几乎图像帧frm中所有的像素都被加密以隐藏键盘的键的存在(图6),或者隐藏程式化的头部和手部(图12、图13),或者隐藏所显示的单词(图14)。以此方式,难以仅从所显示的图像帧frm确定用户期望的响应种类。

所生成并且通过半透明图像omsk观察到的图像帧frm的像素px'v的值pxiv可以计算如下:

pxiv=px'vorokv(6)

其中,okv是半透明图像omsk的对应的像素,并且px'v=pxvxormkv。如果像素okv是不透明的,则观察到的图像img(img1-img3)的像素pxiv具有不透明像素okv的颜色,如果像素okv是透明的,则像素pxiv具有图像帧frm中的像素px'v的颜色。像素okv可以是彩色的透明像素。在这种情况下,像素pxiv的颜色是像素okv和像素px'v的颜色的组合颜色。

根据实施例,半透明图像omsk是在其上印刷了黑色像素的透明标签,其可以在用户向服务器asrv注册之后(在步骤s14之后)被发送给用户。可观察到即使半透明图像omsk的像素是固定的(例如,印刷的),等式(6)也突出了针对掩模imsk的定义和软件组件的若干自由度。

根据另一个实施例,半透明显示设备tdd可控制以显示不同的图像。为此目的,显示设备tdd可以包括连接或通信电路以安全地接收将要显示的图像。显示设备tdd的标识符可以在用户数据库udb中注册并由服务器asrv用以确保给定的半透明图像omsk被选择性地发送到在数据库udb中注册的用户设备tdd。可以使用安全通信链接来执行图像omsk向用户设备tdd的传输,例如,涉及使用秘密密钥的加密技术。显示设备tdd可以是存储将要显示的一个或多个硬编码图像(例如,在先前的初始化步骤中存储和/或可更新或不更新)的无源设备。

例如,显示设备tdd可以与用户终端分离并且例如集成到半透明的iot设备中或者集成到链接到用户终端ut的外壳的盖中。显示设备tdd还可以集成到连接的眼镜或连接的眼科透镜的透镜中,以使得用户必须移动他的头部以定位由显示设备tdd显示的图像omsk,以将其叠加到由用户终端ut显示的图像帧frm上。

在本文中描述的图示旨在提供对各种实施例的结构的一般理解。这些图示不旨在作为利用其中描述的结构或方法的装置、处理器和系统的所有元件和特征的完整描述。通过组合所公开的实施例,许多其它实施例或其组合对于在阅读本公开的本领域的普通技术人员而言是显而易见的。可以利用并从本公开中获得其它实施例,以使得可以在不背离本公开的范围的情况下进行结构和逻辑替换和改变。

在本文中公开的方法可以完全或部分地由可由用户终端ut的主处理器hp(cpu)执行的软件程序实现,和/或至少部分地由用户终端ut的图形处理器gp来实现。

此外,在本文中公开的方法不限于显示诸如具有随机选择的布局的键盘和验证码、或生物识别质询的敏感信息。实际上,这种显示的目的是检查用户是否知道与服务器asrv共享的秘密数据,并且以仅可由人类感知的方式感知终端呈现的信息。替代的质询-响应方案可以在其它实施例中实现。根据实施例,所显示的消息msg可以请求用户输入诸如所显示的验证码cc的数字的总和或相乘的组合。

根据实施例,显示屏dsp可以与用户终端ut分离。例如,显示屏可以是智能手表、智能眼镜或虚拟现实或增强现实耳机中的一个,而用户终端可以是智能电话、平板计算机或笔记本计算机/台式计算机。在一些实施例中,显示器与用户终端之间的通信链路可以是无线的。例如,通信链路可以是蓝牙、wi-fi或任何其它无线点频率或无线通信技术中的一个或组合。

根据一些实施例,生物识别传感器与用户终端ut分离(例如,不是其一部分)。另外,可以单独或组合地使用各种传感器来获取生物识别数据biod。在心率监视器的示例中,智能手表可以提供生物识别传感器和用于显示生物识别质询的显示器。在另一个实施例中,可以使用单独佩戴的葡萄糖监视器。此外,在其它实施例中,心率监视器可以与热成像相机组合。在一些实施例中,生物传感器与用户终端之间的通信链路可以是无线的。在一些实施例中,一部分而不是所有通信链路可以使用安全协议。

可以使用除了将其显示在显示屏上以外的其它方式向用户发送质询。例如,可以使用诸如yusufadriansyah于2010年4月29日的“简单音频加密(simpleaudiocryptography)”中描述的音频加密算法通过音频装置向用户发送质询。根据该算法,原始音频序列被分解成长度与原始音频序列相同的多个源音频序列,其方式是使得可以只通过同时播放通过分解生成的所有源音频序列来重建原始音频序列,并且使得如果缺少任何一个源音频序列,则很难重建原始音频序列。可以规定同时播放两个源音频序列,一个经由终端ut播放,另一个经由其它装置,诸如具有存储源音频序列的存储器和播放所存储的源音频序列的耳机,而无需收听它的终端麦克风。如果用户通过同时播放两个源音频序列而听到可理解的音频消息,则这意味着便携式设备播放的源音频序列对源音频序列做出了补充。

此外,在本文中公开的方法不限于鉴于验证交易而对用户进行认证。在本文中公开的方法可被应用于向用户或从用户安全地发送秘密或敏感的信息,或者更一般地,可被应用于在非安全环境中安全地执行敏感性操作。

此外,在本文中公开的方法不限于包括使用单个用户终端来显示图像帧和秘密数据(pc,cc)的引入的方法。在本文中公开的方法可被应用于在另一个连接设备上安全地认证用户,帧图像被显示在用户终端上或者远程显示器上,诸如智能手表、虚拟或增强现实眼镜或镜片,或者被投影在表面上或以3d图像的形式投影,或者被显示在具有显示功能的任何物联网(iot)设备上等。类似地,生物识别数据可被输入到与用户终端连接的另一个设备中。类似地,秘密数据可以在连接到用户终端的另一个设备中输入或者使用语音或手势来输入。因此,词语“用户终端”可以指定单个设备或设备组,包括没有显示器的终端、iot设备、智能家庭终端,以及允许用户输入数据的任何输入终端。

可以通过语音或手势来控制用户终端ut。语音命令可以转换为命令。每个被识别的命令等同于posi中的一个。键盘可以由任何其它表示来代替,诸如需要手势、跟随几何图形或跟踪点之间的链接的表示。此外,输入终端可以是3d输入终端,用户可以通过在空中的3d手势用该3d输入终端来进行交互。因此,位置posi可以是空间中的3d坐标位置。

在其它实施例中,显示器可以是任何显示器,例如包括atm、自动售货机、电视、公共显示器、投影显示器、虚拟显示器、3d显示器或全息图。在其它实施例中,终端可以是任何输入设备,例如包括触摸屏、游戏配件、手势获取系统、语音或声音命令系统。

在其它实施例中,生成图像帧frm而无需应用掩模imsk,半透明显示设备tdd是活动的并接收与所生成的图像帧frm对应的将要显示的至少一个图像。

此外,在本文中公开的方法不限于涉及认证服务器的实现。其它实现可以涉及诸如在图2中所示的安全处理器se的用户终端内的安全单元,或者终端的主处理器hp内的安全域。在本文所公开的方法中,由服务器asrv执行的所有操作都可以由这种安全单元执行。图15示出了由用户终端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。

根据实施例,图15中的安全单元se可以通过借助于诸如nfc(近场通信)或蓝牙tm的通信链路连接到用户终端ut的外部终端来实现或者可以被实现为借助于诸如nfc(近场通信)或蓝牙tm的通信链路连接到用户终端ut的外部终端的一部分。外部终端可以是销售点终端。

此外,在本文中公开的方法不限于包括仅具有两个输入和一个输出的门的乱码电路。具有三个或更多输入以及一个或多个输出或者接收具有多于两个的有效状态的数据的其它类型的门可以使用具有多于四个线的真值表来实现。此外,在本文中公开的方法不限于通过乱码电路来实现软件组件。诸如包括混淆程序的软件组件的其它实现可用于隐藏加载在终端ut的主处理器中的程序的部分,和/或用于防止程序的敏感部分被未经授权的人揭露或修改。混淆程序的方法例如已在bennyapplebaumy、zvikabrakerskiz于2015年1月12日在iacr-tcc发表的“经由复合次序分级编码的混淆电路(obfuscatingcircuitsviacomposite-ordergradedencoding)”和joezimmerman于2014年9月30日在iacr发表的“如何直接混淆程序(howtoobfuscateprogramsdirectly)”的文献中公开。

更一般地,可以通过将用诸如c或c++的语言编写的程序翻译成诸如vhdl或verilog的电路设计语言来执行乱码电路的概念以获得包括逻辑门的逻辑或布尔电路。

此外,在本文中公开的方法不限于使用防止篡改和逆向工程的软件组件,诸如使用混淆或乱码电路方法生成的软件组件。作为这种应用的示例,在本文中公开的方法可用于执行不需要高安全性级别的操作,诸如数据隐私保护、视频游戏(例如,可用虚拟实况的管理)或医学眼睛测试。

此外,在本文中公开的方法不限于涉及掩模的实现,诸如用于解密软件组件的输出值的图像掩码imsk掩模的实现。其它实现可以生成并执行直接输出将要显示的像素值的软件组件。另外,消息msg可以在输出像素值中直接地提供。另外,掩码可以与软件组件或其结构和内容数据分开发送,例如,经由不同的发送装置,可选地在执行软件组件之后完全发送或分几部分发送。

此外,本文公开的方法可以用仅包括硬件键盘的用户终端ut来实现,所显示的帧frm仅被显示以将其它键标签分配给物理键盘。因此,代替触摸显示屏位置来输入位置posi,用户根据在所显示的帧frm中示出的指定标签来激活键盘的硬件键。

在本文中用于标准显示屏的术语“像素”可被理解为坐标,用于2d显示器的2d坐标或者用于3d或立体显示器或投影显示器的3d坐标等。

此外,本公开和图示应被视为说明性的而非限制性的,并且所附权利要求旨在覆盖落入本说明书的真实精神和范围内的所有这种修改、增强和其它实施例或其组合。因此,所附权利要求的范围将由权利要求及其等同物的最宽泛的可允许解释来确定,并且不应受前述描述的约束或限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1