throbber
( 12 ) United States Patent
`Jakobsson
`
`( 10 ) Patent No . : US 10 , 360 , 351 B1
`( 45 ) Date of Patent :
`* Jul . 23 , 2019
`
`US010360351B1
`
`( 72 )
`
`( * ) Notice :
`
`( 54 ) AUTHENTICATION TRANSLATION
`( 71 ) Applicant : RightQuestion , LLC , Portola Valley ,
`CA ( US )
`Inventor : Bjorn Markus Jakobsson , Portola
`Valley , CA ( US )
`( 73 ) Assignee : RightQuestion , LLC , Portola Valley ,
`CA ( US )
`Subject to any disclaimer , the term of this
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 0 days .
`This patent is subject to a terminal dis
`claimer .
`( 21 ) Appl . No . : 15 / 042 , 636
`( 22 ) Filed :
`Feb . 12 , 2016
`Related U . S . Application Data
`( 63 ) Continuation of application No . 13 / 706 , 254 , filed on
`Dec . 5 , 2012 , now Pat . No . 9 , 294 , 452 .
`( 60 ) Provisional application No . 61 / 569 , 112 , filed on Dec .
`9 , 2011 , provisional application No . 61 / 587 , 387 , filed
`on Jan . 17 , 2012
`Int . CI .
`G06F 21 / 00
`( 2013 . 01 )
`G06F 21 / 10
`( 2013 . 01 )
`H04L 29 / 06
`( 2006 . 01 )
`( 2013 . 01 )
`G06F 21 / 12
`U . S . CI .
`CPC . . . . . . . . . . . . G06F 21 / 10 ( 2013 . 01 ) ; G06F 21 / 121
`( 2013 . 01 ) ; G06F 21 / 128 ( 2013 . 01 ) ; H04L
`63 / 083 ( 2013 . 01 ) ; H04L 63 / 0861 ( 2013 . 01 ) ;
`H04L 63 / 10 ( 2013 . 01 ) ; H04L 63 / 20 ( 2013 . 01 )
`( 58 ) Field of Classification Search
`None
`See application file for complete search history .
`
`( 51 )
`
`( 52 )
`
`( 56 )
`
`References Cited
`U . S . PATENT DOCUMENTS
`6 , 016 , 476 A
`1 / 2000 Maes
`7 , 512 , 965 B1 *
`3 / 2009 Amdur
`. . . . . HO4L 63 / 20
`726 / 1
`7 , 950 , 051 B1 *
`5 / 2011 Spitz . . . . . . . . . . . . . . . . . . . . . . G06F 21 / 31
`380 / 277
`8 , 549 , 300 B1 *
`10 / 2013 Kumar . . . . . . . .
`HO4L 9 / 3247
`713 / 153
`8 , 577 , 813 B2
`11 / 2013 Weiss
`8 , 856 , 539 B2 10 / 2014 Weiss
`9 , 100 , 826 B2
`8 / 2015 Weiss
`2004 / 0107170 A1 6 / 2004 Labrou
`2004 / 0236632 A1 11 / 2004 Maritzen
`( Continued )
`FOREIGN PATENT DOCUMENTS
`W O - 2004051585 A2
`6 / 2004
`2005001751 AL
`1 / 2005
`
`WO
`WO
`
`OTHER PUBLICATIONS
`Hammer - Lahav , Ed . “ The OAuth 1 . 0 Protocol ” , from https : / / tools .
`ietf . org / html / rfc5849 , Apr . 2010 .
`
`Primary Examiner - Andrew J Steinle
`( 74 ) Attorney , Agent , or Firm — Van Pelt , Yi & James
`LLP
`
`ABSTRACT
`( 57 )
`Authentication translation is disclosed . A request to access a
`resource is received at an authentication translator , as is an
`authentication input . The authentication input corresponds
`to at least one stored record . The stored record is associated
`at least with the resource . In response to the receiving , a
`previously stored credential associated with the resource is
`accessed . The credential is provided to the resource .
`
`32 Claims , 8 Drawing Sheets
`
`122
`
`Bank
`Website
`
`Online
`Camera
`Retailer
`
`134
`Authentication
`Translator for Bank
`Website
`
`5120
`Social
`Networking
`Site
`
`132
`
`1024
`
`Authentication
`Translator
`Module
`
`100
`
`140
`Cloud
`Storage
`Service
`
`5136
`30 Party
`Authentication
`Translator
`
`2110
`
`106
`
`APPL-1011
`APPLE INC. / Page 1 of 17
`
`

`

`US 10 , 360 , 351 B1
`Page 2
`
`( 56 )
`
`References Cited
`U . S . PATENT DOCUMENTS
`2005 / 0198348 A1 *
`9 / 2005 Yeates . . . . . . . . . . . . . . . . H04L 12 / 6418
`709 / 232
`2009 / 0100269 A1 *
`4 / 2009 Naccache . . . . . . . . . . . . HO4L 9 / 3271
`713 / 186
`2010 / 0242102 A1 *
`9 / 2010 Cross . . . . . . . . . . . . . . . . . . . . G06F 21 / 32
`726 / 7
`2011 / 0205016 A1 *
`8 / 2011 Al - Azem . . . . . . . . . . . . H04L 63 / 0861
`340 / 5 . 52
`2011 / 0231651 A1 *
`9 / 2011 Bollay . . . . . . . . . . . . . . H04L 63 / 166
`713 / 152
`5 / 2012 Beigi . . . . . . . . . . . . . . GO6Q 20 / 3223
`2012 / 0110341 A1 *
`713 / 186
`6 / 2012 Gargaro . . . . . . . . . . . . . . . . GO6F 21 / 41
`2012 / 0167193 Al *
`726 / 8
`
`* cited by examiner
`
`APPL-1011
`APPLE INC. / Page 2 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 1 of 8
`
`US 10 , 360 , 351 B1
`
`122
`
`Bank
`Website
`
`_ 134
`
`Authentication
`Translator for Bank
`Website
`
`- 120
`Social
`Networking
`Site
`
`124
`Online
`Camera
`Retailer
`
`- - - - - - - -
`
`- 110
`
`140
`Cloud
`Storage
`Service
`
`5136
`3rd Party
`Authentication
`Translator
`
`Authentication
`Translator
`Module
`
`. . . . . . . . . . . .
`
`. . . . . . . . .
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`100
`
`FIG . 1
`
`APPL-1011
`APPLE INC. / Page 3 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 2 of 8
`
`US 10 , 360 , 351 B1
`
`202
`Ti Template 11
`- - - - all
`- Template 2 ? ??
`
`-
`
`- Template 3 !
`
`-
`
`-
`
`|
`!
`
`? ?
`
`? ?
`
`!
`
`210
`220
`- -
`- - -
`-
`- -
`-
`- -
`| dom
`li domain , username , credential
`—
`—
`—
`—
`—
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`- -
`domain , username , credential
`-
`-
`-
`-
`-
`-
`-
`domain , username , credential
`-
`-
`-
`-
`-
`-
`-
`wwwwwwwwww
`w
`-
`-
`-
`
`wwww
`
`w www
`
`www
`
`204
`-
`-
`- 1
`Template 1 !
`
`L ! Template 211
`
`-
`
`Ir
`- - - - -
`-
`-
`-
`domain , username , credential
`!
`|
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`
`- 206
`
`Template 1 ! -
`
`-
`
`-
`
`Template 2 !
`
`-
`
`- - - - - - - - - - - - -
`domain , username , credential
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`domain , username , credential
`-
`-
`- -
`-
`-
`-
`- -
`-
`-
`-
`domain , username , credential
`
`!
`|
`
`l
`
`www
`
`200
`
`FIG . 2
`
`APPL-1011
`APPLE INC. / Page 4 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 3 of 8
`
`Sheet 3 of 8
`
`US 10 , 360 , 351 B1
`
`- 304
`
`processor
`
`302
`
`Insecure storage ( large )
`
`308
`
`processor
`
`306
`
`Secure storage ( small )
`
`sensor
`
`3104
`
`300
`
`FIG . 3
`
`APPL-1011
`APPLE INC. / Page 5 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 4 of 8
`
`US 10 , 360 , 351 B1
`
`1406
`
`Site
`
`4042
`
`Primary Device
`
`408
`410
`
`4025
`
`Peripheral
`
`FIG . 4
`
`APPL-1011
`APPLE INC. / Page 6 of 17
`
`

`

`U.S. Patent
`
`Jul. 23, 2019
`
`Sheet 5 of8
`
`US 10,360,351 B1
`
`Receive request to access resource and receive
`authentication input.
`
`Provide credential to resource.
`
`Access stored credential associated with resource.
`
`FIG. 5
`
`APPL-1011
`APPLEINC./ Page 7 of 17
`
`APPL-1011
`APPLE INC. / Page 7 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 6 of 8
`
`US 10 , 360 , 351 B1
`
`Client
`
`Proxy
`
`Server
`
`544444444444444444444444
`
`data request
`( no identity information ) record UA
`i
`
`wW
`
`W
`
`Ww
`
`????????????????????????????
`
`data request
`( no cookie )
`
`data
`SET cookie
`
`data
`SET cookie
`SET cache cookie
`
`record cookie ,
`cache cookie
`
`FIG . 6
`
`APPL-1011
`APPLE INC. / Page 8 of 17
`
`

`

`U . S . Patent
`
`Jul . 23 , 2019
`
`Sheet 7 of 8
`
`US 10 , 360 , 351 B1
`
`Proxy
`
`Server
`
`data request
`( + identity information )
`
`*
`
`find record
`get cookie
`
`data request
`( + cookie )
`
`data
`
`A
`
`wwwwwwwwwww
`
`????
`
`D
`
`.
`
`data
`
`FIG . 7
`
`APPL-1011
`APPLE INC. / Page 9 of 17
`
`

`

`atent
`
`Jul . 23 , 2019
`
`Sheet 8 of 8
`
`US 10 , 360 , 351 B1
`
`uniquename . jpg
`
`0000000002
`
`samename . html
`
`. . . A
`
`T WWWWWWWWWWW SESE
`WW
`
`FIG . 8
`
`callingpage . html
`
`APPL-1011
`APPLE INC. / Page 10 of 17
`
`

`

`US 10 , 360 , 351 B1
`a memory described as being configured to perform a task
`AUTHENTICATION TRANSLATION
`may be implemented as a general component that is tem
`CROSS REFERENCE TO OTHER
`porarily configured to perform the task at a given time or a
`specific component that is manufactured to perform the task .
`APPLICATIONS
`5 As used herein , the term “ processor ' refers to one or more
`This application is a continuation of co - pending U . S .
`devices , circuits , and / or processing cores configured to
`patent application Ser . No . 13 / 706 , 254 , entitled AUTHEN -
`process data , such as computer program instructions .
`TICATION TRANSLATION filed Dec . 5 , 2012 which is
`A detailed description of one or more embodiments of the
`incorporated herein by reference for all purposes . U . S .
`invention is provided below along with accompanying fig
`patent application Ser . No . 13 / 706 , 254 claims priority to "
`ures that illustrate the principles of the invention . The
`U . S . Provisional Patent Application No . 61 / 569 , 112 entitled
`invention is described in connection with such embodi
`BACKWARDS COMPATIBLE ROBUST COOKIES filed
`ments , but the invention is not limited to any embodiment .
`Dec . 9 , 2011 , and also claims priority to U . S . Provisional
`The scope of the invention is limited only by the claims and
`Patent Application No . 61 / 587 , 387 entitled BIOMETRICS
`the invention encompasses numerous alternatives , modifi
`SUPPORTED SECURE AUTHENTICATION SYSTEM 15 cations and equivalents . Numerous specific details are set
`filed Jan . 17 , 2012 , both of which are incorporated herein by
`forth in the following description in order to provide a
`reference for all purposes .
`thorough understanding of the invention . These details are
`provided for the purpose of example and the invention may
`BACKGROUND OF THE INVENTION
`20 be practiced according to the claims without some or all of
`Providing credentials to a service , whether via a mobile or
`these specific details . For the purpose of clarity , technical
`other device , is often a tedious experience for a user .
`material that is known in the technical fields related to the
`invention has not been described in detail so that the
`Unfortunately , to make authentication easier for themselves ,
`users will often engage in practices such as password re - use ,
`invention is not unnecessarily obscured .
`and / or the selection of poor quality passwords , which render 25
`FIG . 1 illustrates an embodiment of an environment in
`which authentication translation is provided . In the example
`their credentials less secure against attacks . Accordingly ,
`improvements in authentication techniques would be desir
`shown , a variety of client devices 102 - 108 connect , via one
`or more networks ( represented as a single network cloud
`able . Further , it would be desirable for such improvements
`110 ) to a variety of services 120 - 124 ( also referred to herein
`to be widely deployable , including on existing / legacy sys
`30 as sites 120 - 124 ) . In particular , client device 102 is
`a
`tems .
`notebook computer owned by a user hereinafter referred to
`BRIEF DESCRIPTION OF THE DRAWINGS
`as Alice . Notebook 102 includes a camera , a microphone ,
`and a fingerprint sensor . Client device 104 is a smartphone ,
`Various embodiments of the invention are disclosed in the
`also owned by Alice . Client device 104 includes a camera .
`following detailed description and the accompanying draw - 35 Client device 106 is a tablet owned by Bob , and sometimes
`used by Bob ' s son Charlie . Client device 106 includes a
`ings .
`FIG . 1 illustrates an embodiment of an environment in
`camera and a fingerprint sensor . Client device 108 is a kiosk
`located in the lobby of a hotel . Kiosk 108 includes a camera
`which authentication translation is provided .
`FIG . 2 illustrates an embodiment of credential informa
`and a microphone . The techniques described herein can be
`40 used with or adapted to be used with other devices , as
`tion stored on a device .
`FIG . 3 illustrates an embodiment of a device with secure
`applicable . For example , the techniques can be used in
`conjunction with gaming systems , with peripheral devices
`storage .
`such as mice , and with embedded devices , such as door
`FIG . 4 illustrates an example of a renegotiation .
`FIG . 5 illustrates an embodiment of a process for per -
`locks .
`Service 120 is a social networking site . Service 122 is a
`forming authentication translation .
`FIG . 6 illustrates an example of what occurs when a client
`website of a bank . Service 124 is the online store of a
`device first visits the site of a legacy server via an authen -
`boutique camera retailer . Each of services 120 - 124 requires
`a username and password ( and / or a cookie ) from a user prior
`tication translator .
`FIG . 7 illustrates an example of what occurs when a
`to giving that user access to protected content and / or other
`device subsequently visits the site of a legacy server via an 50 features . As will be described in more detail below , using the
`techniques described herein , users need not type such user
`authentication translator .
`FIG . 8 shows the structure of an example of a cache
`names and passwords into their devices whenever required
`by a service . Instead , users can authenticate themselves to an
`cookie used in some embodiments .
`“ authentication translator " via an appropriate technique , and
`55 the authentication translator will provide the appropriate
`DETAILED DESCRIPTION
`credentials to the implicated service on the user ' s behalf .
`The invention can be implemented in numerous ways ,
`Also as will be described in more detail below , authentica
`ci
`including as a process ; an apparatus ; a system ; a composi
`tion translators can be located in a variety of places within
`tion of matter ; a computer program product embodied on a
`an environment . For example , notebook computer 102
`computer readable storage medium ; and / or a processor , such 60 includes an authentication translator module 132 that pro
`as a processor configured to execute instructions stored on
`vides authentication translation services . The other devices
`and / or provided by a memory coupled to the processor . In
`104 - 108 can also include ( but need not include ) their own
`this specification , these implementations , or any other form
`respective authentication translator modules . The owner of
`that the invention may take , may be referred to as tech -
`bank website 122 also operates an authentication translator
`niques . In general , the order of the steps of disclosed 65 134 associated with the bank . Finally , authentication trans
`processes may be altered within the scope of the invention .
`lator 136 provides authentication translation services to a
`Unless stated otherwise , a component such as a processor or
`variety of businesses , including online camera retailer 124 .
`
`45
`
`APPL-1011
`APPLE INC. / Page 11 of 17
`
`

`

`US 10 , 360 , 351 B1
`
`15
`
`140 or to an alternate form of external storage ) . As needed ,
`FIG . 2 illustrates an embodiment of credential informa
`authentication information or portions thereof can be loaded
`tion stored on a device . In particular , device 200 stores three
`into secure storage and decrypted . For example , one can use
`user profiles 202 - 206 , each of which contains a username
`AES to encrypt the files one by one , using a key stored on
`and one or more templates ( e . g . , template 210 ) associated
`5 the secured storage . A message authentication technique ,
`with the user . In various embodiments , a template is a
`such as HMAC , can be used for authenticating the encrypted
`collection of biometric features . Using fingerprints as an
`files to provide tamper prevention . Profiles and vaults can be
`example type of biometric , a corresponding template
`updated while in secure storage ; if this occurs , they are
`includes a collection of patterns , minutia , and / or other
`encrypted and MACed before being written back to the
`features that can be matched against to determine if a
`person ' s fingerprint matches the fingerprint of the registered 10 insecure storage , which may in turn propagate them to
`user ( i . e . , the owner of a given user profile ) . A representation
`external backup storage . In yet other embodiments , profiles
`of a single fingerprint may be included in multiple templates
`and vaults are stored entirely in secure storage , in plaintext ,
`( e . g . , in different resolutions , in accordance with different
`which allows them to be both read and written and in
`protocols , as captured during warm vs . cold conditions ,
`particular , searched .
`and / or by itself or in combination with multiple fingerprints )
`Example Transaction Types
`. When other biometrics are employed ( e . g . , facial recogni -
`A variety of transaction types can take place in the
`tion , voiceprint , or retina scan technology ) , features appro -
`environment shown in FIG . 1 , examples of which are
`priate to those types of biometrics are included in the
`discussed in this section .
`template . Other types of features can also be included in
`Initial Registration
`templates . As one example , a user ' s typing speed and / or 20
`In order to begin using the techniques described herein ,
`accuracy can be measured by a device , such as device 102 ,
`users perform some form of initial registration . As one
`and used to distinguish between multiple users of a device .
`example , suppose Alice launches an enrollment program
`For example , suppose Alice types at 100 words per minute
`installed on laptop 102 . She uses the program to capture
`and rarely makes mistakes . A representation of this infor -
`various biometric information ( e . g . , fingerprints , photo
`mation can be stored in template 212 . Also suppose Alice ' s 25 graphs of her face , etc . ) . A user profile is created for Alice ,
`niece , who sometimes uses Alice ' s laptop computer when
`and the biometric information captured about her is encoded
`visiting Alice types at 20 words per minute and makes many
`into a plurality of templates , such as templates 210 and 214 .
`mistakes . In some embodiments , the fact that a user was
`In some embodiments , Alice is also explicitly asked to
`recently ( e . g . , within the last 5 minutes ) typing on laptop 102
`supply credential information for services she would like to
`at 90 words per minute is evidence of a match against 30 use , such as by providing the domain name of social
`template 212 . In this case , the typing speed of 90 words per
`networking site 120 , along with her username and password
`minute is similar enough to Alice ' s typical behavior , it is
`for site 120 . In other embodiments , domain / username / cre
`considered a match . Various policies can be included in a
`dential information is at least passively captured on Alice ' s
`profile that govern how matches are to be performed . For
`behalf and included in one or more vaults such as vault 220 .
`example , policies can specify thresholds / tolerances for what 35 Credential information can also be important from a browser
`constitutes a match , and can specify that different levels of
`password manager already in use by Alice or other appro
`matches can result in different levels of access to different
`priate source . In some embodiments , Alice also registers
`with cloud storage service 140 , which will allow her to back
`resources .
`WIL
`A profile is associated with a vault ( e . g . , vault 220 ) . The
`up her authentication information and to synchronize it
`vault , in turn , contains triples specifying a service provider / 40 across her devices ( e . g . , 102 and 104 ) , as described in more
`domain , a username , and a credential . The vault can also
`detail below .
`contain other sensitive user information , such as account
`Other registration approaches can also be used . For
`numbers , address / phone number information , and health
`example , registration can be integrated into the experience
`care data . The credential for a service provider / domain can
`the first time a device is used . Thus , when Bob first turns on
`be a password ( e . g . , for legacy servers ) , and can also take 45 tablet 106 , he may be prompted to take a picture of his face
`alternate forms ( e . g . , a cryptographic key for service pro -
`( with a profile / templates being created in response ) . Simi
`larly , the first time Charlie uses tablet 106 , the techniques
`viders supporting stronger authentication methods ) .
`In some embodiments , profiles , templates , and vaults
`described herein can be used to determine that Charlie does
`not yet have a profile ( e . g . , because none of the templates
`( collectively " authentication information " )
`are stored
`entirely in an unprotected storage area , and are stored in the 50 already present on tablet 106 match his biometrics ) and
`clear . In other embodiments , secure storage techniques are
`Charlie can be prompted to enroll as a second user of the
`used to secure at least a portion of the authentication
`device .
`Authentication
`information .
`One example of a device with secure storage is illustrated
`Suppose Alice wishes to authenticate to banking website
`in FIG . 3 . In the example shown , a mobile phone 300 55 122 . Using a fingerprint reader incorporated into her laptop ,
`includes a large and insecure storage 302 attached to a fast
`she performs a fingerprint scan , which causes her biometric
`processor 304 , and a smaller but secure storage 306 attached
`features to be extracted and compared to any stored tem
`to a dedicated processor 308 and a sensor 310 ( e . g . , a camera
`plates residing on her computer . If a match is found , an
`or a fingerprint reader ) . Users ( and applications ) can read
`associated decryption key is selected , and the associated
`from and write to the insecure storage area . However , users 60 vault is loaded and decrypted . The vault is scanned for an
`cannot access the secure storage area , and the fast processor
`entry that matches the selected service provider ( i . e . , website
`can only communicate with the dedicated processor / sensor
`122 ) . If a matching entry is found , the associated domain ,
`via a restricted API . As another example , a unique decryp -
`username , and site credential are extracted from the vault . In
`tion key associated with a given vault can be stored in a
`some embodiments , the validity of the domain name map
`profile . The vault is an encrypted and authenticated con - 65 ping is verified at this point to harden the system against
`tainer that can be stored on insecure storage , e . g . , on the
`domain name poisoning . Next , a secure connection is estab
`device , and also backed up ( e . g . , to a cloud storage service
`lished between Alice ' s computer and the service provider ,
`
`APPL-1011
`APPLE INC. / Page 12 of 17
`
`

`

`US 10 , 360 , 351 B1
`
`authentication . Renegotiation can also be used when a
`and Alice is authenticated . For service providers supporting
`secure component of the primary device 404 performs the
`strong user authentication , mutual SSL can be used , for
`negotiation of the SSL connection and another and poten
`example . A variety of policies can be involved when per -
`tially insecure component of the primary device 404 is
`forming matching . For example , to access certain domains ,
`Alice ' s print may need only match template 210 . To access 5 involved in the transaction protected by the authentication .
`other domains , Alice may need to match multiple templates
`FIG . 5 illustrates an embodiment of a process for per
`( e . g . , both 210 and 214 ) . As another example , in order to
`forming authentication translation . The process begins at
`access social networking site 120 , Alice may merely need to
`502 when a request to access a resource is received , as is an
`be sitting in front of her computer , which has an integrated
`authentication input . One example of the processing per
`webcam . Even in relatively low light conditions , a match 10 formed at 502 is as follows . Suppose Alice wishes to sign
`can be performed against Alice ' s face and features stored in
`into social networking website 120 . She directs a web
`a template . However , in order to access bank website 122 ,
`browser application installed on client 102 to the social
`Alice may need a high quality photograph ( i . e . , requiring her
`networking website . Authentication translator module 132
`to turn on a bright light ) and may need to demonstrate
`recognizes , from the context of Alice ' s actions ( e . g . , that she
`liveness ( e . g . , by blinking or turning her head ) . As yet 15 is attempting to access site 120 with her browser ) that she
`another example , other contextual information can be
`would like to access a particular resource . Authentication
`included in policies . For example , if Alice ' s IP address
`translator module 132 prompts Alice ( e . g . , by a popup
`indicates she is in a country that she is not usually in , she
`message or via a sound ) to provide biometric information
`may be required to match multiple templates ( or match a
`( e . g . , to use the integrated fingerprint reader on her laptop ) .
`template with more / better quality features ) in order to access 20 In some embodiments , the translator module does not
`retailer 124 , as distinguished from when her IP address
`prompt Alice , for example , because Alice has been trained to
`provide biometric information automatically when attempt
`indicates she is at home .
`In some embodiments , the biometric sensor used by a user
`ing to access certain resources . In yet other embodiments ,
`may be a peripheral device ( e . g . , a mouse with an integrated
`the translator module only prompts Alice if she fails to
`fingerprint scanner that is connected to the user ' s primary 25 provide acceptable biometric information within a timeout
`device via USB ) . In such scenarios , the peripheral device
`period ( e . g . , 30 seconds ) .
`may be responsible for storing at least a portion of authen -
`Module 132 compares Alice ' s supplied biometric data to
`tication information and may perform at least some of the
`the templates stored on her computer . If a suitable match is
`authentication tasks previously described as having been
`found , and if an entry for site 120 is present in the applicable
`performed by Alice ' s computer . For example , instead of 30 vault , at 504 , a previously stored credential associated with
`processors 304 and 308 , and storages 302 and 306 being
`the resource is accessed . In particular , the username and
`collocated on a single device ( e . g . , laptop 102 ) , processor
`password for the website , as stored in a vault , such as vault
`304 and storage 302 may be present on a primary device , and
`220 , are retrieved from the vault .
`processor 308 and storage 306 may be present on a periph -
`Finally , at 506 , the credential is provided to the resource .
`eral device ( e . g . , that also includes a sensor , such as a 35 For example , Alice ' s username and password for site 120 are
`fingerprint reader ) .
`transmitted to site 120 at 506 . The credential can be trans
`In such scenarios , once Alice ' s login to banking website
`mitted directly ( e . g . , by the module or by Alice ' s computer )
`122 is successfully completed , the secure session can be
`and can also be supplied indirectly ( e . g . , through the use of
`handed over from the peripheral device to the primary
`one or more proxies , routers , or other intermediaries , as
`device , in
`a way that does not allow the primary device 40 applicable ) .
`retroactive access to the plaintext data of the transcripts
`Other devices can also make use of process 500 or
`exchanged between the peripheral device and the service
`portions thereof . For example , when Alice launches a bank
`provider . One way this can be accomplished is by renego -
`ing application on phone 104 , implicit in her opening that
`tiating SSL keys between the peripheral device and the
`application is her desire to access the resources of website
`website , after which the newly negotiated key can be handed 45 134 . The application can take Alice ' s picture and compare it
`off from the peripheral device to the primary device . This
`to stored templates / vault information . If an appropriate
`avoids retroactive credential capture in a setting where the
`match is found , a credential can be retrieved from the vault
`on her phone ( or , e . g . , retrieved from cloud storage service
`device is infected by malware .
`An example of renegotiation is depicted in FIG . 4 . Spe -
`140 ) and provided to website 134 .
`cifically , after a user has successfully authenticated to a
`As another example , suppose Charlie is using tablet 106
`fingerprint reader , a login is performed to a service provider .
`and attempts to visit site 120 , whether via a dedicated
`Using the primary device ( 404 ) as a proxy , the peripheral
`application or via a web browser application installed on the
`fingerprint reader 402 negotiates a first SSL connection
`tablet . Charlie ' s photograph is taken , and then compared
`( 408 ) with a service provider 406 , over which credentials are
`against the profiles stored on tablet 106 ( e . g . , both Bob and
`exchanged . The proxy then renegotiates SSL ( 410 ) , which 55 Charlie ' s profiles ) . When a determination is made that
`replaces the old key with a new one . The new key is
`Charlie ' s photograph matches a template stored in his stored
`disclosed to the device , which then seamlessly takes over the
`profile ( and not , e . g . , Bob ' s ) , Charlie ' s credentials for site
`connection with the service provider and performs the
`120 are retrieved from a vault and transmitted by an authen
`transaction protected by the authentication . The credentials
`tication translator module residing on client 106 .
`exchanged during the first SSL connection cannot be 60
`As yet another example , kiosk 108 can be configured to
`accessed by device 404 , since the key of the renegotiated
`provide certain local resources ( e . g . , by displaying a com
`session is independent of the key of the original session ; this
`pany directory or floor plan on demand ) when users speak
`provides protection against malware residing on the device .
`certain requests into a microphone . Enrolled users ( e . g . , with
`Renegotiation can be used when the primary device 404 is
`stored voiceprint or facial recognition features ) can be
`believed to be in a safe state when performing the negotia - 65 granted access to additional / otherwise restricted services in
`tion of the SSL connection , but it is not known whether it is
`accordance with the techniques described herein and process
`in a safe state during the transaction protected by the
`500 .
`
`50
`
`APPL-1011
`APPLE INC. / Page 13 of 17
`
`

`

`US 10 , 360 , 351 B1
`
`profiles on their shared tablet 106 ) , and to avoid that
`New Device
`criminals with physical component access to lost devices
`In some embodiments , to register a new device , a user
`gain access to templates and vault contents . In some embodi
`provides an identifier , such as a username or an account
`ments , polices such as ones where a template self - wipes if
`number to the device . The new device connects to an
`it is not matched within a particular duration of time are
`external storage ( such as cloud storage 140 ) , provides the 5
`supported . Since user data can be frequently backed up to
`user identifier and credential , and downloads the user ' s
`the cloud storage , and recovered from this using the new
`templates / vaults from the service . In some embodiments , the
`device registration process , inconvenience to the user will be
`templates / vaults are encrypted . Once downloaded , the tem -
`minimized .
`plate is decrypted and stored in a secure storage area , while
`the still encrypted vault can be stored in insecure storage . 10L egacy Server Support
`The decryption key can be generated from information the
`New authentication schemes typically require changes to
`user has / knows , or from biometric data — such as features
`a significant codebase residing with service providers . If the
`extracted from fingerprinting of all ten fingers . In some
`code is well written and documented , such changes may be
`embodiments , more arduous fingerprinting is required for
`relatively simple . Commonly , though , this may not be so .
`the setup of a new device than for regular authentication to
`15 The engineers who originally wrote the code of relevance
`avoid that a new device gets registered by a user thinking she
`may have long since left the company ; the code they left
`is merely authenticating or worse still , simply touching the
`behind may be poorly documented — if documented at all . In
`device . Moreover , it translates into higher entropy of the
`severe cases , the legacy code may have been written in an
`outdated programming language or written in a way that
`decryption keys .
`20 does not follow guidelines for good code . This makes
`Backup Authentication
`updates to the codebase impractical or virtually impossible
`Backup authentication allows a user , such as Alice , to
`access resources in the event she is unable to or unwilling to
`in many common cases . Even if none of these challenges
`interact with a particular biometric sensor . As one example ,
`complicate the desired modifications , it is commonly a great
`instead of having a single temp

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket