WO2016200523A1 - Secure biometric data capture, processing and management - Google Patents

Secure biometric data capture, processing and management Download PDF

Info

Publication number
WO2016200523A1
WO2016200523A1 PCT/US2016/031433 US2016031433W WO2016200523A1 WO 2016200523 A1 WO2016200523 A1 WO 2016200523A1 US 2016031433 W US2016031433 W US 2016031433W WO 2016200523 A1 WO2016200523 A1 WO 2016200523A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution environment
biometric data
biometric
biometrics
trusted
Prior art date
Application number
PCT/US2016/031433
Other languages
French (fr)
Inventor
Niraj Bali
Kumar N. DWARAKANATH
Asaf Haskel
Gennadi IOSAD
Anoop K. JAYASANKARAN
Victoria C. Moore
Vinod Gomathi NAYAGAM
David ZAHAVI
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to KR1020177032147A priority Critical patent/KR102531418B1/en
Priority to CN201680027081.1A priority patent/CN107592933B/en
Priority to JP2017555632A priority patent/JP6887956B2/en
Priority to EP16807981.2A priority patent/EP3308312B1/en
Publication of WO2016200523A1 publication Critical patent/WO2016200523A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/50Maintenance of biometric data or enrolment thereof
    • G06V40/53Measures to keep reference information secret, e.g. cancellable biometrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Definitions

  • access control includes the selective restriction of access to a protected or otherwise secure resource.
  • resources may contain sensitive or confidential information.
  • Permission to access a resource occurs upon authentication of a user's identity.
  • Passwords, security tokens and biometrics are commonly used for such authentication. These techniques provide varying levels of security. For example, password authentication is relatively easy to implement, but passwords are easily forgotten. Further, stolen or guessed passwords permit unauthorized access to restricted resources.
  • a security token is a type of electronic key that, when used in conjunction with a password, can provide additional security. However, unauthorized access also occurs by users who illicitly intercept security tokens.
  • Biometrics authentication provides more security than passwords and security tokens because biometric identifiers, such as fingerprints, include distinctive and measurable physical characteristics, which are difficult to reproduce. Securing data representing biometric information reduces theft and misappropriation.
  • Figure 1 illustrates an example computing system configured for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
  • Figure 2A is a flow diagram of an example methodology for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
  • Figure 2B is a flow diagram of the example methodology of Figure 2A in further detail, in accordance with an embodiment of the present disclosure.
  • Figure 3 illustrates an example computing device configured for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
  • Figure 4 is a flow diagram of another example methodology for biometric data capture, processing and management in a computing environment, in accordance with an embodiment of the present disclosure.
  • Figure 5 illustrates a media system configured in accordance with an embodiment of the present disclosure.
  • Figure 6 illustrates a mobile computing system configured in accordance with an embodiment of the present disclosure.
  • a computing system such as a smart phone, tablet or other computing device, is designed upon a framework that supports biometrics hardware, firmware, or a combination of hardware and firmware.
  • the framework facilitates use of, among other things, an operating system, a trusted execution environment, and an untrusted execution environment.
  • the biometrics hardware/firmware includes a sensor hub, one or more biometric sensors (e.g., fingerprint, iris, voice, to name a few), and a security engine. Each sensor captures, or scans, a biometric sample (e.g., fingerprint pattern, iris structural feature, voice pattern).
  • Some sensors include a transducer configured to generate an electrical signal representing biometric data.
  • the biometrics hardware/firmware includes authenticated logic or circuitry for exclusively controlling and reading the sensors, in accordance with an embodiment.
  • the authenticated logic selectively isolates the biometrics hardware/firmware and unencrypted biometric sensor data from the remainder of the operating system and any applications, processes or components in at least the untrusted execution environment. Access to the biometric sensor(s) and the memory used to store unencrypted biometric data is limited to the sensor hub, the security engine, or both.
  • the authenticated logic encrypts the biometric data before other components of the system transfer the data into the trusted execution environment. Further, biometric applications and data stored in the trusted execution environment are isolated from the untrusted execution environment and unauthenticated operating system processes.
  • biometnc data are either encrypted or isolated from untrusted or unauthenticated components of the computing system.
  • Challenge-response authentication is a computer security technique in which user identity authentication occurs when the user provides a valid answer (response) to a question (challenge) posed by an authentication authority.
  • Passwords, security tokens and biometric fingerprints are several forms of challenge-response authentication. While passwords are easily implemented, they are also easily forgotten, stolen or otherwise compromised. Likewise, security tokens are easily lost or stolen.
  • biometric information is an intrinsic characteristic that is unique to each individual. As such, users cannot lose, forget or easily steal biometrics, as is the case with passwords, security tokens and other forms of challenge-response authentication.
  • biometric information in electronic form must be secured to prevent unauthorized tampering, interception or theft.
  • an unauthorized user can obtain an insecurely stored fingerprint scan, and use it for an attack in which the unauthorized user spoofs or otherwise imitates the identity of an authorized user to gain illegitimate access to a protected resource.
  • illegitimate algorithms configured to access and manipulate the fingerprint scan data can ovenide biometric data processing algorithms, which compromises the security the biometrics authentication intends to provide.
  • a computing system includes one or more biometric fingerprint sensors, a sensor hub, an untrusted application execution environment and a trusted application execution environment.
  • the sensor hub has exclusive access to the sensors and also isolates untrusted or unauthenticated portions of the operating system, and other processes executing on the computing system, from direct access to unencrypted biometric data acquired by the sensors.
  • the sensor hub prohibits access to the fingerprint sensors from other components of the system.
  • the sensor hub reads the sensors to obtain the biometric data associated with the fingerprint scan and stores the biometric data in a data storage component, such as a memory stack or register.
  • the security engine encrypts the biometric data stored in the data storage component before the sensor hub removes the data storage and sensor access restrictions.
  • the security engine processes the biometric data associated with the fingerprint scan and transfers a verifiable result to the trusted application execution environment for additional authorization processing.
  • Various components of the system e.g., a native library component
  • the trusted environment hosts algorithms for processing the biometric data. Further, processes executing outside of the trusted application execution environment cannot access the biometric data or the algorithms in the trusted application execution environment. While a fingerprint sensor is used in this example embodiment, other embodiments may employ other biometric sensors or any combination of such sensors and still operate in accordance with the techniques provided herein, as will be apparent in light of this disclosure.
  • biometrics refers to a measureable biological characteristic and a process for recognizing an individual possessing the biological characteristic.
  • the biological characteristic is, in some cases, anatomical or physiological, including fingerprints, palm features (e.g., veins), face features, DNA, signatures, voice features, hand features (e.g., geometry), iris structure, retina features, and scent details, to name a few examples. Any such characteristics can be generally captured in the form of a biometric sample or data captured by a biometric sensor.
  • the recognition process can include processing biometric data representing the biological characteristic to identify, and verify the identity of, an individual.
  • biometrics sensor refers to a device configured to acquire the data needed for biometrics recognition and verification.
  • Such devices may include, for example, fingerprint sensors, retina and iris sensors, cameras, microphones, and other such tools capable of collecting biometrics.
  • a fingerprint sensor may incorporate feature detection technologies such as optical fingerprint imaging, ultrasonic imaging, and capacitance imaging to capture details of a person's fingerprints.
  • An iris recognition sensor may incorporate video camera technology with near infrared illumination to capture images of a person's iris structure.
  • a face recognition sensor may incorporate high resolution video camera technology (e.g., pixel resolution, spatial resolution, spectral resolution, temporal resolution, and radiometric resolution) to capture high resolution images of a person's distinctive facial features.
  • a voice recognition sensor may include a microphone and possibly one or more audio filters, to capture a person's speech patterns. In some embodiments, a combination of such sensors may be used, to further increase security.
  • a sensor includes a transducer configured to generate an electrical signal representing biometric data.
  • biometric template refers to a digital representation of one or more biometric samples.
  • a fingerprint scan obtained using a fingerprint sensor may be converted into a biometric template that uniquely corresponds to a particular individual's fingerprint.
  • Various models and algorithms generate the biometric template and compare previously stored templates against candidate fingerprints for authentication purposes.
  • an image- or pattern-based algorithm may generate a template or compare two or more templates containing the type, size, shape and orientation of patterns that form the fingerprint.
  • biometric verification and “biometric authentication” refer to a process for confirming the identity of an individual by acquiring a biometric sample, such as a fingerprint scan or a voice scan or a face scan or an iris scan, and comparing the captured sample against a previously validated sample enrolled in a database. Verification or authentication results when a match between the samples occurs.
  • a validated sample is one which has been vetted by a trusted party or otherwise considered authentic and valid by a security authority responsible for performing the verification or authentication process.
  • biometric identification refers to a process for determining the identity of an individual by comparing a biometric sample, such as a fingerprint scan or a voice scan or a face scan or an iris scan, against one or more samples in a database to obtain a match. While in some cases verification and authentication may include identification, identification does not necessarily include a comparison with validated samples (e.g., identification may not lead to authentication).
  • a biometric sample such as a fingerprint scan or a voice scan or a face scan or an iris scan
  • FIG. 1 illustrates an example computing system 100 configured for biometric data capture, processing and management, in accordance with an embodiment.
  • the system 100 may be implemented, for example, in a smart phone, tablet computer, mobile device, desktop device, or any other suitable computing device.
  • the system 100 generally includes a biometrics component 110, an operating system 120, and an application execution environment 130.
  • the biometrics component 110 may include, for example, hardware, firmware, or both (e.g., embedded code that is accessible and executable by one or more local processors of the system).
  • the biometrics component 110 includes a sensor hub 112, one or more biometrics sensors 114 (e.g., a fingerprint sensor), and a security engine 116.
  • the sensor hub 112 includes circuitry and logic for interfacing other portions of the computing system 100 (e.g., via the operating system 120) with the biometrics sensor 114.
  • the sensor hub 112 further includes circuitry and logic for controlling and capturing biometric samples from the biometrics sensor 114.
  • the biometrics component 110 can operatively isolate the biometrics sensors 114 from direct access by the operating system 120 and the application execution environment 130.
  • the sensor hub 112 may include a common bus interface for communicating with the biometrics sensors 114.
  • Examples of such a common bus interface include a serial peripheral interface (SPI) and an SPI controller (e.g., SSP6), I 2 C (inter- integrated circuit), universal asynchronous receiver/transmitter (UART) and Mobile Industry Processor Interface (MIPI).
  • SPI serial peripheral interface
  • SSP6 SPI controller
  • I 2 C inter- integrated circuit
  • UART universal asynchronous receiver/transmitter
  • MIPI Mobile Industry Processor Interface
  • fingerprint biometrics sensors include, but are not limited to, capacitive sensors (Fingerprint Card 1020 Family, Synaptics 5100 family), optical (OxiTechnology all families of sensors, Authentic), and ultrasonic (UltraScan and Sonavation all families of sensors).
  • any of these sensors can include a transducer configured to generate an electrical signal representing biometric data.
  • the security engine 116 may include any type of hardware or software-based security engine that provides cryptographic functionality in a secure execution environment.
  • the security engine 116 may implement defined security schemes to provide encryption and de
  • the operating system 120 includes a data storage 122 (e.g., random-access memory, a data stack, or other data register).
  • the biometrics component 110 has direct access to the data storage 122.
  • the data storage 124 provides memory for storing biometric data received from the sensor hub 112.
  • the data storage 124 may temporarily store data representing a fingerprint scan before transfer of the data to the application execution environment 130 occurs.
  • the application execution environment 130 can access the data storage 122 via the operating system 120.
  • the sensor hub 112 selectively prohibits access to the data storage from the application execution environment.
  • the sensor hub 112 may prohibit, in response to a request from the application execution environment 130 to capture a biometric sample, access to the data storage 122 from the application execution environment 130, either directly or via the operating system 120.
  • This in combination with the operatively isolated biometrics component 110, serves to protect unencrypted biometric data obtained from a biometric sample from read and write access by other portions of the computing system 100, including the operating system 120 and the application execution environment 130.
  • the security engine 116 may, for example, encrypt the biometric data. Once the biometric data is encrypted, the sensor hub 112 allows access to the data storage 122 from the operating system 120 and the application execution environment 130.
  • the application execution environment 130 includes an untrusted application execution environment 132 and a trusted application execution environment 134.
  • the untrusted application execution environment 132 includes additional data storage that is not necessarily secure or otherwise protected from access by any process executing on the computing system 100.
  • trusted or untrusted processes executing on the computing system 100 may access data stored in the untrusted application execution environment 132.
  • Data stored or applications executing in the untrusted application execution environment 132 may include, for example, computer viruses or malicious content.
  • unauthorized or unauthenticated users, devices or applications may access or modify data and applications in the untrusted application execution environment 132.
  • the untrusted application execution environment 132 may not be suitable for storing or processing the biometric data.
  • the trusted application execution environment 134 includes data storage that is isolated from memory used by unauthorized or unauthenticated processes executing outside of the trusted application execution environment 134. Further, processes executing in the trusted application execution environment 134 have exclusive access to the data stored therein, to the exclusion of all processes executing outside of the trusted application execution environment 134. In this manner, the trusted application execution environment 134 securely quarantines certain data, including biometric data, stored therein from processes executing outside of the trusted application execution environment 134 (e.g., in the operating system 120 or the untrusted application execution environment 132).
  • the memory or other data storage elements forming portions of the untrusted application execution environment 132 can be physically separate from, or integrated with, the memory or other data storage elements forming portions of the trusted application execution environment 134, depending on the application.
  • hardware e.g., separate data buses, non-shared memory
  • firmware or software e.g., segmentation, process isolation, virtual addressing, protection keys, privileges and permissions, address masks, etc.
  • FIG. 2A is a flow diagram of an example methodology for biometric data capture, processing and management, in accordance with an embodiment.
  • Figure 2B is a flow diagram of the example methodology of Figure 2A in further detail, in accordance with an embodiment.
  • An untrusted application 202 executes in a portion of a computer processing environment, such as the untrusted application execution environment 132 of Figure 1.
  • the untrusted application 202 requests biometric authentication of a user 204.
  • biometric authentication may, for example, serve as a prerequisite for permitting the untrusted application 202 to access certain protected or secure information or perform certain functions that are restricted to authorized users.
  • other suitable authentication techniques such as passwords or security tokens, may supplement biometric authentication.
  • a separate portion of the computer processing environment e.g., the trusted application execution environment 134, the operating system kernel 120, the biometrics component 110, or any combination of these
  • collects 210 biometric data e.g., a fingerprint scan
  • biometric data e.g., a fingerprint scan
  • the secure collection of biometric data 210 can include one or more of the following: generating 212a cryptographic key, prohibiting 214 access to a data storage from the operating system, and capturing, encrypting and storing 216 biometric data in the data storage.
  • the biometric data is transmitted 220 from one portion of the computer processing environment to another.
  • the transmission of the biometric data 220 can include one or more of the following: allowing 222 access to the data storage from the operating system, and transferring 224 the biometric data from the data storage to a trusted environment.
  • the biometric data may be transmitted from the biometrics component 110 to the operating system kernel 120 (e.g., the data storage 124), and further to the trusted application execution environment 134.
  • the biometric data are transmitted 220 securely (e.g., in an encrypted form), such that the untrusted application 202 never has access to the biometric data in an unencrypted or otherwise unsecured form.
  • processing and management 230 of the biometric data occurs in a similarly secure manner independent of and separate from the untrusted application 202.
  • decryption and processing 232 of the biometric data may occur within the trusted environment to generate a template for enrolling a fingerprint scan or for validation against a previously enrolled fingerprint scan. Any cryptographic keys used to encrypt and decrypt the biometric data are never exposed to the untrusted application 202.
  • the untrusted application 202 never has direct access to the biometric data in an unencrypted or otherwise unsecured form, the biometrics component, or any process or communication channel that collects, transmits, processes or manages the biometric data in an unencrypted or otherwise unsecured form.
  • FIG. 3 illustrates an example computing device 300 configured for biometric data capture, processing and management, in accordance with an embodiment.
  • the computing device 300 includes a biometrics component 310, an operating system component 320, an untrusted environment component 330 and a trusted and secure environment component 340.
  • the biometrics component 310 includes a sensor hub 312, one or more biometric fingerprint sensors 314, and a security engine 316.
  • the sensor hub 312 and the security engine 316 have exclusive access to the biometric fingerprint sensors 314 by configuring one or more access control registers (not shown) integrated into the computing device 300.
  • the sensor hub 312 executes one or more applications or processes.
  • the operating system component 320 includes a sensor hub inter-process communication (IPC) component 322, a data storage component 324, a security engine interface component 326, and a biometrics driver component 328.
  • the untrusted environment 330 includes one or more of the following: an untrusted application 332, a biometrics service 334, and a biometrics service library 336.
  • the biometrics service 334 may, for example, provide one or more application programming interfaces (APIs) for enrolling, verifying and identifying users via the biometrics hardware/firmware 310.
  • APIs application programming interfaces
  • the untrusted application 332 can use any standard biometrics APIs to enroll, verify and identify users.
  • the trusted and secure environment 340 includes one or more of the following: a trusted biometrics application 342 and a trusted biometrics service 344.
  • the sensor hub 312 may include one or more of the following: a sensor processing module 350 and a sensor interface 352.
  • the computing device 300 may be implemented in one or more mobile or desktop computing devices, such as a smart phone, tablet, desktop computer, user terminal, point-of- sale terminal, automated teller machine, vending machine, airport check-in system, embedded device controller, vehicle control system, facility access control system, or other device or system or combination of devices or systems in which biometrics are utilized for user identification and authentication.
  • mobile or desktop computing devices such as a smart phone, tablet, desktop computer, user terminal, point-of- sale terminal, automated teller machine, vending machine, airport check-in system, embedded device controller, vehicle control system, facility access control system, or other device or system or combination of devices or systems in which biometrics are utilized for user identification and authentication.
  • the untrusted application 332 can include any application executing on the computing device 300 that involves biometric identification or authentication of a user.
  • An example of such an application includes an online banking application that uses biometric information to identify and authenticate the user prior to allowing the user to perform certain financial transactions. For instance, instead of, or in addition to, logging into the banking application for a financial institution using a username and password, the untrusted application 332 obtains a fingerprint scan of the user.
  • a comparison of biometric data obtained from the fingerprint scan to known and validated biometric data determines who the user is and whether the user is permitted to perform certain functions, such as checking an account balance, withdrawing or transferring funds, making a purchase, and other types of transactions that are available only to users authorized by the financial institution.
  • certain functions such as checking an account balance, withdrawing or transferring funds, making a purchase, and other types of transactions that are available only to users authorized by the financial institution.
  • Other examples of applications where biometric-based security can be used will be apparent in light of this disclosure.
  • the device 300 does not permit applications or other processes executing in the untrusted environment 330, including the untrusted application 332, to directly access sensitive data that unauthorized users could exploit for improper purposes or otherwise misuse. As such, the device 300 does not permit the untrusted application 332 to access or otherwise intercept or manipulate biometric data, at least in an unencrypted form. Instead, the untrusted application 332 achieves biometric-based identification or authorization indirectly via a request sent to other components of the computing device 300, including but not limited to the trusted biometrics application 342, the data storage component 324, and the biometrics component 310.
  • such other components are designed to maintain the integrity and security of biometric data, and further designed to isolate the biometrics component 310 and data storage 324 from the untrusted environment.
  • the request may include, for example, a request to enroll a new fingerprint scan into a database or to authenticate a new fingerprint scan against a previously enrolled fingerprint scan, and to return a result of such enrollment or authentication, such as "succeed" or "fail.”
  • the biometrics service 334 provides one or more APIs that facilitate submission of the request from the untrusted application 332 to various other components of the computing device 300, such as the sensor hub IPC 322.
  • the driver 328 sends a command to the trusted biometrics application 342 via the trusted biometrics service 344 to generate a cryptographic key for encrypting biometric data captured from the biometric fingerprint sensor 314.
  • the trusted biometrics application 342 generates the cryptographic key and supplies the key to the security engine 316 via the security engine interface 326.
  • the sensor hub IPC 322 sends a command to the sensor hub 312 and the fingerprint sensor 314 to capture a biometric sample.
  • the data storage 324 is shared between the operating system 320, the sensor hub 312 and the security engine 326.
  • the sensor hub 312 locks the data storage 324 before capturing the biometric sample to prohibit the operating system 320 from accessing the data storage 324.
  • the sensor processing module 350 uses the sensor interface 352 to acquire raw biometric data representing the biometric sample, and stores the raw biometric data in the data storage 324.
  • the sensor processing module 350 calls the security engine 326 to encrypt the raw biometric data using the cryptographic key before sending the biometric data to the operating system 320.
  • the sensor hub 312 unlocks access to the data storage 324 once the biometric data stored in the data storage has been encrypted.
  • the sensor hub IPC 322 collects the encrypted biometric data from the data storage 324 and copies it to a buffer in the untrusted environment 330.
  • the biometrics service library 336 then transfers the encrypted biometric data to the trusted and secure environment 340.
  • the trusted biometrics application 342 decrypts the data using the same cryptographic key used by the security engine 316 to encrypt the biometric data.
  • the trusted biometrics application 342 checks the biometric data for integrity and validity, pre-processes the data, extracts a biometric template, and stores the template in an encrypted form or compares the template against a previously enrolled template.
  • Figure 4 is a flow diagram of another example methodology for biometric data capture, processing and management in a computing environment, in accordance with an embodiment.
  • various steps of the example methodology are defined with respect to the various components of the computing device of Figure 2.
  • some or all of these steps may be performed by components that are different than those expressly referenced in this example embodiment, including components that are combinations of separately described components, components that are subsets of individually described components, components that are remote from the computing environment (e.g., a client- server scheme), or components located in separate computing environments or separate portions of a computing environment.
  • performance of one or more of these steps may occur in different sequences than those expressly described in this example embodiment, or omitted entirely.
  • the example flow diagram of Figure 4 only provides a general overview of one example methodology, and does not limit the scope of various other embodiments.
  • the example methodology includes one or more of the following actions: generating a cryptographic key for encrypting and decrypting biometric data, restricting biometrics hardware/firmware access to certain components in the computing environment, capturing biometric data (e.g., a fingerprint scan), encrypting and transferring the biometric data to a trusted environment, and further processing and storing the biometric data in the trusted environment.
  • the example methodology can further include reporting the result of such processing to applications executing in the untrusted environment. For example, the result of a fingerprint scan enrollment or authentication may be reported to an untrusted application as a success or failure. In turn, the example methodology may grant or deny access by the untrusted application to a protected resource based on the result.
  • an untrusted application which may execute in an untrusted environment, issues 402 a biometrics authentication request.
  • a request may issue, for example, when the untrusted application needs to obtain authentication of a user for accessing a protected resource (e.g., data, services or applications) owned by the user or otherwise protected from unauthorized access on behalf of the user.
  • Any application executing in the computing environment may issue a biometrics authentication request.
  • Such applications are not limited to those executing in an untrusted environment and may include applications or other processes executing in other portions of the computing environment or in separate computing environments, including the trusted environment, the operating system kernel and any hardware or firmware.
  • An untrusted biometrics service executing in the untrusted environment receives the biometrics authentication request.
  • the untrusted biometrics service instantiates 404 a biometrics authentication session in which biometric data is captured, transmitted, processed, or managed.
  • the biometrics authentication session may include one or more of the actions described with respect to Figure 4.
  • the untrusted biometrics service calls 406 a trusted biometrics application.
  • the trusted biometrics application executes in a trusted environment, which may include isolated memory regions or other data storage components to which access is restricted to components executing in the trusted environment.
  • the trusted biometric application In response to receiving the call from the untrusted biometrics service, the trusted biometric application generates a cryptographic key 408 via a trusted biometrics service, also within the trusted environment.
  • the trusted biometrics service may operate in conjunction with a security engine to generate the cryptographic key.
  • the trusted biometrics service may call the security engine requesting the cryptographic key, and the security engine may generate the cryptographic key on behalf of the trusted biometrics service and return the cryptographic key to the trusted biometrics service using a secure or dedicated communication channel.
  • the security engine may also share the cryptographic key with, for example, the sensor hub.
  • a data storage component Prior to scanning a fingerprint, access to a data storage component, such as a kernel stack, is restricted to a sensor hub, a security engine, or both 410 in the hardware/firmware of the computing environment. As a result, access to the kernel stack from the untrusted environment is not permitted. Access to the kernel stack is restricted so as to prevent untrusted or unauthenticated applications or components in the computing environment from gaining access to any unencrypted or otherwise unsecured biometric data acquired during the biometrics authentication session.
  • biometric data is captured 412 from a fingerprint sensor and placed 414 on the kernel stack.
  • the captured biometrics sensor data can additionally or alternatively be stored in other data storage components within the hardware/firmware, kernel or trusted environment for which access is suitably restricted to authenticated or trusted components in the computing environment.
  • the sensor hub or the security engine encrypts 416 the biometric data using the cryptographic key while the biometric data resides on the kernel stack and while access to the kernel stack is restricted to the sensor hub, the security engine, or both. Subsequent to encrypting the biometric data, the sensor hub removes 418 the kernel stack access restriction, which allows access to the kernel stack from the application execution environment.
  • the biometrics service library transfers 420 the encrypted biometric data to a trusted and secure environment, which is not directly accessible by the operating system or other untrusted processes and components of the computing environment.
  • a trusted biometrics application decrypts 422 the encrypted biometric data using the cryptographic key and further processes 424 the biometric data. Such further processing may include, for example, generating a biometric template corresponding to the biometric data (e.g., fingerprint scan) or making additional authorization decisions based on the processed data received.
  • a biometric template based on the biometrics sensor data may be stored in the trusted environment for future use during biometric validation, authentication or identification, as needed.
  • the trusted environment provides secure data storage for the biometric template by ensuring that applications, processes or components outside of the trusted environment have no access to the biometric template. Isolated, protected or encrypted memory regions may, for example, provide secure storage of biometric data and templates.
  • the trusted biometrics application enrolls or authenticates 426 the biometric template. For example, if a biometric sample is obtained from an individual for the first time, the resulting biometric template may be enrolled in a database for comparison with subsequently obtained samples. On the other hand, if a validated biometric template is already enrolled, the biometric template may be used for verification or authentication against the enrolled template.
  • the untrusted application is subsequently notified of the result of the enrollment or authentication 430. For example, if the authentication results in a match between an enrolled biometric template and the current biometric template, the untrusted application may be notified that the user is authorized to access the protected resource. In some cases, the notification may include a security token or other information that the untrusted application can use to access the protected resource.
  • the biometrics authentication session may end, and the untrusted application notifies 432 the user of the result.
  • the example methodology includes notifying the user of the untrusted application of the result of the biometric authentication (e.g., via a "pass" or "fail” message or other indication). This example methodology may be repeated each time any application executing in the computing environment requests biometrics authentication.
  • FIG. 5 illustrates an example system 500 that may carry out techniques for biometric data capture, processing and management, in accordance with an embodiment.
  • system 500 may be a media system although system 500 is not limited to this context.
  • system 500 may be incorporated into a personal computer (PC), laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cellular telephone, combination cellular telephone/PDA, television, smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, set-top box, game console, or other such computing environments capable of performing graphics rendering operations.
  • PC personal computer
  • PDA personal digital assistant
  • cellular telephone combination cellular telephone/PDA
  • television smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, set-top box, game console, or other such computing environments capable of performing graphics rendering operations.
  • smart device e.g., smart phone, smart tablet
  • system 500 includes a platform 502 coupled to a display 520.
  • Platform 502 may receive content from a content device such as content services device(s) 530 or content delivery device(s) 540 or other similar content sources.
  • a navigation controller 550 comprising one or more navigation features may be used to interact with, for example, platform 502 and/or display 520. Each of these example components is described in more detail below.
  • platform 502 includes any combination of a chipset 505, processor 510, memory 512, storage 514, graphics subsystem 515, applications 516 and/or radio 518.
  • Chipset 505 provides intercommunication among processor 510, memory 512, storage 514, graphics subsystem 515, applications 516 and/or radio 518.
  • chipset 505 may include a storage adapter (not depicted) capable of providing intercommunication with storage 514.
  • Processor 510 may be implemented, for example, as Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processors, x86 instruction set compatible processors, multi-core, or any other microprocessor or central processing unit (CPU).
  • processor 510 includes dual-core processor(s), dual-core mobile processor(s), and so forth.
  • Memory 612 may be implemented, for instance, as a volatile memory device such as, but not limited to, a Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), or Static RAM (SRAM).
  • RAM Random Access Memory
  • DRAM Dynamic Random Access Memory
  • SRAM Static RAM
  • Storage 514 may be implemented, for example, as a non-volatile storage device such as, but not limited to, a magnetic disk drive, optical disk drive, tape drive, an internal storage device, an attached storage device, flash memory, battery backed-up SDRAM (synchronous DRAM), and/or a network accessible storage device.
  • storage 514 includes technology to increase the storage performance enhanced protection for valuable digital media when multiple hard drives are included, for example.
  • Graphics subsystem 515 may perform processing of images such as still or video for display.
  • Graphics subsystem 515 may be a graphics processing unit (GPU) or a visual processing unit (VPU), for example.
  • An analog or digital interface may be used to communicatively couple graphics subsystem 515 and display 520.
  • the interface may be any of a High-Definition Multimedia Interface, DisplayPort, wireless HDMI, and/or wireless HD compliant techniques.
  • Graphics subsystem 515 can be integrated into processor 510 or chipset 505.
  • Graphics subsystem 515 can be a stand-alone card communicatively coupled to chipset 505.
  • the graphics and/or video processing techniques described herein may be implemented in various hardware architectures.
  • hardware assisted privilege access violation check functionality as provided herein may be integrated within a graphics and/or video chipset.
  • a discrete security processor may be used.
  • the graphics and/or video functions including hardware assist for privilege access violation checks may be implemented by a general purpose processor, including a multi-core processor.
  • Radio 518 can include one or more radios capable of transmitting and receiving signals using various suitable wireless communications techniques. Such techniques may involve communications across one or more wireless networks. Exemplary wireless networks include (but are not limited to) wireless local area networks (WLANs), wireless personal area networks (WPANs), wireless metropolitan area network (WMANs), cellular networks, and satellite networks. In communicating across such networks, radio 618 may operate in accordance with one or more applicable standards in any version.
  • WLANs wireless local area networks
  • WPANs wireless personal area networks
  • WMANs wireless metropolitan area network
  • cellular networks and satellite networks.
  • satellite networks In communicating across such networks, radio 618 may operate in accordance with one or more applicable standards in any version.
  • display 520 includes any television or computer type monitor or display.
  • Display 520 may comprise, for example, a liquid crystal display (LCD) screen, electrophoretic display (EPD or liquid paper display, flat panel display, touch screen display, television-like device, and/or a television.
  • Display 520 can be digital and/or analog.
  • display 520 is a holographic or three-dimensional display.
  • display 520 can be a transparent surface that may receive a visual projection.
  • projections may convey various forms of information, images, and/or objects.
  • MAR mobile augmented reality
  • platform 502 Under the control of one or more software applications 516, platform 502 can display a user interface 522 on display 620.
  • MAR mobile augmented reality
  • content services device(s) 530 can be hosted by any national, international and/or independent service and thus accessible to platform 502 via the Internet or other network, for example.
  • Content services device(s) 530 can be coupled to platform 502 and/or to display 520.
  • Platform 502 and/or content services device(s) 630 can be coupled to a network 560 to communicate (e.g., send and/or receive) media information to and from network 560.
  • Content delivery device(s) 540 can be coupled to platform 502 and/or to display 520.
  • content services device(s) 530 includes a cable television box, personal computer, network, telephone, Internet enabled devices or appliance capable of delivering digital information and/or content, and any other similar device capable of unidirectionally or bidirectionally communicating content between content providers and platform 502 and/display 520, via network 560 or directly. It will be appreciated that the content may be communicated unidirectionally and/or bidirectionally to and from any one of the components in system 500 and a content provider via network 560. Examples of content may include any media information including, for example, video, music, graphics, text, medical and gaming content, and so forth.
  • Content services device(s) 530 receives content such as cable television programming including media information, digital information, and/or other content. Examples of content providers may include any cable or satellite television or radio or Internet content providers. The provided examples are not intended to limit the scope of the present disclosure.
  • platform 502 receives control signals from navigation controller 550 having one or more navigation features. The navigation features of controller 550 may be used to interact with user interface 522, for example.
  • navigation controller 550 can be a pointing device that may be a computer hardware component (specifically human interface device) that allows a user to input spatial (e.g., continuous and multi-dimensional) data into a computer. Many systems such as graphical user interfaces (GUI), and televisions and monitors allow the user to control and provide data to the computer or television using physical gestures.
  • GUI graphical user interfaces
  • Movements of the navigation features of controller 550 can be echoed on a display (e.g., display 520) by movements of a pointer, cursor, focus ring, or other visual indicators displayed on the display.
  • a display e.g., display 520
  • the navigation features located on navigation controller 550 may be mapped to virtual navigation features displayed on user interface 522.
  • controller 550 is not a separate component but rather is integrated into platform 502 and/or display 520.
  • drivers include technology to enable users to instantly turn on and off platform 502 like a television with the touch of a button after initial boot-up, when enabled, for example.
  • Program logic may allow platform 502 to stream content to media adaptors or other content services device(s) 530 or content delivery device(s) 540 when the platform is turned "off.”
  • chip set 505 may comprise hardware and/or software support for 5.1 surround sound audio and/or high definition 7.1 surround sound audio, for example.
  • Drivers may include a graphics driver for integrated graphics platforms.
  • the graphics driver includes a peripheral component interconnect (PCI) express graphics card.
  • PCI peripheral component interconnect
  • any one or more of the components shown in system 500 can be integrated.
  • platform 502 and content services device(s) 530 may be integrated, or platform 502 and content delivery device(s) 540 may be integrated, or platform 502, content services device(s) 530, and content delivery device(s) 540 may be integrated, for example.
  • platform 502 and display 520 may be an integrated unit.
  • Display 520 and content service device(s) 530 may be integrated, or display 520 and content delivery device(s) 540 may be integrated, for example.
  • system 500 can be implemented as a wireless system, a wired system, or a combination of both.
  • system 500 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, and so forth.
  • a wireless shared media may include portions of a wireless spectrum, such as the RF spectrum and so forth.
  • system 500 can include components and interfaces suitable for communicating over wired communications media, such as input/output (I/O) adapters, physical connectors to connect the I/O adapter with a corresponding wired communications medium, a network interface card (NIC), disc controller, video controller, audio controller, and so forth.
  • wired communications media include a wire, cable, metal leads, printed circuit board (PCB), backplane, switch fabric, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, and so forth.
  • Platform 502 can establish one or more logical or physical channels to communicate information.
  • the information may include media information and control information.
  • Media information refers to any data representing content meant for consumption by a user. Examples of content include, for example, data from a voice conversation, videoconference, streaming video, email or text messages, voice mail message, alphanumeric symbols, graphics, image, video, text and so forth.
  • Control information refers to any data representing commands, instructions or control words meant for used by an automated system. For example, control information may be used to route media information through a system, or instruct a node to process the media information in a predetermined manner (e.g., using hardware assisted for privilege access violation checks as described herein).
  • the embodiments are not limited to the elements or context shown or described in Figure 5.
  • system 500 may be embodied in varying physical styles or form factors.
  • Figure 6 illustrates embodiments of a small form factor device 600 in which system 500 may be embodied.
  • device 600 may be implemented as a mobile computing device having wireless capabilities.
  • a mobile computing device refers to any device having a processing system and a mobile power source or supply, such as one or more batteries, for example.
  • examples of a mobile computing device include a personal computer (PC), laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cellular telephone, combination cellular telephone/PDA, television, smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, and so forth.
  • PC personal computer
  • laptop computer ultra-laptop computer
  • tablet touch pad
  • portable computer handheld computer
  • palmtop computer personal digital assistant
  • PDA personal digital assistant
  • cellular telephone e.g., cellular telephone/PDA
  • television smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, and so forth.
  • smart device e.g., smart phone, smart tablet or smart television
  • MID mobile internet device
  • Examples of a mobile computing device also include computers that are arranged to be worn by a person, such as a wrist computer, finger computer, ring computer, eyeglass computer, belt-clip computer, arm-band computer, shoe computers, clothing computers, and other wearable computers.
  • a mobile computing device may be implemented as a smart phone capable of executing computer applications, as well as voice communications and/or data communications.
  • voice communications and/or data communications may be implemented using other wireless mobile computing devices as well.
  • device 600 includes a housing 602, a display 604, an input/output (I/O) device 606, and an antenna 608.
  • Device 600 may, for example, include navigation features 612.
  • Display 604 includes any suitable display unit for displaying information appropriate for a mobile computing device.
  • I/O device 606 includes any suitable I/O device for entering information into a mobile computing device. Examples for I/O device 606 include an alphanumeric keyboard, a numeric keypad, a touch pad, input keys, buttons, switches, rocker switches, microphones, speakers, voice recognition device and software, and so forth. Information may be entered into device 600 by way of microphone. Such information may be digitized by a voice recognition device.
  • Various embodiments can be implemented using hardware elements, software elements, or a combination of both.
  • hardware elements includes processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth.
  • Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Whether hardware elements and/or software elements are used may vary from one embodiment to the next in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
  • Some embodiments may be implemented, for example, using a machine-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with an embodiment of the present disclosure.
  • a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and software.
  • the machine- readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto- optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like.
  • the instructions may include any suitable type of executable code implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
  • processing refers to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical quantities (e.g., electronic) within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or displays.
  • physical quantities e.g., electronic
  • Example 1 is computing system including an application execution environment, an operating system, a data storage selectively accessible from the application execution environment via the operating system, and a biometrics component having direct access to the data storage.
  • the biometrics component is configured to selectively prohibit access to the data storage from the application execution environment.
  • Example 2 includes the subject matter of Example 1, where the biometrics component comprises a biometrics sensor, and where the biometrics component is further configured to prohibit, in response to a request from the application execution environment to capture a biometric sample, access to the data storage from the application execution environment, capture the biometric sample with the biometrics sensor to obtain biometric data, encrypt the biometric data using a cryptographic key, store the encrypted biometric data in the data storage component, and allow access to the data storage from the application execution environment via the operating system subsequent to encrypting the biometric data.
  • the biometrics component comprises a biometrics sensor
  • the biometrics component is further configured to prohibit, in response to a request from the application execution environment to capture a biometric sample, access to the data storage from the application execution environment, capture the biometric sample with the biometrics sensor to obtain biometric data, encrypt the biometric data using a cryptographic key, store the encrypted biometric data in the data storage component, and allow access to the data storage from the application execution environment via the operating system subsequent to
  • Example 3 includes the subject matter of any of the above examples, where the biometrics component includes a biometrics sensor and a security engine, and where the security engine is configured to encrypt biometric data obtained from the biometrics sensor.
  • the biometric sensor may be, for example, a fingerprint sensor, microphone, camera, or any other such tool that allows a biometric sample to be captured.
  • Example 4 includes the subject matter of any of the above examples, where the application execution environment includes an untrusted application execution environment having access to the data storage via the operating system, and a trusted application execution environment having access to the data storage via the operating system.
  • Example 5 includes the subject matter of Example 4, where the untrusted application execution environment is operatively isolated from the trusted application execution environment.
  • Example 6 includes the subject matter of any of Examples 4 and 5, where the operating system is configured to transfer the encrypted biometric data from the data storage to the trusted application execution environment.
  • Example 7 includes the subject matter of any of Examples 4, 5 and 6, where the trusted application execution environment includes a biometrics application configured to enroll a user based on biometric data obtained from a biometrics sensor, authenticate the user based the biometric data, or both.
  • the trusted application execution environment includes a biometrics application configured to enroll a user based on biometric data obtained from a biometrics sensor, authenticate the user based the biometric data, or both.
  • Example 8 includes the subject matter of any of Examples 4, 5, 6 and 7, where the trusted application execution environment includes a biometrics application configured to decrypt encrypted biometric data obtained from a biometrics sensor using a cryptographic key.
  • Example 9 includes the subject matter of any of Example 4, 5, 6, 7 and 8, where the trusted application execution environment includes a biometrics application configured to process biometric data obtained from a biometrics sensor to generate a biometric template.
  • Example 10 is a method of capturing, processing and managing biometric data in a computing system.
  • the method includes prohibiting, in response to a request from an application execution environment of the computing system to capture a biometric sample, access to a data storage component of the computing system from the application execution environment, capturing a biometric sample with a biometrics sensor to obtain biometric data, encrypting the biometric data using a cryptographic key, storing the encrypted biometric data in the data storage component, and allowing access to the data storage component from the application execution environment subsequent to encrypting the biometric data.
  • Example 11 includes the subject matter of Example 10, where the encrypting of the biometric data is performed by a biometrics component of the computing system independently of the operating system.
  • Example 12 includes the subject matter of any of Examples 10 and 11, where the method includes transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, and where an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
  • Example 13 includes the subject matter of Example 12, where the method includes generating the cryptographic key within the trusted execution environment.
  • Example 14 includes the subject matter of any of Examples 12 and 13, where the method includes decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
  • Example 15 includes the subject matter of any of Examples 12, 13 and 14, where the method includes processing the biometric data to generate a biometric template within the trusted execution environment.
  • Example 16 includes the subject matter of any of Examples 12, 13, 14 and 15, where the method includes enrolling the user, authenticating the user based on the biometric data, or both.
  • Example 17 is a non-transient computer program product having instructions encoded thereon that when executed by one or more processors cause a process to be carried out.
  • the process includes prohibiting, in response to a request from an application execution environment of the computing system to capture a biometric sample, access to a data storage component of the computing system from the application execution environment, capturing a biometric sample with a biometrics sensor to obtain biometric data, encrypting the biometric data using a cryptographic key, storing the encrypted biometric data in the data storage component, and allowing access to the data storage component from the application execution environment subsequent to encrypting the biometric data.
  • Example 18 includes the subject matter of Example 17, where the encrypting of the biometric data is performed by a biometrics component of the computing system independently of the operating system.
  • Example 19 includes the subject matter of any of Examples 17 and 18, where the process includes transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, and where an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
  • Example 20 includes the subject matter of Example 19, where the process includes generating the cryptographic key within the trusted execution environment.
  • Example 21 includes the subject matter of any of Examples 19 and 20, where the process includes decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
  • Example 22 includes the subject matter of any of Examples 19, 20 and 21, where the process includes processing the biometric data to generate a biometric template within the trusted execution environment.
  • Example 23 includes the subject matter of any of Examples 19, 20, 21 and 22, where the process includes enrolling the user, authenticating the user based on the biometric data, or both.

Abstract

A system includes one or more biometric sensors, a sensor hub and a trusted application execution environment. The sensor hub has exclusive access to the sensors and also isolates untrusted/unauthenticated portions of the operating system from direct access to unencrypted biometric data acquired by the sensors. During a biometric scan/collection process, only the sensor hub and a security engine can access the sensors and a storage component. The sensor hub reads the sensors to obtain the biometric data associated with the scan/collection process and stores the biometric data in the storage component. The security engine encrypts the biometric data before the sensor hub removes the access restrictions. Various components transfer the encrypted biometric data from the storage component to the trusted environment, which hosts algorithms for processing the biometric data.

Description

SECURE BIOMETRIC DATA CAPTURE, PROCESSING AND MANAGEMENT
BACKGROUND
[0001] In the field of information security, access control includes the selective restriction of access to a protected or otherwise secure resource. Such resources may contain sensitive or confidential information. Permission to access a resource occurs upon authentication of a user's identity. Passwords, security tokens and biometrics are commonly used for such authentication. These techniques provide varying levels of security. For example, password authentication is relatively easy to implement, but passwords are easily forgotten. Further, stolen or guessed passwords permit unauthorized access to restricted resources. A security token is a type of electronic key that, when used in conjunction with a password, can provide additional security. However, unauthorized access also occurs by users who illicitly intercept security tokens. Biometrics authentication provides more security than passwords and security tokens because biometric identifiers, such as fingerprints, include distinctive and measurable physical characteristics, which are difficult to reproduce. Securing data representing biometric information reduces theft and misappropriation.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Figure 1 illustrates an example computing system configured for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
[0003] Figure 2A is a flow diagram of an example methodology for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
[0004] Figure 2B is a flow diagram of the example methodology of Figure 2A in further detail, in accordance with an embodiment of the present disclosure. [0005] Figure 3 illustrates an example computing device configured for biometric data capture, processing and management, in accordance with an embodiment of the present disclosure.
[0006] Figure 4 is a flow diagram of another example methodology for biometric data capture, processing and management in a computing environment, in accordance with an embodiment of the present disclosure.
[0007] Figure 5 illustrates a media system configured in accordance with an embodiment of the present disclosure.
[0008] Figure 6 illustrates a mobile computing system configured in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION
[0009] Techniques are disclosed for biometric data capture, processing and management. In particular, according to an embodiment, a computing system, such as a smart phone, tablet or other computing device, is designed upon a framework that supports biometrics hardware, firmware, or a combination of hardware and firmware. The framework facilitates use of, among other things, an operating system, a trusted execution environment, and an untrusted execution environment. The biometrics hardware/firmware includes a sensor hub, one or more biometric sensors (e.g., fingerprint, iris, voice, to name a few), and a security engine. Each sensor captures, or scans, a biometric sample (e.g., fingerprint pattern, iris structural feature, voice pattern). Some sensors include a transducer configured to generate an electrical signal representing biometric data. The biometrics hardware/firmware includes authenticated logic or circuitry for exclusively controlling and reading the sensors, in accordance with an embodiment. In particular, the authenticated logic selectively isolates the biometrics hardware/firmware and unencrypted biometric sensor data from the remainder of the operating system and any applications, processes or components in at least the untrusted execution environment. Access to the biometric sensor(s) and the memory used to store unencrypted biometric data is limited to the sensor hub, the security engine, or both. The authenticated logic encrypts the biometric data before other components of the system transfer the data into the trusted execution environment. Further, biometric applications and data stored in the trusted execution environment are isolated from the untrusted execution environment and unauthenticated operating system processes. In this manner, only authenticated operating system processes and trusted components of the computing system have access to the sensor(s), and at all times biometnc data are either encrypted or isolated from untrusted or unauthenticated components of the computing system. Numerous variations and configurations will be apparent in light of this disclosure.
General Overview
[0010] Challenge-response authentication is a computer security technique in which user identity authentication occurs when the user provides a valid answer (response) to a question (challenge) posed by an authentication authority. Passwords, security tokens and biometric fingerprints are several forms of challenge-response authentication. While passwords are easily implemented, they are also easily forgotten, stolen or otherwise compromised. Likewise, security tokens are easily lost or stolen. In contrast to passwords and security tokens, biometric information is an intrinsic characteristic that is unique to each individual. As such, users cannot lose, forget or easily steal biometrics, as is the case with passwords, security tokens and other forms of challenge-response authentication. However, once collected, biometric information in electronic form must be secured to prevent unauthorized tampering, interception or theft. For instance, an unauthorized user can obtain an insecurely stored fingerprint scan, and use it for an attack in which the unauthorized user spoofs or otherwise imitates the identity of an authorized user to gain illegitimate access to a protected resource. Further, illegitimate algorithms configured to access and manipulate the fingerprint scan data can ovenide biometric data processing algorithms, which compromises the security the biometrics authentication intends to provide.
[0011] Thus, the present disclosure provides a new technique for secure biometric data capture, processing and management, in accordance with various embodiments. In an embodiment, a computing system includes one or more biometric fingerprint sensors, a sensor hub, an untrusted application execution environment and a trusted application execution environment. The sensor hub has exclusive access to the sensors and also isolates untrusted or unauthenticated portions of the operating system, and other processes executing on the computing system, from direct access to unencrypted biometric data acquired by the sensors. In particular, during a fingerprint scan, the sensor hub prohibits access to the fingerprint sensors from other components of the system. The sensor hub reads the sensors to obtain the biometric data associated with the fingerprint scan and stores the biometric data in a data storage component, such as a memory stack or register. Only the sensor hub and the security engine can access the data storage component. In some embodiments, the security engine encrypts the biometric data stored in the data storage component before the sensor hub removes the data storage and sensor access restrictions. In some embodiments, the security engine processes the biometric data associated with the fingerprint scan and transfers a verifiable result to the trusted application execution environment for additional authorization processing. Various components of the system (e.g., a native library component) can subsequently transfer the encrypted biometric data from the memory storage component to the trusted and secure application execution environment. The trusted environment hosts algorithms for processing the biometric data. Further, processes executing outside of the trusted application execution environment cannot access the biometric data or the algorithms in the trusted application execution environment. While a fingerprint sensor is used in this example embodiment, other embodiments may employ other biometric sensors or any combination of such sensors and still operate in accordance with the techniques provided herein, as will be apparent in light of this disclosure.
[0012] As used in this disclosure, the term "biometrics" refers to a measureable biological characteristic and a process for recognizing an individual possessing the biological characteristic. The biological characteristic is, in some cases, anatomical or physiological, including fingerprints, palm features (e.g., veins), face features, DNA, signatures, voice features, hand features (e.g., geometry), iris structure, retina features, and scent details, to name a few examples. Any such characteristics can be generally captured in the form of a biometric sample or data captured by a biometric sensor. The recognition process can include processing biometric data representing the biological characteristic to identify, and verify the identity of, an individual.
[0013] As used in this disclosure, the term "biometrics sensor" refers to a device configured to acquire the data needed for biometrics recognition and verification. Such devices may include, for example, fingerprint sensors, retina and iris sensors, cameras, microphones, and other such tools capable of collecting biometrics. For example, a fingerprint sensor may incorporate feature detection technologies such as optical fingerprint imaging, ultrasonic imaging, and capacitance imaging to capture details of a person's fingerprints. An iris recognition sensor may incorporate video camera technology with near infrared illumination to capture images of a person's iris structure. A face recognition sensor may incorporate high resolution video camera technology (e.g., pixel resolution, spatial resolution, spectral resolution, temporal resolution, and radiometric resolution) to capture high resolution images of a person's distinctive facial features. A voice recognition sensor may include a microphone and possibly one or more audio filters, to capture a person's speech patterns. In some embodiments, a combination of such sensors may be used, to further increase security. In some embodiments, a sensor includes a transducer configured to generate an electrical signal representing biometric data.
[0014] As used in this disclosure, the term "biometric template" refers to a digital representation of one or more biometric samples. For example, a fingerprint scan obtained using a fingerprint sensor may be converted into a biometric template that uniquely corresponds to a particular individual's fingerprint. Various models and algorithms generate the biometric template and compare previously stored templates against candidate fingerprints for authentication purposes. For example, an image- or pattern-based algorithm may generate a template or compare two or more templates containing the type, size, shape and orientation of patterns that form the fingerprint.
[0015] As used in this disclosure, the terms "biometric verification" and "biometric authentication" refer to a process for confirming the identity of an individual by acquiring a biometric sample, such as a fingerprint scan or a voice scan or a face scan or an iris scan, and comparing the captured sample against a previously validated sample enrolled in a database. Verification or authentication results when a match between the samples occurs. A validated sample is one which has been vetted by a trusted party or otherwise considered authentic and valid by a security authority responsible for performing the verification or authentication process.
[0016] As used in this disclosure, the term "biometric identification" refers to a process for determining the identity of an individual by comparing a biometric sample, such as a fingerprint scan or a voice scan or a face scan or an iris scan, against one or more samples in a database to obtain a match. While in some cases verification and authentication may include identification, identification does not necessarily include a comparison with validated samples (e.g., identification may not lead to authentication).
Example System
[0017] Figure 1 illustrates an example computing system 100 configured for biometric data capture, processing and management, in accordance with an embodiment. The system 100 may be implemented, for example, in a smart phone, tablet computer, mobile device, desktop device, or any other suitable computing device. The system 100 generally includes a biometrics component 110, an operating system 120, and an application execution environment 130. The biometrics component 110 may include, for example, hardware, firmware, or both (e.g., embedded code that is accessible and executable by one or more local processors of the system).
[0018] The biometrics component 110 includes a sensor hub 112, one or more biometrics sensors 114 (e.g., a fingerprint sensor), and a security engine 116. The sensor hub 112 includes circuitry and logic for interfacing other portions of the computing system 100 (e.g., via the operating system 120) with the biometrics sensor 114. The sensor hub 112 further includes circuitry and logic for controlling and capturing biometric samples from the biometrics sensor 114. The biometrics component 110 can operatively isolate the biometrics sensors 114 from direct access by the operating system 120 and the application execution environment 130. For example, the sensor hub 112 may include a common bus interface for communicating with the biometrics sensors 114. Examples of such a common bus interface include a serial peripheral interface (SPI) and an SPI controller (e.g., SSP6), I2C (inter- integrated circuit), universal asynchronous receiver/transmitter (UART) and Mobile Industry Processor Interface (MIPI). Examples of fingerprint biometrics sensors include, but are not limited to, capacitive sensors (Fingerprint Card 1020 Family, Synaptics 5100 family), optical (OxiTechnology all families of sensors, Authentic), and ultrasonic (UltraScan and Sonavation all families of sensors). As noted above, any of these sensors can include a transducer configured to generate an electrical signal representing biometric data. The security engine 116 may include any type of hardware or software-based security engine that provides cryptographic functionality in a secure execution environment. For example, the security engine 116 may implement defined security schemes to provide encryption and decryption capabilities for data acquired by the sensor hub 112, such as biometric data representing a fingerprint scan, and various other components of the system 100, as will be apparent in view of this disclosure.
[0019] The operating system 120 includes a data storage 122 (e.g., random-access memory, a data stack, or other data register). The biometrics component 110 has direct access to the data storage 122. The data storage 124 provides memory for storing biometric data received from the sensor hub 112. For example, the data storage 124 may temporarily store data representing a fingerprint scan before transfer of the data to the application execution environment 130 occurs. Further, the application execution environment 130 can access the data storage 122 via the operating system 120. However, the sensor hub 112 selectively prohibits access to the data storage from the application execution environment. For example, the sensor hub 112 may prohibit, in response to a request from the application execution environment 130 to capture a biometric sample, access to the data storage 122 from the application execution environment 130, either directly or via the operating system 120. This, in combination with the operatively isolated biometrics component 110, serves to protect unencrypted biometric data obtained from a biometric sample from read and write access by other portions of the computing system 100, including the operating system 120 and the application execution environment 130. The security engine 116 may, for example, encrypt the biometric data. Once the biometric data is encrypted, the sensor hub 112 allows access to the data storage 122 from the operating system 120 and the application execution environment 130.
[0020] The application execution environment 130 includes an untrusted application execution environment 132 and a trusted application execution environment 134. The untrusted application execution environment 132 includes additional data storage that is not necessarily secure or otherwise protected from access by any process executing on the computing system 100. For example, trusted or untrusted processes executing on the computing system 100 may access data stored in the untrusted application execution environment 132. Data stored or applications executing in the untrusted application execution environment 132 may include, for example, computer viruses or malicious content. Further, unauthorized or unauthenticated users, devices or applications may access or modify data and applications in the untrusted application execution environment 132. Thus, for certain purposes, such as protecting confidential information from theft or misuse, the untrusted application execution environment 132 may not be suitable for storing or processing the biometric data.
[0021] By contrast, the trusted application execution environment 134 includes data storage that is isolated from memory used by unauthorized or unauthenticated processes executing outside of the trusted application execution environment 134. Further, processes executing in the trusted application execution environment 134 have exclusive access to the data stored therein, to the exclusion of all processes executing outside of the trusted application execution environment 134. In this manner, the trusted application execution environment 134 securely quarantines certain data, including biometric data, stored therein from processes executing outside of the trusted application execution environment 134 (e.g., in the operating system 120 or the untrusted application execution environment 132). In some embodiments, the memory or other data storage elements forming portions of the untrusted application execution environment 132 can be physically separate from, or integrated with, the memory or other data storage elements forming portions of the trusted application execution environment 134, depending on the application. Further, in some cases, hardware (e.g., separate data buses, non-shared memory), firmware or software (e.g., segmentation, process isolation, virtual addressing, protection keys, privileges and permissions, address masks, etc.) can isolate one memory region of the system 100 from another.
Example Methodology
[0022] Figure 2A is a flow diagram of an example methodology for biometric data capture, processing and management, in accordance with an embodiment. Figure 2B is a flow diagram of the example methodology of Figure 2A in further detail, in accordance with an embodiment. An untrusted application 202 executes in a portion of a computer processing environment, such as the untrusted application execution environment 132 of Figure 1. The untrusted application 202 requests biometric authentication of a user 204. Such authentication may, for example, serve as a prerequisite for permitting the untrusted application 202 to access certain protected or secure information or perform certain functions that are restricted to authorized users. In some cases, other suitable authentication techniques, such as passwords or security tokens, may supplement biometric authentication. In response to the authentication request, a separate portion of the computer processing environment (e.g., the trusted application execution environment 134, the operating system kernel 120, the biometrics component 110, or any combination of these), which is independent of and isolated from the untrusted application 202, collects 210 biometric data (e.g., a fingerprint scan) from the user 204. Referring to Figure 2B, the secure collection of biometric data 210 can include one or more of the following: generating 212a cryptographic key, prohibiting 214 access to a data storage from the operating system, and capturing, encrypting and storing 216 biometric data in the data storage.
[0023] Again referring to Figure 2 A, after collecting 210 the biometric data, the biometric data is transmitted 220 from one portion of the computer processing environment to another. Referring to Figure 2B, the transmission of the biometric data 220 can include one or more of the following: allowing 222 access to the data storage from the operating system, and transferring 224 the biometric data from the data storage to a trusted environment. For example, with reference to Figure 1, the biometric data may be transmitted from the biometrics component 110 to the operating system kernel 120 (e.g., the data storage 124), and further to the trusted application execution environment 134. The biometric data are transmitted 220 securely (e.g., in an encrypted form), such that the untrusted application 202 never has access to the biometric data in an unencrypted or otherwise unsecured form.
[0024] Again referring to Figures 2 A and 2B, processing and management 230 of the biometric data occurs in a similarly secure manner independent of and separate from the untrusted application 202. For example, decryption and processing 232 of the biometric data may occur within the trusted environment to generate a template for enrolling a fingerprint scan or for validation against a previously enrolled fingerprint scan. Any cryptographic keys used to encrypt and decrypt the biometric data are never exposed to the untrusted application 202. As such, in this example framework and methodology, the untrusted application 202 never has direct access to the biometric data in an unencrypted or otherwise unsecured form, the biometrics component, or any process or communication channel that collects, transmits, processes or manages the biometric data in an unencrypted or otherwise unsecured form.
Example Device
[0025] Figure 3 illustrates an example computing device 300 configured for biometric data capture, processing and management, in accordance with an embodiment. The computing device 300 includes a biometrics component 310, an operating system component 320, an untrusted environment component 330 and a trusted and secure environment component 340. The biometrics component 310 includes a sensor hub 312, one or more biometric fingerprint sensors 314, and a security engine 316. In some cases, the sensor hub 312 and the security engine 316 have exclusive access to the biometric fingerprint sensors 314 by configuring one or more access control registers (not shown) integrated into the computing device 300. The sensor hub 312 executes one or more applications or processes. These applications or processes can execute mutually exclusively of, and in isolation from, each other (e.g., no application or process on the sensor hub 312 may be aware of the presence of another, and no application or process on the sensor hub 312 may access the data of another). For example, each application or process in the sensor hub 312 may execute in a protection ring (e.g., Ring 3) architecture. The operating system component 320 includes a sensor hub inter-process communication (IPC) component 322, a data storage component 324, a security engine interface component 326, and a biometrics driver component 328. The untrusted environment 330 includes one or more of the following: an untrusted application 332, a biometrics service 334, and a biometrics service library 336. The biometrics service 334 may, for example, provide one or more application programming interfaces (APIs) for enrolling, verifying and identifying users via the biometrics hardware/firmware 310. In some cases, the untrusted application 332 can use any standard biometrics APIs to enroll, verify and identify users. The trusted and secure environment 340 includes one or more of the following: a trusted biometrics application 342 and a trusted biometrics service 344. In some embodiments, the sensor hub 312 may include one or more of the following: a sensor processing module 350 and a sensor interface 352.
[0026] The computing device 300 may be implemented in one or more mobile or desktop computing devices, such as a smart phone, tablet, desktop computer, user terminal, point-of- sale terminal, automated teller machine, vending machine, airport check-in system, embedded device controller, vehicle control system, facility access control system, or other device or system or combination of devices or systems in which biometrics are utilized for user identification and authentication.
[0027] In general, the computing device 300 operates in the following manner, according to an embodiment. The untrusted application 332 can include any application executing on the computing device 300 that involves biometric identification or authentication of a user. An example of such an application includes an online banking application that uses biometric information to identify and authenticate the user prior to allowing the user to perform certain financial transactions. For instance, instead of, or in addition to, logging into the banking application for a financial institution using a username and password, the untrusted application 332 obtains a fingerprint scan of the user. A comparison of biometric data obtained from the fingerprint scan to known and validated biometric data determines who the user is and whether the user is permitted to perform certain functions, such as checking an account balance, withdrawing or transferring funds, making a purchase, and other types of transactions that are available only to users authorized by the financial institution. Other examples of applications where biometric-based security can be used will be apparent in light of this disclosure.
[0028] The device 300 does not permit applications or other processes executing in the untrusted environment 330, including the untrusted application 332, to directly access sensitive data that unauthorized users could exploit for improper purposes or otherwise misuse. As such, the device 300 does not permit the untrusted application 332 to access or otherwise intercept or manipulate biometric data, at least in an unencrypted form. Instead, the untrusted application 332 achieves biometric-based identification or authorization indirectly via a request sent to other components of the computing device 300, including but not limited to the trusted biometrics application 342, the data storage component 324, and the biometrics component 310. In accordance with various embodiments, such other components are designed to maintain the integrity and security of biometric data, and further designed to isolate the biometrics component 310 and data storage 324 from the untrusted environment. The request may include, for example, a request to enroll a new fingerprint scan into a database or to authenticate a new fingerprint scan against a previously enrolled fingerprint scan, and to return a result of such enrollment or authentication, such as "succeed" or "fail." In some cases, the biometrics service 334 provides one or more APIs that facilitate submission of the request from the untrusted application 332 to various other components of the computing device 300, such as the sensor hub IPC 322.
[0029] In response to receiving a biometrics request from the untrusted application 332, the driver 328 sends a command to the trusted biometrics application 342 via the trusted biometrics service 344 to generate a cryptographic key for encrypting biometric data captured from the biometric fingerprint sensor 314. The trusted biometrics application 342 generates the cryptographic key and supplies the key to the security engine 316 via the security engine interface 326. Additionally, in response to receiving a biometrics request, the sensor hub IPC 322 sends a command to the sensor hub 312 and the fingerprint sensor 314 to capture a biometric sample. The data storage 324 is shared between the operating system 320, the sensor hub 312 and the security engine 326. The sensor hub 312 locks the data storage 324 before capturing the biometric sample to prohibit the operating system 320 from accessing the data storage 324. Next, the sensor processing module 350 uses the sensor interface 352 to acquire raw biometric data representing the biometric sample, and stores the raw biometric data in the data storage 324. The sensor processing module 350 calls the security engine 326 to encrypt the raw biometric data using the cryptographic key before sending the biometric data to the operating system 320. The sensor hub 312 unlocks access to the data storage 324 once the biometric data stored in the data storage has been encrypted.
[0030] Next, the sensor hub IPC 322 collects the encrypted biometric data from the data storage 324 and copies it to a buffer in the untrusted environment 330. The biometrics service library 336 then transfers the encrypted biometric data to the trusted and secure environment 340. Upon receiving the encrypted biometric data, the trusted biometrics application 342 decrypts the data using the same cryptographic key used by the security engine 316 to encrypt the biometric data. The trusted biometrics application 342 checks the biometric data for integrity and validity, pre-processes the data, extracts a biometric template, and stores the template in an encrypted form or compares the template against a previously enrolled template. All of these functions are performed within the trusted and secure environment 340, which ensures the security of the biometric data and the templates against access from the untrusted environment 330 or the operating system 320. Another example of the operation and use of the computing device 300 is provided in further detail with respect to Figure 4.
Example Methodology
[0031] Figure 4 is a flow diagram of another example methodology for biometric data capture, processing and management in a computing environment, in accordance with an embodiment. For clarity, in Figure 4, various steps of the example methodology are defined with respect to the various components of the computing device of Figure 2. However, some or all of these steps may be performed by components that are different than those expressly referenced in this example embodiment, including components that are combinations of separately described components, components that are subsets of individually described components, components that are remote from the computing environment (e.g., a client- server scheme), or components located in separate computing environments or separate portions of a computing environment. Furthermore, performance of one or more of these steps may occur in different sequences than those expressly described in this example embodiment, or omitted entirely. Accordingly, the example flow diagram of Figure 4 only provides a general overview of one example methodology, and does not limit the scope of various other embodiments.
[0032] Generally, during a biometrics authentication session, the example methodology includes one or more of the following actions: generating a cryptographic key for encrypting and decrypting biometric data, restricting biometrics hardware/firmware access to certain components in the computing environment, capturing biometric data (e.g., a fingerprint scan), encrypting and transferring the biometric data to a trusted environment, and further processing and storing the biometric data in the trusted environment. The example methodology can further include reporting the result of such processing to applications executing in the untrusted environment. For example, the result of a fingerprint scan enrollment or authentication may be reported to an untrusted application as a success or failure. In turn, the example methodology may grant or deny access by the untrusted application to a protected resource based on the result.
[0033] In further detail, initially, an untrusted application, which may execute in an untrusted environment, issues 402 a biometrics authentication request. Such a request may issue, for example, when the untrusted application needs to obtain authentication of a user for accessing a protected resource (e.g., data, services or applications) owned by the user or otherwise protected from unauthorized access on behalf of the user. Any application executing in the computing environment may issue a biometrics authentication request. Such applications are not limited to those executing in an untrusted environment and may include applications or other processes executing in other portions of the computing environment or in separate computing environments, including the trusted environment, the operating system kernel and any hardware or firmware. An untrusted biometrics service executing in the untrusted environment receives the biometrics authentication request. The untrusted biometrics service instantiates 404 a biometrics authentication session in which biometric data is captured, transmitted, processed, or managed. The biometrics authentication session may include one or more of the actions described with respect to Figure 4. In response to instantiation of the biometrics authentication session, the untrusted biometrics service calls 406 a trusted biometrics application. The trusted biometrics application executes in a trusted environment, which may include isolated memory regions or other data storage components to which access is restricted to components executing in the trusted environment.
[0034] In response to receiving the call from the untrusted biometrics service, the trusted biometric application generates a cryptographic key 408 via a trusted biometrics service, also within the trusted environment. The trusted biometrics service may operate in conjunction with a security engine to generate the cryptographic key. For example, the trusted biometrics service may call the security engine requesting the cryptographic key, and the security engine may generate the cryptographic key on behalf of the trusted biometrics service and return the cryptographic key to the trusted biometrics service using a secure or dedicated communication channel. The security engine may also share the cryptographic key with, for example, the sensor hub.
[0035] Prior to scanning a fingerprint, access to a data storage component, such as a kernel stack, is restricted to a sensor hub, a security engine, or both 410 in the hardware/firmware of the computing environment. As a result, access to the kernel stack from the untrusted environment is not permitted. Access to the kernel stack is restricted so as to prevent untrusted or unauthenticated applications or components in the computing environment from gaining access to any unencrypted or otherwise unsecured biometric data acquired during the biometrics authentication session. After kernel stack access has been so restricted, biometric data is captured 412 from a fingerprint sensor and placed 414 on the kernel stack. In some cases, the captured biometrics sensor data can additionally or alternatively be stored in other data storage components within the hardware/firmware, kernel or trusted environment for which access is suitably restricted to authenticated or trusted components in the computing environment.
[0036] The sensor hub or the security engine encrypts 416 the biometric data using the cryptographic key while the biometric data resides on the kernel stack and while access to the kernel stack is restricted to the sensor hub, the security engine, or both. Subsequent to encrypting the biometric data, the sensor hub removes 418 the kernel stack access restriction, which allows access to the kernel stack from the application execution environment. The biometrics service library transfers 420 the encrypted biometric data to a trusted and secure environment, which is not directly accessible by the operating system or other untrusted processes and components of the computing environment.
[0037] Once the encrypted biometric data is transferred to the trusted environment, a trusted biometrics application decrypts 422 the encrypted biometric data using the cryptographic key and further processes 424 the biometric data. Such further processing may include, for example, generating a biometric template corresponding to the biometric data (e.g., fingerprint scan) or making additional authorization decisions based on the processed data received. A biometric template based on the biometrics sensor data may be stored in the trusted environment for future use during biometric validation, authentication or identification, as needed. The trusted environment provides secure data storage for the biometric template by ensuring that applications, processes or components outside of the trusted environment have no access to the biometric template. Isolated, protected or encrypted memory regions may, for example, provide secure storage of biometric data and templates. The trusted biometrics application enrolls or authenticates 426 the biometric template. For example, if a biometric sample is obtained from an individual for the first time, the resulting biometric template may be enrolled in a database for comparison with subsequently obtained samples. On the other hand, if a validated biometric template is already enrolled, the biometric template may be used for verification or authentication against the enrolled template. The untrusted application is subsequently notified of the result of the enrollment or authentication 430. For example, if the authentication results in a match between an enrolled biometric template and the current biometric template, the untrusted application may be notified that the user is authorized to access the protected resource. In some cases, the notification may include a security token or other information that the untrusted application can use to access the protected resource. Subsequent to the notification 430, the biometrics authentication session may end, and the untrusted application notifies 432 the user of the result. In some cases, the example methodology includes notifying the user of the untrusted application of the result of the biometric authentication (e.g., via a "pass" or "fail" message or other indication). This example methodology may be repeated each time any application executing in the computing environment requests biometrics authentication.
Example System
[0038] Figure 5 illustrates an example system 500 that may carry out techniques for biometric data capture, processing and management, in accordance with an embodiment. In some embodiments, system 500 may be a media system although system 500 is not limited to this context. For example, system 500 may be incorporated into a personal computer (PC), laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cellular telephone, combination cellular telephone/PDA, television, smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, set-top box, game console, or other such computing environments capable of performing graphics rendering operations.
[0039] In some embodiments, system 500 includes a platform 502 coupled to a display 520. Platform 502 may receive content from a content device such as content services device(s) 530 or content delivery device(s) 540 or other similar content sources. A navigation controller 550 comprising one or more navigation features may be used to interact with, for example, platform 502 and/or display 520. Each of these example components is described in more detail below.
[0040] In some embodiments, platform 502 includes any combination of a chipset 505, processor 510, memory 512, storage 514, graphics subsystem 515, applications 516 and/or radio 518. Chipset 505 provides intercommunication among processor 510, memory 512, storage 514, graphics subsystem 515, applications 516 and/or radio 518. For example, chipset 505 may include a storage adapter (not depicted) capable of providing intercommunication with storage 514.
[0041] Processor 510 may be implemented, for example, as Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processors, x86 instruction set compatible processors, multi-core, or any other microprocessor or central processing unit (CPU). In some embodiments, processor 510 includes dual-core processor(s), dual-core mobile processor(s), and so forth. Memory 612 may be implemented, for instance, as a volatile memory device such as, but not limited to, a Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), or Static RAM (SRAM). Storage 514 may be implemented, for example, as a non-volatile storage device such as, but not limited to, a magnetic disk drive, optical disk drive, tape drive, an internal storage device, an attached storage device, flash memory, battery backed-up SDRAM (synchronous DRAM), and/or a network accessible storage device. In some embodiments, storage 514 includes technology to increase the storage performance enhanced protection for valuable digital media when multiple hard drives are included, for example.
[0042] Graphics subsystem 515 may perform processing of images such as still or video for display. Graphics subsystem 515 may be a graphics processing unit (GPU) or a visual processing unit (VPU), for example. An analog or digital interface may be used to communicatively couple graphics subsystem 515 and display 520. For example, the interface may be any of a High-Definition Multimedia Interface, DisplayPort, wireless HDMI, and/or wireless HD compliant techniques. Graphics subsystem 515 can be integrated into processor 510 or chipset 505. Graphics subsystem 515 can be a stand-alone card communicatively coupled to chipset 505. The graphics and/or video processing techniques described herein may be implemented in various hardware architectures. For example, hardware assisted privilege access violation check functionality as provided herein may be integrated within a graphics and/or video chipset. Alternatively, a discrete security processor may be used. In still another embodiment, the graphics and/or video functions including hardware assist for privilege access violation checks may be implemented by a general purpose processor, including a multi-core processor.
[0043] Radio 518 can include one or more radios capable of transmitting and receiving signals using various suitable wireless communications techniques. Such techniques may involve communications across one or more wireless networks. Exemplary wireless networks include (but are not limited to) wireless local area networks (WLANs), wireless personal area networks (WPANs), wireless metropolitan area network (WMANs), cellular networks, and satellite networks. In communicating across such networks, radio 618 may operate in accordance with one or more applicable standards in any version.
[0044] In some embodiments, display 520 includes any television or computer type monitor or display. Display 520 may comprise, for example, a liquid crystal display (LCD) screen, electrophoretic display (EPD or liquid paper display, flat panel display, touch screen display, television-like device, and/or a television. Display 520 can be digital and/or analog. In some embodiments, display 520 is a holographic or three-dimensional display. Also, display 520 can be a transparent surface that may receive a visual projection. Such projections may convey various forms of information, images, and/or objects. For example, such projections may be a visual overlay for a mobile augmented reality (MAR) application. Under the control of one or more software applications 516, platform 502 can display a user interface 522 on display 620.
[0045] In some embodiments, content services device(s) 530 can be hosted by any national, international and/or independent service and thus accessible to platform 502 via the Internet or other network, for example. Content services device(s) 530 can be coupled to platform 502 and/or to display 520. Platform 502 and/or content services device(s) 630 can be coupled to a network 560 to communicate (e.g., send and/or receive) media information to and from network 560. Content delivery device(s) 540 can be coupled to platform 502 and/or to display 520. In some embodiments, content services device(s) 530 includes a cable television box, personal computer, network, telephone, Internet enabled devices or appliance capable of delivering digital information and/or content, and any other similar device capable of unidirectionally or bidirectionally communicating content between content providers and platform 502 and/display 520, via network 560 or directly. It will be appreciated that the content may be communicated unidirectionally and/or bidirectionally to and from any one of the components in system 500 and a content provider via network 560. Examples of content may include any media information including, for example, video, music, graphics, text, medical and gaming content, and so forth.
[0046] Content services device(s) 530 receives content such as cable television programming including media information, digital information, and/or other content. Examples of content providers may include any cable or satellite television or radio or Internet content providers. The provided examples are not intended to limit the scope of the present disclosure. In some embodiments, platform 502 receives control signals from navigation controller 550 having one or more navigation features. The navigation features of controller 550 may be used to interact with user interface 522, for example. In some embodiments, navigation controller 550 can be a pointing device that may be a computer hardware component (specifically human interface device) that allows a user to input spatial (e.g., continuous and multi-dimensional) data into a computer. Many systems such as graphical user interfaces (GUI), and televisions and monitors allow the user to control and provide data to the computer or television using physical gestures.
[0047] Movements of the navigation features of controller 550 can be echoed on a display (e.g., display 520) by movements of a pointer, cursor, focus ring, or other visual indicators displayed on the display. For example, under the control of software applications 516, the navigation features located on navigation controller 550 may be mapped to virtual navigation features displayed on user interface 522. In some embodiments, controller 550 is not a separate component but rather is integrated into platform 502 and/or display 520.
[0048] In some embodiments, drivers (not shown) include technology to enable users to instantly turn on and off platform 502 like a television with the touch of a button after initial boot-up, when enabled, for example. Program logic may allow platform 502 to stream content to media adaptors or other content services device(s) 530 or content delivery device(s) 540 when the platform is turned "off." In addition, chip set 505 may comprise hardware and/or software support for 5.1 surround sound audio and/or high definition 7.1 surround sound audio, for example. Drivers may include a graphics driver for integrated graphics platforms. In some embodiments, the graphics driver includes a peripheral component interconnect (PCI) express graphics card.
[0049] In various embodiments, any one or more of the components shown in system 500 can be integrated. For example, platform 502 and content services device(s) 530 may be integrated, or platform 502 and content delivery device(s) 540 may be integrated, or platform 502, content services device(s) 530, and content delivery device(s) 540 may be integrated, for example. In various embodiments, platform 502 and display 520 may be an integrated unit. Display 520 and content service device(s) 530 may be integrated, or display 520 and content delivery device(s) 540 may be integrated, for example. These examples are not meant to limit the scope of the present disclosure.
[0050] In various embodiments, system 500 can be implemented as a wireless system, a wired system, or a combination of both. When implemented as a wireless system, system 500 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, and so forth. An example of wireless shared media may include portions of a wireless spectrum, such as the RF spectrum and so forth. When implemented as a wired system, system 500 can include components and interfaces suitable for communicating over wired communications media, such as input/output (I/O) adapters, physical connectors to connect the I/O adapter with a corresponding wired communications medium, a network interface card (NIC), disc controller, video controller, audio controller, and so forth. Examples of wired communications media include a wire, cable, metal leads, printed circuit board (PCB), backplane, switch fabric, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, and so forth.
[0051] Platform 502 can establish one or more logical or physical channels to communicate information. The information may include media information and control information. Media information refers to any data representing content meant for consumption by a user. Examples of content include, for example, data from a voice conversation, videoconference, streaming video, email or text messages, voice mail message, alphanumeric symbols, graphics, image, video, text and so forth. Control information refers to any data representing commands, instructions or control words meant for used by an automated system. For example, control information may be used to route media information through a system, or instruct a node to process the media information in a predetermined manner (e.g., using hardware assisted for privilege access violation checks as described herein). The embodiments, however, are not limited to the elements or context shown or described in Figure 5.
[0052] As described above, system 500 may be embodied in varying physical styles or form factors. Figure 6 illustrates embodiments of a small form factor device 600 in which system 500 may be embodied. In some embodiments, for example, device 600 may be implemented as a mobile computing device having wireless capabilities. A mobile computing device refers to any device having a processing system and a mobile power source or supply, such as one or more batteries, for example.
[0053] As previously described, examples of a mobile computing device include a personal computer (PC), laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA), cellular telephone, combination cellular telephone/PDA, television, smart device (e.g., smart phone, smart tablet or smart television), mobile internet device (MID), messaging device, data communication device, and so forth.
[0054] Examples of a mobile computing device also include computers that are arranged to be worn by a person, such as a wrist computer, finger computer, ring computer, eyeglass computer, belt-clip computer, arm-band computer, shoe computers, clothing computers, and other wearable computers. In some embodiments, for example, a mobile computing device may be implemented as a smart phone capable of executing computer applications, as well as voice communications and/or data communications. Although some embodiments are described with a mobile computing device implemented as a smart phone, it will be appreciated that other embodiments may be implemented using other wireless mobile computing devices as well.
[0055] As shown in Figure 6, device 600 includes a housing 602, a display 604, an input/output (I/O) device 606, and an antenna 608. Device 600 may, for example, include navigation features 612. Display 604 includes any suitable display unit for displaying information appropriate for a mobile computing device. I/O device 606 includes any suitable I/O device for entering information into a mobile computing device. Examples for I/O device 606 include an alphanumeric keyboard, a numeric keypad, a touch pad, input keys, buttons, switches, rocker switches, microphones, speakers, voice recognition device and software, and so forth. Information may be entered into device 600 by way of microphone. Such information may be digitized by a voice recognition device.
[0056] Various embodiments can be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements includes processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Whether hardware elements and/or software elements are used may vary from one embodiment to the next in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
[0057] Some embodiments may be implemented, for example, using a machine-readable medium or article which may store an instruction or a set of instructions that, if executed by a machine, may cause the machine to perform a method and/or operations in accordance with an embodiment of the present disclosure. Such a machine may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, or the like, and may be implemented using any suitable combination of hardware and software. The machine- readable medium or article may include, for example, any suitable type of memory unit, memory device, memory article, memory medium, storage device, storage article, storage medium and/or storage unit, for example, memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto- optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD), a tape, a cassette, or the like. The instructions may include any suitable type of executable code implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
[0058] Unless specifically stated otherwise, it will be appreciated that terms such as "processing," "computing," "calculating," "determining," or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulates and/or transforms data represented as physical quantities (e.g., electronic) within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or displays.
Further Example Embodiments
[0059] The following examples pertain to further embodiments, from which numerous permutations and configurations will be apparent.
[0060] Example 1 is computing system including an application execution environment, an operating system, a data storage selectively accessible from the application execution environment via the operating system, and a biometrics component having direct access to the data storage. The biometrics component is configured to selectively prohibit access to the data storage from the application execution environment.
[0061] Example 2 includes the subject matter of Example 1, where the biometrics component comprises a biometrics sensor, and where the biometrics component is further configured to prohibit, in response to a request from the application execution environment to capture a biometric sample, access to the data storage from the application execution environment, capture the biometric sample with the biometrics sensor to obtain biometric data, encrypt the biometric data using a cryptographic key, store the encrypted biometric data in the data storage component, and allow access to the data storage from the application execution environment via the operating system subsequent to encrypting the biometric data.
[0062] Example 3 includes the subject matter of any of the above examples, where the biometrics component includes a biometrics sensor and a security engine, and where the security engine is configured to encrypt biometric data obtained from the biometrics sensor. The biometric sensor may be, for example, a fingerprint sensor, microphone, camera, or any other such tool that allows a biometric sample to be captured.
[0063] Example 4 includes the subject matter of any of the above examples, where the application execution environment includes an untrusted application execution environment having access to the data storage via the operating system, and a trusted application execution environment having access to the data storage via the operating system.
[0064] Example 5 includes the subject matter of Example 4, where the untrusted application execution environment is operatively isolated from the trusted application execution environment.
[0065] Example 6 includes the subject matter of any of Examples 4 and 5, where the operating system is configured to transfer the encrypted biometric data from the data storage to the trusted application execution environment.
[0066] Example 7 includes the subject matter of any of Examples 4, 5 and 6, where the trusted application execution environment includes a biometrics application configured to enroll a user based on biometric data obtained from a biometrics sensor, authenticate the user based the biometric data, or both.
[0067] Example 8 includes the subject matter of any of Examples 4, 5, 6 and 7, where the trusted application execution environment includes a biometrics application configured to decrypt encrypted biometric data obtained from a biometrics sensor using a cryptographic key.
[0068] Example 9 includes the subject matter of any of Example 4, 5, 6, 7 and 8, where the trusted application execution environment includes a biometrics application configured to process biometric data obtained from a biometrics sensor to generate a biometric template. [0069] Example 10 is a method of capturing, processing and managing biometric data in a computing system. The method includes prohibiting, in response to a request from an application execution environment of the computing system to capture a biometric sample, access to a data storage component of the computing system from the application execution environment, capturing a biometric sample with a biometrics sensor to obtain biometric data, encrypting the biometric data using a cryptographic key, storing the encrypted biometric data in the data storage component, and allowing access to the data storage component from the application execution environment subsequent to encrypting the biometric data.
[0070] Example 11 includes the subject matter of Example 10, where the encrypting of the biometric data is performed by a biometrics component of the computing system independently of the operating system.
[0071] Example 12 includes the subject matter of any of Examples 10 and 11, where the method includes transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, and where an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
[0072] Example 13 includes the subject matter of Example 12, where the method includes generating the cryptographic key within the trusted execution environment.
[0073] Example 14 includes the subject matter of any of Examples 12 and 13, where the method includes decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
[0074] Example 15 includes the subject matter of any of Examples 12, 13 and 14, where the method includes processing the biometric data to generate a biometric template within the trusted execution environment.
[0075] Example 16 includes the subject matter of any of Examples 12, 13, 14 and 15, where the method includes enrolling the user, authenticating the user based on the biometric data, or both.
[0076] Example 17 is a non-transient computer program product having instructions encoded thereon that when executed by one or more processors cause a process to be carried out. The process includes prohibiting, in response to a request from an application execution environment of the computing system to capture a biometric sample, access to a data storage component of the computing system from the application execution environment, capturing a biometric sample with a biometrics sensor to obtain biometric data, encrypting the biometric data using a cryptographic key, storing the encrypted biometric data in the data storage component, and allowing access to the data storage component from the application execution environment subsequent to encrypting the biometric data.
[0077] Example 18 includes the subject matter of Example 17, where the encrypting of the biometric data is performed by a biometrics component of the computing system independently of the operating system.
[0078] Example 19 includes the subject matter of any of Examples 17 and 18, where the process includes transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, and where an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
[0079] Example 20 includes the subject matter of Example 19, where the process includes generating the cryptographic key within the trusted execution environment.
[0080] Example 21 includes the subject matter of any of Examples 19 and 20, where the process includes decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
[0081] Example 22 includes the subject matter of any of Examples 19, 20 and 21, where the process includes processing the biometric data to generate a biometric template within the trusted execution environment.
[0082] Example 23 includes the subject matter of any of Examples 19, 20, 21 and 22, where the process includes enrolling the user, authenticating the user based on the biometric data, or both.
[0083] The foregoing description of example embodiments has been presented for the purposes of illustration and description. This description is not intended to be exhaustive or to limit the present disclosure to the precise forms disclosed. Many modifications and variations are possible in light of this disclosure. This disclosure does not intend to limit the scope of the various embodiments. Future filed applications claiming priority to this application may claim the disclosed subject matter in a different manner, and may generally include any set of one or more limitations as variously disclosed or otherwise demonstrated herein.

Claims

CLAIMS What is claimed is:
1. A computing system, comprising:
an application execution environment;
an operating system;
a data storage selectively accessible from the application execution environment via the operating system; and
a biometrics component having direct access to the data storage, the biometrics component configured to selectively prohibit, in response to a request to capture a biometric sample, access to the data storage from the application execution environment, so that the biometric sample is securely captured.
2. The system of claim 1, wherein the biometrics component comprises a biometrics sensor, and wherein the biometrics component is further configured to: capture the biometric sample from a sensor to obtain biometric data;
encrypt the biometric data using a cryptographic key;
store the encrypted biometric data in the data storage component; and allow access to the data storage from the application execution environment via the operating system subsequent to encrypting the biometric data.
3. The system of claim 1, wherein the biometrics component comprises a biometrics sensor and a security engine, and wherein the security engine is configured to encrypt biometric data obtained from the biometrics sensor.
4. The system of any of claims 1-3, wherein the application execution environment comprises:
an untrusted application execution environment having access to the data storage via the operating system; and
a trusted application execution environment having access to the data storage via the operating system.
5. The system of claim 4, wherein the untrusted application execution environment is operatively isolated from the trusted application execution environment.
6. The system of claim 4, wherein the operating system is configured to transfer the encrypted biometric data from the data storage to the trusted application execution environment.
7. The system of claim 4, wherein the trusted application execution environment comprises a biometrics application configured to at least one of enroll a user based on biometric data obtained from a biometrics sensor and authenticate the user based the biometric data.
8. The system of claim 4, wherein the trusted application execution environment comprises a biometrics application configured to decrypt encrypted biometric data obtained from a biometrics sensor using a cryptographic key.
9. The system of claim 4, wherein the trusted application execution environment comprises a biometrics application configured to process biometric data obtained from a biometrics sensor to generate a biometric template.
10. A method of capturing, processing and managing biometric data in a computing system, the method comprising:
prohibiting, in response to a request from an application execution environment of the computing system to capture a biometric sample, access to a data storage component of the computing system from the application execution environment;
capturing a biometric sample from a sensor to obtain biometric data;
encrypting the biometric data using a cryptographic key;
storing the encrypted biometric data in the data storage component; and allowing access to the data storage component from the application execution environment subsequent to encrypting the biometric data.
11. The method of claim 10, wherein the encrypting of the biometric data is performed by a biometrics component of the computing system independently of the operating system.
12. The method of claim 10 or 11, further comprising transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, wherein an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
13. The method of claim 12, further comprising generating the cryptographic key within the trusted execution environment.
14. The method of claim 12, further comprising decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
15. The method of claim 12, further comprising processing the biometric data to generate a biometric template within the trusted execution environment.
16. The method of claim 12, further comprising at least one of enrolling the user and authenticating the user based on the biometric data.
17. A non-transient computer program product having instructions encoded thereon that when executed by one or more processors cause a process to be carried out, the process comprising:
prohibiting, in response to a request to capture a biometric sample, access to a data storage component of the computing system;
capturing a biometric sample from a sensor to obtain biometric data;
encrypting the biometric data using a cryptographic key;
storing the encrypted biometric data in the data storage component; and allowing access to the data storage component from an application execution environment only subsequent to encrypting the biometric data.
18. The computer program product of claim 17, wherein the process further comprises transferring, via the operating system, the encrypted biometric data from the data storage component to a trusted execution environment in the application execution environment, wherein an untrusted execution environment in the application execution environment is operatively isolated from the trusted execution environment.
19. The computer program product of claim 17, wherein the process further comprises generating the cryptographic key within the trusted execution environment.
20. The computer program product of claim 17, wherein the process further comprises decrypting the encrypted biometric data using the cryptographic key within the trusted execution environment.
21. The computer program product of claim 17, wherein the process further comprises processing the biometric data to generate a biometric template within the trusted execution environment.
22. The computer program product of any of claims 17-21, wherein the process further comprises at least one of enrolling the user and authenticating the user based on the biometric data.
PCT/US2016/031433 2015-06-09 2016-05-09 Secure biometric data capture, processing and management WO2016200523A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020177032147A KR102531418B1 (en) 2015-06-09 2016-05-09 Secure biometric data capture, processing and management
CN201680027081.1A CN107592933B (en) 2015-06-09 2016-05-09 Methods, systems, devices, apparatuses and media for secure biometric data capture, processing and management
JP2017555632A JP6887956B2 (en) 2015-06-09 2016-05-09 Secure biometric data capture, processing and management
EP16807981.2A EP3308312B1 (en) 2015-06-09 2016-05-09 Secure biometric data capture, processing and management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/734,710 2015-06-09
US14/734,710 US10061910B2 (en) 2015-06-09 2015-06-09 Secure biometric data capture, processing and management for selectively prohibiting access to a data storage component from an application execution environment

Publications (1)

Publication Number Publication Date
WO2016200523A1 true WO2016200523A1 (en) 2016-12-15

Family

ID=57504822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/031433 WO2016200523A1 (en) 2015-06-09 2016-05-09 Secure biometric data capture, processing and management

Country Status (6)

Country Link
US (1) US10061910B2 (en)
EP (1) EP3308312B1 (en)
JP (1) JP6887956B2 (en)
KR (1) KR102531418B1 (en)
CN (1) CN107592933B (en)
WO (1) WO2016200523A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2555532A (en) * 2016-08-03 2018-05-02 Cirrus Logic Int Semiconductor Ltd Methods and apparatus for authentication in an electronic device
GB2545534B (en) * 2016-08-03 2019-11-06 Cirrus Logic Int Semiconductor Ltd Methods and apparatus for authentication in an electronic device
US10552595B2 (en) 2016-11-07 2020-02-04 Cirrus Logic, Inc. Methods and apparatus for authentication in an electronic device
US10691780B2 (en) 2016-08-03 2020-06-23 Cirrus Logic, Inc. Methods and apparatus for authentication in an electronic device
EP3631665A4 (en) * 2017-05-23 2021-03-03 Fingerprint Cards AB Method and electronic device for authenticating a user

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286457B2 (en) * 2004-06-14 2016-03-15 Rodney Beatson Method and system for providing password-free, hardware-rooted, ASIC-based authentication of a human to a mobile device using biometrics with a protected, local template to release trusted credentials to relying parties
US10402089B2 (en) * 2015-07-27 2019-09-03 Jordan A. Berger Universal keyboard
CN105243311B (en) * 2015-10-19 2017-02-22 广东欧珀移动通信有限公司 Fingerprint information safe calling method, fingerprint information safe calling device and mobile terminal
CN105488374B (en) * 2015-11-28 2018-06-12 小米科技有限责任公司 unlocking method and device
DE102015225778A1 (en) * 2015-12-17 2017-06-22 Deutsche Post Ag Device and method for the personalized provision of a key
PH22016000048U1 (en) * 2016-01-13 2016-02-05 Renato C Valencia A system for proximate and/or remote electronic transaction authorization based on user authentication and/or biometric identification
US11341573B1 (en) * 2016-02-04 2022-05-24 United Services Automobile Association (Usaa) Using voice biometrics for trade of financial instruments
US11354666B1 (en) * 2016-05-26 2022-06-07 Wells Fargo Bank, N.A. Smart dust usage
US10404464B2 (en) * 2016-08-22 2019-09-03 Mastercard International Incorporated Method and system for secure FIDO development kit with embedded hardware
US11036870B2 (en) 2016-08-22 2021-06-15 Mastercard International Incorporated Method and system for secure device based biometric authentication scheme
US10884952B2 (en) * 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10367639B2 (en) 2016-12-29 2019-07-30 Intel Corporation Graphics processor with encrypted kernels
US10558978B1 (en) * 2016-12-30 2020-02-11 Wells Fargo Bank, N.A. One-time passcode
WO2018236391A1 (en) * 2017-06-23 2018-12-27 Hewlett-Packard Development Company, L.P. Biometric data synchronization devices
CN107920070A (en) * 2017-11-15 2018-04-17 中移在线服务有限公司 Identity identifying method, server and system
US11055800B2 (en) * 2017-12-04 2021-07-06 Telcom Ventures, Llc Methods of verifying the onboard presence of a passenger, and related wireless electronic devices
US10997446B2 (en) * 2018-02-16 2021-05-04 Fingerprint Cards Ab Enrollment scheme for an electronic device
US10755250B2 (en) 2018-09-07 2020-08-25 Bank Of America Corporation Processing system for providing a teller assistant experience using enhanced reality interfaces
US10462425B1 (en) 2018-09-07 2019-10-29 Bank Of America Corporation Processing system for providing a teller assistant experience using enhanced reality interfaces
US11429753B2 (en) * 2018-09-27 2022-08-30 Citrix Systems, Inc. Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
TWI747052B (en) * 2018-10-24 2021-11-21 大陸商廣州印芯半導體技術有限公司 Optical sensor with encryption function and image data encryption method
US11316680B2 (en) * 2019-02-21 2022-04-26 Dell Products, L.P. Protected credentials for roaming biometric login profiles
US11275820B2 (en) * 2019-03-08 2022-03-15 Master Lock Company Llc Locking device biometric access
US11641274B2 (en) * 2019-03-22 2023-05-02 Jpmorgan Chase Bank, N.A. Systems and methods for manipulation of private information on untrusted environments
US11200306B1 (en) 2021-02-25 2021-12-14 Telcom Ventures, Llc Methods, devices, and systems for authenticating user identity for location-based deliveries
KR20220131003A (en) * 2021-03-19 2022-09-27 삼성전자주식회사 Electronic device and operation method of electronic device encrypting biometric data
WO2023211803A1 (en) * 2022-04-26 2023-11-02 Google Llc Encoding independent user interface streams to perform asynchronous reprojection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050244037A1 (en) * 2004-04-30 2005-11-03 Aimgene Technology Co., Ltd Portable encrypted storage device with biometric identification and method for protecting the data therein
US20080270787A1 (en) * 2002-05-21 2008-10-30 Bio-Key International, Inc. Biometric identification network security
US20090164797A1 (en) * 2007-12-21 2009-06-25 Upek, Inc. Secure off-chip processing such as for biometric data
US20090287895A1 (en) * 2008-05-15 2009-11-19 Advanced Micro Devices Secure Memory Access System
US20140101453A1 (en) * 2012-10-04 2014-04-10 Msi Security, Ltd. Real identity authentication

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190908B2 (en) * 2006-12-20 2012-05-29 Spansion Llc Secure data verification via biometric input
US8838991B2 (en) * 2009-04-01 2014-09-16 Microsoft Corporation Secure biometric identity broker module
US8996879B2 (en) * 2010-12-23 2015-03-31 Intel Corporation User identity attestation in mobile commerce
US9152779B2 (en) * 2011-01-16 2015-10-06 Michael Stephen Fiske Protecting codes, keys and user credentials with identity and patterns
US8811959B2 (en) * 2011-03-14 2014-08-19 Conner Investments, Llc Bluetooth enabled credit card with a large data storage volume
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
JP5954955B2 (en) * 2011-10-17 2016-07-20 本田技研工業株式会社 Shape data creation system and shape data creation method
US8955039B2 (en) * 2012-09-12 2015-02-10 Intel Corporation Mobile platform with sensor data security
US9053048B2 (en) * 2012-12-14 2015-06-09 Dell Products L.P. System and method for extending a biometric framework
US9424409B2 (en) * 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
KR102216877B1 (en) * 2014-02-19 2021-02-18 삼성전자 주식회사 Authentication method and apparatus based on biometric information in a electronic device
US9762573B2 (en) * 2014-05-30 2017-09-12 Verizon Patent And Licensing Inc. Biometric framework allowing independent application control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270787A1 (en) * 2002-05-21 2008-10-30 Bio-Key International, Inc. Biometric identification network security
US20050244037A1 (en) * 2004-04-30 2005-11-03 Aimgene Technology Co., Ltd Portable encrypted storage device with biometric identification and method for protecting the data therein
US20090164797A1 (en) * 2007-12-21 2009-06-25 Upek, Inc. Secure off-chip processing such as for biometric data
US20090287895A1 (en) * 2008-05-15 2009-11-19 Advanced Micro Devices Secure Memory Access System
US20140101453A1 (en) * 2012-10-04 2014-04-10 Msi Security, Ltd. Real identity authentication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3308312A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2555532A (en) * 2016-08-03 2018-05-02 Cirrus Logic Int Semiconductor Ltd Methods and apparatus for authentication in an electronic device
GB2555532B (en) * 2016-08-03 2019-11-06 Cirrus Logic Int Semiconductor Ltd Methods and apparatus for authentication in an electronic device
GB2545534B (en) * 2016-08-03 2019-11-06 Cirrus Logic Int Semiconductor Ltd Methods and apparatus for authentication in an electronic device
US10691780B2 (en) 2016-08-03 2020-06-23 Cirrus Logic, Inc. Methods and apparatus for authentication in an electronic device
US10878068B2 (en) 2016-08-03 2020-12-29 Cirrus Logic, Inc. Methods and apparatus for authentication in an electronic device
US10552595B2 (en) 2016-11-07 2020-02-04 Cirrus Logic, Inc. Methods and apparatus for authentication in an electronic device
EP3631665A4 (en) * 2017-05-23 2021-03-03 Fingerprint Cards AB Method and electronic device for authenticating a user
US11586717B2 (en) 2017-05-23 2023-02-21 Fingerprint Cards Anacatum Ip Ab Method and electronic device for authenticating a user

Also Published As

Publication number Publication date
US20160364559A1 (en) 2016-12-15
US10061910B2 (en) 2018-08-28
EP3308312A1 (en) 2018-04-18
CN107592933B (en) 2022-05-27
CN107592933A (en) 2018-01-16
JP2018524651A (en) 2018-08-30
KR102531418B1 (en) 2023-05-12
KR20180016349A (en) 2018-02-14
EP3308312A4 (en) 2018-12-19
JP6887956B2 (en) 2021-06-16
EP3308312B1 (en) 2021-11-17

Similar Documents

Publication Publication Date Title
EP3308312B1 (en) Secure biometric data capture, processing and management
US11449598B2 (en) Method and system for securing user access, data at rest, and sensitive transactions using biometrics for mobile devices with protected local templates
RU2718226C2 (en) Biometric data safe handling systems and methods
US10440019B2 (en) Method, computer program, and system for identifying multiple users based on their behavior
US9531710B2 (en) Behavioral authentication system using a biometric fingerprint sensor and user behavior for authentication
EP3332372B1 (en) Apparatus and method for trusted execution environment based secure payment transactions
US9301140B1 (en) Behavioral authentication system using a secure element, a behaviometric server and cryptographic servers to authenticate users
US6741729B2 (en) Fingerprint recognition system
EP3381003B1 (en) System for and method of authenticating a user on a device
US20200145408A1 (en) System to effectively validate the authentication of otp usage
US20150254912A1 (en) DNA based security
EP2628133A1 (en) Authenticate a fingerprint image
JP2023525461A (en) Access authentication using obfuscated biometrics
TWI651626B (en) Biometric data encryption method and information processing device using same
TWI709875B (en) Data security maintenance method of display screen and information processing device using it
CN114900289A (en) Data security processing method, system, device and medium
Liu-Jimenez et al. Improving security in ID tokens through HW/SW co-design
TW201947454A (en) Secure enrolment of biometric data
Chitiprolu Three Factor Authentication Using Java Ring and Biometrics

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16807981

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017555632

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20177032147

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE