US20130301830A1 - Device, system, and method of secure entry and handling of passwords - Google Patents
Device, system, and method of secure entry and handling of passwords Download PDFInfo
- Publication number
- US20130301830A1 US20130301830A1 US13/740,291 US201313740291A US2013301830A1 US 20130301830 A1 US20130301830 A1 US 20130301830A1 US 201313740291 A US201313740291 A US 201313740291A US 2013301830 A1 US2013301830 A1 US 2013301830A1
- Authority
- US
- United States
- Prior art keywords
- secure
- user
- screen
- electronic device
- mobile electronic
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims description 30
- 238000012795 verification Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 21
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 description 40
- 230000000694 effects Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 21
- 239000008186 active pharmaceutical agent Substances 0.000 description 20
- 238000013475 authorization Methods 0.000 description 18
- 235000014510 cooky Nutrition 0.000 description 13
- 230000003190 augmentative effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000004075 alteration Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 239000011230 binding agent Substances 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000010079 rubber tapping Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C5/00—Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Definitions
- the present invention relates to the field of telecommunications security.
- Some tasks may not pose major security risks, for example, taking photographs with a camera of the mobile device. However, some tasks may pose security risks, for example, utilizing the mobile device in order to access an online banking website, to perform electronic commerce (E-commerce) transactions of mobile payments (M-payments) transactions.
- E-commerce electronic commerce
- M-payments mobile payments
- Some of the threats posed to a user of a mobile device may include, for example, a “phishing” scam in which an attacker presents to the user a mock web-page impersonating a legitimate banking site.
- the user may be induced into entering his username and password on the mock web-page, thereby allowing the attacker to capture the username and password which may be then used by the attacker to impersonate the real user and log-in to the real banking site.
- mobile devices utilized in a corporate environment may expose both the user and the entire organization to risks of data loss or monetary loss.
- BYOD black-to-distance device
- an attacker may capture the username and password of a user and may utilize them to log-in to a corporate network or resource.
- Some websites and some corporate organizations may require a password to have a minimum length (e.g., at least 8 characters) and/or a required entropy (e.g., having at least one letter and at least one digit).
- a minimum length e.g., at least 8 characters
- a required entropy e.g., having at least one letter and at least one digit.
- many users are incapable of memorizing a cumbersome password, and end-up choosing a weak password which may be easily cracked by a brute-force attack, or otherwise guessed. This is particularly true for users of mobile devices, in which the physical keyboard or the virtual (on-screen) keyboard are of a small form factor, which renders password entry tedious and effort-consuming.
- a “strong” password may be captured from many users by an attacker which operates a “phishing” scam, or utilizes a software-based keylogger malware application.
- PM Public-Key Infrastructure
- CA Certificate Authority
- the service may provide confidential data which may be cached or stored in the mobile device, or may be captured by other applications (e.g., legitimate applications or malware modules) which may be running on the mobile device and which may optionally transmit the captured data over a communication network to a remote location.
- This problem may be partially mitigated by encryption of locally-stored or locally-cached data.
- the encryption often utilizes a weak user-selected password, which may be cracked by a brute-force attack, a dictionary attack, a keylogging module.
- Other encryption methods may be circumvented by a module which searches the mobile device for a locally-stored copy of the encryption key.
- the present invention may include, for example, devices, system, and methods of secure entry and handling of passwords and Personal Identification Numbers (PINs), as well as for secure local storage, secure user authentication, and secure payment via mobile devices and via payment terminals.
- PINs Personal Identification Numbers
- a mobile electronic device may comprise: a secure execution environment (SEE) to securely execute code; a secure video path (SVP) to securely exchange information between the SEE and a touch-screen of the mobile electronic device; wherein the SEE comprises a secure password entry module to generate a scrambled on-screen interface, and to send the scrambled on-screen interface to the touch-screen through the SVP.
- SEE secure execution environment
- SVP secure video path
- the secure password entry module may comprise: a touch-event recognizer to securely identify within the SEE a character which corresponds to a virtual key that a user selected via the touch-screen on the scrambled on-screen interface.
- the mobile electronic device may comprise: a secure content channel to transport the scrambled on-screen interface, securely against interception, from the SEE to the touch-screen.
- the mobile electronic device may comprise: a secure content channel to transport the scrambled on-screen interface, from the SEE to the touch-screen, as an encoded Digital Rights Management (DRM) protected video.
- DRM Digital Rights Management
- the mobile electronic device may comprise: a DRM-enabled playback module to playback the encoded DRM-protected video representing the scrambled on-screen interface.
- the scrambled on-screen interface may comprise at least one of: an on-screen scrambled virtual keyboard; an on-screen scrambled virtual keypad; an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on the touch-screen.
- the scrambled on-screen interface may comprise a user-specific authenticity reassurance image.
- the user-specific authenticity reassurance image may comprise a user-uploaded image captured by the user through a camera of the mobile electronic device.
- the SEE may comprise code to securely modify, based on a user command, one or more visible properties of said image prior to an upload of said image.
- the SEE may comprise code to securely modify, based on a user command, one or more visible properties of the user-specific authenticity reassurance image subsequent to selection of the user-specific authenticity reassurance image from a collection of images.
- the user-specific authenticity reassurance image may comprise at least one of: an image overlaid as a watermark on top of the scrambled on-screen interface; an image overlaid as a watermark under the scrambled on-screen interface; an image displayed in proximity to the scrambled on-screen interface.
- the SVP may comprise a uni-directional SVP to send information securely only in a direction from the SEE to the touch-screen of the mobile electronic device.
- the mobile electronic device may comprise a device selected from the group consisting of: a laptop computer, a tablet, a smartphone, a portable computing device, a portable gaming device, a portable multimedia player, and a portable payment terminal.
- the mobile electronic device may comprise: a secure storage unit to securely store a cryptographic key, wherein the cryptographic key is unique to a particular task to be performed by said mobile electronic device; and a cryptographic operations module to release the cryptographic key from the secure storage unit based on a user gesture, received through said touch screen and indicating confirmation, and to utilize the cryptographic key for performing a cryptographic operation associated with said particular task.
- the cryptographic key may be also unique to a user of said mobile electronic device.
- the cryptographic operation may comprise at least one of: encryption using the cryptographic key; decryption using the cryptographic key.
- the cryptographic operation may comprise a cryptographic operation transparent to said particular task on said mobile electronic device.
- said particular task, for which said cryptographic key is unique may comprise a task of unlocking access to an entirety of a storage unit of said mobile electronic device.
- the mobile electronic device may comprise: a payment card reader to read a payment card swiped therethrough; and a visual indicator to indicate to a user that the secure password entry module is activated and that the user can swipe the payment card through the payment card reader.
- the payment card reader is operational when the secure password entry module is activated; and the payment card reader is non-operational when the secure password entry module is non-activated.
- the mobile electronic device may comprise: a secure operations module to securely receive, from the secure password entry module, a password entered by a user via said touch-screen; to encrypt the password; and to send the encrypted password for verification at a verification module external to the mobile electronic device; wherein the verification module external to the mobile electronic device is to send a verification response indicating whether or not the password is verified; wherein the verification module may comprise at least one of: a remote server, and a smart-card external to the mobile electronic device.
- the mobile electronic device may send, to a remote server, a message indicating touch coordinates to enable the remote server to determine the password and to initiate a process of verifying the password; wherein the mobile electronic device is unaware of the password entered by said user.
- a server or a computer may comprise: a secure execution environment (SEE) system to securely execute code; wherein the SEE system may comprise a secure password entry module (a) to generate a scrambled on-screen interface, and (b) to send the scrambled on-screen interface, as an encoded Digital Rights Management (DRM) protected video to a remote mobile device.
- SEE secure execution environment
- DRM Digital Rights Management
- the encoded DRM-protected video when played by a DRM-enabled playback module of the remote mobile device, causes a touch-screen of the remote mobile device to securely display said scrambled on-screen interface generated by the SEE system of said server.
- the scrambled on-screen interface may comprise at least one of: an on-screen scrambled virtual keyboard; an on-screen scrambled virtual keypad; an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on a touch-screen.
- the scrambled on-screen interface may comprise a user-specific authenticity reassurance image.
- the server may comprise: a verification module to verify a user-entered password entered on said scrambled on-screen interface via a touch-screen of the remote mobile device; wherein the verification module is to receive from said remote mobile device a message indicating touch coordinates corresponding to touch gestures of a user on said touch-screen; wherein the verification module determines the user-entered password from said touch coordinates while the user-entered password remains unknown to the remote mobile device
- a computing device may comprise: a secure storage unit to securely store a confidential data item; a non-secure execution environment to execute program code, the program code to transport to a remote server a message; a secure execution environment (SEE) to securely execute code, the SEE comprising: a rewriter module to securely obtain the confidential data item from the secure storage, and to securely write the confidential data item into one or more fields in said message prior to its encrypted transport to the remote server.
- SEE secure execution environment
- the confidential data item may comprise at least one of: a password, a Personal Identification Number (PIN), a username, a string representing user credentials, a data item for authentication; wherein the SEE comprises code to securely perform an encryption operation on said message prior to its transport to the remote server.
- PIN Personal Identification Number
- the SEE comprises code to securely perform an encryption operation on said message prior to its transport to the remote server.
- the program code may comprise an application to transport the message to the remote server via a transport security protocol.
- the message may be associated with a data object indicating a particular field in which the confidential data item is to be inserted by the rewriter module.
- the rewriter module may comprise: an inference module to infer a particular field of the message, in which the confidential data item is to be inserted by the rewriter module, based on contextual analysis.
- the rewriter module may comprise: a field determining module to determine a particular field of the message, in which the confidential data item is to be inserted by the rewriter module, based on a service certificate received from a remote server.
- the program code may comprise a web browser
- the message may comprise data transferred over HyperText Transfer Protocol Secure (HTTPS).
- HTTPS HyperText Transfer Protocol Secure
- the message may comprise at least a username field and a password field.
- the message may comprise one or more data items for authenticating a user to the remote server.
- the rewriter may be capable of operating independently of a particular type of authentication scheme utilized by the remote server, wherein operations of the rewriter keep the remote server unaware that rewriting is performed on said computing device.
- the computing device comprises a device selected from the group consisting of: a smartphone, and a tablet.
- a method implementable on a computing device may comprise: securely storing a confidential data item in a secure storage unit of said computing device; executing a program code in a non-secure execution environment of said computing device, wherein the program code comprises program code to transport a message to a remote server; securely executing code in a secure execution environment (SEE) of said computing device, wherein securely executing the code in the SEE may comprise: securely obtaining the confidential data item from the secure storage, and securely writing the confidential data item into one or more fields in said message prior to its encrypted transport to the remote server.
- SEE secure execution environment
- the confidential data item may comprise at least one of: a password, a Personal Identification Number (PIN), a username, a string representing user credentials, a data item for authentication; wherein the SEE may comprise code to securely perform an encryption operation on said message prior to its transport to the remote server.
- PIN Personal Identification Number
- the SEE may comprise code to securely perform an encryption operation on said message prior to its transport to the remote server.
- the program code may comprise an application to transport the message to the remote server via a transport security protocol.
- the message is associated with a data object indicating a particular field in which the confidential data item is to be inserted by the rewriter module.
- a server or a computer may comprise: an authentication module to send, to a remote client device, a server authentication certificate; an accreditation certificate stored in a pre-defined location on the server, wherein the pre-defined location is accessible to the remote client device; wherein the accreditation certificate indicates a condition that the server authentication certificate needs to meet in order for the server authentication certificate to be accepted for authentication by the remote client device.
- the accreditation certificate is accessible for automatic polling by the remote client device based on a pre-defined storage location at which the accreditation certificate is assumed to be stored.
- condition may comprise a reference to a public key of the server authentication certificate.
- condition may comprise a reference to an issuer of the server authentication certificate.
- condition may comprise a reference to a data-item unique to the server authentication certificate.
- the accreditation certificate is protected with a digital signature.
- the accreditation certificate is digitally signed by a first entity
- the server authentication certificate is digitally signed by a second, different, entity.
- the accreditation certificate has a timed-bound validity or an expiration time/date stamp.
- a mobile electronic device may comprise: an authentication module to receive, from a remote server, a server authentication certificate; an accreditation certificate fetcher to fetch an accreditation certificate; wherein the accreditation certificate indicates a condition that the server authentication certificate needs to meet in order for the server authentication certificate to be accepted for authentication by said authentication module of the mobile electronic device.
- the accreditation certificate fetcher is to fetch the accreditation certificate from a pre-defined location on said remote server which is accessible to the mobile electronic device.
- the accreditation certificate has a timed-bound validity.
- the accreditation certificate fetcher is to fetch the accreditation certificate from a local storage within the mobile electronic device.
- the accreditation certificate is hard-coded within an application running on the mobile electronic device.
- the mobile electronic device may comprise a device selected from the group consisting of: a smartphone, and a tablet.
- the present invention may provide other and/or additional benefits and/or advantages.
- FIG. 1A is a schematic block diagram illustration demonstrating the architecture of a mobile device, in accordance with some demonstrative embodiments of the present invention
- FIG. 1B is a schematic block-diagram illustration of a Secure Operations Module (SOM) and its components, in accordance with some demonstrative embodiments of the present invention
- FIG. 1C is a schematic block diagram illustration of Secure Password Secure Module (SP-SM), in accordance with some demonstrative embodiments of the present invention.
- SP-SM Secure Password Secure Module
- FIG. 2 is a schematic block diagram illustration of system, in accordance with some demonstrative embodiments of the present invention.
- FIG. 3 is a schematic flow chart of a method of authenticating a user at a Point of Sale (PoS) terminal of a merchant, in accordance with some demonstrative embodiments of the present invention
- FIG. 4 is a schematic block diagram illustration of a terminal capable of secure PIN entry, in accordance with some demonstrative embodiments of the present invention.
- FIG. 5 is a schematic block diagram illustration of a system comprising a transaction server and a payment terminal, in accordance with some demonstrative embodiments of the present invention.
- password-based authentication may not be properly deployed on mobile devices, due to user-interface limitations, as well as due to user inability to select or remember long cryptic passwords.
- “password manager” programs exist they often require a long and cumbersome master password, or they often insecurely utilize passwords in the clear.
- Applicants have further realized that even if deployed, a significant security flaw remains by carrying out authentication using logic that runs on top of a High Level Operating System (HLOS) of a mobile device, where keys and passwords may be captured by a malware software module. Furthermore, although local data protection may assist in protecting stored application data, this mechanism is seldom used, also due to the inability to present a reasonably secure solution that runs over the HLOS.
- HLOS High Level Operating System
- Applicants have also realized that some mobile devices may be equipped with a Secure Execution Environment (SEE), for example, facilitated by TrustZone Technology (available from ARM Holdings PLC of Cambridge, England, United Kingdom).
- SEE Secure Execution Environment
- the SEE may be tailored for protecting secure applications running within the SEE, rather than for assisting HLOS applications (e.g., most of the applications on the mobile device) protect themselves and their data.
- HLOS applications e.g., most of the applications on the mobile device
- a conventional SEE may not provide a secure input mechanism, which is important for secure authentication.
- a remote server may operate as a SEE.
- the present invention may include methods, devices and systems for securely entering, transmitting, receiving and/or handling a password.
- the present invention may provide the user of a mobile device, a computing device and/or a portable device with a secure unified component for authentication and authorization on behalf of the user.
- the secure password entry and handling of the present invention may be based on an agent module which may run in a secure execution environment (e.g., facilitated by TrustZone Technology, or by a remote server operating as a SEE), which may perform the authentication and authorization cryptographic computations using securely stored passwords and key material.
- Authentication and authorization on behalf of the user may be carried out only after the human user is positively identified using a secure password entry routine.
- the password entry routine may, by itself, be protected from malware-based password interception and/or entry, for example, by utilizing secure video path capabilities of the mobile device.
- the present invention may securely handle passwords and may facilitate user authentication and authorization in a robust and user-friendly manner.
- the present invention may provide the facility for secure storage of passwords and client certificates, and by enabling authentication-token based capabilities.
- the present invention may utilize secure storage for passwords and keys, a Secure Password Entry Module (SPEM), and modules able to use the passwords and keys to securely authenticate the user of the mobile device on behalf of the user. Only upon secure entry of a correct user password, may a Secure Storage Module (SSM) allow other system components to use the credentials belonging to that user.
- SPEM Secure Password Entry Module
- the present invention may allow, for example, secure password entry by utilizing a secure content path or a secure video path of the mobile device. Following the secure user authentication and authorization, the present invention may enable HLOS applications to protect their own authentication processes, as well as their own locally-stored data.
- password may include, for example, a string of combination of characters representing a password, a passphrase, a Personal Identification Number (PIN), a string of characters utilized for authenticating a user identity and/or for authorizing a user's access to a service, or other secret data-item or signal shared between a user and a system and useful in authentication of the user to the system.
- the term “password” may include other types of confidential or semi-confidential or non-confidential data items, for example, a username, a user nickname, a user ID string, a user identifier, a token, and/or other data items, particularly data item(s) which may be used in a user authentication process.
- FIG. 1A is a schematic block diagram illustration demonstrating the architecture of a mobile device 100 in accordance with the present invention.
- Device 100 may be, for example, a cellular phone, a smartphone, a tablet, a laptop computer, a portable electronic device, a portable computing device, or other suitable computing device.
- Device 100 may include one or more modules running in a Secure Execution Environment (SEE) 140 (e.g., a TrustZone Technology environment, optionally associated with a Secure Operating System (Secure OS) 107 such as, for example, MobiCore available from Giesecke & Devrient GmbH of Kunststoff, Germany), and one or more modules running in an Unsecure Execution Environment (UEE) 120 (e.g., an Android environment).
- SEE Secure Execution Environment
- UEE Unsecure Execution Environment
- UEE 120 may comprise, for example, a touch-screen 152 , a secure DRM-enabled media player 153 which may be associated with a Secure Password (SP) DRM plug-in 154 , a Secure Password (SP) Activity 159 , a TLS/SSL integration library 193 , and a TLS/SSL Authorization Activity 191 .
- SP Secure Password
- SP Secure Password
- SEE 140 may comprise a Secure Operations Module (SOM) 130 able to securely store, transmit, receive and handle user password(s) and/or PINS, as well as other keys and assets, without exposing such password(s) or PINS to UEE 120 or to any module or application within UEE 120 , or to other attackers which may be internal or external to device 100 .
- SOM 130 may be able to generate and send User Interface (UI) elements that will be rendered by a secure CODEC 155 .
- UI User Interface
- SOM 130 may comprise, for example, a Secure Storage Module (SSM) 141 associated with a Secure Storage 149 ; a Secure Password Entry Module (SPEM) 142 ; a secure TLS/SSL support module 151 ; a local encryption/decryption services module 146 ; and an optional crypto-token module 147 .
- SSM Secure Storage Module
- SPEM Secure Password Entry Module
- Secure TLS/SSL support module 151 may comprise, for example, a TLS/SSL support library 131 ; a cookie handler 192 ; a rewriter 132 ; an application support API 133 ; and an enrollment module 137 , which may be associated with an enrollment database 138 and an enrollment cache 139 .
- enrollment database 138 is shown as part of secure TLS/SSL support module 151 , although in some implementations, enrollment database 138 may be stored within secure storage 149 .
- Local encryption/decryption services module 146 may comprise, for example, an encryption module 143 , a decryption module 144 , a key generator 145 ; and an encrypted partition manager 197 .
- Secure storage 149 may be a memory unit (or a dedicated portion or segment of a memory unit or memory area), in which confidential data may be stored.
- SSM 141 may be a secure software module which may control the writing into (and the reading from) secure storage 149 .
- SSM 141 may be an application running in SEE 140 , and may facilitate storage in secure storage 149 of passwords, client certificates, private encryption keys, other types of cryptographic credentials which may be used in crypto-systems, or other data that needs to be kept secure.
- Each one of the cryptographic credentials in SSM 141 may be associated, for example, with a User-ID (associating a cryptographic credential with a user identification) and with a Service-ID (associated a cryptographic credential with an identifier of a service to which the user authenticates using that cryptographic credential).
- the Service-ID may be an identity obtained from a Service Certificate which may be issued to every service provider (or application) that enrolls to use a mechanism of the present invention.
- This new type of digital certificate (not to be confused with an X.509 Certificate, a Transport Layer Security (TLS) certificate or with a Secure Sockets Layer (SSL) certificate) may allow the service provider full flexibility when using different TLS certificates while providing protection to the end-user against phishing attempts.
- TLS Transport Layer Security
- SSL Secure Sockets Layer
- Passwords which may be stored in SSM 141 may be numeric passwords, alpha-numeric passwords, strings of alphanumeric and/or non-alphanumeric characters, or the like.
- the digital certificates that may be stored in SSM 141 may be client certificates, for example, in accordance with ITU-T standard X.509, and/or a private key. Additionally, SSM 141 may store the password assigned to each User-ID, as well as information necessary to securely recover a personal user-selected image which may be associated with each User-ID and may be utilized in the authentication process as described herein.
- SPEM Secure Password Entry Module
- SEE 140 Secure Password Entry Module
- SPEM 142 may run in SEE 140 , and may be responsible for polling a user for his password, prior to using any of the secure storage credentials to authenticate on behalf of that user.
- SPEM 142 may utilize a Secure Video Path (SVP) feature of device 100 to display to the user an on-screen keyboard or an on-screen keypad which cannot be intercepted by a malware module which may be running on device 100 .
- SVP Secure Video Path
- the present invention may thus utilize a secure content path or SVP feature of device 100 , originally intended for the secure display of protected media content, e.g., Digital Rights Management (DRM)-protected content, for a different purpose of securely communicating an on-screen virtual keypad/keyboard.
- DRM Digital Rights Management
- SPEM 142 may utilize SVP to securely render and present on the screen of device 100 : (a) a background image which comprises, or is constructed based on, a personal image previously-selected by the user; (b) a shuffled or scrambled on-screen keypad or keyboard, such that on-screen keys that represent digits and/or letters appear, at each invocation, at random or pseudo-random locations, in a randomly or pseudo-randomly scrambled order, or in an order which is randomly or pseudo-randomly different from their regular order in a conventional physical keyboard or keypad; the identity of the service provider, as securely obtained from, or otherwise pointed by, the Service Certificate.
- the user may enter his password by tapping, touching, clicking, or otherwise selecting keys on the scrambled on-screen keyboard or keypad.
- the coordinates of the user's key-presses may be communicated from a driver of the touch-screen of device 100 (e.g., running in UEE 120 , for example, an insecure High-Level Operating System (HLOS) such as Android) to SPEM 142 which runs in SEE 140 .
- HLOS High-Level Operating System
- SPEM 142 may convert the coordinates into pressed letters or digits, based on the notion of where each letter or digit was displayed in the current invocation of the randomly scrambled on-screen keyboard or keypad.
- the display of the user-selected personal image may allow the user to ascertain that the user is entering his password into a genuine interface rather than into a phishing web-page or mock website.
- the description of the service provider may allow the user to assure that the proper service provider is being authenticated to.
- Secure TLS/SSL support module 151 may utilize the user's cryptographic credentials, which are stored in SSM 141 , in order to authenticate on behalf of the user, after the user correctly enters his password.
- the user's cryptographic credentials stored in SSM 141 may be, for example, either a user-designated password, or a TLS client certificate (along with a private key). If the user credential is a client certificate with a private key, then the private key may be securely incorporated into the TLS handshake. If the user credential is a password, then that password may be used in TLS either through rewriter 132 or through Application Support API 133 , as described herein. It is noted that at least part (or all) of the TLS/SSL implementation may be executed in SEE 140 , to eliminate any need for processing user credentials over the HLOS or in UEE 120 of device 100 .
- Secure TLS/SSL support module 151 may utilize client certificates in accordance with the TLS protocol during the handshake phase.
- part of a TLS implementation may run in SEE 140 , thereby allowing the securely stored private key that belongs to the client certificate to be incorporated into the handshake process, without ever having to expose it to the HLOS or to UEE 120 .
- Secure TLS/SSL support module 151 may optionally comprise rewriter 132 , for example, a HyperText Transfer Protocol (HTTP) rewriter.
- HTTP HyperText Transfer Protocol
- passwords may not be passed as part of the TLS/SSL handshake. Instead, such passwords may be transferred after the handshake process may be completed, as session data (e.g., in accordance with a RESTful authentication method). For example, a password entered by the user may be communicated to a remote web-server over an HTTP POST command that is part of the HTTP interaction with the website.
- the TLS/SSL protocol implementation may be oblivious of this password, and may be agnostic to any data that the web browser (or other application) sends to or receives from the web-server: a conventional TLS/SSL implementation merely encrypts and decrypts the session data without caring for its contents.
- rewriter 132 may be a component of secure TLS/SSL support module 151 , which breaks the TLS/SSL obliviousness towards the data being encrypted and/or decrypted. Rewriter 132 may run in SEE 140 , and may provide the part of the to-be-encrypted record (e.g., input provided on a web page) which contains the password.
- rewriter 132 may replace the contents of form fields in a submitted HTML page, with entries obtained securely within SEE 140 from SSM 141 .
- Rewriter 132 may be able to replace all (or some) of the user fields in the form page, with entries retrieved securely within SEE 140 from SSM 141 ; or, rewriter 132 may replace only password field(s) in the submitted HTML page with the relevant password(s) obtained securely within SEE 140 from SSM 141 .
- Password fields in a submitted HTML page may be recognized based on their unique field type.
- rewriter module 132 is described herein in terms or “rewriting”, although in some implementations it may operate as a “writer” module which may write original data into suitable field(s) rather than rewriting or replacing data (or fake data). In other implementations, rewriter module 132 may operate as a replacer module or a substitution-performing module, as described.
- rewriter module 132 may receive from one or more sources (e.g., from a service certificate; from a password field; from a browser) indications of which field(s) to write or rewrite or replace; and/or may automatically infer or deduce which field(s) or location(s) require rewriting or content replacement.
- sources e.g., from a service certificate; from a password field; from a browser
- Secure TLS/SSL support module 151 may optionally comprise Application Support API 133 .
- a password may be sent from device 100 to a remote server not through a web browser, but through a local application running on device 100 (e.g., if the interaction between the user and the remote server does not occur over a web browser, but by a user running a dedicated downloaded or pre-installed application).
- the local application may create its own connection to the remote server. Traffic outgoing to the remote server may be, for example, wrapped as XML, being passed along as HTTP traffic.
- there may be no HTML forms that are filled by the user but rather, there may be local forms displayed on device 100 by the local application, with the local application pre-processing the form contents before sending them to the remote server.
- rewriter 132 may not be operable to replace HTML field content.
- a conventional local application which sends secure traffic may utilize a pre-provided OS implementation of the TLS/SSL protocol, and may thus still use the secure TLS/SSL implementation provided by secure TLS/SSL support module 151 .
- Application support API 133 may provide an interface to application providers and application developers, which may be utilized by a local application in order to cause secure TLS/SSL support module 151 to insert securely stored credentials into TLS/SSL connections that the local application maintains with a remote server.
- Encryption module 143 and decryption module 144 may allow SOM 130 to support local data protection by using data encryption in a robust way.
- Each application that attempts to keep its data protected may be provided access to a “virtual partition”, for example, in the form of a Linux mount under the application's regular data directory.
- the application may treat this directory in the same way that it treats any other directory, for example, by creating, writing, reading, deleting and/or modifying file(s) in such virtual partition directory.
- the content of the virtual partition directory may be transparently encrypted (and decrypted, as needed) by SOM 130 .
- the application provider or developer may not be required to have any understanding of how encryption works, or to account for such encryption in any way other than by storing files in that virtual partition sub-directory rather than in the parent directory of the local application.
- the encryption and decryption operations may be performed by encryption module 143 and decryption module 144 , respectively, e.g., using Advanced Encryption Standard (AES).
- AES Advanced Encryption Standard
- the encryption/decryption key may be internally generated by key generator 145 within SEE 140 , for example, as a function of the User-ID and the Service-ID.
- the key may be securely stored by SSM 141 , and may be unique for each device, for each User-ID, and for each application. Alternatively, it may be securely derived whenever it is needed.
- This architecture limits the scope of damage from a leaked key, prevents encrypted data from being usable on other devices, and prevents a first local application from reading data associated with a second local application.
- use of the key by an application may be granted only after the user provides his consent using SPEM 142 .
- SPEM 142 may ask the user for his password, while securely displaying the human-readable Service-ID of the application that is seeking encryption/decryption with its key. If the user approves the usage of the particular key (belonging to the particular application), then the proper key may be loaded and the hidden mount (the virtual partition directory) may appear and may be usable by that particular application.
- a local application may not access transparently-encrypted mounted volumes or virtual partitions, but rather, may store its application data regularly, while accessing the data by utilizing modified functions which may be provided as part of SOM 130 .
- modified functions may take care of the transparent encryption and decryption of files and/or data without affecting file locations.
- SSM 141 may provide secure storage services for passwords, client certificates, and other information that needs to be stored only in encrypted form and/or integrity-protected form.
- SSM 141 may build a primitive database abstraction on top of secure storage facilities which may be provided by a Secure OS of SEE 140 .
- SSM 141 may keep each data item associated with the respective User-ID and Service-ID, for example, represented using encrypted XML files (or other suitable representation formats), holding the data provided by upper layers.
- the SSM 141 may rely exclusively on the platform services of Secure OS for accessing a device-unique key and for storing a copy of the Initialization Vector (IV) used for each encrypted file.
- IV Initialization Vector
- SPEM Secure Password Entry Module
- SPEM 142 may be invoked by an application running on device 100 (e.g., an Android application if device 100 runs Android OS) requiring access to secure assets.
- SPEM 142 may display on a touch-screen display unit of device 100 , for example, a password (or PIN) entry screen.
- SPEM 142 may then receive the user's input (password), and if the password is correct, SPEM 142 may enable access to the relevant secure assets.
- secure password entry may span over both SEE 140 and UEE 120 , and may involve, for example, all or some of the components of FIG. 1A .
- SP activity 159 may be an Android activity (e.g., Java activity), invoked in response to an intent posted from other application(s).
- Android activity e.g., Java activity
- a local Android application requiring access to a password-protected asset may use an instance of a secure component to generate a request and sign it with the request key (which may only be accessible to secure components).
- the application may then issue a startActivityForResult( ) to invoke SP Activity 159 and send the signed request it received from the instance of the secure component.
- SP Activity 159 may send its response encrypted by another device-specific key available only to secure components, which the requesting application provided to the relevant secure component instance.
- the request and the response may further include a cryptographic nonce generated by the requesting application, in order to prevent reuse of old or previous response(s).
- the requesting application may be, for example: a secure application requiring password authentication services; a HLOS application, requiring password authentication, e.g., to protect its local storage using the secure component described herein; or a TLS Activity serving an application that utilizes TLS connections, as described herein.
- Secure video path may ensure that an incoming protected video (or image, multimedia file, or the like) is securely decrypted by the scheme used to protect it, within device 100 , and is securely displayed on touch-screen 152 in a way that bypasses the HLOS, and thus prevents the video/image from being captured.
- the present invention may thus utilize and leverage the capabilities of secure video path, for example, by creating the image of a scrambled PIN pad (or other suitable type of on-screen input interface) as a secure image/video, encoding it like a video, and wrapping it in a certain protection scheme, in SOM 130 .
- the protected video may then be delivered to SP activity 159 .
- SP activity 159 may transfer the protected video to the secure DRM-enabled media player 153 available by device 100 .
- Secure DRM-enabled media player 153 may identify that the video is an encrypted video based on a certain DRM scheme, and may pass the encrypted video to the suitable DRM plugin 154 , which in turn may utilize the services of SPEM 142 in SOM 130 to decrypt the encrypted video.
- the decrypted video may be transferred to secure codec 155 which may render it securely onto touch-screen 152 .
- a suitable mechanism may be used to allow conversion of touch events, performed by a user on touch-screen 152 , into secure identification within SOM 130 of the keys that correspond to those touch events.
- SOM 130 may generate a scrambled PIN pad or other scrambled password-entry interface; touch events are transferred from the Activity that detects them to SOM 130 , which in turn may convert them into the entered PIN. Since SOM 130 generated the scrambled password-entry interface, and the scrambled password-entry interface may be displayed securely by leveraging the capabilities of secure video path, then SP activity 159 or other components of HLOS 120 may not be capable of determining what was drawn on touch-screen 152 that the user pressed on.
- SP activity 159 may only identify coordinates of the user's finger(s), for example, indicating that the user tapped on an upper-left region of touch-screen 152 , but not knowing which key was displayed at that region of touch-screen 152 as part of the scrambled password-entry interface (e.g., scrambled PIN pad) that was generated securely by SOM 130 and was displayed securely via secure video path 150 .
- SP activity may thus “blindly” pass the touch-event coordinates to SOM 130 , which in turn is able to securely determine which character (e.g., digit, symbol, or letter) was displayed under each of the points that the user touched, and SOM 130 may thus securely convert the touch-event coordinates back into PIN digits or password characters.
- Most of the logic at the Android or Java level of Password Entry Activity 159 may concern required interactions with the OS, for example, acquiring access to touch-screen 152 , or driving the platform's hardware CODEC to display the User Interface (UI) generated by the secure component).
- the activity logic may drive user interaction by displaying the UI as a full-screen video surface, employing secure video path to prevent “snooping” of the UI, and directing touch events on touch-screen 152 to SOM 130 .
- FIG. 1C is a schematic block diagram illustration of Secure Password Secure Module (SP-SM) 168 in accordance with the present invention.
- SP-SM 168 may be a demonstrative implementation of SPEM 142 .
- SP-SM 168 may comprise, for example, a link protection encryption module 182 , a SP service certificate validator 183 , a UI control logic 184 , a secure text renderer 185 , an image composition module 186 , a secure frame buffer 187 , and a video encoder 188 (e.g., utilizing H.264 or other suitable CODEC).
- a link protection encryption module 182 may comprise, for example, a link protection encryption module 182 , a SP service certificate validator 183 , a UI control logic 184 , a secure text renderer 185 , an image composition module 186 , a secure frame buffer 187 , and a video encoder 188 (e.g., utilizing H.264 or other suitable CODEC).
- SP-SM 168 may run in SEE 140 and may generate the UI for secure password entry for example, as a background PNG picture of the user-selected personal image and overlays.
- SP-SM 168 may react to touch events arriving from SP Activity 159 ; may update the display to reflect UI progress; may encode the UI to a video (e.g., by utilizing H.264 or other suitable video codec); and may protect the encoded video using a custom protection scheme, such as a DRM protection scheme.
- UI control logic 184 may implement a graphics library. UI control logic 184 may be based on a PNG decoder and a TrueType font renderer, and may draw random or pseudo-random or scrambled digits (or characters). Secure text renderer 185 may render text of the context (e.g., the Service-ID), whereas image composition module 186 may compose an image of the digits and text together with the personal reassurance image. Video encoder 188 may encode the display output into an H.264 video stream (or other suitable video stream or video clip or video file, encoded using other suitable standard or protocol), which may be encrypted (e.g., using AES-CTR) with a randomly-generated per-session key. This may allow utilization of a platform-defined secure content path or secure video path, which is designed for using secure display for DRM-protected video.
- AES-CTR AES-CTR
- UI control logic 184 may be responsible for drawing a scrambled PIN pad layout, a scrambled password-entry interface, a set of rotatable dials having a random initial value, or the like. UI control logic 184 may create an image of such PIN pad or password-entry interface.
- SP service certificate validator 183 may receive and check an “accreditation certificate” (or “service certificate”), and, if valid, may obtain from it the service provider name.
- Secure text renderer 185 may obtain the ID or name of the service provider from the certificate processed by service certificate validator 183 , and may obtain other textual details about the context of the authorization required (for example, amount paid in a commerce context; or service provider details in a TLS context).
- UI control logic 184 and secure text renderer 185 may operate to draw the text on the image (e.g., textual details and the name of the service provider), using its own version of secure fonts, to avoid using unsecure font(s) of the HLOS.
- Image composition module 186 may take all the graphics created for the PIN-pad (or password-entry interface), as well as the service details and the personal assurance image, and may compose out of them a combined image which may then be passed to secure frame buffer 187 , which comprises an image buffer.
- Secure frame buffer 187 passes one or more buffered image(s) or frame(s) to video encoder 188 , which generates a video therefrom (e.g., a video file encoded with H.264).
- the encoded video is passed from video encoder 188 to link protection encryption module 182 , which generates the random or pseudo-random key, encrypts the video with it, and wraps it or encapsulates it as protected video (e.g., Widevine video, PlayReady video), which may then be passed back to the SP activity 159 .
- SP-SM 168 may further implement a CryptoPlugin::decrypt function, to decrypt the custom DRM-like protection scheme. This may allow integration of the password entry display into an existing secure content path (or secure video path) on any platform supporting CryptoPlugin (e.g., used for PlayReady and Widevine).
- secure TLS/SSL support module 151 may comprise TLS/SSL support library 131 that runs in the secure execution environment, and communicates with TLS/SSL integration library 193 , running in UEE 120 .
- TLS/SSL integration library 193 may further comprise a full TLS/SSL implementation in user-space.
- TLS/SSL integration library 193 may comprise an enhanced TLS/SSL library (e.g., a TLS library), which augments the TLS/SSL implementation in the HLOS with SEE-based secure session establishment, and may provide optional support for protecting user credentials (e.g., passwords and client certificates) by the SEE, such as by interacting with TLS/SSL support library 131 running in the SEE.
- TLS/SSL integration library 193 may process the TLS handshake protocol using TLS/SSL support library 131 running in the SEE (or on the server).
- the secure TLS/SSL integration library 193 may operate in one of two modes: it may use the secure component running in the SEE for the handshake phase only, or it may use the secure component for the handshake phase as well as for the encryption and decryption of records.
- Operation of TLS/SSL support library 131 may be triggered or invoked by a triggering condition or event, for example, identifying that a website has a Service Certificate.
- TLS/SSL integration library 193 may fetch the Service Certificate from a well-known URL on the website during initialization.
- an “enrollment mode” (e.g., a “first-time wizard”) may be initiated by enrollment module 137 (e.g., a website enrollment module and/or an application enrollment module, which may be part of TLS/SSL support library 131 , and may comprise an enrollment database 138 of previously-enrolled websites and/or applications, as well as a non-persistent enrollment cache 139 of non-enrolled websites), allowing the user to enter his username, his password, and optionally other identifying details.
- the application or browser may then cause the storage of the confidential identification details in secure storage (e.g., using extended APIs provided by TLS/SSL support library 131 ) for use in subsequent connections to the service.
- the secure component may return the agreed-upon session keys to the HLOS library layer, thereby minimizing the performance impact of a split architecture.
- This mode may be deployed when authenticating the user using a client certificate, as described above.
- Secure credentials handling may require TLS/SSL integration library 193 to operate in a different manner: when this mode is enabled, a new API may be used to cause rewriter 132 , which may be part of secure TLS/SSL support module 151 , to send a specified credential (e.g., password) into the encrypted stream.
- a specified credential e.g., password
- the session key may not be exported from the secure environment (or the server, in a remote server implementation as demonstrated in FIG. 2 ); rather, every encryption (or decryption) operation may be directed to the secure component.
- the application may still request to switch to the HLOS-based payload processing mode after sending the credentials.
- the mode switch may cause TLS/SSL integration library 193 to perform an abbreviated TLS renegotiation, generating a new key for use in the continued session.
- the Service Certificate may include information pertaining to the authorization for the fall-back into HLOS-based payload processing.
- TLS/SSL support library 131 may run on a remote secure proxy server.
- traffic from mobile device 100 to the secure proxy server may be protected using a data protection module for communicating securely towards the secure proxy server, and the secure proxy server maintains the TLS connection with the actual service server, on behalf of Device 100 .
- the TLS session may resume, following renegotiation from mobile device 100 to the service server (TLS server), no longer going through the secure proxy server.
- Local encryption services module 146 may comprise a library that allows local HLOS applications to trigger encryption and/or decryption processes using securely stored keys, to protect local data.
- Local encryption services module 146 may provide services to applications requiring secure local storage.
- Local encryption services module 146 may include, for example: an Android activity for communication with the client applications; a system daemon for managing secure mount points; and a secure component for actual encryption and decryption of stored data.
- a key generator 145 may run on the server, whereas encryption module 143 and decryption module 144 may reside and run on mobile device 100 , but in its HLOS.
- Encryption module 143 and decryption module 144 of device 100 may interact securely with the remote server in order to obtain the relevant key, after the server authenticates the user with its secure password entry module 142 . Once the server authenticated the user, the server may make the correct key available to the encryption module 143 and decryption module 144 of device 100 .
- Crypto-token module 147 may allow applications to trigger authentication and digital signature routines to be performed using securely stored keys, as described herein.
- Components of SOM 130 may be integrated into mobile device 100 , at the HLOS (e.g., Android) level and at the Secure OS level, as detailed herein. Components of SOM 130 may also be integrated in a remote server (e.g., as demonstrated in FIG. 2 )
- components of SOM 130 may be implemented in SEE 140 or in the remote server.
- utilization of crypto-token module 147 may require a “token conduit” in UEE 120 ; the token conduit may be an Activity able to interact with crypto-token module 147 of SOM 130 , to enable crypto-token module 147 to perform cryptographic operations with credentials stored by SSM 141 in secure storage 149 .
- TLS/SSL Authorization Activity 191 may be used.
- an application may need to request user authorization for using the user's credentials (e.g., either a password, or a private key associated with a client certificate).
- the authorization request may be accomplished by issuing an Android Intent with, e.g., the website's URL, or any other service identifier, and an optional User-ID. This may invoke TLS/SSL Authorization Activity 191 , which may issue an HTTP HEAD request to the website in order to retrieve the website's TLS server certificate.
- the TLS/SSL Authorization Activity 191 may then invoke a Secure Password request in order to display some available information, such as: website's URL, common name of the website from the Service Certificate, and/or the User-ID.
- the user-supplied password may then unlock, or authorize, the access to the user's digital certificate and/or password.
- TLS/SSL Authorization Activity 191 may return a secure “cookie” value to the application.
- the secure “cookie” value may then be used (e.g., verified) by cookie handler 192 to enable the secure operation of the TLS/SSL support library 131 .
- the secure “cookie” may be generated by secure TLS/SSL support module 151 .
- the secure “cookie” may be verified by cookie handler 192 of secure TLS/SSL support module 151 , which may perform cookie creation and/or cookie verification; an invalid or stale “cookie” may not leak any unexpected capabilities.
- cookie handler 192 is shown as part of secure TLS/SSL support module 151 ; although cookie handler 192 may be implemented as part of, or may be associated with, one or more other modules, for example, TLS/SSL support library 131 , SPEM 142 , local encryption/decryption services module 146 , and/or crypto-token module 147 .
- TLS/SSL support library 131 may augment conventional capabilities of a TLS/SSL library.
- TLS/SSL support library 131 may comprise an additional module for authorizing secure operation; this module may be associated with API which may be a Java function, which may invoke the TLS/SSL Authorization Activity (via an Android Intent) and may update internal state according to the results.
- TLS/SSL support library 131 may further comprise, for example, a new function, which may add the ability to set an SSL session object to high-confidentiality mode (performing encryption/decryption in the SEE 140 ), enabling the utilization of secret user credentials.
- TLS/SSL support library 131 may also comprise a new function, which may accept the name of a (previously-enabled) user credential, and may instruct rewriter 132 to write the value of this user credential into the output stream; the SSL_session_object should be in high-confidentiality mode when this function is used.
- TLS/SSL support library 131 may further interact with the corresponding TLS/SSL integration library 193 in the HLOS of device 100 .
- TLS/SSL integration library 193 may comprise, for example, a session confidentiality module 194 able to set and/or modify a session confidentiality flag or parameter (e.g., toggle between “high” and “low”, or vice versa); a rewriter trigger 195 able to identify that rewriter 132 needs to be invoked; and a send/receive module 196 able to interact with TLS/SSL support library 131 and able to send to (and receive from) TLS/SSL support library 131 data to encrypt or decrypt.
- a session confidentiality module 194 able to set and/or modify a session confidentiality flag or parameter (e.g., toggle between “high” and “low”, or vice versa)
- a rewriter trigger 195 able to identify that rewriter 132 needs to be invoked
- a send/receive module 196 able
- TLS/SSL integration library 193 may dispatch functions to either a copy of the HLOS-based TLS/SSL implementation or to TLS/SSL support library 131 .
- the HLOS version of the code may be used for SSL_write/SSL_read as long as the session is not in high-confidentiality mode.
- the HLOS version of the code may also be used for session establishment (e.g., SSL_connect) if access to secure credentials has not been authorized.
- SOM 130 may comprise modules running in SEE 140 , under control of SEE 140 . These modules may be implemented as “secure applications”: they may use Secure OS services, and may be loaded like other secure services (e.g., as used for DRM).
- the secure modules may comprise, for example, Secure Password Entry Module (SPEM) 142 , a secure TLS/SSL module (e.g., secure TLS/SSL support module 151 ), Secure Storage Module (SSM 141 ), and encrypted partition manager 197 .
- SPEM Secure Password Entry Module
- SSM Secure Storage Module
- SPEM 142 may implement the user interface for secure password entry.
- the input received by 142 may be a “password request”, for example, the website's details (domain and name from the Service Certificate) and the User-ID to use for logging into the website, all signed with a secret key.
- the output generated by SPEM 142 if the password entered is correct, may be a user-specific and service-specific secure storage key, encrypted for use solely by the secure component requesting authentication.
- the secure storage keys may be derived from a device-private master key using a deterministic Key Derivation Function (KDF) which may utilize, as parameters, the User-ID and the Service-ID, as well as additional data.
- KDF deterministic Key Derivation Function
- Secure TLS/SSL support module 151 may implement a minimal TLS, e.g., TLS v1.2, stack, and may support DHE_RSA-based handshake and key exchange, as well as AES-based record payload protection, as well as other modes. Secure TLS/SSL support module 151 may be initialized by accessing a service parameters package, containing the server's Service Certificate and user's credentials. The service parameters package may be stored in SSM 141 , and access to the service parameters package may require a password provided using SPEM 142 . TLS/SSL support module 151 may further enable user enrollment, which may create a service parameters package and may stores such package (through SSM 141 ) in secure storage.
- TLS/SSL support module 151 may further enable user enrollment, which may create a service parameters package and may stores such package (through SSM 141 ) in secure storage.
- SSM 141 may handle the confidentiality and integrity of service parameters and user parameters. SSM 141 may be invoked directly from other secure modules (e.g., from SSL/TLS support module 151 ), and may manage the encryption and signing of provided data using SEE-internal keys.
- SSL/TLS support module 151 may manage the encryption and signing of provided data using SEE-internal keys.
- Encrypted partition manager 197 may be part of, or may be separate from, local encryption services module 146 .
- encrypted partition manager 197 may handle encryption and decryption of data involved in file access operations of local applications utilizing the local data protection feature, as described above.
- the application may directly utilize the encryption and/or decryption functions of local encryption services module 146 ; whereas in other embodiments, encrypted partition manager 197 may create an encrypted partition which the application may then transparently use.
- Local encryption services module 146 may provide local encryption and decryption functionality. Sensitive data of each local application may be locally stored as an encrypted sub-volume; the sub-volume may be backed by a file stored inside the application's data directory, or at any other location. Each such sub-volume may be encrypted using a different key, derived from the device master key using a secure KDF parameterized by the User-ID and the application identifier (package name). Alternatively, the key may be generated randomly or pseudo-randomly.
- the encryption may utilize AES-XTS for the data sectors, and may scramble the sector addresses using an AES-driven Thorp shuffle. Other suitable ciphers and/or modes may be used.
- the sensitive data containers may be closed.
- the application may invoke the Android Binder InterProcess Communication (IPC) mechanism to request access from a “secure storage manager” daemon (e.g., started at system boot) which may be implemented as encrypted partition manager 197 .
- Encrypted partition manager 197 may issue a Secure Password request in order to access the user's master key.
- Encrypted partition manager 197 may manage the mounting and un-mounting of protected volumes using a Linux Network Block Device (NBD) mechanism, and may implement the server-side logic for these volumes, accessing the backing files and performing encryption/decryption using a secure component, such that the keys used for encryption and decryption may never leave the secure component. Encrypted partition manager 197 may also utilize Android Binder mechanisms to detect when a local application is closed or “killed”, and un-mount any protected volumes mounted on behalf of that local application.
- NBD Network Block Device
- FIG. 2 is a schematic block-diagram illustration of a system 200 in accordance with the present invention.
- System 200 may include mobile device 100 , which may be able to communicate with a remote server 101 over one or more communication networks, wireless links and/or wired links.
- Server 101 may comprise a secure agent 198 , for example, a secure component or secure environment which may be generally similar to SEE 140 .
- device 100 may not comprise a SEE; or, device 100 may comprise a SEE but such local SEE of device 100 may be un-usable or need not be used by the present invention.
- SOM 130 may be implemented within secure agent 198 of server 101 (instead of being implemented within a SEE internal to device 100 ).
- Secure agent 198 of server 101 may further comprise a secure video creator 102 , which may be responsible for the functions of some or all of the components of FIG. 1C , particularly for the functions associated with link protection encryption module 182 and video encoder 188 .
- Secure video creator 102 may generate a DRM-encrypted video representing an on-screen scrambled PIN pad (or other suitable scrambled password-entry interface). Secure video creator 102 may communicate the DRM-encrypted video to secure DRM-enabled media player 153 of device 100 , which in turn may display it on touch-screen 152 . Video feedback, including touch-events of the user on touch-screen 152 , may be exchanged between SP activity 159 of device 100 and a remote SOM 130 running in secure agent 198 of server 101 .
- SOM 130 may be implemented within secure agent 198 of server 101 .
- SOM 130 need not comprise encryption module 143 and/or decryption module 144 , as the encryption/decryption services may be provided by the HLOS of device 100 .
- Server 101 may comprise, within its SOM 130 of secure agent 198 , a TLS/SSL handshake support module 103 , which may utilize using the client certificate or password of the user.
- application support API 133 may similarly be implemented within server 101 , instead of within device 100 .
- mobile device 100 need not necessarily include TLS/SSL support module 151 and/or augmented TLS/SSL library 131 . Rather, instead of utilizing its own augmented TLS/SSL library 131 , mobile device 100 may be assisted by TLS/SSL handshake support module 103 of server 101 , which may provide services generally similar to augmented TLS/SSL library 131 .
- the HLOS of device 100 may further comprise a server interaction module 104 for interacting with server 101 .
- Server interaction module 104 may run in HLOS 120 (since device 100 may not comprise a usable SEE), and may utilize data and control-flow obfuscation to protect its logic and data.
- Server interaction module 104 may utilize a device internal key 105 that may be shared with server 101 to protect communications exchanged between server interaction module 104 of device 100 , and remote server 101 .
- Other keying schemes such as Public Key Cryptography, may similarly be used.
- Device internal key 105 may be securely provisioned, or may be generated by device 100 in a pre-defined secure manner.
- SPEM 142 may be included in SOM 130 within secure agent 198 of server 101 , and may operate by connecting (e.g., over a communication network) to a secure playback component 199 of device 100 .
- Rewriter 132 may reside on server 101 , instead of within device 100 ; and HLOS 120 of device 100 may utilize server interaction module 104 to interact with server 101 which may perform the required rewriting.
- encryption module 143 and decryption module 144 may be part of HLOS 120 of device 100 , which may be implemented in a logic-obfuscated form and/or with data-obfuscation. These modules may communicate securely with a suitable module in server 101 which sends the encryption/decryption key, or data from which key material can be derived, to encryption module 143 and to decryption module 144 for them to operate.
- server 101 may cause the authentication of the user (since SPEM 142 runs within secure agent 198 of server 101 ), and may then send the correct key to device 100 , in a protected manner, such that encryption module 143 and/or decryption module 144 and/or encrypted partition manager 197 may utilize the key within device 100 .
- key generation may be performed by key generator 145 on server 101 , which may also handle secure storage.
- System 200 need not comprise and/or need not utilize any SEE on mobile device 100 .
- a local HLOS application within device 100 may invoke a SPEM application 142 on server 101 , which in turn may generate a DRM-encrypted video or image representing a scrambled PIN pad that is communicated to HLOS, which uses a secure playback component to render the video onto touch-screen 152 , capturing keystrokes (as touch-event coordinates) and sending them back to server 101 for secure correlation with the scrambled keys represented in the scrambled PIN pad.
- the PIN pad may not be scrambled, but rather, may be conveyed in a suitable method that prevents an entity or module, which is capable of capturing touch events, from determining the entered PIN or password.
- Server 101 may receive from device 100 the Service Certificate (for validation by SP service certificate validator 183 within server 101 ), as well as other contextual data.
- the present invention may include a process of website enrollment using secure password authentication.
- the process may allow a user of a mobile device to enroll a new website for secure authentication using the Secure Operations Module (SOM) of the present invention, when authentication is performed using a password (rather than by using a client certificate).
- SOM Secure Operations Module
- the user of the mobile device may navigate to a new website (for example, https://www.Bank.com) using a web browser application running on the mobile device.
- the browser may detect that the URL contains an “https” prefix, indicating a secure connection; and the browser may thus initialize TLS/SSL integration library 193 of secure TLS/SSL Support Module 151 .
- TLS/SSL integration library 193 may query its enrolled-sites database, and may detect that this particular website has not been enrolled yet. TLS/SSL integration library 193 may query its (non-persistent) cache of non-enrolled-websites; and may detect that this particular website is not listed. The non-enrolled-sites cache may prevent repeated enrollment tests for non-participating websites.
- TLS/SSL integration library 193 may fetch the Service Certificate of the website, from a URL associated with the website (e.g., from http://www.Bank.com/SecureMobileCertificate), and may pass the certificate so to verify the validity of the fetched Service Certificate by TLS/SSL support library 131 .
- certificate signature may be checked against a reference public key that may be hard-coded in SEE 140 or in remote server 101 , and only then, the format and the expiration may be verified.
- OCSP Online Certificate Status Protocol
- suitable protocols for obtaining revocation status may be used.
- the user may be asked by website enrollment module 137 for the user's confirmation or permission to enroll the website; and the user may indicate his approval by tapping, clicking, selecting, or otherwise engaging with a suitable UI element displayed on device 100 .
- TLS/SSL support library 131 may add this website to the secure enrolled-websites database 138 , and may enable the use of secure TLS for this website on this device 100 .
- secure storage 149 may contain data from the certificate (e.g., pinning information), and the user credentials that the user entered when enrolling (e.g., a client certificate or credentials to be used with rewriter 132 ).
- data from the certificate e.g., pinning information
- the user credentials that the user entered when enrolling e.g., a client certificate or credentials to be used with rewriter 132 .
- these data items may be populated into that record within secure storage 149 ; and subsequently, when the user logs in again to a site or service with such data present, the data may be obtained from that record and may be used automatically.
- the browser may fetch the website's log-in page, and may display it to the user on device 100 .
- the user may enter his login details (e.g., the username and password that the user utilizes in order to access that website) on the login form, and may command the browser to submit the login details to the website.
- his login details e.g., the username and password that the user utilizes in order to access that website
- the user may be requested or prompted to enter the login details on a secure UI supporting an alphanumeric keypad (e.g., an on-screen keypad or an on-screen keyboard).
- the user may securely enter his login details, in a manner that prevents interception of the login details by code running over the HLOS.
- the browser may ask TLS/SSL support library 131 to save confidential credential information for this website, along with a User-ID selected by the user.
- the confidential credential information may be stored in secure storage 149 via SSM 141 , and may comprise, for example, the form field(s) having a type of “password” (or, optionally, all the form fields of the login page of the website).
- the browser may save (e.g., insecurely) non-confidential fields in its local form-data history database.
- the User-ID mentioned is not the “username” that the user may have associated with the website, but rather, the User-ID may be selected by the user from a list presented to the user (e.g., this option may be used if the mobile device is shared by multiple users).
- TLS/SSL support library 131 may issue a Secure Password Entry request to SPEM 142 , listing the site domain (“Bank.com”) and certificate Common Name (CN) as well as a first-enrollment indication.
- the user may enter his password.
- the confidential data may be permanently filed by SSM 141 in secure storage.
- the user may enters his “real” password (the password that the user defined to log-in for the website, not necessarily via mobile devices), to have it recorded within mobile device 100 ; whereas in the current step, the user may input a secondary password or a PIN (using a secure PIN entry interface) to acknowledge and initiate the login.
- the browser may submit the form data to the website, over the TLS/SSL connection.
- the browser may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation.
- the session may then continue without requiring additional operations from TLS/SSL support library 131 of TLS support module 151 , as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed in the HLOS library by TLS/SSL integration library 193 . For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error.
- dis-enrollment may be implemented by using a UI which shows to the user a list of the services and/or websites for which he already enrolled, and which allows the user to select an item on that list and request removal or deletion, upon which, the appropriate record may be deleted from secure storage 149 .
- the user may modify his mobile PIN or password for a previously-enrolled website or service, through a dedicated UI component or process, or by dis-enrolling the website (or service) and then enrolling it again with a new password or PIN.
- the present invention may further include a process of user login into a previously-enrolled website, by utilizing secure password authentication in accordance with the present invention.
- the user of the mobile device may navigate to the previously-enrolled website (for example, https://www.Bank.com) using a web browser application running on the mobile device.
- the browser may detect that the URL contains an “https” prefix, indicating a secure connection; and the browser may thus initialize TLS/SSL integration library 193 .
- TLS/SSL integration library 193 may query its enrolled-sites database, and may detect that this particular website has already been enrolled. TLS/SSL integration library 193 may fetch the Service Certificate of the website, from a URL associated with the website (e.g., from http://www.Bank.com/SecureMobileCertificate), and may trigger the verification of the validity of the fetched Service Certificate.
- the Service Certificate may be fetched or obtained from any other location, or may otherwise be available to the device.
- TLS/SSL integration library 193 may issue a Secure Password Entry request to SPEM 142 , listing the site domain (“Bank.com”) and certificate Common Name (CN).
- site domain (“Bank.com”)
- CN certificate Common Name
- TLS/SSL integration library 193 may enable high-security.
- the present invention may provide an augmented TLS implementation in the HLOS, which may know how to use assistive libraries for TLS that run in SEE 140 , e.g., TLS/SSL support library 131 .
- the TLS library of the HLOS may operate similar to a conventional TLS library, except that the handshake may be performed by using the TLS/SSL support library 131 of SEE 140 .
- secure mode or high confidentiality mode
- the TLS library of the HLOS may utilize TLS/SSL support library 131 for encryption and decryption of the session traffic as well.
- a flag or other parameter, indicating the confidentiality mode may be set or modified by the application (or browser) that utilizes TLS; and the Service Certificate may indicate (or may force) what the value should be, such that the application may not be able to change it. For example, the application may decide to request TLS to work in non-secure mode (low confidentiality mode), unless the Service Certificate dictates that this application should remain in secure mode (high confidentiality mode).
- the browser may fetch the website's log-in page, and may display it to the user on device 100 .
- the browser may fetch default values of one or more non-confidential fields, e.g., from the browser's local form-data database.
- the browser may insert mock values into the confidential fields, e.g., if such operation was indicated by data in the Service Certificate.
- the user may command the browser to submit the login details to the website.
- the browser may send the login form to the website over the TLS/SSL connection.
- the browser may request TLS/SSL support library 131 to use the values already recorded in its secure storage database.
- the browser may be a web-browser or other client-side application, modified or adapted to utilize he services of TLS/SSL support library 131 .
- Rewriter 132 may rewrite the submitted HTML page, such that it contains the true credentials from the database of TLS/SSL support library 131 instead of the mock values.
- TLS/SSL support library 131 may encrypt the submitted page, similar to the way it encrypts other records over TLS/SSL.
- the browser may communicate with TLS/SSL integration library 193 in the HLOS, which in turn utilizes services from TLS/SSL support library 131 in SEE 140 .
- TLS/SSL integration library 193 in the HLOS may request TLS/SSL support library 131 in SEE 140 to insert the credentials; and TLS/SSL support library 131 in SEE 140 performs the handshake with the remote server using data sent and received through TLS integration library 193 .
- TLS/SSL support library 131 in SEE 140 performs session encryption; whereas in low-confidentiality mode, TLS integration library 193 may perform session encryption.
- the browser may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation.
- the session may then continue without requiring additional operations from TLS/SSL support library 131 of TLS support module 151 , as all TLS key-exchange (i.e., handshake) operations may be performed in the SEE, while record payload protection may be performed in the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error.
- the present invention may also include a process of enrollment of an application for using secure password authentication, in accordance with the present invention.
- the process may allow a user of a mobile device to enroll an application (or other application which may be accessible or run through a web browser) for secure authentication using the Secure Operations Module (SOM) of the present invention, when authentication is performed using a password (rather than by using a client certificate).
- SOM Secure Operations Module
- the term “application” may include, for example, a software application which may be at least partially installed locally (or may otherwise reside locally) on the mobile device, and/or may run at last partially on the mobile device, and/or which may require communication of the mobile device with a remote server, externally of a web browser.
- the user of the mobile device may launch the application.
- the application may initialize TLS/SSL integration library 193 , as well as TLS/SSL support library 131 of secure TLS/SSL Support Module 151 ; and may inform TLS/SSL support library 131 of its cloud server address (example, http://www.Bank.com).
- the local application may communicate with TLS integration library 193 of the HLOS, which in turn may check whether the service is enrolled (e.g., may check directly, or may request TLS/SSL support library 131 in SEE 140 to check).
- TLS integration library 193 of the HLOS may attempt to fetch the Service Certificate.
- TLS/SSL support library 131 may query its enrolled applications database, and may detect that this particular application has not been enrolled yet.
- TLS/SSL support library 131 may fetch the Service Certificate of the service, from a URL associated with the service (e.g., from http://www.Bank.com/SecureMobileCertificate), or from another suitable location or repository of Service Certificate(s), and may verify the validity of the fetched Service Certificate.
- TLS/SSL support library 131 may add this application to the secure enrolled-applications database, and may enable the use of SEE-enabled TLS for this application on this device 100 .
- the application may obtain from the user his login details (e.g., username and password), through an on-screen UI presented by the application, or through a secure UI associated with TLS/SSL support library 131 .
- his login details e.g., username and password
- an on-screen UI presented by the application or through a secure UI associated with TLS/SSL support library 131 .
- the user may be requested or prompted to enter the login details on a secure UI supporting an alphanumeric keypad (e.g., an on-screen keypad or an on-screen keyboard).
- the user may securely enter his login details, in a manner that prevents interception of the login details by code running over the HLOS.
- the application may ask TLS/SSL support library 131 to save confidential credential information for this application, along with a User-ID selected by the user.
- the application may indicate to TLS/SSL support library 131 which field(s) or data-item(s) require secure storage (e.g., only the user password, or other data-items too); and the content of the required field(s) may be stored.
- TLS/SSL support library 131 may issue, through TLS/SSL integration library 193 , a Secure Password Entry request to SPEM 142 , listing the name of the application (e.g., “Bank.com”) and certificate Common Name (CN) as well as a first-enrollment indication.
- the user may enter his password.
- the application may submit a login request (e.g., using Simple Object Access Protocol (SOAP), using JavaScript Open Notation (JSON) standard, or the like) to the server of the application, over the TLS/SSL connection.
- SOAP Simple Object Access Protocol
- JSON JavaScript Open Notation
- TLS/SSL integration library 193 may operate in order to cause secure modules of the system to perform one or more tasks.
- augmented TLS/SSL library 131 may be a secure library within SEE 140 , but augmented TLS/SSL library 131 may not operate unless or until it is triggered, for example, by TLS/SSL integration library 193 which may provide the input to augmented TLS/SSL library 131 and may receive the output from augmented TLS/SSL library 131 .
- two secure modules within SEE 140 may not directly communicate between themselves, but rather, may require the indirect operation of TLS/SSL integration library 193 which may facilitate the required process (e.g., verifying a certificate, such that TLS/SSL integration library 193 may open a network socket, obtain the certificate, and pass it as a parameter to augmented TLS/SSL library 131 ; or, when augmented TLS/SSL library 131 requires triggering of PIN entry by SPEM 142 , augmented TLS/SSL library 131 may report such requirement as a response to TLS/SSL integration library 193 , which in turn may trigger SPEM 142 to operate).
- TLS/SSL integration library 193 may facilitate the required process (e.g., verifying a certificate, such that TLS/SSL integration library 193 may open a network socket, obtain the certificate, and pass it as a parameter to augmented TLS/SSL library 131 ; or, when augmented TLS/SSL library 131 requires triggering of PIN entry by SPEM
- the application may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation.
- the session may then continue without requiring additional operations from TLS/SSL support library 131 , as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed by the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error.
- the present invention may additionally include a process of user invoking a previously-enrolled application, by utilizing secure password authentication in accordance with the present invention.
- the user of the mobile device may launch the application.
- the application may initialize TLS/SSL integration library 193 ; and may inform TLS/SSL integration library 193 of its cloud server address (example, https://www.Bank.com).
- TLS/SSL support library 131 may query its enrolled applications database, and may detect that this particular application has already been enrolled.
- TLS/SSL support library 131 may, in combination with TLS/SSL integration library 193 , fetch the Service Certificate of the application, from a URL associated with the application (e.g., from http://www.Bank.com/SecureMobileCertificate), and may verify the validity of the fetched Service Certificate.
- a URL associated with the application e.g., from http://www.Bank.com/SecureMobileCertificate
- TLS/SSL support library 131 may issue a Secure Password Entry request to SPEM 142 , listing the name of the application (e.g., “Bank.com”) and certificate Common Name (CN).
- the user may enter his password.
- TLS/SSL support library 131 may enable high-security operation (e.g., SEE-enabled TLS).
- the application may submit a login request (e.g., using Simple Object Access Protocol (SOAP), using JavaScript Open Notation (JSON) standard, or the like) to the server of the application, over the TLS/SSL connection.
- a login request e.g., using Simple Object Access Protocol (SOAP), using JavaScript Open Notation (JSON) standard, or the like
- the application may request TLS/SSL support library 131 to insert the credentials values that are securely stored locally in the application-database.
- Rewriter 132 may rewrite the submitted request, prior to sending it to the remote server, such that the submitted request includes (in the fields or places indicated by the application, or indicated in the Server Certificate) the true credentials values obtained from the local application-database.
- TLS/SSL support library 131 may encrypt the submitted request, similar to the way it encrypts other records over TLS/SSL.
- the application may receive a response from the remote server over the TLS connection, and may save the session information (e.g., by utilizing a “cookie” or other mechanism).
- the application may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation.
- the session may then continue without requiring additional operations from TLS/SSL support library 131 , as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed by the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error.
- Some embodiments of the present invention may optionally include, for example, general-purpose key secure storage.
- SSM 141 which may be used for storing client certificates, passwords, and symmetric keys, may further be used for storage of general-purpose key material, e.g., as symmetric keys and/or asymmetric keys.
- Some embodiments of the present invention may optionally include, for example, key provisioning. This may allow, for example, secure over-the-air provisioning of key material directly from service providers to SSM 141 .
- Some embodiments of the present invention may optionally include, for example, crypto-token capabilities. Such capabilities may allow performing authentication and digital signature computation operations using the above-mentioned key material.
- the above-mentioned features of some embodiments of the present invention may extend the functionality of the Secure Operations Module to a general-purpose remotely-provisioned crypto-module that may serve all authentication and authorization needs of a wide range of service providers, not necessarily using TLS/SSL connections.
- enrollment may be performed over a website, which may then send the enrollment information to device 100 , and may directly insert the data into the secure storage. Similar to a way in which a service provider may utilize a provisioning protocol to insert keys into a secure storage, the service provider may utilize a similar mechanism to store into the secure storage the values inserted to it by the user enrollment process described above. Accordingly, the user may not need to perform service enrollment, because enrollment may be performed without his action.
- FIG. 3 is a schematic flow-chart of a method of authenticating a user at a Point of Sale (PoS) terminal of a merchant or vendor, in accordance with the present invention.
- the PoS terminal may comprise, for example, a terminal having a touch-screen which may be operably associated with a payment card reader.
- the PoS terminal may display on the touch-screen a scrambled PIN interface (block 310 ).
- the user may swipe a payment card through the card reader (or, may insert the payment card into the card reader) (block 320 ).
- the user may enter his PIN through the scrambled PIN interface (block 330 ).
- the entered PIN may be checked (block 340 ), for example, against the payment card or against a server of the payment card issuer (e.g., per the EMV standard or other suitable standard).
- swipe may comprise, for example, an action of sliding a payment card through a card reader; inserting a payment card into a card reader and/or removing a payment card from a card reader; creating contact between a payment card and a card reader; or otherwise performing an action which causes the card reader to read data (e.g., from a magnetic stripe or a chip) of the payment card.
- the user may swipe the payment card in a card reader as above; but then, the user may enter his PIN on his own mobile device (rather than on the merchant's terminal), and may utilize a scrambled PIN interface on his own mobile device for PIN entry; and the user's mobile device may then send the PIN, in an encrypted form, to the card issuer as above, may receive a response, and may send the confirmation code (e.g., encrypted) to the merchant's payment terminal.
- Other suitable operations or methods may be used.
- the entered PIN may not be verified by the card issuer, but rather, by the payment card itself, for example, based on EMV card verification standards or methods.
- the PIN may be encrypted and may be passed to the payment card, which in turn may perform the check and may send back the verification response.
- mobile device 100 may not even be capable of “knowing” the correct PIN; rather, mobile device 100 may be trusted only with receiving the user's input, encrypting it, and transferring it for verification purposes to another module external to mobile device 100 .
- the Secure Password of the present invention may be implemented by utilizing a security model comprising assets such as, for example, a PIN, a password, a client certificate (Client-Cert), an application key (App-Key), Service Accreditation Data, and Internal Root-of-Trust (ROT).
- the security model may be used to implement a system aimed at securely authenticating a human user and his intent to perform an authentication action that involves one of his securely stored credentials, as well as to carry out this authentication action.
- the PIN may allow a user with a given User-ID to authenticate himself and his intent to authenticate.
- the password may be one or more textual credential(s) used to authenticate a user of a given User-ID to a service provider with a given Provider-ID; the password asset may typically be a user-identifier and/or a user-designated password.
- the Client-Cert may be a client X.509 certificate used to authenticate a user with a given User-ID to a server associated with a given Service-ID, over the TLS/SSL protocol (if supported by the service).
- App-Key may be a locally generated symmetric key for a user of a given User-ID and an application associated with a given Service-ID; used by the application to protect locally-stored data.
- Service Accreditation Data may be a structure containing values that indicate the accreditation of a service provider to use a given Service-ID, properties of the server certificates used in TLS, and related parameters.
- Internal ROT may be an internal symmetric key stored in SEE 140 , which may serve as the ROT for secure storage.
- the present invention may require that the platform include a Secure Execution Environment (SEE).
- SEE Secure Execution Environment
- the SEE may be, for example, an environment provided by ARM TrustZone, possibly in conjunction with a Secure OS. Code running in the SEE may be protected against being modified (in run-time, as well as in storage); may be protected from having its control flow tampered with; and may be protected from having its runtime state (including data) revealed or altered by an attacker.
- the present invention may require that the platform include a secure Root-of-Trust (ROT).
- ROT Root-of-Trust
- a secret symmetric key of adequate entropy be available to the secure code of the Secure Password solution, in a way that it may not be revealed to (or modified by) another entity or another application, on the mobile device or outside the mobile device.
- the ROT key may be used to facilitate the secure storage that the Secure Password solution may utilize.
- the present invention may further require that the mobile platform include a Secure Video Path, which may allow code running within the SEE to produce and transmit media content (images and/or videos) that may be rendered on the device screen, in full screen, without having the media exposed and/or tampered with by code running on the HLOS (e.g., another local application, or a malware module).
- a Secure Video Path may allow code running within the SEE to produce and transmit media content (images and/or videos) that may be rendered on the device screen, in full screen, without having the media exposed and/or tampered with by code running on the HLOS (e.g., another local application, or a malware module).
- the present invention may be able to protect a mobile device, a communication system, and/or a user of a mobile device, from one or more suitable types of attackers or attacking entities, such as, for example: a permanent illegal possessor of the mobile device (e.g., a thief who stolen the mobile device; a person who found a lost mobile device and does not return it to its legal owner); a transient illegal possessor who obtains temporary illegal custody of the mobile device (e.g., if the mobile device is left unattended for a few minutes); a generic malware module which may infest the mobile device (e.g., tailored to attack particular application(s), but not a particular user); a targeted malware module (e.g., tailored to attack a particular user); and/or other suitable types of attackers or attacks (e.g., a man-in-the-middle attacker, a “phishing” attack, a side-channel attack, or the like).
- a permanent illegal possessor of the mobile device e.g
- the present invention may be able to protect against various types of attacks, for example, offline attacks, runtime attacks, and/or API attacks.
- An offline attack may involve reading or altering values not through the execution environment of the device (e.g., not through the services provided by the mobile device, its CPU, or the like, for executing code), but rather using bypass means.
- An offline attack may include, for example, reading flash memory directly using a physically-connected controller when the device is powered off.
- a runtime attack may involve access to assets through the execution environment of the mobile device, yet outside the intended API of the Secure Password; for example, running a debugger to reveal contents of memory (RAM) or CPU registers; modifying the code that the execution environment performs, such as by replacing part of the code (applications and/or OS), re-flashing the device, or the like.
- API attacks may involve access to assets through the intended interfaces implemented by the Secure Password, but with an intent that differs from that assumed by the system design; some API attacks may be mounted without changing any of the code running on the mobile device.
- the PIN asset may be protected against offline attacks.
- the PIN may be protected against access that is not through the code running on the mobile device by the use of secure storage.
- SSM 141 may utilize an internal ROT key, which may be present and secured by the platform, to secure the data.
- the secure data may be protected against disclosure, as well as against illegal alteration.
- SSM 141 may run in SEE 140 facilitated by TrustZone.
- the secure storage may not store decrypted data other than in RAM, which may be accessible only by code running in SEE 140 . Therefore, there may be no trace of decrypted secure storage data available when the device is powered off.
- the PIN asset may be protected against runtime attacks.
- PIN values may only be available inside SEE 140 , which protects its logic and intermediate data.
- PIN values may be entered into SEE 140 by utilizing SPEM 142 ; furthermore, PIN values may never be produced as output, other than in encrypted form.
- a PIN value may be first initialized by a human attacker (e.g., a “Permanent Illegal Possessor” attacker, or a “Transient Illegal Possessor” attacker) to a value of his choice, if a Control PIN is not used (e.g., an initial PIN that may be securely communicated to the legitimate owner of the mobile device, for example, on the packaging of the mobile device upon purchase, or in the paper documents provided with the mobile device upon purchase).
- the request for a correct PIN upon registration of new services may be intended to alert the user to such a situation, and to prevent other assets from being collected if the mobile device is in a state where the PIN set is not the one known to the user
- the PIN asset may be protected against API attacks.
- PIN values may be only accessible through APIs that set them, re-set them, check them against an entered value to provide a match or no-match response, or output in an encrypted form.
- Resetting a PIN may be performed only once the user is securely authenticated using the existing PIN; enforced by code running in SEE 140 , such that it may not be not possible, through the publicly available interface, to reset the PIN without correctly entering the currently-set PIN.
- An initial PIN may be set by utilizing a Control PIN as described above. It is noted that PIN values may typically be susceptible to brute-force guessing attacks; however, in accordance with the present invention, PIN entry may only occur through SPEM 142 which utilizes the Secure Video Path.
- PIN guessing may only be performed manually, by a human interacting with mobile device 100 through its touch-screen unit. This may strictly restrict the ratio at which guessed PINs may be entered. Some implementations may further utilize a throttling function to restrict the number of PIN trials submitted per a time unit (e.g., per minute, per hour, per day).
- the password asset may be protected against offline attacks.
- textual credentials may be protected against offline attacks by being stored in the secure storage facilitated by SSM 141 .
- the password asset may further be protected against runtime attacks.
- textual credentials may only be available inside SEE 140 , once they were entered.
- SEE 140 may protect the logic and intermediate data of any code that processes these credentials.
- textual credentials that are entered by the user for the first time may be entered using the native device interface functions (e.g., an on-screen keyboard), where they might be captured by malware that may be positioned to capture such inputs.
- the Service Certificate may indicate that such details (e.g., a textual or alphanumeric password) should be entered by using the more secure scattered (or scrambled) on-screen alphanumeric keyboard, in which characters appear in scattered or random places or appear to be out-of-order relative to a typical (QWERTY) keyboard.
- the password asset may be protected against API attacks. For example, passwords and other user textual credentials may never be exported from the logic of the Secure Operations Module; they may only be entered into, and used within, the Secure Operations Module.
- Usage of textual credentials may be supported only by incorporating them into an existing TLS/SSL session, through an operation that may not cause them to exit SEE 140 in plaintext form. There may thus be no perceived way of recovering the plaintext of those credentials from the encrypted TLS/SSL stream.
- Textual credentials could theoretically be captured by causing the TLS handshake to be carried out using a server public key of which the private counterpart is known to the attacker.
- this attack may be blocked by the accreditation process that server keys go through; a credential may only be encrypted for a server which uses the same public key of the server with which the password was first enrolled, and which was approved to use the Secure Password service, thereby blocking “phishing” attacks against the user of the mobile device.
- the Client-Cert asset e.g., user private keys that are associated with TLS client certificates
- user private keys may be stored in the secure storage facilitated by SSM 141 .
- the Client-Cert asset may also be protected against runtime attacks, as user private keys may only be used in the TLS/SSL handshake process, which is performed by TLS/SSL support library 131 that runs in SEE 140 . Therefore, client certificate data (e.g., the user's private key), may never be made available outside SEE 140 , where it is protected.
- the Client-Cert asset may be protected against API attacks, as user private keys may not be served by any API function published by the secure code. Services may only be provided for using loaded private keys for TLS/SSL handshake computations, which may not reveal information from which a private key can be deduced, guessed, or reverse-engineered.
- Application Keys e.g., application symmetric keys for secure local storage
- application keys may be protected against offline attacks, by being stored in the secure storage facilitated by SSM 141 .
- Application Keys may further be protected against runtime attacks.
- application keys may be used for encryption and decryption of application data, using encrypt and decrypt functions that may be implemented only within SEE 140 (this may not be applicable to a server-based implementation). Therefore, the application keys may never be available outside of SEE 140 .
- the application keys may be locally generated within SEE 140 , and thus they may not even be susceptible to interception during their initial provisioning.
- Application keys may be protected against API attacks.
- the module of Secure Password that provides encryption and decryption services may be the only module having access to the application symmetric keys. Its only interface may be for encryption and decryption using application keys, and it may support no interface for input or output of application keys, neither in plaintext nor in encrypted form.
- the ciphers and modes that may be used with the application keys may be resistant to known and chosen plaintext attacks, making it unfeasible to deduce the application keys from the results that the interface may emit.
- Service Accreditation Data pertaining to accreditation of services and applications, may be protected against offline attacks, by being stored in the secure storage facilitated by SSM 141 .
- Service Accreditation Data may further be protected against runtime attacks.
- Service Accreditation Data may control the authorization of a service provider, associated with a Service-ID.
- the authorization may include association of the Service-ID with certain public keys that may be part of the Service-ID's TLS/SSL certificates, as well as information pertaining to its local applications, their identities, and their right to use local data encryption.
- the Service Accreditation Data may contain, for example: (a) identity of the service, or indication that this identity is to be obtained from the TLS certificate; (b) information on the rights of the service to use the technology on the mobile device, for example, indication that local data encryption with a specific application key is to be supported; and (c) a specification resembling a query, or indications of condition(s), which may determine which TLS certificates of the server are allowed to be accepted.
- the augmented TLS library may use the TLS certificate only if the TLS certificate was issued by a particular issuer, or only if the TLS certificate contains a particular public key, or other suitable condition(s).
- Service accreditation data may be sensitive in terms of integrity and authenticity, but not in terms of confidentiality; and thus service accreditation data may only need to be protected against illegal alteration.
- the service accreditation data may mostly be stored outside of SEE 140 , and some of the service accreditation data may be obtained or transferred over a network (e.g., as part of the Service Certificate).
- all consumers of the service accreditation data may be modules running within SEE 140 , and these modules may verify the authenticity of the service accreditation data prior to using it, using a hard-coded public key.
- the public key for verification may be pinned to the implementation code of the Secure Operations Module, which may be protected via SEE 140 .
- service accreditation data each element of the set of elements referred to as “service accreditation data” may be verified before it is used, by logic and reference key material which may be protected by SEE 140 . No system components rely on the service accreditation data that are not running within SEE 140 .
- Service accreditation data may be protected against API attacks. Due to its non-secrecy, the only threat to service accreditation data may be illegal alteration. All service accreditation data may only be read by components of the Secure Password module; and therefore, no interface may be provided which supports alteration of the service accreditation data, neither legally (by the user) nor illegally (by an attacker).
- the Internal ROT asset for secure storage may be protected against offline attacks, as a requirement from the platform of device 100 .
- the Internal ROT may be protected against runtime attacks, as the Internal ROT may only be used by SSM 141 , which itself may run only within SEE 140 .
- the Internal ROT may thus never be exposed outside of SEE 140 .
- the Internal ROT may be protected against API attacks, as there may be no direct interface to Internal ROT key.
- the Internal ROT key may only be provided by the platform within SEE 140 , and the Secure Password module may support no functionality of access to the Internal ROT key.
- the Internal ROT key may be only used internally within SEE 140 by SSM 141 .
- FIG. 4 is a schematic block diagram illustration of a terminal 400 capable of secure PIN entry, in accordance with the present invention.
- Terminal 400 may be generally similar to mobile device 100 of FIG. 1A , or may be other suitable device, for example, a mobile handset, a cellular phone, a smartphone, a PDA, a tablet, a device having a touch screen, a portable or handheld device, a laptop computer having a touch-screen, a desktop or tablet computer having a touch-screen, or the like.
- Terminal 400 may comprise, for example, SEE 140 and a touch-screen 402 .
- SEE 140 may be able to securely execute code which may cause touch-screen 402 to render and display a scrambled PIN layout 403 representing (e.g., as an image, or a sequence of images, or a video) a scrambled on-screen keypad (or a scrambled virtual keypad); and touch-screen 402 may be able to receive user input, e.g., from a user who may touch, click, tap, or otherwise select key(s) from the scrambled on-screen keypad displayed as scrambled PIN layout 403 on touch-screen 402 .
- SEE 140 may further be able to securely execute code which may cause touch-screen 402 to display a user-selected authenticity assurance image 406 .
- authenticity assurance image 406 is depicted to be displayed on touch-screen 402 near or next to scrambled PIN layout 403 .
- authenticity assurance image 406 may be displayed as a background image, a grayed-out or “washed” image, or an overlaid image or overlaid layer, below or above scrambled PIN layout 403 , or as an image which partially or entirely overlaps with scrambled PIN layout.
- scrambled PIN layout 403 is depicted as a keypad of 10 digits which are out of their numeric order and are not in a the order used in a conventional keypad.
- scrambled PIN layout 403 may be depicted using other suitable representations, for example, as four (or other number of) jack-pot wheels or slot-machine wheels, each wheel able to spin around its center and rotate among the digits “0” through “9”, thereby representing a four-digit combination; with the initial combination being set to a random or pseudo-random value each time that scrambled PIN layout 403 is invoked.
- Other suitable types of representations or selection mechanisms may be used.
- SEE 140 may comprise a Routine for Secure PIN Entry (RSPE) 404 , which may be able to randomly or pseudo-randomly generate the PIN layout 403 displayed on touch-screen 402 , and may be able to recognize the on-screen keys selected by the user via touch-screen 402 .
- RSPE Routine for Secure PIN Entry
- Terminal 400 may allow secure data entry by a user, and particularly secure entry of a PIN or a password using the scrambled on-screen keypad (or a similar scrambled on-screen keyboard). Furthermore, terminal 400 may allow secure entry and secure communication of passwords and PINS by utilizing the scrambled virtual keypad (or scrambled virtual keyboard) in conjunction with a Secure Video Path (SVP) 405 . Accordingly, the combination of SVP 405 with touch-screen 402 showing a scrambled on-screen keypad may allow secure PIN entry which may be more resistant to some types of attacks. It is noted that SVP 405 may be used for transporting both (or at least one of) the scrambled PIN layout and/or the authenticity assurance image.
- SVP Secure Video Path
- SEE 140 may allow execution of code which, as part of its operation, requires the entry of a PIN by a user.
- the code that runs in SEE 140 may comprise RSPE 404 , which may be protected from certain types of interference by being securely executed by SEE 140 .
- RSPE 404 may generate scrambled PIN Layout 403 , as an image or a video comprising at least icons representing characters that may be used for PIN entry (e.g., numeric digits, alphanumeric characters, characters or symbols that appear in a standard QWERTY keyboard, or the like).
- PIN Layout 403 may include a scrambled or pseudo-random collection of images of keys, in a layout that differs from a standard QWERTY layout or a standard keypad layout. Scrambled PIN layout 403 , or, a different Scrambled PIN layout 403 , may be generated whenever a PIN is required to be entered by a user and processed by RSPE 404 .
- RSPE 404 may comprise a module to generate authenticity assurance image 406 , which may be presented to a user before the user enters the PIN.
- Authenticity assurance image 406 may comprise an image, a video or a text, and may be recognizable by the user (e.g., may match a pre-designated image previously defined by the user as an authenticity assurance image).
- RSPE 404 may generate scrambled PIN layout 403 and/or authenticity assurance image 406 such that the image(s) comprise a representation of a value to be accepted by a user that enters the PIN. Prior to the entry of a PIN by the user, RSPE 404 may display to the user authenticity assurance image 406 over Secure Video Path 405 . The user may deduce, from recognition of the representation in authenticity assurance image 406 , the authenticity of the display, and in turn the user may deduce the authenticity of RSPE 404 (e.g., rather than suspecting that PIN layout 403 is presented by a “phishing” attacker or by a mock website).
- RSPE may display the value to be accepted by the user along with authenticity assurance image 406 .
- RSPE 404 may cause touch-screen 402 to display scrambled PIN layout 403 and authenticity assurance image 406 simultaneously.
- RSPE 404 may display the value to be accepted by the user simultaneously with PIN Layout 403 and authenticity assurance image 406 .
- a user may be presented with an option of aborting the operation (e.g., the PIN entry process) at any point until a PIN is fully entered and/or submitted by the user.
- the user may enter a PIN by selecting the suitable icons or keys which may be displayed, in a scrambled manner of in an out-of-order manner, on touch-screen 402 , as such icons or on-screen keys are visible to the user from the display of scrambled PIN layout 403 .
- the selection process causes touch events to be triggered on terminal 400 , the touch events conveying positions that are touched by the user on touch-screen 402 .
- the location(s) of touched positions as conveyed by the touch events may be provided by a suitable code running on terminal 400 to RSPE 404 .
- RSPE 404 may use its locally-stored data describing scrambled PIN layout 403 to map the touched positions into the corresponding icons or keys that were selected, and may map them further to the matching symbols that were selected. RSPE 404 may output the sequence of selected symbols, in the order they were selected by the user via the scrambled on-screen keypad.
- An application running on terminal 400 and particularly an application running within SEE 140 , may then perform operations (e.g., a login process; an authentication process) based on the PIN securely entered by the user.
- Some embodiments of the present invention may include or may utilize other suitable architectures, or may utilize modules which may be located in other devices, for example, in a remote server and/or externally to the mobile device or the payment terminal.
- SEE 140 and RSPE 404 may reside on a remote server, rather than being included within terminal 400 .
- Other suitable architectures may be used.
- the present invention may further include a method and system for selecting and/or modifying an authenticity assurance image, which may also be referred to as a Personal Security Image (PSI).
- PSI Personal Security Image
- the user of the mobile device may select an image from the HLOS (e.g., from a local repository or “image gallery”), or may capture an image using a camera of the mobile device; and may then securely perform one or more image modification operations by utilizing a secure interface running securely within the SEE, thereby generating a truly unique PSI that only the user may recognize and that may not be intercepted or captured while it is being generated by the user.
- the image modification operations may include, for example, modification of color(s), brightness, darkness, contrast, saturation, hue, light level; color replacement (e.g., replace blue with green); image distortion; applying a filter to an image; or otherwise modifying or transforming the image from its original form, or otherwise modifying one or more visible properties of the image.
- the user may modify the PSI in a secure subsystem (the SEE) of the mobile device, even if the PSI was originally selected by the user (or captured by the user) over a GUI that is not necessarily secure.
- the SEE secure subsystem
- the user may select the PSI from a pre-defined collection of images which may be available for selection at a remote website or server, and may then locally and securely modify the selected PSI, which may then be securely uploaded back to the remote website or server.
- This may allow the user to select a pre-defined PSI that was created by a third party, but to also introduce to such PSI a unique modification that only the user is aware of.
- a malware module which may run on the mobile device, and may possibly capture the selection of the PSI from the collection of pre-defined PSI items, may not be able to capture the image modification operation(s) that are performed by the user within the SEE, and may not be able to capture the modified image which may be transported securely from the SEE to the remote server.
- FIG. 5 is a schematic block diagram illustration of a system 555 comprising a transaction server 533 and a payment terminal 500 , in accordance with the present invention.
- System 555 may demonstrate secure interface binding, in accordance with the present invention, and may be used for payment to a merchant or vendor by a customer utilizing a payment card (e.g., credit card, debit card, magnetic stripe card, check-card, ATM card, Chip & PIN card, EMV card, or the like).
- a payment card e.g., credit card, debit card, magnetic stripe card, check-card, ATM card, Chip & PIN card, EMV card, or the like.
- Payment terminal 500 may be or may comprise, for example, a mobile device, a mobile handset, a cellular phone, a smartphone, a PDA, a tablet, a laptop, a computer, an electronic consumer device, a device having a touch-screen, a portable or handheld device, a non-portable or stationary payment terminal, a Point of Sale (PoS) terminal, a payment terminal associated with a cash register or with a PoS terminal, or the like.
- a mobile device a mobile handset, a cellular phone, a smartphone, a PDA, a tablet, a laptop, a computer, an electronic consumer device, a device having a touch-screen, a portable or handheld device, a non-portable or stationary payment terminal, a Point of Sale (PoS) terminal, a payment terminal associated with a cash register or with a PoS terminal, or the like.
- PoS Point of Sale
- Payment terminal 500 may comprise, for example, a touch-screen 501 ; a payment card reader 502 able to read a payment card swiped through it or inserted into it; one or more binding indicator(s) 511 ; and a SEE 504 or other trusted execution environment which may comprise a Secure PIN Entry Module (SPEM) 505 .
- SPEM Secure PIN Entry Module
- payment card reader 502 is depicted to be connected to payment terminal 500 ; although payment card reader may be part of payment terminal 500 , may be internal to or embedded with payment terminal 500 , may be integrated with payment terminal 500 , may be external to (and associated with) payment terminal 500 , or may be a removable (or non-removable) add-on module to payment terminal 500 .
- modules may be distributed across multiple devices; for example, in a server-based architecture, SEE 504 may be implemented on a remote server.
- the present invention may allow secure PIN entry process on touch-screen 501 of payment terminal 500 which may provide a secure UI 544 protecting the PIN against capturing by an attacker.
- Secure UI 544 may comprise, for example, a scrambled PIN pad layout and/or an authentication assurance image. Secure UI 544 may be regarded as “activated” or “operational” when payment terminal 500 provides protection of either (a) output data displayed on touch-screen 501 , or (b) input data entered manually by a user onto touch-screen 501 (via a touch, gesture, click, finger movement, finger swipe, finger selection, or the like).
- secure UI 544 may be regarded as “activated” or “operational” if, and only if, secure UI 544 is able to (a) securely receive data from SEE 504 for display through touch-screen 501 , or (b) securely transfer data from touch-screen 501 into SEE 504 .
- secure UI 544 may be regarded as “activated” or “operational” if, and only if, a bi-directional secure communication path is established between logic or code running on SEE 504 and logic or code running on payment card reader 502 , such that the secure path is protected against compromise of its contents integrity and/or confidentiality by any unauthorized logic or entity within payment terminal 500 and/or externally to payment terminal 500 .
- Binding indicator 511 may comprise, for example, a Light Emitting Diode (LED) or other illumination unit, able to illuminate in a particular color (e.g., green or yellow). Binding indicators may be located on payment card reader 502 , or on other components of System 555 . Optionally, two or more binding indicators 511 may be incorporated in payment system 555 , for example, a binding indicator 511 on payment card reader 502 and another binding indicator on or near touch-screen 501 .
- LED Light Emitting Diode
- Binding indicators may be located on payment card reader 502 , or on other components of System 555 .
- two or more binding indicators 511 may be incorporated in payment system 555 , for example, a binding indicator 511 on payment card reader 502 and another binding indicator on or near touch-screen 501 .
- binding indicator 511 may illuminate only when secure UI 544 is activated or operational; and binding indicator 511 may not illuminate when secure UI 544 is not activated or is non-operational.
- binding indicator 511 may illuminate in a first color (e.g., green) when secure UI 544 is activated or operational; and binding indicator 511 may illuminate in a second color (e.g., red) when secure UI 544 is not activated or is non-operational.
- first color e.g., green
- second color e.g., red
- SPEM 505 may send a signal or a command which causes binding indicator 511 to illuminate (or, to illuminate in the first color).
- SPEM 505 may send a signal or a command which causes binding indicator 511 to turn off and not illuminate (or, to illuminate in the second color).
- the mode of binding indicator 511 may be controlled by (or triggered by, or modified by) a module or component external to payment card reader 502 , and/or by SPEM 505 , and/or by other module or logic running within SEE 504 .
- Binding indicator 511 may be or may comprise, for example, a LED, an Organic LED (OLED), an illumination unit, a visual signal, an audible signal or sound or audio-clip, a video clip or animated clip, a graphical or textual item, or other suitable indicator or signal indicating to the user that secure UI 544 is activated and that, therefore, it may now be safe for the user to enter his PIN (or password) on touch-screen 501 of payment terminal 500 .
- OLED Organic LED
- payment terminal 500 may communicate securely over wired and/or wireless link(s) with transaction server 533 to verify the entered PIN, or to provide transaction details.
- the entered PIN may be tested or verified on the payment card within payment card reader 502 , rather than at transaction server 533 .
- SPEM 505 or other suitable logic within payment terminal 500 may further operate to prevent other logic from modifying and/or capturing any of the data displayed on touch-screen 501 , for as long as secure UI 544 is activated.
- SPEM 505 may cause payment card reader 502 to operate or to fully operate, and to read a payment card. In contrast, while secure UI 544 is not activated, SPEM 505 may cause payment card reader 502 to not operate, or to avoid reading a payment card swiped through it or inserted into it.
- SPEM 505 may cause payment terminal 500 to run one or more functions on data subsequently arriving from payment card reader 502 .
- SPEM 505 may cause payment card reader 502 to cease operation, e.g., to disable the capability of payment card reader 502 to read a payment card.
- SPEM 505 may cause payment terminal 500 to stop running one or more functions on data subsequently arriving from payment card reader 502 .
- SPEM 505 may cause a secure data connection to be established between payment terminal 500 and transaction server 533 , e.g., before secure UI 544 is activated.
- the secure data connection if established, may transfer data from transaction server 533 to SPEM 505 , and the data may allow SPEM 505 to render on touch-screen 501 an authenticity assurance image (e.g., a user-recognizable image that was pre-designated by the user).
- the secure data connection between payment terminal 500 and transaction server 533 may be used to convey Accreditation Data or an Accreditation Certificate from transaction server 533 to payment terminal 500 .
- SPEM 505 may implement logic that controls the functionality of SPEM 505 in accordance with information contained in the Accreditation Certificate.
- the Accreditation Certificate may contain information that, when processed by SPEM 505 , may cause SPEM 505 to refrain from performing at least a part of the PIN pad functionality if, for example, data conveyed over the connection between payment terminal 500 and payment card reader 502 indicates a particular identity (or particular type) of payment card reader 502 .
- system payment terminal 500 is not merely a computerized system in which a LED indicator signals that a “secure mode” is operational, or that payment card reader 502 is ready for swiping a payment card through it. Rather, payment terminal 500 demonstrates LED indicator or other suitable indicator, located on a secure (e.g., closed) appliance (e.g., payment card reader 502 ) indicating to an unwary user whenever a usually-untrusted open device can be temporarily trusted due to the temporal takeover of its secure part over its insecure part.
- the LED indicator may not merely indicate readiness for swiping the payment card, but rather, that this normally-insecure device is temporarily secure enough for the user to enter his PIN or password thereon.
- the LED indicator may indicate the takeover of a secure subsystem of the UI of a general-purpose device, at least in the context of PIN entry or password entry. It is noted that the LED indicator may truly indicate secure binding between payment card reader 502 and payment terminal 500 ; such that even if the HLOS of payment terminal 500 is compromised, the attacker may not be able cause the LED indicator to illuminate.
- cryptographic operation may include, for example, encoding, decoding, signing, authenticating, hashing, and/or performing other suitable operations related to cryptography and/or data security.
- a “cryptographic operations module” or a “crypto-token module” may include an encoding module and/or a decoding module and/or other suitable modules or units.
- Some embodiments of the present invention may be implemented by using a suitable combination of hardware components and/or software modules, which may include, for example: a processor, a central processing unit (CPU), a digital signal processor (DSP), a single-core or multiple-core processor, a processing core, an Integrated Circuit (IC), a logic unit, a controller, buffers, accumulators, registers, memory units, storage units, input units (e.g., keyboard, keypad, touch-screen, stylus, physical buttons, microphone, on-screen interface), output units (e.g., screen, touch-screen, display unit, speakers, earphones), wired and/or wireless transceivers, wired and/or wireless communication links or networks (e.g., in accordance with IEEE 802.11 and/or IEEE 802.16 and/or other communication standards or protocols), network elements (e.g., network interface card (NIC), network adapter, modem, router, hub, switch), power source, Operating System (OS), drivers, applications, and/or other suitable components.
- Some embodiments of the present invention may be implemented as an article or storage article (e.g., CD or DVD or “cloud”-based remote storage), which may store code or instructions or programs that, when executed by a computer or computing device or other machine, cause such machine to perform a method in accordance with the present invention.
- article or storage article e.g., CD or DVD or “cloud”-based remote storage
- Some embodiments of the present invention may be implemented by using a software application or “app” which may be downloaded or purchased or obtained from a website or from an application store (or “app store” or an online marketplace).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Telephone Function (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Devices, system, and methods of secure entry and handling of passwords and Personal Identification Numbers (PINs), as well as for secure local storage, secure user authentication, and secure payment via mobile devices and via payment terminals. A mobile electronic device includes: a secure execution environment (SEE) to securely execute code; and a secure video path (SVP) to securely exchange information between the SEE and a touch-screen of the mobile electronic device; wherein the SEE includes a secure password entry module to generate a scrambled on-screen interface, and to send the scrambled on-screen interface to the touch-screen through the SVP.
Description
- This application claims priority and benefit from U.S. provisional application 61/643,977, entitled “Device, System, and Method for Secure Entry of Personal Identification Numbers”, filed on May 8, 2012, which is hereby incorporated by reference in its entirety.
- This application claims priority and benefit from U.S. provisional application 61/730,996, entitled “Device, System, and Method for Secure Interface Binding”, filed on Nov. 29, 2012, which is hereby incorporated by reference in its entirety.
- The present invention relates to the field of telecommunications security.
- Millions of people utilize smartphones, tablets, and other mobile computing devices to perform various tasks. Some tasks may not pose major security risks, for example, taking photographs with a camera of the mobile device. However, some tasks may pose security risks, for example, utilizing the mobile device in order to access an online banking website, to perform electronic commerce (E-commerce) transactions of mobile payments (M-payments) transactions.
- Some of the threats posed to a user of a mobile device may include, for example, a “phishing” scam in which an attacker presents to the user a mock web-page impersonating a legitimate banking site. The user may be induced into entering his username and password on the mock web-page, thereby allowing the attacker to capture the username and password which may be then used by the attacker to impersonate the real user and log-in to the real banking site.
- Furthermore, mobile devices utilized in a corporate environment, and particularly in accordance with a “bring you own device” (BYOD) organizational policy, may expose both the user and the entire organization to risks of data loss or monetary loss. For example, an attacker may capture the username and password of a user and may utilize them to log-in to a corporate network or resource.
- Some websites and some corporate organizations may require a password to have a minimum length (e.g., at least 8 characters) and/or a required entropy (e.g., having at least one letter and at least one digit). However, many users are incapable of memorizing a cumbersome password, and end-up choosing a weak password which may be easily cracked by a brute-force attack, or otherwise guessed. This is particularly true for users of mobile devices, in which the physical keyboard or the virtual (on-screen) keyboard are of a small form factor, which renders password entry tedious and effort-consuming. Furthermore, even a “strong” password may be captured from many users by an attacker which operates a “phishing” scam, or utilizes a software-based keylogger malware application.
- Public-Key Infrastructure (PM) attempts to mitigate security problems by utilizing digital certificates issued by a Certificate Authority (CA). However, cryptography-based authentication via PM requires a cumbersome user enrollment process, often lacks a key repository at the client side, and often lacks a unified user experience.
- Furthermore, securing the authentication process between the user of a mobile device and a service may not suffice to fully protect the user. For example, the service may provide confidential data which may be cached or stored in the mobile device, or may be captured by other applications (e.g., legitimate applications or malware modules) which may be running on the mobile device and which may optionally transmit the captured data over a communication network to a remote location. This problem may be partially mitigated by encryption of locally-stored or locally-cached data. However, the encryption often utilizes a weak user-selected password, which may be cracked by a brute-force attack, a dictionary attack, a keylogging module. Other encryption methods may be circumvented by a module which searches the mobile device for a locally-stored copy of the encryption key.
- The present invention may include, for example, devices, system, and methods of secure entry and handling of passwords and Personal Identification Numbers (PINs), as well as for secure local storage, secure user authentication, and secure payment via mobile devices and via payment terminals.
- In accordance with the present invention, for example, a mobile electronic device may comprise: a secure execution environment (SEE) to securely execute code; a secure video path (SVP) to securely exchange information between the SEE and a touch-screen of the mobile electronic device; wherein the SEE comprises a secure password entry module to generate a scrambled on-screen interface, and to send the scrambled on-screen interface to the touch-screen through the SVP.
- In accordance with the present invention, for example, the secure password entry module may comprise: a touch-event recognizer to securely identify within the SEE a character which corresponds to a virtual key that a user selected via the touch-screen on the scrambled on-screen interface.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a secure content channel to transport the scrambled on-screen interface, securely against interception, from the SEE to the touch-screen.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a secure content channel to transport the scrambled on-screen interface, from the SEE to the touch-screen, as an encoded Digital Rights Management (DRM) protected video.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a DRM-enabled playback module to playback the encoded DRM-protected video representing the scrambled on-screen interface.
- In accordance with the present invention, for example, the scrambled on-screen interface may comprise at least one of: an on-screen scrambled virtual keyboard; an on-screen scrambled virtual keypad; an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on the touch-screen.
- In accordance with the present invention, for example, the scrambled on-screen interface may comprise a user-specific authenticity reassurance image.
- In accordance with the present invention, for example, the user-specific authenticity reassurance image may comprise a user-uploaded image captured by the user through a camera of the mobile electronic device.
- In accordance with the present invention, for example, the SEE may comprise code to securely modify, based on a user command, one or more visible properties of said image prior to an upload of said image.
- In accordance with the present invention, for example, the SEE may comprise code to securely modify, based on a user command, one or more visible properties of the user-specific authenticity reassurance image subsequent to selection of the user-specific authenticity reassurance image from a collection of images.
- In accordance with the present invention, for example, the user-specific authenticity reassurance image may comprise at least one of: an image overlaid as a watermark on top of the scrambled on-screen interface; an image overlaid as a watermark under the scrambled on-screen interface; an image displayed in proximity to the scrambled on-screen interface.
- In accordance with the present invention, for example, the SVP may comprise a uni-directional SVP to send information securely only in a direction from the SEE to the touch-screen of the mobile electronic device.
- In accordance with the present invention, for example, the mobile electronic device may comprise a device selected from the group consisting of: a laptop computer, a tablet, a smartphone, a portable computing device, a portable gaming device, a portable multimedia player, and a portable payment terminal.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a secure storage unit to securely store a cryptographic key, wherein the cryptographic key is unique to a particular task to be performed by said mobile electronic device; and a cryptographic operations module to release the cryptographic key from the secure storage unit based on a user gesture, received through said touch screen and indicating confirmation, and to utilize the cryptographic key for performing a cryptographic operation associated with said particular task.
- In accordance with the present invention, for example, the cryptographic key may be also unique to a user of said mobile electronic device.
- In accordance with the present invention, for example, the cryptographic operation may comprise at least one of: encryption using the cryptographic key; decryption using the cryptographic key.
- In accordance with the present invention, for example, the cryptographic operation may comprise a cryptographic operation transparent to said particular task on said mobile electronic device.
- In accordance with the present invention, for example, said particular task, for which said cryptographic key is unique, may comprise a task of unlocking access to an entirety of a storage unit of said mobile electronic device.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a payment card reader to read a payment card swiped therethrough; and a visual indicator to indicate to a user that the secure password entry module is activated and that the user can swipe the payment card through the payment card reader.
- In accordance with the present invention, for example, the payment card reader is operational when the secure password entry module is activated; and the payment card reader is non-operational when the secure password entry module is non-activated.
- In accordance with the present invention, for example, the mobile electronic device may comprise: a secure operations module to securely receive, from the secure password entry module, a password entered by a user via said touch-screen; to encrypt the password; and to send the encrypted password for verification at a verification module external to the mobile electronic device; wherein the verification module external to the mobile electronic device is to send a verification response indicating whether or not the password is verified; wherein the verification module may comprise at least one of: a remote server, and a smart-card external to the mobile electronic device.
- In accordance with the present invention, for example, in response to a user entering a password via said scrambled on-screen interface on said touch-screen, the mobile electronic device may send, to a remote server, a message indicating touch coordinates to enable the remote server to determine the password and to initiate a process of verifying the password; wherein the mobile electronic device is unaware of the password entered by said user.
- In accordance with the present invention, for example, a server or a computer may comprise: a secure execution environment (SEE) system to securely execute code; wherein the SEE system may comprise a secure password entry module (a) to generate a scrambled on-screen interface, and (b) to send the scrambled on-screen interface, as an encoded Digital Rights Management (DRM) protected video to a remote mobile device.
- In accordance with the present invention, for example, the encoded DRM-protected video, when played by a DRM-enabled playback module of the remote mobile device, causes a touch-screen of the remote mobile device to securely display said scrambled on-screen interface generated by the SEE system of said server.
- In accordance with the present invention, for example, the scrambled on-screen interface may comprise at least one of: an on-screen scrambled virtual keyboard; an on-screen scrambled virtual keypad; an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on a touch-screen.
- In accordance with the present invention, for example, the scrambled on-screen interface may comprise a user-specific authenticity reassurance image.
- In accordance with the present invention, for example, the server may comprise: a verification module to verify a user-entered password entered on said scrambled on-screen interface via a touch-screen of the remote mobile device; wherein the verification module is to receive from said remote mobile device a message indicating touch coordinates corresponding to touch gestures of a user on said touch-screen; wherein the verification module determines the user-entered password from said touch coordinates while the user-entered password remains unknown to the remote mobile device
- In accordance with the present invention, for example, a computing device may comprise: a secure storage unit to securely store a confidential data item; a non-secure execution environment to execute program code, the program code to transport to a remote server a message; a secure execution environment (SEE) to securely execute code, the SEE comprising: a rewriter module to securely obtain the confidential data item from the secure storage, and to securely write the confidential data item into one or more fields in said message prior to its encrypted transport to the remote server.
- In accordance with the present invention, for example, the confidential data item may comprise at least one of: a password, a Personal Identification Number (PIN), a username, a string representing user credentials, a data item for authentication; wherein the SEE comprises code to securely perform an encryption operation on said message prior to its transport to the remote server.
- In accordance with the present invention, for example, the program code may comprise an application to transport the message to the remote server via a transport security protocol.
- In accordance with the present invention, for example, the message may be associated with a data object indicating a particular field in which the confidential data item is to be inserted by the rewriter module.
- In accordance with the present invention, for example, the rewriter module may comprise: an inference module to infer a particular field of the message, in which the confidential data item is to be inserted by the rewriter module, based on contextual analysis.
- In accordance with the present invention, for example, the rewriter module may comprise: a field determining module to determine a particular field of the message, in which the confidential data item is to be inserted by the rewriter module, based on a service certificate received from a remote server.
- In accordance with the present invention, for example, the program code may comprise a web browser, and the message may comprise data transferred over HyperText Transfer Protocol Secure (HTTPS).
- In accordance with the present invention, for example, the message may comprise at least a username field and a password field.
- In accordance with the present invention, for example, the message may comprise one or more data items for authenticating a user to the remote server.
- In accordance with the present invention, for example, the rewriter may be capable of operating independently of a particular type of authentication scheme utilized by the remote server, wherein operations of the rewriter keep the remote server unaware that rewriting is performed on said computing device.
- In accordance with the present invention, for example, the computing device comprises a device selected from the group consisting of: a smartphone, and a tablet.
- In accordance with the present invention, for example, a method implementable on a computing device may comprise: securely storing a confidential data item in a secure storage unit of said computing device; executing a program code in a non-secure execution environment of said computing device, wherein the program code comprises program code to transport a message to a remote server; securely executing code in a secure execution environment (SEE) of said computing device, wherein securely executing the code in the SEE may comprise: securely obtaining the confidential data item from the secure storage, and securely writing the confidential data item into one or more fields in said message prior to its encrypted transport to the remote server.
- In accordance with the present invention, for example, the confidential data item may comprise at least one of: a password, a Personal Identification Number (PIN), a username, a string representing user credentials, a data item for authentication; wherein the SEE may comprise code to securely perform an encryption operation on said message prior to its transport to the remote server.
- In accordance with the present invention, for example, the program code may comprise an application to transport the message to the remote server via a transport security protocol.
- In accordance with the present invention, for example, the message is associated with a data object indicating a particular field in which the confidential data item is to be inserted by the rewriter module.
- In accordance with the present invention, for example, a server or a computer may comprise: an authentication module to send, to a remote client device, a server authentication certificate; an accreditation certificate stored in a pre-defined location on the server, wherein the pre-defined location is accessible to the remote client device; wherein the accreditation certificate indicates a condition that the server authentication certificate needs to meet in order for the server authentication certificate to be accepted for authentication by the remote client device.
- In accordance with the present invention, for example, the accreditation certificate is accessible for automatic polling by the remote client device based on a pre-defined storage location at which the accreditation certificate is assumed to be stored.
- In accordance with the present invention, for example, the condition may comprise a reference to a public key of the server authentication certificate.
- In accordance with the present invention, for example, the condition may comprise a reference to an issuer of the server authentication certificate.
- In accordance with the present invention, for example, the condition may comprise a reference to a data-item unique to the server authentication certificate.
- In accordance with the present invention, for example, the accreditation certificate is protected with a digital signature.
- In accordance with the present invention, for example, the accreditation certificate is digitally signed by a first entity, and the server authentication certificate is digitally signed by a second, different, entity.
- In accordance with the present invention, for example, the accreditation certificate has a timed-bound validity or an expiration time/date stamp.
- In accordance with the present invention, for example, a mobile electronic device may comprise: an authentication module to receive, from a remote server, a server authentication certificate; an accreditation certificate fetcher to fetch an accreditation certificate; wherein the accreditation certificate indicates a condition that the server authentication certificate needs to meet in order for the server authentication certificate to be accepted for authentication by said authentication module of the mobile electronic device.
- In accordance with the present invention, for example, the accreditation certificate fetcher is to fetch the accreditation certificate from a pre-defined location on said remote server which is accessible to the mobile electronic device.
- In accordance with the present invention, for example, the accreditation certificate has a timed-bound validity.
- In accordance with the present invention, for example, the accreditation certificate fetcher is to fetch the accreditation certificate from a local storage within the mobile electronic device.
- In accordance with the present invention, for example, the accreditation certificate is hard-coded within an application running on the mobile electronic device.
- In accordance with the present invention, for example, the mobile electronic device may comprise a device selected from the group consisting of: a smartphone, and a tablet.
- The present invention may provide other and/or additional benefits and/or advantages.
- For simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity of presentation. Furthermore, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. The figures are listed below.
-
FIG. 1A is a schematic block diagram illustration demonstrating the architecture of a mobile device, in accordance with some demonstrative embodiments of the present invention; -
FIG. 1B is a schematic block-diagram illustration of a Secure Operations Module (SOM) and its components, in accordance with some demonstrative embodiments of the present invention; -
FIG. 1C is a schematic block diagram illustration of Secure Password Secure Module (SP-SM), in accordance with some demonstrative embodiments of the present invention; -
FIG. 2 is a schematic block diagram illustration of system, in accordance with some demonstrative embodiments of the present invention; -
FIG. 3 is a schematic flow chart of a method of authenticating a user at a Point of Sale (PoS) terminal of a merchant, in accordance with some demonstrative embodiments of the present invention; -
FIG. 4 is a schematic block diagram illustration of a terminal capable of secure PIN entry, in accordance with some demonstrative embodiments of the present invention; and -
FIG. 5 is a schematic block diagram illustration of a system comprising a transaction server and a payment terminal, in accordance with some demonstrative embodiments of the present invention. - In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of some embodiments. However, it will be understood by persons of ordinary skill in the art that some embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, units and/or circuits have not been described in detail so as not to obscure the discussion.
- Applicants have realized that in conventional systems, key-based authentication may be too complex to provision and manage, making it barely used in practice, which in turn leads to limited and fragmented support. Additionally, password-based authentication may not be properly deployed on mobile devices, due to user-interface limitations, as well as due to user inability to select or remember long cryptic passwords. Although “password manager” programs exist, they often require a long and cumbersome master password, or they often insecurely utilize passwords in the clear.
- Applicants have further realized that even if deployed, a significant security flaw remains by carrying out authentication using logic that runs on top of a High Level Operating System (HLOS) of a mobile device, where keys and passwords may be captured by a malware software module. Furthermore, although local data protection may assist in protecting stored application data, this mechanism is seldom used, also due to the inability to present a reasonably secure solution that runs over the HLOS.
- Applicants have also realized that some mobile devices may be equipped with a Secure Execution Environment (SEE), for example, facilitated by TrustZone Technology (available from ARM Holdings PLC of Cambridge, England, United Kingdom). However, the SEE may be tailored for protecting secure applications running within the SEE, rather than for assisting HLOS applications (e.g., most of the applications on the mobile device) protect themselves and their data. Furthermore, a conventional SEE may not provide a secure input mechanism, which is important for secure authentication. Applicants have further realized that a remote server may operate as a SEE.
- The present invention may include methods, devices and systems for securely entering, transmitting, receiving and/or handling a password. Particularly, the present invention may provide the user of a mobile device, a computing device and/or a portable device with a secure unified component for authentication and authorization on behalf of the user. The secure password entry and handling of the present invention may be based on an agent module which may run in a secure execution environment (e.g., facilitated by TrustZone Technology, or by a remote server operating as a SEE), which may perform the authentication and authorization cryptographic computations using securely stored passwords and key material. Authentication and authorization on behalf of the user may be carried out only after the human user is positively identified using a secure password entry routine. The password entry routine may, by itself, be protected from malware-based password interception and/or entry, for example, by utilizing secure video path capabilities of the mobile device.
- The present invention may securely handle passwords and may facilitate user authentication and authorization in a robust and user-friendly manner. For example, the present invention may provide the facility for secure storage of passwords and client certificates, and by enabling authentication-token based capabilities. Additionally, the present invention may utilize secure storage for passwords and keys, a Secure Password Entry Module (SPEM), and modules able to use the passwords and keys to securely authenticate the user of the mobile device on behalf of the user. Only upon secure entry of a correct user password, may a Secure Storage Module (SSM) allow other system components to use the credentials belonging to that user.
- The present invention may allow, for example, secure password entry by utilizing a secure content path or a secure video path of the mobile device. Following the secure user authentication and authorization, the present invention may enable HLOS applications to protect their own authentication processes, as well as their own locally-stored data.
- The term “password” as used herein may include, for example, a string of combination of characters representing a password, a passphrase, a Personal Identification Number (PIN), a string of characters utilized for authenticating a user identity and/or for authorizing a user's access to a service, or other secret data-item or signal shared between a user and a system and useful in authentication of the user to the system. Optionally, the term “password” may include other types of confidential or semi-confidential or non-confidential data items, for example, a username, a user nickname, a user ID string, a user identifier, a token, and/or other data items, particularly data item(s) which may be used in a user authentication process.
- Reference is made to
FIG. 1A , which is a schematic block diagram illustration demonstrating the architecture of amobile device 100 in accordance with the present invention.Device 100 may be, for example, a cellular phone, a smartphone, a tablet, a laptop computer, a portable electronic device, a portable computing device, or other suitable computing device. -
Device 100 may include one or more modules running in a Secure Execution Environment (SEE) 140 (e.g., a TrustZone Technology environment, optionally associated with a Secure Operating System (Secure OS) 107 such as, for example, MobiCore available from Giesecke & Devrient GmbH of Munich, Germany), and one or more modules running in an Unsecure Execution Environment (UEE) 120 (e.g., an Android environment). -
UEE 120 may comprise, for example, a touch-screen 152, a secure DRM-enabledmedia player 153 which may be associated with a Secure Password (SP) DRM plug-in 154, a Secure Password (SP)Activity 159, a TLS/SSL integration library 193, and a TLS/SSL Authorization Activity 191. -
SEE 140 may comprise a Secure Operations Module (SOM) 130 able to securely store, transmit, receive and handle user password(s) and/or PINS, as well as other keys and assets, without exposing such password(s) or PINS toUEE 120 or to any module or application withinUEE 120, or to other attackers which may be internal or external todevice 100.SOM 130 may be able to generate and send User Interface (UI) elements that will be rendered by asecure CODEC 155. - Reference is also made to
FIG. 1B , which is a schematic block-diagram illustration ofSOM 130 and its components, in accordance with the present invention.SOM 130 may comprise, for example, a Secure Storage Module (SSM) 141 associated with aSecure Storage 149; a Secure Password Entry Module (SPEM) 142; a secure TLS/SSL support module 151; a local encryption/decryption services module 146; and an optional crypto-token module 147. - Secure TLS/
SSL support module 151 may comprise, for example, a TLS/SSL support library 131; acookie handler 192; arewriter 132; anapplication support API 133; and anenrollment module 137, which may be associated with anenrollment database 138 and anenrollment cache 139. For demonstrative purposes,enrollment database 138 is shown as part of secure TLS/SSL support module 151, although in some implementations,enrollment database 138 may be stored withinsecure storage 149. - Local encryption/
decryption services module 146 may comprise, for example, anencryption module 143, adecryption module 144, akey generator 145; and anencrypted partition manager 197. -
Secure storage 149 may be a memory unit (or a dedicated portion or segment of a memory unit or memory area), in which confidential data may be stored.SSM 141 may be a secure software module which may control the writing into (and the reading from)secure storage 149. For example,SSM 141 may be an application running inSEE 140, and may facilitate storage insecure storage 149 of passwords, client certificates, private encryption keys, other types of cryptographic credentials which may be used in crypto-systems, or other data that needs to be kept secure. - Each one of the cryptographic credentials in
SSM 141 may be associated, for example, with a User-ID (associating a cryptographic credential with a user identification) and with a Service-ID (associated a cryptographic credential with an identifier of a service to which the user authenticates using that cryptographic credential). The Service-ID may be an identity obtained from a Service Certificate which may be issued to every service provider (or application) that enrolls to use a mechanism of the present invention. This new type of digital certificate (not to be confused with an X.509 Certificate, a Transport Layer Security (TLS) certificate or with a Secure Sockets Layer (SSL) certificate) may allow the service provider full flexibility when using different TLS certificates while providing protection to the end-user against phishing attempts. - Passwords which may be stored in
SSM 141 may be numeric passwords, alpha-numeric passwords, strings of alphanumeric and/or non-alphanumeric characters, or the like. The digital certificates that may be stored inSSM 141 may be client certificates, for example, in accordance with ITU-T standard X.509, and/or a private key. Additionally,SSM 141 may store the password assigned to each User-ID, as well as information necessary to securely recover a personal user-selected image which may be associated with each User-ID and may be utilized in the authentication process as described herein. - Secure Password Entry Module (SPEM) 142 may run in
SEE 140, and may be responsible for polling a user for his password, prior to using any of the secure storage credentials to authenticate on behalf of that user.SPEM 142 may utilize a Secure Video Path (SVP) feature ofdevice 100 to display to the user an on-screen keyboard or an on-screen keypad which cannot be intercepted by a malware module which may be running ondevice 100. The present invention may thus utilize a secure content path or SVP feature ofdevice 100, originally intended for the secure display of protected media content, e.g., Digital Rights Management (DRM)-protected content, for a different purpose of securely communicating an on-screen virtual keypad/keyboard. - For example, when a user needs to be asked for his password,
SPEM 142 may utilize SVP to securely render and present on the screen of device 100: (a) a background image which comprises, or is constructed based on, a personal image previously-selected by the user; (b) a shuffled or scrambled on-screen keypad or keyboard, such that on-screen keys that represent digits and/or letters appear, at each invocation, at random or pseudo-random locations, in a randomly or pseudo-randomly scrambled order, or in an order which is randomly or pseudo-randomly different from their regular order in a conventional physical keyboard or keypad; the identity of the service provider, as securely obtained from, or otherwise pointed by, the Service Certificate. The user may enter his password by tapping, touching, clicking, or otherwise selecting keys on the scrambled on-screen keyboard or keypad. The coordinates of the user's key-presses may be communicated from a driver of the touch-screen of device 100 (e.g., running inUEE 120, for example, an insecure High-Level Operating System (HLOS) such as Android) to SPEM 142 which runs inSEE 140. As the user enters his password,SPEM 142 may convert the coordinates into pressed letters or digits, based on the notion of where each letter or digit was displayed in the current invocation of the randomly scrambled on-screen keyboard or keypad. It is noted that the display of the user-selected personal image may allow the user to ascertain that the user is entering his password into a genuine interface rather than into a phishing web-page or mock website. Similarly, the description of the service provider may allow the user to assure that the proper service provider is being authenticated to. - Secure TLS/
SSL support module 151 may utilize the user's cryptographic credentials, which are stored inSSM 141, in order to authenticate on behalf of the user, after the user correctly enters his password. As mentioned above, the user's cryptographic credentials stored inSSM 141 may be, for example, either a user-designated password, or a TLS client certificate (along with a private key). If the user credential is a client certificate with a private key, then the private key may be securely incorporated into the TLS handshake. If the user credential is a password, then that password may be used in TLS either throughrewriter 132 or throughApplication Support API 133, as described herein. It is noted that at least part (or all) of the TLS/SSL implementation may be executed inSEE 140, to eliminate any need for processing user credentials over the HLOS or inUEE 120 ofdevice 100. - Secure TLS/
SSL support module 151 may utilize client certificates in accordance with the TLS protocol during the handshake phase. In accordance with the present invention, part of a TLS implementation may run inSEE 140, thereby allowing the securely stored private key that belongs to the client certificate to be incorporated into the handshake process, without ever having to expose it to the HLOS or toUEE 120. - Secure TLS/
SSL support module 151 may optionally compriserewriter 132, for example, a HyperText Transfer Protocol (HTTP) rewriter. When passwords, rather than client certificates, are used with TLS/SSL for authentication, such passwords may not be passed as part of the TLS/SSL handshake. Instead, such passwords may be transferred after the handshake process may be completed, as session data (e.g., in accordance with a RESTful authentication method). For example, a password entered by the user may be communicated to a remote web-server over an HTTP POST command that is part of the HTTP interaction with the website. In a conventional system the TLS/SSL protocol implementation may be oblivious of this password, and may be agnostic to any data that the web browser (or other application) sends to or receives from the web-server: a conventional TLS/SSL implementation merely encrypts and decrypts the session data without caring for its contents. In contrast,rewriter 132 may be a component of secure TLS/SSL support module 151, which breaks the TLS/SSL obliviousness towards the data being encrypted and/or decrypted.Rewriter 132 may run inSEE 140, and may provide the part of the to-be-encrypted record (e.g., input provided on a web page) which contains the password. This may allow the password to be securely stored bySSM 141 without ever having to be delivered in the clear to the HLOS or toUEE 120 during that TLS invocation. For example,rewriter 132 may replace the contents of form fields in a submitted HTML page, with entries obtained securely withinSEE 140 fromSSM 141.Rewriter 132 may be able to replace all (or some) of the user fields in the form page, with entries retrieved securely withinSEE 140 fromSSM 141; or,rewriter 132 may replace only password field(s) in the submitted HTML page with the relevant password(s) obtained securely withinSEE 140 fromSSM 141. Password fields in a submitted HTML page may be recognized based on their unique field type. - It is noted that
rewriter module 132 is described herein in terms or “rewriting”, although in some implementations it may operate as a “writer” module which may write original data into suitable field(s) rather than rewriting or replacing data (or fake data). In other implementations,rewriter module 132 may operate as a replacer module or a substitution-performing module, as described. - It is further noted that
rewriter module 132 may receive from one or more sources (e.g., from a service certificate; from a password field; from a browser) indications of which field(s) to write or rewrite or replace; and/or may automatically infer or deduce which field(s) or location(s) require rewriting or content replacement. - Secure TLS/
SSL support module 151 may optionally compriseApplication Support API 133. For example, a password may be sent fromdevice 100 to a remote server not through a web browser, but through a local application running on device 100 (e.g., if the interaction between the user and the remote server does not occur over a web browser, but by a user running a dedicated downloaded or pre-installed application). The local application may create its own connection to the remote server. Traffic outgoing to the remote server may be, for example, wrapped as XML, being passed along as HTTP traffic. In some cases, there may be no HTML forms that are filled by the user, but rather, there may be local forms displayed ondevice 100 by the local application, with the local application pre-processing the form contents before sending them to the remote server. Since the password is not entered in a typical HTML form,rewriter 132 may not be operable to replace HTML field content. A conventional local application which sends secure traffic, may utilize a pre-provided OS implementation of the TLS/SSL protocol, and may thus still use the secure TLS/SSL implementation provided by secure TLS/SSL support module 151. However, sincerewriter 132 may not be able to determine where and how to paste the securely-stored user credential, it may be required indirectly by the local application to provide such information.Application support API 133 may provide an interface to application providers and application developers, which may be utilized by a local application in order to cause secure TLS/SSL support module 151 to insert securely stored credentials into TLS/SSL connections that the local application maintains with a remote server. -
Encryption module 143 anddecryption module 144 may allowSOM 130 to support local data protection by using data encryption in a robust way. Each application that attempts to keep its data protected may be provided access to a “virtual partition”, for example, in the form of a Linux mount under the application's regular data directory. The application may treat this directory in the same way that it treats any other directory, for example, by creating, writing, reading, deleting and/or modifying file(s) in such virtual partition directory. However, the content of the virtual partition directory may be transparently encrypted (and decrypted, as needed) bySOM 130. Accordingly, the application provider or developer may not be required to have any understanding of how encryption works, or to account for such encryption in any way other than by storing files in that virtual partition sub-directory rather than in the parent directory of the local application. The encryption and decryption operations may be performed byencryption module 143 anddecryption module 144, respectively, e.g., using Advanced Encryption Standard (AES). - In a demonstrative implementation, the encryption/decryption key may be internally generated by
key generator 145 withinSEE 140, for example, as a function of the User-ID and the Service-ID. The key may be securely stored bySSM 141, and may be unique for each device, for each User-ID, and for each application. Alternatively, it may be securely derived whenever it is needed. This architecture limits the scope of damage from a leaked key, prevents encrypted data from being usable on other devices, and prevents a first local application from reading data associated with a second local application. Similarly to other security features provided bySOM 130, use of the key by an application may be granted only after the user provides hisconsent using SPEM 142. For example,SPEM 142 may ask the user for his password, while securely displaying the human-readable Service-ID of the application that is seeking encryption/decryption with its key. If the user approves the usage of the particular key (belonging to the particular application), then the proper key may be loaded and the hidden mount (the virtual partition directory) may appear and may be usable by that particular application. - It is noted that other means may be deployed at the HLOS level to form an additional layer of security, for example, by ensuring that a request for a key is issued only by an unmodified application for which the key was generated. This feature may be provided in addition to the display of the application identity when seeking user approval for using the encryption key.
- It is noted that in some alternative implementations, a local application may not access transparently-encrypted mounted volumes or virtual partitions, but rather, may store its application data regularly, while accessing the data by utilizing modified functions which may be provided as part of
SOM 130. Such modified functions may take care of the transparent encryption and decryption of files and/or data without affecting file locations. -
SSM 141 may provide secure storage services for passwords, client certificates, and other information that needs to be stored only in encrypted form and/or integrity-protected form.SSM 141 may build a primitive database abstraction on top of secure storage facilities which may be provided by a Secure OS ofSEE 140.SSM 141 may keep each data item associated with the respective User-ID and Service-ID, for example, represented using encrypted XML files (or other suitable representation formats), holding the data provided by upper layers. In order to achieve compatibility with a wide range of types of Secure OS, theSSM 141 may rely exclusively on the platform services of Secure OS for accessing a device-unique key and for storing a copy of the Initialization Vector (IV) used for each encrypted file. - Secure Password Entry Module (SPEM) 142 as well as associated secure code may be invoked by an application running on device 100 (e.g., an Android application if
device 100 runs Android OS) requiring access to secure assets.SPEM 142 may display on a touch-screen display unit ofdevice 100, for example, a password (or PIN) entry screen.SPEM 142 may then receive the user's input (password), and if the password is correct,SPEM 142 may enable access to the relevant secure assets. - In some implementations, secure password entry may span over both
SEE 140 andUEE 120, and may involve, for example, all or some of the components ofFIG. 1A . -
SP activity 159 may be an Android activity (e.g., Java activity), invoked in response to an intent posted from other application(s). For example, a local Android application requiring access to a password-protected asset may use an instance of a secure component to generate a request and sign it with the request key (which may only be accessible to secure components). The application may then issue a startActivityForResult( ) to invokeSP Activity 159 and send the signed request it received from the instance of the secure component. Then,SP Activity 159 may send its response encrypted by another device-specific key available only to secure components, which the requesting application provided to the relevant secure component instance. The request and the response may further include a cryptographic nonce generated by the requesting application, in order to prevent reuse of old or previous response(s). The requesting application may be, for example: a secure application requiring password authentication services; a HLOS application, requiring password authentication, e.g., to protect its local storage using the secure component described herein; or a TLS Activity serving an application that utilizes TLS connections, as described herein. - Secure video path may ensure that an incoming protected video (or image, multimedia file, or the like) is securely decrypted by the scheme used to protect it, within
device 100, and is securely displayed on touch-screen 152 in a way that bypasses the HLOS, and thus prevents the video/image from being captured. The present invention may thus utilize and leverage the capabilities of secure video path, for example, by creating the image of a scrambled PIN pad (or other suitable type of on-screen input interface) as a secure image/video, encoding it like a video, and wrapping it in a certain protection scheme, inSOM 130. The protected video may then be delivered toSP activity 159.SP activity 159 may transfer the protected video to the secure DRM-enabledmedia player 153 available bydevice 100. Secure DRM-enabledmedia player 153 may identify that the video is an encrypted video based on a certain DRM scheme, and may pass the encrypted video to thesuitable DRM plugin 154, which in turn may utilize the services ofSPEM 142 inSOM 130 to decrypt the encrypted video. The decrypted video may be transferred to securecodec 155 which may render it securely onto touch-screen 152. - A suitable mechanism may be used to allow conversion of touch events, performed by a user on touch-
screen 152, into secure identification withinSOM 130 of the keys that correspond to those touch events.SOM 130 may generate a scrambled PIN pad or other scrambled password-entry interface; touch events are transferred from the Activity that detects them toSOM 130, which in turn may convert them into the entered PIN. SinceSOM 130 generated the scrambled password-entry interface, and the scrambled password-entry interface may be displayed securely by leveraging the capabilities of secure video path, thenSP activity 159 or other components ofHLOS 120 may not be capable of determining what was drawn on touch-screen 152 that the user pressed on. Therefore,SP activity 159 may only identify coordinates of the user's finger(s), for example, indicating that the user tapped on an upper-left region of touch-screen 152, but not knowing which key was displayed at that region of touch-screen 152 as part of the scrambled password-entry interface (e.g., scrambled PIN pad) that was generated securely bySOM 130 and was displayed securely via secure video path 150. SP activity may thus “blindly” pass the touch-event coordinates toSOM 130, which in turn is able to securely determine which character (e.g., digit, symbol, or letter) was displayed under each of the points that the user touched, andSOM 130 may thus securely convert the touch-event coordinates back into PIN digits or password characters. - Most of the logic at the Android or Java level of
Password Entry Activity 159 may concern required interactions with the OS, for example, acquiring access to touch-screen 152, or driving the platform's hardware CODEC to display the User Interface (UI) generated by the secure component). The activity logic may drive user interaction by displaying the UI as a full-screen video surface, employing secure video path to prevent “snooping” of the UI, and directing touch events on touch-screen 152 toSOM 130. - Reference is made to
FIG. 1C , which is a schematic block diagram illustration of Secure Password Secure Module (SP-SM) 168 in accordance with the present invention. SP-SM 168 may be a demonstrative implementation ofSPEM 142. - SP-
SM 168 may comprise, for example, a linkprotection encryption module 182, a SPservice certificate validator 183, aUI control logic 184, asecure text renderer 185, animage composition module 186, asecure frame buffer 187, and a video encoder 188 (e.g., utilizing H.264 or other suitable CODEC). - SP-
SM 168 may run inSEE 140 and may generate the UI for secure password entry for example, as a background PNG picture of the user-selected personal image and overlays. SP-SM 168 may react to touch events arriving fromSP Activity 159; may update the display to reflect UI progress; may encode the UI to a video (e.g., by utilizing H.264 or other suitable video codec); and may protect the encoded video using a custom protection scheme, such as a DRM protection scheme. -
UI control logic 184 may implement a graphics library.UI control logic 184 may be based on a PNG decoder and a TrueType font renderer, and may draw random or pseudo-random or scrambled digits (or characters).Secure text renderer 185 may render text of the context (e.g., the Service-ID), whereasimage composition module 186 may compose an image of the digits and text together with the personal reassurance image.Video encoder 188 may encode the display output into an H.264 video stream (or other suitable video stream or video clip or video file, encoded using other suitable standard or protocol), which may be encrypted (e.g., using AES-CTR) with a randomly-generated per-session key. This may allow utilization of a platform-defined secure content path or secure video path, which is designed for using secure display for DRM-protected video. -
UI control logic 184 may be responsible for drawing a scrambled PIN pad layout, a scrambled password-entry interface, a set of rotatable dials having a random initial value, or the like.UI control logic 184 may create an image of such PIN pad or password-entry interface. SPservice certificate validator 183 may receive and check an “accreditation certificate” (or “service certificate”), and, if valid, may obtain from it the service provider name.Secure text renderer 185 may obtain the ID or name of the service provider from the certificate processed byservice certificate validator 183, and may obtain other textual details about the context of the authorization required (for example, amount paid in a commerce context; or service provider details in a TLS context).UI control logic 184 andsecure text renderer 185 may operate to draw the text on the image (e.g., textual details and the name of the service provider), using its own version of secure fonts, to avoid using unsecure font(s) of the HLOS.Image composition module 186 may take all the graphics created for the PIN-pad (or password-entry interface), as well as the service details and the personal assurance image, and may compose out of them a combined image which may then be passed to secureframe buffer 187, which comprises an image buffer.Secure frame buffer 187 passes one or more buffered image(s) or frame(s) tovideo encoder 188, which generates a video therefrom (e.g., a video file encoded with H.264). The encoded video is passed fromvideo encoder 188 to linkprotection encryption module 182, which generates the random or pseudo-random key, encrypts the video with it, and wraps it or encapsulates it as protected video (e.g., Widevine video, PlayReady video), which may then be passed back to theSP activity 159. Optionally, SP-SM 168 may further implement a CryptoPlugin::decrypt function, to decrypt the custom DRM-like protection scheme. This may allow integration of the password entry display into an existing secure content path (or secure video path) on any platform supporting CryptoPlugin (e.g., used for PlayReady and Widevine). - Referring again to
FIGS. 1A and 1B , secure TLS/SSL support module 151 may comprise TLS/SSL support library 131 that runs in the secure execution environment, and communicates with TLS/SSL integration library 193, running inUEE 120. TLS/SSL integration library 193 may further comprise a full TLS/SSL implementation in user-space. For example, TLS/SSL integration library 193 may comprise an enhanced TLS/SSL library (e.g., a TLS library), which augments the TLS/SSL implementation in the HLOS with SEE-based secure session establishment, and may provide optional support for protecting user credentials (e.g., passwords and client certificates) by the SEE, such as by interacting with TLS/SSL support library 131 running in the SEE. When SEE-based operation is enabled, TLS/SSL integration library 193 may process the TLS handshake protocol using TLS/SSL support library 131 running in the SEE (or on the server). The secure TLS/SSL integration library 193 may operate in one of two modes: it may use the secure component running in the SEE for the handshake phase only, or it may use the secure component for the handshake phase as well as for the encryption and decryption of records. - Operation of TLS/
SSL support library 131 may be triggered or invoked by a triggering condition or event, for example, identifying that a website has a Service Certificate. TLS/SSL integration library 193 may fetch the Service Certificate from a well-known URL on the website during initialization. If the website is not yet known todevice 100, then an “enrollment mode” (e.g., a “first-time wizard”) may be initiated by enrollment module 137 (e.g., a website enrollment module and/or an application enrollment module, which may be part of TLS/SSL support library 131, and may comprise anenrollment database 138 of previously-enrolled websites and/or applications, as well as anon-persistent enrollment cache 139 of non-enrolled websites), allowing the user to enter his username, his password, and optionally other identifying details. The application or browser may then cause the storage of the confidential identification details in secure storage (e.g., using extended APIs provided by TLS/SSL support library 131) for use in subsequent connections to the service. - Once the handshake is completed, if user credentials protection is not required, then the secure component (or the server, in a remote server implementation as demonstrated in
FIG. 2 ) may return the agreed-upon session keys to the HLOS library layer, thereby minimizing the performance impact of a split architecture. This mode may be deployed when authenticating the user using a client certificate, as described above. - Secure credentials handling may require TLS/
SSL integration library 193 to operate in a different manner: when this mode is enabled, a new API may be used to causerewriter 132, which may be part of secure TLS/SSL support module 151, to send a specified credential (e.g., password) into the encrypted stream. To prevent malware running over the HLOS from capturing the credential from the encrypted stream, the session key may not be exported from the secure environment (or the server, in a remote server implementation as demonstrated inFIG. 2 ); rather, every encryption (or decryption) operation may be directed to the secure component. - The application may still request to switch to the HLOS-based payload processing mode after sending the credentials. The mode switch may cause TLS/
SSL integration library 193 to perform an abbreviated TLS renegotiation, generating a new key for use in the continued session. The Service Certificate may include information pertaining to the authorization for the fall-back into HLOS-based payload processing. - As demonstrated herein with reference to
FIG. 2 , TLS/SSL support library 131 (or, a TLS/SSLhandshake support module 103, able to perform a similar role) may run on a remote secure proxy server. In such case, traffic frommobile device 100 to the secure proxy server may be protected using a data protection module for communicating securely towards the secure proxy server, and the secure proxy server maintains the TLS connection with the actual service server, on behalf ofDevice 100. If renegotiation is done, the TLS session may resume, following renegotiation frommobile device 100 to the service server (TLS server), no longer going through the secure proxy server. - Local
encryption services module 146 may comprise a library that allows local HLOS applications to trigger encryption and/or decryption processes using securely stored keys, to protect local data. Localencryption services module 146 may provide services to applications requiring secure local storage. Localencryption services module 146 may include, for example: an Android activity for communication with the client applications; a system daemon for managing secure mount points; and a secure component for actual encryption and decryption of stored data. - In a server implementation (e.g., as demonstrated in
FIG. 2 ), akey generator 145 may run on the server, whereasencryption module 143 anddecryption module 144 may reside and run onmobile device 100, but in its HLOS.Encryption module 143 anddecryption module 144 ofdevice 100 may interact securely with the remote server in order to obtain the relevant key, after the server authenticates the user with its securepassword entry module 142. Once the server authenticated the user, the server may make the correct key available to theencryption module 143 anddecryption module 144 ofdevice 100. - Crypto-
token module 147 may allow applications to trigger authentication and digital signature routines to be performed using securely stored keys, as described herein. - Components of
SOM 130 may be integrated intomobile device 100, at the HLOS (e.g., Android) level and at the Secure OS level, as detailed herein. Components ofSOM 130 may also be integrated in a remote server (e.g., as demonstrated inFIG. 2 ) - It is noted that components of
SOM 130 may be implemented inSEE 140 or in the remote server. In some implementations, utilization of crypto-token module 147 may require a “token conduit” inUEE 120; the token conduit may be an Activity able to interact with crypto-token module 147 ofSOM 130, to enable crypto-token module 147 to perform cryptographic operations with credentials stored bySSM 141 insecure storage 149. - At the HLOS level, TLS/
SSL Authorization Activity 191 may be used. In order to enable the secure operation of TLS/SSL support library 131, an application may need to request user authorization for using the user's credentials (e.g., either a password, or a private key associated with a client certificate). The authorization request may be accomplished by issuing an Android Intent with, e.g., the website's URL, or any other service identifier, and an optional User-ID. This may invoke TLS/SSL Authorization Activity 191, which may issue an HTTP HEAD request to the website in order to retrieve the website's TLS server certificate. The TLS/SSL Authorization Activity 191 may then invoke a Secure Password request in order to display some available information, such as: website's URL, common name of the website from the Service Certificate, and/or the User-ID. The user-supplied password may then unlock, or authorize, the access to the user's digital certificate and/or password. - Once the user authorized the use of his credentials, TLS/
SSL Authorization Activity 191 may return a secure “cookie” value to the application. The secure “cookie” value may then be used (e.g., verified) bycookie handler 192 to enable the secure operation of the TLS/SSL support library 131. The secure “cookie” may be generated by secure TLS/SSL support module 151. The secure “cookie” may be verified bycookie handler 192 of secure TLS/SSL support module 151, which may perform cookie creation and/or cookie verification; an invalid or stale “cookie” may not leak any unexpected capabilities. For demonstrative purposes,cookie handler 192 is shown as part of secure TLS/SSL support module 151; althoughcookie handler 192 may be implemented as part of, or may be associated with, one or more other modules, for example, TLS/SSL support library 131,SPEM 142, local encryption/decryption services module 146, and/or crypto-token module 147. - TLS/
SSL support library 131 may augment conventional capabilities of a TLS/SSL library. TLS/SSL support library 131 may comprise an additional module for authorizing secure operation; this module may be associated with API which may be a Java function, which may invoke the TLS/SSL Authorization Activity (via an Android Intent) and may update internal state according to the results. TLS/SSL support library 131 may further comprise, for example, a new function, which may add the ability to set an SSL session object to high-confidentiality mode (performing encryption/decryption in the SEE 140), enabling the utilization of secret user credentials. Changing the mode on an already-active session (e.g., where data has already been exchanged) may cause TLS/SSL support library 131 to trigger an abbreviated renegotiation of the TLS connection, resulting in a changed key being used thereafter. TLS/SSL support library 131 may also comprise a new function, which may accept the name of a (previously-enabled) user credential, and may instructrewriter 132 to write the value of this user credential into the output stream; the SSL_session_object should be in high-confidentiality mode when this function is used. - TLS/
SSL support library 131 may further interact with the corresponding TLS/SSL integration library 193 in the HLOS ofdevice 100. TLS/SSL integration library 193 may comprise, for example, asession confidentiality module 194 able to set and/or modify a session confidentiality flag or parameter (e.g., toggle between “high” and “low”, or vice versa); arewriter trigger 195 able to identify thatrewriter 132 needs to be invoked; and a send/receivemodule 196 able to interact with TLS/SSL support library 131 and able to send to (and receive from) TLS/SSL support library 131 data to encrypt or decrypt. - Internally, TLS/
SSL integration library 193 may dispatch functions to either a copy of the HLOS-based TLS/SSL implementation or to TLS/SSL support library 131. The HLOS version of the code may be used for SSL_write/SSL_read as long as the session is not in high-confidentiality mode. The HLOS version of the code may also be used for session establishment (e.g., SSL_connect) if access to secure credentials has not been authorized. - Components of
SOM 130 may also be integrated into the Secure OS level. For example,SOM 130 may comprise modules running inSEE 140, under control ofSEE 140. These modules may be implemented as “secure applications”: they may use Secure OS services, and may be loaded like other secure services (e.g., as used for DRM). The secure modules may comprise, for example, Secure Password Entry Module (SPEM) 142, a secure TLS/SSL module (e.g., secure TLS/SSL support module 151), Secure Storage Module (SSM 141), andencrypted partition manager 197. -
SPEM 142 may implement the user interface for secure password entry. The input received by 142 may be a “password request”, for example, the website's details (domain and name from the Service Certificate) and the User-ID to use for logging into the website, all signed with a secret key. The output generated bySPEM 142, if the password entered is correct, may be a user-specific and service-specific secure storage key, encrypted for use solely by the secure component requesting authentication. The secure storage keys may be derived from a device-private master key using a deterministic Key Derivation Function (KDF) which may utilize, as parameters, the User-ID and the Service-ID, as well as additional data. - Secure TLS/
SSL support module 151 may implement a minimal TLS, e.g., TLS v1.2, stack, and may support DHE_RSA-based handshake and key exchange, as well as AES-based record payload protection, as well as other modes. Secure TLS/SSL support module 151 may be initialized by accessing a service parameters package, containing the server's Service Certificate and user's credentials. The service parameters package may be stored inSSM 141, and access to the service parameters package may require a password provided usingSPEM 142. TLS/SSL support module 151 may further enable user enrollment, which may create a service parameters package and may stores such package (through SSM 141) in secure storage. -
SSM 141 may handle the confidentiality and integrity of service parameters and user parameters.SSM 141 may be invoked directly from other secure modules (e.g., from SSL/TLS support module 151), and may manage the encryption and signing of provided data using SEE-internal keys. -
Encrypted partition manager 197 may be part of, or may be separate from, localencryption services module 146. For example,encrypted partition manager 197 may handle encryption and decryption of data involved in file access operations of local applications utilizing the local data protection feature, as described above. In some embodiments, the application may directly utilize the encryption and/or decryption functions of localencryption services module 146; whereas in other embodiments,encrypted partition manager 197 may create an encrypted partition which the application may then transparently use. - Local
encryption services module 146 may provide local encryption and decryption functionality. Sensitive data of each local application may be locally stored as an encrypted sub-volume; the sub-volume may be backed by a file stored inside the application's data directory, or at any other location. Each such sub-volume may be encrypted using a different key, derived from the device master key using a secure KDF parameterized by the User-ID and the application identifier (package name). Alternatively, the key may be generated randomly or pseudo-randomly. The encryption may utilize AES-XTS for the data sectors, and may scramble the sector addresses using an AES-driven Thorp shuffle. Other suitable ciphers and/or modes may be used. - Initially (e.g., at system start-up), the sensitive data containers may be closed. When an application needs to access its sensitive data, the application may invoke the Android Binder InterProcess Communication (IPC) mechanism to request access from a “secure storage manager” daemon (e.g., started at system boot) which may be implemented as
encrypted partition manager 197.Encrypted partition manager 197 may issue a Secure Password request in order to access the user's master key.Encrypted partition manager 197 may manage the mounting and un-mounting of protected volumes using a Linux Network Block Device (NBD) mechanism, and may implement the server-side logic for these volumes, accessing the backing files and performing encryption/decryption using a secure component, such that the keys used for encryption and decryption may never leave the secure component.Encrypted partition manager 197 may also utilize Android Binder mechanisms to detect when a local application is closed or “killed”, and un-mount any protected volumes mounted on behalf of that local application. -
FIG. 2 is a schematic block-diagram illustration of asystem 200 in accordance with the present invention.System 200 may includemobile device 100, which may be able to communicate with aremote server 101 over one or more communication networks, wireless links and/or wired links. -
Server 101 may comprise asecure agent 198, for example, a secure component or secure environment which may be generally similar toSEE 140. In some implementations ofsystem 200,device 100 may not comprise a SEE; or,device 100 may comprise a SEE but such local SEE ofdevice 100 may be un-usable or need not be used by the present invention. Accordingly,SOM 130 may be implemented withinsecure agent 198 of server 101 (instead of being implemented within a SEE internal to device 100).Secure agent 198 ofserver 101 may further comprise asecure video creator 102, which may be responsible for the functions of some or all of the components ofFIG. 1C , particularly for the functions associated with linkprotection encryption module 182 andvideo encoder 188.Secure video creator 102 may generate a DRM-encrypted video representing an on-screen scrambled PIN pad (or other suitable scrambled password-entry interface).Secure video creator 102 may communicate the DRM-encrypted video to secure DRM-enabledmedia player 153 ofdevice 100, which in turn may display it on touch-screen 152. Video feedback, including touch-events of the user on touch-screen 152, may be exchanged betweenSP activity 159 ofdevice 100 and aremote SOM 130 running insecure agent 198 ofserver 101. -
SOM 130 may be implemented withinsecure agent 198 ofserver 101. In such implementation,SOM 130 need not compriseencryption module 143 and/ordecryption module 144, as the encryption/decryption services may be provided by the HLOS ofdevice 100.Server 101 may comprise, within itsSOM 130 ofsecure agent 198, a TLS/SSLhandshake support module 103, which may utilize using the client certificate or password of the user. Additionally,application support API 133 may similarly be implemented withinserver 101, instead of withindevice 100. In the server-based architecture,mobile device 100 need not necessarily include TLS/SSL support module 151 and/or augmented TLS/SSL library 131. Rather, instead of utilizing its own augmented TLS/SSL library 131,mobile device 100 may be assisted by TLS/SSLhandshake support module 103 ofserver 101, which may provide services generally similar to augmented TLS/SSL library 131. - In
system 200, the HLOS ofdevice 100 may further comprise aserver interaction module 104 for interacting withserver 101.Server interaction module 104 may run in HLOS 120 (sincedevice 100 may not comprise a usable SEE), and may utilize data and control-flow obfuscation to protect its logic and data.Server interaction module 104 may utilize a device internal key 105 that may be shared withserver 101 to protect communications exchanged betweenserver interaction module 104 ofdevice 100, andremote server 101. Other keying schemes, such as Public Key Cryptography, may similarly be used. Deviceinternal key 105 may be securely provisioned, or may be generated bydevice 100 in a pre-defined secure manner. - In
system 200,SPEM 142 may be included inSOM 130 withinsecure agent 198 ofserver 101, and may operate by connecting (e.g., over a communication network) to asecure playback component 199 ofdevice 100.Rewriter 132 may reside onserver 101, instead of withindevice 100; andHLOS 120 ofdevice 100 may utilizeserver interaction module 104 to interact withserver 101 which may perform the required rewriting. - In
system 200,encryption module 143 anddecryption module 144 may be part ofHLOS 120 ofdevice 100, which may be implemented in a logic-obfuscated form and/or with data-obfuscation. These modules may communicate securely with a suitable module inserver 101 which sends the encryption/decryption key, or data from which key material can be derived, toencryption module 143 and todecryption module 144 for them to operate. - Accordingly,
server 101 may cause the authentication of the user (sinceSPEM 142 runs withinsecure agent 198 of server 101), and may then send the correct key todevice 100, in a protected manner, such thatencryption module 143 and/ordecryption module 144 and/orencrypted partition manager 197 may utilize the key withindevice 100. - In
system 200, key generation may be performed bykey generator 145 onserver 101, which may also handle secure storage.System 200 need not comprise and/or need not utilize any SEE onmobile device 100. For example, for secure password entry, a local HLOS application withindevice 100 may invoke aSPEM application 142 onserver 101, which in turn may generate a DRM-encrypted video or image representing a scrambled PIN pad that is communicated to HLOS, which uses a secure playback component to render the video onto touch-screen 152, capturing keystrokes (as touch-event coordinates) and sending them back toserver 101 for secure correlation with the scrambled keys represented in the scrambled PIN pad. In some embodiments, the PIN pad may not be scrambled, but rather, may be conveyed in a suitable method that prevents an entity or module, which is capable of capturing touch events, from determining the entered PIN or password. -
Server 101 may receive fromdevice 100 the Service Certificate (for validation by SPservice certificate validator 183 within server 101), as well as other contextual data. - The present invention may include a process of website enrollment using secure password authentication. The process may allow a user of a mobile device to enroll a new website for secure authentication using the Secure Operations Module (SOM) of the present invention, when authentication is performed using a password (rather than by using a client certificate).
- The user of the mobile device may navigate to a new website (for example, https://www.Bank.com) using a web browser application running on the mobile device. The browser may detect that the URL contains an “https” prefix, indicating a secure connection; and the browser may thus initialize TLS/
SSL integration library 193 of secure TLS/SSL Support Module 151. - TLS/
SSL integration library 193 may query its enrolled-sites database, and may detect that this particular website has not been enrolled yet. TLS/SSL integration library 193 may query its (non-persistent) cache of non-enrolled-websites; and may detect that this particular website is not listed. The non-enrolled-sites cache may prevent repeated enrollment tests for non-participating websites. - TLS/
SSL integration library 193 may fetch the Service Certificate of the website, from a URL associated with the website (e.g., from http://www.Bank.com/SecureMobileCertificate), and may pass the certificate so to verify the validity of the fetched Service Certificate by TLS/SSL support library 131. For example, certificate signature may be checked against a reference public key that may be hard-coded inSEE 140 or inremote server 101, and only then, the format and the expiration may be verified. Alternatively, Online Certificate Status Protocol (OCSP) or other suitable protocols for obtaining revocation status may be used. - The user may be asked by
website enrollment module 137 for the user's confirmation or permission to enroll the website; and the user may indicate his approval by tapping, clicking, selecting, or otherwise engaging with a suitable UI element displayed ondevice 100. - TLS/
SSL support library 131 may add this website to the secure enrolled-websites database 138, and may enable the use of secure TLS for this website on thisdevice 100. For example, for each service that is enrolled, there may be a record insecure storage 149 that contains data from the certificate (e.g., pinning information), and the user credentials that the user entered when enrolling (e.g., a client certificate or credentials to be used with rewriter 132). When the user enrolls for a website with a Service Certificate, these data items may be populated into that record withinsecure storage 149; and subsequently, when the user logs in again to a site or service with such data present, the data may be obtained from that record and may be used automatically. - The browser may fetch the website's log-in page, and may display it to the user on
device 100. The user may enter his login details (e.g., the username and password that the user utilizes in order to access that website) on the login form, and may command the browser to submit the login details to the website. - If the Service Certificate so indicates, then the user may be requested or prompted to enter the login details on a secure UI supporting an alphanumeric keypad (e.g., an on-screen keypad or an on-screen keyboard). The user may securely enter his login details, in a manner that prevents interception of the login details by code running over the HLOS.
- The browser may ask TLS/
SSL support library 131 to save confidential credential information for this website, along with a User-ID selected by the user. The confidential credential information may be stored insecure storage 149 viaSSM 141, and may comprise, for example, the form field(s) having a type of “password” (or, optionally, all the form fields of the login page of the website). The browser may save (e.g., insecurely) non-confidential fields in its local form-data history database. It is noted that the User-ID mentioned is not the “username” that the user may have associated with the website, but rather, the User-ID may be selected by the user from a list presented to the user (e.g., this option may be used if the mobile device is shared by multiple users). - TLS/
SSL support library 131 may issue a Secure Password Entry request toSPEM 142, listing the site domain (“Bank.com”) and certificate Common Name (CN) as well as a first-enrollment indication. In response to the enrollment request, the user may enter his password. Then, the confidential data may be permanently filed bySSM 141 in secure storage. It is noted that in some embodiments, firstly, the user may enters his “real” password (the password that the user defined to log-in for the website, not necessarily via mobile devices), to have it recorded withinmobile device 100; whereas in the current step, the user may input a secondary password or a PIN (using a secure PIN entry interface) to acknowledge and initiate the login. - The browser may submit the form data to the website, over the TLS/SSL connection. The browser may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation. The session may then continue without requiring additional operations from TLS/
SSL support library 131 ofTLS support module 151, as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed in the HLOS library by TLS/SSL integration library 193. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error. - It is noted that dis-enrollment may be implemented by using a UI which shows to the user a list of the services and/or websites for which he already enrolled, and which allows the user to select an item on that list and request removal or deletion, upon which, the appropriate record may be deleted from
secure storage 149. In some embodiments, the user may modify his mobile PIN or password for a previously-enrolled website or service, through a dedicated UI component or process, or by dis-enrolling the website (or service) and then enrolling it again with a new password or PIN. It is further noted that if the user changes his password that is used for logging-in into the website (or service), not necessarily in connection with mobile devices, then automatic login throughSOM 130 ofdevice 100 may fail, and the user may need to dis-enroll and then re-enroll the website through hismobile device 100 in order to commit the new password intosecure storage 149. - The present invention may further include a process of user login into a previously-enrolled website, by utilizing secure password authentication in accordance with the present invention.
- The user of the mobile device may navigate to the previously-enrolled website (for example, https://www.Bank.com) using a web browser application running on the mobile device. The browser may detect that the URL contains an “https” prefix, indicating a secure connection; and the browser may thus initialize TLS/
SSL integration library 193. - TLS/
SSL integration library 193 may query its enrolled-sites database, and may detect that this particular website has already been enrolled. TLS/SSL integration library 193 may fetch the Service Certificate of the website, from a URL associated with the website (e.g., from http://www.Bank.com/SecureMobileCertificate), and may trigger the verification of the validity of the fetched Service Certificate. The Service Certificate may be fetched or obtained from any other location, or may otherwise be available to the device. - TLS/
SSL integration library 193 may issue a Secure Password Entry request toSPEM 142, listing the site domain (“Bank.com”) and certificate Common Name (CN). In response to the enrollment request, the user may enter his password. - TLS/
SSL integration library 193 may enable high-security. In some embodiments, for example, the present invention may provide an augmented TLS implementation in the HLOS, which may know how to use assistive libraries for TLS that run inSEE 140, e.g., TLS/SSL support library 131. In a non-secure mode (or low confidentiality mode), the TLS library of the HLOS may operate similar to a conventional TLS library, except that the handshake may be performed by using the TLS/SSL support library 131 ofSEE 140. In secure mode (or high confidentiality mode), the TLS library of the HLOS may utilize TLS/SSL support library 131 for encryption and decryption of the session traffic as well. A flag or other parameter, indicating the confidentiality mode, may be set or modified by the application (or browser) that utilizes TLS; and the Service Certificate may indicate (or may force) what the value should be, such that the application may not be able to change it. For example, the application may decide to request TLS to work in non-secure mode (low confidentiality mode), unless the Service Certificate dictates that this application should remain in secure mode (high confidentiality mode). - The browser may fetch the website's log-in page, and may display it to the user on
device 100. Optionally, the browser may fetch default values of one or more non-confidential fields, e.g., from the browser's local form-data database. - The browser may insert mock values into the confidential fields, e.g., if such operation was indicated by data in the Service Certificate.
- The user may command the browser to submit the login details to the website. The browser may send the login form to the website over the TLS/SSL connection. During the sending process, when the browser reaches a confidential field, instead of writing its own (mock) values, the browser may request TLS/
SSL support library 131 to use the values already recorded in its secure storage database. It is noted that in some implementations, the browser may be a web-browser or other client-side application, modified or adapted to utilize he services of TLS/SSL support library 131. -
Rewriter 132 may rewrite the submitted HTML page, such that it contains the true credentials from the database of TLS/SSL support library 131 instead of the mock values. TLS/SSL support library 131 may encrypt the submitted page, similar to the way it encrypts other records over TLS/SSL. - It is noted that the browser may communicate with TLS/
SSL integration library 193 in the HLOS, which in turn utilizes services from TLS/SSL support library 131 inSEE 140. For example, TLS/SSL integration library 193 in the HLOS may request TLS/SSL support library 131 inSEE 140 to insert the credentials; and TLS/SSL support library 131 inSEE 140 performs the handshake with the remote server using data sent and received throughTLS integration library 193. It is further noted that in high-confidentiality mode, TLS/SSL support library 131 inSEE 140 performs session encryption; whereas in low-confidentiality mode,TLS integration library 193 may perform session encryption. - The browser may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation. The session may then continue without requiring additional operations from TLS/
SSL support library 131 ofTLS support module 151, as all TLS key-exchange (i.e., handshake) operations may be performed in the SEE, while record payload protection may be performed in the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error. - The present invention may also include a process of enrollment of an application for using secure password authentication, in accordance with the present invention. The process may allow a user of a mobile device to enroll an application (or other application which may be accessible or run through a web browser) for secure authentication using the Secure Operations Module (SOM) of the present invention, when authentication is performed using a password (rather than by using a client certificate). It is noted that the term “application” may include, for example, a software application which may be at least partially installed locally (or may otherwise reside locally) on the mobile device, and/or may run at last partially on the mobile device, and/or which may require communication of the mobile device with a remote server, externally of a web browser.
- The user of the mobile device may launch the application. The application may initialize TLS/
SSL integration library 193, as well as TLS/SSL support library 131 of secure TLS/SSL Support Module 151; and may inform TLS/SSL support library 131 of its cloud server address (example, http://www.Bank.com). In some implementations, the local application may communicate withTLS integration library 193 of the HLOS, which in turn may check whether the service is enrolled (e.g., may check directly, or may request TLS/SSL support library 131 inSEE 140 to check). - For example, if the service is not enrolled,
TLS integration library 193 of the HLOS may attempt to fetch the Service Certificate. Alternatively, TLS/SSL support library 131 may query its enrolled applications database, and may detect that this particular application has not been enrolled yet. TLS/SSL support library 131, through TLS/SSL integration library 193, may fetch the Service Certificate of the service, from a URL associated with the service (e.g., from http://www.Bank.com/SecureMobileCertificate), or from another suitable location or repository of Service Certificate(s), and may verify the validity of the fetched Service Certificate. - TLS/
SSL support library 131 may add this application to the secure enrolled-applications database, and may enable the use of SEE-enabled TLS for this application on thisdevice 100. - The application may obtain from the user his login details (e.g., username and password), through an on-screen UI presented by the application, or through a secure UI associated with TLS/
SSL support library 131. - If the Service Certificate so indicates, then the user may be requested or prompted to enter the login details on a secure UI supporting an alphanumeric keypad (e.g., an on-screen keypad or an on-screen keyboard). The user may securely enter his login details, in a manner that prevents interception of the login details by code running over the HLOS.
- The application may ask TLS/
SSL support library 131 to save confidential credential information for this application, along with a User-ID selected by the user. The application may indicate to TLS/SSL support library 131 which field(s) or data-item(s) require secure storage (e.g., only the user password, or other data-items too); and the content of the required field(s) may be stored. - TLS/
SSL support library 131 may issue, through TLS/SSL integration library 193, a Secure Password Entry request toSPEM 142, listing the name of the application (e.g., “Bank.com”) and certificate Common Name (CN) as well as a first-enrollment indication. In response to the enrollment request, the user may enter his password. The application may submit a login request (e.g., using Simple Object Access Protocol (SOAP), using JavaScript Open Notation (JSON) standard, or the like) to the server of the application, over the TLS/SSL connection. - It would be appreciated that TLS/
SSL integration library 193 may operate in order to cause secure modules of the system to perform one or more tasks. As a demonstrative example, augmented TLS/SSL library 131 may be a secure library withinSEE 140, but augmented TLS/SSL library 131 may not operate unless or until it is triggered, for example, by TLS/SSL integration library 193 which may provide the input to augmented TLS/SSL library 131 and may receive the output from augmented TLS/SSL library 131. For example, two secure modules withinSEE 140, may not directly communicate between themselves, but rather, may require the indirect operation of TLS/SSL integration library 193 which may facilitate the required process (e.g., verifying a certificate, such that TLS/SSL integration library 193 may open a network socket, obtain the certificate, and pass it as a parameter to augmented TLS/SSL library 131; or, when augmented TLS/SSL library 131 requires triggering of PIN entry bySPEM 142, augmented TLS/SSL library 131 may report such requirement as a response to TLS/SSL integration library 193, which in turn may triggerSPEM 142 to operate). - Optionally, the application may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation. The session may then continue without requiring additional operations from TLS/
SSL support library 131, as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed by the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error. - The present invention may additionally include a process of user invoking a previously-enrolled application, by utilizing secure password authentication in accordance with the present invention.
- The user of the mobile device may launch the application. The application may initialize TLS/
SSL integration library 193; and may inform TLS/SSL integration library 193 of its cloud server address (example, https://www.Bank.com). - TLS/
SSL support library 131 may query its enrolled applications database, and may detect that this particular application has already been enrolled. - TLS/
SSL support library 131 may, in combination with TLS/SSL integration library 193, fetch the Service Certificate of the application, from a URL associated with the application (e.g., from http://www.Bank.com/SecureMobileCertificate), and may verify the validity of the fetched Service Certificate. - TLS/
SSL support library 131 may issue a Secure Password Entry request toSPEM 142, listing the name of the application (e.g., “Bank.com”) and certificate Common Name (CN). In response to the enrollment request, the user may enter his password. - TLS/
SSL support library 131 may enable high-security operation (e.g., SEE-enabled TLS). - The application may submit a login request (e.g., using Simple Object Access Protocol (SOAP), using JavaScript Open Notation (JSON) standard, or the like) to the server of the application, over the TLS/SSL connection. During the submission process, when the application reaches a confidential field (e.g., password field), the application may request TLS/
SSL support library 131 to insert the credentials values that are securely stored locally in the application-database.Rewriter 132 may rewrite the submitted request, prior to sending it to the remote server, such that the submitted request includes (in the fields or places indicated by the application, or indicated in the Server Certificate) the true credentials values obtained from the local application-database. TLS/SSL support library 131 may encrypt the submitted request, similar to the way it encrypts other records over TLS/SSL. - The application may receive a response from the remote server over the TLS connection, and may save the session information (e.g., by utilizing a “cookie” or other mechanism).
- Optionally, the application may switch the TLS connection to lower-confidentiality mode, resulting in a key renegotiation. The session may then continue without requiring additional operations from TLS/
SSL support library 131, as all TLS key-exchange operations may be performed in the SEE, while record payload protection may be performed by the HLOS library. For example, an attack presenting certificate parameters that are different from the enrolled version, may result in an error. - Some embodiments of the present invention may optionally include, for example, general-purpose key secure storage. For example,
SSM 141 which may be used for storing client certificates, passwords, and symmetric keys, may further be used for storage of general-purpose key material, e.g., as symmetric keys and/or asymmetric keys. Some embodiments of the present invention may optionally include, for example, key provisioning. This may allow, for example, secure over-the-air provisioning of key material directly from service providers toSSM 141. Some embodiments of the present invention may optionally include, for example, crypto-token capabilities. Such capabilities may allow performing authentication and digital signature computation operations using the above-mentioned key material. The above-mentioned features of some embodiments of the present invention may extend the functionality of the Secure Operations Module to a general-purpose remotely-provisioned crypto-module that may serve all authentication and authorization needs of a wide range of service providers, not necessarily using TLS/SSL connections. - In some implementations, enrollment may be performed over a website, which may then send the enrollment information to
device 100, and may directly insert the data into the secure storage. Similar to a way in which a service provider may utilize a provisioning protocol to insert keys into a secure storage, the service provider may utilize a similar mechanism to store into the secure storage the values inserted to it by the user enrollment process described above. Accordingly, the user may not need to perform service enrollment, because enrollment may be performed without his action. - Reference is made to
FIG. 3 , which is a schematic flow-chart of a method of authenticating a user at a Point of Sale (PoS) terminal of a merchant or vendor, in accordance with the present invention. The PoS terminal may comprise, for example, a terminal having a touch-screen which may be operably associated with a payment card reader. - The PoS terminal may display on the touch-screen a scrambled PIN interface (block 310). The user may swipe a payment card through the card reader (or, may insert the payment card into the card reader) (block 320). The user may enter his PIN through the scrambled PIN interface (block 330). The entered PIN may be checked (block 340), for example, against the payment card or against a server of the payment card issuer (e.g., per the EMV standard or other suitable standard). The term “swipe” as used herein may comprise, for example, an action of sliding a payment card through a card reader; inserting a payment card into a card reader and/or removing a payment card from a card reader; creating contact between a payment card and a card reader; or otherwise performing an action which causes the card reader to read data (e.g., from a magnetic stripe or a chip) of the payment card.
- In an alternate embodiment of the present invention, the user may swipe the payment card in a card reader as above; but then, the user may enter his PIN on his own mobile device (rather than on the merchant's terminal), and may utilize a scrambled PIN interface on his own mobile device for PIN entry; and the user's mobile device may then send the PIN, in an encrypted form, to the card issuer as above, may receive a response, and may send the confirmation code (e.g., encrypted) to the merchant's payment terminal. Other suitable operations or methods may be used.
- In other embodiments of the present invention, the entered PIN may not be verified by the card issuer, but rather, by the payment card itself, for example, based on EMV card verification standards or methods. In such case, the PIN may be encrypted and may be passed to the payment card, which in turn may perform the check and may send back the verification response. In some embodiments of the present invention,
mobile device 100 may not even be capable of “knowing” the correct PIN; rather,mobile device 100 may be trusted only with receiving the user's input, encrypting it, and transferring it for verification purposes to another module external tomobile device 100. - The Secure Password of the present invention may be implemented by utilizing a security model comprising assets such as, for example, a PIN, a password, a client certificate (Client-Cert), an application key (App-Key), Service Accreditation Data, and Internal Root-of-Trust (ROT). The security model may be used to implement a system aimed at securely authenticating a human user and his intent to perform an authentication action that involves one of his securely stored credentials, as well as to carry out this authentication action.
- The PIN may allow a user with a given User-ID to authenticate himself and his intent to authenticate. The password may be one or more textual credential(s) used to authenticate a user of a given User-ID to a service provider with a given Provider-ID; the password asset may typically be a user-identifier and/or a user-designated password.
- The Client-Cert may be a client X.509 certificate used to authenticate a user with a given User-ID to a server associated with a given Service-ID, over the TLS/SSL protocol (if supported by the service). App-Key may be a locally generated symmetric key for a user of a given User-ID and an application associated with a given Service-ID; used by the application to protect locally-stored data.
- Service Accreditation Data may be a structure containing values that indicate the accreditation of a service provider to use a given Service-ID, properties of the server certificates used in TLS, and related parameters. Internal ROT may be an internal symmetric key stored in
SEE 140, which may serve as the ROT for secure storage. - The present invention may require that the platform include a Secure Execution Environment (SEE). The SEE may be, for example, an environment provided by ARM TrustZone, possibly in conjunction with a Secure OS. Code running in the SEE may be protected against being modified (in run-time, as well as in storage); may be protected from having its control flow tampered with; and may be protected from having its runtime state (including data) revealed or altered by an attacker.
- The present invention may require that the platform include a secure Root-of-Trust (ROT). For example, it may be required that a secret symmetric key of adequate entropy be available to the secure code of the Secure Password solution, in a way that it may not be revealed to (or modified by) another entity or another application, on the mobile device or outside the mobile device. The ROT key may be used to facilitate the secure storage that the Secure Password solution may utilize.
- The present invention may further require that the mobile platform include a Secure Video Path, which may allow code running within the SEE to produce and transmit media content (images and/or videos) that may be rendered on the device screen, in full screen, without having the media exposed and/or tampered with by code running on the HLOS (e.g., another local application, or a malware module).
- The present invention may be able to protect a mobile device, a communication system, and/or a user of a mobile device, from one or more suitable types of attackers or attacking entities, such as, for example: a permanent illegal possessor of the mobile device (e.g., a thief who stole the mobile device; a person who found a lost mobile device and does not return it to its legal owner); a transient illegal possessor who obtains temporary illegal custody of the mobile device (e.g., if the mobile device is left unattended for a few minutes); a generic malware module which may infest the mobile device (e.g., tailored to attack particular application(s), but not a particular user); a targeted malware module (e.g., tailored to attack a particular user); and/or other suitable types of attackers or attacks (e.g., a man-in-the-middle attacker, a “phishing” attack, a side-channel attack, or the like).
- The present invention may be able to protect against various types of attacks, for example, offline attacks, runtime attacks, and/or API attacks. An offline attack may involve reading or altering values not through the execution environment of the device (e.g., not through the services provided by the mobile device, its CPU, or the like, for executing code), but rather using bypass means. An offline attack may include, for example, reading flash memory directly using a physically-connected controller when the device is powered off. A runtime attack may involve access to assets through the execution environment of the mobile device, yet outside the intended API of the Secure Password; for example, running a debugger to reveal contents of memory (RAM) or CPU registers; modifying the code that the execution environment performs, such as by replacing part of the code (applications and/or OS), re-flashing the device, or the like. API attacks may involve access to assets through the intended interfaces implemented by the Secure Password, but with an intent that differs from that assumed by the system design; some API attacks may be mounted without changing any of the code running on the mobile device.
- The PIN asset may be protected against offline attacks. For example, the PIN may be protected against access that is not through the code running on the mobile device by the use of secure storage.
SSM 141 may utilize an internal ROT key, which may be present and secured by the platform, to secure the data. The secure data may be protected against disclosure, as well as against illegal alteration.SSM 141 may run inSEE 140 facilitated by TrustZone. The secure storage may not store decrypted data other than in RAM, which may be accessible only by code running inSEE 140. Therefore, there may be no trace of decrypted secure storage data available when the device is powered off. - The PIN asset may be protected against runtime attacks. PIN values may only be available inside
SEE 140, which protects its logic and intermediate data. PIN values may be entered intoSEE 140 by utilizingSPEM 142; furthermore, PIN values may never be produced as output, other than in encrypted form. A PIN value may be first initialized by a human attacker (e.g., a “Permanent Illegal Possessor” attacker, or a “Transient Illegal Possessor” attacker) to a value of his choice, if a Control PIN is not used (e.g., an initial PIN that may be securely communicated to the legitimate owner of the mobile device, for example, on the packaging of the mobile device upon purchase, or in the paper documents provided with the mobile device upon purchase). The request for a correct PIN upon registration of new services may be intended to alert the user to such a situation, and to prevent other assets from being collected if the mobile device is in a state where the PIN set is not the one known to the user. - The PIN asset may be protected against API attacks. PIN values may be only accessible through APIs that set them, re-set them, check them against an entered value to provide a match or no-match response, or output in an encrypted form. Resetting a PIN may be performed only once the user is securely authenticated using the existing PIN; enforced by code running in
SEE 140, such that it may not be not possible, through the publicly available interface, to reset the PIN without correctly entering the currently-set PIN. An initial PIN may be set by utilizing a Control PIN as described above. It is noted that PIN values may typically be susceptible to brute-force guessing attacks; however, in accordance with the present invention, PIN entry may only occur throughSPEM 142 which utilizes the Secure Video Path. Accordingly, PIN guessing may only be performed manually, by a human interacting withmobile device 100 through its touch-screen unit. This may strictly restrict the ratio at which guessed PINs may be entered. Some implementations may further utilize a throttling function to restrict the number of PIN trials submitted per a time unit (e.g., per minute, per hour, per day). - The password asset may be protected against offline attacks. For example, textual credentials may be protected against offline attacks by being stored in the secure storage facilitated by
SSM 141. The password asset may further be protected against runtime attacks. For example, textual credentials may only be available insideSEE 140, once they were entered.SEE 140 may protect the logic and intermediate data of any code that processes these credentials. - In some implementations, unless otherwise indicated by the Service Certificate, textual credentials that are entered by the user for the first time may be entered using the native device interface functions (e.g., an on-screen keyboard), where they might be captured by malware that may be positioned to capture such inputs. To mitigate this risk, the Service Certificate may indicate that such details (e.g., a textual or alphanumeric password) should be entered by using the more secure scattered (or scrambled) on-screen alphanumeric keyboard, in which characters appear in scattered or random places or appear to be out-of-order relative to a typical (QWERTY) keyboard.
- The password asset may be protected against API attacks. For example, passwords and other user textual credentials may never be exported from the logic of the Secure Operations Module; they may only be entered into, and used within, the Secure Operations Module.
- Usage of textual credentials may be supported only by incorporating them into an existing TLS/SSL session, through an operation that may not cause them to exit
SEE 140 in plaintext form. There may thus be no perceived way of recovering the plaintext of those credentials from the encrypted TLS/SSL stream. - Textual credentials could theoretically be captured by causing the TLS handshake to be carried out using a server public key of which the private counterpart is known to the attacker. However, this attack may be blocked by the accreditation process that server keys go through; a credential may only be encrypted for a server which uses the same public key of the server with which the password was first enrolled, and which was approved to use the Secure Password service, thereby blocking “phishing” attacks against the user of the mobile device.
- The Client-Cert asset, e.g., user private keys that are associated with TLS client certificates, may be protected against offline attacks. For example, user private keys may be stored in the secure storage facilitated by
SSM 141. The Client-Cert asset may also be protected against runtime attacks, as user private keys may only be used in the TLS/SSL handshake process, which is performed by TLS/SSL support library 131 that runs inSEE 140. Therefore, client certificate data (e.g., the user's private key), may never be made availableoutside SEE 140, where it is protected. - The Client-Cert asset may be protected against API attacks, as user private keys may not be served by any API function published by the secure code. Services may only be provided for using loaded private keys for TLS/SSL handshake computations, which may not reveal information from which a private key can be deduced, guessed, or reverse-engineered.
- Application Keys, e.g., application symmetric keys for secure local storage, may be protected against offline attacks, by being stored in the secure storage facilitated by
SSM 141. Application Keys may further be protected against runtime attacks. For example, application keys may be used for encryption and decryption of application data, using encrypt and decrypt functions that may be implemented only within SEE 140 (this may not be applicable to a server-based implementation). Therefore, the application keys may never be available outside ofSEE 140. Furthermore, in contrast with other security assets, the application keys may be locally generated withinSEE 140, and thus they may not even be susceptible to interception during their initial provisioning. - Application keys may be protected against API attacks. The module of Secure Password that provides encryption and decryption services may be the only module having access to the application symmetric keys. Its only interface may be for encryption and decryption using application keys, and it may support no interface for input or output of application keys, neither in plaintext nor in encrypted form. The ciphers and modes that may be used with the application keys may be resistant to known and chosen plaintext attacks, making it unfeasible to deduce the application keys from the results that the interface may emit.
- Service Accreditation Data, pertaining to accreditation of services and applications, may be protected against offline attacks, by being stored in the secure storage facilitated by
SSM 141. Service Accreditation Data may further be protected against runtime attacks. For example, Service Accreditation Data may control the authorization of a service provider, associated with a Service-ID. The authorization may include association of the Service-ID with certain public keys that may be part of the Service-ID's TLS/SSL certificates, as well as information pertaining to its local applications, their identities, and their right to use local data encryption. - The Service Accreditation Data may contain, for example: (a) identity of the service, or indication that this identity is to be obtained from the TLS certificate; (b) information on the rights of the service to use the technology on the mobile device, for example, indication that local data encryption with a specific application key is to be supported; and (c) a specification resembling a query, or indications of condition(s), which may determine which TLS certificates of the server are allowed to be accepted. For example, the augmented TLS library may use the TLS certificate only if the TLS certificate was issued by a particular issuer, or only if the TLS certificate contains a particular public key, or other suitable condition(s).
- Service accreditation data may be sensitive in terms of integrity and authenticity, but not in terms of confidentiality; and thus service accreditation data may only need to be protected against illegal alteration. The service accreditation data may mostly be stored outside of
SEE 140, and some of the service accreditation data may be obtained or transferred over a network (e.g., as part of the Service Certificate). However, all consumers of the service accreditation data may be modules running withinSEE 140, and these modules may verify the authenticity of the service accreditation data prior to using it, using a hard-coded public key. The public key for verification may be pinned to the implementation code of the Secure Operations Module, which may be protected viaSEE 140. As a result, each element of the set of elements referred to as “service accreditation data” may be verified before it is used, by logic and reference key material which may be protected bySEE 140. No system components rely on the service accreditation data that are not running withinSEE 140. - Service accreditation data may be protected against API attacks. Due to its non-secrecy, the only threat to service accreditation data may be illegal alteration. All service accreditation data may only be read by components of the Secure Password module; and therefore, no interface may be provided which supports alteration of the service accreditation data, neither legally (by the user) nor illegally (by an attacker).
- The Internal ROT asset for secure storage may be protected against offline attacks, as a requirement from the platform of
device 100. The Internal ROT may be protected against runtime attacks, as the Internal ROT may only be used bySSM 141, which itself may run only withinSEE 140. The Internal ROT may thus never be exposed outside ofSEE 140. - The Internal ROT may be protected against API attacks, as there may be no direct interface to Internal ROT key. The Internal ROT key may only be provided by the platform within
SEE 140, and the Secure Password module may support no functionality of access to the Internal ROT key. The Internal ROT key may be only used internally withinSEE 140 bySSM 141. - Reference is made to
FIG. 4 , which is a schematic block diagram illustration of a terminal 400 capable of secure PIN entry, in accordance with the present invention.Terminal 400 may be generally similar tomobile device 100 ofFIG. 1A , or may be other suitable device, for example, a mobile handset, a cellular phone, a smartphone, a PDA, a tablet, a device having a touch screen, a portable or handheld device, a laptop computer having a touch-screen, a desktop or tablet computer having a touch-screen, or the like.Terminal 400 may comprise, for example,SEE 140 and a touch-screen 402.SEE 140 may be able to securely execute code which may cause touch-screen 402 to render and display a scrambledPIN layout 403 representing (e.g., as an image, or a sequence of images, or a video) a scrambled on-screen keypad (or a scrambled virtual keypad); and touch-screen 402 may be able to receive user input, e.g., from a user who may touch, click, tap, or otherwise select key(s) from the scrambled on-screen keypad displayed as scrambledPIN layout 403 on touch-screen 402.SEE 140 may further be able to securely execute code which may cause touch-screen 402 to display a user-selectedauthenticity assurance image 406. For demonstrative purposes, and for purposes of clarity,authenticity assurance image 406 is depicted to be displayed on touch-screen 402 near or next to scrambledPIN layout 403. However, in some implementations,authenticity assurance image 406 may be displayed as a background image, a grayed-out or “washed” image, or an overlaid image or overlaid layer, below or above scrambledPIN layout 403, or as an image which partially or entirely overlaps with scrambled PIN layout. - For demonstrative purposes, scrambled
PIN layout 403 is depicted as a keypad of 10 digits which are out of their numeric order and are not in a the order used in a conventional keypad. In some implementations, scrambledPIN layout 403 may be depicted using other suitable representations, for example, as four (or other number of) jack-pot wheels or slot-machine wheels, each wheel able to spin around its center and rotate among the digits “0” through “9”, thereby representing a four-digit combination; with the initial combination being set to a random or pseudo-random value each time that scrambledPIN layout 403 is invoked. Other suitable types of representations or selection mechanisms may be used. -
SEE 140 may comprise a Routine for Secure PIN Entry (RSPE) 404, which may be able to randomly or pseudo-randomly generate thePIN layout 403 displayed on touch-screen 402, and may be able to recognize the on-screen keys selected by the user via touch-screen 402. -
Terminal 400 may allow secure data entry by a user, and particularly secure entry of a PIN or a password using the scrambled on-screen keypad (or a similar scrambled on-screen keyboard). Furthermore, terminal 400 may allow secure entry and secure communication of passwords and PINS by utilizing the scrambled virtual keypad (or scrambled virtual keyboard) in conjunction with a Secure Video Path (SVP) 405. Accordingly, the combination ofSVP 405 with touch-screen 402 showing a scrambled on-screen keypad may allow secure PIN entry which may be more resistant to some types of attacks. It is noted thatSVP 405 may be used for transporting both (or at least one of) the scrambled PIN layout and/or the authenticity assurance image. -
SEE 140 may allow execution of code which, as part of its operation, requires the entry of a PIN by a user. The code that runs inSEE 140 may compriseRSPE 404, which may be protected from certain types of interference by being securely executed bySEE 140.RSPE 404 may generate scrambledPIN Layout 403, as an image or a video comprising at least icons representing characters that may be used for PIN entry (e.g., numeric digits, alphanumeric characters, characters or symbols that appear in a standard QWERTY keyboard, or the like). -
PIN Layout 403 may include a scrambled or pseudo-random collection of images of keys, in a layout that differs from a standard QWERTY layout or a standard keypad layout. ScrambledPIN layout 403, or, a different ScrambledPIN layout 403, may be generated whenever a PIN is required to be entered by a user and processed byRSPE 404. - Optionally,
RSPE 404 may comprise a module to generateauthenticity assurance image 406, which may be presented to a user before the user enters the PIN.Authenticity assurance image 406 may comprise an image, a video or a text, and may be recognizable by the user (e.g., may match a pre-designated image previously defined by the user as an authenticity assurance image). -
RSPE 404 may generate scrambledPIN layout 403 and/orauthenticity assurance image 406 such that the image(s) comprise a representation of a value to be accepted by a user that enters the PIN. Prior to the entry of a PIN by the user,RSPE 404 may display to the userauthenticity assurance image 406 overSecure Video Path 405. The user may deduce, from recognition of the representation inauthenticity assurance image 406, the authenticity of the display, and in turn the user may deduce the authenticity of RSPE 404 (e.g., rather than suspecting thatPIN layout 403 is presented by a “phishing” attacker or by a mock website). - RSPE may display the value to be accepted by the user along with
authenticity assurance image 406. - According to some demonstrative embodiments of the present invention,
RSPE 404 may cause touch-screen 402 to display scrambledPIN layout 403 andauthenticity assurance image 406 simultaneously.RSPE 404 may display the value to be accepted by the user simultaneously withPIN Layout 403 andauthenticity assurance image 406. Optionally, a user may be presented with an option of aborting the operation (e.g., the PIN entry process) at any point until a PIN is fully entered and/or submitted by the user. - The user may enter a PIN by selecting the suitable icons or keys which may be displayed, in a scrambled manner of in an out-of-order manner, on touch-
screen 402, as such icons or on-screen keys are visible to the user from the display of scrambledPIN layout 403. The selection process causes touch events to be triggered onterminal 400, the touch events conveying positions that are touched by the user on touch-screen 402. The location(s) of touched positions as conveyed by the touch events may be provided by a suitable code running onterminal 400 toRSPE 404. Accordingly,RSPE 404 may use its locally-stored data describing scrambledPIN layout 403 to map the touched positions into the corresponding icons or keys that were selected, and may map them further to the matching symbols that were selected.RSPE 404 may output the sequence of selected symbols, in the order they were selected by the user via the scrambled on-screen keypad. An application running onterminal 400, and particularly an application running withinSEE 140, may then perform operations (e.g., a login process; an authentication process) based on the PIN securely entered by the user. - Some embodiments of the present invention may include or may utilize other suitable architectures, or may utilize modules which may be located in other devices, for example, in a remote server and/or externally to the mobile device or the payment terminal. In a demonstrative implementation, for example,
SEE 140 andRSPE 404 may reside on a remote server, rather than being included withinterminal 400. Other suitable architectures may be used. - The present invention may further include a method and system for selecting and/or modifying an authenticity assurance image, which may also be referred to as a Personal Security Image (PSI). In some implementations, the user of the mobile device may select an image from the HLOS (e.g., from a local repository or “image gallery”), or may capture an image using a camera of the mobile device; and may then securely perform one or more image modification operations by utilizing a secure interface running securely within the SEE, thereby generating a truly unique PSI that only the user may recognize and that may not be intercepted or captured while it is being generated by the user. The image modification operations may include, for example, modification of color(s), brightness, darkness, contrast, saturation, hue, light level; color replacement (e.g., replace blue with green); image distortion; applying a filter to an image; or otherwise modifying or transforming the image from its original form, or otherwise modifying one or more visible properties of the image. In accordance with the present invention, the user may modify the PSI in a secure subsystem (the SEE) of the mobile device, even if the PSI was originally selected by the user (or captured by the user) over a GUI that is not necessarily secure.
- In other implementations, the user may select the PSI from a pre-defined collection of images which may be available for selection at a remote website or server, and may then locally and securely modify the selected PSI, which may then be securely uploaded back to the remote website or server. This may allow the user to select a pre-defined PSI that was created by a third party, but to also introduce to such PSI a unique modification that only the user is aware of. A malware module which may run on the mobile device, and may possibly capture the selection of the PSI from the collection of pre-defined PSI items, may not be able to capture the image modification operation(s) that are performed by the user within the SEE, and may not be able to capture the modified image which may be transported securely from the SEE to the remote server.
- Reference is made to
FIG. 5 , which is a schematic block diagram illustration of asystem 555 comprising atransaction server 533 and apayment terminal 500, in accordance with the present invention.System 555 may demonstrate secure interface binding, in accordance with the present invention, and may be used for payment to a merchant or vendor by a customer utilizing a payment card (e.g., credit card, debit card, magnetic stripe card, check-card, ATM card, Chip & PIN card, EMV card, or the like). -
Payment terminal 500 may be or may comprise, for example, a mobile device, a mobile handset, a cellular phone, a smartphone, a PDA, a tablet, a laptop, a computer, an electronic consumer device, a device having a touch-screen, a portable or handheld device, a non-portable or stationary payment terminal, a Point of Sale (PoS) terminal, a payment terminal associated with a cash register or with a PoS terminal, or the like. -
Payment terminal 500 may comprise, for example, a touch-screen 501; apayment card reader 502 able to read a payment card swiped through it or inserted into it; one or more binding indicator(s) 511; and aSEE 504 or other trusted execution environment which may comprise a Secure PIN Entry Module (SPEM) 505. For demonstrative purposed,payment card reader 502 is depicted to be connected topayment terminal 500; although payment card reader may be part ofpayment terminal 500, may be internal to or embedded withpayment terminal 500, may be integrated withpayment terminal 500, may be external to (and associated with)payment terminal 500, or may be a removable (or non-removable) add-on module topayment terminal 500. It is further noted that modules may be distributed across multiple devices; for example, in a server-based architecture,SEE 504 may be implemented on a remote server. - The present invention may allow secure PIN entry process on touch-
screen 501 ofpayment terminal 500 which may provide asecure UI 544 protecting the PIN against capturing by an attacker.Secure UI 544 may comprise, for example, a scrambled PIN pad layout and/or an authentication assurance image.Secure UI 544 may be regarded as “activated” or “operational” whenpayment terminal 500 provides protection of either (a) output data displayed on touch-screen 501, or (b) input data entered manually by a user onto touch-screen 501 (via a touch, gesture, click, finger movement, finger swipe, finger selection, or the like). Additionally or alternatively,secure UI 544 may be regarded as “activated” or “operational” if, and only if,secure UI 544 is able to (a) securely receive data fromSEE 504 for display through touch-screen 501, or (b) securely transfer data from touch-screen 501 intoSEE 504. Additionally or alternatively,secure UI 544 may be regarded as “activated” or “operational” if, and only if, a bi-directional secure communication path is established between logic or code running onSEE 504 and logic or code running onpayment card reader 502, such that the secure path is protected against compromise of its contents integrity and/or confidentiality by any unauthorized logic or entity withinpayment terminal 500 and/or externally topayment terminal 500. - Binding
indicator 511 may comprise, for example, a Light Emitting Diode (LED) or other illumination unit, able to illuminate in a particular color (e.g., green or yellow). Binding indicators may be located onpayment card reader 502, or on other components ofSystem 555. Optionally, two or morebinding indicators 511 may be incorporated inpayment system 555, for example, abinding indicator 511 onpayment card reader 502 and another binding indicator on or near touch-screen 501. - In accordance with some embodiments of the present invention, binding
indicator 511 may illuminate only whensecure UI 544 is activated or operational; andbinding indicator 511 may not illuminate whensecure UI 544 is not activated or is non-operational. - In accordance with some embodiments of the present invention, binding
indicator 511 may illuminate in a first color (e.g., green) whensecure UI 544 is activated or operational; andbinding indicator 511 may illuminate in a second color (e.g., red) whensecure UI 544 is not activated or is non-operational. - Once
secure UI 544 is activated,SPEM 505 may send a signal or a command which causesbinding indicator 511 to illuminate (or, to illuminate in the first color). Oncesecure UI 544 is non-activated,SPEM 505 may send a signal or a command which causesbinding indicator 511 to turn off and not illuminate (or, to illuminate in the second color). - It is noted that the mode of binding indicator 511 (e.g., illuminating or non-illuminating; or, illuminating in a first color or illuminating in a second color) may be controlled by (or triggered by, or modified by) a module or component external to
payment card reader 502, and/or bySPEM 505, and/or by other module or logic running withinSEE 504. - Binding
indicator 511 may be or may comprise, for example, a LED, an Organic LED (OLED), an illumination unit, a visual signal, an audible signal or sound or audio-clip, a video clip or animated clip, a graphical or textual item, or other suitable indicator or signal indicating to the user thatsecure UI 544 is activated and that, therefore, it may now be safe for the user to enter his PIN (or password) on touch-screen 501 ofpayment terminal 500. - Upon entry of the PIN,
payment terminal 500 may communicate securely over wired and/or wireless link(s) withtransaction server 533 to verify the entered PIN, or to provide transaction details. In some embodiments, optionally, the entered PIN may be tested or verified on the payment card withinpayment card reader 502, rather than attransaction server 533. -
SPEM 505 or other suitable logic withinpayment terminal 500 may further operate to prevent other logic from modifying and/or capturing any of the data displayed on touch-screen 501, for as long assecure UI 544 is activated. - While
secure UI 544 is activated,SPEM 505 may causepayment card reader 502 to operate or to fully operate, and to read a payment card. In contrast, whilesecure UI 544 is not activated,SPEM 505 may causepayment card reader 502 to not operate, or to avoid reading a payment card swiped through it or inserted into it. - While
secure UI 544 is activated,SPEM 505 may causepayment terminal 500 to run one or more functions on data subsequently arriving frompayment card reader 502. - Once
secure UI 544 is no longer activated, and/or once touch-screen 501 no longer displays a secure interface (e.g., a scrambled PIN pad),SPEM 505 may causepayment card reader 502 to cease operation, e.g., to disable the capability ofpayment card reader 502 to read a payment card. - Once
secure UI 544 is no longer activated, and/or once touch-screen 501 no longer displays a secure interface (e.g., a scrambled PIN pad),SPEM 505 may causepayment terminal 500 to stop running one or more functions on data subsequently arriving frompayment card reader 502. -
SPEM 505 may cause a secure data connection to be established betweenpayment terminal 500 andtransaction server 533, e.g., beforesecure UI 544 is activated. The secure data connection, if established, may transfer data fromtransaction server 533 toSPEM 505, and the data may allowSPEM 505 to render on touch-screen 501 an authenticity assurance image (e.g., a user-recognizable image that was pre-designated by the user). - In some embodiments of the present invention, the secure data connection between
payment terminal 500 andtransaction server 533 may be used to convey Accreditation Data or an Accreditation Certificate fromtransaction server 533 topayment terminal 500. -
SPEM 505 may implement logic that controls the functionality ofSPEM 505 in accordance with information contained in the Accreditation Certificate. For example, the Accreditation Certificate may contain information that, when processed bySPEM 505, may causeSPEM 505 to refrain from performing at least a part of the PIN pad functionality if, for example, data conveyed over the connection betweenpayment terminal 500 andpayment card reader 502 indicates a particular identity (or particular type) ofpayment card reader 502. - It would be appreciated that
system payment terminal 500 is not merely a computerized system in which a LED indicator signals that a “secure mode” is operational, or thatpayment card reader 502 is ready for swiping a payment card through it. Rather,payment terminal 500 demonstrates LED indicator or other suitable indicator, located on a secure (e.g., closed) appliance (e.g., payment card reader 502) indicating to an unwary user whenever a usually-untrusted open device can be temporarily trusted due to the temporal takeover of its secure part over its insecure part. The LED indicator may not merely indicate readiness for swiping the payment card, but rather, that this normally-insecure device is temporarily secure enough for the user to enter his PIN or password thereon. The LED indicator may indicate the takeover of a secure subsystem of the UI of a general-purpose device, at least in the context of PIN entry or password entry. It is noted that the LED indicator may truly indicate secure binding betweenpayment card reader 502 andpayment terminal 500; such that even if the HLOS ofpayment terminal 500 is compromised, the attacker may not be able cause the LED indicator to illuminate. - The term “cryptographic operation” as used herein may include, for example, encoding, decoding, signing, authenticating, hashing, and/or performing other suitable operations related to cryptography and/or data security. For example, a “cryptographic operations module” or a “crypto-token module” may include an encoding module and/or a decoding module and/or other suitable modules or units.
- Some embodiments of the present invention may be implemented by using a suitable combination of hardware components and/or software modules, which may include, for example: a processor, a central processing unit (CPU), a digital signal processor (DSP), a single-core or multiple-core processor, a processing core, an Integrated Circuit (IC), a logic unit, a controller, buffers, accumulators, registers, memory units, storage units, input units (e.g., keyboard, keypad, touch-screen, stylus, physical buttons, microphone, on-screen interface), output units (e.g., screen, touch-screen, display unit, speakers, earphones), wired and/or wireless transceivers, wired and/or wireless communication links or networks (e.g., in accordance with IEEE 802.11 and/or IEEE 802.16 and/or other communication standards or protocols), network elements (e.g., network interface card (NIC), network adapter, modem, router, hub, switch), power source, Operating System (OS), drivers, applications, and/or other suitable components.
- Some embodiments of the present invention may be implemented as an article or storage article (e.g., CD or DVD or “cloud”-based remote storage), which may store code or instructions or programs that, when executed by a computer or computing device or other machine, cause such machine to perform a method in accordance with the present invention.
- Some embodiments of the present invention may be implemented by using a software application or “app” which may be downloaded or purchased or obtained from a website or from an application store (or “app store” or an online marketplace).
- Functions, operations, components and/or features described herein with reference to one or more embodiments of the present invention, may be combined with, or may be utilized in combination with, one or more other functions, operations, components and/or features described herein with reference to one or more other embodiments of the present invention.
- While certain features of the present invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents may occur to those skilled in the art. Accordingly, the claims are intended to cover all such modifications, substitutions, changes, and equivalents.
Claims (27)
1. A mobile electronic device comprising:
a secure execution environment (SEE) to securely execute code;
a secure video path (SVP) to securely exchange information between the SEE and a touch-screen of the mobile electronic device;
wherein the SEE comprises a secure password entry module to generate a scrambled on-screen interface, and to send the scrambled on-screen interface to the touch-screen through the SVP.
2. The mobile electronic device of claim 1 , wherein the secure password entry module comprises:
a touch-event recognizer to securely identify within the SEE a character which corresponds to a virtual key that a user selected via the touch-screen on the scrambled on-screen interface.
3. The mobile electronic device of claim 1 , comprising:
a secure content channel to transport the scrambled on-screen interface, securely against interception, from the SEE to the touch-screen.
4. The mobile electronic device of claim 1 , comprising:
a secure content channel to transport the scrambled on-screen interface, from the SEE to the touch-screen, as an encoded Digital Rights Management (DRM) protected video.
5. The mobile electronic device of claim 4 , comprising:
a DRM-enabled playback module to playback the encoded DRM-protected video representing the scrambled on-screen interface.
6. The mobile electronic device of claim 1 , wherein the scrambled on-screen interface comprises at least one of:
an on-screen scrambled virtual keyboard;
an on-screen scrambled virtual keypad;
an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on the touch-screen.
7. The mobile electronic device of claim 1 , wherein the scrambled on-screen interface comprises a user-specific authenticity reassurance image.
8. The mobile electronic device of claim 7 , wherein the user-specific authenticity reassurance image comprises a user-uploaded image captured by the user through a camera of the mobile electronic device.
9. The mobile electronic device of claim 8 , wherein the SEE comprises code to securely modify, based on a user command, one or more visible properties of said image prior to an upload of said image.
10. The mobile electronic device of claim 7 , wherein the SEE comprises code to securely modify, based on a user command, one or more visible properties of the user-specific authenticity reassurance image subsequent to selection of the user-specific authenticity reassurance image from a collection of images.
11. The mobile electronic device of claim 7 , wherein the user-specific authenticity reassurance image comprises at least one of:
an image overlaid as a watermark on top of the scrambled on-screen interface;
an image overlaid as a watermark under the scrambled on-screen interface;
an image displayed in proximity to the scrambled on-screen interface.
12. The mobile electronic device of claim 1 , wherein the SVP comprises a uni-directional SVP to send information securely only in a direction from the SEE to the touch-screen of the mobile electronic device.
13. The mobile electronic device of claim 1 , wherein the mobile electronic device comprises a device selected from the group consisting of: a laptop computer, a tablet, a smartphone, a portable computing device, a portable gaming device, a portable multimedia player, and a portable payment terminal.
14. The mobile electronic device of claim 1 , comprising:
a secure storage unit to securely store a cryptographic key, wherein the cryptographic key is unique to a particular task to be performed by said mobile electronic device; and
a cryptographic operations module to release the cryptographic key from the secure storage unit based on a user gesture, received through said touch screen and indicating confirmation, and to utilize the cryptographic key for performing a cryptographic operation associated with said particular task.
15. The mobile electronic device of claim 14 , wherein the cryptographic key is also unique to a user of said mobile electronic device.
16. The mobile electronic device of claim 14 , wherein the cryptographic operation comprises at least one of:
encryption using the cryptographic key;
decryption using the cryptographic key.
17. The mobile electronic device of claim 16 , wherein the cryptographic operation comprises a cryptographic operation transparent to said particular task on said mobile electronic device.
18. The mobile electronic device of claim 14 , wherein said particular task, for which said cryptographic key is unique comprises a task of unlocking access to an entirety of a storage unit of said mobile electronic device.
19. The mobile electronic device of claim 1 , further comprising:
a payment card reader to read a payment card swiped therethrough; and
a visual indicator to indicate to a user that the secure password entry module is activated and that the user can swipe the payment card through the payment card reader.
20. The mobile electronic device of claim 19 , wherein the payment card reader is operational when the secure password entry module is activated, and wherein the payment card reader is non-operational when the secure password entry module is non-activated.
21. The mobile electronic device of claim 19 , comprising:
a secure operations module to securely receive, from the secure password entry module, a password entered by a user via said touch-screen; to encrypt the password; and to send the encrypted password for verification at a verification module external to the mobile electronic device;
wherein the verification module external to the mobile electronic device is to send a verification response indicating whether or not the password is verified;
wherein the verification module comprises at least one of: a remote server, and a smart-card external to the mobile electronic device.
22. The mobile electronic device of claim 19 , wherein in response to a user entering a password via said scrambled on-screen interface on said touch-screen, the mobile electronic device is to send, to a remote server, a message indicating touch coordinates to enable the remote server to determine the password and to initiate a process of verifying the password;
wherein the mobile electronic device is unaware of the password entered by said user.
23. A server comprising:
a secure execution environment (SEE) system to securely execute code;
wherein the SEE system comprises a secure password entry module (a) to generate a scrambled on-screen interface, and (b) to send the scrambled on-screen interface, as an encoded Digital Rights Management (DRM) protected video to a remote mobile device.
24. The server of claim 23 , wherein the encoded DRM-protected video, when played by a DRM-enabled playback module of the remote mobile device, causes a touch-screen of the remote mobile device to securely display said scrambled on-screen interface generated by the SEE system of said server.
25. The server of claim 23 , wherein the scrambled on-screen interface comprises at least one of:
an on-screen scrambled virtual keyboard;
an on-screen scrambled virtual keypad;
an on-screen representation of wheels of digits, wherein each wheel is rotatable in response to a user gesture on a touch-screen.
26. The server of claim 23 , wherein the scrambled on-screen interface comprises a user-specific authenticity reassurance image.
27. The server of claim 23 , comprising:
a verification module to verify a user-entered password entered on said scrambled on-screen interface via a touch-screen of the remote mobile device,
wherein the verification module is to receive from said remote mobile device a message indicating touch coordinates corresponding to touch gestures of a user on said touch-screen,
wherein the verification module determines the user-entered password from said touch coordinates while the user-entered password remains unknown to the remote mobile device
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/740,291 US20130301830A1 (en) | 2012-05-08 | 2013-01-14 | Device, system, and method of secure entry and handling of passwords |
KR1020130050016A KR101878149B1 (en) | 2012-05-08 | 2013-05-03 | Device, system, and method of secure entry and handling of passwords |
CN201310164516.5A CN103390124B (en) | 2012-05-08 | 2013-05-07 | Apparatus, system and method for secure entry and processing of passwords |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261643977P | 2012-05-08 | 2012-05-08 | |
US201261730996P | 2012-11-29 | 2012-11-29 | |
US13/740,291 US20130301830A1 (en) | 2012-05-08 | 2013-01-14 | Device, system, and method of secure entry and handling of passwords |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130301830A1 true US20130301830A1 (en) | 2013-11-14 |
Family
ID=49548623
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/740,291 Abandoned US20130301830A1 (en) | 2012-05-08 | 2013-01-14 | Device, system, and method of secure entry and handling of passwords |
US13/740,292 Active US9344275B2 (en) | 2012-05-08 | 2013-01-14 | System, device, and method of secure entry and handling of passwords |
US13/740,294 Active 2033-05-27 US9124419B2 (en) | 2012-05-08 | 2013-01-14 | Method, device, and system of secure entry and handling of passwords |
US15/130,118 Active US10009173B2 (en) | 2012-05-08 | 2016-04-15 | System, device, and method of secure entry and handling of passwords |
US15/986,831 Active US10491379B2 (en) | 2012-05-08 | 2018-05-23 | System, device, and method of secure entry and handling of passwords |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/740,292 Active US9344275B2 (en) | 2012-05-08 | 2013-01-14 | System, device, and method of secure entry and handling of passwords |
US13/740,294 Active 2033-05-27 US9124419B2 (en) | 2012-05-08 | 2013-01-14 | Method, device, and system of secure entry and handling of passwords |
US15/130,118 Active US10009173B2 (en) | 2012-05-08 | 2016-04-15 | System, device, and method of secure entry and handling of passwords |
US15/986,831 Active US10491379B2 (en) | 2012-05-08 | 2018-05-23 | System, device, and method of secure entry and handling of passwords |
Country Status (2)
Country | Link |
---|---|
US (5) | US20130301830A1 (en) |
KR (1) | KR101878149B1 (en) |
Cited By (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110078683A1 (en) * | 2009-09-29 | 2011-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, control method therefor, and storage medium |
US20130298031A1 (en) * | 2012-05-01 | 2013-11-07 | Hiroyuki Kanda | Communication terminal, communication system, display control method, and recording medium storing display control program |
CN104391657A (en) * | 2014-11-24 | 2015-03-04 | 上海盈方微电子有限公司 | Method for mounting multi-partition storage device in Android system |
GB2520207A (en) * | 2012-07-20 | 2015-05-13 | Licentia Group Ltd | Authentication method and system |
WO2015123216A1 (en) * | 2014-02-11 | 2015-08-20 | Square, Inc. | Homomorphic passcode encryption |
WO2015120972A1 (en) * | 2014-02-11 | 2015-08-20 | Giesecke & Devrient Gmbh | Microprocessor system |
US9270670B1 (en) | 2014-10-10 | 2016-02-23 | Joseph Fitzgerald | Systems and methods for providing a covert password manager |
WO2016026532A1 (en) * | 2014-08-21 | 2016-02-25 | Irdeto B.V. | User authentication using a randomized keypad over a drm secured video path |
WO2016064473A1 (en) * | 2014-10-20 | 2016-04-28 | Intel Corporation | Technologies for secure input and display of virtual touch user interfaces |
EP3021249A1 (en) * | 2014-11-13 | 2016-05-18 | Gemalto Sa | System for securely entering a private code |
US20160255073A1 (en) * | 2015-02-27 | 2016-09-01 | Samsung Electronics Co., Ltd. | Trusted pin management |
US20160261632A1 (en) * | 2014-05-28 | 2016-09-08 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Arrangements for Cloud Caching |
US20160360998A1 (en) * | 2015-06-11 | 2016-12-15 | Moon-Seog JUN | System, terminal, and method for digital electrocardiogram authentication |
US20170090744A1 (en) * | 2015-09-28 | 2017-03-30 | Adobe Systems Incorporated | Virtual reality headset device with front touch screen |
US9626500B2 (en) | 2015-06-09 | 2017-04-18 | International Business Machines Corporation | Managing access to an electronic system |
US9646306B1 (en) | 2014-02-11 | 2017-05-09 | Square, Inc. | Splicing resistant homomorphic passcode encryption |
US20170147155A1 (en) * | 2015-11-23 | 2017-05-25 | Verizon Patent And Licensing Inc. | Generating and verifying a reputational profile |
US9762555B2 (en) | 2014-07-25 | 2017-09-12 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
US9773240B1 (en) * | 2013-09-13 | 2017-09-26 | Square, Inc. | Fake sensor input for passcode entry security |
JP2017530450A (en) * | 2014-08-21 | 2017-10-12 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Method and device for secure interaction |
US20170351849A1 (en) * | 2014-12-22 | 2017-12-07 | Oberthur Technologies | Method for authenticating a user and a secure module, associated electronic apparatus and system |
US9928501B1 (en) | 2013-10-09 | 2018-03-27 | Square, Inc. | Secure passcode entry docking station |
US20180089789A1 (en) * | 2015-09-28 | 2018-03-29 | EyeVerify Inc. | Secure image pipeline |
CN108009418A (en) * | 2016-11-02 | 2018-05-08 | 斯凯耶科德公司 | For the method by non-security terminal authentication user |
EP3319069A1 (en) * | 2016-11-02 | 2018-05-09 | Skeyecode | Method for authenticating a user by means of a non-secure terminal |
WO2018096515A1 (en) * | 2016-11-28 | 2018-05-31 | Yello Company Limited | Touch screen pin terminal with security status indication |
US20180174129A1 (en) * | 2016-12-12 | 2018-06-21 | Topl, Llc | Method and Apparatus for Processing Mobile Payment Using Blockchain Techniques |
US10013668B2 (en) * | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
EP3351002A1 (en) * | 2015-10-14 | 2018-07-25 | ARRIS Enterprises LLC | High definition secure playback with downloadable drm for android platforms |
US10083442B1 (en) | 2012-06-12 | 2018-09-25 | Square, Inc. | Software PIN entry |
US10097538B1 (en) * | 2017-08-12 | 2018-10-09 | Growpath, Inc. | User authentication systems and methods |
EP3381003A4 (en) * | 2015-12-28 | 2018-10-31 | Mobeewave Inc. | System for and method of authenticating a user on a device |
US10255593B1 (en) | 2013-12-26 | 2019-04-09 | Square, Inc. | Passcode entry through motion sensing |
WO2019125182A1 (en) * | 2017-12-22 | 2019-06-27 | Protectoria As | Secure mobile platform |
US10373149B1 (en) | 2012-11-12 | 2019-08-06 | Square, Inc. | Secure data entry using a card reader with minimal display and input capabilities having a display |
US10374809B1 (en) * | 2016-12-13 | 2019-08-06 | Amazon Technologies, Inc. | Digital signature verification for asynchronous responses |
EP3486852A3 (en) * | 2017-11-15 | 2019-08-07 | Rubean AG | Method and an arrangement for triggering an electronic payment |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10482450B2 (en) * | 2015-01-09 | 2019-11-19 | Ingenico Group | Method for processing an authorization to implement a service, devices and corresponding computer program |
CN110618847A (en) * | 2018-06-20 | 2019-12-27 | 华为技术有限公司 | User interface display method and terminal equipment |
US10540657B2 (en) | 2013-09-30 | 2020-01-21 | Square, Inc. | Secure passcode entry user interface |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10592653B2 (en) | 2015-05-27 | 2020-03-17 | Licentia Group Limited | Encoding methods and systems |
US20200104538A1 (en) * | 2018-09-27 | 2020-04-02 | Citrix Systems, Inc. | Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications |
US10846432B2 (en) | 2018-09-11 | 2020-11-24 | OneLogin, Inc. | Secure data leak detection |
US10992652B2 (en) * | 2017-08-25 | 2021-04-27 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for monitoring encrypted network traffic flows |
CN112711452A (en) * | 2019-10-24 | 2021-04-27 | 华为技术有限公司 | Image display method and electronic equipment |
US11010467B2 (en) * | 2018-10-30 | 2021-05-18 | Blue Popcon Co.Ltd | Multifactor-based password authentication |
US11048805B2 (en) * | 2016-02-17 | 2021-06-29 | Nec Corporation | Method for storing data on a storage entity |
US11102313B2 (en) | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
EP3843413A4 (en) * | 2018-09-11 | 2021-09-08 | Huawei Technologies Co., Ltd. | Video stream switching method, device, and system |
US20210329030A1 (en) * | 2010-11-29 | 2021-10-21 | Biocatch Ltd. | Device, System, and Method of Detecting Vishing Attacks |
WO2021234476A1 (en) * | 2020-05-10 | 2021-11-25 | Eiko Onishi | De-identified identity proofing methods and systems |
US11190417B2 (en) | 2020-02-04 | 2021-11-30 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for processing network flow metadata at a network packet broker |
US11223619B2 (en) * | 2010-11-29 | 2022-01-11 | Biocatch Ltd. | Device, system, and method of user authentication based on user-specific characteristics of task performance |
US11323451B2 (en) | 2015-07-09 | 2022-05-03 | Biocatch Ltd. | System, device, and method for detection of proxy server |
US11330012B2 (en) | 2010-11-29 | 2022-05-10 | Biocatch Ltd. | System, method, and device of authenticating a user based on selfie image or selfie video |
US11336684B2 (en) * | 2019-06-07 | 2022-05-17 | Lookout, Inc. | Mobile device security using a secure execution context |
US11425563B2 (en) | 2010-11-29 | 2022-08-23 | Biocatch Ltd. | Method, device, and system of differentiating between a cyber-attacker and a legitimate user |
US11457356B2 (en) * | 2013-03-14 | 2022-09-27 | Sanjay K Rao | Gestures including motions performed in the air to control a mobile device |
US11483495B2 (en) | 2018-08-22 | 2022-10-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for implementing video stream switching |
US11489666B2 (en) | 2017-08-25 | 2022-11-01 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Monitoring encrypted network traffic flows in a virtual environment using dynamic session key acquisition techniques |
US11580553B2 (en) | 2010-11-29 | 2023-02-14 | Biocatch Ltd. | Method, device, and system of detecting mule accounts and accounts used for money laundering |
US11606353B2 (en) | 2021-07-22 | 2023-03-14 | Biocatch Ltd. | System, device, and method of generating and utilizing one-time passwords |
US11641274B2 (en) * | 2019-03-22 | 2023-05-02 | Jpmorgan Chase Bank, N.A. | Systems and methods for manipulation of private information on untrusted environments |
US11716313B2 (en) | 2018-08-10 | 2023-08-01 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for implementing bandwidth limitations on specific application traffic at a proxy element |
US11763038B2 (en) | 2020-04-24 | 2023-09-19 | Wells Fargo Bank, N.A. | Secured file storage |
US20240080339A1 (en) * | 2010-11-29 | 2024-03-07 | Biocatch Ltd. | Device, System, and Method of Detecting Vishing Attacks |
US12126718B2 (en) | 2019-01-14 | 2024-10-22 | Samsung Electronics Co., Ltd | Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9532222B2 (en) | 2010-03-03 | 2016-12-27 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions after additional agent verification |
US9544143B2 (en) | 2010-03-03 | 2017-01-10 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions |
US9467463B2 (en) | 2011-09-02 | 2016-10-11 | Duo Security, Inc. | System and method for assessing vulnerability of a mobile device |
WO2013188875A1 (en) * | 2012-06-15 | 2013-12-19 | Massachusetts Institute Of Technology | Optimized transport layer security |
US9690759B2 (en) | 2013-01-03 | 2017-06-27 | Cable Television Laboratories, Inc. | Content linking |
CN104036160B (en) * | 2013-03-07 | 2019-03-15 | 腾讯科技(深圳)有限公司 | A kind of Web browser method, device and browser |
KR20140110639A (en) * | 2013-03-08 | 2014-09-17 | 삼성전자주식회사 | Data security method and electronic device implementing the same |
GB2514142A (en) * | 2013-05-14 | 2014-11-19 | Incorporated Mastercard International | System and method for mobile PIN synchronisation |
KR101711021B1 (en) * | 2013-09-09 | 2017-03-13 | 한국전자통신연구원 | System for providing electric signature based on mobile trusted module and method thereof |
US10129242B2 (en) * | 2013-09-16 | 2018-11-13 | Airwatch Llc | Multi-persona devices and management |
US9558491B2 (en) * | 2013-09-30 | 2017-01-31 | Square, Inc. | Scrambling passcode entry interface |
KR101492054B1 (en) * | 2013-11-08 | 2015-02-10 | 한국정보통신주식회사 | Card reader, terminal and method for processing payment information thereof |
US9495527B2 (en) * | 2013-12-30 | 2016-11-15 | Samsung Electronics Co., Ltd. | Function-level lock for mobile device security |
US9197662B2 (en) * | 2014-02-26 | 2015-11-24 | Symantec Corporation | Systems and methods for optimizing scans of pre-installed applications |
KR102181799B1 (en) * | 2014-04-28 | 2020-11-24 | 원투씨엠 주식회사 | Method for Exchanging Contents by using Touch |
US8990121B1 (en) | 2014-05-08 | 2015-03-24 | Square, Inc. | Establishment of a secure session between a card reader and a mobile device |
US11838851B1 (en) * | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
CN104090772A (en) * | 2014-07-23 | 2014-10-08 | 广州金山网络科技有限公司 | Method and device for generating android package (APK) |
FR3026524B1 (en) * | 2014-09-25 | 2016-10-28 | Morpho | AUTHENTICATION OF A SECURE ELECTRONIC DEVICE FROM AN UNSECURED ELECTRONIC DEVICE |
EP3201783B1 (en) * | 2014-09-29 | 2020-11-11 | Akamai Technologies, Inc. | Https request enrichment |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
CN105989486A (en) * | 2015-02-15 | 2016-10-05 | 广州市动景计算机科技有限公司 | Payment security processing method, device and system |
US10193700B2 (en) | 2015-02-27 | 2019-01-29 | Samsung Electronics Co., Ltd. | Trust-zone-based end-to-end security |
CN104866782A (en) * | 2015-05-29 | 2015-08-26 | 宇龙计算机通信科技(深圳)有限公司 | Data processing method and apparatus |
US9930060B2 (en) | 2015-06-01 | 2018-03-27 | Duo Security, Inc. | Method for enforcing endpoint health standards |
WO2016209363A1 (en) * | 2015-06-25 | 2016-12-29 | Kean University | Systems and methods for authenticating devices using single factor dynamic authentication |
US10699274B2 (en) | 2015-08-24 | 2020-06-30 | Samsung Electronics Co., Ltd. | Apparatus and method for secure electronic payment |
US10846696B2 (en) * | 2015-08-24 | 2020-11-24 | Samsung Electronics Co., Ltd. | Apparatus and method for trusted execution environment based secure payment transactions |
US20170063820A1 (en) * | 2015-08-28 | 2017-03-02 | Bank Of America Corporation | Performing Online Account Security Actions in Response to Sign-On and Sign-Off Events |
US10462135B2 (en) * | 2015-10-23 | 2019-10-29 | Intel Corporation | Systems and methods for providing confidentiality and privacy of user data for web browsers |
US11593780B1 (en) * | 2015-12-10 | 2023-02-28 | Block, Inc. | Creation and validation of a secure list of security certificates |
US10817593B1 (en) * | 2015-12-29 | 2020-10-27 | Wells Fargo Bank, N.A. | User information gathering and distribution system |
US10523663B2 (en) | 2016-01-10 | 2019-12-31 | Apple Inc. | Shared password protection within applications |
US10339339B2 (en) | 2016-02-10 | 2019-07-02 | Mobileron, Inc. | Securely storing and distributing sensitive data in a cloud-based application |
WO2017147786A1 (en) * | 2016-03-01 | 2017-09-08 | Qualcomm Incorporated | User interface for tee execution of a device |
JP6430427B2 (en) * | 2016-03-17 | 2018-11-28 | Jx金属株式会社 | Lithium cobaltate sintered body, sputtering target produced using the sintered body, method for producing lithium cobaltate sintered body, and thin film comprising lithium cobaltate |
DE102016207339A1 (en) * | 2016-04-29 | 2017-11-02 | Volkswagen Aktiengesellschaft | A method for securely interacting a user with a mobile device and another entity |
CN105791324B (en) * | 2016-05-12 | 2019-12-06 | 腾讯科技(深圳)有限公司 | Account login method and device |
US10594683B2 (en) | 2016-06-08 | 2020-03-17 | International Business Machines Corporation | Enforce data security based on a mobile device, positioning, augmented reality |
EP3479222A4 (en) * | 2016-06-29 | 2020-01-15 | Duo Security, Inc. | Systems and methods for endpoint management classification |
US10289847B2 (en) * | 2016-07-29 | 2019-05-14 | Qualcomm Incorporated | Updating virtual memory addresses of target application functionalities for an updated version of application binary code |
CN107666383B (en) * | 2016-07-29 | 2021-06-18 | 阿里巴巴集团控股有限公司 | Message processing method and device based on HTTPS (hypertext transfer protocol secure protocol) |
EP3291504B1 (en) * | 2016-08-30 | 2020-03-11 | Wacom Co., Ltd. | Authentication and secure transmission of data between signature devices and host computers using transport layer security |
CN108512657B (en) * | 2017-02-28 | 2021-05-14 | 中兴通讯股份有限公司 | Password generation method and device |
US10476673B2 (en) | 2017-03-22 | 2019-11-12 | Extrahop Networks, Inc. | Managing session secrets for continuous packet capture systems |
US9967292B1 (en) | 2017-10-25 | 2018-05-08 | Extrahop Networks, Inc. | Inline secret sharing |
US10412113B2 (en) | 2017-12-08 | 2019-09-10 | Duo Security, Inc. | Systems and methods for intelligently configuring computer security |
US10389574B1 (en) | 2018-02-07 | 2019-08-20 | Extrahop Networks, Inc. | Ranking alerts based on network monitoring |
CN108509234B (en) * | 2018-04-12 | 2021-06-11 | 珠海横琴盛达兆业科技投资有限公司 | Method for processing flash quit during shooting return based on Android platform |
US10411978B1 (en) | 2018-08-09 | 2019-09-10 | Extrahop Networks, Inc. | Correlating causes and effects associated with network activity |
US11658962B2 (en) | 2018-12-07 | 2023-05-23 | Cisco Technology, Inc. | Systems and methods of push-based verification of a transaction |
US11736295B2 (en) * | 2019-01-09 | 2023-08-22 | Visa International Service Association | Method, system, and computer program product for network bound proxy re-encryption and PIN translation |
US11282066B1 (en) * | 2019-01-18 | 2022-03-22 | Worldpay, Llc | Systems and methods to provide user verification in a shared user environment via a device-specific display |
US11212319B2 (en) * | 2019-01-24 | 2021-12-28 | Zhnith Incorporated | Multiple sentinels for securing communications |
US20220150228A1 (en) * | 2019-03-28 | 2022-05-12 | Bankvault Pty Ltd | Computer systems and methods including html browser authorisation approaches |
US11693980B2 (en) * | 2019-04-19 | 2023-07-04 | Datalocker Inc. | Offline data storage device |
US10965702B2 (en) | 2019-05-28 | 2021-03-30 | Extrahop Networks, Inc. | Detecting injection attacks using passive network monitoring |
CN110443078B (en) * | 2019-07-19 | 2021-05-28 | 南京芯驰半导体科技有限公司 | Security storage system based on privilege hierarchy |
US11388072B2 (en) | 2019-08-05 | 2022-07-12 | Extrahop Networks, Inc. | Correlating network traffic that crosses opaque endpoints |
US10742677B1 (en) | 2019-09-04 | 2020-08-11 | Extrahop Networks, Inc. | Automatic determination of user roles and asset types based on network monitoring |
KR102140496B1 (en) | 2019-10-08 | 2020-08-03 | 맹선주 | Operating method for Broadcasting content based on a Mobile device |
CN113272810B (en) * | 2019-10-11 | 2022-02-22 | 软件帝国株式会社 | Simple authentication method and system for web page memory using browser |
CN110889095B (en) * | 2019-11-18 | 2022-02-25 | 中国银行股份有限公司 | Control method and control device of virtual numeric keyboard |
US12112321B2 (en) * | 2019-11-28 | 2024-10-08 | Qualcomm Incorporated | Systems and methods for implementing a secure user interface |
CN110968895B (en) * | 2019-11-29 | 2022-04-05 | 北京百度网讯科技有限公司 | Data processing method and device, electronic equipment and storage medium |
US11709966B2 (en) * | 2019-12-08 | 2023-07-25 | GlassBox Ltd. | System and method for automatically masking confidential information that is input on a webpage |
US11165823B2 (en) | 2019-12-17 | 2021-11-02 | Extrahop Networks, Inc. | Automated preemptive polymorphic deception |
US20210240801A1 (en) * | 2020-02-03 | 2021-08-05 | Arris Enterprises Llc | Digital rights management system resource manager |
US11503013B2 (en) * | 2020-02-13 | 2022-11-15 | Sap Se | Translation of client certificate authentication into authorization graph descriptors |
KR102416538B1 (en) * | 2020-03-11 | 2022-07-05 | 주식회사 티모넷 | System and method for providing electronic signature service |
CN111478901B (en) * | 2020-04-07 | 2022-07-12 | 中国民航信息网络股份有限公司 | Account weak password detection method and device, server and storage medium |
JP2021173956A (en) * | 2020-04-30 | 2021-11-01 | ローランド株式会社 | Data utilization device, data utilization program and data utilization method |
JPWO2022018971A1 (en) * | 2020-07-22 | 2022-01-27 | ||
US20220045848A1 (en) * | 2020-08-07 | 2022-02-10 | Charter Communications Operating, Llc | Password security hardware module |
US11463466B2 (en) * | 2020-09-23 | 2022-10-04 | Extrahop Networks, Inc. | Monitoring encrypted network traffic |
US11310256B2 (en) | 2020-09-23 | 2022-04-19 | Extrahop Networks, Inc. | Monitoring encrypted network traffic |
US11502840B2 (en) * | 2020-10-08 | 2022-11-15 | Authentico Technologies Ab | Password management system and method |
US11689510B2 (en) * | 2020-12-08 | 2023-06-27 | TrustFour Technologies, Inc. | Cryptographic platform system and method |
US11870801B2 (en) * | 2021-01-27 | 2024-01-09 | Paypal, Inc. | Protecting computer system end-points using activators |
US11669639B2 (en) * | 2021-02-25 | 2023-06-06 | Dell Products L.P. | System and method for multi-user state change |
US20220294788A1 (en) * | 2021-03-09 | 2022-09-15 | Oracle International Corporation | Customizing authentication and handling pre and post authentication in identity cloud service |
KR102363316B1 (en) * | 2021-07-02 | 2022-02-16 | 쿠팡 주식회사 | Method for providing information and electric device using the same |
US11706210B2 (en) * | 2021-07-22 | 2023-07-18 | Citrix Systems, Inc. | Computing connection credential verification |
US11296967B1 (en) | 2021-09-23 | 2022-04-05 | Extrahop Networks, Inc. | Combining passive network analysis and active probing |
US20230291548A1 (en) * | 2022-03-08 | 2023-09-14 | Western Digital Technologies, Inc. | Authorization requests from a data storage device to multiple manager devices |
US11843606B2 (en) | 2022-03-30 | 2023-12-12 | Extrahop Networks, Inc. | Detecting abnormal data access based on data similarity |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6031914A (en) * | 1996-08-30 | 2000-02-29 | Regents Of The University Of Minnesota | Method and apparatus for embedding data, including watermarks, in human perceptible images |
US20060031174A1 (en) * | 2004-07-20 | 2006-02-09 | Scribocel, Inc. | Method of authentication and indentification for computerized and networked systems |
US7350228B2 (en) * | 2001-01-23 | 2008-03-25 | Portauthority Technologies Inc. | Method for securing digital content |
US20100015912A1 (en) * | 2008-07-16 | 2010-01-21 | Embarq Holdings Company, Llc | System and method for providing wireless security surveillance services accessible via a telecommunications device |
US20110219239A1 (en) * | 2010-03-04 | 2011-09-08 | Comcast Cable Communications, Llc | PC Secure Video Path |
US20110225064A1 (en) * | 2003-09-02 | 2011-09-15 | Augustine Fou | Methods and systems for using universally unique item identifiers |
US8220035B1 (en) * | 2008-02-29 | 2012-07-10 | Adobe Systems Incorporated | System and method for trusted embedded user interface for authentication |
US20130219162A1 (en) * | 2011-09-27 | 2013-08-22 | Z124 | Unified desktop wake and unlock |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421781B1 (en) * | 1998-04-30 | 2002-07-16 | Openwave Systems Inc. | Method and apparatus for maintaining security in a push server |
US6714982B1 (en) * | 2000-01-19 | 2004-03-30 | Fmr Corp. | Message passing over secure connections using a network server |
CA2465321C (en) * | 2001-11-06 | 2010-05-11 | International Business Machines Corporation | Method and system for the supply of data, transactions and electronic voting |
EP1329787B1 (en) * | 2002-01-16 | 2019-08-28 | Texas Instruments Incorporated | Secure mode indicator for smart phone or PDA |
US8423763B2 (en) * | 2002-03-20 | 2013-04-16 | Research In Motion Limited | System and method for supporting multiple certificate status providers on a mobile communication device |
WO2006131921A2 (en) * | 2005-06-08 | 2006-12-14 | Discretix Technologies Ltd. | Method, device, and system of maintaining a context of a secure execution environment |
US7814315B2 (en) * | 2006-11-30 | 2010-10-12 | Red Hat, Inc. | Propagation of certificate revocation information |
US8261091B2 (en) * | 2006-12-21 | 2012-09-04 | Spansion Llc | Solid-state memory-based generation and handling of security authentication tokens |
EP2126694A2 (en) * | 2006-12-22 | 2009-12-02 | VirtualLogix SA | System for enabling multiple execution environments to share a device |
CN100566251C (en) * | 2007-08-01 | 2009-12-02 | 西安西电捷通无线网络通信有限公司 | A kind of trusted network connection method that strengthens fail safe |
CN101247228A (en) | 2007-08-13 | 2008-08-20 | 李东声 | Soft keyboard electric endorsement method and tool thereof |
US20090281949A1 (en) * | 2008-05-12 | 2009-11-12 | Appsware Wireless, Llc | Method and system for securing a payment transaction |
US20090307486A1 (en) * | 2008-06-09 | 2009-12-10 | Garret Grajek | System and method for secured network access utilizing a client .net software component |
US8335931B2 (en) * | 2008-06-20 | 2012-12-18 | Imation Corp. | Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments |
US8756675B2 (en) * | 2008-08-06 | 2014-06-17 | Silver Spring Networks, Inc. | Systems and methods for security in a wireless utility network |
KR20100060707A (en) | 2008-11-28 | 2010-06-07 | 주식회사 하렉스인포텍 | Patment and authorization, settlement and membership joining method, device and system by purchaser using mobile communication terminal |
US8171292B2 (en) * | 2009-04-08 | 2012-05-01 | Research In Motion Limited | Systems, devices, and methods for securely transmitting a security parameter to a computing device |
US11182752B2 (en) * | 2009-04-29 | 2021-11-23 | International Business Machines Corporation | Generating transaction message |
US9794248B2 (en) * | 2009-12-23 | 2017-10-17 | Symantec Corporation | Alternative approach to deployment and payment for digital certificates |
US8788811B2 (en) * | 2010-05-28 | 2014-07-22 | Red Hat, Inc. | Server-side key generation for non-token clients |
KR20120005364A (en) * | 2010-07-08 | 2012-01-16 | 정보통신산업진흥원 | Electronic address, and eletronic document distribution system |
JP2014500989A (en) | 2010-09-28 | 2014-01-16 | ヘッドウォーター パートナーズ I エルエルシー | Secure device data record |
US8204480B1 (en) * | 2010-10-01 | 2012-06-19 | Viasat, Inc. | Method and apparatus for secured access |
CN102045367B (en) | 2011-01-10 | 2014-04-23 | 软库创投(北京)科技有限公司 | Registration method and authentication server of real-name authentication |
US8533805B2 (en) * | 2011-03-16 | 2013-09-10 | Red Hat, Inc. | Certificates to create product mappings |
US8806196B2 (en) * | 2011-11-04 | 2014-08-12 | Motorola Solutions, Inc. | Method and apparatus for authenticating a digital certificate status and authorization credentials |
-
2013
- 2013-01-14 US US13/740,291 patent/US20130301830A1/en not_active Abandoned
- 2013-01-14 US US13/740,292 patent/US9344275B2/en active Active
- 2013-01-14 US US13/740,294 patent/US9124419B2/en active Active
- 2013-05-03 KR KR1020130050016A patent/KR101878149B1/en active IP Right Grant
-
2016
- 2016-04-15 US US15/130,118 patent/US10009173B2/en active Active
-
2018
- 2018-05-23 US US15/986,831 patent/US10491379B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6031914A (en) * | 1996-08-30 | 2000-02-29 | Regents Of The University Of Minnesota | Method and apparatus for embedding data, including watermarks, in human perceptible images |
US7350228B2 (en) * | 2001-01-23 | 2008-03-25 | Portauthority Technologies Inc. | Method for securing digital content |
US20110225064A1 (en) * | 2003-09-02 | 2011-09-15 | Augustine Fou | Methods and systems for using universally unique item identifiers |
US20060031174A1 (en) * | 2004-07-20 | 2006-02-09 | Scribocel, Inc. | Method of authentication and indentification for computerized and networked systems |
US8220035B1 (en) * | 2008-02-29 | 2012-07-10 | Adobe Systems Incorporated | System and method for trusted embedded user interface for authentication |
US20100015912A1 (en) * | 2008-07-16 | 2010-01-21 | Embarq Holdings Company, Llc | System and method for providing wireless security surveillance services accessible via a telecommunications device |
US20110219239A1 (en) * | 2010-03-04 | 2011-09-08 | Comcast Cable Communications, Llc | PC Secure Video Path |
US20130219162A1 (en) * | 2011-09-27 | 2013-08-22 | Z124 | Unified desktop wake and unlock |
Cited By (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990724B2 (en) * | 2009-09-29 | 2015-03-24 | Canon Kabushiki Kaisha | Information processing apparatus, control method therefor, and storage medium |
US20110078683A1 (en) * | 2009-09-29 | 2011-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, control method therefor, and storage medium |
US10469679B2 (en) | 2009-09-29 | 2019-11-05 | Canon Kabushiki Kaisha | Image processing apparatus and control method displaying an operation screen based on detecting selection of an operation key |
US11838118B2 (en) * | 2010-11-29 | 2023-12-05 | Biocatch Ltd. | Device, system, and method of detecting vishing attacks |
US11580553B2 (en) | 2010-11-29 | 2023-02-14 | Biocatch Ltd. | Method, device, and system of detecting mule accounts and accounts used for money laundering |
US11223619B2 (en) * | 2010-11-29 | 2022-01-11 | Biocatch Ltd. | Device, system, and method of user authentication based on user-specific characteristics of task performance |
US20210329030A1 (en) * | 2010-11-29 | 2021-10-21 | Biocatch Ltd. | Device, System, and Method of Detecting Vishing Attacks |
US12101354B2 (en) * | 2010-11-29 | 2024-09-24 | Biocatch Ltd. | Device, system, and method of detecting vishing attacks |
US11330012B2 (en) | 2010-11-29 | 2022-05-10 | Biocatch Ltd. | System, method, and device of authenticating a user based on selfie image or selfie video |
US11425563B2 (en) | 2010-11-29 | 2022-08-23 | Biocatch Ltd. | Method, device, and system of differentiating between a cyber-attacker and a legitimate user |
US20240080339A1 (en) * | 2010-11-29 | 2024-03-07 | Biocatch Ltd. | Device, System, and Method of Detecting Vishing Attacks |
US20130298031A1 (en) * | 2012-05-01 | 2013-11-07 | Hiroyuki Kanda | Communication terminal, communication system, display control method, and recording medium storing display control program |
US9544197B2 (en) * | 2012-05-01 | 2017-01-10 | Ricoh Company, Ltd. | Communication terminal, communication system, display control method, and recording medium storing display control program |
US10515363B2 (en) | 2012-06-12 | 2019-12-24 | Square, Inc. | Software PIN entry |
US10185957B2 (en) | 2012-06-12 | 2019-01-22 | Square, Inc. | Software pin entry |
US11823186B2 (en) | 2012-06-12 | 2023-11-21 | Block, Inc. | Secure wireless card reader |
US10083442B1 (en) | 2012-06-12 | 2018-09-25 | Square, Inc. | Software PIN entry |
GB2520207B (en) * | 2012-07-20 | 2016-01-06 | Licentia Group Ltd | Authentication method and system |
US11048784B2 (en) | 2012-07-20 | 2021-06-29 | Licentia Group Limited | Authentication method and system |
US10565359B2 (en) | 2012-07-20 | 2020-02-18 | Licentia Group Limited | Authentication method and system |
US11048783B2 (en) | 2012-07-20 | 2021-06-29 | Licentia Group Limited | Authentication method and system |
US11194892B2 (en) | 2012-07-20 | 2021-12-07 | Licentia Group Limited | Authentication method and system |
US10366215B2 (en) | 2012-07-20 | 2019-07-30 | Licentia Group Limited | Authentication method and system |
GB2520207A (en) * | 2012-07-20 | 2015-05-13 | Licentia Group Ltd | Authentication method and system |
US10373149B1 (en) | 2012-11-12 | 2019-08-06 | Square, Inc. | Secure data entry using a card reader with minimal display and input capabilities having a display |
US11457356B2 (en) * | 2013-03-14 | 2022-09-27 | Sanjay K Rao | Gestures including motions performed in the air to control a mobile device |
US9773240B1 (en) * | 2013-09-13 | 2017-09-26 | Square, Inc. | Fake sensor input for passcode entry security |
US10540657B2 (en) | 2013-09-30 | 2020-01-21 | Square, Inc. | Secure passcode entry user interface |
US9928501B1 (en) | 2013-10-09 | 2018-03-27 | Square, Inc. | Secure passcode entry docking station |
US10255593B1 (en) | 2013-12-26 | 2019-04-09 | Square, Inc. | Passcode entry through motion sensing |
US9646306B1 (en) | 2014-02-11 | 2017-05-09 | Square, Inc. | Splicing resistant homomorphic passcode encryption |
WO2015123216A1 (en) * | 2014-02-11 | 2015-08-20 | Square, Inc. | Homomorphic passcode encryption |
WO2015120972A1 (en) * | 2014-02-11 | 2015-08-20 | Giesecke & Devrient Gmbh | Microprocessor system |
AU2017279652B2 (en) * | 2014-02-11 | 2019-05-09 | Block, Inc. | Homomorphic Passcode Encryption |
US10719828B2 (en) | 2014-02-11 | 2020-07-21 | Square, Inc. | Homomorphic passcode encryption |
US20160261632A1 (en) * | 2014-05-28 | 2016-09-08 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Arrangements for Cloud Caching |
US10243933B2 (en) | 2014-07-25 | 2019-03-26 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
US9762555B2 (en) | 2014-07-25 | 2017-09-12 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
US10499248B2 (en) | 2014-08-21 | 2019-12-03 | Huawei Technologies Co., Ltd. | Secure interaction method and device |
US10417399B2 (en) | 2014-08-21 | 2019-09-17 | Irdeto B.V. | Accessing a secured software application |
WO2016026532A1 (en) * | 2014-08-21 | 2016-02-25 | Irdeto B.V. | User authentication using a randomized keypad over a drm secured video path |
WO2016026972A1 (en) * | 2014-08-21 | 2016-02-25 | Irdeto B.V. | Accessing a secured software application |
JP2017530450A (en) * | 2014-08-21 | 2017-10-12 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Method and device for secure interaction |
US9571487B2 (en) | 2014-10-10 | 2017-02-14 | Joseph Fitzgerald | Systems and methods for providing a covert password manager |
US9270670B1 (en) | 2014-10-10 | 2016-02-23 | Joseph Fitzgerald | Systems and methods for providing a covert password manager |
WO2016064473A1 (en) * | 2014-10-20 | 2016-04-28 | Intel Corporation | Technologies for secure input and display of virtual touch user interfaces |
EP3021249A1 (en) * | 2014-11-13 | 2016-05-18 | Gemalto Sa | System for securely entering a private code |
CN104391657A (en) * | 2014-11-24 | 2015-03-04 | 上海盈方微电子有限公司 | Method for mounting multi-partition storage device in Android system |
US10984080B2 (en) * | 2014-12-22 | 2021-04-20 | Idemia France | Method for authenticating a user and a secure module, associated electronic apparatus and system |
US20170351849A1 (en) * | 2014-12-22 | 2017-12-07 | Oberthur Technologies | Method for authenticating a user and a secure module, associated electronic apparatus and system |
US10970706B2 (en) | 2015-01-09 | 2021-04-06 | Ingenico Group | Method for processing a transaction from a communications terminal |
US11232430B2 (en) | 2015-01-09 | 2022-01-25 | Ingenico Group | Method for processing a transaction from a communication terminal |
US10482450B2 (en) * | 2015-01-09 | 2019-11-19 | Ingenico Group | Method for processing an authorization to implement a service, devices and corresponding computer program |
US20160255073A1 (en) * | 2015-02-27 | 2016-09-01 | Samsung Electronics Co., Ltd. | Trusted pin management |
US10178087B2 (en) * | 2015-02-27 | 2019-01-08 | Samsung Electronics Co., Ltd. | Trusted pin management |
US11036845B2 (en) | 2015-05-27 | 2021-06-15 | Licentia Group Limited | Authentication methods and systems |
US10740449B2 (en) | 2015-05-27 | 2020-08-11 | Licentia Group Limited | Authentication methods and systems |
US10592653B2 (en) | 2015-05-27 | 2020-03-17 | Licentia Group Limited | Encoding methods and systems |
US11048790B2 (en) | 2015-05-27 | 2021-06-29 | Licentia Group Limited | Authentication methods and systems |
US9626500B2 (en) | 2015-06-09 | 2017-04-18 | International Business Machines Corporation | Managing access to an electronic system |
US10007775B2 (en) | 2015-06-09 | 2018-06-26 | International Business Machines Corporation | Managing access to an electronic system |
US20160360998A1 (en) * | 2015-06-11 | 2016-12-15 | Moon-Seog JUN | System, terminal, and method for digital electrocardiogram authentication |
US9750435B2 (en) * | 2015-06-11 | 2017-09-05 | Moon-Seog JUN | System, terminal, and method for digital electrocardiogram authentication |
US11323451B2 (en) | 2015-07-09 | 2022-05-03 | Biocatch Ltd. | System, device, and method for detection of proxy server |
US11102313B2 (en) | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10013668B2 (en) * | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
US20180089789A1 (en) * | 2015-09-28 | 2018-03-29 | EyeVerify Inc. | Secure image pipeline |
US20170090744A1 (en) * | 2015-09-28 | 2017-03-30 | Adobe Systems Incorporated | Virtual reality headset device with front touch screen |
US10931455B2 (en) * | 2015-09-28 | 2021-02-23 | EyeVerify Inc. | Secure image pipeline |
US10248307B2 (en) * | 2015-09-28 | 2019-04-02 | Adobe Inc. | Virtual reality headset device with front touch screen |
EP3351002A1 (en) * | 2015-10-14 | 2018-07-25 | ARRIS Enterprises LLC | High definition secure playback with downloadable drm for android platforms |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10565210B2 (en) * | 2015-11-23 | 2020-02-18 | Verizon Patent And Licensing Inc. | Generating and verifying a reputational profile |
US20170147155A1 (en) * | 2015-11-23 | 2017-05-25 | Verizon Patent And Licensing Inc. | Generating and verifying a reputational profile |
EP3381003B1 (en) | 2015-12-28 | 2020-02-12 | Mobeewave Inc. | System for and method of authenticating a user on a device |
EP3381003A4 (en) * | 2015-12-28 | 2018-10-31 | Mobeewave Inc. | System for and method of authenticating a user on a device |
AU2016380914B2 (en) * | 2015-12-28 | 2021-01-07 | Mobeewave Systems Ulc | System for and method of authenticating a user on a device |
US20210271764A1 (en) * | 2016-02-17 | 2021-09-02 | NEC Laboratories Europe GmbH | Method for storing data on a storage entity |
US11853437B2 (en) * | 2016-02-17 | 2023-12-26 | Nec Corporation | Method for storing data on a storage entity |
US11048805B2 (en) * | 2016-02-17 | 2021-06-29 | Nec Corporation | Method for storing data on a storage entity |
US20180165443A1 (en) * | 2016-11-02 | 2018-06-14 | Skeyecode | Methods for authenticating a user via a non-secure terminal |
US20180144112A1 (en) * | 2016-11-02 | 2018-05-24 | Skeyecode | Method for authenticating a user by means of a non-secure terminal |
US20180198774A1 (en) * | 2016-11-02 | 2018-07-12 | Skeyecode | Method for authenticating a user via a non-secure terminal |
EP3319069A1 (en) * | 2016-11-02 | 2018-05-09 | Skeyecode | Method for authenticating a user by means of a non-secure terminal |
EP3319067A1 (en) * | 2016-11-02 | 2018-05-09 | Skeyecode | Method for authenticating a user by means of a non-secure terminal |
US10565357B2 (en) * | 2016-11-02 | 2020-02-18 | Skeyecode | Method for securely transmitting a secret data to a user of a terminal |
CN108009418A (en) * | 2016-11-02 | 2018-05-08 | 斯凯耶科德公司 | For the method by non-security terminal authentication user |
US20180145827A1 (en) * | 2016-11-02 | 2018-05-24 | Skeyecode | Method for securely transmitting a secret data to a user of a terminal |
US20180198784A1 (en) * | 2016-11-02 | 2018-07-12 | Skeyecode | Method for securely performing a sensitive operation using a non-secure terminal |
WO2018096515A1 (en) * | 2016-11-28 | 2018-05-31 | Yello Company Limited | Touch screen pin terminal with security status indication |
US20180174129A1 (en) * | 2016-12-12 | 2018-06-21 | Topl, Llc | Method and Apparatus for Processing Mobile Payment Using Blockchain Techniques |
US11018874B2 (en) | 2016-12-13 | 2021-05-25 | Amazon Technologies, Inc. | Digital signature verification for asynchronous responses |
US10374809B1 (en) * | 2016-12-13 | 2019-08-06 | Amazon Technologies, Inc. | Digital signature verification for asynchronous responses |
US10097538B1 (en) * | 2017-08-12 | 2018-10-09 | Growpath, Inc. | User authentication systems and methods |
US11924197B1 (en) | 2017-08-12 | 2024-03-05 | Growpath, Llc | User authentication systems and methods |
US11265311B1 (en) | 2017-08-12 | 2022-03-01 | Growpath, Llc | User authentication systems and methods |
US11489666B2 (en) | 2017-08-25 | 2022-11-01 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Monitoring encrypted network traffic flows in a virtual environment using dynamic session key acquisition techniques |
US10992652B2 (en) * | 2017-08-25 | 2021-04-27 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for monitoring encrypted network traffic flows |
EP3486852A3 (en) * | 2017-11-15 | 2019-08-07 | Rubean AG | Method and an arrangement for triggering an electronic payment |
WO2019125182A1 (en) * | 2017-12-22 | 2019-06-27 | Protectoria As | Secure mobile platform |
CN110618847A (en) * | 2018-06-20 | 2019-12-27 | 华为技术有限公司 | User interface display method and terminal equipment |
EP3678021A4 (en) * | 2018-06-20 | 2020-12-30 | Huawei Technologies Co. Ltd. | User interface display method and terminal device |
US11716313B2 (en) | 2018-08-10 | 2023-08-01 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for implementing bandwidth limitations on specific application traffic at a proxy element |
US11483495B2 (en) | 2018-08-22 | 2022-10-25 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for implementing video stream switching |
US10846432B2 (en) | 2018-09-11 | 2020-11-24 | OneLogin, Inc. | Secure data leak detection |
EP3843413A4 (en) * | 2018-09-11 | 2021-09-08 | Huawei Technologies Co., Ltd. | Video stream switching method, device, and system |
US11212563B2 (en) | 2018-09-11 | 2021-12-28 | Huawei Technologies Co., Ltd. | Video stream switching method, apparatus, and system |
US11429753B2 (en) * | 2018-09-27 | 2022-08-30 | Citrix Systems, Inc. | Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications |
US20200104538A1 (en) * | 2018-09-27 | 2020-04-02 | Citrix Systems, Inc. | Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications |
US11010467B2 (en) * | 2018-10-30 | 2021-05-18 | Blue Popcon Co.Ltd | Multifactor-based password authentication |
US12126718B2 (en) | 2019-01-14 | 2024-10-22 | Samsung Electronics Co., Ltd | Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device |
US11641274B2 (en) * | 2019-03-22 | 2023-05-02 | Jpmorgan Chase Bank, N.A. | Systems and methods for manipulation of private information on untrusted environments |
US20220239692A1 (en) * | 2019-06-07 | 2022-07-28 | Lookout Inc. | Improving Mobile Device Security Using A Secure Execution Context |
US11336684B2 (en) * | 2019-06-07 | 2022-05-17 | Lookout, Inc. | Mobile device security using a secure execution context |
US11948233B2 (en) | 2019-10-24 | 2024-04-02 | Huawei Technologies Co., Ltd. | Image display method and electronic device |
CN112711452A (en) * | 2019-10-24 | 2021-04-27 | 华为技术有限公司 | Image display method and electronic equipment |
US11190417B2 (en) | 2020-02-04 | 2021-11-30 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for processing network flow metadata at a network packet broker |
US11763038B2 (en) | 2020-04-24 | 2023-09-19 | Wells Fargo Bank, N.A. | Secured file storage |
WO2021234476A1 (en) * | 2020-05-10 | 2021-11-25 | Eiko Onishi | De-identified identity proofing methods and systems |
US11606353B2 (en) | 2021-07-22 | 2023-03-14 | Biocatch Ltd. | System, device, and method of generating and utilizing one-time passwords |
Also Published As
Publication number | Publication date |
---|---|
KR101878149B1 (en) | 2018-08-17 |
US20130305392A1 (en) | 2013-11-14 |
US20130305041A1 (en) | 2013-11-14 |
US10009173B2 (en) | 2018-06-26 |
US20160234014A1 (en) | 2016-08-11 |
US10491379B2 (en) | 2019-11-26 |
US9124419B2 (en) | 2015-09-01 |
US9344275B2 (en) | 2016-05-17 |
US20180270048A1 (en) | 2018-09-20 |
KR20130125316A (en) | 2013-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491379B2 (en) | System, device, and method of secure entry and handling of passwords | |
CN103390124B (en) | Apparatus, system and method for secure entry and processing of passwords | |
US20180144114A1 (en) | Securing Blockchain Transactions Against Cyberattacks | |
US10616215B1 (en) | Virtual smart card to perform security-critical operations | |
US20150067786A1 (en) | Visual image authentication and transaction authorization using non-determinism | |
US9275257B2 (en) | Secure communication architecture | |
TR201810238T4 (en) | The appropriate authentication method and apparatus for the user using a mobile authentication application. | |
CN103051451A (en) | Encryption authentication of security service execution environment | |
BR112015000980B1 (en) | COMPUTER IMPLEMENTED VERIFICATION METHOD | |
KR20030057565A (en) | Anti-spoofing password protection | |
WO2015188424A1 (en) | Key storage device and method for using same | |
US9454677B1 (en) | Secure communication architecture including video sniffer | |
WO2013044192A2 (en) | Securing transactions against cyberattacks | |
CN101335754B (en) | Method for information verification using remote server | |
CN108616352A (en) | Dynamic password formation method based on safety element and system | |
CN113574828A (en) | Security chip, security processing method and related equipment | |
CN117751551A (en) | System and method for secure internet communications | |
WO2008053279A1 (en) | Logging on a user device to a server | |
WO2014039763A1 (en) | Visual image authentication and transaction authorization using non-determinism | |
EP4058921B1 (en) | Device and method for secure communication | |
US20240144232A1 (en) | Systems and methods for terminal device attestation for contactless payments | |
JP5361850B2 (en) | Access management system | |
JP2017098697A (en) | Signature verification system and signature verification method | |
KR20100120835A (en) | Security device and method using security input device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DISCRETIX TECHNOLOGIES LTD., ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BAR-EL, HAGAI;SELLA, YAACOV;ZIV, ALON;AND OTHERS;REEL/FRAME:029958/0113 Effective date: 20130113 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: ARM LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARM TECHNOLOGIES ISRAEL LIMITED;REEL/FRAME:043906/0343 Effective date: 20171016 |