(19)
(11)EP 2 314 046 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
18.04.2018 Bulletin 2018/16

(21)Application number: 09805529.6

(22)Date of filing:  06.08.2009
(51)International Patent Classification (IPC): 
H04L 9/32(2006.01)
H04W 12/06(2009.01)
G06F 21/41(2013.01)
H04L 29/06(2006.01)
(86)International application number:
PCT/US2009/052923
(87)International publication number:
WO 2010/017341 (11.02.2010 Gazette  2010/06)

(54)

CREDENTIAL MANAGEMENT SYSTEM AND METHOD

SYSTEM UND VERFAHREN ZUR VERWALTUNG VON BERECHTIGUNGEN

SYSTÈME ET PROCÉDÉ DE GESTION D'INFORMATIONS D'IDENTIFICATION


(84)Designated Contracting States:
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR

(30)Priority: 06.08.2008 US 186651

(43)Date of publication of application:
27.04.2011 Bulletin 2011/17

(73)Proprietor: Verisign, Inc.
Mountain View, CA 94043 (US)

(72)Inventors:
  • FERG, Barry
    North Vancouver British Columbia V7G 1C2 (CA)
  • KRALL, Gary
    Saratoga CA 95070 (US)
  • M'RAIHI, David
    San Carlos CA 94070 (US)
  • POPP, Nicolas
    Menlo Park CA 94025 (US)

(74)Representative: D Young & Co LLP 
120 Holborn
London EC1N 2DY
London EC1N 2DY (GB)


(56)References cited: : 
EP-A1- 1 950 678
US-A1- 2002 062 342
US-A1- 2005 097 320
US-A1- 2008 162 338
US-A1- 2002 023 059
US-A1- 2004 158 746
US-A1- 2008 031 447
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    FIELD OF THE INVENTION



    [0001] The field of the invention is authentication, in particular authenticating users to third-party websites using credentials stored in a central vault.

    BACKGROUND OF THE INVENTION



    [0002] Many Internet users hold accounts with many websites, providing services or other functionality such as online banking, online auctions, online shopping, social websites and more. Typically a set of credentials is associated with each account, and at least a subset of these credentials, usually consisting of a username and a password, is used by the website to verify a user's identity. More extensive or limited sets of credentials are also used. Websites that provide more sensitive services, such as online banking, can require more credentials, e.g. a date of birth, a social security number or other types of credentials. Less sensitive services may only require a single identifier, such as an e-mail address.

    [0003] Users can implement certain practices that can increase the security of their credentials. For example, they can use a mix of letters and numbers, change their passwords frequently and not use the same credentials for signing on to different sites.

    [0004] Some users find such security practices inconvenient. For example, some users to make use of a single username and a single password for many of their online accounts across different websites. A successful data-mining attack on one of the websites where an account is held can grant the attacker access to the rest of the user's online accounts.

    [0005] One solution to this inconvenience is to centrally manage the sets of credentials such that the user can cause them to be provided to a website for authentication. Centrally managed credentials are said to be managed by or (logically) stored at a "vault." When a user wishes to authenticate to a website, the user interacts with a computer (the "client") to authenticate the user to the vault. The vault can then process a request from the client to authenticate the user to a given website. The vault can look up the credentials stored for the user for the given website and send them to the client, which can submit them to the website to authenticate the user.

    [0006] EP 1 950 678 A1 discloses a system and method for consumer-side authorization and authentication. In one embodiment, the method comprises receiving a request for a credential from a business-side party, matching the credential request to a set of available credentials, the available credentials comprising consumer-side information. The credential is retrieved from a credential store, and the authorization of the business-side party to receive the credential is evaluated before returning a response.

    [0007] US 2004/0158746 A1 concerns an automatic log-in and password management system for on-line, electronic commerce systems is described. An automatic log-in module receives relevant transaction information from a user and processes this information for transactions to one or more target computers. The log-in procedure for access to a secure area within the target computer is stored as a script executable by the password management system. The processing system monitors user accesses to a target computer of the one or more target computers. A password management system detects a password entry requirement to initiate the transaction. The password management system accesses the appropriate password from a pre-stored database to obtain the password corresponding to the user identifier for the specific target client computer. The password management system then executes the stored log-in script and automatically populates the password or other access code into the appropriate access program of the client computer based on the user identifier.

    [0008] US 2002/0062342 A1 concerns a system that automatically intercepts and responds to most requests for personal information that are received from a network and directed to a user. Such requests are intercepted, and the sources of the requests, as well as the user, are validated. The system attempts to complete each request, using information obtained from a wallet database where information is kept secure and is associated with non-personal identifiers.

    [0009] What is needed is a way to transparently (to the user) provide the credentials from the vault to the website. If the vault is untrusted, the user credentials can be stored only in an encrypted form at the vault. The key used to encrypt the credentials may be stored at a trusted client or safeguarded by the user. What is needed is an efficient way to transform the encrypted credentials What is also needed is a more sophisticated, layered approach to credentials management.

    SUMMARY OF THE INVENTION



    [0010] According to the invention, the methods according to claim 1 and 10 are provided.

    [0011] In accordance with an embodiment of the present invention, a vault stored website credentials for authenticating a user to a third party website. The website credentials are encrypted based upon a key not available to the vault, thereby reducing the risk that the user's website credentials would be compromised in the event the vault is compromised. When the user wants to authenticate to a website, the user authenticates to the vault using vault credentials and retrieves the encrypted credentials for the website along with parameters and code useful for properly injecting the website credentials into a website authentication form. The encrypted credentials are decrypted at the client and injected into the form, using the parameters and code. The user is then authenticated to the website. These and other features will be more readily understood from the following detailed description of preferred embodiments of the invention that is provided in connection with the accompanying drawings.

    BRIEF DESCRIPTION OF THE DRAWINGS



    [0012] Referring to the exemplary drawings wherein like elements are numbered alike in the accompanying Figures:

    FIG. 1 depicts a system in accordance with an embodiment of the present invention.

    FIG. 2 depicts a protocol diagram in accordance with an embodiment of the present invention..

    FIG. 3 depicts another protocol diagram in accordance with an embodiment of the present invention.

    FIG. 4 depicts a another protocol diagram in accordance with an embodiment of the present invention..

    FIG. 5 shows a credential management vault system in accordance with an embodiment of the invention.

    Fig. 6 shows a web browser in a system in accordance with an embodiment of the invention in which a web authentication form is rendered, and in which a bookmarklet that implements the method is installed.

    Fig. 7 shows a web browser in a system in accordance with an embodiment of the invention in which a request for initial credentials from the user is displayed.

    FIG. 8 shows a web browser in a system in accordance with an embodiment of the invention in which a request for additional credentials from the user is displayed.

    FIG. 9 shows a web browser in a system in accordance with an embodiment of the invention in which a web authentication form is rendered, into which received and decrypted credentials have been injected.

    FIG. 10 shows a web browser in a system in accordance with an embodiment of the invention in which content available only upon authentication is rendered.


    DETAILED DESCRIPTION OF THE INVENTION



    [0013] An embodiment of the invention can authenticate a user to a website. The user can access the website using a client, which can be a personal computer, a mobile phone, a thin client, or any other virtual or physical device capable of conveying information from a website to a user.

    [0014] Figure 1 shows system and method in accordance with an embodiment of the present invention. User (110) can indicate (111) to client (120) a desire to authenticate the user to a website. The client can send one or more credentials ("vault credentials") to the vault (130) in order to authenticate the user to the vault. Client (120) can also send a request for the credentials ("website credentials") needed to authenticate the user with the website (140). The vault (130) can assess the risk that the requests issue from an unauthorized user based upon various criteria. For example, vault (130) look up the name of the ISP used by the client and requests this from a 3rd party (131), e.g., ARIN. Based upon the ISP name received from the third party (150), vault can accept the vault credentials already provided or request additional credentials to authenticate the user (110). For example, vault (130) can send a request to client (120) that user (110) provide a One-Time Password ("OTP".) The OTP password can be provided by a token, such as the VeriSign VIP Token, by an application at the client (120), or any other suitable source. The client can collect the OTP from the user (123 and 124) and pass it to the vault (134). The vault can send (135) the received OTP to another third party (e.g., the VeriSign VIP network) (160) for verification. Upon receiving the verification result (136), the vault can determine that the risk that the requests from client (120) are fraudulent is too high, in which case the requests for authentication and website credentials can be denied by vault (130.) If vault (130) determines that such risk is sufficiently low, vault can retrieve the requested website credentials and send them (122) to the client, along with parameters to match them to the form elements on an authentication web-form (such as that shown in Figure 6) associated with the website to which to user desired to authenticate itself. Client (120) can inject the credentials into the authentication web-form and submit (125) the form to the website (140). The response (126) from the website can be rendered and displayed (112) to the user (110) by client (120), e.g., as shown in Figure 10.

    [0015] Figure 2 shows is a protocol diagram that shows exemplary information flows between system components, which will be discussed in further detail. User (110) can be an entity that interacts with client (120) to authenticate itself to website (140). Examples of a users include a person, a software application, a process executing as part of an application on client (120), etc.

    [0016] Client (120) can include a processor coupled to a memory storing instructions adapted to be executed by the processor to perform at least part of the method in accordance with an embodiment of the present invention. Examples of a client include a Personal Computer executing a browser and storing a cryptographic key that is used to encrypt the website credentials before they are sent to the vault for storage. The key can be stored as part of a bookmarklet, in RAM, on a hard disk, etc. For example, in the Firefox browser, DOM storage is used, while for Internet Explorer, Microsoft's userData storage facility is used. Safari/Webkit uses a client database implementation based upon an HTML5 draft. Safari/Webkit: uses a client database implementation based on HTML5 draft recommendation. For sites that support the ability to post form data dynamically, a locally stored key can be used to decrypt website credentials without requiring the user to click a bookmarklet. The key is deliberately not sent to the vault. If the user is unable or unwilling to store the key in their browser's local storage, an embodiment of the present invention can default to querying the user to provide the key. The key can be stored on hardware such as a token, a flash memory stick, a SIM card (e.g., in a mobile telephone), etc. The hardware storing the key can be tamper resistant and, in some embodiments, can connect to other devices in any suitable way, such as via a USB connection, via wireless connection (which can be encrypted), etc. In some embodiments, the device storing the key can perform other functions, such as generating a One Time Password.

    [0017] Other examples of client (120) include a mobile platform (e.g., a cell phone, a PDA, etc.) that can convey information from website (140) to user (110) in any suitable way. Embodiments of the present invention can be implemented on a cell phone. The cell phone can receive a SIM card that stores the key, and software on the SIM card, in the cell phone, or both, can perform the method in accordance with an embodiment of the present invention. For example, the browser on the cell phone can store or access a list or catalog of third party web sites for which the user has stored his credentials at the vault. It can also act as a gateway for the user to provide his authentication credentials to log on to the vault. When the is logged on to the vault and selects a catalogued web site to which to log on, the browser on the phone can retrieve the sign on page from the selected site. It can also retrieve the user's encrypted credentials for the site from the vault, as well as code and/or parameters specific to the sign on page. The cell phone browser can use a key stored on the tamper-resistant SIM card to decrypt the credentials, inject the decrypted credentials into the third party web site log on page using the code and/or parameters and cause the user to be logged on to the third party site.

    [0018] Website (140) is an example of network-accessible resource that can be provided with user (110) authentication credentials in accordance with embodiments of the present invention. Other examples can include an FTP server, an SMTP (e-mail) server, etc. The present invention can be implemented for any network-accessible resource that authenticates its users. Such resources can permit users (110) to register and maintain accounts. Accessing the resource using the account can grant to user (110) access to otherwise restricted content.

    [0019] An account on a resource such as a website (140) can be associated with a physical or virtual user (110). One or more credentials can also be associated with the account. This can include information such as the name of the user, a username, the e-mail address of the user, and other information useful to identifying the user (110) and distinguishing the user (110) from other users. The credentials can be stored at the website (140) and/or at other locations, such as at an authentication service. The credentials need not be explicitly stored anywhere, but can be derived from information made available to the verifier.

    [0020] The credentials needed to authenticate the user (110) to a website (140) may be stored in a vault (130) that can be accessible to the user (110.) The vault (130) can be implemented as an application in any computing environment in accordance with embodiments of the present invention. It can run as a single application on a single computer, or can span across servers in different locations. It is also possible to implement the vault directly in hardware, e.g., using an Application Specific Integrated Circuit. The encrypted credentials may be stored a location different than that at which the vault's credential management software resides. Communication between the vault (130) and the client (120) can occur over a secure connection, such as one that implements SSL.

    [0021] In accordance with an embodiment of the present invention, once the key has been provided, the user can to add its login credentials for a pre-set list of sites, along with a description of the service offering. Entering of the user credentials can include entries for a username, a password and a brief description of the site in the form of notes. The encrypted data (username/password) can be stored vault database (540), as can a hashed (salted) value of the key for additional verification.

    [0022] In an embodiment, the xxTEA algorithm or any other encryption algorithm can be used to encrypt the website credentials. This can be implemented in javascript functions that execute on the page, in flash, etc.

    [0023] Once the user has entered its website credentials and the information saved to the vault database (540) the user can be navigated to a page that can contain the link that the user should add to its bookmarks bar. This link can include the user's website credentials encryption key, which can be visually obfuscated, along with a unique value (an "apikey") that maps the user's username to a specific value that has been generated by the software in accordance with an embodiment of the present invention. This can provide for increased security by assuring that the user authenticated to the vault is mapped to the appropriate user account when using the bookmarklet.

    [0024] In accordance with embodiments of the present invention, the key can be stored at the client, or provided by the user each time it is needed, retrieved from a trusted location each time it is needed or derived at least partly from information provided by the user or information obtained from a trusted location.

    [0025] If a user needs to add information to the initial list of websites that may not have be initially entered or edit existing information, an embodiment can include an "edit" button. When user clicks on the edit button, it can be prompted to enter the key used in the setup steps described previously. If the user enters the wrong key, it can be permitted to re-enter the correct value up to a certain number of times before the account is possibly locked, depending on the security policy. This can place the user in an edit mode to add or correct information.

    [0026] As known in the art, a bookmarklet is an applet, a small computer application, stored as the URL of a bookmark in a web browser or as a hyperlink on a web page. Bookmarklets are designed to add one-click functionality to a browser or web page. When clicked, a bookmarklet performs a function such as a search query or data extraction. Usually the applet is a JavaScript program.

    [0027] Prior to activating the "one-click" functionality of the bookmarklet, the user should first be authenticated by the vault. If the user is not logged in and the user clicks on the bookmarklet, the user can be redirected to the vault for authentication. Once authenticated, the user can be redirected back to the page where they clicked on the bookmarklet.

    [0028] Once the user has been authenticated by the vault and the user is on the website authentication page, the user clicks the link contained in the bookmarklet, which injects the form fill code from the vault into the page. In particular, the link can retrieve the encrypted user credentials and form fill parameters for the current login page from the vault using, for example, a JSON-P method. The form fill code can use the key, which can be encoded (obfuscated) in the link, and can be used by the page code to decrypt the user website credentials. The decrypted user credentials (e.g., username, password, etc.) can be inserted into the website authentication form, and the form can be submitted to the website.

    [0029] If the user has selected the bookmarklet while not on the specific website authentication page, a popup can be displayed that can contain the list of sites for which the user has entered website credentials. The popup can be in the form of HTML/CSS that can be inserted into the displayed page. The user can select the site in the popup and, if it is one-click enabled, the user can be automatically signed in, i.e., authenticated to the selected website. The enabled websites can use a transitional page to authenticate the user in which the key is retrieved from the browser local storage, if available, requested from the user, etc. If the website does not support direct login, the user can be navigated to the site and can then click the bookmarklet again to authenticate to the website.

    [0030] In accordance with an embodiment of the present invention, a carousel can be used to display the different web sites/pages that the user has enrolled in the vault, i.e., for which the user has stored website credentials at its vault account. The user can visualize in a single place all the different pages, and through a rotation tool, can select a specific page, then click and access that page. An embodiment of the present invention can be enabled with the carousel such that user credentials stored at the vault for a given website are injected into a page retrieved when the user clicks on a graphic representation of such a site in the carousel. In this way, the carousel interface can be used to quickly authenticate to any website listed in the carousel.

    [0031] In Figure 2, third party (150) is a network resource that can be used by vault (130) to assess the risk that user (110) is honest or fraudulent. For example, third party (150) can be a resource that provides a reverse DNS lookup service. The IP address received as part of a message from a client (120) containing user (110) vault credentials can be submitted to such a service, which can return a host name, the geographical location of the host, etc. The host name and other information, such as a the geographical data, can be compared to facts known about the user (110) to assess the likelihood that the vault credentials originate from the correct user (110). For example, if it is known that user (110) has historically logged on to the vault from a single given host in the United States, and if the reverse IP lookup reveals a different host name located in Nigeria, vault (130) may decide to request one or more additional credentials to verify that the user is the registrant of the vault account to which access is sought. Likewise, if the server name and location match that in the historical record, then access may be granted without requiring further vault credentials. In some cases, no third party may be needed to help vault (130) to assess the risk of a request for access. For example, vault (130) may assess inherent properties of the request, e.g., the number of such requests received per unit time (an excessively high number could indicate fraud), the number of failed recent attempts (a high number could indicate fraud), etc.

    [0032] VIP (160) refers to the VeriSign Identity Protection ("VIP") service, which can verify credentials such as a OTP. If the risk assessed by the vault (130) is above a given threshold, the vault (130) can request that the user provide an additional credential such as an OTP. The OTP is received by the vault (130) and then sent to VIP (160) for verification. If VIP sends indicates to the vault that the OTP is successfully verified, then the user(110)/client (120) is granted access to the vault account. Otherwise, access is denied. User (110) may be given another opportunity to submit another OTP or other credential.

    [0033] Figures 3-4 show simplified protocol flows for embodiments in accordance with the present invention. Figure 3 shows a version of the protocol that operates without invoking other networked resources to evaluate supplemental credentials to authenticate to the vault (130). Rather, the vault (130) itself verifies the OTP. Figure 4 shows a version of the protocol in which no supplemental credentials are used to authenticate user (110) to vault (130).

    [0034] Figure 5 shows a system in accordance with an embodiment of the invention detailing an embodiment of the vault (130). In this embodiment the vault (130) includes an authenticator (420), a risk engine (410), a request processor (430) and a database (440).

    [0035] A user (110) can request through client (120) to be authenticated to vault (130). In one embodiment, this request is made initially by client (120) to vault (130). In another embodiment, user (110) indicates to client (120) that it wants to authenticate itself to a website (140). Client (120) sends a request for website credentials to vault (130), which determines that user (110) is not presently authenticated to vault (130) and sends a request for vault credentials to client (120). In both cases, user (110) submits vault credentials to vault (130) through client (120).

    [0036] Authenticator (520) can verify the vault credentials and can pass the results of the verification as well as information obtained from communications with client (120) (such as the source IP address used by client (120)) to risk engine (410). Authenticator (520) can also obtain additional information from a networked, third party resource (150) (such as the hostname associated with the client via a reverse IP lookup) and pass such information to the risk engine (510). Based upon the information provided by authenticator (520), risk engine (510) can determine the risk that the authentication request is fraudulent, and pass the result to authenticator (520). The risk can be quantified in any suitable way, e.g., high/low, a numerical value, etc. Authenticator (520) can store a risk threshold that can be unique to a user, unique to a given type of users, or the same for all users. Authenticator (520) can compare the determined risk to the risk threshold. If the determined risk is above that of the threshold, authenticator (520) can request one or more additional credentials from user(110)/client (120), such as an OTP. Authenticator (520) can submit the OTP to a networked resource, such as the VeriSign Identity Protection (VIP) server (160). The results of the verification can be passed to the risk engine (510). If and when the determined risk is lower than the threshold, then the user (110) is authenticated to the vault and the user (110) request for credentials can be passed to request processor (530).

    [0037] Request processor (530) can be communicatively coupled to database (540). Database (540) can store user (110) account information, which can include a user identifier, one or more credentials correlated with a website to which they pertain, parameters useful to the client for properly injecting the credentials into an authentication form for the website. It can also contain executable code that can be sent to client (120) to assist in completing the authentication form. The credentials stored in database (540) can be encrypted based upon a key not available to vault (130). The key can be available to the client, which can encrypt the credentials before they are sent to vault (130) and decrypt the encrypted credentials received from vault (130) before providing them to website (140). The key can be stored in a bookmarklet at client (120), be otherwise stored at client (120) (e.g., in RAM, flash memory, hard disk, etc.), derived from user-provided credentials at client (120), etc. Request processor can retrieve credentials, parameters and/or code for the website (140) and send them to the client (120).

    [0038] In accordance with embodiments of the present invention, the risk threshold can be adjusted based upon the type or identity of the website (140) for which a user (110) has requested credentials. The thresholds can be stored at database (540) correlated with the websites (140) or website types to which they pertain. A determined risk of a user authentication may be below a risk threshold for a first website and above a risk threshold for a second site. If the user (110) has authenticated to the vault (130) to authenticate to the first website and then requests website credentials for the second website, vault (130) can request that user (110) provide additional credentials to lower the determined risk below that of the risk threshold that corresponds to the second website.

    [0039] Figure 6 shows an authentication form (620) for a website (140) rendered in a web browser (600). An authentication in accordance with an embodiment of the present invention can be triggered by user (110) selecting bookmarklet (610). A request is sent to vault (130) for website credentials. If the user is already authenticated to the vault (130), the vault will retrieve the encrypted credentials from database (540) and send them to client (120) along with code and parameters for completing form (620). Client (120) will decrypt the credentials and can use the code to inject the decrypted credentials in the form (620) and provide the completed form (620) to the website (140). The user (110) can thus be authenticated to the website (140).

    [0040] If the user (110) is not presently authenticated to the vault (130), the vault (130) can send a request for vault credentials to client (120). Figure 7 shows vault credentials request form (700) that includes a username (712) and a password (714) field that user (110) completes to authenticate to the vault. User (110) selects the "Sign On to Vault" button (729) after completing the fields and can be logged on to the vault.

    [0041] If the risk of a vault authentication is above a given risk threshold, the vault can request one or more additional credentials, such as the OTP requested in the vault supplemental credential request form (730) shown in Figure 8. The form (730) includes fields for a OTP (722) and a social security number (724). User (110) selects the "Sign On to Vault" button (729) after completing the fields and can be logged on to the vault.

    [0042] Figure 9 shows the credentials (622 and 624) retrieved from the vault, decrypted at the client injected into the form-elements (621 and 623) on the authentication web-form (620). User (110) can select the "Sign On" button (629) after completing the fields and can be logged on to the vault.

    [0043] Figure 10 shows a web-browser (600) displaying content (630) from a web site that is only available after authentication.

    [0044] In accordance with an embodiment of the present invention, a user (110) can provide website credentials to a vault (130) by registering with the vault (130). Registration can include establishing user vault credentials and establishing a user vault account. User (110) can manually enter user website credentials (e.g., a user identifier and a password) at the client (120) to be sent to the vault (130). Client (120) can include software that encrypts the website credentials using a key that can be supplied by the user, generated by the client software, derived by the client software from information provided by the user, such as credential information or received and stored at the client (120). Once encrypted, the website credentials can be sent to the vault (130) to be stored at database (540), associated with user information, such as a user identifier, user vault credentials, website authentication form parameters and code, etc. Likewise, code at the client (120) can cause website credentials provided manually by user (110) in filling out website authentication forms to be collected, encrypted and sent to vault (130) to be stored in the user's vault account, provided the user (110) is authenticated to the vault (130).

    [0045] Those skilled in the art that will appreciate that there are a number of ways of implementing the authentication procedure at a client and that there correspondingly will be numerous ways for the client to receive an indication to provide credentials and to collect the credentials.

    [0046] When the client (120) retrieves the website credentials from the vault (130) to supply to a website (140), the vault (130) can send the website credentials to the requesting client (120) in the encrypted form in which they were originally submitted. Any suitable encryption algorithm can be used, such as blowfish, AES, DSA and the like.

    [0047] The website credentials can be passed to the client (120) as key/value pars, where can key represent the name of the form-element (e.g. 621 and 623) on the authentication web form (620) into which the value (e.g. 622 and 624) should be injected.

    [0048] In one embodiment, the client (120) can use the HTML Document Object Model (DOM) search for form-elements in the web authentication form to find elements with names matching the form-element keys in the pairs received from the server, and then change the value of the form elements using the DOM application programming interface. This can be done using JavaScript, but it is also possible to implement as a browser plug-in, or by other means of integration.

    [0049] In another embodiment, the HTML data constituting the web authentication form can be intercepted, and the HTML code can be modified so that the values are inserted into the corresponding HTML form-elements before the form is rendered at the client.

    [0050] While the data constituting the form can be encoded as HTML, other encodings can be used, including but not limited to XHTML and WML.

    [0051] As the authentication web forms used to access websites can change, in one embodiment of the invention, the vault can maintain knowledge about various authentication forms in the form of a library, and changes the form-element keys before passing the pairs to the client. The library can store information about the names of fields for authentication forms used for a wide range of websites that can be of interest to users of the system. It can also store the code that can help properly inject the website credentials into such forms. The library information can be stored in database (540).

    [0052] Some authentication web forms can require a more complicated procedure at the client than passage of variables through a single web-form to authenticate a user. For example, some online banks use a multi-page authentication procedure. In order to ensure proper authentication to these sites, the vault can pass a piece of code (such as JavaScript) along with the credentials that will conduct the authentication as needed for the particular website. Typically the vault will maintain pieces of code customized to each of these sites.

    [0053] In some cases, the key encrypting the user website credentials will change. In accordance with an embodiment of the present invention, the encryption of the website credentials at the vault can also be changed. A message can be sent from client (120) to vault (130) indicating that the key has changed for a user (110). In response, vault (130) can send all of the website credentials stored in the user account, which are encrypted using the old key. Client (120) can use the old key to decrypt the website credentials received from vault (130) and then use the new key to re-encrypt the credentials. Client (120) can then send the website credentials encrypted with the new key to vault (130) for storage in the vault account. In this way, user website credentials encrypted with an outdated key can be efficiently replaced by website credentials encrypted with a current key.

    [0054] While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best or only mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Also, in the drawings and the description, there have been disclosed exemplary embodiments of the invention and, although specific terms may have been employed, they are unless otherwise stated used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention therefore not being so limited. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.


    Claims

    1. A method for authenticating a user (110) to a third party website (140), characterized by:

    sending, from a vault system (130), executable code to a client device (120) that, when executed by a processor at the client device, obfuscates an encryption key and stores the obfuscated encryption key at the client device, wherein the encryption key encrypts at least one website credential for authenticating the user to the third party website;

    receiving, at the vault system, the encrypted website credential (122) from the client device, wherein the encryption key is not available to the vault system;

    storing the received encrypted website credential in a vault account at the vault system;

    receiving, from the client device, at least one first vault credential (121) to authenticate the user with the vault account;

    authenticating the first vault credential;

    determining that the first vault credential is not authentic;

    requesting, in response to determining that the first vault credential is not authentic, at least one second vault credential (134) to authenticate the user with the vault account, wherein the second vault credential is distinct from the first vault credential;

    authenticating the second vault credential;

    receiving, from the client device, a request for the encrypted website credential;

    retrieving the encrypted website credential from the vault account at the vault system; and

    sending, to the client device, the encrypted website credential and at least one form fill parameter (122) in response to successfully authenticating the first vault credential and the second vault credential, wherein the executable code is further to:

    decrypt the encrypted website credential into the website credential using the stored obfuscated encryption key at the client device, and

    use the form fill parameter to inject the website credential into at least one form field (621, 623) in an authentication page (620) of the third party website.


     
    2. The method of claim 1, wherein the first vault credential comprises a user name (712) and a password (714).
     
    3. The method of claim 1, wherein determining that the first vault credential is not authentic comprises determining that a risk that the first vault credential is not authentic is greater than a threshold.
     
    4. The method of claim 3, wherein requesting the second vault credential comprises requesting a name (132) of an internet service provider of the user from a third party (150).
     
    5. The method of claim 3, wherein requesting the second vault credential comprises requesting a one-time password (124, 134, 722) from the client device, wherein the method further comprises sending the one-time password to an identity protection server (160) to be verified and receiving results of the verification, and wherein the encrypted website credential and the form fill parameter are sent to the client device in response to successful verification of the one-time password.
     
    6. The method of claim 1, wherein the encrypted website credential is encrypted in the step of retrieving the encrypted website credential, and wherein determining that the first vault credential is not authentic comprises determining that a risk that the first vault credential is not authentic is greater than a threshold.
     
    7. The method of claim 6, wherein requesting the second vault credential comprises requesting a one-time password from the client device.
     
    8. The method of claim 6, wherein requesting the second vault credential comprises sending to the client device a challenge question and requesting from the client device a response based upon the challenge question.
     
    9. The method of claim 3, where determining that the risk that the first vault credential is not authentic is greater than the threshold comprises using different thresholds for requests for encrypted website credentials associated with different third party websites.
     
    10. A method for authenticating a user (110) to a third party website (140), characterized by:

    receiving, at a client device (120), executable code from a vault system (130);

    executing, by a processor at the client device, the executable code to obfuscate an encryption key and store the obfuscated encryption key at the client device, wherein the encryption key encrypts at least one website credential for authenticating the user to the third party website;

    sending, from the client device, the encrypted website credential (122) to the vault system for storage in a vault account at the vault system, wherein the encryption key is not available to the vault system;

    receiving, at the client device, an indication to provide the website credential to the third party website;

    sending, to the vault system, at least one first credential (121) to authenticate the user with the vault account in response to receiving the indication;

    receiving, in response to a determination that the first vault credential is not authentic, a request to provide at least one second vault credential (134) to authenticate the user with the vault account, wherein the second vault credential is distinct from the first vault credential;

    sending, to the vault system, a request for the encrypted website credential;

    sending, to the client device, the encrypted website credential and at least one form fill parameter (122) in response to successfully authenticating the first vault credential and the second vault credential, wherein the executable code is further to:

    receiving, from the vault system, the encrypted website credential and at least one form fill parameter (122) in response to successful authentication of the first vault credential and the second vault credential at the vault system;
    further executing, by the processor at the client device, the executable code to:

    decrypt the encrypted website credential into the website credential using the stored obfuscated encryption key at the client device, and

    use the form fill parameter to inject the website credential into at least one form field (621, 623) in an authentication page (620) of the third party website; and

    sending, from the client device, the website credential to the third party website to authenticate the user to the third party website.


     


    Ansprüche

    1. Verfahren zur Authentifizierung eines Benutzers (110) für eine Webseite (140) einer dritten Partei, gekennzeichnet durch:

    Senden von ausführbarem Code an ein Client-Gerät (120) von einem Tresorsystem (Vaultsystem) (130), der bei Ausführung durch einen Prozessor im Client-Gerät einen Codierungsschlüssel unkenntlich macht und den unkenntlich gemachten Codierungsschlüssel auf dem Client-Gerät speichert, wobei der Codierungsschlüssel mindestens eine Webseiten-Anmeldeinformation zur Authentifizierung des Benutzers für die Webseite der dritten Partei codiert,

    Empfangen der codierten Webseiten-Anmeldeinformation (122) vom Client-Gerät am Tresorsystem, wobei der Codierungsschlüssel dem Tresorsystem nicht zur Verfügung steht,

    Speichern der empfangenen codierten Webseiten-Anmeldeinformation in einem Tresor-Account des Tresorsystems,

    Empfangen mindestens einer ersten Tresor-Anmeldeinformation (121) vom Client-Gerät, um den Benutzer für den Tresor-Account zu authentifizieren,

    Authentifizieren der ersten Tresor-Anmeldeinformation,

    Bestimmen, dass die erste Tresor-Anmeldeinformation nicht authentisch ist,

    Anfordern mindestens einer zweiten Tresor-Anmeldeinformation (134) in Reaktion auf das Bestimmen, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, um den Benutzer für den Tresor-Account zu authentifizieren, wobei sich die zweite Tresor-Anmeldeinformation von der ersten Tresor-Anmeldeinformation unterscheidet,

    Authentifizieren der zweiten Tresor-Anmeldeinformation,

    Empfangen einer Anforderung der codierten Webseiten-Anmeldeinformation vom Client-Gerät,

    Abrufen der codierten Webseiten-Anmeldeinformation von dem Tresor-Account im Tresorsystem und

    Senden der codierten Webseiten-Anmeldeinformation und mindestens eines Formularausfüllparameters (122) in Reaktion auf eine erfolgreiche Authentifizierung der ersten Tresor-Anmeldeinformation und der zweiten Tresor-Anmeldeinformation an das Client-Gerät, wobei der ausführbare Code ferner für Folgendes vorgesehen ist:

    Decodieren der codierten Webseiten-Anmeldeinformation in die Webseiten-Anmeldeinformation unter Verwendung des gespeicherten, unkenntlich gemachten Codierungsschlüssels am Client-Gerät und

    Verwenden des Formularausfüllparameters, um die Webseiten-Anmeldeinformation in mindestens ein Formularfeld (621, 623) auf einer Authentifizierungsseite (620) der Webseite der dritten Partei einzusetzen.


     
    2. Verfahren nach Anspruch 1, wobei die erste Tresor-Anmeldeinformation einen Benutzernamen (712) und ein Passwort (714) umfasst.
     
    3. Verfahren nach Anspruch 1, wobei das Bestimmen, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, das Bestimmen umfasst, dass ein Risiko, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, größer als ein Grenzwert ist.
     
    4. Verfahren nach Anspruch 3, wobei das Anfordern der zweiten Tresor-Anmeldeinformation das Anfordern eines Namens (132) eines Internet-Dienstanbieters des Benutzers von einer dritten Partei (150) umfasst.
     
    5. Verfahren nach Anspruch 3, wobei das Anfordern der zweiten Tresor-Anmeldeinformation das Anfordern eines Einmalpassworts (124, 134, 722) von dem Client-Gerät umfasst, wobei das Verfahren ferner das Senden des Einmalpassworts an einen Identitätsschutz-Server (160) zur Bestätigung und das Empfangen von Ergebnissen der Bestätigung umfasst und wobei die codierte Webseiten-Anmeldeinformation und der Formularausfüllparameter in Reaktion auf eine erfolgreiche Bestätigung des Einmalpassworts an das Client-Gerät gesendet werden.
     
    6. Verfahren nach Anspruch 1, wobei die codierte Webseiten-Anmeldeinformation in dem Schritt des Abrufens der codierten Webseiten-Anmeldeinformation codiert wird und wobei das Bestimmen, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, das Bestimmen umfasst, dass ein Risiko, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, größer als ein Grenzwert ist.
     
    7. Verfahren nach Anspruch 6, wobei das Anfordern der zweiten Tresor-Anmeldeinformation das Anfordern eines Einmalpassworts vom Client-Gerät umfasst.
     
    8. Verfahren nach Anspruch 6, wobei das Anfordern der zweiten Tresor-Anmeldeinformation das Senden einer Sicherheitsfrage an das Client-Gerät und das Anfordern einer auf der Sicherheitsfrage basierenden Antwort von dem Client-Gerät umfasst.
     
    9. Verfahren nach Anspruch 3, wobei das Bestimmen, dass das Risiko, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, größer als der Grenzwert ist, das Verwenden verschiedener Grenzwerte für Anforderungen von codierten Webseiten-Anmeldeinformationen, die mit unterschiedlichen Webseiten dritter Parteien verbunden sind, umfasst.
     
    10. Verfahren zur Authentifizierung eines Benutzers (110) für eine Webseite (140) einer dritten Partei, gekennzeichnet durch:

    Empfangen von ausführbarem Code an einem Client-Gerät (120) von einem Tresorsystem (Vaultsystem) (130),

    Ausführen des ausführbaren Codes durch einen Prozessor im Client-Gerät, um einen Codierungsschlüssel unkenntlich zu machen und den unkenntlich gemachten Codierungsschlüssel auf dem Client-Gerät zu speichern, wobei der Codierungsschlüssel mindestens eine Webseiten-Anmeldeinformation zur Authentifizierung des Benutzers für die Webseite der dritten Partei codiert,

    Senden der codierten Webseiten-Anmeldeinformation (122) vom Client-Gerät an das Tresorsystem zwecks Speicherns in einem Tresor-Account im Tresorsystem, wobei der Codierungsschlüssel dem Tresorsystem nicht zur Verfügung steht,

    Empfangen eines Hinweises am Client-Gerät, die Webseiten-Anmeldeinformation für die Webseite der dritten Parte bereitzustellen,

    Senden mindestens einer ersten Tresor-Anmeldeinformation (121) an das Tresorsystem in Reaktion auf das Empfangen des Hinweises, um den Benutzer für den Tresor-Account zu authentifizieren,

    Empfangen einer Anforderung, mindestens eine zweite Tresor-Anmeldeinformation (134) bereitzustellen, in Reaktion auf eine Bestimmung, dass die erste Tresor-Anmeldeinformation nicht authentisch ist, um den Benutzer für den Tresor-Account zu authentifizieren, wobei sich die zweite Tresor-Anmeldeinformation von der ersten Tresor-Anmeldeinformation unterscheidet,

    Senden einer Anforderung von codierten Webseiten-Anmeldeinformation an das Tresorsystem,

    Senden der codierten Webseiten-Anmeldeinformation und mindestens eines Formularausfüllparameters (122) in Reaktion auf eine erfolgreiche Authentifizierung der ersten Tresor-Anmeldeinformation und der zweiten Tresor-Anmeldeinformation an das Client-Gerät, wobei der ausführbare Code ferner für Folgendes vorgesehen ist:

    Empfangen der codierten Webseiten-Anmeldeinformation und mindestens eines Formularausfüllparameters (122) von dem Tresorsystem in Reaktion auf eine erfolgreiche Authentifizierung der ersten Tresor-Anmeldeinformation und der zweiten Tresor-Anmeldeinformation am Tresorsystem,

    ferner Ausführen des ausführbaren Codes durch den Prozessor im Client-Gerät für Folgendes:

    Decodieren der codierten Webseiten-Anmeldeinformation in die Webseiten-Anmeldeinformation unter Verwendung des gespeicherten, unkenntlich gemachten Codierungsschlüssels an dem Client-Gerät und

    Verwenden des Formularausfüllparameters, um die Webseiten-Anmeldeinformation in mindestens ein Formularfeld (621, 623) auf einer Authentifizierungsseite (620) der Webseite der dritten Partei einzusetzen und

    Senden der Webseiten-Anmeldeinformation an die Webseite der dritten Partei von dem Client-Gerät, um den Benutzer für die Webseite der dritten Partei zu authentifizieren.


     


    Revendications

    1. Procédé d'authentification d'un utilisateur (110) auprès d'un site web tiers (140), caractérisé par les étapes ci-dessous consistant à :

    envoyer, à partir d'un système de coffre-fort (130), un code exécutable, à un dispositif client (120), qui, lorsqu'il est exécuté par un processeur au niveau du dispositif client, obscurcit une clé de chiffrement et stocke la clé de chiffrement obscurcie au niveau du dispositif client, dans lequel la clé de chiffrement chiffre au moins des informations d'identification de site web pour authentifier l'utilisateur auprès du site web tiers ;

    recevoir, au niveau du système de coffre-fort, les informations d'identification de site web chiffrées (122), en provenance du dispositif client, dans lequel la clé de chiffrement n'est pas disponible pour le système de coffre-fort ;

    stocker les informations d'identification de site web chiffrées reçues dans un compte de coffre-fort au niveau du système de coffre-fort ;

    recevoir, en provenance du dispositif client, au moins des premières informations d'identification de coffre-fort (121) destinées à authentifier l'utilisateur avec le compte de coffre-fort ;

    authentifier les premières informations d'identification de coffre-fort ;

    déterminer que les premières informations d'identification de coffre-fort ne sont pas authentiques ;

    demander, en réponse à la détermination selon laquelle les premières informations d'identification de coffre-fort ne sont pas authentiques, au moins des secondes informations d'identification de coffre-fort (134) destinées à authentifier l'utilisateur avec le compte de coffre-fort, dans lequel les secondes informations d'identification de coffre-fort sont distinctes des premières informations d'identification de coffre-fort ;

    authentifier les secondes informations d'identification de coffre-fort ;

    recevoir, en provenance du dispositif client, une demande concernant les informations d'identification de site web chiffrées ;

    extraire les informations d'identification de site web chiffrées du compte de coffre-fort au niveau du système de coffre-fort ; et

    envoyer, au dispositif client, les informations d'identification de site web chiffrées et au moins un paramètre de remplissage de formulaire (122) en réponse à l'authentification réussie des premières informations d'identification de coffre-fort et des secondes informations d'identification de coffre-fort, dans lequel le code exécutable est en outre exploitable de manière à :

    déchiffrer les informations d'identification de site web chiffrées en les informations d'identification de site web, en utilisant la clé de chiffrement obscurcie stockée au niveau du dispositif client ; et

    utiliser le paramètre de remplissage de formulaire pour injecter les informations d'identification de site web dans au moins un champ de formulaire (621, 623) dans une page d'authentification (620) du site web tiers.


     
    2. Procédé selon la revendication 1, dans lequel les premières informations d'identification de coffre-fort comprennent un nom d'utilisateur (712) et un mot de passe (714).
     
    3. Procédé selon la revendication 1, dans lequel l'étape consistant à déterminer que les premières informations d'identification de coffre-fort ne sont pas authentiques consiste à déterminer qu'un risque que les premières informations d'identification de coffre-fort ne soient pas authentiques est supérieur à un seuil.
     
    4. Procédé selon la revendication 3, dans lequel l'étape de demande des deuxièmes informations d'identification de coffre-fort consiste à demander un nom (132) d'un fournisseur de services Internet de l'utilisateur auprès d'un tiers (150).
     
    5. Procédé selon la revendication 3, dans lequel l'étape de demande des secondes informations d'identification de coffre-fort consiste à demander un mot de passe à usage unique (124, 134, 722) auprès du dispositif client, dans lequel le procédé comprend en outre l'étape consistant à envoyer le mot de passe à usage unique à un serveur de protection d'identité (160) en vue d'une vérification, et l'étape consistant à recevoir des résultats de la vérification, et dans lequel les informations d'identification de site web chiffrées et le paramètre de remplissage de formulaire sont envoyés au dispositif client en réponse à la vérification réussie du mot de passe à usage unique.
     
    6. Procédé selon la revendication 1, dans lequel les informations d'identification de site web chiffrées sont chiffrées à l'étape d'extraction des informations d'identification de site web chiffrées, et dans lequel l'étape consistant à déterminer que les premières informations d'identification de coffre-fort ne sont pas authentiques consiste à déterminer qu'un risque que les premières informations d'identification de coffre-fort ne soient pas authentiques est supérieur à un seuil.
     
    7. Procédé selon la revendication 6, dans lequel l'étape de demande des secondes informations d'identification de coffre-fort consiste à demander un mot de passe à usage unique auprès du dispositif client.
     
    8. Procédé selon la revendication 6, dans lequel l'étape de demande des deuxièmes informations d'identification de coffre-fort comprend l'étape consistant à envoyer, au dispositif client, une question de demande d'accès, et à demander, au dispositif client, une réponse, sur la base de la question de demande d'accès.
     
    9. Procédé selon la revendication 3, dans lequel l'étape consistant à déterminer que le risque que les premières informations d'identification de coffre-fort ne soient pas authentiques est supérieur au seuil comprend l'étape consistant à utiliser différents seuils pour des demandes concernant des informations d'identification de site web chiffrées associées à différents sites web tiers.
     
    10. Procédé d'authentification d'un utilisateur (110) auprès d'un site web tiers (140), caractérisé par les étapes ci-dessous consistant à :

    recevoir, au niveau d'un dispositif client (120), un code exécutable en provenance d'un système de coffre-fort (130) ;

    exécuter, par un processeur au niveau du dispositif client, le code exécutable, en vue d'obscurcir une clé de chiffrement et stocker la clé de chiffrement obscurcie au niveau du dispositif client, dans lequel la clé de chiffrement chiffre au moins des informations d'identification de site web pour authentifier l'utilisateur auprès du site web tiers ;

    envoyer, à partir du dispositif client, les informations d'identification de site web chiffrées (122) au système de coffre-fort en vue d'un stockage dans un compte de coffre-fort au niveau du système de coffre-fort, dans lequel la clé de chiffrement n'est pas disponible pour le système de coffre-fort ;

    recevoir, au niveau du dispositif client, une indication invitant à fournir les informations d'identification de site web au site web tiers ;

    envoyer, au système de coffre-fort, au moins des premières informations d'identification (121) pour authentifier l'utilisateur avec le compte de coffre-fort en réponse à la réception de l'indication ;

    recevoir, en réponse à une détermination selon laquelle les premières informations d'identification de coffre-fort ne sont pas authentiques, une demande invitant à fournir au moins des secondes informations d'identification de coffre-fort (134) pour authentifier l'utilisateur avec le compte de coffre-fort, dans lequel les secondes informations d'identification de coffre-fort sont distinctes des premières informations d'identification de coffre-fort ;

    envoyer, au système de coffre-fort, une demande concernant les informations d'identification de site web chiffrées ;

    envoyer, au dispositif client, les informations d'identification de site web chiffrées et au moins un paramètre de remplissage de formulaire (122) en réponse à l'authentification réussie des premières informations d'identification de coffre-fort et des secondes informations d'identification de coffre-fort, dans lequel le code exécutable est en outre exploitable de manière à :

    recevoir, en provenance du système de coffre-fort, les informations d'identification de site web chiffrées et au moins un paramètre de remplissage de formulaire (122) en réponse à l'authentification réussie des premières informations d'identification de coffre-fort et des secondes informations d'identification de coffre-fort au niveau du système de coffre-fort ;
    exécuter en outre, par le biais du processeur au niveau du dispositif client, le code exécutable de manière à :

    déchiffrer les informations d'identification de site web chiffrées en les informations d'identification de site web, en utilisant la clé de chiffrement obscurcie stockée au niveau du dispositif client ; et

    utiliser le paramètre de remplissage de formulaire pour injecter les informations d'identification de site web dans au moins un champ de formulaire (621, 623) dans une page d'authentification (620) du site web tiers ; et

    envoyer, à partir du dispositif client, les informations d'identification de site web au site web tiers pour authentifier l'utilisateur auprès du site web tiers.


     




    Drawing





























    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description