HK40060197B - Secure password generation and management using nfc and contactless smart cards - Google Patents
Secure password generation and management using nfc and contactless smart cardsInfo
- Publication number
- HK40060197B HK40060197B HK62022049148.9A HK62022049148A HK40060197B HK 40060197 B HK40060197 B HK 40060197B HK 62022049148 A HK62022049148 A HK 62022049148A HK 40060197 B HK40060197 B HK 40060197B
- Authority
- HK
- Hong Kong
- Prior art keywords
- password
- contactless card
- computing device
- human
- card
- Prior art date
Links
Description
相关申请Related applications
本申请要求于2019年12月23日提交的、题为“使用NFC和非接触式智能卡的安全密码生成和管理(SECURE PASSWORD GENERATION AND MANAGEMENT USING NFC ANDCONTACTLESS SMART CARDS)”的美国专利申请序列号16/725,866的优先权。前面提及的申请的内容通过引用整体并入本文。This application claims priority to U.S. Patent Application Serial No. 16/725,866, filed December 23, 2019, entitled "Secure Password Generation and Management Using NFC and Contactless Smart Cards". The contents of the aforementioned application are incorporated herein by reference in their entirety.
背景技术Background Technology
暴力破解攻击是常用的黑客技术,其可以由黑客使用来通过手动猜测密码而侵入计算机、电子邮件账户、在线银行账户、应用、网站等。因此,强大、复杂的密码对于保护用户免受身份或财务盗窃可能至关重要。Brute-force attacks are a common hacking technique used by hackers to gain access to computers, email accounts, online banking accounts, applications, websites, and more by manually guessing passwords. Therefore, strong, complex passwords can be crucial for protecting users from identity or financial theft.
常规密码管理器可以帮助生成和获取复杂的密码,并且可以将这样的密码存储在加密的数据库中,或者可以根据需要进行计算。常规密码管理器可以是本地安装的软件应用、通过网站门户访问的在线服务、或者充当密钥的本地访问的硬件设备。通常,常规密码管理器要求用户生成并记住一个“主”密码,以解锁和访问存储在其数据库中的任何信息。A standard password manager helps generate and retrieve complex passwords, and can store such passwords in an encrypted database or perform calculations as needed. A standard password manager can be a locally installed software application, an online service accessed through a website portal, or a hardware device that acts as a local access key. Typically, a standard password manager requires the user to generate and remember a "master" password to unlock and access any information stored in its database.
然而,常规密码管理器在几个方面有问题。首先,用户可能并不总是拥有运行密码管理器的设备。其次,由密码管理器使用的密码生成器的随机性可能无法验证。第三,密码管理器(无论多强)也仅仅和保护它的用户创建的主密码一样有效。However, conventional password managers have several problems. First, users may not always have the device to run the password manager. Second, the randomness of the password generator used by the password manager may not be verifiable. Third, a password manager (no matter how strong) is only as effective as the master password created by the user who protects it.
发明内容Summary of the Invention
各种实施例涉及使用近场通信(near-field communication,NFC)使能的非接触式智能卡来安全地生成和管理密码。例如,可以通过经由非接触式智能卡的随机数生成器生成随机数并将该随机数转换成一个或多个人类可读字符来生成安全密码。在另一示例中,非接触式智能卡的安全加密哈希函数可以生成哈希输出值,该哈希输出值可以被转换成一个或多个人类可读字符。人类可读的字符可以用作安全密码,或者可以对其进行变换以添加更多的安全性和复杂性层。Various embodiments involve using near-field communication (NFC) enabled contactless smart cards to securely generate and manage passwords. For example, a secure password can be generated by generating a random number via a random number generator on the contactless smart card and then converting that random number into one or more human-readable characters. In another example, the contactless smart card's secure cryptographic hash function can generate a hash output value that can be converted into one or more human-readable characters. These human-readable characters can be used as a secure password, or they can be transformed to add further layers of security and complexity.
附图说明Attached Figure Description
图1A示出了根据一个或多个实施例的示例数据传输系统。Figure 1A illustrates an example data transmission system according to one or more embodiments.
图1B示出了根据一个或多个实施例的用于提供经认证的访问的示例序列图。Figure 1B illustrates an example sequence diagram for providing authenticated access according to one or more embodiments.
图2示出了根据一个或多个实施例的使用非接触式卡的示例系统。Figure 2 illustrates an example system using a contactless card according to one or more embodiments.
图3A示出了根据一个或多个实施例的示例非接触式卡。Figure 3A illustrates an example contactless card according to one or more embodiments.
图3B示出了根据一个或多个实施例的非接触式卡的示例接触垫。Figure 3B shows an example contact pad for a contactless card according to one or more embodiments.
图4示出了根据一个或多个实施例的与安全密码生成相关的示例序列图。Figure 4 shows an example sequence diagram related to secure password generation according to one or more embodiments.
图5示出了根据一个或多个实施例的示例密码管理器应用和安全密码生成。Figure 5 illustrates an example password manager application and secure password generation according to one or more embodiments.
图6示出了根据一个或多个实施例的与安全密码生成相关的序列图的另一示例。Figure 6 shows another example of a sequence diagram related to secure password generation according to one or more embodiments.
图7示出了根据一个或多个实施例的网站的示例安全密码生成。Figure 7 illustrates an example of secure password generation for a website according to one or more embodiments.
图8示出了根据一个或多个实施例的示例流程图。Figure 8 shows an example flowchart according to one or more embodiments.
具体实施方式Detailed Implementation
各种实施例总体上涉及使用近场通信(NFC)使能的非接触式智能卡来安全地生成和管理一个或多个密码。例如,当在诸如移动设备(例如,智能手机、膝上型电脑、平板电脑等)的计算设备和非接触式卡之间建立经授权的NFC通信时,非接触式卡可以使用存储在其中的至少一个小程序来生成真正随机的、人类可读的且安全的密码。Various embodiments generally involve using near field communication (NFC) enabled contactless smart cards to securely generate and manage one or more passwords. For example, when authorized NFC communication is established between a computing device such as a mobile device (e.g., a smartphone, laptop, tablet, etc.) and a contactless card, the contactless card can use at least one applet stored therein to generate truly random, human-readable, and secure passwords.
根据一个实施例,在移动设备和卡之间建立和认证NFC通信时,移动设备可以从非接触式卡请求安全密码。非接触式卡的随机数生成器可以生成具有预定义长度的随机数。该随机数可以被转换成一个或多个人类可读字符,该一个或多个人类可读字符可以被用作安全密码,或者在其他示例中,该一个或多个人类可读字符可以被密码变换器变换以向密码添加附加安全性层,例如,重新排列人类可读字符、用其他字符替换某些字符等。安全密码可以以至少一个NFC数据交换格式(NFC data exchange format,NDEF)文件被递送到移动设备。According to one embodiment, when establishing and authenticating NFC communication between a mobile device and a card, the mobile device can request a security password from the contactless card. The contactless card's random number generator can generate a random number of a predefined length. This random number can be converted into one or more human-readable characters, which can be used as the security password. Alternatively, in other examples, the one or more human-readable characters can be transformed by a password transformer to add an additional layer of security to the password, such as rearranging the human-readable characters, replacing certain characters with other characters, etc. The security password can be delivered to the mobile device in at least one NFC data exchange format (NDEF) file.
在一些示例中,当移动设备与特定的非接触式卡建立经认证的通信时,可以在移动设备上自动打开密码管理器应用,使得只有该特定的非接触式卡能够打开密码管理器应用。因此,在某些情况下,物理非接触卡本身可以与普通主密码一起用作用于密码管理器的“主”密码。而且,非接触式卡可以自动地和单方面地生成和传输一个或多个新安全密码,该一个或多个新的安全密码可以由用户根据用户的需要在密码管理器应用上进行管理、组织或使用。In some examples, when a mobile device establishes authenticated communication with a specific contactless card, a password manager application can be automatically opened on the mobile device, allowing only that specific contactless card to access the application. Therefore, in certain situations, the physical contactless card itself can be used as the "master" password for the password manager, along with a regular master password. Furthermore, the contactless card can automatically and unilaterally generate and transmit one or more new security passwords, which can be managed, organized, or used by the user on the password manager application as needed.
根据另一实施例,可以在移动设备和非接触式卡之间建立双向通信协议,用于执行安全密码生成。例如,在建立和认证NFC通信时,移动设备可以向非接触式卡发送密码请求以及标识符。标识符可以是与请求密码的应用、网站或文件相关联的任何信息。例如,与网站相关联的统一资源定位符(uniform resource locator,URL)可以用作标识符。非接触式卡在安全加密哈希函数中获取并输入标识符,该安全加密哈希函数输出哈希输出值。哈希输出值可以被转换成一个或多个人类可读的字符,该一个或多个人类可读的字符可以被用作密码本身,或者可以被密码变换器进一步变换,以向密码添加附加安全性层。密码然后被发送到移动设备。According to another embodiment, a bidirectional communication protocol can be established between a mobile device and a contactless card for performing secure password generation. For example, during the establishment and authentication of NFC communication, the mobile device can send a password request and an identifier to the contactless card. The identifier can be any information associated with the application, website, or file requesting the password. For example, a Uniform Resource Locator (URL) associated with a website can be used as the identifier. The contactless card obtains and inputs the identifier into a secure cryptographic hash function, which outputs a hash value. The hash value can be converted into one or more human-readable characters, which can be used as the password itself, or can be further transformed by a password transformer to add an additional layer of security to the password. The password is then sent to the mobile device.
通过使用标识符请求安全密码,非接触式卡(并且只有该非接触式卡)可以能够基于卡中包括的唯一加密哈希函数为同一请求者生成相同的密码。因此,只要用户使用相同的非接触式卡,就不需要在移动设备或卡本身中存储安全密码,这最小化整体密码暴露于潜在黑客。By requesting a secure password using an identifier, a contactless card (and only that contactless card) can generate the same password for the same requester based on a unique cryptographic hash function included in the card. Therefore, as long as the user uses the same contactless card, there is no need to store the secure password in the mobile device or the card itself, minimizing the overall password exposure to potential hackers.
在另外的示例中,当针对移动设备非接触式卡被轻击或者非接触式卡被放置在距移动设备阈值距离内时,移动设备可以用安全密码自动填充(也称为“自动填充(autofill)”)密码字段。密码可以是由非接触式卡生成并由移动设备上的密码管理器存储和管理的新密码,如上所述;或者密码可以是可以由相同请求者(例如,应用、网站、文件等)请求的相同密码,如上所述。In another example, when a contactless card for a mobile device is tapped or placed within a threshold distance of the mobile device, the mobile device can automatically fill in the password field with a secure PIN (also known as "autofill"). The PIN can be a new PIN generated by the contactless card and stored and managed by a password manager on the mobile device, as described above; or the PIN can be the same PIN that can be requested by the same requester (e.g., an app, website, file, etc.), as described above.
在以前的解决方案中,密码管理器的有效性仅限于它们安装在其上的设备,因为用户并不总是拥有这些设备。而且,由密码管理器使用的密码生成器的随机性可能无法验证。进一步,密码管理器仅仅与其保护管理器免受未经授权的访问的影响的“主”密码一样强。本文描述的实施例和示例克服了先前的解决方案,并且优于先前的解决方案,因为在一些示例中,可以使用高度安全且可验证的硬件组件(诸如NFC使能的非接触式智能卡)来生成真正随机的、人类可读的密码,而不必将所生成的密码存储在非接触式卡和/或移动设备中,这通过消除可能被黑客攻击的关键数据片来最小化漏洞暴露。此外,由于非接触式卡本身(在某些情况下与主密码一起)可以用于打开移动设备上的密码管理器应用,所以物理卡可以充当“主”密码,这克服了与大多数密码管理器应用相关的上述最弱链接问题。In previous solutions, the effectiveness of password managers was limited to the devices on which they were installed, as users did not always own these devices. Furthermore, the randomness of the password generator used by the password manager could not be verified. Moreover, the password manager was only as strong as the "master" password that protected the manager from unauthorized access. The embodiments and examples described herein overcome and surpass previous solutions because, in some examples, highly secure and verifiable hardware components, such as NFC-enabled contactless smart cards, can be used to generate truly random, human-readable passwords without having to store the generated passwords on the contactless card and/or mobile device. This minimizes vulnerability exposure by eliminating critical data fragments that could be hacked. Furthermore, since the contactless card itself (in some cases, along with the master password) can be used to open the password manager application on the mobile device, the physical card can act as the "master" password, overcoming the aforementioned weakest link problem associated with most password manager applications.
现在参考附图,其中相同的附图标记始终用于指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对其的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其他情况下,以框图形式示出了公知的结构和设备以便对其进行描述。意图是覆盖权利要求的范围内的所有修改、等同物和替代性方案。Referring now to the accompanying drawings, wherein the same reference numerals are used throughout to refer to the same elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding thereof. However, it will be apparent, however, that novel embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form for the purpose of description. The intention is to cover all modifications, equivalents, and alternatives within the scope of the claims.
图1A示出了根据一个或多个实施例的示例数据传输系统。如下文将进一步讨论的那样,系统100可以包括非接触式卡105、客户端设备110、网络115和服务器120。尽管图1A示出了组件的单个实例,但是系统100可以包括任意数量的组件。Figure 1A illustrates an example data transmission system according to one or more embodiments. As will be discussed further below, system 100 may include a contactless card 105, a client device 110, a network 115, and a server 120. Although Figure 1A shows a single instance of the components, system 100 may include any number of components.
系统100可以包括一个或多个非接触式卡105,该一个或多个非接触式卡将在下面参考图3A至图3B进一步解释。在一些实施例中,非接触式卡105可以利用示例中的NFC与客户端设备110进行无线通信。System 100 may include one or more contactless cards 105, which will be further explained below with reference to Figures 3A and 3B. In some embodiments, the contactless card 105 may wirelessly communicate with the client device 110 using NFC, as shown in the example.
系统100可以包括客户端设备110,其可以是网络使能的计算机。如本文所述,网络使能的计算机可以包括但不限于计算机设备或通信设备,包括例如服务器、网络器械、个人计算机、工作站、电话、智能手机、手持PC、个人数字助理、瘦客户端、胖客户端、互联网浏览器或其他设备。客户端设备110也可以是移动计算设备;例如,来自的的iPhone、iPod、iPad或运行Apple的操作系统的任何其他合适设备、运行微软Mobile操作系统的任何设备、运行谷歌的操作系统的任何设备、和/或任何其他合适的移动计算设备(诸如智能手机、平板电脑或类似的可穿戴移动设备)。System 100 may include client device 110, which may be a network-enabled computer. As described herein, a network-enabled computer may include, but is not limited to, computer equipment or communication equipment, including, for example, servers, network devices, personal computers, workstations, telephones, smartphones, handheld PCs, personal digital assistants, thin clients, thick clients, internet browsers, or other devices. Client device 110 may also be a mobile computing device; for example, an iPhone, iPod, iPad, or any other suitable device running Apple's operating system, any device running Microsoft Mobile's operating system, any device running Google's operating system, and/or any other suitable mobile computing device (such as a smartphone, tablet, or similar wearable mobile device).
客户端设备110设备可以包括处理器和存储器,并且应当理解的是,处理电路系统可以包含执行本文描述的功能所必需的附加组件,包括处理器、存储器、错误和奇偶校验/CRC检查器、数据编码器、防冲突算法、控制器、命令解码器、安全性原语和防篡改硬件。客户端设备110还可以包括显示器和输入设备。显示器可以是用于呈现视觉信息的任何类型的设备,诸如计算机监控器、平板显示器和移动设备屏幕,包括液晶显示器、发光二极管显示器、等离子面板和阴极射线管显示器。输入设备可以包括用于将信息输入到用户的设备中的任何设备,该设备是可用的并且由用户的设备支持,诸如触摸屏、键盘、鼠标、光标控制设备、触摸屏、麦克风、数码相机、录像机或便携式摄像机。这些设备可以用于输入信息并与软件和本文描述的其他设备交互。Client device 110 may include a processor and memory, and it should be understood that the processing circuitry may include additional components necessary to perform the functions described herein, including a processor, memory, error and parity/CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives, and tamper-proof hardware. Client device 110 may also include a display and input devices. The display may be any type of device for presenting visual information, such as a computer monitor, flat panel display, and mobile device screen, including liquid crystal displays, light-emitting diode displays, plasma panels, and cathode ray tube displays. Input devices may include any device available and supported by the user's device for inputting information, such as a touchscreen, keyboard, mouse, cursor control device, microphone, digital camera, video recorder, or camcorder. These devices can be used to input information and interact with the software and other devices described herein.
在一些示例中,系统100的客户端设备110可以执行实现例如与系统100的一个或多个组件的网络通信以及传输和/或接收数据的一个或多个应用,诸如软件应用。In some examples, the client device 110 of system 100 may execute one or more applications, such as software applications, that implement network communication with one or more components of system 100 and transmit and/or receive data.
客户端设备110可以经由一个或多个网络115与一个或多个服务器120通信,并且可以作为与服务器120的相应前端到后端对来操作。客户端设备110可以例如从在客户端设备110上执行的移动设备应用向服务器120传输一个或多个请求。一个或多个请求可以与从服务器120获取数据相关联。服务器120可以从客户端设备110接收一个或多个请求。基于来自客户端设备110的一个或多个请求,服务器120可以被配置成从一个或多个数据库(未示出)获取所请求的数据。基于从一个或多个数据库接收到所请求的数据,服务器120可以被配置为向客户端设备110传输所接收的数据,所接收的数据响应于一个或多个请求。Client device 110 can communicate with one or more servers 120 via one or more networks 115 and can operate as a corresponding front-end to back-end pair with server 120. Client device 110 can, for example, transmit one or more requests to server 120 from a mobile device application running on client device 110. The one or more requests can be associated with retrieving data from server 120. Server 120 can receive one or more requests from client device 110. Based on the one or more requests from client device 110, server 120 can be configured to retrieve the requested data from one or more databases (not shown). Based on the received requested data from the one or more databases, server 120 can be configured to transmit the received data to client device 110 in response to the one or more requests.
系统100可以包括一个或多个网络115。在一些示例中,网络115可以是无线网络、有线网络或无线网络和有线网络的任意组合中的一个或多个,并且可以被配置为将客户端设备110连接到服务器120。例如,网络115可以包括光纤网络、无源光网络、线缆网络、互联网、卫星网络、无线局域网(LAN)、全球移动通信、个人通信服务、个人区域网、无线应用协议、多媒体消息收发服务、增强型消息收发服务、短消息服务、基于时分复用的系统、基于码分多址(Code Division Multiple Access,CDMA)的系统、D-AMPS、Wi-Fi、固定无线数据、IEEE 802.11b、802.15.1、802.11n和802.11g、蓝牙、NFC、射频标识(RFID)、Wi-Fi和/或其他中的一个或多个。System 100 may include one or more networks 115. In some examples, network 115 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks, and may be configured to connect client devices 110 to server 120. For example, network 115 may include a fiber optic network, a passive optical network, a cable network, the Internet, a satellite network, a wireless local area network (LAN), Global System for Mobile Communications (GSMA), a personal communications service, a personal area network (PAN), a wireless application protocol, a multimedia messaging service, an enhanced messaging service, a short message service (SMS), a time-division multiplexing-based system, a code division multiple access (CDMA)-based system, D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n, and 802.11g, Bluetooth, NFC, radio frequency identification (RFID), Wi-Fi, and/or one or more others.
此外,网络115可以包括但不限于电话线、光纤、IEEE以太网802.3、广域网、无线个人区域网、LAN或诸如互联网的全球网络。此外,网络115可以支持互联网、无线通信网络、蜂窝网络等,或者它们的任意组合。网络115还可以包括一个网络,或者作为独立的网络或者彼此合作地操作的任何数量的以上提及的示例性类型的网络。网络115可以利用它们通信耦合到的一个或多个网络元件的一个或多个协议。网络115可以将其他协议转换成或从其他协议转换成网络设备的一个或多个协议。尽管网络115被描绘为单个网络,但是应当理解的是,根据一个或多个示例,网络115可以包括多个互连的网络,例如互联网、服务提供商的网络、线缆电视网络、诸如信用卡协会网络的公司网络、以及家庭网络。Furthermore, network 115 may include, but is not limited to, telephone lines, fiber optic cables, IEEE Ethernet 802.3, wide area networks, wireless personal area networks, LANs, or global networks such as the Internet. Additionally, network 115 may support the Internet, wireless communication networks, cellular networks, or any combination thereof. Network 115 may also include a single network, or any number of networks of the aforementioned exemplary types operating as independent networks or cooperating with each other. Network 115 may utilize one or more protocols of one or more network elements to which it is communicatively coupled. Network 115 may convert or convert other protocols to one or more protocols of network devices. Although network 115 is depicted as a single network, it should be understood that, according to one or more examples, network 115 may include multiple interconnected networks, such as the Internet, service provider networks, cable television networks, corporate networks such as credit card association networks, and home networks.
系统100可以包括一个或多个服务器120。在一些示例中,服务器120可以包括耦合到存储器的一个或多个处理器。服务器120可以被配置为用于在不同时间控制和调用各种数据来执行多个工作流动作的中央系统、服务器或平台。服务器120可以被配置成连接到一个或多个数据库。服务器120可以连接到至少一个客户端设备110。System 100 may include one or more servers 120. In some examples, server 120 may include one or more processors coupled to memory. Server 120 may be configured as a central system, server, or platform for controlling and retrieving various data at different times to perform multiple workflow actions. Server 120 may be configured to connect to one or more databases. Server 120 may connect to at least one client device 110.
图1B示出了根据一个或多个实施例的用于提供经认证的访问的示例序列图。该图可以包括非接触式卡105和客户端设备110,该客户端设备可以包括应用122和处理器124。图1B可以参考如图1A所示的类似的组件。Figure 1B illustrates an example sequence diagram for providing authenticated access according to one or more embodiments. The diagram may include a contactless card 105 and a client device 110, which may include an application 122 and a processor 124. Figure 1B can be referenced to similar components as shown in Figure 1A.
在步骤102,应用122与非接触式卡105通信(例如,在卡105被带到设备110附近之后,在卡105轻击设备110之后等)。应用122和非接触式卡105之间的通信可以涉及非接触式卡105足够靠近客户端设备110的读卡器(未示出),以实现应用122和非接触式卡105之间的NFC数据传送。In step 102, application 122 communicates with contactless card 105 (e.g., after card 105 is brought near device 110, after card 105 is tapped on device 110, etc.). Communication between application 122 and contactless card 105 may involve contactless card 105 being sufficiently close to a card reader (not shown) of client device 110 to enable NFC data transfer between application 122 and contactless card 105.
在步骤104,在客户端设备110和非接触式卡105之间已经建立通信之后,非接触式卡105生成消息认证码(MAC)密文。在一些示例中,当由应用122读取非接触式卡105时,这可能发生。特别地,这可以在读取(诸如NFC读取)NDEF标签时发生,该标签可以根据NFC数据交换格式创建。In step 104, after communication has been established between the client device 110 and the contactless card 105, the contactless card 105 generates a Message Authentication Code (MAC) ciphertext. In some examples, this may occur when the contactless card 105 is read by the application 122. In particular, this can occur when reading (such as NFC reading) an NDEF tag that can be created according to the NFC data exchange format.
例如,诸如应用122的读取器可以传输具有产生小程序的NDEF的小程序ID的消息(诸如小程序选择消息)。在证实选择后,可以传输随后是读取文件消息的选择文件消息的序列。例如,序列可以包括“选择功能文件”、“读取功能文件”和“选择NDEF文件”。此时,由非接触式卡105维护的计数器值可以被更新或递增,随后可以是“读取NDEF文件”。此时,可以生成可以包括报头和共享秘密的消息。然后可以生成会话密钥。MAC密文可以根据消息创建,该消息可以包括报头和共享秘密。MAC密文然后可以与一个或多个随机数据块连结,并且MAC密文和随机数(random number,RND)可以用会话密钥加密。此后,密文和报头可以被连结,并被编码为ASCII十六进制,并以NDEF消息格式返回(响应“读取NDEF文件”消息)。For example, a reader such as application 122 can transmit a message (such as a applet selection message) with an applet ID that generates the applet's NDEF. After confirming the selection, a sequence of selected file messages, followed by a read file message, can be transmitted. For example, the sequence could include "Select function file", "Read function file", and "Select NDEF file". At this time, a counter value maintained by contactless card 105 can be updated or incremented, followed by "Read NDEF file". At this time, a message that may include a header and a shared secret can be generated. A session key can then be generated. MAC ciphertext can be created based on the message, which may include a header and a shared secret. The MAC ciphertext can then be concatenated with one or more random data blocks, and the MAC ciphertext and the random number (RND) can be encrypted with the session key. Subsequently, the ciphertext and header can be concatenated, encoded into ASCII hexadecimal, and returned in NDEF message format (in response to the "Read NDEF file" message).
在一些示例中,MAC密文可以作为NDEF标签来传输,并且在其他示例中,MAC密文可以与统一资源指示符一起被包括(例如,作为格式化的字符串)。In some examples, the MAC ciphertext can be transmitted as an NDEF label, and in other examples, the MAC ciphertext can be included along with a Uniform Resource Indicator (e.g., as a formatted string).
在一些示例中,应用122可以被配置为向非接触式卡105传输请求,该请求包括用于生成MAC密文的指令。In some examples, application 122 can be configured to transmit a request to contactless card 105, which includes instructions for generating MAC ciphertext.
在步骤106,非接触式卡105向应用122发送MAC密文。在一些示例中,MAC密文的传输经由NFC进行。然而,本公开不限于此。在其他示例中,这种通信可以经由蓝牙、Wi-Fi或其他无线数据通信手段进行。In step 106, the contactless card 105 sends the MAC ciphertext to the application 122. In some examples, the transmission of the MAC ciphertext is performed via NFC. However, this disclosure is not limited thereto. In other examples, this communication may be performed via Bluetooth, Wi-Fi, or other wireless data communication means.
在步骤108,应用122将MAC密文传送给处理器124。在步骤112,处理器124根据来自应用122的指令来验证MAC密文。例如,可以验证MAC密文,如下所解释那样。In step 108, application 122 transmits the MAC ciphertext to processor 124. In step 112, processor 124 verifies the MAC ciphertext according to instructions from application 122. For example, the MAC ciphertext can be verified as explained below.
在一些示例中,验证MAC密文可以由除了客户端设备110的设备(诸如与客户端设备110进行数据通信的服务器120(如图1A所示))来执行。例如,处理器124可以输出MAC密文以便传输到服务器120,该服务器可以验证MAC密文。In some examples, MAC ciphertext verification can be performed by a device other than client device 110 (such as server 120 (as shown in Figure 1A) that communicates with client device 110). For example, processor 124 can output MAC ciphertext for transmission to server 120, which can verify the MAC ciphertext.
在一些示例中,MAC密文可以作为数字签名起作用用于验证的目的。其他数字签名算法(诸如公钥非对称算法,例如数字签名算法和RSA算法、或者零知识协议)可以用于执行这种验证。In some examples, MAC ciphertext can function as a digital signature for verification purposes. Other digital signature algorithms (such as public-key asymmetric algorithms, like the Digital Signature Algorithm and RSA algorithm, or zero-knowledge protocols) can be used to perform this verification.
可以理解的是,在一些示例中,非接触式卡105可以在非接触式卡被带到客户端设备110附近之后发起通信。作为示例,非接触式卡105可以向客户端设备110发送例如指示非接触式卡已经建立通信的消息。此后,在步骤102,客户端设备110的应用122可以继续与非接触式卡通信,如上所述。Understandably, in some examples, the contactless card 105 can initiate communication after the contactless card is brought near the client device 110. As an example, the contactless card 105 can send a message to the client device 110, for example, indicating that communication has been established. Thereafter, in step 102, the application 122 of the client device 110 can continue communicating with the contactless card, as described above.
图2示出了使用非接触式卡的示例系统200。系统200可以包括非接触式卡205、一个或多个客户端设备210、网络215、服务器220、225、一个或多个硬件安全性模块230和数据库235。尽管图2示出了组件的单个实例,但是系统200可以包括任意数量的组件。Figure 2 illustrates an example system 200 using a contactless card. System 200 may include a contactless card 205, one or more client devices 210, a network 215, servers 220 and 225, one or more hardware security modules 230, and a database 235. Although Figure 2 shows a single instance of the components, system 200 may include any number of components.
系统200可以包括一个或多个非接触式卡205,该一个或多个非接触式卡将在下面关于图3A至图3B进一步解释。在一些示例中,非接触式卡205可以与客户端设备210进行无线通信,例如NFC通信。例如,非接触式卡205可以包括被配置为经由NFC或其他短程协议进行通信的一个或多个芯片,诸如射频标识芯片。在其他实施例中,非接触式卡205可以通过其他手段与客户端设备210通信,包括但不限于蓝牙、卫星、Wi-Fi、有线通信和/或无线和有线连接的任何组合。根据一些实施例,非接触式卡205可以被配置为当非接触式卡205在读卡器213的范围内时,通过NFC与客户端设备210的读卡器213(其在本文中可以被称为NFC读取器、NFC读卡器或读取器)通信。在其他示例中,与非接触式卡205的通信可以通过物理接口来实现,例如通用串行总线接口或刷卡接口。System 200 may include one or more contactless cards 205, which will be further explained below with reference to Figures 3A and 3B. In some examples, the contactless card 205 may wirelessly communicate with client device 210, such as via NFC communication. For example, the contactless card 205 may include one or more chips, such as RFID chips, configured to communicate via NFC or other short-range protocols. In other embodiments, the contactless card 205 may communicate with client device 210 by other means, including but not limited to Bluetooth, satellite, Wi-Fi, wired communication, and/or any combination of wireless and wired connections. According to some embodiments, the contactless card 205 may be configured to communicate via NFC with the reader 213 of client device 210 (which may be referred to herein as an NFC reader, NFC card reader, or reader) when the contactless card 205 is within range of the reader 213. In other examples, communication with the contactless card 205 may be implemented via a physical interface, such as a Universal Serial Bus interface or a card swipe interface.
系统200可以包括客户端设备210,其可以是网络使能的计算机。如本文所述,网络使能的计算机可以包括但不限于:例如计算机设备、或通信设备,包括例如服务器、网络器械、个人计算机、工作站、移动设备、电话、手持PC、个人数字助理、瘦客户端、胖客户端、互联网浏览器或其他设备。一个或多个客户端设备210也可以是移动设备;例如,移动设备可以包括来自的的iPhone、iPod、iPad或运行苹果的操作系统的任何其他移动设备、运行微软 Mobile操作系统的任何设备、运行谷歌的操作系统的任何设备、和/或任何其他智能手机或类似的可穿戴移动设备。在一些示例中,客户端设备210可以与参考图1A或图1B描述的客户端设备110相同或相似。System 200 may include client device 210, which may be a network-enabled computer. As described herein, a network-enabled computer may include, but is not limited to, computer equipment or communication equipment, including, for example, servers, network devices, personal computers, workstations, mobile devices, telephones, handheld PCs, personal digital assistants, thin clients, fat clients, internet browsers, or other devices. One or more client devices 210 may also be mobile devices; for example, mobile devices may include iPhones, iPods, iPads, or any other mobile devices running Apple's operating system, any device running Microsoft Mobile operating system, any device running Google's operating system, and/or any other smartphones or similar wearable mobile devices. In some examples, client device 210 may be the same as or similar to client device 110 described with reference to FIG1A or FIG1B.
客户端设备210可以经由一个或多个网络215与一个或多个服务器220和225进行通信。客户端设备210可以例如从在客户端设备210上执行的应用211向一个或多个服务器220和225传输一个或多个请求。一个或多个请求可以与从一个或多个服务器220和225获取数据相关联。服务器220和225可以从客户端设备210接收一个或多个请求。基于来自客户端设备210的一个或多个请求,一个或多个服务器220和225可以被配置成从一个或多个数据库235获取所请求的数据。基于从一个或多个数据库235接收所请求的数据,一个或多个服务器220和225可以被配置成向客户端设备210传输所接收的数据,所接收的数据响应于一个或多个请求。Client device 210 can communicate with one or more servers 220 and 225 via one or more networks 215. Client device 210 can, for example, transmit one or more requests from application 211 running on client device 210 to one or more servers 220 and 225. The one or more requests can be associated with retrieving data from one or more servers 220 and 225. Servers 220 and 225 can receive one or more requests from client device 210. Based on the one or more requests from client device 210, one or more servers 220 and 225 can be configured to retrieve the requested data from one or more databases 235. Based on receiving the requested data from one or more databases 235, one or more servers 220 and 225 can be configured to transmit received data to client device 210 in response to the one or more requests.
系统200可以包括一个或多个硬件安全性模块(HSM)230。例如,一个或多个HSM230可以被配置成执行本文公开的一个或多个密码操作。在一些示例中,一个或多个HSM230可以被配置为专用安全性设备,这些专用安全性设备被配置为执行一个或多个密码操作。HSM 230可以被配置成使得密钥永远不会在HSM 230之外被揭露,而是替代地保持在HSM230内。例如,一个或多个HSM 230可以被配置为执行密钥导出、解密和MAC操作中的至少一个。一个或多个HSM 230可以包含在服务器220和225内,或者可以与这些服务器进行数据通信。System 200 may include one or more Hardware Security Modules (HSMs) 230. For example, one or more HSMs 230 may be configured to perform one or more cryptographic operations disclosed herein. In some examples, one or more HSMs 230 may be configured as dedicated security devices configured to perform one or more cryptographic operations. HSMs 230 may be configured such that keys are never exposed outside of HSMs 230, but instead remain within HSMs 230. For example, one or more HSMs 230 may be configured to perform at least one of key derivation, decryption, and MAC operations. One or more HSMs 230 may be contained within servers 220 and 225, or may communicate with these servers.
系统200可以包括一个或多个网络215。在一些示例中,网络215可以是无线网络、有线网络或无线网络和有线网络的任意组合中的一个或多个,并且可以被配置为将客户端设备210连接到服务器220和/或225。例如,网络215可以包括光纤网络、无源光网络、线缆网络、蜂窝网络、互联网、卫星网络、无线LAN、全球移动通信、个人通信服务、个人区域网、无线应用协议、多媒体消息收发服务、增强型消息收发服务、短消息服务、基于时分复用的系统、基于码分多址(CDMA)的系统、D-AMPS、Wi-Fi、固定无线数据、IEEE 802.11b、802.15.1、802.11n和802.11g、蓝牙、NFC、RFID、Wi-Fi和/或其网络的任何组合中的一个或多个。作为非限制性示例,来自非接触式卡205和客户端设备210的通信可以包括NFC通信、客户端设备210和运营商之间的蜂窝网络以及运营商和后端之间的互联网。System 200 may include one or more networks 215. In some examples, network 215 may be one or more of a wireless network, a wired network, or any combination of wireless and wired networks, and may be configured to connect client devices 210 to servers 220 and/or 225. For example, network 215 may include one or more of the following: fiber optic network, passive optical network, cable network, cellular network, Internet, satellite network, wireless LAN, Global System for Mobile Communications (GSMA), personal communication service, personal area network, wireless application protocol, multimedia messaging service, enhanced messaging service, short message service, time division multiplexing-based system, code division multiple access (CDMA-based) system, D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth, NFC, RFID, Wi-Fi and/or any combination of networks thereof. As a non-limiting example, communication from contactless card 205 and client device 210 may include NFC communication, cellular networks between client device 210 and the operator, and the Internet between the operator and the backend.
此外,网络215可以包括但不限于电话线、光纤、IEEE以太网802.3、广域网、无线个人区域网、局域网或诸如互联网的全球网络。此外,网络215可以支持互联网、无线通信网络、蜂窝网络等,或者它们的任意组合。网络215还可以包括一个网络,或者作为独立的网络或者彼此合作地操作的任何数量的以上提及的示例性类型的网络。网络215可以利用它们通信耦合到的一个或多个网络元件的一个或多个协议。网络215可以将其他协议转换成或从其他协议转换成网络设备的一个或多个协议。尽管网络215被描绘为单个网络,但是应当理解的是,根据一个或多个示例,网络215可以包括多个互连的网络,例如互联网、服务提供商的网络、线缆电视网络、诸如信用卡协会网络的公司网络、以及家庭网络。Furthermore, network 215 may include, but is not limited to, telephone lines, fiber optic cables, IEEE Ethernet 802.3, wide area networks, wireless personal area networks, local area networks, or global networks such as the Internet. Additionally, network 215 may support the Internet, wireless communication networks, cellular networks, or any combination thereof. Network 215 may also include a single network, or any number of networks of the aforementioned exemplary types operating as independent networks or cooperating with each other. Network 215 may utilize one or more protocols of one or more network elements to which it is communicatively coupled. Network 215 may convert or convert other protocols into one or more protocols of network devices. Although network 215 is depicted as a single network, it should be understood that, according to one or more examples, network 215 may include multiple interconnected networks, such as the Internet, service provider networks, cable television networks, corporate networks such as credit card association networks, and home networks.
在根据本公开的各种示例中,系统200的客户端设备210可以执行一个或多个应用211,并且包括一个或多个处理器212以及一个或多个读卡器213。例如,一个或多个应用211(诸如软件应用)可以被配置为实现例如与系统200的一个或多个组件的网络通信,并传输和/或接收数据。应当理解的是,尽管在图2中仅示出了客户端设备210的组件的单个实例,但是可以使用任何数量的设备210。读卡器213可以被配置成从非接触式卡205读取和/或与该非接触式卡通信。结合一个或多个应用211,读卡器213可以与非接触式卡205通信。在示例中,读卡器213可以包括电路系统或电路系统组件,例如NFC读取器线圈,该NFC读取器线圈生成磁场以允许客户端设备210和非接触式卡205之间的通信。In various examples according to this disclosure, the client device 210 of system 200 may execute one or more applications 211 and includes one or more processors 212 and one or more card readers 213. For example, one or more applications 211 (such as software applications) may be configured to implement, for example, network communication with one or more components of system 200 and to transmit and/or receive data. It should be understood that although only a single instance of the components of client device 210 is shown in FIG. 2, any number of devices 210 may be used. The card reader 213 may be configured to read from and/or communicate with contactless card 205. In conjunction with one or more applications 211, the card reader 213 may communicate with contactless card 205. In the example, the card reader 213 may include a circuit system or circuit system component, such as an NFC reader coil that generates a magnetic field to allow communication between client device 210 and contactless card 205.
客户端设备210中的任何一个的应用211可以使用短程无线通信(例如,NFC)与非接触式卡205通信。应用211可以被配置为与被配置为与非接触式卡205通信的客户端设备210的读卡器213进行接口连接。应该注意的是,本领域技术人员应该理解,小于二十厘米的距离与NFC范围一致。Application 211 of any of the client devices 210 can communicate with the contactless card 205 using short-range wireless communication (e.g., NFC). Application 211 can be configured to interface with a card reader 213 of the client device 210 configured to communicate with the contactless card 205. It should be noted that those skilled in the art will understand that a distance of less than twenty centimeters is consistent with the NFC range.
在一些实施例中,应用211通过相关联的读取器(例如,读卡器213)与非接触式卡205通信。In some embodiments, application 211 communicates with contactless card 205 via an associated reader (e.g., card reader 213).
在一些实施例中,卡激活可以在没有用户认证的情况下发生。例如,非接触式卡205可以通过NFC通过客户端设备210的读卡器213与应用211通信。该通信(例如,贴近客户端设备210的读卡器213轻击卡)允许应用211读取与卡相关联的数据并执行激活。在一些情况下,轻击可以激活或启动应用211,并且然后发起一个或多个动作或与账户服务器225的通信,以激活卡供后续使用。在一些情况下,如果应用211没有安装在客户端设备210上,则卡针对读卡器213的轻击可以发起应用211的下载(例如,导航到应用下载页面)。在安装之后,轻击卡可以激活或启动应用211,并且然后发起(例如,经由应用或其他后端通信)卡的激活。在激活后,该卡可以用于各种交易,包括商业交易。In some embodiments, card activation can occur without user authentication. For example, contactless card 205 can communicate with application 211 via NFC through card reader 213 of client device 210. This communication (e.g., tapping the card near card reader 213 of client device 210) allows application 211 to read data associated with the card and perform activation. In some cases, a tap can activate or launch application 211 and then initiate one or more actions or communications with account server 225 to activate the card for subsequent use. In some cases, if application 211 is not installed on client device 210, a tap of the card against card reader 213 can initiate the download of application 211 (e.g., navigating to an application download page). After installation, tapping the card can activate or launch application 211 and then initiate (e.g., via application or other backend communications) card activation. After activation, the card can be used for various transactions, including commercial transactions.
根据一些实施例,非接触式卡205可以包括虚拟支付卡。在那些实施例中,应用211可以通过访问在客户端设备210上实施的数字钱包来获取与非接触式卡205相关联的信息,其中数字钱包包括虚拟支付卡。在一些示例中,虚拟支付卡数据可以包括一个或多个静态或动态生成的虚拟卡号。According to some embodiments, the contactless card 205 may include a virtual payment card. In those embodiments, the application 211 can obtain information associated with the contactless card 205 by accessing a digital wallet implemented on the client device 210, wherein the digital wallet includes the virtual payment card. In some examples, the virtual payment card data may include one or more statically or dynamically generated virtual card numbers.
服务器220可以包括与数据库235通信的网络服务器。服务器225可以包括账户服务器。在一些示例中,服务器220可以被配置为通过与数据库235中的一个或多个凭证进行比较来校验来自非接触式卡205和/或客户端设备210的一个或多个凭证。服务器225可以被配置为授权来自非接触式卡205和/或客户端设备210的一个或多个请求,诸如支付和交易。Server 220 may include a web server communicating with database 235. Server 225 may include an account server. In some examples, server 220 may be configured to verify one or more credentials from contactless card 205 and/or client device 210 by comparing them with one or more credentials in database 235. Server 225 may be configured to authorize one or more requests from contactless card 205 and/or client device 210, such as payments and transactions.
图3A示出了一个或多个非接触式卡300,该一个或多个非接触式卡可以包括由显示在卡300的正面或背面的服务提供商305发行的支付卡,诸如信用卡、借记卡或礼品卡。在一些示例中,非接触式卡300与支付卡无关,并且可以包括但不限于标识卡。在一些示例中,支付卡可以包括双接口非接触式支付卡。非接触式卡300可以包括基底310,该基底可以包括由塑料、金属和其他材料构成的单层或一个或多个层压层。示例性基底材料包括聚氯乙烯、聚氯乙烯乙酸酯、丙烯腈丁二烯苯乙烯、聚碳酸酯、聚酯、阳极化钛、钯、金、碳、纸和生物可降解材料。在一些示例中,非接触式卡300可以具有符合ISO/IEC 7810标准的ID-1格式的物理特性,并且非接触式卡可以另外符合ISO/IEC 14443标准。然而,应当理解的是,根据本公开的非接触式卡300可以具有不同的特性,并且本公开不要求在支付卡中实施非接触式卡。Figure 3A illustrates one or more contactless cards 300, which may include payment cards, such as credit cards, debit cards, or gift cards, issued by a service provider 305 displayed on the front or back of the card 300. In some examples, the contactless card 300 is not a payment card and may include, but is not limited to, an identification card. In some examples, the payment card may include a dual-interface contactless payment card. The contactless card 300 may include a substrate 310, which may include a single layer or one or more laminates made of plastic, metal, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyester, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 300 may have physical properties conforming to the ID-1 format of the ISO/IEC 7810 standard, and the contactless card may additionally conform to the ISO/IEC 14443 standard. However, it should be understood that the contactless card 300 according to this disclosure may have different characteristics, and this disclosure does not require the implementation of contactless cards in payment cards.
非接触式卡300还可以包括显示在卡的正面和/或背面的标识信息315,以及接触垫320。接触垫320可被配置成与另一通信设备(诸如用户设备、智能电话、膝上型电脑、台式电脑或平板计算机)建立联系。非接触式卡300还可以包括处理电路系统、天线和图3A中未示出的其他组件。这些组件可以位于接触垫320的后面或者基底310上的其他地方。非接触式卡300还可以包括可以位于卡的背面上(图3A中未示出)的磁条或磁带。The contactless card 300 may also include identification information 315 displayed on the front and/or back of the card, and a contact pad 320. The contact pad 320 may be configured to communicate with another communication device, such as a user equipment, smartphone, laptop, desktop computer, or tablet computer. The contactless card 300 may also include a processing circuitry, an antenna, and other components not shown in Figure 3A. These components may be located behind the contact pad 320 or elsewhere on the substrate 310. The contactless card 300 may also include a magnetic stripe or magnetic tape that may be located on the back of the card (not shown in Figure 3A).
如图3B所示,图3A的接触垫320可以包括用于存储和处理信息的处理电路系统325,该处理电路系统包括微处理器330和存储器335。应当理解的是,处理电路系统325可以包含执行本文描述的功能所必需的附加组件,包括处理器、存储器、错误和奇偶校验/CRC检查器、数据编码器、防冲突算法、控制器、命令解码器、安全性原语和防篡改硬件。As shown in Figure 3B, the contact pad 320 of Figure 3A may include a processing circuitry system 325 for storing and processing information, which includes a microprocessor 330 and a memory 335. It should be understood that the processing circuitry system 325 may include additional components necessary to perform the functions described herein, including a processor, memory, error and parity/CRC checkers, a data encoder, anti-collision algorithms, a controller, a command decoder, security primitives, and tamper-proof hardware.
存储器335可以是只读存储器、一次写入多次读取存储器或读/写存储器,例如RAM、ROM和EEPROM,并且非接触式卡300可以包括这些存储器中的一个或多个。只读存储器可以是工厂可编程的只读存储器或一次性可编程存储器。一次性可编程性提供了一次写入然后多次读取的机会。一次写入/多次读取存储器可以在存储器芯片已经出厂后的某个时间点被编程。一旦存储器被编程,它可能不被重写,但它可能被多次读取。读/写存储器可以在出厂后被编程和再编程多次。其也可以被读取多次。Memory 335 can be read-only memory, write-once-read-many memory, or read/write memory, such as RAM, ROM, and EEPROM, and the contactless card 300 may include one or more of these memories. Read-only memory can be factory-programmable or one-time programmable memory. One-time programmability provides the opportunity to write once and then read many times. Write-once/read-many memory can be programmed at some point after the memory chip has left the factory. Once programmed, the memory may not be rewritten, but it may be read multiple times. Read/write memory can be programmed and reprogrammed multiple times after leaving the factory. It can also be read multiple times.
存储器335可以被配置为存储一个或多个小程序340、一个或多个计数器345、客户标识符350以及其他类型的数据、信息、代码等,诸如与安全性360相关的特征。一个或多个小程序340可以包括被配置为在一个或多个非接触式卡上执行的一个或多个软件应用,诸如Java卡小程序。然而,应当理解的是,小程序340不限于Java卡小程序,并且代替地可以是可在非接触式卡或具有有限存储器的其他设备上操作的任何软件应用。一个或多个计数器345可以包括足以存储整数的数字计数器。客户标识符350可以包括分配给非接触式卡300的用户的唯一字母数字标识符,并且该标识符可以将非接触式卡的用户与其他非接触式卡用户区分开。在一些示例中,客户标识符350可以标识客户和分配给该客户的账户两者,并且可以进一步标识与该客户的账户相关联的非接触式卡。Memory 335 may be configured to store one or more applets 340, one or more counters 345, customer identifier 350, and other types of data, information, code, etc., such as features related to security 360. One or more applets 340 may include one or more software applications, such as Java card applets, configured to execute on one or more contactless cards. However, it should be understood that applets 340 are not limited to Java card applets and may instead be any software application operable on a contactless card or other device with limited memory. One or more counters 345 may include numeric counters sufficient to store integers. Customer identifier 350 may include a unique alphanumeric identifier assigned to a user of contactless card 300, and this identifier may distinguish the user of the contactless card from other contactless card users. In some examples, customer identifier 350 may identify both the customer and the account assigned to that customer, and may further identify the contactless card associated with that customer's account.
而且,安全性特征360可以包括随机数生成器(random number generator,RNG)362、对非接触式卡300唯一的一个或多个加密哈希函数364、用于将随机数或哈希输出值转换为人类可读字符的转换器336、以及通过变换由转换器366输出的人类可读字符来可选地为密码配置附加安全性层的密码变换器368。可以理解的是,例如,随机数发生器362可以被用于并内置到非接触式卡300中用于其他类型的基于安全性的功能(诸如加密)。Furthermore, security feature 360 may include a random number generator (RNG) 362, one or more cryptographic hash functions unique to the contactless card 300, a converter 336 for converting random number or hash output values into human-readable characters, and a password transformer 368 that optionally configures an additional security layer for the password by transforming the human-readable characters output by converter 366. It is understood that, for example, the random number generator 362 may be used and built into the contactless card 300 for other types of security-based functions (such as encryption).
参照接触垫描述了前述示例性实施例的处理器和存储器元件,但是本公开不限于此。应当理解的是,这些元件可以在垫320外部实施、或者与该垫完全分离、或者作为位于接触垫320内的处理器330和存储器335元件之外的其他元件。The processor and memory elements of the foregoing exemplary embodiments have been described with reference to the contact pad, but this disclosure is not limited thereto. It should be understood that these elements may be implemented outside the pad 320, completely separate from the pad, or as other elements besides the processor 330 and memory 335 elements located within the contact pad 320.
在一些示例中,非接触式卡300可以包括一个或多个天线355。一个或多个天线355可以放置在非接触式卡300内并围绕接触垫320的处理电路系统325。例如,一个或多个天线355可以与处理电路系统325一体,并且一个或多个天线355可以与外部升压线圈一起使用。作为另一示例,一个或多个天线355可以在接触垫320和处理电路系统325的外部。In some examples, the contactless card 300 may include one or more antennas 355. The one or more antennas 355 may be housed within the contactless card 300 and surrounding the processing circuitry system 325 of the contact pad 320. For example, the one or more antennas 355 may be integrated with the processing circuitry system 325, and the one or more antennas 355 may be used in conjunction with an external boost coil. As another example, the one or more antennas 355 may be external to the contact pad 320 and the processing circuitry system 325.
在实施例中,非接触式卡300的线圈可以充当空芯变压器的次级线圈。终端可以通过切断电力或调幅与非接触式卡300通信。非接触式卡300可以使用非接触式卡的电力连接件中的间隙来推断从终端传输的数据,该电力连接可以通过一个或多个电容器在功能方面进行保持。非接触式卡300可以通过切换非接触式卡的线圈上的负载或负载调制来进行通信回传。负载调制可以通过干扰在终端的线圈中检测到。In this embodiment, the coil of the contactless card 300 can act as the secondary coil of an air-core transformer. The terminal can communicate with the contactless card 300 by disconnecting power or by amplitude modulation. The contactless card 300 can infer data transmitted from the terminal using gaps in the power connection of the contactless card, which can be functionally maintained by one or more capacitors. The contactless card 300 can perform communication return by switching the load or load modulation on the coil of the contactless card. Load modulation can be detected in the coil of the terminal by interference.
如上所解释那样,非接触式卡300可以构建在可在智能卡或具有有限的存储器的其他设备(例如JavaCard)上操作的软件平台上,并且可以安全地执行一个或多个应用或小程序。小程序可以被添加到非接触式卡中,以在各种基于移动应用的用例中为多因素认证(multifactor authentication,MFA)提供一次性密码(one-time password,OTP)。小程序可以被配置为响应来自读取器(诸如移动NFC读取器)的一个或多个请求(诸如近场数据交换请求),并且产生包括被编码为NDEF文本标签的加密安全的OTP的NDEF消息。As explained above, the contactless card 300 can be built on a software platform that operates on smart cards or other devices with limited memory (such as JavaCards) and can securely execute one or more applications or applets. Applets can be added to the contactless card to provide a one-time password (OTP) for multifactor authentication (MFA) in various mobile application-based use cases. The appletter can be configured to respond to one or more requests (such as near-field data exchange requests) from a reader (such as a mobile NFC reader) and generate an NDEF message that includes an encrypted and secure OTP encoded as an NDEF text tag.
图4示出了根据一个或多个实施例的使用非接触式卡的随机数生成器来生成安全密码的示例序列图400。序列图400示出了非接触式卡400和移动计算设备404之间的交互。可以理解的是,移动计算设备404可以是客户端设备,诸如被配置为与非接触式卡402通信的智能手机。如上所述,移动计算设备404可以包括被配置为经由NFC读取器线圈与非接触式卡建立NFC通信的至少一个NFC读卡器。Figure 4 illustrates an example sequence diagram 400 of a contactless card random number generator for generating a secure password according to one or more embodiments. Sequence diagram 400 illustrates the interaction between the contactless card 400 and the mobile computing device 404. It is understood that the mobile computing device 404 may be a client device, such as a smartphone configured to communicate with the contactless card 402. As described above, the mobile computing device 404 may include at least one NFC reader configured to establish NFC communication with the contactless card via an NFC reader coil.
在步骤410,可以在非接触式卡402和移动计算设备404之间建立通信。在示例中,通信可以在非接触式卡进入由移动计算设备的NFC读取器线圈所生成的磁场时自动建立。在其他示例中,当计算设备404检测到非接触式卡402已经进入由NFC读取器线圈所生成的磁场时,移动计算设备404可以首先通过向非接触式卡402发送信号来建立通信。可以理解的是,步骤410可以是可选步骤。在示例中,一旦卡进入移动计算设备的NFC读取器线圈的磁场,非接触式卡就可以自动开始向移动计算设备404提供消息。In step 410, communication can be established between the contactless card 402 and the mobile computing device 404. In this example, communication can be established automatically when the contactless card enters the magnetic field generated by the NFC reader coil of the mobile computing device. In other examples, the mobile computing device 404 can establish communication first by sending a signal to the contactless card 402 when it detects that the contactless card 402 has entered the magnetic field generated by the NFC reader coil. It is understood that step 410 can be an optional step. In this example, once the card enters the magnetic field of the NFC reader coil of the mobile computing device, the contactless card can automatically begin providing messages to the mobile computing device 404.
在步骤412,移动计算设备404可以从非接触式卡402请求安全密码。例如,在移动计算设备上运行的密码管理器应用可以为正在创建的新社交媒体账户请求密码。密码管理器应用可以在移动计算设备404上存储和管理安全密码。可以理解的是,步骤412可以是可选步骤,如虚线箭头所示。在一些示例中,移动计算设备不必请求密码。非接触式卡402可以在建立卡和移动设备之间的NFC通信并对其进行认证时自动生成和发送安全密码,特别是当非接触式卡402确定(例如,经由NFC通信建立和认证过程)与密码相关的应用、程序、网站、文件等正试图与非接触式卡402接口连接时。In step 412, the mobile computing device 404 may request a security password from the contactless card 402. For example, a password manager application running on the mobile computing device may request a password for a new social media account being created. The password manager application may store and manage the security password on the mobile computing device 404. It is understood that step 412 may be an optional step, as indicated by the dashed arrow. In some examples, the mobile computing device may not need to request a password. The contactless card 402 may automatically generate and send a security password when establishing and authenticating NFC communication between the card and the mobile device, particularly when the contactless card 402 determines (e.g., via the NFC communication establishment and authentication process) that an application, program, website, file, etc., associated with the password is attempting to interface with the contactless card 402.
在步骤414,非接触式卡402的随机数生成器可以生成具有预定或动态长度的随机数。例如,如果上述社交媒体账户要求密码具有一定长度,则随机数生成器可以相应地输出具有足够长度的随机数。在示例中,安全随机数可以被转换成一个或多个人类可读字符。如果随机数序列是“123 456 789”,则该序列可以被转换成“AyTer”或可由用户读取或保留的字母数字字符的任何其他组合。例如,数字的转换可以依赖于基于代码的加密系统、基于密钥的加密系统等。In step 414, the random number generator of the contactless card 402 can generate a random number with a predetermined or dynamic length. For example, if the aforementioned social media account requires a certain password length, the random number generator can output a random number of sufficient length accordingly. In the example, the secure random number can be converted into one or more human-readable characters. If the random number sequence is "123 456 789", the sequence can be converted into "AyTer" or any other combination of alphanumeric characters that can be read or retained by the user. For example, the conversion of the number can rely on a code-based encryption system, a key-based encryption system, etc.
在步骤416,由非接触式卡402生成安全密码。根据示例,安全密码可以是在步骤414生成的一个或多个人类可读字符,而没有任何改变。在其他示例中,并且如将在下面进一步描述的那样,一个或多个人类可读字符可以被进一步转换,使得可以向其添加附加安全性层。例如,上面提及的字符串“AyTer”可以被变换为“YeRTAP!”,这包括重新排列和使得字母中的一些大写,并向字符串中再添加几个字符。可以理解的是,该变换可以是增加密码的整体安全和复杂性的任何合适的修改。In step 416, a security password is generated by contactless card 402. According to the example, the security password can be one or more human-readable characters generated in step 414 without any alteration. In other examples, and as will be further described below, one or more human-readable characters can be further transformed to add an additional layer of security. For example, the string "AyTer" mentioned above can be transformed into "YeRTAP!", which involves rearranging and capitalizing some letters, and adding a few more characters to the string. It is understood that this transformation can be any suitable modification that increases the overall security and complexity of the password.
在步骤418,可以经由一个或多个NDEF消息或文件将安全密码发送到移动计算设备404。密码本身或整个NDEF消息或文件可以被适当地加密,以进一步增强密码的安全通信。在步骤420,移动计算设备404可以可选地(如虚线箭头所示)向非接触式卡402传输指示并证实接收到安全密码的确认(ACK)消息。In step 418, a secure password may be sent to mobile computing device 404 via one or more NDEF messages or files. The password itself or the entire NDEF message or file may be appropriately encrypted to further enhance the secure communication of the password. In step 420, mobile computing device 404 may optionally (as shown by the dashed arrow) transmit an acknowledgment (ACK) message to contactless card 402 indicating and confirming receipt of the secure password.
在步骤420,再次评估NDEF消息。移动计算设备404可以计算在步骤418接收的NDEF消息的新校验和,并确定它是否匹配NDEF消息中提供的校验和。如果校验和匹配,则在步骤422,移动计算设备404可以可选地发送确认(ACK)消息,如虚线箭头所示。如果校验和不匹配,则可以再次将NDEF消息提供给移动计算设备404并且进一步对其进行评估。这个过程可以继续,直到已经由移动计算设备404接收整个NDEF消息为止。在其他示例中,整个过程可以在预定次数的迭代或预定持续时间之后停止。如果移动计算设备404在预定次数的迭代或预定持续时间之后未能读取整个NDEF消息,则可以经由用户界面向用户返回错误消息。In step 420, the NDEF message is evaluated again. The mobile computing device 404 can calculate a new checksum for the NDEF message received in step 418 and determine if it matches the checksum provided in the NDEF message. If the checksum matches, in step 422, the mobile computing device 404 can optionally send an acknowledgment (ACK) message, as indicated by the dashed arrow. If the checksum does not match, the NDEF message can be provided to the mobile computing device 404 again for further evaluation. This process can continue until the entire NDEF message has been received by the mobile computing device 404. In other examples, the entire process can stop after a predetermined number of iterations or a predetermined duration. If the mobile computing device 404 fails to read the entire NDEF message after a predetermined number of iterations or a predetermined duration, an error message can be returned to the user via the user interface.
图5示出了根据一个或多个实施例的密码管理器应用502和安全密码生成。如图所示,密码管理器应用502可以在移动计算设备504上打开,该移动计算设备可以是属于用户的智能手机。密码管理器应用502可以为许多服务维护和组织各种密码,并显示每个密码的相关信息。例如,第一示出的密码“UtR4yzz7@wash”可以对应于2019年1月1日创建的移动银行应用,并且是密码管理器已为银行应用创建的第二密码。Figure 5 illustrates a password manager application 502 and secure password generation according to one or more embodiments. As shown, the password manager application 502 can be opened on a mobile computing device 504, which may be a smartphone belonging to a user. The password manager application 502 can maintain and organize various passwords for many services and display relevant information for each password. For example, the password "UtR4yzz7@wash" shown in the first example may correspond to a mobile banking application created on January 1, 2019, and is a second password that the password manager has created for the banking application.
作为示例,用户可能正在设置新电子邮件帐户,这需要用户选择安全密码。用户可以针对移动计算设备504轻击非接触式智能卡510,或者将卡510放置在移动计算设备504附近(例如,处于预定的值距离),以在卡510和移动设备504之间建立安全和经授权的NFC通信。在实施例中,当非接触式智能卡510与移动计算设备502建立安全且经授权的NFC通信时,可以向用户呈现与卡510相关的各种智能手机应用,例如,在线银行应用、汇款应用、密码管理器应用502等。用户可以选择期望的应用,这允许移动计算设备504指令非接触式智能卡510执行适当的功能。因此,当用户选择密码管理器应用502时,卡510知道生成(或将生成)安全密码。在替代性实施例中,密码管理器应用502可以被设置为默认功能,并且因此,当在移动设备504和卡510之间建立安全且经授权的NFC通信时,非接触式智能卡510可以自动生成安全密码。As an example, a user might be setting up a new email account, which requires the user to choose a secure password. The user can tap the contactless smart card 510 against the mobile computing device 504, or place the card 510 near the mobile computing device 504 (e.g., at a predetermined value distance) to establish secure and authorized NFC communication between the card 510 and the mobile device 504. In an embodiment, when the contactless smart card 510 establishes secure and authorized NFC communication with the mobile computing device 502, various smartphone applications associated with the card 510 can be presented to the user, such as online banking applications, remittance applications, password manager applications 502, etc. The user can select the desired application, which allows the mobile computing device 504 to instruct the contactless smart card 510 to perform the appropriate function. Therefore, when the user selects the password manager application 502, the card 510 knows that a secure password has been generated (or will be generated). In an alternative embodiment, the password manager application 502 can be set as a default function, and thus, when a secure and authorized NFC communication is established between the mobile device 504 and the card 510, the contactless smart card 510 can automatically generate a secure password.
如所示出的那样,非接触式智能卡510使用随机数生成器512来生成随机数。如上所述,可以理解的是,随机数生成器512可以用于其他目的,诸如加密。该随机数然后可以由转换器514转换成一个或多个人类可读字符。例如,只有数字的随机序列可以被转换成对用户来说更相关和更有用的字母数字字符的序列。此时,一个或多个人类可读字符可以被发送到密码管理器应用502,作为用户可以用于新电子邮件账户的密码,如虚线箭头所示。然而,如上所述,一个或多个人类可读字符可以由密码变换器516变换,例如,字符被重新排列、使一些字符大写、使一些字符小写、添加或减少一些字符等。该变换可以为密码添加更多的复杂性和安全性层。As shown, the contactless smart card 510 uses a random number generator 512 to generate random numbers. As mentioned above, it is understood that the random number generator 512 can be used for other purposes, such as encryption. This random number can then be converted by a converter 514 into one or more human-readable characters. For example, a random sequence of only numbers can be converted into a sequence of alphanumeric characters that are more relevant and useful to the user. At this point, one or more human-readable characters can be sent to a password manager application 502 as a password that the user can use for a new email account, as indicated by the dashed arrow. However, as mentioned above, one or more human-readable characters can be transformed by a password transformer 516, for example, by rearranging the characters, making some characters uppercase, making some characters lowercase, adding or removing some characters, etc. This transformation can add more complexity and security layers to the password.
非接触式智能卡510可以经由至少一个NDEF消息或文件向移动计算设备504发送安全密码。密码管理器应用502然后在其中存储和管理密码。如所示出那样,为新电子邮件帐户所生成的安全密码可以是经变换的密码并记为“MOZaRt_Song78”,该密码在密码管理器中被指示为用户的在第一实例中创建于2019年1月5日的电子邮件帐户的密码。出于各种原因,为用户创建和管理该密码被认为是高度安全的。例如,非接触式智能卡510的随机数生成器512是可验证安全的,并且唯一地与用户相关联,因为卡属于用户并且仅属于该用户。在另一示例中,非接触式智能卡510本身可以用于打开密码管理器应用502(与附加的密码输入一起),其有效地充当应用的“主”密码。因此,在没有物理卡的情况下,欺诈者不能打开密码管理器应用502。而且,在一些示例中,非接触式智能卡510可以存储密码中的一些或全部,当在移动计算设备上打开密码管理器应用时这些密码然后可以由密码管理器应用502管理。因此,在没有卡510的物理所有权的情况下,欺诈者将不能访问密码。The contactless smart card 510 can send a secure password to the mobile computing device 504 via at least one NDEF message or file. A password manager application 502 then stores and manages the password. As shown, the secure password generated for a new email account could be a transformed password and denoted as “MOZaRt_Song78”, which is indicated in the password manager as the password for the email account created for the user in the first instance on January 5, 2019. Creating and managing this password for the user is considered highly secure for various reasons. For example, the random number generator 512 of the contactless smart card 510 is verifiable and secure, and uniquely associated with the user, as the card belongs to the user and only to that user. In another example, the contactless smart card 510 itself can be used to open the password manager application 502 (along with an additional password input), effectively acting as the application's "master" password. Therefore, without the physical card, a fraudster cannot open the password manager application 502. Furthermore, in some examples, the contactless smart card 510 can store some or all of the passwords, which can then be managed by the password manager application 502 when the password manager application is opened on a mobile computing device. Therefore, without physical ownership of the card 510, a fraudster will not be able to access the passwords.
可以理解的是,图5中示出的密码管理器应用502仅用于说明目的,并不限于此。该应用可以包括用于安全存储和管理密码的附加功特征。而且,可以理解的是,非接触式智能卡510中示出的组件(例如随机数生成器512、转换器514、密码变换器516)全部都可以由集成到卡510中的一个或多个处理器或微处理器来执行或实施。It is understood that the password manager application 502 shown in Figure 5 is for illustrative purposes only and is not limited thereto. This application may include additional features for secure storage and management of passwords. Furthermore, it is understood that all components shown in the contactless smart card 510 (e.g., random number generator 512, converter 514, password changer 516) can be executed or implemented by one or more processors or microprocessors integrated into the card 510.
图6示出了根据一个或多个实施例的使用非接触式卡的加密哈希函数来生成安全密码的示例序列图600。序列图600示出了非接触式卡602和移动计算设备604之间的双向通信协议。Figure 6 illustrates an example sequence diagram 600 for generating a secure password using a cryptographic hash function of a contactless card according to one or more embodiments. Sequence diagram 600 illustrates a bidirectional communication protocol between a contactless card 602 and a mobile computing device 604.
在步骤610,类似于图4中示出的序列图,可以在非接触式卡602和移动计算设备604之间建立安全且经认证的NFC通信。例如,可以针对移动计算设备604轻击非接触式卡602或者将非接触式卡放置在设备604附近(例如,距预定距离)以发起通信。In step 610, similar to the sequence diagram shown in FIG4, secure and authenticated NFC communication can be established between contactless card 602 and mobile computing device 604. For example, communication can be initiated by tapping contactless card 602 against mobile computing device 604 or by placing contactless card near device 604 (e.g., at a predetermined distance).
在步骤612,移动计算设备604可以从非接触式卡602请求安全密码。在密码请求的情况下或之后(步骤614),移动计算设备604可以传输与“请求”组件或实体相关联的标识符。例如,如果用户正在网站上创建新账户,则网站或控制网站的实体可以请求用户创建对应于这个新账户的新密码。因此,“请求”组件或实体可以是网站。标识符可以是唯一标识特定请求组件或实体或与特定请求组件或实体相关联的任何信息。对于网站,标识符可以是其URL地址中的字符。如果移动应用正在请求密码,则标识符可以是应用的名称中的字符、或者是对于应用、网站、文件、程序等唯一的任何文本或数字等。可以理解的是,移动计算设备604可以利用公钥至少加密标识符。In step 612, mobile computing device 604 may request a secure password from contactless card 602. Upon or after the password request (step 614), mobile computing device 604 may transmit an identifier associated with the "requesting" component or entity. For example, if a user is creating a new account on a website, the website or the entity controlling the website may request the user to create a new password corresponding to this new account. Therefore, the "requesting" component or entity could be the website. The identifier can be any information that uniquely identifies a specific requesting component or entity or is associated with a specific requesting component or entity. For a website, the identifier could be characters in its URL address. If a mobile application is requesting a password, the identifier could be characters in the application's name, or any text or numbers unique to the application, website, file, program, etc. It is understood that mobile computing device 604 may encrypt the identifier using a public key.
在步骤616,非接触式卡602接收经加密的标识符,并且可以利用私钥对其进行解密。卡602然后可以将至少唯一标识符(并且在一些示例中与其他类型的合适信息一起)输入到安全加密哈希函数中作为数据输入。加密哈希函数可以是例如任何SHA(例如SHA-0、SHA-1、SHA-2、SHA-3)函数。然后,哈希输出值可以被转换成一个或多个人类可读字符。In step 616, the contactless card 602 receives the encrypted identifier and can decrypt it using a private key. The card 602 can then input at least a unique identifier (and in some examples, along with other suitable types of information) as data input into a secure cryptographic hash function. The cryptographic hash function can be, for example, any SHA function (e.g., SHA-0, SHA-1, SHA-2, SHA-3). The hash output value can then be converted into one or more human-readable characters.
在步骤618,可以生成一个或多个人类可读字符作为密码。替代性地,字符可以被进一步变换以增加更多安全性和复杂性层,并且然后经变换的字符可以被生成为安全密码。在步骤620,安全密码被打包在至少NDEF文件或消息中,并被发送到移动计算设备604。NDEF消息或文件也可以由非接触式卡602加密,并在移动计算设备侧被解密。可选地,在步骤622,移动计算设备604可以向非接触式卡602发送证实接收到安全密码的确认消息。In step 618, one or more human-readable characters can be generated as a password. Alternatively, the characters can be further transformed to add more layers of security and complexity, and the transformed characters can then be used to generate a secure password. In step 620, the secure password is packaged in at least an NDEF file or message and sent to the mobile computing device 604. The NDEF message or file can also be encrypted by the contactless card 602 and decrypted on the mobile computing device side. Optionally, in step 622, the mobile computing device 604 can send an acknowledgment message to the contactless card 602 confirming receipt of the secure password.
类似于上面讨论的随机数生成器,加密哈希函数可以是完全唯一的,并且只集成到非接触式卡602中,而不集成到其他卡中,这增强了安全性。另一优点是,标识符允许加密哈希函数或密文可靠且安全地为相同的请求组件或实体生成相同的密码。因此,密码不必保存或存储在卡上或任何其他地方。例如,如果用户重访网站并需要利用安全密码登录,则用户可以能够针对用户的移动设备轻击非接触式卡602,并且哈希函数可以能够生成所需的密码,使得用户可以能够登录,如将在下面进一步描述的那样。如果用户期望新密码,则可以使用新的且不同的标识符(可选地与其他类型的数据一起)以经由加密哈希函数来创建新密码。Similar to the random number generator discussed above, the cryptographic hash function can be completely unique and integrated only into contactless card 602, not into other cards, which enhances security. Another advantage is that the identifier allows the cryptographic hash function or ciphertext to reliably and securely generate the same password for the same requesting component or entity. Therefore, the password does not need to be stored on the card or anywhere else. For example, if a user revisits a website and needs to log in with a secure password, the user can tap contactless card 602 on their mobile device, and the hash function can generate the required password, allowing the user to log in, as will be described further below. If the user desires a new password, a new and different identifier (optionally along with other types of data) can be used to create a new password via the cryptographic hash function.
图7示出了根据实施例的用于网站702的示例安全密码生成700。网站702可以是社交媒体网站,并且可以经由属于用户的移动计算设备704来访问,如所示出的那样。如果用户是网站702上的新用户,则可能要求用户创建帐户,并利用用户名(例如,用户XYZ)和安全密码保护该帐户。网站可以要求密码是特定长度并包含特定字符。因此,可以理解的是,密码“请求”组件或实体是网站702。Figure 7 illustrates an example secure password generation 700 for website 702 according to an embodiment. Website 702 may be a social media website and may be accessed via a mobile computing device 704 belonging to a user, as shown. If the user is a new user on website 702, the user may be required to create an account and protect that account with a username (e.g., user XYZ) and a secure password. The website may require the password to be of a specific length and contain specific characters. Therefore, it can be understood that the password "request" component or entity is website 702.
如所示出的那样,为了发起用于网站702的安全密码的生成,用户可以针对移动计算设备704轻击用户的非接触式智能卡502或将用户的非接触式智能卡放置在移动计算设备附近,使得建立安全且经认证的NFC通信。非接触式智能卡710可以从网站702接收网站标识符706,其可以是包含在网站702的URL中的一个或多个唯一字符。例如,如果URL是“www.chirp-network.com”,则网站标识符706可以是“chirp-”。As shown, to initiate the generation of a secure password for website 702, the user can tap their contactless smart card 502 against mobile computing device 704 or place their contactless smart card near the mobile computing device, thereby establishing secure and authenticated NFC communication. The contactless smart card 710 can receive a website identifier 706 from website 702, which can be one or more unique characters contained in the URL of website 702. For example, if the URL is “www.chirp-network.com”, then the website identifier 706 could be “chirp-”.
网站标识符706(可选地与其他类型的数据、信息、字符、数字等一起)可以作为输入数据被馈送到加密哈希函数712中。加密哈希函数712然后可以向转换器714提供哈希输出值,该转换器可以获取哈希输出值并将其转换成一个或多个人类可读字符。一个或多个人类可读字符可以作为密码直接提供给网站702,如虚线所示。而且,在一些示例中,一个或多个人类可读字符可以被提供给密码变换器716以变换字符,以便添加更多安全性和复杂性层,然后可以将其作为密码提供给网站702。A website identifier 706 (optionally along with other types of data, information, characters, numbers, etc.) can be fed as input data into a cryptographic hash function 712. The cryptographic hash function 712 can then provide a hash output value to a converter 714, which takes the hash output value and converts it into one or more human-readable characters. These one or more human-readable characters can be provided directly to the website 702 as a password, as shown by the dotted line. Furthermore, in some examples, the one or more human-readable characters can be provided to a password transformer 716 to transform the characters, adding further layers of security and complexity, before being provided to the website 702 as a password.
在网站702上创建新账户后,要求用户使用用户ID和安全密码登录到社交媒体账户。用户可以再次针对移动计算设备704轻击非接触式智能卡710或将用户的非接触式智能卡放置在移动计算设备附近,这允许网站702再次向非接触式卡710提供网站标识符706。因此,可以生成并向网站702提供网站702的相同的先前创建的密码。After creating a new account on website 702, the user is prompted to log in to their social media account using a user ID and a security password. The user can then tap the contactless smart card 710 against the mobile computing device 704 or place the user's contactless smart card near the mobile computing device, allowing website 702 to again provide the website identifier 706 to the contactless card 710. Therefore, the same previously created password for website 702 can be generated and provided to website 702.
在示例中,移动计算设备704可以结合自动填充特征,其中当针对计算设备704被重新轻击非接触式卡710时,密码被自动填充在密码字段中,如所示出那样。可以利用一系列星号使密码模糊。有利地,至少以这样的方式,密码不必保存在非接触式卡710或移动计算设备704上,因为具有卡710的唯一加密哈希函数的网站标识符706可以在每次被请求时生成相同的密码。如果用户期望为网站702生成新密码,可以使用新网站标识符,例如,“chirp-网络”等。In the example, the mobile computing device 704 can incorporate an autofill feature, where the PIN is automatically filled into the PIN field when the contactless card 710 is tapped again on the computing device 704, as shown. A series of asterisks can be used to obfuscate the PIN. Advantageously, at least in this way, the PIN does not need to be stored on the contactless card 710 or the mobile computing device 704, because the website identifier 706, which has a unique cryptographic hash function for the card 710, can generate the same PIN each time it is requested. If the user expects to generate a new PIN for website 702, a new website identifier can be used, such as “chirp-network”, etc.
可以理解的是,当使用随机数生成器来生成安全密码时,也可以结合自动填充特征。例如,可以针对移动计算设备轻击非接触式卡或将非接触式卡放置在移动计算设备附近以触发这个特征,这可以提示密码管理器应用获取例如上述电子邮件账户的适当密码,并在登录到电子邮件账户时自动填充或自动填入密码字段。Understandably, when using a random number generator to generate secure passwords, it can also be combined with an autofill feature. For example, tapping a contactless card on a mobile computing device or placing a contactless card near a mobile computing device can trigger this feature, which can prompt a password manager application to retrieve the appropriate password for, for example, the email account mentioned above, and automatically fill in or autofill the password field when logging into the email account.
图8示出了根据一个或多个实施例的示例流程图800。流程图800涉及经由NFC使能的非接触式智能卡来安全地生成和/或管理一个或多个密码。可以理解的是,与所示出的框相关联的特征可以由非接触式卡和包含在其中的处理电路系统来执行或运行。而且,可以理解的是,流程图800中的框不限于任何特定顺序,并且一个或多个框可以同时执行或运行。Figure 8 illustrates an example flowchart 800 according to one or more embodiments. Flowchart 800 relates to securely generating and/or managing one or more passwords via an NFC-enabled contactless smart card. It is understood that the features associated with the illustrated blocks can be performed or operated by the contactless card and the processing circuitry system contained therein. Furthermore, it is understood that the blocks in flowchart 800 are not limited to any particular order, and one or more blocks can be performed or operated simultaneously.
在框802,可以确定非接触式卡的至少一个通信接口是否与NFC读取器处于NFC通信。NFC读取器可以被包括、并入或内置到移动计算设备(诸如智能手机)中。因此,当非接触式卡进入由NFC读取器生成的磁场时,非接触式卡中的电路系统可以被激活以发起安全密码生成过程。而且,可以验证卡和NFC读取器之间的NFC通信是否安全和/或被认证。In box 802, it can be determined whether at least one communication interface of the contactless card is in NFC communication with an NFC reader. The NFC reader may be included, incorporated into, or built into a mobile computing device (such as a smartphone). Therefore, when the contactless card enters the magnetic field generated by the NFC reader, the circuitry in the contactless card can be activated to initiate a secure password generation process. Furthermore, it can be verified whether the NFC communication between the card and the NFC reader is secure and/or authenticated.
在框804,可以由非接触式卡接收来自移动计算设备的密码请求。与该请求一起,可以接收与应用、网站、文件或程序相关联的标识符。如上所述,标识符可以是唯一标识应用、网站、文件或“请求”安全密码的程序的任何合适的信息。例如,它可以是与应用、网站、文件或程序相关联的名称,它可以是与网站相关联的URL,或者它可以是对应用、网站、文件或程序唯一的任何数字或文本。标识符可以作为经加密的消息被接收(例如,移动设备可以利用公钥加密标识符)。非接触式卡可以利用私钥解密消息以获得标识符。In box 804, a password request from a mobile computing device can be received by the contactless card. Along with the request, an identifier associated with an application, website, file, or program can be received. As described above, the identifier can be any suitable information that uniquely identifies the application, website, file, or program "requesting" a secure password. For example, it can be the name associated with the application, website, file, or program; it can be the URL associated with the website; or it can be any number or text that is unique to the application, website, file, or program. The identifier can be received as an encrypted message (e.g., the mobile device can encrypt the identifier using a public key). The contactless card can decrypt the message using a private key to obtain the identifier.
在框806,至少标识符(可选地和其他类型的数据或信息一起)可以被输入到加密哈希函数,例如SHA-0、SHA-1、SHA-2、SHA-3或任何其他合适的密文作为输入数据,以输出哈希输出值。至少在这方面,哈希函数类似于随机数发生器,因为它是高度安全的、可验证的,并且仅对使用它的非接触式卡是唯一的。In box 806, at least an identifier (optionally along with other types of data or information) can be input into a cryptographic hash function, such as SHA-0, SHA-1, SHA-2, SHA-3, or any other suitable ciphertext, to output a hash value. At least in this respect, the hash function is similar to a random number generator because it is highly secure, verifiable, and unique only to the contactless card that uses it.
在框808,哈希输出值可以被转换成一个或多个人类可读字符,其可以作为安全密码输出,或者可以被进一步变换以向密码添加附加的复杂性和安全性层。如上所述的变换可以包括重新排列字符、大写、小写、添加、移除字符等。In box 808, the hash output value can be transformed into one or more human-readable characters, which can serve as a secure password output, or can be further transformed to add additional complexity and security layers to the password. Transformations as described above can include rearranging characters, capitalizing, lowercase, adding, removing characters, etc.
在框810,安全密码可以被加密并经由至少一个NDEF消息或文件传输。在某些示例中,密码可能没有被保存在非接触式卡中。仅当非接触式卡被确定为与计算设备的NFC读取器处于安全且经认证的NFC通信时,才可以传输密码。In box 810, the security password can be encrypted and transmitted via at least one NDEF message or file. In some examples, the password may not be stored on the contactless card. The password can only be transmitted if the contactless card is determined to be in secure and authenticated NFC communication with the NFC reader of the computing device.
而且,在示例中,当针对计算设备轻击非接触式卡或非接触式卡被放置在距计算设备的阈值距离内时,对应于具有密码的应用、网站、文件或程序的密码字段可以被自动填充或自动填入。Furthermore, in the example, when a contactless card is tapped on a computing device or placed within a threshold distance of the computing device, the password field corresponding to an application, website, file, or program with a password can be automatically filled or automatically entered.
在另外的示例中,可以由移动计算设备发送第二密码请求。第二请求可以用于先前生成的密码,这将要求移动计算设备发送用于该密码的先前使用的标识符。或者,如果请求新密码,则可以发送新标识符,这将生成新的哈希输出值,并且进而生成新密码。In another example, a second password request can be sent by the mobile computing device. This second request could be for a previously generated password, which would require the mobile computing device to send the previously used identifier for that password. Alternatively, if a new password is requested, a new identifier can be sent, which would generate a new hash output value and thus a new password.
以上描述的设备的组件和特征可以使用分立电路系统、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任意组合来实施。进一步,在适当地适用的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述内容的任意组合来实施设备的特征。注意,硬件、固件和/或软件元件在本文中可以统称或单独称为“逻辑”或“电路”。The components and features of the device described above can be implemented using any combination of discrete circuit systems, application-specific integrated circuits (ASICs), logic gates, and/or single-chip architectures. Furthermore, where appropriate, the features of the device can be implemented using microcontrollers, programmable logic arrays, and/or microprocessors, or any combination thereof. Note that hardware, firmware, and/or software elements may be collectively or individually referred to herein as "logic" or "circuit".
至少一个计算机可读存储介质可以包括指令,这些指令在被执行时使得系统执行本文描述的任何计算机实施的方法。At least one computer-readable storage medium may include instructions that, when executed, cause a system to perform any computer-implemented method described herein.
一些实施例可以使用表述“一个实施例”或“实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书中的不同地方的出现不一定全部指同一实施例。另外,除非另有说明,以上描述的特征被认为可以以任何组合一起使用。因此,任何单独讨论的特征可以彼此结合使用,除非注意这些特征彼此不兼容。Some embodiments may be described using the expressions “one embodiment” or “embodiment” and their derivatives. These terms mean that a particular feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. The appearance of the phrase “in one embodiment” in different places in the specification does not necessarily refer to the same embodiment. In addition, unless otherwise stated, the features described above are considered to be used in any combination. Therefore, any feature discussed individually may be used in combination with each other, unless it is noted that these features are incompatible with each other.
一般参考本文中使用的符号和命名,本文中的详细描述可以根据在计算机或计算机的网络上执行的程序过程来呈现。由本领域技术人员使用这些程序描述和表示来最有效地向本领域其他技术人员传达他们的工作的实质。Generally, reference is made to the symbols and nomenclature used herein, and the detailed descriptions herein can be presented based on program procedures executed on a computer or a network of computers. These procedures and representations are used by those skilled in the art to most effectively communicate the substance of their work to others skilled in the art.
程序在此并且通常被认为是导致期望的结果的自洽的操作序列。这些操作是需要对物理量进行物理操控的那些操作。通常,尽管不是必须的,这些量采取能够被存储、传送、组合、比较和以其他方式操控的电、磁或光学信号的形式。主要是出于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时被证明是方便的。然而,应该注意的是,所有这些和类似的术语与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。The procedure here is, and is generally considered, a self-consistent sequence of operations that leads to the desired result. These operations are those that require physical manipulation of physical quantities. Typically, though not always, these quantities take the form of electrical, magnetic, or optical signals that can be stored, transmitted, combined, compared, and otherwise manipulated. It is sometimes convenient to refer to these signals as bits, values, elements, symbols, characters, items, numbers, etc., primarily for general reasons. However, it should be noted that all these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to them.
进一步,所执行的操控通常被称为诸如相加或比较的术语,这些术语通常与由人类操作员执行的精神操作相关联。在形成一个或多个实施例的一部分的本文描述的操作中的任何一个中,人类操作员的这种能力不是必需的,或者在大多数情况下不是期望的。而是,这些操作是机器操作。Furthermore, the operations performed are often referred to by terms such as addition or comparison, which are generally associated with mental operations performed by a human operator. In any of the operations described herein that form part of one or more embodiments, such ability of a human operator is not required, or in most cases not desired. Rather, these operations are machine operations.
一些实施例可以使用表达“耦接”和“连接”及其派生词来描述。这些术语不一定旨在是彼此同义。例如,一些实施例可以使用术语“连接”和/或“耦接”来描述,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦接”也可以表示两个或更多个元件彼此不直接接触,但是仍然彼此合作或交互。Some embodiments may use the expressions “coupled” and “connected” and their derivatives for description. These terms are not necessarily intended to be synonymous with each other. For example, some embodiments may use the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “coupled” may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.
各种实施例还涉及用于执行这些操作的装置或系统。这个装置可以为所需的目的而专门构造,并且它可以由存储在计算机中的计算机程序选择性激活或重新配置。本文中呈现的程序并不固有地与特定的计算机或其他装置相关。各种机器所需的结构将从给出的描述中出现。Various embodiments also relate to apparatus or systems for performing these operations. This apparatus may be specifically constructed for a desired purpose, and may be selectively activated or reconfigured by a computer program stored in a computer. The programs presented herein are not inherently associated with a particular computer or other apparatus. The necessary architecture for various machines will emerge from the given description.
要强调的是,提供本公开的摘要是为了允许读者快速确定技术性公开内容的性质。在具有这样的理解的情况下提交的,即其将不用于解释或限制权利要求的范围或含义。此外,在前面的详细描述中,可以看出,出于简化本公开的目的,在单个实施例中将各种特征组合在一起。该公开方法不应被解释为反映了要求保护的实施例需要比每个权利要求中明确陈述的更多的特征的意图。相反,如以下权利要求所反映的那样,发明主题在于少于单个公开实施方式的全部特征。因此,下面的权利要求由此被结合到详细描述中,其中每个权利要求独立地作为分离的实施例。在所附权利要求中,术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包含(comprising)”和“其中(wherein)”的简明英语等价物。而且,术语“第一”、“第二”、“第三”等仅用作标签,并不旨在对它们的对象强加数字要求。It is important to emphasize that this abstract of the disclosure is provided to allow the reader to quickly determine the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Furthermore, as can be seen from the foregoing detailed description, various features are combined in a single embodiment for the purpose of simplifying the disclosure. This method of disclosure should not be construed as reflecting an intention that the claimed embodiment requires more features than expressly stated in each claim. Rather, as reflected in the following claims, the subject matter of the invention lies in fewer than all the features of a single disclosed embodiment. Therefore, the following claims are thus incorporated into the detailed description, wherein each claim is independently presented as a separate embodiment. In the appended claims, the terms “including” and “inwhich” are used as concise English equivalents to the corresponding terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” “third,” etc., are used merely as labels and are not intended to impose numerical requirements on their objects.
上面已经描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每一个可想到的组合,但是本领域的普通技术人员可以认识到许多进一步的组合和置换是可能的。因此,新颖性架构旨在涵括落入所附权利要求的精神和范围内的所有这些变更、修改和变化。The above description includes examples of the disclosed architecture. It is certainly impossible to describe every conceivable combination of components and/or methods, but those skilled in the art will recognize that many further combinations and substitutions are possible. Therefore, the novel architecture is intended to encompass all such changes, modifications, and variations falling within the spirit and scope of the appended claims.
Claims (18)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/725,866 | 2019-12-23 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40060197A HK40060197A (en) | 2022-05-13 |
| HK40060197B true HK40060197B (en) | 2025-09-19 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12493679B2 (en) | Secure password generation and management using NFC and contactless smart cards | |
| AU2020316972B2 (en) | First factor contactless card authentication system and method | |
| US11776348B2 (en) | Contactless card personal identification system | |
| HK40060197B (en) | Secure password generation and management using nfc and contactless smart cards | |
| HK40060197A (en) | Secure password generation and management using nfc and contactless smart cards | |
| HK40070571A (en) | Contactless card personal identification system |