CN114761958A - 用于安全通信的设备和方法 - Google Patents

用于安全通信的设备和方法 Download PDF

Info

Publication number
CN114761958A
CN114761958A CN202080078753.8A CN202080078753A CN114761958A CN 114761958 A CN114761958 A CN 114761958A CN 202080078753 A CN202080078753 A CN 202080078753A CN 114761958 A CN114761958 A CN 114761958A
Authority
CN
China
Prior art keywords
software
message
server
encrypted
user
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
CN202080078753.8A
Other languages
English (en)
Inventor
H·J·博斯
E·阿塔纳索普洛斯
R·K·克诺斯
K·拉扎维
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.)
Free University Foundation
Koninklijke Philips NV
Original Assignee
Free University Foundation
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Free University Foundation, Koninklijke Philips NV filed Critical Free University Foundation
Publication of CN114761958A publication Critical patent/CN114761958A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • G06F21/72Protecting 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 in cryptographic circuits
    • 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/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors

Landscapes

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

Abstract

一些实施例涉及从设备与服务器的安全通信。所述设备被配置为在安全模式下利用私钥对加密消息进行解密,并且在所述设备的显示器上显示与用户共享的秘密以及解密消息,以向用户指示消息正在由在所述安全模式下运行的软件显示。

Description

用于安全通信的设备和方法
技术领域
当前公开的主题涉及一种被配置用于与服务器安全通信的密码设备、一种用于与服务器安全通信的密码方法、以及一种瞬态或非瞬态计算机可读介质。
背景技术
随着在因特网上执行越来越多的交易,保护这些交易的重要性变得越来越重要。已经提出了若干解决方案来解决这个问题。例如,因特网上的安全交易常常依赖于双因子认证(2FA)。
当今用于安全网上银行和支付服务的双因子认证(2FA)方案常常在初始认证或后续交易验证期间将智能电话用于第二因子。作为结果,这样的解决方案易受攻击,并且仅提供弱的安全保证。具体地,攻击者可能损害电话(可能地包括内核),并破坏第二因子。这对于仅移动银行服务也是如此,而且对于使用单独设备(例如,PC)来发起交易的解决方案也是如此。例如,可以通过利用现有软件中的弱点、说服用户安装受到损害的软件、病毒等来启动攻击。
用户越来越多地完全依赖于移动应用以用于使用他们的银行服务,购买产品或预订旅行。通过智能电话使用基于网络的支付服务带来了便利,因为用户现在可以随时随地访问它们-即使在访问个人计算机不可能时。然而,这样的便利是以由2FA提供的安全保证为代价的。具体地,2FA常常假设两个因子保持独立和隔离,因为其需要两个因子的折中以发起欺诈性交易;然而当单个设备(诸如智能电话)服务于两个因子时,这种假设常常不是真的,因为攻击者仅需要损害潜在易受攻击的智能电话以破坏2FA,例如使用移动电话。因子之间的弱分离意味着如果一个因子受到损害,则这可能足以破坏所有因子。
如果攻击者获得移动设备上的根权限,则甚至PC发起的交易也是不安全的。在这种情况下,攻击者可以替换或篡改移动app,拦截消息并显示误导性信息。
遗憾的是,损害智能电话是现实的威胁,特别是给定在受到损害的PC,因为即使电话和PC在物理上是分离的,设备也常常不是独立的。令人惊讶的是,尽管有对当今的基于电话的2FA在实践中很弱的充分的证据,但这根本不是一个解决的问题。
甚至高级解决方案倾向于集中于有限的威胁模型,该模型排除了完全损害的电话,其中,攻击者获得根访问、感染内核和/或对应的app。假定2FA常常用于高价值交互(例如,银行业务)中,并且全系统损害是常常发生的,因此这种有限的威胁模型是不足的。期望改进交易的真实性,例如,以防止攻击者代表用户或服务器发起交易而不被注意到。
尽管在实践中,问题常常开始于两个因子之间的分离的缺乏,但是即使存在强分离,也存在其他同样基本的问题。特别地,已经被忽略的安全通信的方面是交易完整性,例如,防止攻击者修改所交换或显示的消息的内容。即使具有完美的交易认证,如果交易完整性弱,则系统仍然可能受到损害。例如,攻击者可能通过在显示器上显示误导性信息来劫持用户的交易,从而破坏交易的完整性。
发明内容
改进设备和服务器之间的安全通信将是有利的。
改进交易认证和完整性两者的一种方式是使用被配置有正常模式和安全模式的处理器系统。安全模式下的数据和代码可以与正常模式隔离。如果私钥存储在安全数据部分中,那么从服务器到达的利用对应的公钥加密的消息只能利用私钥来解密,并且只能通过仅由运行安全模式的软件来暗示。尽管这将改进通信的安全性,但是问题仍然存在。例如,已经损害设备的正常部分的攻击者可以控制用户可见的信息。例如,即使用户认为他同意交易B,攻击者也可以要求服务器执行交易A。例如,尽管屏幕上的消息向用户指示他比如正在在线购买一本书,但事实上并且他不知道,他正在向攻击者转移资金。
在实施例中,存储在设备处的只能在安全模式下访问的数据不仅包括私钥,例如,以解密来自服务器的消息,它们包括共享秘密,例如,在安全模式软件和用户之间共享的秘密。
可以在注册阶段中执行设置共享秘密。例如,设备可以被配置为允许用户设置共享秘密,例如,当初始化设备时,例如,当首次启动设备时。当首次安装或首次配置第二模式软件等时,也可以执行注册阶段。
共享秘密可以包括文本,例如单词或短语;共享消息可以包括图像。例如,用户可以例如在键盘(例如,触摸屏上的虚拟键盘)上键入文本。例如,用户可以利用设备的相机拍摄图像,例如自拍、他的家的图片、他的猫等。
稍后,例如,在使用阶段期间,当从服务器接收到加密消息时,安全模式软件可以将其解密并将消息与共享秘密一起显示。由于共享秘密仅为用户和安全模式软件所知,所以这向用户指示消息正在由安全模式软件显示。
已经损害正常模式软件的攻击者不能示出共享秘密。因此,完整性增加。用于从服务器向用户递送消息的该设备、方法或系统可以在交易(例如,银行转账)的背景下使用,但也可以在交易之外使用。例如,消息可以是信息性的。消息可以由服务器推送。例如,该消息可以通知用户他需要拿起新的银行卡,设置新的医院预约等。因为消息与共享秘密一起显示,所以用户已经增加了对消息的信任。
传输消息的形式和显示消息的形式不需要相同。例如,消息可以被压缩,可以具有元数据等,但是所示出的消息可以是未压缩的,或使其元数据被剥离。
消息的加密优选地与消息的签名或其他认证元素组合。例如,安全模式软件可以解密消息并验证消息上的签名。因此,当示出消息时,用户已经增加了信任,不仅通过安全软件对其进行解密,而且对其进行验证。例如,安全模式可以具有对一个或多个证书的访问以验证签名。(一个或多个)证书可以存储在安全模式数据中,但这不是必需的;它们可以处于正常模式,或与消息一起被接收。
当在交易中使用时,例如,安全通信可以用于对用户进行认证。这可以是唯一的认证,但也可以与其他认证因子(例如,凭证、生物特征等)组合。例如,可以例如与加密消息一起接收加密认证标签。加密认证标签还可以由安全模式软件(例如,第二软件)使用安全模式数据中的私钥(例如,与用于消息的相同的密钥或不同的密钥)来解密。认证标签可以包括在消息中。后者具有仅需要一次解密的优点。加密标签和加密消息也可以是两种不同的通信。
注意,交易可以在密码设备上发起,但这不是必需的。交易也可以在例如PC上发起,例如作为浏览会话的一部分。例如,用户可能想要进行银行转帐,例如,以支付产品或服务,并引起PC通过因特网向服务器(例如,银行)发送消息。服务器可以通过将加密标签和/或加密消息发送到密码设备(例如,与发起设备不同的设备,例如,发送到与PC不同的移动电话)来进行响应。
安全模式软件(例如,第二软件)可以被配置为对认证标签进行解密。为了认证,密码设备可以被配置为向服务器发送响应,该响应取决于认证标签来证明其知道解密密钥。这可以以多种方式完成。
首先,响应可以以多种方式取决于标签。响应可以包括标签本身、标签的散列、标签上的加密、标签上的签名、标签上的mac等,可能采取任何组合。当服务器接收到响应时,其可以验证其与它发送给设备的标签的关系。如果关系被验证,那么这增加了响应的发送器知道标签的信任,并且因此增加了其知道对加密标签进行解密的私钥的信任。响应还可以包括消息的散列。
其次,存在各种方法来创建响应。例如,响应可以至少部分地由安全模式软件计算。然后,安全模式软件可以将响应导出到正常模式软件。例如,响应可以明文地导出到正常模式软件,该正常模式软件然后可以至少部分地计算响应。注意,即使正常模式软件受到损害,导出明文标签也不必导致攻击。攻击者可以或可以不转发真实标签,可以或可以不修改其等,但是攻击者不能避免消息被用户看到。因此,服务器可以通知用户标签用于什么,例如用于什么交易,例如用于什么银行转账。如果用户不希望该传输,则他可以停止导出标签。服务器可以被配置为在其发送出加密标签之后不允许改变请求。如果期望避免标签的明文传输,则可以在从安全模式传递到正常模式之前例如利用密钥(例如,利用服务器的公钥)对其进行加密。
代替于内部地处理标签从解密到响应的计算的传输,设备还可以通过用户传输标签。例如,解密标签可以与共享秘密一起并且任选地与来自服务器的消息一起显示在显示器上。用户知道标签来自安全模式软件,因为其识别共享秘密。然后,用户可以在可以使用标签来计算响应的一些其他软件中录入标签。其他软件可以是在相同设备上运行的正常模式软件,或甚至是在不同设备(例如PC,例如用于发起交易的PC)上运行的软件。使用用户来传输标签对于创建遗留软件的安全性改进是特别有利的。
标签可以是任何数字序列,比如随机的80位序列、128位、256位、或更多或更少等。如果标签要由用户传输,则选择字母、数字、一个或多个单词等的序列以便于传输是有利的。
正常和安全模式可以是硬件强制的隔离环境,其甚至可以运行它们自己的正常和安全操作系统和/或它们自己的正常和安全app。现有技术可以用于创建正常和安全模式,例如ARM TrustZone。
已经创建并测试了各种实施例的原型。特别地,在十个现有app中集成了称为“SecurePay”的实施例。发明人发现,在安全模式软件就位的情况下,对现有app(例如,对现有银行app)的改变是最小的。改变通常需要对仅一小部分现有app的修改,例如,以引起它们接受来自安全模式的接口的OTP,而不是来自SMS等的OTP。此外,如果代码修改是不可能的,例如不允许的,则SecurePay的实施例仍然可以用作用于现有的基于SMS的2FA解决方案的安全插入式替换。例如,插入式实施例可以拦截SMS并向用户提供解密标签。解密标签可以由用户录入,而遗留app没有意识到它已经被安全模式软件解密。
诸如SecurePay实施例的实施例即使在存在所有正常模式软件都受到损害的设备的情况下也提供安全性,同时保持移动设备的便利性。注意,在实施例中,SecurePay功能的仅一部分需要在安全模式下实施,例如,用于处理第二因子的功能,而其余部分可以是正常模式部分。实际上,已经证明有可能创建一种是完全功能的但又足够小以允许正式验证的安全模式应用程序。
实施例可以应用于仅移动交易和在个人计算机上发起的交易,其中,移动设备仅用作第二因子。在实施例中,密码设备不是移动电话,但仍然是电子设备。
当前公开的主题的一个方面涉及使用签名而不是加密的安全通信。例如,在不一定与用于认证或2FA的标签一起使用的消息传递实施例中,使用签名而不是加密可能是优选的。还可以将签名与加密一起使用。本文给出的用于加密的实施方式示例可以应用于使用签名或使用具有加密的签名的实施例,例如,用于从服务器接收的消息和/或标签。
密码设备可以是电子设备。例如,密码设备可以是计算机。其可以是移动电子设备,例如移动电话。密码设备可以是消费电子产品,例如机顶盒、电视等。
本文描述的安全通信方法可以应用于广泛范围的实际应用中。这样的实际应用包括:敏感信息(例如,金融或医学信息)的传输、交易(例如,金融交易或医学预约)的认证等。
另一方面是一种用于与服务器安全通信的密码方法。服务器可以是计算机。方法的实施例可以在计算机上被实施为计算机实施的方法或者在专用硬件或者在两者的组合中。用于方法的实施例的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括用于当所述程序产品在计算机上运行时执行方法的实施例的计算机可读介质上存储的非瞬态程序代码。
在实施例中,所述计算机程序包括适于当所述计算机程序在计算机上运行时执行方法的实施例的所有或部分步骤的计算机程序代码。优选地,所述计算机程序被实现在计算机可读介质上。
当前公开的主题的另一方面提供一种使所述计算机程序可用于下载的方法。该方面当所述计算机程序被上载到例如Apple的App Store、Google的Play Store或者Microsoft的Windows Stores中时并且当所述计算机程序可用于从这样的商店下载时被使用。
附图说明
将仅通过示例参考附图来描述另外的细节、方面和实施例。附图中的元素是为了简单和清晰而图示的并且不一定是按比例绘制的。在附图中,与已经描述的元素相对应的元素可以具有相同的附图标记。在附图中,
图1示意性地示出了通信系统的实施例的示例,
图2a示意性地示出了密码设备的实施例的示例,
图2b示意性地示出了密码设备的实施例的示例,
图2c示意性地示出了密码设备的实施例的示例,
图3a示意性地示出了密码设备的实施例的示例,
图3b示意性地示出了密码设备的实施例的示例,
图3c示意性地示出了密码设备的实施例的示例,
图4a示意性地示出了认证方法的实施例的示例,
图4b示意性地示出了认证方法的实施例的示例,
图5示意性地示出了密码方法的实施例的示例,
图6a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图6b示意性地示出了根据实施例的处理器系统的表示。
图1-3c、6a-6b中的附图标记列表
100 通信系统
110 密码设备
120 计算机网络
130、170 处理器系统
140、180 存储器
150、190 通信接口
160 服务器
200-202 密码设备
210 通信接口
211 加密消息
212 加密标签
213 响应消息
220 第一软件
231、232 正常模式/安全模式接口
241 私钥
243 公钥
242 密码处理单元
244 响应器
250 显示生成器
251 共享秘密
270 公共硬件
271 显示器
272 输入设备
273 标签
291 正常模式
292 安全模式
300 密码设备
311 显示器
312 输入按钮
314 共享秘密
315 消息
316 标签
317 接受按钮
318 公钥
1000 计算机可读介质
1010 可写部分
1020 计算机程序
1110 (一个或多个)集成电路
1120 处理单元
1122 存储器
1124 专用集成电路
1126 通信元件
1130 互连
1140 处理器系统
具体实施方式
尽管当前公开的主题容许有许多不同形式的实施例,但是在附图中示出了并且将在本文中详细描述一个或多个特定实施例,应理解本公开要被认为是本公开的主题的原理的示例,而并不旨在将其限于所示和所描述的特定实施例。
在以下中,为了理解,在操作中描述了实施例的元素。然而,将显而易见,相应元素被布置为执行被描述为由其执行的功能。
此外,当前公开的主题不仅限于实施例,而且还包括本文描述的或在相互不同的从属权利要求中记载的特征的每一个组合。
图1示意性地示出了通信系统100的实施例的示例。通信系统100包括密码设备110和服务器160。
在实施例中,可能期望服务器160可以向设备110发送消息,例如,旨在用于设备110的用户。例如,消息可以是敏感的,例如,涉及金融或医学事项,或消息可以是安全相关的,例如,可能需要向服务器160认证设备110或其用户。然而,如果设备110受到损害,那么可以例如通过在设备110上运行的未授权软件在显示器上向用户示出任何消息,而用户可能认为该消息源自于服务器160。常规硬件、甚至要不然是高度安全的硬件(例如具有正常模式和安全模式以将安全操作与非安全操作分开的硬件)易受该问题的影响。
密码设备110可以包括处理器系统130、存储器140和通信接口150。服务器160可以包括处理器系统170、存储器180和通信接口190。系统110和/或160可以通过计算机网络120与彼此、外部存储设备、输入设备、输出设备和/或一个或多个传感器通信。计算机网络可以是因特网、内联网、LAN、WLAN等。计算机网络可以是因特网。该系统包括被布置为根据需要在系统内或在系统外通信的连接接口。例如,连接接口可以包括连接器,例如有线连接器(例如以太网连接器、光连接器等)或无线连接器(例如天线,例如Wi-Fi、4G或5G天线)。
计算机网络120可以包括未在图1中单独示出的额外元件,例如路由器、集线器等。在设备160中,通信接口190可以例如用于向设备110发送一个或多个加密消息和/或从设备110接收一个或多个加密响应。在设备110中,通信接口150可以例如用于从服务器160接收一个或多个加密消息和/或向服务器160发送一个或多个加密响应。通信接口还可以用于发送未加密消息等。消息可以是例如以电子形式接收的数字消息。
设备110和160的执行可以被实施在处理器系统中,例如一个或多个处理器电路,例如微处理器,其示例在本文中示出。图2a-2c示出了可以是设备110的处理器系统的功能单元的功能单元。例如,这些图可以用作处理器系统的可能功能组织的蓝图。在这些图中,(一个或多个)处理器电路未与单元分开示出。例如,图2a-2c中所示的功能单元可以全部或部分地以存储在设备110处(例如,在设备110的电子存储器中)并且可由设备110的微处理器执行的计算机指令来实施。在混合实施例中,功能单元例如作为协处理器(例如密码协处理器)被部分地实施在硬件中,并且被部分地实施在设备110上存储和执行的软件中。
图2a示意性地示出了密码设备200的实施例的示例。例如,设备200可以被实施在诸如设备110的设备上。设备200被配置用于与服务器安全通信。在图2a中未示出服务器。例如,服务器可以是服务器160。
例如,在实施例中,服务器被配置用于与密码设备安全通信,该服务器包括被配置为与设备通信的通信接口、被配置为存储与密码设备的私钥相对应的公钥的密钥存储设备、以及处理器系统,其被配置用于生成用于密码设备的消息,利用设备的公钥对消息进行加密并将加密消息从服务器发送到设备。
在设备200的实施例中,以这种方式显示从服务器发送的加密消息:设备200的用户具有对消息由设备200的安全模式显示的增加置信度并且因此正在被显示的消息不太可能被可能由于攻击而在设备200上运行的未授权软件损害的。更一般地说,由于第二软件的密码处理的结果(其为完整性保护(例如,签名、MAC等的验证)或机密性保护(例如,解密))而为一些内容实现的任何密码保证在内容与共享秘密一起显示时被扩展到内容,如本文所解释的。
设备200并且具体地设备200的处理器系统被配置有正常模式和安全模式。正常模式和安全模式有时被称为正常世界和安全世界(并且有时为了简单起见,被称为第一模式和第二模式)。正常模式可以用于运行不太关键的软件,例如用户应用、游戏等。安全模式用于运行更关键的软件,例如处理秘密信息(诸如秘密密钥)的软件。例如,可以在安全模式下执行解密或签名操作。一些应用可以大部分在正常模式下实施,但是在秘密模式下部分地依赖于部件。例如,银行应用程序可以大部分在正常模式下运行,但是当需要执行交易时,可以依赖于以安全模式运行的部分。
在图2a所示的示图中,已经用竖直虚线图示了在正常模式和安全模式下的分区。在左侧示出了安全模式292,并且在右侧示出了正常模式291。在安全侧292处描绘了可以在安全模式下执行的操作,而在正常侧291处描绘了可以在正常模式下执行的操作。在正常模式下运行的软件可以被称为第一软件,而在安全模式下运行的软件可以被称为第二软件。安全模式也可以被称为受信执行环境(TEE)。
安全模式下的数据和代码与正常模式隔离。例如,在安全模式下,可以存储私钥241和共享秘密251。这意味着在正常模式下运行的第一软件不能访问该数据。在安全模式下运行的软件可以访问该数据。
私钥241可以对应于服务器可以可用的密码设备的公钥。例如,来自服务器的消息可以利用公钥来加密。私钥241和公钥一起形成所谓的公钥/私钥对。
可以在注册阶段中执行设置共享秘密。例如,设备可以被配置为允许用户设置共享秘密,例如,当初始化设备时,例如,当首次启动设备时。当首次安装或首次配置第二模式软件时,也可以执行注册阶段。后者可能晚于设备的首次使用,甚至可能晚得多。如果设备在那时已经受到损害,那么所示出的消息仍然不能被信任:当用户认为他正在将他的共享秘密录入到安全模式软件时,他实际上可能将其录入到攻击者的软件中。然而,这仍然具有以下优点:如果设备在那时没有受到损害,则即使设备稍后受到损害,也可以信任消息。一般而言,注册阶段越接近设备的受信(例如,原始(例如,初始化))状态,消息中的信任越好。然而,安装该系统仍然总比不安装好。
在正常模式下,执行第一软件;在安全模式下,执行第二软件。为了将信息从正常模式传递到安全模式或反之亦然,可以安装接口。例如,图2a示出了正常模式/安全模式接口231和232,通过正常模式/安全模式接口231和232可以将消息从一种模式传递到另一种模式。可以对这些接口施加各种访问限制或控制。例如,第一软件没有对第二软件数据的访问权,除非第二软件将其放在接口上以传递到正常模式。例如,从正常模式传递到安全模式的代码可以仅在其用适当授权机构(例如,设备200的制造商)的私钥签名时才被执行。例如,接口231和232可以由可以在安全和正常模式下同样访问的存储器形成。
优选地,安全模式是硬件强制隔离环境。例如,可以使用硬件位来实施正常模式和安全模式,该硬件位被配置为使得翻转所述位改变数据访问并根据需要将控制转移到第一软件或第二软件。例如,设备200可以具有仅在安全模式下可访问的电子存储器,例如,如果所述位处于安全位置。例如,设备200的第一操作系统可以在正常模式下运行,并且设备200的第二操作系统可以在安全模式下运行。
尽管代码和数据可以在设备200中严格分离,但是在这两种模式下运行的软件仍然可以具有对相同的硬件的访问权或部分地具有对相同的硬件的访问权。图2a示出了可以由正常和安全模式软件使用的公共硬件270。例如,公共硬件270可以包括显示器271。第一和第二模式软件两者可以显示在显示器271上。然而,公共硬件被屏蔽以避免在两种模式之间形成反向信道。例如,在正常模式下运行的软件被阻止屏幕捕捉第二软件对消息的显示。同样,在第二软件正在运行时,可以阻止在正常模式下运行的软件叠加在显示器上。例如,在实施例中,可以从可从正常模式访问的帧缓冲器以及从可从安全模式而不是正常模式访问的帧缓冲器来操作显示器。以这种方式,如果需要,安全模式可以超越控制对显示器的访问。
在系统切换回正常模式之前,可以从敏感信息(例如,共享秘密、消息的内容)中清除由在安全模式下运行的软件所利用的资源中可能留下的、可以由在正常模式下运行的软件访问的任何信息。例如,假设使用单个帧缓冲器来驱动显示器,并且在安全软件正在安全模式下运行时,阻止正常软件访问帧缓冲器。在使用显示器示出例如共享秘密和消息之后,可以在系统切换回正常模式之前清除帧缓冲器;特别地,可以移除共享秘密和/或消息和/或标签。
在本领域中,安全模式、安全模式软件等的许多示例是已知的-有时被称为受信执行环境(TEE)。TEE是可以与例如智能电话或类似设备的操作系统并行执行的安全执行环境。若干硬件供应商已经引入了不同的硬件辅助TEE:Intel身份保护技术、Intel软件防护扩展、ARM TrustZone等。许多设备支持基于TrustZone的TEE。例如,通常,TEE可以管理受信应用,其向在移动设备的正常模式操作系统上运行的不受信应用提供安全服务。例如,可以提供用于创建在安全模式下运行的受信应用程序的API。
例如,如在ARM TrustZone中,可以通过使系统能够在两个执行域中并行运行来提供TEE:正常世界和安全世界。系统的当前状态可以由安全配置寄存器的非安全(NS)位的值确定。安全域可以具有访问所有硬件资源(如CPU寄存器、存储器和外围设备)的特权,而正常域被约束。可以存在称为监测器的额外CPU模式,其用作两个域之间的看门人,例如接口。该监测模式也可以是特权的,而不管NS位的状态如何。同样地,存储器地址空间可以被划分成可以例如使用TrustZone地址空间控制器标记为安全或不安全的区域。外围设备可以例如通过对TrustZone保护控制器进行编程而被标记为对安全世界可访问。
为了从正常世界切换到安全世界,系统初始地可以通过执行安全监测调用(SMC)来切换到监测模式。这允许监测模式验证是否应该允许从一个世界切换到另一个世界。如果确定请求有效,则其相应地修改NS位并完成世界切换。
图2a示出了被配置为与服务器通信的通信接口210。加密或未加密的消息可以在服务器和设备200之间传递。接口210可以是计算机网络接口。接口210可以在正常模式下操作,使得必须假设其内容可能受到损害。从服务器接收加密消息211。加密消息211利用密码设备的公钥来加密。这意味着其只能用与其对应的私钥(即私钥241)解密。由于私钥241仅在安全模式下可访问,因此可以假设攻击者不能解密加密消息211。然而,代替于解密消息211,攻击者还可通过显示不对应于消息211的真实内容的信息来试图误导设备200的用户。然而,设备200也可以具有针对这种类型的欺骗的对策。
注意,除了加密之外,消息211可以以多种其他方式被密码地保护。例如,消息211可以是完整性保护的,例如通过由服务器签名(例如用服务器的私钥)或通过包括消息认证码(例如在加密下)。
在正常模式(例如,第一模式)下运行的是第一软件220。第一软件220可以被配置为将加密消息211转发到在安全模式(例如,第二模式)下运行的第二软件。例如,消息211可以通过(一个或多个)接口231/232传递。
在图2a的左侧示出了第二软件的不同部件。例如,密码处理单元242可以在例如包括在第二软件中的安全模式下运行。密码处理单元242被配置用于执行密码操作,诸如解密或验证操作。例如密码处理单元可以使用软件(例如,密码库)来实施或例如使用密码协处理器至少部分地在硬件中实施。
密码处理单元242可以被配置用于利用私钥241对加密消息211进行解密。私钥241存储在安全模式的数据中,使得第一软件220不具有对密钥241的访问权。例如,解密算法可以是非对称解密算法,例如RSA私钥解密、椭圆曲线私钥解密等。
加密消息211也可以例如利用服务器的私钥签名。密码处理单元242可以被配置用于利用公钥243验证消息211上的签名。公钥243对应于服务器的私钥。公钥243可以存储在安全模式的数据中,使得第一软件220不具有对密钥241的访问权,并且因此不会影响将如何执行验证。尽管公钥243不必存储在安全模式数据中;其可以代替地存储在正常世界中,或可以与消息211一起接收。在后两种情况下,可以由密码单元242对公钥243执行对公钥243的真实性的一些检查,例如,验证密钥243是其中一部分的证书链。证书链的根可以存储在安全模式数据中。例如,签名验证算法可以是非对称算法,例如RSA公钥验证、椭圆曲线公钥解密等。
是否使用公钥243并验证签名或者使用私钥241并解密消息,或是否使用公钥243和私钥241两者来验证签名并解密消息取决于应用。下面给出了各种示例并将其应用于各种实施例。
在消息211已经被解密之后,显示生成器创建显示内容并将其发送到显示器271。例如,显示内容包括消息以及共享秘密251。与私钥241一样,共享秘密251也存储在安全模式的数据中,使得正常模式软件(例如,第一软件)不能访问它。共享秘密是与用户共享的秘密。如果用户看到秘密,则他知道显示是由在安全模式下运行的软件引起的。由于未经授权的软件比进入正常模式更可能进入安全模式,因此这增加了用户对他看到的显示内容被信任的信任,例如,该显示内容由经授权的软件生成,例如,由第二软件而不是由第一软件生成。
设备200优选地被配置为使得在第一软件被第二软件保留(例如,由第二软件操作)时,第一软件不能写入显示器。同样,第二软件不能从显示器读取以获得共享秘密251。
例如,如果用户看到他的共享秘密251以及来自他的银行、或他的医生、或他的丈夫或妻子等的所述指令,则他知道所述消息由第二软件显示,这继而意味着其被私钥241解密,这继而意味着在正常模式下操作的攻击者不能已读取消息。同样地,如果在消息上验证了签名,那么看到消息的用户可以确保消息事实上是由知道与验证公钥相对应的私钥的某人签名的,例如,消息可能是真实的。验证公钥(例如,密钥243)可以存储在安全模式数据中,但是也可以从正常世界例如以一个或多个证书的形式接收。
第二软件可以被配置为在显示内容中显示消息的密码状态,例如,消息是否被加密和/或签名以及由谁签名。
由于其执行将(一个或多个)加密和/或签名消息发送到密码设备的功能,因此称为服务器。服务器通常可以包括独立计算机,但是可以被实施在移动设备(例如,另一电话)中。在这种情况下,设备和服务器可以在设备和服务器角色之间交替的同时彼此发送消息。
图3a和3b示出了示例性密码设备。在显示器上示出的是共享秘密314和消息315。(标签316和按钮317是任选的并且在本文其他地方讨论)。
返回到图2a。作为示例,共享秘密可以是例如由用户先前键入或为用户选择(例如,随机选择)的秘密文本。共享秘密可以是例如先前向用户示出的图像。可以例如通过随机并置定位图像元素(例如,三角形、圆形等)来随机生成图像。例如,图像可以由设备200的相机捕捉。例如,相机可以是公共硬件的一部分,但是仍然在对第二软件的控制下,例如在临时控制下。例如,用户可以将地标(例如,他的花园或阳台)的自拍或图像采取为共享秘密等。优选地,共享秘密仅为用户和第二软件所知。
在实施例中,设备200的启动代码可以被配置为在对其配置的初始化启动序列期间从用户接收共享秘密。例如,当假设设备处于原始状态时,可以在首次启动或完全系统重置时将共享秘密加载到TEE中。由于仅受信代码知道秘密,所以用户知道如果设备在屏幕上显示图像和/或文本,则受信代码处于控制中并且没有其他代码正在运行。恰在将控制返回到正常世界之前,如果存储器可由第一模式软件访问,则第二软件可以从存储器中移除共享秘密。
私钥241及其对应的公钥可以由在安全模式下运行的第二软件生成。私钥(例如,私钥241)可以存储在安全模式的数据中。可以将公钥发送到第一软件,第一软件被配置为将公钥发送到服务器。
在实施例中,公钥可以替代地或同样地例如以计算机光学可读格式与共享秘密一起显示在显示器上。光学可读格式可以是QR码。这具有以下优点:用户可以在授权机构之前验证所示出的QR码事实上是对应于该私钥的公钥。这具有以下优点:授权机构(例如银行)不能被欺骗为认为攻击者的密钥是用户的密钥。
图3c示出了示例。示出了QR码318,其对对应于私钥241的公钥进行编码。也在共享秘密314中示出。由于共享秘密仅存储在仅在安全模式下(例如,在安全世界中)可访问的数据prat中,因此不能已通过正常模式代码显示该屏幕,即使正常模式代码受到损害。设备300的用户可以验证共享秘密314,并且然后扫描屏幕。以这种方式,向用户确保扫描器将记录的公钥(例如,诸如银行的授权机构)是事实上对应于他自己的私钥(例如,私钥241)的公钥,而不是攻击者的密钥。
在实施例中,用户可以在扫描屏幕之前移除(例如,扫除)秘密314,以避免公开共享秘密。
在实施例中,第一软件220向服务器做出请求,例如,对银行转账的请求。作为回应,服务器可以发送加密消息。例如,加密消息可以取决于请求。例如,请求可以包括请求的摘要,例如银行转账和/或预期接收方的量。例如,请求可以是对医院预约的请求。在这种情况下,消息还可以包括关于请求或关于医院处的可用性的信息。
例如,第一软件220可以被配置用于将交易请求发送到服务器,并且响应于交易请求而接收加密认证标签212。
在实施例中,设备200可以包括另外的视觉指示器,例如LED,其被配置为指示显示器的内容是否源自于安全模式。例如,如果设备切换到安全模式,则指示器可以打开。除了共享秘密之外或甚至代替共享秘密,这可以被使用。设备200可以被配置为使得第一软件不具有对视觉指示器的控制。
图2b示意性地示出了密码设备201的实施例的示例,其中,设备向服务器认证其自身。密码设备因此可以被称为“认证设备”。设备201可以与设备200相同,除了在特别是关于多个添加进行指示的情况下。
设备201被配置为除了消息之外或代替于消息,从服务器接收加密认证标签212。加密认证标签可以利用密码设备的公钥来加密。这可以是对应于私钥241的相同公钥,但是它也可以是不同的密钥。例如,设备201可以包括消息私钥241和不同的标签私钥。
然而,也将加密认证标签从正常模式发送到安全模式,其中,其可以由密码处理单元242解密。响应器可以使用解密标签244来生成响应消息。例如,响应消息可以包括解密标签、或解密标签的散列、或解密标签上的签名、或解密标签的加密(利用不同的密钥,例如,利用服务器的公钥)。然后可以将响应213发送回正常模式,并从那里发送到服务器。当服务器接收到响应消息213时,其可以推断响应消息的生成器知道解密标签,并且因此知道标签私钥,例如密钥241。由此,服务器可以增加其对消息已经到达正确的设备的信任,并且甚至增加其对消息在显示器上被示出的信任。
例如,在实施例中,安全模式的数据可以包括服务器的公钥。第二软件可以被配置为利用服务器的公钥来加密认证标签。例如,在实施例中,第二软件可以被配置为利用第二软件的私钥(例如,密钥241)对认证标签进行签名。签名也可以由第一软件完成,但是利用不同的密钥,例如,在正常模式下存储的不同私钥。
响应器244可以任选地从输入设备272接收输入。输入设备272可以是按钮、键、键盘、触摸屏、鼠标、指针等。利用输入设备,用户可以指示他阅读了消息,或他同意了消息。例如,用户可以指示他同意消息中指示的交易。图3b示出了在触摸显示器上显示的接受按钮317。通过触摸按钮317,用户指示他接受交易。显示器还可以包括拒绝或取消按钮。代替于触摸屏按钮,例如接受或拒绝按钮,可以使用其他输入设备,例如机械按钮312。
加密消息可以与加密认证标签协同接收,例如,两者可以是较大消息的一部分,例如,它们可以是顺序的等。它们不一定需要来自相同的源,但这将是典型的。标签和消息可以在可能具有签名的相同加密消息中。
一旦第二软件已经显示了消息,并且从设备201的用户获得了对所显示的消息的响应,可以根据该响应将认证标签发送到第一软件。后者可以是普通的,但是优选地以密码保护的方式完成,例如,为了机密性而加密。
标签和/或消息可以通过与用于对服务器的响应消息的通信信道不同的通信信道来接收。例如,在实施例中,加密认证标签和/或消息可以通过第一类型的计算机通信接口(例如,SMS)来接收,并且其中,认证消息通过不同于第一类型的第二类型的计算机通信接口(例如,因特网)来发送。标签可以包括随机数、不重数等。
注意,在设备201中,解密标签或从解密标签计算的数据可以通过设备201内部的软件接口(例如(一个或多个)接口231/232)例如以包括认证标签的消息的形式发送到第一软件。
在实施例中,消息213可以是双因子认证方案中的一个因子。例如,第一软件和/或第二软件可以被配置为在完成对服务器的认证之前从认证设备的用户接收另外的认证因子,例如凭证或生物特征。另外的凭证等也可以或替代地包括在对服务器的响应消息中。
图2c示意性地示出了密码设备202的实施例的示例。设备202可以与设备201相同,除了标签被转发到第一软件的方式。
在设备202中,第二软件(例如,显示生成器250)可以被配置用于在显示器上显示认证标签。响应器现在是任选的,其可以例如用于终止消息和/或标签的显示。
现在预期用户在第一软件中录入所显示的标签273。注意,在这种情形中,接收加密标签212的软件和使用解密标签的软件可以不同。例如,第一软件可以被配置用于通过设备202的输入接口(例如,输入设备272)从用户接收认证标签。例如,第二软件可以将解密标签显示为图3a中的标签316。另外的软件(例如,另外的第一软件)可以从服务器接收标签作为输入,并使用它来例如向服务器进行认证。另外的软件可以在PC上或在密码设备上运行。
设备202对于与遗留软件一起工作是特别有用的。例如,考虑其上安装有现有软件(比如银行软件)的现有移动电话。软件预期用户键入其通过SMS消息接收的认证标签。为了将系统升级到更高的安全性,可以发送加密的标签,而不是录入加密标签,加密标签(例如,整个SMS消息)被转发到第二软件,在那里其被解密并且标签例如与消息和共享秘密一起被示出。如果用户信任它,则他现在在原始银行app中录入解密标签。银行app将表现得好像标签是通过SMS接口接收的,但是实际上其是通过第二软件传递的。比如,即使其没有改变,银行app的安全性也增加。
标签可以包括数字或字母的序列,或所谓的一次性密码(OTP)。
本文阐述的原理可以用于放大用于从服务器接收的数据的密码机密性保护和/或放大密码完整性保护。这可以通过将经处理的数据与共享秘密一起显示来完成,从而增加对第二软件事实上已经执行了期望的密码处理的信任。因此,如果例如密码完整性保护失败,则消息将不会被传递到下一步骤,例如消息的显示。确切地,可以使用加密和签名的哪种组合取决于应用,但是下面给出了多个示例。
可以从服务器接收具有签名的消息。利用服务器的公钥(例如,密钥243)验证消息。密钥241是任选的。如果签名错误,则丢弃具有签名的消息。
可以从服务器接收加密并具有签名的消息。利用服务器的公钥(例如,密钥243)和私钥241验证消息。
可以从服务器接收加密且没有签名的消息,但是对应于私钥241的公钥是秘密的,例如,仅第二软件和服务器已知。
可以从服务器接收具有签名和/或加密的消息、以及被加密的标签。消息利用服务器的公钥(例如,密钥243)来验证和/或解密,并且标签利用私钥241来解密。在这种情况下,可以注意消息和标签之间的链接不能受到损害。例如,标签上的签名可以链接到消息,例如,通过在签名中包括消息的散列。解决这一点的另一种方式是将响应链接到消息,例如通过利用私钥241对响应进行签名,该响应取决于标签和消息。例如,可以包括消息和标签上的散列。服务器现在可以验证是否执行了正确的消息。
单个消息可以包括要显示的信息和标签。单个消息可以被加密。在没有签名的情况下,可想到攻击者可以在没有检测的情况下改变消息。然而,通过这样做,他也将可能改变标签。通过返回标签或标签的函数,设备隐含地确认显示了正确的信息。单个消息可以用多个消息替换,例如通过密码地链接它们。
作为最后的示例,单个消息可以包括要显示的信息和标签。单个消息被加密并被提供有签名。该响应包括标签和消息的函数,例如标签和消息本身或散列等。服务器验证标签的函数以对密码设备和消息的函数进行认证,以验证示出了正确的消息。可以在安全模式下执行消息的函数。为了证明后者,还可以利用密码设备的私钥对响应进行签名。
在设备110、160、200、201、202的各种实施例中,可以从各种备选方案中选择通信接口。例如,接口可以是到局域网或广域网(例如,因特网)的网络接口、到外部数据存储设备的存储接口、键盘、应用接口(API)等。
设备110、160、200、201、202可以具有用户接口,该用户接口可以包括众所周知的元件,诸如一个或多个按钮、键盘、显示器、触摸屏等。用户接口可以被布置用于适应用于配置系统的用户交互,例如,请求或响应于请求、消息等。
存储设备可以被实施为电子存储器(比如闪存)或磁存储器(比如硬盘等)。存储设备可以包括一起构成存储设备的多个离散存储器。存储设备可以包括临时存储器,比如RAM。存储设备可以是云存储设备。
服务器160可以被实施在单个设备中。设备可以被实施在单个设备中。通常,设备110、160、200、201、202均包括执行存储在系统中的适当软件的微处理器;例如,该软件可能已经被下载和/或存储在对应的存储器中,例如,诸如RAM的易失性存储器或诸如闪存的非易失性存储器。备选地,系统可以全部或部分地以可编程逻辑被实施为例如现场可编程门阵列(FPGA)。系统可以全部或部分地被实施为所谓的专用集成电路(ASIC),例如为其特定用途定制的集成电路(IC)。例如,电路可以被实施在CMOS中,例如使用硬件描述语言,诸如Verilog、VHDL等。特别地,设备110、160、200、201、202可以包括用于评价密码原语的电路,例如加密、解密、签名、验证。
处理器电路可以例如以分布式方式被实施为多个子处理器电路。存储设备可以分布在多个分布式子存储设备上。存储器的一部分或全部可以是电子存储器、磁存储器等。例如,存储设备可以具有易失性和非易失性部分。存储器的一部分可以是只读的。
下面将若干另外的任选细化、细节和实施例作为可能实施例的示例进行说明。
图4a和4b示意性地示出了认证方法的实施例的示例。附图示出了用户401和服务器410,在这种情况下,银行。密码设备以两种模式示出:当在正常模式421下操作时和当在安全模式422下操作时。但部分421和422是相同的设备。
图4a在正常模式下示出了支持软件431和遗留软件432。在安全模式下,运行第二软件,但这没有在图中单独示出。箭头在图4a中描绘了以下内容:
451:用户在软件431处发起交易,
452:软件431将请求转发到服务器410,
453:服务器410发送加密消息,例如包括OTP和请求摘要。
454:软件431检测加密消息,例如SMS,并调用安全模式软件。
455:用户验证交易细节并从显示器获得OTP,
456:用户在软件432中录入OTP,
457:软件432转发OTP以确认交易。
图4b在正常模式下示出了第一软件441。在这种情况下,没有遗留软件;替代地,该实施例是集成的。箭头在图4b中描绘了以下内容:
461:用户在软件441处发起交易,
462:软件441将请求转发到服务器410,
463:服务器410发送加密消息,例如包括OTP和请求摘要。
464:软件441检测加密消息,例如SMS,并调用安全模式软件。
465:用户验证交易细节并点击接受,
456:第二软件将签名的OTP发送到软件441,
457:软件441转发签名的OTP以确认交易。
注意,在图4a中,OTP经由用户传递,但是在图4b中,OTP经由内部信道传递。可以使用如本文描述的变体;例如,代替于OTP,可以使用任何标签,可以与标签不同地计算响应。显示器在安全模式422下优选地示出共享秘密。
根据实施例,已经构建和测试了称为“SecurePay”的若干原型。这些实施例具有用户被循环以实施交易的真实性的优点。SecurePay使用TEE(诸如ARM's TrustZone)来创建硬件强制的隔离环境。SecurePay使用由公钥密码术和TEE提供的真实性来保护交易的完整性。SecurePay依赖于基于软件的安全显示实施方式,其输出只能由这样一来由用户可识别的合法代码产生。SecurePay提供由TEE实施的防篡改机制,其允许用户安全地向允许认证(例如,通过双因子认证(2FA))的服务提供商注册。
为了提供兼容性,SecurePay能够利用SMS作为用户与服务提供商之间的通信信道,并且提供正常世界部件(SecurePay app)以将接收到的加密SMS传递到TEE中的SecurePay的受信app(Ta)。尽管这样做可能是有益的,但是服务提供商不必修改其移动app来利用SecurePay。
在接收到加密的OTP和交易摘要时,用户可以调用SecurePay app以在安全屏幕(由TEE控制)上显示解密消息。
在操作中尝试了两种不同类型的实施例,一种是对现有的基于SMS的方案的完全透明的插入式替换,而另一种需要对服务提供商的app进行小修改但提供完全集成以简化用户交互。
插入式替换模式在图4a中图示。首先,用户从电话上(或在她的PC上运行的浏览器中)的app发起交易。服务提供商接收该请求并利用包含加密消息(使用用户的SecurePay的公钥)的SMS进行响应,该加密消息包括交易摘要和OTP。SecurePay的安全app接收该SMS并启动受信UI以向用户显示交易摘要和OTP。一旦用户验证了交易的真实性,她就可以切换到服务提供商的app并进入OTP,就像她将用现有的基于SMS的OTP进行的一样。然后将该OTP转发给服务提供商,并且如果其与先前由提供商发送的OTP匹配,则交易成功完成。该版本的SecurePay不需要对电话上的服务提供商的app进行任何修改,但是其确实需要用户记住(或记录)OTP并将其录入服务提供商的移动app(或网络接口)中以确认交易。幸运的是,心理学研究已经表明,人类可以在其短记忆中毫无困难地记住平均7个项目。目前,大多数服务使用较少的数字(5至6)作为OTP。
SecurePay可以利用对服务提供商的app的小修改来完全隐藏OTP以完全集成SecurePay。图4b示出了在该版本的SecurePay中用于确认交易的可能序列。主要差异在于服务提供商的app直接与SecurePay受信app通信。类似于先前版本,用户使用服务提供商的app发起交易。然后,服务提供商向电话发送具有加密摘要和OTP的SMS。鉴于我们不想增加SecurePay的代码库,我们让提供商的app(而不是SecurePay)(经由SMS或因特网)接收该信息并将其转发到SecurePay受信app,SecurePay受信app对消息进行解密并向用户示出交易摘要(但没有OTP)。用户需要做的唯一事情是在查看摘要之后接受或拒绝该交易。然后,SecurePay受信app透明地对OTP进行签名并将其发送到服务提供商的app,该app继而将签名的OTP转发到服务提供商。在接收到签名的OTP时,如果OTP与先前发送的OTP匹配,则提供商完成交易。该版本的SecurePay为用户提供了更多的便利,但是需要对服务提供商的app进行小修改(平均大约20行代码)。
利用实际服务启用SecurePay可以涉及将公钥传递到服务。在用户拥有若干设备的情况下,所有设备可以利用受SecurePay保护的服务进行注册。当用户在设备上安装客户端部分(例如,移动应用程序)时,可以进行注册。为了成功注册,用户可以将公钥安全地传递到服务-在完整性方面,不一定是机密性。
在安装SecurePay移动app之后,用户可以调用SecurePay TA以在受信屏幕上显示公钥的QR码。注意,用户可以通过在将个性化图像或秘密文本共享给银行之前验证个性化图像或秘密文本来确保显示器当前由受信app控制。最后,银行简单地扫描QR码以从用户的设备安全地检索公钥。
即使移动设备可能在注册时已经受到损害,也阻止攻击者利用用户的账户注册他们自己的公钥。
注意,SecurePay的注册与许多其他支付服务的注册相当或比许多其他支付服务的注册更简单。例如,为了启用电子银行,许多银行需要硬件令牌。更重要的是,SecurePay的威胁模型比现有系统的威胁模型强得多-保护用户免受从完全受到损害的设备发起的攻击,其中,攻击者甚至控制设备的操作系统内核。
图5示意性地示出了密码方法500的实施例的示例。方法500可以是计算机实施的,并且包括:
-在处理器系统的正常模式下执行(510)第一软件,所述处理器系统被配置有所述正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所所述安全模式下的所述数据至少包括私钥和与用户共享的秘密,执行所述第一软件包括:
-从所述服务器接收(511)加密消息,所述加密消息利用所述密码设备的与所述私钥相对应的所述公钥来加密,
-将所述加密消息转发(512)到第二软件,并且
-在所述安全模式下执行(520)第二软件,执行所述第二软件包括:
-利用存储在所述安全模式的数据中的所述私钥对所述加密消息进行解密(521),
-将所述共享秘密与所述消息一起显示(522)在显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示。
通过代替于解密消息或除了解密消息之外还执行签名的验证来获得该方法的感兴趣的变体。
例如,密码方法可以是计算机实施的方法。例如,执行第一和第二软件可以在处理器系统(例如,处理器,例如微处理器)上完成。例如,接收和显示可以使用硬件,例如接收接口、天线等、显示器、显示屏、显示接口。例如,转发可以使用内部转发机制,例如总线、API、控制器等。例如,解密可以使用密码协处理器。私钥的大小可以取决于所选择的特定非对称加密/解密方案、平台、期望的安全水平等。例如,对于ElGamal,可以使用768位或更少或更多的密钥大小。例如,对于RSA,可以使用2048位、或更少、或更多等等。非对称加密/解密可以与例如128位或更少或更多的临时对称密钥结合使用。
执行方法的许多不同的方式是可能的,如对于本领域技术人员而言将是显而易见的。例如,步骤的顺序可以以所示的顺序执行,但是步骤的顺序可以变化或一些步骤可以并行执行。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示诸如本文描述的方法的细化,或可以与该方法无关。例如,一些步骤可以至少部分地并行执行。此外,在下一步骤开始之前,给定步骤可能尚未完全完成。
方法的实施例可以使用软件执行,其包括用于使处理器系统执行方法500的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,例如硬盘、软盘、存储器、光盘等。软件可以作为信号沿着线、无线或使用数据网络(例如,因特网)发送。该软件可以可用于下载和/或在服务器上远程使用。可以使用位流来执行方法的实施例,该位流被布置为配置可编程逻辑,例如,现场可编程门阵列(FPGA),以执行该方法。
将意识到,当前公开的主题还扩展到计算机程序,特别是适于将当前公开的主题付诸实践的载体上或载体中的计算机程序。程序可以采取源代码、目标代码、代码中间源和诸如部分编译形式的目标代码的形式,或者适用于实施方法的实施例的任何其他形式。涉及计算机程序产品的实施例包括与阐述的方法中的至少一个的处理步骤中的每个相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在可以静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与阐述的系统和/或产品中的至少一个的设备、单元和/或部分中的每个相对应的计算机可执行指令。
图7a示出了具有可写部分1010的计算机可读介质1000,所述可写部分包括计算机程序1020,计算机程序1020包括用于使处理器系统执行根据实施例的用于安全通信的方法的指令。计算机程序1020可以作为物理标记被实现在计算机可读介质1000上,或通过计算机可读介质1000的磁化而被实现。然而,也可想到任何其他适当的实施例。此外,将意识到,尽管此处将计算机可读介质1000示为光盘,但是计算机可读介质1000可以是任何适当的计算机可读介质,诸如硬盘、固态存储器、闪速存储器等,并且可以是不可记录的或可记录的。计算机程序1020包括用于使处理器系统执行所述用于安全通信的方法的指令。
图7b示意性地示出了根据实施例的密码设备的处理器系统1140或用于安全通信的方法的表示。处理器系统包括一个或多个集成电路1110。在图7b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120(例如,CPU),其用于运行计算机程序部件以执行根据实施例的方法和/或实施其模块或者单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的部分可以是只读的。电路1110可以包括通信元件1126,例如,天线、连接器或者两者等。电路1110可以包括用于执行方法中定义的处理的部分或全部的专用集成电路1124。处理器单元1120、存储器1122、专用IC 1124和通信元件1126可以经由相互连接1130(比如说总线)彼此连接。处理器系统1110可以被布置用于分别地使用天线和/或连接器的接触和/或无接触通信。
例如,在实施例中,处理器系统1140(例如,密码设备)可以包括处理器电路和存储器电路,处理器被布置为运行存储在存储器电路中的软件。例如,处理器电路可以是IntelCore i7处理器、ARM Cortex-R8等。在实施例中,处理器电路可以是ARM Cortex M0。存储器电路可以是ROM电路、或者非易失性存储器,例如,闪存。存储器单元可以是易失性存储器(例如,SRAM存储器)。在后者情况下,设备可以包括非易失性软件接口(例如,硬盘驱动器、网络接口等),其被布置用于提供软件。
如本文所使用的,术语“非瞬态”将被理解为排除瞬态信号,但是包括所有形式的存储设备,包括易失性和非易失性存储器。尽管设备1110被示出为包括每个所描述的部件中的一个,但是可以在各种实施例中复制各种部件。例如,处理器单元1120可以包括多个微处理器,其被配置为独立地执行本文描述的方法,或被配置为执行本文描述的方法的步骤或子例程,使得多个处理器协作以实现本文描述的功能。此外,在设备1110被实施在云计算系统中的情况下,各种硬件部件可以属于单独的物理系统。例如,处理器1120可以包括第一服务器中的第一处理器和第二服务器中的第二处理器。
以下编号的条款不是权利要求,而是包括预期的示例。例如,在本申请或由其衍生的任何进一步申请的审查期间,可以对这些条款和/或这些条款的组合和/或从说明书或权利要求中获取的特征制定新的权利要求。
1、一种被配置用于与服务器安全通信的密码设备,所述设备包括:
-通信接口,其被配置为与所述服务器通信,
-处理器系统,其被配置有正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所述安全模式下的所述数据至少包括与所述密码设备的公钥相对应的私钥和与所述设备的用户共享的秘密,其中,
-在所述正常模式下执行第一软件,所述第一软件被配置用于:
-从所述服务器接收加密消息,所述加密消息利用所述密码设备的所述公钥来加密,
-将所述加密消息转发到第二软件,
-在所述安全模式下执行所述第二软件,所述第二软件被配置用于:
-利用存储在所述安全模式的数据中的私钥对所述加密消息进行解密,
-将共享秘密与所述消息一起显示在所述密码设备的显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示。
2、根据条款1所述的密码设备,还被配置为向所述服务器进行认证,
-认证软件被配置用于在所述正常模式下:
-从所述服务器接收加密认证标签,所述加密认证标签利用所述密码设备的公钥来加密,
-使所述加密认证标签由所述第二软件解密,
-向所述服务器发送取决于所述认证标签的认证消息,以向所述服务器认证所述密码设备,
-所述第二软件被配置用于在所述安全模式下:
-利用对应于所述公钥的私钥对所述加密认证标签进行解密。
3、根据条款2所述的密码设备,其中,所述加密消息与所述加密认证标签协作接收,所述第二软件被配置为用于:
-从所述密码设备的用户获得对所显示的消息的响应,
-根据所述响应将所述认证标记发送到所述第一软件。
4、根据前述条款中的任一项所述的密码设备,其中,
-所述第二软件被配置用于通过所述密码设备内部的软件接口将包括所述认证标签的消息发送到所述第一软件,或
-所述第二软件被配置用于在所述显示器上显示所述认证标签,第一认证被配置用于通过所述密码设备的输入接口从所述用户接收所述认证标签。
5、一种用于与服务器安全通信的密码方法(500),所述方法包括:
-在处理器系统的正常模式下执行(510)第一软件,所述处理器系统被配置有所述正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所所述安全模式下的所述数据至少包括私钥和与用户共享的秘密,执行所述第一软件包括:
-从所述服务器接收(511)加密消息,所述加密消息利用所述密码设备的与所述私钥相对应的所述公钥来加密,
-将所述加密消息转发(512)到第二软件,并且
-在所述安全模式下执行(520)第二软件,执行所述第二软件包括:
-利用存储在所述安全模式的数据中的所述私钥对所述加密消息进行解密(521),
-将所述共享秘密与所述消息一起显示(522)在显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示。
6.一种被配置用于与服务器安全通信的密码设备,所述设备包括:
-通信接口,其被配置为与所述服务器通信,
-处理器系统,其被配置有正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所述安全模式下的所述数据至少包括与所述设备的所述用户共享的秘密,其中,
-在所述正常模式下执行第一软件,所述第一软件被配置用于:
-从所述服务器接收签名消息,所述签名消息利用所述服务器的私钥来签名,
-将所述签名消息转发到第二软件,
-在所述安全模式下执行所述第二软件,所述第二软件被配置用于:
-使用与所述服务器的私钥相对应的公钥来验证所述签名消息上的签名,
-将共享秘密与所述消息一起显示在所述密码设备的显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示。
7、一种用于与服务器安全通信的密码方法,所述方法包括:
-在处理器系统的正常模式下执行第一软件,所述处理器系统被配置有所述正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所述安全模式下的所述数据至少包括与用户共享的秘密,执行所述第一软件包括:
-从所述服务器接收签名消息,所述签名消息利用所述服务器的私钥来签名,
-将所述签名消息转发到第二软件,并且
-在所述安全模式下执行第二软件,执行所述第二软件包括:
-使用与所述服务器的私钥相对应的公钥来验证所述签名消息上的签名,
-将共享秘密与所述消息一起显示在显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示。
应当注意,上述实施例说明而非限制本公开的主题,并且本领域技术人员将能够设计许多备选实施例。
在权利要求中,置于括号中的任何附图标记不应被解释为限制权利要求。动词“包括”及其词性变化的使用不排除存在不同于权利要求中所述的其他元素或步骤。在元件之前的词语“一”或“一个”不排除存在多个这样的元素。当在元素列表之前时,诸如“…中的至少一个”的表达表示从列表中选择所有元素或元素的任何子集。例如,表述“A、B和C中的至少一个”应当被理解为包括仅A、仅B、仅C、A和B两者、A和C两者、B和C两者、或A、B和C中的全部。本公开的主题可以通过包括若干个不同元件的硬件来实施,并且可以通过适当编程的计算机来实施。在列举了若干部分的设备权利要求中,这些部分中的若干可以由同一个硬件项来体现。尽管在相互不同的从属权利要求中记载了特定措施,但是这并不指示不能有利地使用这些措施的组合。
在权利要求中,括号中的附图标记指代例证实施例的附图中的附图标记或者实施例的公式,因此增加了权利要求的可理解性。这些附图标记不应当被解释为对权利要求的限制。

Claims (16)

1.一种被配置用于与服务器安全通信的密码设备,所述设备具有被安装在其上的遗留软件,所述设备包括:
-通信接口,其被配置为与所述服务器通信,
-处理器系统,其被配置有正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所述安全模式下的所述数据至少包括与所述密码设备的公钥相对应的私钥和与所述设备的用户共享的秘密,其中,
-在所述正常模式下执行第一软件,所述第一软件被配置用于:
-从所述服务器接收加密消息和加密认证标签,所述加密消息和所述加密认证标签是利用所述密码设备的所述公钥来加密的,
-将所述加密消息和所述加密认证标签转发到第二软件,
-在所述安全模式下执行所述第二软件,所述第二软件被配置用于:
-利用被存储在所述安全模式的数据中的私钥对所述加密消息和所述加密认证标签进行解密,
-将共享秘密与所述消息和解密认证标签一起显示在所述密码设备的显示器上,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示,所述遗留软件被配置用于通过所述密码设备的输入接口从所述用户接收所述认证标签。
2.根据权利要求1所述的密码设备,还被配置为向所述服务器进行认证,其中,所述遗留软件被配置用于向所述服务器发送取决于所述认证标签的认证消息,以向所述服务器认证所述密码设备。
3.根据前述权利要求中的任一项所述的密码设备,其中,所述加密消息是与所述加密认证标签协作被接收的,所述第二软件被配置为用于:
-从所述密码设备的用户获得对所显示的消息的响应。
4.根据前述权利要求中的任一项所述的密码设备,其中,所述密码设备的启动代码被配置为在对所述密码设备进行配置的初始化启动序列期间从所述用户接收所述共享秘密。
5.根据前述权利要求中的任一项所述的密码设备,其中,所述显示器根据能从所述正常模式访问的帧缓冲器进行操作,并且根据能从所述安全模式而非从所述正常模式访问的帧缓冲器进行操作。
6.根据前述权利要求中的任一项所述的密码设备,其中,所述加密认证标签被包括在SMS消息中,所述第一软件拦截所述SMS消息并且将所述消息转发到所述第二软件,所述第二软件向所述用户提供所述解密认证标签。
7.根据前述权利要求中的任一项所述的密码设备,其中,所述第二软件被配置用于生成所述公钥和所述私钥,将所述私钥存储在所述安全模式的数据中,并且
-将所述公钥发送到所述第一软件,所述第一软件被配置为将所述公钥发送到所述服务器,和/或
-以计算机光学可读格式将所述公钥与所述共享秘密一起显示在所述密码设备的所述显示器上。
8.根据前述权利要求中的任一项所述的密码设备,其中,所述第一软件和/或所述第二软件被配置为在完成对所述服务器的所述认证之前从所述密码设备的所述用户接收另外的认证因子,所述另外的认证因子例如是凭证或生物特征。
9.根据前述权利要求中的任一项所述的密码设备,其中,所述第一软件被配置用于将交易请求发送到所述服务器,并且响应于所述交易请求而接收所述加密认证标签。
10.根据权利要求9所述的密码设备,其中,所述消息取决于所述请求。
11.根据前述权利要求中的任一项所述的密码设备,其中,所述密码设备包括另外的视觉指示器,所述另外的视觉指示器被配置为指示所述显示器的内容是否源自于所述安全模式。
12.根据前述权利要求中的任一项所述的密码设备,其中,阻止将在正常模式下运行的软件叠加在由所述第二软件对所述消息的所述显示上。
13.根据前述权利要求中的任一项所述的密码设备,其中,阻止在正常模式下运行的软件对由所述第二软件对所述消息的所述显示进行屏幕捕捉。
14.根据前述权利要求中的任一项所述的被配置用于与服务器安全通信的密码设备,其中,所述第一软件被配置用于从所述服务器接收被签名的所述消息,签名消息是利用所述服务器的私钥来签名的,所述第二软件被配置用于使用与所述服务器的所述私钥相对应的公钥来验证所述签名消息上的签名。
15.一种用于与服务器安全通信的密码方法(500),所述方法包括:
-在处理器系统的正常模式下执行(510)第一软件,所述处理器系统被配置有所述正常模式和安全模式,所述安全模式下的数据和代码与所述正常模式隔离,所述安全模式下的所述数据至少包括私钥和与用户共享的秘密,执行所述第一软件包括:
-从所述服务器接收(511)加密消息和加密认证标签,所述加密消息和所述加密认证标签是利用与所述私钥相对应的所述密码设备的所述公钥来加密的,
-将所述加密消息和所述加密认证标签转发(512)到第二软件,并且
-在所述安全模式下执行(520)第二软件,执行所述第二软件包括:
-利用被存储在所述安全模式的数据中的所述私钥对所述加密消息和所述加密认证标签进行解密(521),
-在显示器上与所述消息和解密认证标签一起显示(522)共享秘密,以向所述用户指示所述消息正在由在所述安全模式下运行的软件显示,遗留软件被配置用于通过输入接口从所述用户接收所述认证标签。
16.一种瞬态或非瞬态计算机可读介质(1000),包括表示指令的数据(1020),所述指令当由处理器系统执行时使所述处理器系统执行根据权利要求15所述的方法。
CN202080078753.8A 2019-11-12 2020-11-03 用于安全通信的设备和方法 Pending CN114761958A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19208505.8 2019-11-12
EP19208505.8A EP3822836A1 (en) 2019-11-12 2019-11-12 Device and method for secure communication
PCT/EP2020/080729 WO2021094125A1 (en) 2019-11-12 2020-11-03 Device and method for secure communication

Publications (1)

Publication Number Publication Date
CN114761958A true CN114761958A (zh) 2022-07-15

Family

ID=68581205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080078753.8A Pending CN114761958A (zh) 2019-11-12 2020-11-03 用于安全通信的设备和方法

Country Status (5)

Country Link
US (1) US11972031B2 (zh)
EP (2) EP3822836A1 (zh)
JP (1) JP7515606B2 (zh)
CN (1) CN114761958A (zh)
WO (1) WO2021094125A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137435A (ja) 1998-10-29 2000-05-16 Mitsubishi Materials Corp チームデータリスト管理装置及びチームデータリスト保管装置及びチームデータリスト処理システム、並びに、それらの記録媒体
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
GB2406403B (en) * 2003-09-26 2006-06-07 Advanced Risc Mach Ltd Data processing apparatus and method for merging secure and non-secure data into an output data stream
JP4434886B2 (ja) 2004-08-31 2010-03-17 キヤノン株式会社 印刷処理を管理するサーバ及びその制御方法並びにコンピュータプログラム
WO2006082988A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure processor functional transition
JP2008123482A (ja) 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US20150310427A1 (en) * 2014-04-24 2015-10-29 Xilix Llc Method, apparatus, and system for generating transaction-signing one-time password
WO2016026113A1 (zh) * 2014-08-21 2016-02-25 华为技术有限公司 一种安全交互方法和设备
US9430619B2 (en) 2014-09-10 2016-08-30 Microsoft Technology Licensing, Llc Media decoding control with hardware-protected digital rights management
CN104202343A (zh) * 2014-09-26 2014-12-10 酷派软件技术(深圳)有限公司 数据传输方法、数据传输装置和数据传输系统
US20180254898A1 (en) * 2017-03-06 2018-09-06 Rivetz Corp. Device enrollment protocol
CN108389049A (zh) * 2018-01-08 2018-08-10 北京握奇智能科技有限公司 身份认证方法、装置以及移动终端
US11017103B2 (en) * 2018-11-29 2021-05-25 International Business Machines Corporation Securely transferring computation in a disaggregated environment using a processor group key

Also Published As

Publication number Publication date
WO2021094125A1 (en) 2021-05-20
US20220391543A1 (en) 2022-12-08
EP4058921B1 (en) 2024-01-10
JP7515606B2 (ja) 2024-07-12
JP2023500980A (ja) 2023-01-11
US11972031B2 (en) 2024-04-30
EP4058921A1 (en) 2022-09-21
EP3822836A1 (en) 2021-05-19

Similar Documents

Publication Publication Date Title
US10491379B2 (en) System, device, and method of secure entry and handling of passwords
US9838205B2 (en) Network authentication method for secure electronic transactions
US9231925B1 (en) Network authentication method for secure electronic transactions
CA2838763C (en) Credential authentication methods and systems
US20170170964A1 (en) Verification of password using a keyboard with a secure password entry mode
CN101427510B (zh) 用于网络功能描述的数字通行
Mannan et al. Leveraging personal devices for stronger password authentication from untrusted computers
CN103051451A (zh) 安全托管执行环境的加密认证
EP2188942A2 (en) Information protection device
US9332011B2 (en) Secure authentication system with automatic cancellation of fraudulent operations
JP2017505048A (ja) 電子署名方法、システムおよび装置
US20110202772A1 (en) Networked computer identity encryption and verification
US20120233456A1 (en) Method for securely interacting with a security element
Kim et al. On the security of internet banking in south korea
US20220407693A1 (en) Method and device for secure communication
US11972031B2 (en) Device and method for secure communication
Stumpf et al. Towards secure e-commerce based on virtualization and attestation techniques
US12125018B2 (en) Terminal for conducting electronic transactions
Huh On the Security of Internet Banking in South Korea
Kim et al. Computing Science Group
Pozdena The History of Information Security
Mannan et al. Using a personal device to strengthen password authentication from an untrusted computer (revised march 2007)

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