US20070165859A1 - Multiple level access system - Google Patents
Multiple level access system Download PDFInfo
- Publication number
- US20070165859A1 US20070165859A1 US11/376,716 US37671606A US2007165859A1 US 20070165859 A1 US20070165859 A1 US 20070165859A1 US 37671606 A US37671606 A US 37671606A US 2007165859 A1 US2007165859 A1 US 2007165859A1
- Authority
- US
- United States
- Prior art keywords
- key
- credential
- access
- level
- credentials
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Definitions
- the present invention relates to techniques for controlling access to computer-based systems.
- the present invention relates to techniques for providing multiple-level access control to objects in a computer system.
- Access control can be defined as enforcing data-use or other object-use permissions that grant or deny access to content or applications.
- data-use can include a broad selection of functions such as reading, changing, executing, creating, overwriting, or deleting.
- the ability to change access permissions is another type of access that can be granted or denied.
- Access control should be considered in a system approach in which a strong user (entity or member) identification and authorization (I&A) process plays a role.
- An exemplary system for user identification is described in a co-pending U.S. patent application Ser. No. 10/060,039, filed on Jan. 30, 2002, the entire disclosure of which is incorporated herein by this reference.
- the goal is to provide access control to objects such as data and applications. It should be flexible and suitable for implementing a variety of different schemes, such as discretionary access controls (DAC) and mandatory access controls (MAC).
- DAC discretionary access controls
- MAC mandatory access controls
- the key management system should be suitable for implementing a role-based access control system (RBAC). These controls should support content-based access control architectures that provide a very granular object level enforcement or that enable an expanded access.
- RBAC role-based access control system
- a user's profile (“user profile”) determines whether and how the user can encrypt (write) and decrypt (access) an object, which can be, for example, a data instance or a computer program.
- a user profile includes at least one credential, and each credential includes one or both of an asymmetric key pair: a credential public key (write authority) and a credential private key (access authority).
- a user can encrypt (or write) an object with one or more particular credential public keys included in the user's profile, such that subsequent decryption of the encrypted object by another user (or the original user) requires corresponding or otherwise authorized credentials. Accordingly, a user can decrypt an encrypted object if the user possesses, in that user's profile, credentials corresponding to those with which the encrypted object was encrypted. A user can select one or more credentials with which to interact with a particular object or objects in general, or selection of credentials can be automated.
- a credential and an object can correspond to a multiple-level access level (“MLA level”) to effectuate a partitioned-access scheme, an access-up scheme, or an access-down scheme for encryption and decryption of objects.
- MLA level multiple-level access level
- the MLA level of a credential can be assigned by a domain authority, whereas the MLA level of an object can be assigned based on the object's content or based on the credential(s) used to encrypt the object.
- a user profile and one or more credentials included in the profile can be secured, in whole or in part, through one or more levels of encryption.
- a user can obtain access to the user's respective user profile and one or more particular credentials contained in the profile by providing the requisite data for respective decryption of the profile or the credentials.
- the requisite data can be encryption scheme data (such as one or more encryption keys, algorithm identifiers, key qualifiers, or algorithm qualifiers, for example) or instances of keying data used to generate encryption scheme data.
- a user can provide the requisite data as required or during an identification protocol through which the user obtains access to the computer system. In either case, the requisite data can be preexisting or generated, in whole or in part, such as through a user identification and authorization scheme.
- Access controls according to the present invention are enforced using cryptographic algorithms, either proprietary or standards-based.
- Basic read and write access is correlated to decrypt and encrypt access, respectively, through credentials. These credentials can also define different access sensitivity levels based on defined I&A. Credentials can also control access to applications.
- the present invention extends enforcement through read and write access controls, using cryptography, whereas most systems, such as computer operating systems, use software to provide access enforcement.
- the system of the present invention can be used alone, or with operating system access controls to provide greater security.
- the present invention can provide cryptographic enforcement of a computer file system read and write controls.
- a method of securing an object at a multiple-level access level includes receiving, from a user, a profile key encryption key corresponding to the multiple-level access level, selecting an object to secure, and selecting a profile associated with the user.
- the profile includes a domain value, an encrypted profile encryption key, and a credential.
- the credential includes an encrypted credential public key, an encrypted credential public key encryption key, and a multiple-level access identifier.
- the method also includes selecting the credential based on a comparison of the multiple-level access level and the multiple-level access identifier, and generating a working key.
- Generating the working key includes generating a random value, and binding at least the domain value and the random value together to form the working key.
- the method also includes encrypting the object with the working key, and generating a random value encryption key.
- Generating the random value encryption key includes decrypting the encrypted credential public key encryption key with at least the profile key encryption key, decrypting the encrypted credential public key with at least the decrypted credential public key encryption key, generating an ephemeral key pair including an ephemeral private key and an ephemeral public key, generating a shared value based on at least the ephemeral private key and the decrypted credential public key, and generating the random value encryption key based on at least the shared value.
- the method also includes encrypting the random value with at least the random value encryption key, and providing the encrypted object, the ephemeral public key, and the encrypted random value for an authorized recipient.
- the profile can also include a profile initialization vector, in which case decrypting the encrypted credential public key encryption key can also include decrypting the encrypted credential public key encryption key with the profile key encryption key and the profile initialization vector.
- the credential can also include a credential initialization vector, in which case decrypting the encrypted credential public key can include decrypting the encrypted credential public key with the decrypted credential public key encryption key and the credential initialization vector.
- the multiple-level access level can correspond to the multiple-level access identifier, or the multiple-level access level can be identical to the multiple-level access identifier, lower than the multiple-level access identifier, or higher than the multiple-level access identifier.
- FIG. 1 is a table showing a summary of combinations of read and write permissions.
- FIG. 2 is a block diagram illustrating the selection of credentials to restrict access according to an exemplary embodiment of the present invention.
- FIG. 3 is a block diagram illustrating the selection of credentials to broaden access according to an exemplary embodiment of the present invention.
- FIG. 4 is an illustration of the threshold method of implementing multiple credential selection categories.
- FIG. 5 is a table showing an exemplary set of credentials that are available for a given log-in MLA level and defined access type.
- FIG. 6 is a table showing exemplary respective relationships between credential private key encryption keys and between credential public key encryption keys.
- FIG. 7 is a table showing an exemplary encrypted member profile and keys according to the present invention.
- FIG. 8 is a block diagram showing steps in decrypting a member profile.
- a computer system includes a user profile for each user of the system.
- a user profile is used to determine whether and how the user can encrypt (write) and decrypt (access) an object, which can be, for example, a data instance or a computer program.
- a user profile includes at least one credential, and each credential includes one or both of an asymmetric key pair: a credential public key (write authority), and a credential private key (access authority).
- a credential public key write authority
- a credential private key access authority
- a user can write (or secure) a preexisting object, which might be unsecured or already secured, or a new object created by the user, such as an electronic communication.
- a user secures an object by accessing at least one credential included in the user's user profile, and encrypting the object with the respective public key of each of the at least one accessed credential, such that subsequent access to the secured object requires access to corresponding or otherwise authorized credentials.
- a user can access a secured object if the user possesses credentials corresponding to those with which the secured object was encrypted.
- a credential or an object can have a respective MLA level associated with it.
- a user can secure an object at one or more respective access levels with one or more accessed credentials, such that subsequent access to the secured object requires access to corresponding or qualified credentials.
- Access levels can correspond to a partitioned access scheme, an access up scheme, or an access up scheme in regards to encryption and decryption. Different schemes can be selected for write and read control.
- a user can control the access level available to the user by selecting one or more of the user's credentials either at the time an object is to be encrypted or decrypted, or during implementation of an identification protocol through which the user obtains access to the computer system.
- a user profile and one or more credentials contained in the user profile can be secured, in whole or in part, through one or more levels of encryption.
- a user can obtain access to the user's respective user profile and one or more particular credentials included in the profile by providing the requisite data for respective decryption of the profile or the credentials.
- the requisite data can be encryption scheme data (such as one or more encryption keys, algorithm identifiers, key qualifiers, or algorithm qualifiers) or instances of keying data used to generate encryption scheme data.
- a user can provide the requisite data as required or during an identification protocol implementation through which the user obtains access to the computer system. In either case, the requisite data can be preexisting or generated, in whole or in part, such as through a combining or binding procedure.
- the paradigm of the present invention includes a random value.
- the random value is encrypted using the public part of an asymmetric key pair.
- the random value must first be decrypted using the corresponding private part of the asymmetric key pair.
- Enforcement through read and write access control is based on sharing the private and public keys, respectively.
- the key pairs are directly correlated to credentials that are associated with labels or information content. By using more than one key pair to encrypt and decrypt the random value, access can be restricted or broadened.
- a credential is a key pair used for access control.
- the public key is called the write credential and the private key the read credential.
- a credential or set of credentials can define a role.
- domain members can be assigned to one or more roles and have access rights that correspond to the credentials within that role. Applying a credential during encryption under this system can be referred to as labeling.
- the application of the scheme of the present invention is embodied in the labeling of an object.
- the public key associated with that credential is used in the encryption process.
- the private key associated with that same credential must be available in order to be able to decrypt the object.
- Possession of public and private keys is the basis of read and write access control in the system of the present invention.
- a single credential can be used during a session, and simultaneous use of more than one credential is also allowed.
- a user is required to have read access to all of the credentials that were used for session encryption before decryption is possible. This means that adding credentials during encryption has the effect of restricting readership within the domain.
- Credentials can be grouped into categories for ease of use. Generally, within a category, credentials will be related. An example of a category is “country”. Credentials in this category might include “U.S.”, “Canada”, “Germany”, “England”, and so on. Selecting “U.S.” from the country category as a credential during encryption would limit readership of the encrypted object to those who have read access to the “U.S.” credential. Another example of a category is “security level”. Credentials found in this category could be “Top Secret”, “Secret”, “Confidential”, or “Sensitive But Unclassified”. Thus, selecting “Secret” from the security level category as a credential during encryption would limit readership of the encrypted object to those who have read access to the “Secret” credential.
- credentials within a category can be mutually exclusive, as for example, the country category above where each credential can be taken without reference to a role or member's association.
- credentials can also be inclusive, such as those in the security level category, in which it can be defined that credentials to a particular security level can include credentials to all security levels lower than that level.
- the partitioning of the “Top Secret”, “Secret”, and “Confidential” read and write access would depend on assigning these credentials to identified roles that are associated with the members.
- the system architecture gains more flexibility if credentials are allowed to broaden readership in addition to restricting readership. Broadening access can be managed by allowing multiple credentials within a particular category to be chosen. In this case, a member would be required to have read access for only one of the credentials that were used for encryption within that category. This is known as “either-or” capability, because either of the credentials is required for decryption.
- Different user identification factors can be used alone or together according to the present invention to create different I&A schemes, such as that defined in the co-pending I&A patent application cited previously. More than one scheme can be defined within a domain. Security levels, risk assessment levels, or assurance levels may be related to different schemes. These schemes are assigned a Multi-Level Access (MLA) level. A domain member can have a choice of which I&A scheme to use for login depending on the assigned relative security level.
- MLA Multi-Level Access
- Credentials are assigned to an MLA level. Whether the use of a particular credential is permitted depends on the MLA level of the I&A scheme that was used for login.
- the symbol, - represents permission to use credentials only at the same level as I&A
- ⁇ represents permission to use credentials at the same level as I&A or above
- ⁇ represents permission to use credentials at the same level as I&A or below.
- a domain can selectively apply an MLA level to a category.
- MLA was applied to the “security level” category, whereas the “country” category was not subject to MLA.
- the symmetric key cryptographic algorithms that are used for object encryption can be used to control access.
- the ability of a member to use a specific algorithm can be allocated to roles as another factor enforcing access control.
- the selection of algorithms can be defined by the domain.
- the symmetric algorithm access process can be complemented with MLA.
- the algorithms available to a member would also then depend on the security level of the member login process.
- the combination of algorithm access and MLA offers a more balanced security approach. Data that is more sensitive requires stronger algorithms together with stronger user I&A.
- Access to applications and associated credentials can also be controlled.
- Each application, along with the list of credentials that are valid for each application, is assigned to a member.
- the application credentials will be contained in the member's profile that is defined, for example, through the runtime environment of the key management system. Only the credentials that appear in the list can be used with the application.
- the I&A process validates a member to his or her profile for further decryption of the profile. After the profile is decrypted, the application-credentials are available for accessing prescribed applications.
- the key management runtime environment protocol for example, enforces the access to an application.
- the application's file (or an element of the file) and the list of associated credentials can be digitally signed by the domain authority.
- a member To access an application, a member must have the digital signature in his or her profile, as well as at least one of the credentials associated with the application.
- the key management runtime environment requests the signature from the member's profile. If there is no signature, the application is not accessed. If the signature is available, it will be verified against the application file and the list of credentials associated with that application. If the signature verifies correctly, access is granted.
- the runtime environment will only allow the member to use the set of credentials that the domain authority has associated with the application.
- the result of a successful login is a value that is used as a symmetric cryptographic key.
- Each credential has an MLA level associated with it.
- MLA levels are represented by the number 0, and by integers starting from 1.
- a credential assigned to level 0 is special; this signifies that the credential is exempt from MLA. Beginning with level 1, higher levels can represent different levels of security, for example, stronger security.
- MLA exemption will be in effect for all credentials within a given category, that is, individual credentials, while flagged with level 0, are not individually given MLA exemption—only categories are. Those credentials in the categories that are exempt from MLA (as determined by the domain authority) are always available.
- access is granted if the credential MLA level corresponds to the I&A level. This is true whether partitioned access, access up, or access down is specified.
- Encryption of credentials within a member's profile is the basis for enforcing multiple level access.
- Credential private and public keys are encrypted with a key corresponding to the MLA level assigned to the credential.
- the encryption key for each CEK is derived from the I&A value of the corresponding level.
- any suitable proprietary or standard symmetric key algorithm can be used for profile encryption.
- triple DES (3 ⁇ DES) is a current standard symmetric key algorithm suitable for profile encryption.
- a replacement algorithm for 3 ⁇ DES known as the Advanced Encryption Algorithm (AES) will soon be an official standard.
- AES in eight bit cipher feedback (CFB 8 ) mode can be used to encrypt the member's profile.
- the profile encryption key (PEK) is 128 bits for the key plus 128 bits for an initialization vector (IV), for a total of 256 bits.
- the IV used for the profile is a random string that is stored as plaintext within the profile.
- the key portion of the PEK is encrypted using the I&A derived value as the basis for the profile key encryption key (PKEK). If more than one level of I&A is used, such as with MLA, then there will be more than one PKEK.
- CFB 8 mode is presented as an exemplary key algorithm, so that each item in the profile can be encrypted without regard for padding
- the credential private key encryption keys are related to each other.
- the credential public key encryption keys are related to each other. The relationships are defined below.
- There four types of credential access MLA exempt credential access, partitioned access, access up, and access down.
- MLA Exempt Credentials If the credential is exempt from MLA, then the credential encrypting keys and initialization vector are the same as the profile encrypting key and IV.
- Partitioned Access For partitioned access, the credential encrypting key is just the value derived from the I&A process of the corresponding level.
- the credential encryption key for the lowest level is generated at random.
- Credential encryption keys at other levels are derived from this first key in such a way that key values of levels above any level can be derived but key values of the levels below cannot.
- a one-way hash function such as SHA256 is used.
- Credential encryption key for the highest level is generated.
- Credential encryption keys at lower levels are derived from this key in such a way that key values of levels below some given level can be derived but key values of levels above cannot.
- a OWHF such as SHA256 is used.
- random values there are two random values associated with the key management process of the present invention: a random value that is used in the construction of a working key, and an ephemeral key pair that is used in the encryption and decryption of the first random value.
- a combiner, or binder is the function that produces a working key, that is, the key used for object encryption.
- An exemplary combiner is described in U.S. patent application Ser. No. 09/023,672.
- the combiner takes three key inputs: a domain value, a domain maintenance value, and a random value. Domain and maintenance values are included in a member's profile but the random value must be sent or kept with the encrypted object. The random value changes with the creation of a new working key. Credentials that are chosen for use in the encryption process are used to encrypt this random value.
- the encryption of the random value with a key derived from the chosen credentials is the basis of assigning access permissions and enforcing access control to encrypted objects.
- Each instance of an object encryption results in a new random value and Diffie-Hellmen ephemeral key pair generation.
- the ephemeral private key is used with each chosen credential public key to compute shared values.
- the ephemeral public key is sent with the encrypted object for use during decryption.
- the ephemeral public key will be used with each credential private key to recreate the shared values. From these shared values, a random value encryption key (REK) is calculated.
- REK random value encryption key
- the REK is built from all of the shared values. This requires possession of all of the credential private keys (read permissions) in a member's profile for decryption. To manage this effectively, credentials are partitioned into categories and the user interface will only allow one credential to be chosen per category.
- the REK is produced from the shared values by binding using, for example, the combiner noted above, to generate a key from shared values.
- AES in ECB mode can be used, for example, to encrypt the random value, in which case 128 bits of key are needed.
- the basic method of generating the REK is to concatenate the shared values, a counter value, which is the string value 0000000116, and some “other” information, which in this case can be the credential indices, concatenated in order. This value is then hashed using SHA256 and the most significant 128 bits from this hashed value is used for the REK. See FIG. 2 .
- a member chooses which credentials to apply.
- no more than one credential per category can be chosen.
- Credential 3 is selected from Category A
- Credential 14 is selected from Category B.
- read permissions for both credentials are required to be able to decrypt the encrypted object. That is, access is granted to decrypt only if read permission (knowledge of private keys) is available for all credentials that were used to encrypt.
- the user interface will allow multiple credentials within a category to be selected. This is interpreted as the requirement to have read access to at least one of the chosen credentials in each category to enable decryption.
- a category for which this applies is called a multiple credential selection category (MCSC). See FIG. 3 .
- a member selects which credentials to apply. More than one credential can be selected form within a category if that category is a MCSC.
- one credential Topic Secret
- two credentials are selected from the Country category.
- read permissions for Top Secret and either Canada or United States are required to be able to decrypt the object. That is, access is granted to decrypt if read permission (knowledge of private key) is available for any one credential that was used to encrypt in a MCSC, as well as read permission for a credential form any other category.
- a threshold key is generated and s i +1 threshold shares are created for MCSC i.
- the key set used can be any sufficiently large prime number.
- the domain-wide Diffie-Hellman parameter p c for example, can be used for the key set.
- an AES key is calculated by binding as described above, using a counter of 00000001 16 and the credential index as “other” information. These s i derived keys are used to encrypt s i of the threshold shares with AES. These are done in order, that is, the derived key corresponding to the lowest index credential is used to encrypt the second share. The first share remains plaintext.
- the threshold key for each category is used like a shared value in the computation of the REK.
- the combiner method is again used, but with the threshold keys for the MCSC categories instead of Diffie-Hellman shared values and “other” information constructed from the number of credentials selected from each MCSC category.
- FIG. 4 gives an overview of an exemplary threshold method of implementing multiple credential selection categories.
- the MCSC category is “Country” and two credentials have been selected, that is, “Canada” and “United States” which in this example have credential IDs of 13 and 14.
- the threshold scheme will produce two more items in the header, compared to the lockbox method. However, if more than one category has multiple credentials and more than three credentials are chosen within these categories, the threshold method will produce fewer items. The more credentials within each category that are chosen, the better the threshold scheme is, in terms of space resources, over the general product method.
- Another method of implementing access-broadening credentials is to generate a 128-bit random value per category. These values are called REK i , where the index i represents the category with which it is associated. The random value is only encrypted once with the REK. The REK is calculated as the exclusive-OR value of all the REK i .
- the REK i is encrypted.
- the credential public key and ephemeral private key are used to derive a shared value as the basis of the encryption key.
- the key derivation function of the binder as discussed previously can be used to calculate the encryption keys.
- the extra information to be included with the encrypted object is simply n 128-bit encrypted values, where the value n is just the total number of credentials chosen.
- the set of credentials available to a member are all credentials that appear in the member's profile, that is, ⁇ c ⁇ P.
- a credential is represented by an 5-tuple, (cid, d c , x c , y c , ⁇ c ), where cid is the credential index, d c is the category, x c is the private key for the credential, y c is the public key for the credential and ⁇ c is the MLA level defined for the credential by the domain authority. Note that within a profile, the private key can be missing for some credentials. This implies encrypt-only (or write-only) permission for that credential.
- Credentials that are in categories that are exempt from MLA are always available. This set of credentials is ⁇ c ⁇ P
- ⁇ c 0 ⁇ (1)
- the table shown in FIG. 5 summarizes the set of credentials that are available to a member who has logged in using an MLA level of ⁇ 1A .
- the access type corresponds to the combinations from the table in FIG. 1 .
- the profile is encrypted with a profile encryption key, PEK and an initialization vector, PIV.
- the PIV is stored in the profile in plaintext form.
- the PEK is encrypted ⁇ max times, where ⁇ max is the number of MLA levels used.
- ⁇ ⁇ is the key derived from all I&A events that are defined for MLA level ⁇ .
- a member For decryption, a member completes a successful login at MLA level ⁇ , regenerating the key ⁇ ⁇ , and then recovering the PEK from ePEK ⁇ , which will allow decryption of the rest of the profile.
- PEK d ( ePEK ⁇ , ⁇ ⁇ , PIV ) (3) Encrypting Credentials in the Member's Profile
- the xek c and yek c are credential private and public key encrypting keys
- XIV c and YIV c are private key and public key initialization vectors, respectively.
- the credential encrypting keys and initialization vector are the same as the profile encrypting key and IV.
- Each PIV ⁇ is stored as plaintext in the profile.
- the encrypting key is just the value derived from the I&A process.
- xek c ⁇ ⁇ c (7a)
- ⁇ max credential private key encryption keys There will be ⁇ max credential private key encryption keys, and ⁇ max credential public key encrypting keys. These keys are represented by xek ⁇ , and yek ⁇ respectively, where ⁇ corresponds to an MLA level. Each xek ⁇ and yek ⁇ are stored encrypted in the profile using the value derived from the I&A process for the respective level as the key.
- an encrypting key for I&A level 1 is generated at random. All access up type encryption keys are derived from this value. The encrypting keys for I&A level other than the one used for I&A can then be derived from the encrypting key for level ⁇ 1A .
- h is the output size of the hash function and k is the keysize of the credential encryption algorithm, in bits.
- the meaning of division by 2 (h ⁇ k) is that the derived key value is taken as the most significant k bits of the hashed value.
- SHA1 hash function h ⁇ k is 48.
- AES (128-bit key) and SHA256 (256-bit output) this value is 128.
- AES (256-bit key) and SHA256 (256-bit output) this value is 0.
- an encrypting key for I&A level ⁇ max is generated at random.
- the encrypting keys for I&A level other than ⁇ max are derived from the encrypting key for level ⁇ max .
- All access down type encryption keys are derived from this value.
- the encrypting keys for I&A level other than the one used for I&A can then be derived from the encrypting key for level ⁇ 1A .
- the table shown in FIG. 6 summarizes, for each access type as defined in the table of FIG. 1 , the credential encryption keys and the independent values from which these are derived.
- FIG. 7 shows encrypted parts of the member profile.
- Credential public and private keys are encrypted with credential public and private key encryption keys of the same MLA level as the credential.
- Public and private key encryption keys are encrypted with the I&A derived key of the same level.
- the rest of the encrypted profile is encrypted with the PEK.
- the PEK is encrypted once for each MLA level using the I&A derived key of each level.
- FIG. 8 shows the process of decrypting the profile.
- the member logs on using an I&A process that corresponds to MLA level 1.
- This level can be chosen by the member before logging in, can be dictated by the MLA level of an encrypted object, or can be specified for an application by the domain authority.
- a key is derived from the I&A events. This key decrypts the ePEK ⁇ to recover the PEK, exek ⁇ to recover xek ⁇ and eyek ⁇ to recover yek ⁇ .
- the profile is then decrypted with the PEK, credential private keys of MLA level ⁇ are decrypted with xek ⁇ , and credential public keys of MLA level ⁇ are decrypted with yek ⁇ .
- cryptographic keys should be change. This applies to the I&A derived keys, profile encryption keys, and the credential public and private key encryption keys. Strategies to deal with key changes are discussed below.
- the profile must first be decrypted, then a new PEK and PIV generated at random, and finally re-encryption of the profile with the new key and IV takes place. Then the new PEK must be re-encrypted with ⁇ ⁇ , for each ⁇ . However, only one ⁇ ⁇ is known during the session in which the PEK is being changed.
- the new PEK is encrypted with the old PEK for each I&A level. This value is called ePEK′.
- the encrypted PEK for the new I&A level can be calculated and stored.
- a new PEK should not be generated until the previous PEK has been re-encrypted under all I&A levels. This leads to the following procedures.
- credential key encryption keys can have dependences on each other for different I&A levels. Therefore, it might not be possible to change just one credential key encryption key; the sequence of credential key encryption keys for all I&A levels might have to be changed all at once. However, if credential keys, either public or private, are partitioned or exempt from MLA, then one can proceed as above for the PEK.
- credential key encryption keys below the current I&A level can be accessed. Therefore, the session must be in the highest I&A level to allow changing of these credential key encryption keys. Similarly, for access up, the session must be in the lowest I&A level to change this type of credential key encryption keys.
- This list represents either the public or private credential key encryption key lists or both.
- CEK ⁇ represents any credential key encryption key—either public or private—of I&A level ⁇ .
- the set of chosen credentials will be represented by S ⁇ A.
- a Diffie-Hellman ephemeral key pair is generated during object encryption. The shared value for each credential is then computed.
- the threshold method is described here for illustrative purposes; the lockbox method is not described in detail, but can be used instead. See FIG. 4 and the related description for an overview of the threshold method.
- a shared key, K d ⁇ p c and a coefficient, a d ⁇ p c ⁇ 1 are generated at random.
- K d ⁇ p c and a coefficient, a d ⁇ p c ⁇ 1 are generated at random.
- the number of credentials chosen in category d be s d .
- a total of s d +1 values will be generated and these values will be denoted as x jd , where 0 ⁇ j ⁇ s d .
- the values are generated as follows:
- c max the maximum number of credentials that are possible in the system.
- x 1d the credential ID of the credential in category d with the lowest credential index.
- x 2d the credential ID of the credential in category d with the second-lowest credential index.
- x jd the credential ID of the credential in category d with the j th lowest credential index.
- i is the index of the credential that corresponds to the j th chosen credential in the category.
- the first share, ⁇ 0d does not get encrypted; it appears in the header as plaintext.
- the T value is formed from a mix of K d and Z i (in increasing order of category).
- the Diffie-Hellman shared values are first calculated. For multiple credentials in a category, only the first one that the member has read access for is needed. If the member has read access to none of the credentials used in an MCSC, then access to the encrypted object is denied.
- the REK is calculated according to eqs. (20) through (22), and the random component is then recovered. Once the random component is recovered, the working key can be reconstructed and the encrypted object can be decrypted.
- REK i 128 random bits are generated. These values will be referred to as REK i .
- Each REK i is encrypted with AES for each credential in the ith category before being transmitted with the encrypted object.
- K ji is the key associated with the jth chosen credential in category i.
Abstract
A method of securing an object at an access level includes selecting a profile for a user, including a credential having an encrypted credential public key, an encrypted credential public key encryption key, and a multiple-level access identifier. A working key is generated by binding a domain value with a random value. The object is encrypted with the working key. A random value encryption key is generated based on the shared value by decrypting the credential public key encryption key with the profile key encryption key, decrypting the credential public key with the credential public key encryption key, generating an ephemeral key pair, and generating a shared value based on the ephemeral private key and the credential public key. The random value is encrypted with the random value encryption key, and the encrypted object, the ephemeral public key, and the encrypted random value are provided for an authorized recipient.
Description
- This is a divisional of U.S. patent application Ser. No. 10/870,250, which was filed on Jun. 16, 2004, which in turn was a continuation of U.S. patent application Ser. No. 10/060,011, which was filed on Jan. 30, 2002, and is related to U.S. Provisional Patent Application Ser. No. 60/264,715, filed on Jan. 30, 2001, co-pending U.S. patent application Ser. No. 09/023,672, filed on Feb. 13, 1998, co-pending U.S. patent application Ser. No. 09/418,806, filed on Oct. 15, 1999, and co-pending U.S. patent application Ser. No. 10/060,039, filed on Jan. 30, 2002. The disclosures of all the related applications are incorporated herein in their entireties.
- Generally, the present invention relates to techniques for controlling access to computer-based systems. In particular, the present invention relates to techniques for providing multiple-level access control to objects in a computer system.
- Access control can be defined as enforcing data-use or other object-use permissions that grant or deny access to content or applications. In this context, data-use can include a broad selection of functions such as reading, changing, executing, creating, overwriting, or deleting. The ability to change access permissions is another type of access that can be granted or denied.
- Access control should be considered in a system approach in which a strong user (entity or member) identification and authorization (I&A) process plays a role. An exemplary system for user identification is described in a co-pending U.S. patent application Ser. No. 10/060,039, filed on Jan. 30, 2002, the entire disclosure of which is incorporated herein by this reference.
- Thus, the goal is to provide access control to objects such as data and applications. It should be flexible and suitable for implementing a variety of different schemes, such as discretionary access controls (DAC) and mandatory access controls (MAC). The key management system should be suitable for implementing a role-based access control system (RBAC). These controls should support content-based access control architectures that provide a very granular object level enforcement or that enable an expanded access.
- It is therefore an objective of the present invention to enforce domain member access control to CKM labeled data with cryptography—i.e. by using symmetric key algorithms, asymmetric key algorithms and cryptographic hash functions.
- It is another objective of the present invention to enforce domain member access control to applications.
- It is an additional objective of the present invention to control encryption (write) and decryption (read) of objects based on the content of the object.
- It is also an objective of the present invention to allow credential application to restrict or broaden readership of labeled objects.
- It is another objective of the present invention to provide a user interface paradigm that is intuitive and easy to use.
- It is an additional objective of the present invention to provide sensitivity level or multiple-level access control such that access to credentials is dependant on the method of member identification.
- It is also an objective of the present invention to enforce domain authority-dictated policies for multiple-level access control by credential category.
- According to an exemplary aspect of the invention, a user's profile (“user profile”) determines whether and how the user can encrypt (write) and decrypt (access) an object, which can be, for example, a data instance or a computer program. A user profile includes at least one credential, and each credential includes one or both of an asymmetric key pair: a credential public key (write authority) and a credential private key (access authority).
- A user can encrypt (or write) an object with one or more particular credential public keys included in the user's profile, such that subsequent decryption of the encrypted object by another user (or the original user) requires corresponding or otherwise authorized credentials. Accordingly, a user can decrypt an encrypted object if the user possesses, in that user's profile, credentials corresponding to those with which the encrypted object was encrypted. A user can select one or more credentials with which to interact with a particular object or objects in general, or selection of credentials can be automated.
- A credential and an object can correspond to a multiple-level access level (“MLA level”) to effectuate a partitioned-access scheme, an access-up scheme, or an access-down scheme for encryption and decryption of objects. The MLA level of a credential can be assigned by a domain authority, whereas the MLA level of an object can be assigned based on the object's content or based on the credential(s) used to encrypt the object.
- A user profile and one or more credentials included in the profile can be secured, in whole or in part, through one or more levels of encryption. Thus, a user can obtain access to the user's respective user profile and one or more particular credentials contained in the profile by providing the requisite data for respective decryption of the profile or the credentials. The requisite data can be encryption scheme data (such as one or more encryption keys, algorithm identifiers, key qualifiers, or algorithm qualifiers, for example) or instances of keying data used to generate encryption scheme data. Further, a user can provide the requisite data as required or during an identification protocol through which the user obtains access to the computer system. In either case, the requisite data can be preexisting or generated, in whole or in part, such as through a user identification and authorization scheme.
- Access controls according to the present invention are enforced using cryptographic algorithms, either proprietary or standards-based. Basic read and write access is correlated to decrypt and encrypt access, respectively, through credentials. These credentials can also define different access sensitivity levels based on defined I&A. Credentials can also control access to applications.
- The present invention extends enforcement through read and write access controls, using cryptography, whereas most systems, such as computer operating systems, use software to provide access enforcement. The system of the present invention can be used alone, or with operating system access controls to provide greater security. For example, the present invention can provide cryptographic enforcement of a computer file system read and write controls.
- These models offer a flexible approach to I&A and can allow the domain authority to tailor I&A policies for a particular domain. The present invention can be viewed as defining different I&A schemes with different relative assurance levels that can be used within a single domain.
- According to a particular aspect of the present invention, in a multi-level access system, a method of securing an object at a multiple-level access level includes receiving, from a user, a profile key encryption key corresponding to the multiple-level access level, selecting an object to secure, and selecting a profile associated with the user. The profile includes a domain value, an encrypted profile encryption key, and a credential. The credential includes an encrypted credential public key, an encrypted credential public key encryption key, and a multiple-level access identifier. The method also includes selecting the credential based on a comparison of the multiple-level access level and the multiple-level access identifier, and generating a working key. Generating the working key includes generating a random value, and binding at least the domain value and the random value together to form the working key. The method also includes encrypting the object with the working key, and generating a random value encryption key. Generating the random value encryption key includes decrypting the encrypted credential public key encryption key with at least the profile key encryption key, decrypting the encrypted credential public key with at least the decrypted credential public key encryption key, generating an ephemeral key pair including an ephemeral private key and an ephemeral public key, generating a shared value based on at least the ephemeral private key and the decrypted credential public key, and generating the random value encryption key based on at least the shared value. The method also includes encrypting the random value with at least the random value encryption key, and providing the encrypted object, the ephemeral public key, and the encrypted random value for an authorized recipient. The profile can also include a profile initialization vector, in which case decrypting the encrypted credential public key encryption key can also include decrypting the encrypted credential public key encryption key with the profile key encryption key and the profile initialization vector. The credential can also include a credential initialization vector, in which case decrypting the encrypted credential public key can include decrypting the encrypted credential public key with the decrypted credential public key encryption key and the credential initialization vector. The multiple-level access level can correspond to the multiple-level access identifier, or the multiple-level access level can be identical to the multiple-level access identifier, lower than the multiple-level access identifier, or higher than the multiple-level access identifier.
-
FIG. 1 is a table showing a summary of combinations of read and write permissions. -
FIG. 2 is a block diagram illustrating the selection of credentials to restrict access according to an exemplary embodiment of the present invention. -
FIG. 3 is a block diagram illustrating the selection of credentials to broaden access according to an exemplary embodiment of the present invention. -
FIG. 4 is an illustration of the threshold method of implementing multiple credential selection categories. -
FIG. 5 is a table showing an exemplary set of credentials that are available for a given log-in MLA level and defined access type. -
FIG. 6 is a table showing exemplary respective relationships between credential private key encryption keys and between credential public key encryption keys. -
FIG. 7 is a table showing an exemplary encrypted member profile and keys according to the present invention. -
FIG. 8 is a block diagram showing steps in decrypting a member profile. - Generally, according to the present invention, a computer system includes a user profile for each user of the system. A user profile is used to determine whether and how the user can encrypt (write) and decrypt (access) an object, which can be, for example, a data instance or a computer program.
- A user profile includes at least one credential, and each credential includes one or both of an asymmetric key pair: a credential public key (write authority), and a credential private key (access authority). The use of a particular credential can be write-only, access-only, or write and access authorized.
- A user can write (or secure) a preexisting object, which might be unsecured or already secured, or a new object created by the user, such as an electronic communication. A user secures an object by accessing at least one credential included in the user's user profile, and encrypting the object with the respective public key of each of the at least one accessed credential, such that subsequent access to the secured object requires access to corresponding or otherwise authorized credentials.
- A user can access a secured object if the user possesses credentials corresponding to those with which the secured object was encrypted.
- A credential or an object can have a respective MLA level associated with it. A user can secure an object at one or more respective access levels with one or more accessed credentials, such that subsequent access to the secured object requires access to corresponding or qualified credentials. Access levels can correspond to a partitioned access scheme, an access up scheme, or an access up scheme in regards to encryption and decryption. Different schemes can be selected for write and read control.
- A user can control the access level available to the user by selecting one or more of the user's credentials either at the time an object is to be encrypted or decrypted, or during implementation of an identification protocol through which the user obtains access to the computer system.
- A user profile and one or more credentials contained in the user profile can be secured, in whole or in part, through one or more levels of encryption. Thus, a user can obtain access to the user's respective user profile and one or more particular credentials included in the profile by providing the requisite data for respective decryption of the profile or the credentials. The requisite data can be encryption scheme data (such as one or more encryption keys, algorithm identifiers, key qualifiers, or algorithm qualifiers) or instances of keying data used to generate encryption scheme data. Further, a user can provide the requisite data as required or during an identification protocol implementation through which the user obtains access to the computer system. In either case, the requisite data can be preexisting or generated, in whole or in part, such as through a combining or binding procedure.
- In constructing an object encryption key (or session key), the paradigm of the present invention includes a random value. The random value is encrypted using the public part of an asymmetric key pair. To reconstruct the object encryption key, the random value must first be decrypted using the corresponding private part of the asymmetric key pair. Enforcement through read and write access control is based on sharing the private and public keys, respectively. The key pairs are directly correlated to credentials that are associated with labels or information content. By using more than one key pair to encrypt and decrypt the random value, access can be restricted or broadened.
- Asymmetric Key Credentials
- A credential is a key pair used for access control. The public key is called the write credential and the private key the read credential.
- A credential or set of credentials can define a role. In the system of the present invention, domain members can be assigned to one or more roles and have access rights that correspond to the credentials within that role. Applying a credential during encryption under this system can be referred to as labeling.
- The application of the scheme of the present invention is embodied in the labeling of an object. When a credential is applied, the public key associated with that credential is used in the encryption process. The private key associated with that same credential must be available in order to be able to decrypt the object. Possession of public and private keys is the basis of read and write access control in the system of the present invention.
- Credentials that Restrict Access
- A single credential can be used during a session, and simultaneous use of more than one credential is also allowed. A user is required to have read access to all of the credentials that were used for session encryption before decryption is possible. This means that adding credentials during encryption has the effect of restricting readership within the domain.
- Credentials can be grouped into categories for ease of use. Generally, within a category, credentials will be related. An example of a category is “country”. Credentials in this category might include “U.S.”, “Canada”, “Germany”, “England”, and so on. Selecting “U.S.” from the country category as a credential during encryption would limit readership of the encrypted object to those who have read access to the “U.S.” credential. Another example of a category is “security level”. Credentials found in this category could be “Top Secret”, “Secret”, “Confidential”, or “Sensitive But Unclassified”. Thus, selecting “Secret” from the security level category as a credential during encryption would limit readership of the encrypted object to those who have read access to the “Secret” credential.
- Given that credentials within a category are related, applying multiple credentials by selecting one credential from each category during encryption is contemplated. For example, selecting “Secret” from the security level category, and “U.S.” from the country category would limit readership even more as only those who have both the “U.S.” and the “Secret” credential could decrypt the object. This is an example of adding credentials that restrict readership.
- Note that credentials within a category can be mutually exclusive, as for example, the country category above where each credential can be taken without reference to a role or member's association. However, credentials can also be inclusive, such as those in the security level category, in which it can be defined that credentials to a particular security level can include credentials to all security levels lower than that level. The partitioning of the “Top Secret”, “Secret”, and “Confidential” read and write access would depend on assigning these credentials to identified roles that are associated with the members.
- Credentials that Broaden Access
- The system architecture gains more flexibility if credentials are allowed to broaden readership in addition to restricting readership. Broadening access can be managed by allowing multiple credentials within a particular category to be chosen. In this case, a member would be required to have read access for only one of the credentials that were used for encryption within that category. This is known as “either-or” capability, because either of the credentials is required for decryption.
- Referring back to the previous example, choosing both the “Canada” and the “U.S.” credentials from within the country category will allow users with either read access for “Canada” or read access for “U.S.”, the ability to decrypt. Adding credentials by selecting more than one credential within a category broadens readership.
- There is a danger that for categories that have inclusive type credentials, it is possible for a member to misuse this access broadening mechanism. For example, it defeats the purpose to label data as both “Top Secret” and “Confidential”. In this case, credentials should be bound to the I&A process to differentiate a member's access rights.
- Credentials that have Different Sensitivity
- Different user identification factors can be used alone or together according to the present invention to create different I&A schemes, such as that defined in the co-pending I&A patent application cited previously. More than one scheme can be defined within a domain. Security levels, risk assessment levels, or assurance levels may be related to different schemes. These schemes are assigned a Multi-Level Access (MLA) level. A domain member can have a choice of which I&A scheme to use for login depending on the assigned relative security level.
- Credentials are assigned to an MLA level. Whether the use of a particular credential is permitted depends on the MLA level of the I&A scheme that was used for login.
- For a login of a given security level, three possibilities exist for read access and for write access—only those credentials at the same level as the login are accessible, those at the same level and up are accessible, or those at the same level and down are accessible. The first type of access is called partitioned access, the second type access up, and the last access down. Combinations of all access types result in nine different ways to handle multi-level read and write access. The choice of access type will depend on the domain environment and domain policy.
- In
FIG. 1 , the symbol, -, represents permission to use credentials only at the same level as I&A, ↑ represents permission to use credentials at the same level as I&A or above, and ↓ represents permission to use credentials at the same level as I&A or below. - As an illustration, consider the Bell-LaPadula model, which is used within the military environment. This corresponds to
combination 8 inFIG. 1 and can be summarized as “read-down/write-up”. Translated for the present invention, this means that credentials at or above the current login level can be used for encryption, and data that has been encrypted with credentials at or below the current login level can be decrypted. Using the examples from above, logging in at the lowest level would enable the member to encrypt using all of the credentials in the security level category for encryption. However, only data encrypted using credentials at the lowest level, say “Confidential”, can be decrypted. Logging in at the highest level would enable the member to encrypt data using “Top Secret” only, but would allow decryption of data that used any of the credentials within the security level category. - A domain can selectively apply an MLA level to a category. In the previous example, MLA was applied to the “security level” category, whereas the “country” category was not subject to MLA.
- Access Control Through Symmetric Key Algorithms
- The symmetric key cryptographic algorithms that are used for object encryption can be used to control access. The ability of a member to use a specific algorithm can be allocated to roles as another factor enforcing access control. The selection of algorithms can be defined by the domain.
- For example, members who are in the U.S. might have all algorithms including AES with all key sizes while those in England might have 128-bit AES or use a proprietary algorithm. Other countries might use DES, while others might use 40-bit RC2. The selection of available algorithms can be defined through national policy.
- The symmetric algorithm access process can be complemented with MLA. The algorithms available to a member would also then depend on the security level of the member login process. The combination of algorithm access and MLA offers a more balanced security approach. Data that is more sensitive requires stronger algorithms together with stronger user I&A.
- Access to Applications
- Access to applications and associated credentials can also be controlled. Each application, along with the list of credentials that are valid for each application, is assigned to a member. The application credentials will be contained in the member's profile that is defined, for example, through the runtime environment of the key management system. Only the credentials that appear in the list can be used with the application. The I&A process validates a member to his or her profile for further decryption of the profile. After the profile is decrypted, the application-credentials are available for accessing prescribed applications. The key management runtime environment protocol, for example, enforces the access to an application.
- Additional integrity can be included in the application-credential process. The application's file (or an element of the file) and the list of associated credentials can be digitally signed by the domain authority. To access an application, a member must have the digital signature in his or her profile, as well as at least one of the credentials associated with the application. When the application starts, the key management runtime environment requests the signature from the member's profile. If there is no signature, the application is not accessed. If the signature is available, it will be verified against the application file and the list of credentials associated with that application. If the signature verifies correctly, access is granted. The runtime environment will only allow the member to use the set of credentials that the domain authority has associated with the application.
- Implementation
- Credentials Available
- Different I&A methods correspond to different MLA levels depending on the domain policy. The result of a successful login is a value that is used as a symmetric cryptographic key.
- Each credential has an MLA level associated with it. When MLA is used, then the credentials that are available will depend on the level of the I&A scheme used to login. MLA levels are represented by the number 0, and by integers starting from 1. A credential assigned to level 0 is special; this signifies that the credential is exempt from MLA. Beginning with
level 1, higher levels can represent different levels of security, for example, stronger security. MLA exemption will be in effect for all credentials within a given category, that is, individual credentials, while flagged with level 0, are not individually given MLA exemption—only categories are. Those credentials in the categories that are exempt from MLA (as determined by the domain authority) are always available. - For credentials in categories that are subject to MLA, access is granted if the credential MLA level corresponds to the I&A level. This is true whether partitioned access, access up, or access down is specified.
- For encryption, if write-up is specified by the domain authority, then the public keys for all credentials with MLA level greater than the I&A level will also be available. If write-down is specified, then the public keys for levels below the I&A level will be available for encryption.
- Similarly for decryption, if read-up is specified, then private keys for credentials with MLA level greater than the I&A level will be available. If read-down is specified, then private keys for credentials with MLA level below the I&A level will be available.
- Profile Encryption
- Encryption of credentials within a member's profile is the basis for enforcing multiple level access. Credential private and public keys are encrypted with a key corresponding to the MLA level assigned to the credential. These credential encryption keys (CEKs)—the credential private key encryption keys and credential public key encryption keys—appear in the profile as ciphertext. The encryption key for each CEK is derived from the I&A value of the corresponding level.
- Any suitable proprietary or standard symmetric key algorithm can be used for profile encryption. For example, triple DES (3×DES) is a current standard symmetric key algorithm suitable for profile encryption. A replacement algorithm for 3×DES known as the Advanced Encryption Algorithm (AES) will soon be an official standard. AES in eight bit cipher feedback (CFB8) mode can be used to encrypt the member's profile. The profile encryption key (PEK) is 128 bits for the key plus 128 bits for an initialization vector (IV), for a total of 256 bits. The IV used for the profile is a random string that is stored as plaintext within the profile. The key portion of the PEK is encrypted using the I&A derived value as the basis for the profile key encryption key (PKEK). If more than one level of I&A is used, such as with MLA, then there will be more than one PKEK. CFB8 mode is presented as an exemplary key algorithm, so that each item in the profile can be encrypted without regard for padding issues.
- To implement read-up or read-down, the credential private key encryption keys are related to each other. Similarly, to implement write-up or write-down, the credential public key encryption keys are related to each other. The relationships are defined below. There four types of credential access: MLA exempt credential access, partitioned access, access up, and access down.
- MLA Exempt Credentials: If the credential is exempt from MLA, then the credential encrypting keys and initialization vector are the same as the profile encrypting key and IV.
- Partitioned Access: For partitioned access, the credential encrypting key is just the value derived from the I&A process of the corresponding level.
- Access Up: For access up, the credential encryption key for the lowest level is generated at random. Credential encryption keys at other levels are derived from this first key in such a way that key values of levels above any level can be derived but key values of the levels below cannot. For example, a one-way hash function (OWHF) such as SHA256 is used.
- Access Down: For access down, the credential encryption key for the highest level is generated. Credential encryption keys at lower levels are derived from this key in such a way that key values of levels below some given level can be derived but key values of levels above cannot. For example, a OWHF such as SHA256 is used.
- Random Value Encryption Key Generation
- There are two random values associated with the key management process of the present invention: a random value that is used in the construction of a working key, and an ephemeral key pair that is used in the encryption and decryption of the first random value.
- A combiner, or binder, is the function that produces a working key, that is, the key used for object encryption. An exemplary combiner is described in U.S. patent application Ser. No. 09/023,672. The combiner takes three key inputs: a domain value, a domain maintenance value, and a random value. Domain and maintenance values are included in a member's profile but the random value must be sent or kept with the encrypted object. The random value changes with the creation of a new working key. Credentials that are chosen for use in the encryption process are used to encrypt this random value. The encryption of the random value with a key derived from the chosen credentials is the basis of assigning access permissions and enforcing access control to encrypted objects.
- Each instance of an object encryption results in a new random value and Diffie-Hellmen ephemeral key pair generation. For encryption, the ephemeral private key is used with each chosen credential public key to compute shared values. The ephemeral public key is sent with the encrypted object for use during decryption. For decryption, the ephemeral public key will be used with each credential private key to recreate the shared values. From these shared values, a random value encryption key (REK) is calculated.
- Restricting Access Credentials
- To use credentials that only restrict access, the REK is built from all of the shared values. This requires possession of all of the credential private keys (read permissions) in a member's profile for decryption. To manage this effectively, credentials are partitioned into categories and the user interface will only allow one credential to be chosen per category.
- The REK is produced from the shared values by binding using, for example, the combiner noted above, to generate a key from shared values. AES in ECB mode can be used, for example, to encrypt the random value, in which case 128 bits of key are needed. Using this exemplary algorithm would mean that the basic method of generating the REK is to concatenate the shared values, a counter value, which is the string value 0000000116, and some “other” information, which in this case can be the credential indices, concatenated in order. This value is then hashed using SHA256 and the most significant 128 bits from this hashed value is used for the REK. See
FIG. 2 . - As shown in the figure, during object encryption, a member chooses which credentials to apply. In this example, no more than one credential per category can be chosen. As shown,
Credential 3 is selected from Category A, andCredential 14 is selected from Category B. Thus, read permissions for both credentials are required to be able to decrypt the encrypted object. That is, access is granted to decrypt only if read permission (knowledge of private keys) is available for all credentials that were used to encrypt. - Broadening Access Credentials
- For credentials that broaden access, a different implementation is used. The user interface will allow multiple credentials within a category to be selected. This is interpreted as the requirement to have read access to at least one of the chosen credentials in each category to enable decryption. A category for which this applies is called a multiple credential selection category (MCSC). See
FIG. 3 . - As shown in the figure, during object encryption, a member selects which credentials to apply. More than one credential can be selected form within a category if that category is a MCSC. In the example shown, one credential (Top Secret) is selected from the Security Level category, and two credentials (Canada and United States) are selected from the Country category. Thus, read permissions for Top Secret and either Canada or United States are required to be able to decrypt the object. That is, access is granted to decrypt if read permission (knowledge of private key) is available for any one credential that was used to encrypt in a MCSC, as well as read permission for a credential form any other category.
- One solution is to encrypt the random value multiple times with multiple keys. In general, there is a key for each combination of credentials. Let s1 be the number of credentials chosen for the first MCSC, s2 for the second, and so on. Then, for n MCSC categories there are mL REKs, where mL is the product of all the si, that is,
m L=Πi=1 n s i
Each REK then would be the product of n shared values, that is, one shared value per category. This also implies that mL encryptions of the random value will be performed with mL different keys and mL times as much space will be required for the encrypted random value to be kept with the encrypted object in the header. This solution is called the lockbox method. - However, another solution based upon using a (2, si+1) threshold scheme will, in some cases, involve less data to store than the multiple REKs of the lockbox method. This method is called the threshold method. Using the Shamir Threshold Scheme, a threshold key is generated and si+1 threshold shares are created for MCSC i. The key set used can be any sufficiently large prime number. The domain-wide Diffie-Hellman parameter pc, for example, can be used for the key set.
- From the Diffie-Hellman shared value calculated for each credential within a MCSC, an AES key is calculated by binding as described above, using a counter of 0000000116 and the credential index as “other” information. These si derived keys are used to encrypt si of the threshold shares with AES. These are done in order, that is, the derived key corresponding to the lowest index credential is used to encrypt the second share. The first share remains plaintext.
- The threshold key for each category is used like a shared value in the computation of the REK. The combiner method is again used, but with the threshold keys for the MCSC categories instead of Diffie-Hellman shared values and “other” information constructed from the number of credentials selected from each MCSC category.
-
FIG. 4 gives an overview of an exemplary threshold method of implementing multiple credential selection categories. The MCSC category is “Country” and two credentials have been selected, that is, “Canada” and “United States” which in this example have credential IDs of 13 and 14. - The information included with the encrypted object will include one encrypted random value, a plaintext threshold share per category, and a total of Σi=1 nsi encrypted threshold shares. If the number of items to be included with the encrypted object is denoted as mT, then
m T=1+n+Σ i=1 n s i - If one category is used with multiple credentials, then the threshold scheme will produce two more items in the header, compared to the lockbox method. However, if more than one category has multiple credentials and more than three credentials are chosen within these categories, the threshold method will produce fewer items. The more credentials within each category that are chosen, the better the threshold scheme is, in terms of space resources, over the general product method.
- Another method of implementing access-broadening credentials is to generate a 128-bit random value per category. These values are called REKi, where the index i represents the category with which it is associated. The random value is only encrypted once with the REK. The REK is calculated as the exclusive-OR value of all the REKi.
- For each credential chosen within a category, the REKi is encrypted. The credential public key and ephemeral private key are used to derive a shared value as the basis of the encryption key. The key derivation function of the binder as discussed previously can be used to calculate the encryption keys.
- The extra information to be included with the encrypted object is simply n 128-bit encrypted values, where the value n is just the total number of credentials chosen.
- Details
- Symbols
-
- e(x, y) AES encryption (in ECB mode) of x using y as the key. The values, x and y, are 128 bits.
- e(x, y, z) AES encryption (in CFB8 mode) of x using y as the key and z as the IV. All values are 128 bits.
- d(x, y) AES decryption (in ECB mode, 128 bit key) of x using y as the key.
- d(x, y, z) AES decryption (in CFB8 mode, 128 bit key and IV) of x using y as the key and z as the IV.
- ⊕ Exclusive-OR operation.
- ⊕i=1 nxi Exclusive-OR all values of xi together from i=1 to n.
- ∥iεSxi Concatenate the xi values together for all i in the set S.
- Hy(x) Cryptographic hash of x, applied y times
- H′(x, n, o) The combiner method of generating a key from shared value x using counters up to n and other information o.
- κλ The key derived from I&A events specified for MLA level λ.
- λmax Represents the maximum MLA level.
- λ(c) Represents the MLA level of credential c.
- P Represents data stored in a member's profile.
- A Represents the set of credentials available to a member at a given time.
- S Represents the set of credentials chosen by the member for encryption.
- cmax The maximum number of credentials within a domain. Typically this is 28 (256) or 216 (65,536).
- pc, qc, gc Combiner Diffie-Hellman parameters.
- Xi Private key associated with credential i.
- Yi Public key associated with credential i.
- Zi Computed shared value for credential i, (uses ephemeral keys).
- r Ephemeral private key.
- t Ephemeral public key.
- Ki Threshold key for category i.
Mathematical Description - If MLA is not used, the set of credentials available to a member are all credentials that appear in the member's profile, that is, ∀cεP.
- In general, a credential is represented by an 5-tuple, (cid, dc, xc, yc, λc), where cid is the credential index, dc is the category, xc is the private key for the credential, yc is the public key for the credential and λc is the MLA level defined for the credential by the domain authority. Note that within a profile, the private key can be missing for some credentials. This implies encrypt-only (or write-only) permission for that credential.
- Credentials that are in categories that are exempt from MLA (as determined by the domain authority) are always available. This set of credentials is
{∀cεP|λ c=0} (1) - The table shown in
FIG. 5 summarizes the set of credentials that are available to a member who has logged in using an MLA level of λ1A. The access type corresponds to the combinations from the table inFIG. 1 . - The set described in eq. (1) in union with the one of the sets above (which depends upon domain policy) will be represented as ∀cεA, where A is the set of available credentials per login.
- Encryption of Member's Profile
- Encryption of Profile Data Excluding Credentials
- The profile is encrypted with a profile encryption key, PEK and an initialization vector, PIV. The PIV is stored in the profile in plaintext form. The PEK is encrypted λmax times, where λmax is the number of MLA levels used. The term ePEKλ represents the encrypted value of the PEK for MLA level λ as stored in the profile,
ePEK λ =e(PEK, κ λ , PIV) (2) - where κλ is the key derived from all I&A events that are defined for MLA level λ.
- For decryption, a member completes a successful login at MLA level λ, regenerating the key κλ, and then recovering the PEK from ePEKλ, which will allow decryption of the rest of the profile.
PEK=d(ePEK λ, κλ , PIV) (3)
Encrypting Credentials in the Member's Profile - Public and private keys are encrypted in the profile. The 5-tuple corresponding to credential c is stored in the profile as (cid, dc, exc, eyc, λc), where
ex c =e(x c , xek c , XIV c) (4a)
ey c =e(y c , yek c , YIV c) (4b) - are the encrypted credential private and public keys. The xekc and yekc are credential private and public key encrypting keys, and XIVc and YIVc are private key and public key initialization vectors, respectively.
- MLA Exempt Credentials
- If the credential is exempt from MLA, then the credential encrypting keys and initialization vector are the same as the profile encrypting key and IV.
- ∀cεP∃3. λc=0
xek c =yek c =PEK (5a)
XIV c −YIV c −PIV (5b)
MLA Subject Credentials - There will be λmax initialization vectors corresponding to each MLA level and represented as PIVλ.
- ∀cεP∃. λc≠0, and ∀λ∃1≦λ≦λmax,
XIV c =YIV c =PIV λc (6) - Each PIVλ is stored as plaintext in the profile.
- Partitioned Access
- For credential read or write partitioned access, the encrypting key is just the value derived from the I&A process. For read partitioned access,
xekc=κλc (7a) - For write partitioned access,
yekc=κλc (7b)
Access Up and Down - There will be λmax credential private key encryption keys, and λmax credential public key encrypting keys. These keys are represented by xekλ, and yekλ respectively, where λ corresponds to an MLA level. Each xekλ and yekλ are stored encrypted in the profile using the value derived from the I&A process for the respective level as the key.
- For 1≦λ≦λmax
exek λ =e(xek λ, κλ , PIV) (8a)
eyek λ =e(yek λ, κλ , PIV) (8b) - and to recover the xekλ and yekλ
xek λ =d(exek λ, κλ , PIV) (9a)
yek λ =d(eyek λ, κλ , PIV) (9b) - For read-up or down access, the credential private key encryption keys are
xekc=xekλc (10a) - For write-up or down access, the credential public key encryption keys are
yekc=yekλc (10b) - For access up, an encrypting key for
I&A level 1 is generated at random. All access up type encryption keys are derived from this value. The encrypting keys for I&A level other than the one used for I&A can then be derived from the encrypting key for level λ1A. - For read-up
xek c=(H (λc−λ1A) xek λ1A)/2(h−k) (11a) - For write-up
yek c=(H (λc−λ1A) yek λ1A)/2(h−k) (11b) - where h is the output size of the hash function and k is the keysize of the credential encryption algorithm, in bits. The meaning of division by 2(h−k) is that the derived key value is taken as the most significant k bits of the hashed value. For two-key triple DES and the SHA1 hash function (h−k) is 48. For AES (128-bit key) and SHA256 (256-bit output) this value is 128. For AES (256-bit key) and SHA256 (256-bit output) this value is 0.
- Note that for read-up or write-up credentials, if λ1A>λc, access to the credential c read or write value is denied.
- For access down, an encrypting key for I&A level λmax is generated at random. The encrypting keys for I&A level other than λmax are derived from the encrypting key for level λmax. All access down type encryption keys are derived from this value. The encrypting keys for I&A level other than the one used for I&A can then be derived from the encrypting key for level λ1A.
- For read-up
xek c=(H (λ1A−λc)(xek λ1A))/2(h−k) (12a) - For write-up
yek c =H (λ1A−λc)(yek λ1A)/2(h−k) (12b) - For read-down or write-down credentials, if λc>λ1A, access to the credential c read or write value is denied.
- The table shown in
FIG. 6 summarizes, for each access type as defined in the table ofFIG. 1 , the credential encryption keys and the independent values from which these are derived. -
FIG. 7 shows encrypted parts of the member profile. Credential public and private keys are encrypted with credential public and private key encryption keys of the same MLA level as the credential. Public and private key encryption keys are encrypted with the I&A derived key of the same level. The rest of the encrypted profile is encrypted with the PEK. The PEK is encrypted once for each MLA level using the I&A derived key of each level. -
FIG. 8 shows the process of decrypting the profile. The member logs on using an I&A process that corresponds toMLA level 1. This level can be chosen by the member before logging in, can be dictated by the MLA level of an encrypted object, or can be specified for an application by the domain authority. A key is derived from the I&A events. This key decrypts the ePEKλ to recover the PEK, exekλ to recover xekλ and eyekλ to recover yekλ. The profile is then decrypted with the PEK, credential private keys of MLA level λ are decrypted with xekλ, and credential public keys of MLA level λ are decrypted with yekλ. - Maintenance of Profile Keys
- Periodically, cryptographic keys should be change. This applies to the I&A derived keys, profile encryption keys, and the credential public and private key encryption keys. Strategies to deal with key changes are discussed below.
- I&A Derived Keys
- An I&A event at one level is independent of I&A at other levels. Therefore, κi can be changed easily without affecting any other κj where i≠j. Simply decrypt the encrypted credential private and public key encryption keys, namely, exekλ and eyekλ, with the old κλ to recover xek and yek. Then generate a new κλ and re-encrypt with this key to generate the new exekλ and eyekλ.
- Profile Encryption Key and Initialization Vector
- The profile must first be decrypted, then a new PEK and PIV generated at random, and finally re-encryption of the profile with the new key and IV takes place. Then the new PEK must be re-encrypted with κλ, for each λ. However, only one κλ is known during the session in which the PEK is being changed.
- To allow decryption of the PEK during the next session, which can be of a different I&A level, the new PEK is encrypted with the old PEK for each I&A level. This value is called ePEK′. After opening a session with a new I&A level, the encrypted PEK for the new I&A level can be calculated and stored. To simplify the process, a new PEK should not be generated until the previous PEK has been re-encrypted under all I&A levels. This leads to the following procedures.
- Initial Change of PEK During a Session of I&A Level λ:
- First, open a session with I&A level λ. Next, check to see if the old encrypted PEK, ePEK′, is zero. If it is zero, then a new PEK can be generated. If it is not zero, then stop the PEK update process and go to the next action. Generate a new PEK and re-encrypt the entire profile with this new PEK. If the new randomly-generated PEK is zero, then choose a new PEK. Next, encrypt the old PEK under the new PEK and replace ePEK′ with this value. Encrypt the PEK with κλ as the key and replace the old ePEKλ with this new value. Then, initialize a Boolean change table (the PEK change table) to all zeros. Each entry in the PEK change table represents one I&A level. Next, set the value in the PEK change table of the entry corresponding to I&A level λ.
- Subsequent sessions of I&A Level i where i≠λ:
- First, open a session with I&A level i. Next, check the entry corresponding to I&A level i in PEK change table. If this entry is set, then check all entries to see if they are set. If all entries are set, then erase the old encrypted PEK, that is, set ePEK′ to zero and continue as normal. If the entry is not set, then continue with the next action. Decrypt ePEKi with key κi to recover the old PEK, and decrypt ePEK′ with the old PEK as the key to recover the new PEK. Next, encrypt the PEK with κi as the key and replace the old ePEKi with this new value. Then, set the value in the PEK change table of the entry corresponding to I&A level i.
- Credential Public and Private Key Encryption Keys
- Changing a credential key encryption key is more involved. Depending on access type, credential key encryption keys can have dependences on each other for different I&A levels. Therefore, it might not be possible to change just one credential key encryption key; the sequence of credential key encryption keys for all I&A levels might have to be changed all at once. However, if credential keys, either public or private, are partitioned or exempt from MLA, then one can proceed as above for the PEK.
- For access down, only credential key encryption keys below the current I&A level can be accessed. Therefore, the session must be in the highest I&A level to allow changing of these credential key encryption keys. Similarly, for access up, the session must be in the lowest I&A level to change this type of credential key encryption keys.
- Because only one κλ is known during a session, knowing just the credential key encryption keys for all I&A levels will not suffice. A strategy similar to changing the PEK is needed. This is done by using the old credential key encryption key of the same I&A level to encrypt the new credential key encryption key. Since there are both private and public credential keys, two lists of old credential key encryption keys must be kept. If a zero is used in the list for a key corresponding to an I&A level that has already been changed, then a separate Boolean list such as the one above for the PEK change table does not have to be maintained.
- In the following exemplary procedures, only one old credential key encryption key list is mentioned. This list represents either the public or private credential key encryption key lists or both. The term CEKλ represents any credential key encryption key—either public or private—of I&A level λ.
- Initial Change of the Credential Key Encryption Key During a Session of I&A Level λ, where λ is Either 1 for Access up, or λmax for Access Down:
- First, open a session with I&A level λ. λ must be 1 for access up or λmax for access down. If not, then stop the CEK update process. Next, check to see if the old encrypted CEK for all I&A levels is zero. If they are zero, then the CEK can be updated. If the list is not zero, then stop the CEK update process. Next, generate a new CEKλ and generate CEK for all of the other I&A levels according to eqs. (11). Also, generate the old CEKs for all of the I&A levels. The old CEKs will be used later in the procedure. Then, re-encrypt the new CEKλ with κλ as the key, and update this value in the profile. Also update the encrypted credential keys for level λ by decrypting them with the old CEK and re-encrypting them with the new CEK. Then, store value zero in the old CEK list at the entry corresponding to I&A level %. Then, for every i=2 through λmax (for access up), or for every i=λmax−1 through 1 (for access down), encrypt the new CEKi with the old CEKi as the key, and copy the previous value to the old CEK list at the entry corresponding to I&A level i.
- Subsequent Sessions of I&A level i where i≠λ, Where λ is Either 1 for Access Up, or λmax for Access Down:
- First, open a session with I&A level i. Next, decrypt eCEKi with κλ as the key to recover CEKi. Then, check the entry corresponding to I&A level i in the old CEK list. That is, if the entry in the list is zero, then the CEKi from the previous step is the new CEKi. In this case, break from this procedure and continue normal processing. On the other hand, if the entry is not zero, then the CEKi from the previous step is the old CEKi. In this case, decrypt the entry with the old CEKi as the key to recover the new CEKi. Then store zero in the old CEK list at the entry corresponding to I&A level i. Next, encrypt the new CEKi with κλ as the key and update the old CEKi value. Then decrypt all of the credential keys of I&A level i with the old CEKi, re-encrypt them with the new CEKi, and update the old value.
- Computing a Random Value Encryption Key
- Computing Shared Values
- From the set of available credentials, A, the set of chosen credentials will be represented by S⊂A. A Diffie-Hellman ephemeral key pair is generated during object encryption. The shared value for each credential is then computed. For encryption, the Zi are calculated from credential public keys and the ephemeral private key,
∀iεS Z i =Y i rmodp c (13a) - For decryption, the Zi are calculated from credential private keys and the ephemeral public key,
∀iεS Z i =t Ximodp c (13b)
Computing the REK Using One Credential Per Category - Using one credential per category, the REK is calculated by
REK=H′(T, 0000000116 , o) (14) - where T is
T=∥ iεS Z i (15) - and the concatenation is performed in order of increasing i. The other information, o, is
o=∥ iεS cid i (16) - where (similar to above) the concatenation is performed in order of increasing c.
- Computing the REK Using More Than One Credential Per Category
- Using more than one credential per category will result in several pieces of information to be sent or kept with the encrypted object in the header. The threshold method is described here for illustrative purposes; the lockbox method is not described in detail, but can be used instead. See
FIG. 4 and the related description for an overview of the threshold method. - For each MCSC, represented as d, a shared key, Kd<pc and a coefficient, ad<pc−1, are generated at random. Let the number of credentials chosen in category d be sd. A total of sd+1 values will be generated and these values will be denoted as xjd, where 0≦j≦sd. The values are generated as follows:
- x0d=cmax+1. The value cmax is the maximum number of credentials that are possible in the system.
- x1d=the credential ID of the credential in category d with the lowest credential index.
- x2d=the credential ID of the credential in category d with the second-lowest credential index.
- xjd=the credential ID of the credential in category d with the jth lowest credential index.
- Next, sd+1 shares, called σjd, where 0≦j≦sd, are calculated:
0≦j≦sd σjd=(K d +a d x jd)mod p c (17) - The share encrypting keys, SEKj, are computed from the shared values, Zi:
1≦j≦sd SEK j =H′(Z i, 0000000116 , i) (18) - where the i is the index of the credential that corresponds to the jth chosen credential in the category.
- The shares are then encrypted using the SEKs and are put in the header. Let εj represent the encrypted share, then
1≦j≦sd εj =e(σjd , SEK j) (19) - The first share, σ0d, does not get encrypted; it appears in the header as plaintext.
- The REK is calculated by
REK=H′(T, 0000000116 , o) (20) - where T is
T=∥ dεS K d (21) - and the concatenation is performed in order of increasing d. The other information, o, is formed by
o=∥ dεS d (22) - where (similar to above) the concatenation is performed in order of increasing d.
- In a mixed situation, where some categories have multiple credentials selected and some have only one, the T value is formed from a mix of Kd and Zi (in increasing order of category).
- For decryption, the Diffie-Hellman shared values are first calculated. For multiple credentials in a category, only the first one that the member has read access for is needed. If the member has read access to none of the credentials used in an MCSC, then access to the encrypted object is denied.
- Shared values are calculated from the private part of the credential key pairs and the public part of the ephemeral key pair, according to eq. (13b). Then the share encryption keys are calculated from the Diffie-Hellman shared values, according to eq. (18). The SEKs can then be used to decrypt the threshold shares:
1≦j≦sd σjd =d(εj , SEK j) (23) - The first threshold share, σ0d, for a category is taken from the header, because it is plaintext. With the first threshold share and any other (decrypted) share within category d, the shared key, Kd, can be calculated.
1≦j≦sd K d=σ0 −x 0d(σ0d −σ jd)/(x 0d −x jd)modp c (24) - When all of the shared keys have been recovered, the REK is calculated according to eqs. (20) through (22), and the random component is then recovered. Once the random component is recovered, the working key can be reconstructed and the encrypted object can be decrypted.
- The One Random Value per Category Method
- For each MCSC, represented as i, 128 random bits are generated. These values will be referred to as REKi. The random value encryption key, REK, is computed as the exclusive-OR result of all of the REKi
REK=⊕ 1 d REK i (25) - Each REKi is encrypted with AES for each credential in the ith category before being transmitted with the encrypted object. The encrypted REKi for credential j is denoted EREKji, therefore,
EREK ji =e(REK i , K ji) (26) - where Kji is the key associated with the jth chosen credential in category i. The Kji are computed by using the combiner key derivation function described previously,
K ji =H′(Z ji, 0000000116 ,j) (27) - where Zji is the Diffie-Hellman shared value corresponding to the jth credential in category i. These shared values are computed from the credential public keys, Yji, and the ephemeral private key, r:
∀iεSεd Z ij =Y j rmodp c (28a) - For decryption, the shared values are calculated from the credential private keys, Xji, and the ephemeral public key, t:
∀iεSεd Z ji =t Xjimodp c (28b)
Claims (3)
1-7. (canceled)
8. In an access system, a method of securing an object at an access level, comprising:
receiving, from a user, a profile key encryption key corresponding to the access level;
selecting an object to secure;
selecting a profile associated with the user, wherein the profile includes
a domain value,
an encrypted profile encryption key, and
a credential, wherein the credential includes
an encrypted credential public key,
an encrypted credential public key encryption key, and
a multiple-level access identifier;
selecting the credential based on a comparison of the access level and the access identifier;
generating a working key, including
generating a random value, and
binding at least the domain value and the random value together to form the working key; and
encrypting the object with the working key.
9. The method of claim 8 , further comprising:
generating a random value encryption key, including
decrypting the encrypted credential public key encryption key with at least the profile key encryption key,
decrypting the encrypted credential public key with at least the decrypted credential public key encryption key,
generating an ephemeral key pair including an ephemeral private key and an ephemeral public key,
generating a shared value based on at least the ephemeral private key and the decrypted credential public key, and
generating the random value encryption key based on at least the shared value;
encrypting the random value with at least the random value encryption key; and
providing the encrypted object, the ephemeral public key, and the encrypted random value for an authorized recipient.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/376,716 US20070165859A1 (en) | 2001-01-30 | 2006-03-15 | Multiple level access system |
US12/246,398 US20110178930A1 (en) | 2001-01-30 | 2008-10-06 | Multiple Level Access with SILOS |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26471501P | 2001-01-30 | 2001-01-30 | |
US10/060,011 US6754820B1 (en) | 2001-01-30 | 2002-01-30 | Multiple level access system |
US10/870,250 US7016495B2 (en) | 2001-01-30 | 2004-06-16 | Multiple level access system |
US11/376,716 US20070165859A1 (en) | 2001-01-30 | 2006-03-15 | Multiple level access system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/870,250 Division US7016495B2 (en) | 2001-01-30 | 2004-06-16 | Multiple level access system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/246,398 Continuation-In-Part US20110178930A1 (en) | 2001-01-30 | 2008-10-06 | Multiple Level Access with SILOS |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070165859A1 true US20070165859A1 (en) | 2007-07-19 |
Family
ID=32473906
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/060,011 Expired - Lifetime US6754820B1 (en) | 1998-02-13 | 2002-01-30 | Multiple level access system |
US10/502,478 Expired - Fee Related US7178025B2 (en) | 1998-02-13 | 2003-01-30 | Access system utilizing multiple factor identification and authentication |
US10/870,250 Expired - Lifetime US7016495B2 (en) | 2001-01-30 | 2004-06-16 | Multiple level access system |
US11/376,716 Abandoned US20070165859A1 (en) | 2001-01-30 | 2006-03-15 | Multiple level access system |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/060,011 Expired - Lifetime US6754820B1 (en) | 1998-02-13 | 2002-01-30 | Multiple level access system |
US10/502,478 Expired - Fee Related US7178025B2 (en) | 1998-02-13 | 2003-01-30 | Access system utilizing multiple factor identification and authentication |
US10/870,250 Expired - Lifetime US7016495B2 (en) | 2001-01-30 | 2004-06-16 | Multiple level access system |
Country Status (1)
Country | Link |
---|---|
US (4) | US6754820B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070172065A1 (en) * | 2006-01-26 | 2007-07-26 | Lg Electronics Inc. | Apparatus and method for moving rights object from one device to another device via server |
US20090276477A1 (en) * | 2008-05-02 | 2009-11-05 | Oracle International Corporation | Method of partitioning a database |
US20110113254A1 (en) * | 2008-07-19 | 2011-05-12 | The University Court of the University of St. Andr ews | Multipad encryption |
US20110219067A1 (en) * | 2008-10-29 | 2011-09-08 | Dolby Laboratories Licensing Corporation | Internetworking Domain and Key System |
US20120131652A1 (en) * | 2010-11-18 | 2012-05-24 | Microsoft Corporation | Hardware-based credential distribution |
CN104303450A (en) * | 2012-05-21 | 2015-01-21 | 皇家飞利浦有限公司 | Determination of cryptographic keys |
CN109347630A (en) * | 2018-10-16 | 2019-02-15 | 航天信息股份有限公司 | A kind of tax controlling equipment cryptographic key distribution method and system |
Families Citing this family (312)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10181953B1 (en) | 2013-09-16 | 2019-01-15 | Amazon Technologies, Inc. | Trusted data verification |
US6754820B1 (en) * | 2001-01-30 | 2004-06-22 | Tecsec, Inc. | Multiple level access system |
FR2804561B1 (en) * | 2000-01-31 | 2002-03-01 | France Telecom | COMMUNICATION METHOD WITH SEQUESTRE AND ENCRYPTION KEY RECOVERY |
IL149052A0 (en) * | 2000-02-21 | 2002-11-10 | Trek Technology Singapore Pte | A portable data storage device |
GB2372360B (en) * | 2001-02-15 | 2005-01-19 | Hewlett Packard Co | Improvements in and relating to credential transfer methods |
US7237117B2 (en) * | 2001-03-16 | 2007-06-26 | Kenneth P. Weiss | Universal secure registry |
DE10114157A1 (en) * | 2001-03-22 | 2002-09-26 | Deutsche Telekom Ag | Computer-aided encryption key generation method provides public encryption key with common first part and second part specific to each receiver |
JP4089171B2 (en) * | 2001-04-24 | 2008-05-28 | 株式会社日立製作所 | Computer system |
US7502937B2 (en) * | 2001-04-30 | 2009-03-10 | Digimarc Corporation | Digital watermarking security systems |
US7958359B2 (en) * | 2001-04-30 | 2011-06-07 | Digimarc Corporation | Access control systems |
WO2003003169A2 (en) * | 2001-06-28 | 2003-01-09 | Cloakware Corporation | Secure method and system for biometric verification |
WO2003003295A1 (en) * | 2001-06-28 | 2003-01-09 | Trek 2000 International Ltd. | A portable device having biometrics-based authentication capabilities |
EP1399825B1 (en) | 2001-06-28 | 2006-08-02 | Trek 2000 International Ltd | Method and devices for data transfer |
US6986050B2 (en) * | 2001-10-12 | 2006-01-10 | F-Secure Oyj | Computer security method and apparatus |
US7200747B2 (en) * | 2001-10-31 | 2007-04-03 | Hewlett-Packard Development Company, L.P. | System for ensuring data privacy and user differentiation in a distributed file system |
US7278026B2 (en) * | 2002-01-02 | 2007-10-02 | Mcgowan Tim | Method and system for the generation, management, and use of a unique personal identification token for in person and electronic identification and authentication |
US7395436B1 (en) * | 2002-01-31 | 2008-07-01 | Kerry Nemovicher | Methods, software programs, and systems for electronic information security |
US7603627B2 (en) * | 2002-02-05 | 2009-10-13 | Microsoft Corporation | Systems and methods for creating and managing graphical user interface lists |
GB2401503C (en) * | 2002-02-07 | 2007-11-15 | Trek 2000 Int Ltd | A portable data storage and image recording device capable of direct connection to a computer USB port |
US7480806B2 (en) * | 2002-02-22 | 2009-01-20 | Intel Corporation | Multi-token seal and unseal |
GB2386500B (en) * | 2002-03-07 | 2005-07-20 | Chello Broadband N V | Message transmission in an interactive television system |
JP2003263623A (en) * | 2002-03-11 | 2003-09-19 | Seiko Epson Corp | Recording medium and reader/writer for recording medium and method for using recording medium |
EA008330B1 (en) * | 2002-03-12 | 2007-04-27 | Трек 2000 Интернэшнл Лтд. | System and apparatus for accessing and transporting electronic communications using a portable storage device |
US7349538B2 (en) * | 2002-03-21 | 2008-03-25 | Ntt Docomo Inc. | Hierarchical identity-based encryption and signature schemes |
US7362865B2 (en) * | 2002-04-15 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Wireless network system |
EP2375628A2 (en) * | 2002-04-15 | 2011-10-12 | NTT DoCoMo, Inc. | Signature schemes using bilinear mappings |
US20030210791A1 (en) * | 2002-05-07 | 2003-11-13 | Binder Garritt C. | Key management |
US7536548B1 (en) | 2002-06-04 | 2009-05-19 | Rockwell Automation Technologies, Inc. | System and methodology providing multi-tier-security for network data exchange with industrial control components |
US7565537B2 (en) * | 2002-06-10 | 2009-07-21 | Microsoft Corporation | Secure key exchange with mutual authentication |
TW588243B (en) * | 2002-07-31 | 2004-05-21 | Trek 2000 Int Ltd | System and method for authentication |
US7308708B2 (en) * | 2002-08-02 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Alternate encodings of a biometric identifier |
JP4433472B2 (en) * | 2002-08-08 | 2010-03-17 | ナンヤン テクノロジカル ユニヴァーシティ | Distributed authentication processing |
AU2003298560A1 (en) | 2002-08-23 | 2004-05-04 | Exit-Cube, Inc. | Encrypting operating system |
US7657748B2 (en) * | 2002-08-28 | 2010-02-02 | Ntt Docomo, Inc. | Certificate-based encryption and public key infrastructure |
US9009084B2 (en) | 2002-10-21 | 2015-04-14 | Rockwell Automation Technologies, Inc. | System and methodology providing automation security analysis and network intrusion protection in an industrial environment |
US8909926B2 (en) * | 2002-10-21 | 2014-12-09 | Rockwell Automation Technologies, Inc. | System and methodology providing automation security analysis, validation, and learning in an industrial controller environment |
US20040107345A1 (en) * | 2002-10-21 | 2004-06-03 | Brandt David D. | System and methodology providing automation security protocols and intrusion detection in an industrial controller environment |
US7895443B2 (en) * | 2002-11-05 | 2011-02-22 | Safenet, Inc. | Secure authentication using hardware token and computer fingerprint |
US8100323B1 (en) * | 2002-12-26 | 2012-01-24 | Diebold Self-Service Systems Division Of Diebold, Incorporated | Apparatus and method for verifying components of an ATM |
US20060136743A1 (en) * | 2002-12-31 | 2006-06-22 | Polcha Andrew J | System and method for performing security access control based on modified biometric data |
US20040230658A1 (en) * | 2003-02-14 | 2004-11-18 | Julio Estrada | System and method for message downloading and initializing a collaborative work environment |
TWI240212B (en) * | 2003-03-14 | 2005-09-21 | Lightuning Tech Inc | Card-type biometric identification device and method therefor |
US7562214B2 (en) * | 2003-03-31 | 2009-07-14 | International Business Machines Corporation | Data processing systems |
US20050005136A1 (en) * | 2003-04-23 | 2005-01-06 | Liqun Chen | Security method and apparatus using biometric data |
GB0309182D0 (en) * | 2003-04-23 | 2003-05-28 | Hewlett Packard Development Co | Security method and apparatus using biometric data |
US7353468B2 (en) * | 2003-09-26 | 2008-04-01 | Ferguson John G | Secure exchange of information in electronic design automation |
US20060259978A1 (en) * | 2003-09-26 | 2006-11-16 | Pikus Fedor G | Secure exchange of information in electronic design automation with license-related key generation |
US7222312B2 (en) * | 2003-09-26 | 2007-05-22 | Ferguson John G | Secure exchange of information in electronic design automation |
US7792300B1 (en) * | 2003-09-30 | 2010-09-07 | Oracle America, Inc. | Method and apparatus for re-encrypting data in a transaction-based secure storage system |
US7577659B2 (en) * | 2003-10-24 | 2009-08-18 | Microsoft Corporation | Interoperable credential gathering and access modularity |
US20050097346A1 (en) * | 2003-10-31 | 2005-05-05 | Brent Pipal | Program code version enforcement |
US8296558B1 (en) * | 2003-11-26 | 2012-10-23 | Apple Inc. | Method and apparatus for securing communication between a mobile node and a network |
WO2005057507A2 (en) * | 2003-12-02 | 2005-06-23 | Koolspan, Inc | Remote secure authorization |
US7412603B2 (en) * | 2003-12-05 | 2008-08-12 | Microsoft Corporation | Methods and systems for enabling secure storage of sensitive data |
US7802109B2 (en) * | 2003-12-10 | 2010-09-21 | Hewlett-Packard Development Company, L.P. | Trusted system for file distribution |
US7496191B1 (en) | 2003-12-17 | 2009-02-24 | Sprint Communications Company L.P. | Integrated privacy rules engine and application |
US7853786B1 (en) * | 2003-12-17 | 2010-12-14 | Sprint Communications Company L.P. | Rules engine architecture and implementation |
US7434256B2 (en) * | 2003-12-18 | 2008-10-07 | Intel Corporation | Security management for wireless clients |
JP4420201B2 (en) * | 2004-02-27 | 2010-02-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Authentication method using hardware token, hardware token, computer apparatus, and program |
FR2867002B1 (en) * | 2004-02-27 | 2006-05-26 | Gemplus Card Int | METHOD, AUTHENTICATION MEDIUM, AND IMPROVED DEVICE FOR SECURING ACCESS TO EQUIPMENT |
JP4290036B2 (en) * | 2004-02-27 | 2009-07-01 | キヤノン株式会社 | Information processing apparatus and print control apparatus |
WO2006031255A2 (en) * | 2004-04-02 | 2006-03-23 | Riptide Systems, Inc. | Biometric identification system |
US7805614B2 (en) * | 2004-04-26 | 2010-09-28 | Northrop Grumman Corporation | Secure local or remote biometric(s) identity and privilege (BIOTOKEN) |
US20060053285A1 (en) * | 2004-07-29 | 2006-03-09 | Kimmel Gerald D | Object access level |
US20060036869A1 (en) * | 2004-08-12 | 2006-02-16 | Bill Faught | Methods and systems that provide user access to computer resources with controlled user access rights |
US20060078790A1 (en) * | 2004-10-05 | 2006-04-13 | Polyplus Battery Company | Solid electrolytes based on lithium hafnium phosphate for active metal anode protection |
US7477908B2 (en) | 2004-12-13 | 2009-01-13 | Research In Motion Limited | Messaging protocol/service switching methods and devices |
US20060126831A1 (en) * | 2004-12-14 | 2006-06-15 | Cerruti Julian A | Systems, methods, and media for adding an additional level of indirection to title key encryption |
US7430756B2 (en) * | 2004-12-22 | 2008-09-30 | Jsm Technologies, Llc | System and method for generating and authenticating a computer password |
US7794989B2 (en) * | 2004-12-28 | 2010-09-14 | Ajinomoto Co., Inc. | L-glutamic acid-producing microorganism and a method for producing L-glutamic acid |
US20060167809A1 (en) * | 2005-01-24 | 2006-07-27 | Microsoft Corporation | Software assistant for multi-merchant purchasing environment for downloadable products |
US20060167811A1 (en) * | 2005-01-24 | 2006-07-27 | Microsoft Corporation | Product locker for multi-merchant purchasing environment for downloadable products |
US20060200489A1 (en) * | 2005-03-03 | 2006-09-07 | Microsoft Corporation | Company modeling |
US7900152B2 (en) * | 2005-03-03 | 2011-03-01 | Microsoft Corporation | Adaptable user interface for business software |
US8219823B2 (en) * | 2005-03-04 | 2012-07-10 | Carter Ernst B | System for and method of managing access to a system using combinations of user information |
US7810143B2 (en) * | 2005-04-22 | 2010-10-05 | Microsoft Corporation | Credential interface |
US7617530B2 (en) | 2005-04-22 | 2009-11-10 | Microsoft Corporation | Rights elevator |
US20060282681A1 (en) * | 2005-05-27 | 2006-12-14 | Scheidt Edward M | Cryptographic configuration control |
US7657834B2 (en) * | 2005-06-29 | 2010-02-02 | Trusted Computer Solutions | Sensitivity label translation |
US8995653B2 (en) * | 2005-07-12 | 2015-03-31 | International Business Machines Corporation | Generating a secret key from an asymmetric private key |
US20070014399A1 (en) * | 2005-07-15 | 2007-01-18 | Scheidt Edward M | High assurance key management overlay |
WO2007012035A2 (en) * | 2005-07-20 | 2007-01-25 | Wms Gaming Inc. | Wagering game with encryption and authentication |
CN101495956B (en) * | 2005-08-11 | 2012-03-07 | 晟碟以色列有限公司 | Extended one-time password method and apparatus |
US20070039042A1 (en) * | 2005-08-12 | 2007-02-15 | First Data Corporation | Information-security systems and methods |
US20070050303A1 (en) * | 2005-08-24 | 2007-03-01 | Schroeder Dale W | Biometric identification device |
US7698555B2 (en) * | 2005-08-29 | 2010-04-13 | Schweitzer Engineering Laboratories, Inc. | System and method for enabling secure access to a program of a headless server device |
KR100729105B1 (en) * | 2005-10-14 | 2007-06-14 | 포스데이타 주식회사 | Apparatus And Method For Processing EAP-AKA Authentication In The non-USIM Terminal |
GB0523871D0 (en) * | 2005-11-24 | 2006-01-04 | Ibm | A system for updating security data |
CN1992596A (en) * | 2005-12-27 | 2007-07-04 | 国际商业机器公司 | User authentication device and method |
US20070162759A1 (en) * | 2005-12-28 | 2007-07-12 | Motorola, Inc. | Protected port for electronic access to an embedded device |
US8185639B2 (en) * | 2006-01-03 | 2012-05-22 | Emc Corporation | Server identification in storage networks |
US8892750B1 (en) * | 2006-01-03 | 2014-11-18 | Emc Corporation | Transparent HBA replacement |
US7941848B2 (en) * | 2006-01-30 | 2011-05-10 | Microsoft Corporation | Elevating rights |
US7945951B2 (en) * | 2006-01-30 | 2011-05-17 | Microsoft Corporation | Rights-context elevator |
US20070198934A1 (en) * | 2006-02-17 | 2007-08-23 | Microsoft Corporation | Performing a Prohibited Task |
US8234220B2 (en) * | 2007-02-21 | 2012-07-31 | Weiss Kenneth P | Universal secure registry |
WO2007145687A1 (en) | 2006-02-21 | 2007-12-21 | Weiss Kenneth P | Method and apparatus for secure access payment and identification |
US11227676B2 (en) | 2006-02-21 | 2022-01-18 | Universal Secure Registry, Llc | Universal secure registry |
US20070220134A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Endpoint Verification Using Call Signs |
US8161281B1 (en) * | 2006-04-13 | 2012-04-17 | Rockwell Collins, Inc. | High assurance data tagger for I/O feeds |
US7552467B2 (en) * | 2006-04-24 | 2009-06-23 | Jeffrey Dean Lindsay | Security systems for protecting an asset |
US20090222927A1 (en) * | 2006-04-30 | 2009-09-03 | Pikus Fedor G | Concealment of Information in Electronic Design Automation |
US7774829B2 (en) * | 2006-06-20 | 2010-08-10 | Lenovo (Singapore) Pte. Ltd. | Computer access control using password reset |
US8214880B1 (en) * | 2006-06-22 | 2012-07-03 | Verizon Patent And Licensing Inc. | Methods and systems for securely configuring a network device |
US8090944B2 (en) * | 2006-07-05 | 2012-01-03 | Rockstar Bidco Lp | Method and apparatus for authenticating users of an emergency communication network |
US8527887B2 (en) | 2006-07-19 | 2013-09-03 | Research In Motion Limited | Device and method for improving efficiency of entering a password using a key-limited keyboard |
CA2664003C (en) * | 2006-09-20 | 2015-11-03 | Mobivox Corporation | Method and system for triggering internet applications using messages |
US20080077976A1 (en) * | 2006-09-27 | 2008-03-27 | Rockwell Automation Technologies, Inc. | Cryptographic authentication protocol |
GB2443244A (en) * | 2006-10-05 | 2008-04-30 | Hewlett Packard Development Co | Authenticated Encryption Method and Apparatus |
US8892887B2 (en) * | 2006-10-10 | 2014-11-18 | Qualcomm Incorporated | Method and apparatus for mutual authentication |
JP2008103936A (en) * | 2006-10-18 | 2008-05-01 | Toshiba Corp | Secret information management device, and secret information management system |
US20080095361A1 (en) * | 2006-10-19 | 2008-04-24 | Telefonaktiebolaget L M Ericsson (Publ) | Security-Enhanced Key Exchange |
US20080148057A1 (en) * | 2006-12-19 | 2008-06-19 | Ohanae, Inc. | Security token |
US8590024B2 (en) * | 2007-02-01 | 2013-11-19 | The Boeing Company | Method for generating digital fingerprint using pseudo random number code |
US20080209226A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | User Authentication Via Biometric Hashing |
US20080209227A1 (en) * | 2007-02-28 | 2008-08-28 | Microsoft Corporation | User Authentication Via Biometric Hashing |
US8467527B2 (en) * | 2008-12-03 | 2013-06-18 | Intel Corporation | Efficient key derivation for end-to-end network security with traffic visibility |
US8726347B2 (en) | 2007-04-27 | 2014-05-13 | International Business Machines Corporation | Authentication based on previous authentications |
US8327430B2 (en) * | 2007-06-19 | 2012-12-04 | International Business Machines Corporation | Firewall control via remote system information |
US8272043B2 (en) * | 2007-06-21 | 2012-09-18 | International Business Machines Corporation | Firewall control system |
US8272041B2 (en) * | 2007-06-21 | 2012-09-18 | International Business Machines Corporation | Firewall control via process interrogation |
WO2009017910A2 (en) * | 2007-06-25 | 2009-02-05 | Vuance, Inc. | Emergency responder credentialing system and method |
US8006295B2 (en) * | 2007-06-28 | 2011-08-23 | Microsoft Corporation | Domain ID service |
EP2168282A1 (en) | 2007-07-12 | 2010-03-31 | Innovation Investments, LLC | Identity authentication and secured access systems, components, and methods |
CA2593897C (en) * | 2007-07-16 | 2016-06-14 | Tet Hin Yeap | Method, system and apparatus for accessing a resource based on data supplied by a local user |
CA2693133C (en) | 2007-07-17 | 2014-10-14 | Certicom Corp. | Method and system for generating implicit certificates and applications to identity-based encryption (ibe) |
US7934096B2 (en) | 2007-07-27 | 2011-04-26 | Microsoft Corporation | Integrity protected smart card transaction |
US20090031139A1 (en) * | 2007-07-27 | 2009-01-29 | Mohammed Alawi Geoffrey | System and Method for Electronic Certification and Authentification |
US9774445B1 (en) * | 2007-09-04 | 2017-09-26 | Netapp, Inc. | Host based rekeying |
WO2009073144A2 (en) * | 2007-11-28 | 2009-06-11 | The Regents Of The University Of Colorado | Bio-cryptography: secure cryptographic protocols with bipartite biotokens |
US20090164796A1 (en) * | 2007-12-21 | 2009-06-25 | Daon Holdings Limited | Anonymous biometric tokens |
US20090177892A1 (en) * | 2008-01-09 | 2009-07-09 | Microsoft Corporation | Proximity authentication |
US8307055B2 (en) * | 2008-01-22 | 2012-11-06 | Absolute Software Corporation | Secure platform management device |
WO2009097577A1 (en) | 2008-01-30 | 2009-08-06 | Neology, Inc. | Rfid authentication architecture and methods for rfid authentication |
CN101267339A (en) * | 2008-02-28 | 2008-09-17 | 华为技术有限公司 | User management method and device |
US20090319789A1 (en) * | 2008-04-14 | 2009-12-24 | Larry Wendell Wilson | Encrypted portable medical history system |
WO2010042248A1 (en) * | 2008-04-21 | 2010-04-15 | Ncipher Corporation Ltd. | Method and system for security requiring authorization by multiple users |
US8838990B2 (en) * | 2008-04-25 | 2014-09-16 | University Of Colorado Board Of Regents | Bio-cryptography: secure cryptographic protocols with bipartite biotokens |
ATE551817T1 (en) * | 2008-05-07 | 2012-04-15 | Ericsson Telefon Ab L M | SYSTEM FOR DELIVERING AUTONOMOUSLY REPLAYABLE CONTENT |
WO2009137927A1 (en) * | 2008-05-12 | 2009-11-19 | Research In Motion Limited | Security measures for countering unauthorized decryption |
US20090328198A1 (en) * | 2008-06-27 | 2009-12-31 | Atek, Inc. | Secure password organizer |
SG158757A1 (en) * | 2008-07-10 | 2010-02-26 | Fast And Safe Technology Pte L | Method and apparatus for protecting data in computers |
DE102008040416A1 (en) * | 2008-07-15 | 2010-01-21 | Bundesdruckerei Gmbh | Method for reading attributes from an ID token |
US8707415B2 (en) * | 2008-09-22 | 2014-04-22 | Bundesdruckeri GmbH | Method for storing data, computer program product, ID token and computer system |
US8281143B1 (en) | 2008-09-29 | 2012-10-02 | Symantec Operating Corporation | Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
EP2353251B1 (en) | 2008-11-21 | 2012-10-17 | Nero Ag | Apparatus for verifying and for generating an encrypted token and methods for same |
US8370640B2 (en) | 2008-12-01 | 2013-02-05 | Research In Motion Limited | Simplified multi-factor authentication |
US10943030B2 (en) * | 2008-12-15 | 2021-03-09 | Ibailbonding.Com | Securable independent electronic document |
EP2359573B1 (en) | 2008-12-18 | 2015-02-18 | Telefonaktiebolaget L M Ericsson (publ) | Method for content delivery involving a policy database |
EP2380149B1 (en) * | 2008-12-19 | 2016-10-12 | Nxp B.V. | Enhanced smart card usage |
US20100179909A1 (en) * | 2009-01-14 | 2010-07-15 | Jubin Dana | User defined udk |
WO2010111440A2 (en) * | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | Token for securing communication |
WO2010111448A1 (en) | 2009-03-25 | 2010-09-30 | Pacid Technologies, Llc | Method and system for securing communication |
US8726032B2 (en) | 2009-03-25 | 2014-05-13 | Pacid Technologies, Llc | System and method for protecting secrets file |
US8539241B2 (en) | 2009-03-25 | 2013-09-17 | Pacid Technologies, Llc | Method and system for securing communication |
US8479304B1 (en) * | 2009-03-31 | 2013-07-02 | Symantec Corporation | Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
CA2665961C (en) * | 2009-05-12 | 2013-01-22 | Diversinet Corp. | Method and system for delivering a command to a mobile device |
US7690032B1 (en) | 2009-05-22 | 2010-03-30 | Daon Holdings Limited | Method and system for confirming the identity of a user |
US9047450B2 (en) * | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Identification of embedded system devices |
US9047458B2 (en) * | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Network access protection |
US20100325703A1 (en) * | 2009-06-23 | 2010-12-23 | Craig Stephen Etchegoyen | System and Method for Secured Communications by Embedded Platforms |
US8819446B2 (en) | 2009-06-26 | 2014-08-26 | International Business Machines Corporation | Support for secure objects in a computer system |
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US9954875B2 (en) | 2009-06-26 | 2018-04-24 | International Business Machines Corporation | Protecting from unintentional malware download |
US8578175B2 (en) | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US7685629B1 (en) * | 2009-08-05 | 2010-03-23 | Daon Holdings Limited | Methods and systems for authenticating users |
US8443202B2 (en) | 2009-08-05 | 2013-05-14 | Daon Holdings Limited | Methods and systems for authenticating users |
US7865937B1 (en) | 2009-08-05 | 2011-01-04 | Daon Holdings Limited | Methods and systems for authenticating users |
US8972742B2 (en) * | 2009-09-04 | 2015-03-03 | Gradiant | System for secure image recognition |
US8726407B2 (en) * | 2009-10-16 | 2014-05-13 | Deviceauthority, Inc. | Authentication of computing and communications hardware |
US8418237B2 (en) | 2009-10-20 | 2013-04-09 | Microsoft Corporation | Resource access based on multiple credentials |
US8341710B2 (en) * | 2009-12-14 | 2012-12-25 | Verizon Patent And Licensing, Inc. | Ubiquitous webtoken |
CN101729249B (en) * | 2009-12-21 | 2011-11-30 | 西安西电捷通无线网络通信股份有限公司 | Building method of safe connection among user terminals and system thereof |
US8447970B2 (en) * | 2010-02-09 | 2013-05-21 | Microsoft Corporation | Securing out-of-band messages |
US8510816B2 (en) | 2010-02-25 | 2013-08-13 | Secureauth Corporation | Security device provisioning |
US8731197B2 (en) * | 2010-03-09 | 2014-05-20 | Ebay Inc. | Secure randomized input |
US8826030B2 (en) * | 2010-03-22 | 2014-09-02 | Daon Holdings Limited | Methods and systems for authenticating users |
US8510552B2 (en) | 2010-04-07 | 2013-08-13 | Apple Inc. | System and method for file-level data protection |
US8788842B2 (en) * | 2010-04-07 | 2014-07-22 | Apple Inc. | System and method for content protection based on a combination of a user PIN and a device specific identifier |
US8549314B2 (en) | 2010-04-29 | 2013-10-01 | King Saud University | Password generation methods and systems |
US10157269B2 (en) | 2010-05-06 | 2018-12-18 | John K. Thomas | Verification system for secure transmission in a distributed processing network |
KR20110128567A (en) * | 2010-05-24 | 2011-11-30 | 삼성전자주식회사 | Method for controlling objects of user interface and apparatus of enabling the method |
US8429408B2 (en) * | 2010-06-11 | 2013-04-23 | Certicom Corp. | Masking the output of random number generators in key generation protocols |
US8924733B2 (en) * | 2010-06-14 | 2014-12-30 | International Business Machines Corporation | Enabling access to removable hard disk drives |
WO2012017384A1 (en) | 2010-08-02 | 2012-02-09 | 3Fish Limited | Identity assessment method and system |
US8613052B2 (en) | 2010-09-17 | 2013-12-17 | Universal Secure Registry, Llc | Apparatus, system and method employing a wireless user-device |
US9191200B1 (en) * | 2010-10-07 | 2015-11-17 | L-3 Communications Corp. | System and method for changing the security level of a communications terminal during operation |
US8508338B1 (en) | 2010-11-07 | 2013-08-13 | Howard Owen Fiddy | Method and system for defeat of replay attacks against biometric authentication systems |
US9237155B1 (en) | 2010-12-06 | 2016-01-12 | Amazon Technologies, Inc. | Distributed policy enforcement with optimizing policy transformations |
AU2011100168B4 (en) | 2011-02-09 | 2011-06-30 | Device Authority Ltd | Device-bound certificate authentication |
US9864853B2 (en) * | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
US8769642B1 (en) | 2011-05-31 | 2014-07-01 | Amazon Technologies, Inc. | Techniques for delegation of access privileges |
AU2011101295B4 (en) | 2011-06-13 | 2012-08-02 | Device Authority Ltd | Hardware identity in multi-factor authentication layer |
US9659164B2 (en) * | 2011-08-02 | 2017-05-23 | Qualcomm Incorporated | Method and apparatus for using a multi-factor password or a dynamic password for enhanced security on a device |
AU2011101297B4 (en) | 2011-08-15 | 2012-06-14 | Uniloc Usa, Inc. | Remote recognition of an association between remote devices |
US9203613B2 (en) | 2011-09-29 | 2015-12-01 | Amazon Technologies, Inc. | Techniques for client constructed sessions |
US9197409B2 (en) | 2011-09-29 | 2015-11-24 | Amazon Technologies, Inc. | Key derivation techniques |
US9178701B2 (en) | 2011-09-29 | 2015-11-03 | Amazon Technologies, Inc. | Parameter based key derivation |
US20180034639A1 (en) * | 2011-10-04 | 2018-02-01 | International Business Machines Corporation | Multiple credentials for mitigating impact of data access under duress |
US9832023B2 (en) | 2011-10-31 | 2017-11-28 | Biobex, Llc | Verification of authenticity and responsiveness of biometric evidence and/or other evidence |
US9160536B2 (en) * | 2011-11-30 | 2015-10-13 | Advanced Biometric Controls, Llc | Verification of authenticity and responsiveness of biometric evidence and/or other evidence |
US8799675B2 (en) | 2012-01-05 | 2014-08-05 | House Of Development Llc | System and method for electronic certification and authentication of data |
US8984276B2 (en) | 2012-01-10 | 2015-03-17 | Jpmorgan Chase Bank, N.A. | System and method for device registration and authentication |
FR2987199B1 (en) | 2012-02-16 | 2015-02-20 | France Telecom | SECURING A DATA TRANSMISSION. |
US9361467B2 (en) * | 2012-02-29 | 2016-06-07 | Sap Se | Owner-controlled access control to released data |
US8892865B1 (en) | 2012-03-27 | 2014-11-18 | Amazon Technologies, Inc. | Multiple authority key derivation |
US8739308B1 (en) | 2012-03-27 | 2014-05-27 | Amazon Technologies, Inc. | Source identification for unauthorized copies of content |
US9215076B1 (en) | 2012-03-27 | 2015-12-15 | Amazon Technologies, Inc. | Key generation for hierarchical data access |
TWI566564B (en) * | 2012-04-25 | 2017-01-11 | Samton International Development Technology Co Ltd | Virtual reality authentication circuit, system and electronic consumption method |
US9258118B1 (en) * | 2012-06-25 | 2016-02-09 | Amazon Technologies, Inc. | Decentralized verification in a distributed system |
US9660972B1 (en) * | 2012-06-25 | 2017-05-23 | Amazon Technologies, Inc. | Protection from data security threats |
US9094524B2 (en) | 2012-09-04 | 2015-07-28 | Avaya Inc. | Enhancing conferencing user experience via components |
US20140075493A1 (en) * | 2012-09-12 | 2014-03-13 | Avaya, Inc. | System and method for location-based protection of mobile data |
US9176838B2 (en) | 2012-10-19 | 2015-11-03 | Intel Corporation | Encrypted data inspection in a network environment |
GB2507100A (en) * | 2012-10-19 | 2014-04-23 | Ibm | Secure sharing and collaborative editing of documents in cloud based applications |
US8584219B1 (en) * | 2012-11-07 | 2013-11-12 | Fmr Llc | Risk adjusted, multifactor authentication |
US9154480B1 (en) * | 2012-12-12 | 2015-10-06 | Emc Corporation | Challenge-response authentication of a cryptographic device |
CN103916851B (en) * | 2013-01-06 | 2017-08-18 | 华为终端有限公司 | A kind of method of safety certification, equipment and system |
US9143496B2 (en) | 2013-03-13 | 2015-09-22 | Uniloc Luxembourg S.A. | Device authentication using device environment information |
US9787669B2 (en) * | 2013-03-14 | 2017-10-10 | Comcast Cable Communications, Llc | Identity authentication using credentials |
EP2974223A2 (en) | 2013-03-15 | 2016-01-20 | Assa Abloy AB | Digital credential with embedded authentication instructions |
US9286466B2 (en) | 2013-03-15 | 2016-03-15 | Uniloc Luxembourg S.A. | Registration and authentication of computing devices using a digital skeleton key |
US20140281568A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Using Biometrics to Generate Encryption Keys |
FR3005185B1 (en) * | 2013-04-30 | 2015-04-17 | Morpho | METHOD FOR GENERATING AT LEAST ONE DERIVED IDENTITY |
CN103607280B (en) * | 2013-05-14 | 2016-08-24 | 成都天钥科技有限公司 | Personal authentication apparatus |
US9407440B2 (en) | 2013-06-20 | 2016-08-02 | Amazon Technologies, Inc. | Multiple authority data security and access |
US9521000B1 (en) | 2013-07-17 | 2016-12-13 | Amazon Technologies, Inc. | Complete forward access sessions |
US9959216B2 (en) * | 2013-09-10 | 2018-05-01 | Sandisk Technologies Llc | Generating and using an enhanced initialization vector |
US9237019B2 (en) | 2013-09-25 | 2016-01-12 | Amazon Technologies, Inc. | Resource locators with keys |
US9311500B2 (en) | 2013-09-25 | 2016-04-12 | Amazon Technologies, Inc. | Data security using request-supplied keys |
US10243945B1 (en) | 2013-10-28 | 2019-03-26 | Amazon Technologies, Inc. | Managed identity federation |
US9178699B2 (en) * | 2013-11-06 | 2015-11-03 | Blackberry Limited | Public key encryption algorithms for hard lock file encryption |
US20150127593A1 (en) * | 2013-11-06 | 2015-05-07 | Forever Identity, Inc. | Platform to Acquire and Represent Human Behavior and Physical Traits to Achieve Digital Eternity |
US9420007B1 (en) | 2013-12-04 | 2016-08-16 | Amazon Technologies, Inc. | Access control using impersonization |
US9374368B1 (en) | 2014-01-07 | 2016-06-21 | Amazon Technologies, Inc. | Distributed passcode verification system |
US9292711B1 (en) | 2014-01-07 | 2016-03-22 | Amazon Technologies, Inc. | Hardware secret usage limits |
US9369461B1 (en) | 2014-01-07 | 2016-06-14 | Amazon Technologies, Inc. | Passcode verification using hardware secrets |
US9262642B1 (en) | 2014-01-13 | 2016-02-16 | Amazon Technologies, Inc. | Adaptive client-aware session security as a service |
US10771255B1 (en) | 2014-03-25 | 2020-09-08 | Amazon Technologies, Inc. | Authenticated storage operations |
US9351098B2 (en) * | 2014-05-19 | 2016-05-24 | Lenovo (Singapore) Pte. Ltd. | Providing access to and enabling functionality of first device based on communication with second device |
CN103987037A (en) * | 2014-05-28 | 2014-08-13 | 大唐移动通信设备有限公司 | Secret communication implementation method and device |
EP3149627B1 (en) * | 2014-06-02 | 2021-08-04 | Schlage Lock Company LLC | Systems and methods for a credential including multiple access privileges |
US9258117B1 (en) | 2014-06-26 | 2016-02-09 | Amazon Technologies, Inc. | Mutual authentication with symmetric secrets and signatures |
US10326597B1 (en) | 2014-06-27 | 2019-06-18 | Amazon Technologies, Inc. | Dynamic response signing capability in a distributed system |
US20160173502A1 (en) * | 2014-12-15 | 2016-06-16 | International Business Machines Corporation | Jurisdictional cloud data access |
US10587595B1 (en) * | 2014-12-30 | 2020-03-10 | Acronis International Gmbh | Controlling access to content |
US9954837B2 (en) | 2015-01-07 | 2018-04-24 | Cyph, Inc. | Method of multi-factor authenication during encrypted communications |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
US9577992B2 (en) * | 2015-02-04 | 2017-02-21 | Aerendir Mobile Inc. | Data encryption/decryption using neuro and neuro-mechanical fingerprints |
AU2015384233B2 (en) * | 2015-02-27 | 2019-03-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Security arrangements in communication between a communication device and a network device |
US11736468B2 (en) * | 2015-03-16 | 2023-08-22 | Assa Abloy Ab | Enhanced authorization |
US9584635B2 (en) * | 2015-03-31 | 2017-02-28 | Cavium, Inc. | Barrel compactor system, method and device having cell combination logic |
US9954551B2 (en) | 2015-03-31 | 2018-04-24 | Cavium, Inc. | Barrel compactor system, method and device |
US10122689B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Load balancing with handshake offload |
US10122692B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Handshake offload |
KR102398167B1 (en) * | 2015-07-02 | 2022-05-17 | 삼성전자주식회사 | User device, method for setting password thereof, and operating method for setting and confirming password thereof |
CN108028755B (en) * | 2015-07-09 | 2021-04-13 | 诺基亚技术有限公司 | Method and device for authentication |
US10341310B1 (en) | 2015-12-11 | 2019-07-02 | Orock Technologies, Inc. | System for authenticating users using multiple factors |
WO2017127564A1 (en) * | 2016-01-19 | 2017-07-27 | Priv8Pay, Inc. | Network node authentication |
US20170300673A1 (en) * | 2016-04-19 | 2017-10-19 | Brillio LLC | Information apparatus and method for authorizing user of augment reality apparatus |
US10044701B2 (en) * | 2016-05-24 | 2018-08-07 | Vantiv, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
US10154029B1 (en) | 2016-05-31 | 2018-12-11 | Wells Fargo Bank, N.A. | Biometric knowledge extraction for mutual and multi-factor authentication and key exchange |
US11405387B1 (en) * | 2016-05-31 | 2022-08-02 | Wells Fargo Bank, N.A. | Biometric electronic signature authenticated key exchange token |
US10469487B1 (en) | 2016-05-31 | 2019-11-05 | Wells Fargo Bank, N.A. | Biometric electronic signature authenticated key exchange token |
DE102016209543A1 (en) * | 2016-06-01 | 2017-12-07 | Bundesdruckerei Gmbh | User authentication using an ID token |
WO2018009612A1 (en) | 2016-07-06 | 2018-01-11 | Patient Doctor Technologies, Inc. | Secure and zero knowledge data sharing for cloud applications |
US10116440B1 (en) | 2016-08-09 | 2018-10-30 | Amazon Technologies, Inc. | Cryptographic key management for imported cryptographic keys |
US10341102B2 (en) | 2016-09-02 | 2019-07-02 | Blackberry Limited | Decrypting encrypted data on an electronic device |
US10348502B2 (en) | 2016-09-02 | 2019-07-09 | Blackberry Limited | Encrypting and decrypting data on an electronic device |
KR101913110B1 (en) * | 2016-10-13 | 2018-12-28 | 코나아이 (주) | Fingerprint recognition card and method of operating the fingerprint recognition card |
US20180219674A1 (en) * | 2017-01-06 | 2018-08-02 | Microsoft Technology Licensing, Llc | Successive cryptographic techniques |
US10965474B1 (en) * | 2017-02-27 | 2021-03-30 | Apple Inc. | Modifying security state with highly secured devices |
US10783235B1 (en) | 2017-05-04 | 2020-09-22 | Amazon Technologies, Inc. | Secure remote access of computing resources |
WO2018217204A1 (en) * | 2017-05-25 | 2018-11-29 | Barclays Services Corporation | Authentication system and method |
US10462120B2 (en) | 2017-05-25 | 2019-10-29 | Barclays Services Corporation | Authentication system and method |
US11082412B2 (en) * | 2017-07-12 | 2021-08-03 | Wickr Inc. | Sending secure communications using a local ephemeral key pool |
US11316666B2 (en) | 2017-07-12 | 2022-04-26 | Amazon Technologies, Inc. | Generating ephemeral key pools for sending and receiving secure communications |
US10715504B2 (en) | 2017-07-12 | 2020-07-14 | Wickr Inc. | Provisioning ephemeral key pools for sending and receiving secure communications |
US10860703B1 (en) * | 2017-08-17 | 2020-12-08 | Walgreen Co. | Online authentication and security management using device-based identification |
EP3454502B1 (en) | 2017-09-07 | 2020-08-05 | Nxp B.V. | Transceiver system |
US10860743B2 (en) * | 2017-10-26 | 2020-12-08 | VYRTY Corporation | Encryption scheme for making secure patient data available to authorized parties |
US11281647B2 (en) * | 2017-12-06 | 2022-03-22 | International Business Machines Corporation | Fine-grained scalable time-versioning support for large-scale property graph databases |
US10855473B1 (en) | 2017-12-15 | 2020-12-01 | Wells Fargo Bank, N.A. | Systems and methods for biometric electronic signature agreement and intention |
US11012435B2 (en) | 2017-12-19 | 2021-05-18 | International Business Machines Corporation | Multi factor authentication |
US11122033B2 (en) * | 2017-12-19 | 2021-09-14 | International Business Machines Corporation | Multi factor authentication |
KR102526620B1 (en) | 2018-03-06 | 2023-04-27 | 구글 엘엘씨 | Systems and methods for classifying auto-filled fields |
US10911464B2 (en) | 2018-04-27 | 2021-02-02 | Oracle International Corporation | Framework for multi-level and multi-factor inline enrollment |
US11093771B1 (en) * | 2018-05-04 | 2021-08-17 | T Stamp Inc. | Systems and methods for liveness-verified, biometric-based encryption |
US11405386B2 (en) * | 2018-05-31 | 2022-08-02 | Samsung Electronics Co., Ltd. | Electronic device for authenticating user and operating method thereof |
JP2022500889A (en) * | 2018-07-29 | 2022-01-04 | ヌーヴェン コーポレイションNouvenn Corporation | Data communication network security method |
US11005971B2 (en) * | 2018-08-02 | 2021-05-11 | Paul Swengler | System and method for user device authentication or identity validation without passwords or matching tokens |
CN109240858A (en) * | 2018-09-28 | 2019-01-18 | 北京金山安全软件有限公司 | Data recovery method and device, digital wallet equipment and readable storage medium |
US10469259B1 (en) | 2018-11-07 | 2019-11-05 | Capital One Services, Llc | Rolling biometric key exchange |
US10812479B2 (en) * | 2018-12-05 | 2020-10-20 | Fiserv, Inc. | Authenticating a user via multiple biometric inputs |
US11138320B2 (en) * | 2018-12-20 | 2021-10-05 | Intel Corporation | Secure encryption key management in trust domains |
US11301586B1 (en) * | 2019-04-05 | 2022-04-12 | T Stamp Inc. | Systems and processes for lossy biometric representations |
US20200344231A1 (en) * | 2019-04-23 | 2020-10-29 | Microsoft Technology Licensing, Llc | Resource access based on audio signal |
US11233658B2 (en) * | 2019-08-14 | 2022-01-25 | OX Labs Inc. | Digital transaction signing for multiple client devices using secured encrypted private keys |
US11216553B1 (en) | 2020-05-14 | 2022-01-04 | Rapid7, Inc. | Machine scanning system with distributed credential storage |
TWI764174B (en) * | 2020-06-12 | 2022-05-11 | 台灣立訊精密有限公司 | Authority control system |
US11341231B2 (en) * | 2020-06-17 | 2022-05-24 | Bank Of America Corporation | Data security system for analyzing historical authentication entry attempts to identify misappropriation of security credential and enforce password change |
FR3112408B1 (en) * | 2020-07-12 | 2023-05-12 | Tabary Frederic | METHOD FOR GENERATION OF AN AUTHENTICATION KEY FROM THE IMAGE OF A TATTOO AND ASSOCIATED DEVICE |
WO2022076352A1 (en) * | 2020-10-05 | 2022-04-14 | Redcom Laboratories, Inc. | zkMFA: ZERO-KNOWLEDGE BASED MULTI-FACTOR AUTHENTICATION SYSTEM |
US11424929B2 (en) | 2021-01-07 | 2022-08-23 | Bank Of America Corporation | Authentication using encrypted biometric information |
WO2022191837A1 (en) * | 2021-03-10 | 2022-09-15 | Hewlett-Packard Development Company, L.P. | Device login authentications |
US11921831B2 (en) | 2021-03-12 | 2024-03-05 | Intellivision Technologies Corp | Enrollment system with continuous learning and confirmation |
CN113343216B (en) * | 2021-05-25 | 2022-12-13 | 网易(杭州)网络有限公司 | Issuer management method, issuer management device, storage medium and server |
CN113382001B (en) * | 2021-06-09 | 2023-02-07 | 湖南快乐阳光互动娱乐传媒有限公司 | Communication encryption method and related device |
US11792009B2 (en) * | 2021-06-14 | 2023-10-17 | Bank Of America Corporation | Electronic system for generation of authentication tokens using biometric data |
US20230046788A1 (en) * | 2021-08-16 | 2023-02-16 | Capital One Services, Llc | Systems and methods for resetting an authentication counter |
US11811752B1 (en) | 2022-08-03 | 2023-11-07 | 1080 Network, Inc. | Systems, methods, and computing platforms for executing credential-less network-based communication exchanges |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280527A (en) * | 1992-04-14 | 1994-01-18 | Kamahira Safe Co., Inc. | Biometric token for authorizing access to a host system |
US5495533A (en) * | 1994-04-29 | 1996-02-27 | International Business Machines Corporation | Personal key archive |
US5499297A (en) * | 1992-04-17 | 1996-03-12 | Secure Computing Corporation | System and method for trusted path communications |
US5694472A (en) * | 1995-02-13 | 1997-12-02 | Eta Technologies Corporation | Personal access management system |
US5956407A (en) * | 1996-11-01 | 1999-09-21 | Slavin; Keith R. | Public key cryptographic system having nested security levels |
US6005939A (en) * | 1996-12-06 | 1999-12-21 | International Business Machines Corporation | Method and apparatus for storing an internet user's identity and access rights to world wide web resources |
US6011847A (en) * | 1995-06-01 | 2000-01-04 | Follendore, Iii; Roy D. | Cryptographic access and labeling system |
US6219790B1 (en) * | 1998-06-19 | 2001-04-17 | Lucent Technologies Inc. | Centralized authentication, authorization and accounting server with support for multiple transport protocols and multiple client types |
US6317834B1 (en) * | 1999-01-29 | 2001-11-13 | International Business Machines Corporation | Biometric authentication system with encrypted models |
US20020007453A1 (en) * | 2000-05-23 | 2002-01-17 | Nemovicher C. Kerry | Secured electronic mail system and method |
US20020031230A1 (en) * | 2000-08-15 | 2002-03-14 | Sweet William B. | Method and apparatus for a web-based application service model for security management |
US6490680B1 (en) * | 1997-12-04 | 2002-12-03 | Tecsec Incorporated | Access control and authorization system |
US6532542B1 (en) * | 1997-06-30 | 2003-03-11 | Microsoft Corporation | Protected storage of core data secrets |
US6598161B1 (en) * | 1999-08-09 | 2003-07-22 | International Business Machines Corporation | Methods, systems and computer program products for multi-level encryption |
US6754820B1 (en) * | 2001-01-30 | 2004-06-22 | Tecsec, Inc. | Multiple level access system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907597A (en) | 1994-08-05 | 1999-05-25 | Smart Tone Authentication, Inc. | Method and system for the secure communication of data |
US5805719A (en) | 1994-11-28 | 1998-09-08 | Smarttouch | Tokenless identification of individuals |
JPH09284272A (en) | 1996-04-19 | 1997-10-31 | Canon Inc | Ciphering system, signature system, key common share system, identity proving system and device for the systems |
AU6759998A (en) * | 1997-03-06 | 1998-09-22 | Skylight Software, Inc. | Cryptographic digital identity method |
US6035406A (en) | 1997-04-02 | 2000-03-07 | Quintet, Inc. | Plurality-factor security system |
US6035398A (en) | 1997-11-14 | 2000-03-07 | Digitalpersona, Inc. | Cryptographic key generation using biometric data |
US6041410A (en) * | 1997-12-22 | 2000-03-21 | Trw Inc. | Personal identification fob |
US6263446B1 (en) * | 1997-12-23 | 2001-07-17 | Arcot Systems, Inc. | Method and apparatus for secure distribution of authentication credentials to roaming users |
US6845453B2 (en) * | 1998-02-13 | 2005-01-18 | Tecsec, Inc. | Multiple factor-based user identification and authentication |
US6615350B1 (en) * | 1998-03-23 | 2003-09-02 | Novell, Inc. | Module authentication and binding library extensions |
US6307955B1 (en) | 1998-12-18 | 2001-10-23 | Topaz Systems, Inc. | Electronic signature management system |
US6332193B1 (en) | 1999-01-18 | 2001-12-18 | Sensar, Inc. | Method and apparatus for securely transmitting and authenticating biometric data over a network |
US6553494B1 (en) | 1999-07-21 | 2003-04-22 | Sensar, Inc. | Method and apparatus for applying and verifying a biometric-based digital signature to an electronic document |
-
2002
- 2002-01-30 US US10/060,011 patent/US6754820B1/en not_active Expired - Lifetime
-
2003
- 2003-01-30 US US10/502,478 patent/US7178025B2/en not_active Expired - Fee Related
-
2004
- 2004-06-16 US US10/870,250 patent/US7016495B2/en not_active Expired - Lifetime
-
2006
- 2006-03-15 US US11/376,716 patent/US20070165859A1/en not_active Abandoned
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280527A (en) * | 1992-04-14 | 1994-01-18 | Kamahira Safe Co., Inc. | Biometric token for authorizing access to a host system |
US5499297A (en) * | 1992-04-17 | 1996-03-12 | Secure Computing Corporation | System and method for trusted path communications |
US5495533A (en) * | 1994-04-29 | 1996-02-27 | International Business Machines Corporation | Personal key archive |
US5694472A (en) * | 1995-02-13 | 1997-12-02 | Eta Technologies Corporation | Personal access management system |
US6011847A (en) * | 1995-06-01 | 2000-01-04 | Follendore, Iii; Roy D. | Cryptographic access and labeling system |
US5956407A (en) * | 1996-11-01 | 1999-09-21 | Slavin; Keith R. | Public key cryptographic system having nested security levels |
US6005939A (en) * | 1996-12-06 | 1999-12-21 | International Business Machines Corporation | Method and apparatus for storing an internet user's identity and access rights to world wide web resources |
US6532542B1 (en) * | 1997-06-30 | 2003-03-11 | Microsoft Corporation | Protected storage of core data secrets |
US6490680B1 (en) * | 1997-12-04 | 2002-12-03 | Tecsec Incorporated | Access control and authorization system |
US6219790B1 (en) * | 1998-06-19 | 2001-04-17 | Lucent Technologies Inc. | Centralized authentication, authorization and accounting server with support for multiple transport protocols and multiple client types |
US6317834B1 (en) * | 1999-01-29 | 2001-11-13 | International Business Machines Corporation | Biometric authentication system with encrypted models |
US6598161B1 (en) * | 1999-08-09 | 2003-07-22 | International Business Machines Corporation | Methods, systems and computer program products for multi-level encryption |
US20020007453A1 (en) * | 2000-05-23 | 2002-01-17 | Nemovicher C. Kerry | Secured electronic mail system and method |
US20020031230A1 (en) * | 2000-08-15 | 2002-03-14 | Sweet William B. | Method and apparatus for a web-based application service model for security management |
US6754820B1 (en) * | 2001-01-30 | 2004-06-22 | Tecsec, Inc. | Multiple level access system |
Non-Patent Citations (3)
Title |
---|
"ANSI X9.69:1998 - Framework for Key Management Extensions," American National Standard for Financial Services, Copyright 1998, Approved January 29, 1999. * |
Definition of "ephemeral," Merriam Webster Dictionary, http://www.merriam-webster.com/dictionary/ephemeral. * |
Frank J. Adamouski, "Encryption Technology Other than PKI," Security Technology, Proceedings., 32nd Annual 1998 International Carnahan Conference on; Oct. 12-14, 1998, pp. 108-116, ISBN: 0-7803-4535-5, USA. * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671452B2 (en) * | 2006-01-26 | 2014-03-11 | Lg Electronics Inc. | Apparatus and method for moving rights object from one device to another device via server |
US20070172065A1 (en) * | 2006-01-26 | 2007-07-26 | Lg Electronics Inc. | Apparatus and method for moving rights object from one device to another device via server |
US20090276477A1 (en) * | 2008-05-02 | 2009-11-05 | Oracle International Corporation | Method of partitioning a database |
US9489407B2 (en) | 2008-05-02 | 2016-11-08 | Oracle International Corporation | Systems, methods, and machine-readable memories for partitioning a database |
US8645423B2 (en) * | 2008-05-02 | 2014-02-04 | Oracle International Corporation | Method of partitioning a database |
US20110113254A1 (en) * | 2008-07-19 | 2011-05-12 | The University Court of the University of St. Andr ews | Multipad encryption |
US8688996B2 (en) * | 2008-07-19 | 2014-04-01 | University Court Of The University Of St Andrews | Multipad encryption |
US20110219067A1 (en) * | 2008-10-29 | 2011-09-08 | Dolby Laboratories Licensing Corporation | Internetworking Domain and Key System |
US8572699B2 (en) * | 2010-11-18 | 2013-10-29 | Microsoft Corporation | Hardware-based credential distribution |
US20120131652A1 (en) * | 2010-11-18 | 2012-05-24 | Microsoft Corporation | Hardware-based credential distribution |
US9553858B2 (en) | 2010-11-18 | 2017-01-24 | Microsoft Technology Licensing, Llc | Hardware-based credential distribution |
CN104303450A (en) * | 2012-05-21 | 2015-01-21 | 皇家飞利浦有限公司 | Determination of cryptographic keys |
CN109347630A (en) * | 2018-10-16 | 2019-02-15 | 航天信息股份有限公司 | A kind of tax controlling equipment cryptographic key distribution method and system |
Also Published As
Publication number | Publication date |
---|---|
US20040254882A1 (en) | 2004-12-16 |
US6754820B1 (en) | 2004-06-22 |
US7178025B2 (en) | 2007-02-13 |
US7016495B2 (en) | 2006-03-21 |
US20050235148A1 (en) | 2005-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7016495B2 (en) | Multiple level access system | |
US20110178930A1 (en) | Multiple Level Access with SILOS | |
CN111191288B (en) | Block chain data access right control method based on proxy re-encryption | |
Blaze | Key Management in an Encrypting File System. | |
Ali et al. | SeDaSC: secure data sharing in clouds | |
US8625802B2 (en) | Methods, devices, and media for secure key management in a non-secured, distributed, virtualized environment with applications to cloud-computing security and management | |
US8630421B2 (en) | Cryptographic key backup and escrow system | |
US6976162B1 (en) | Platform and method for establishing provable identities while maintaining privacy | |
US8855317B2 (en) | System for protecting an encrypted information unit | |
US20070014399A1 (en) | High assurance key management overlay | |
US20090097657A1 (en) | Constructive Channel Key | |
US20020062451A1 (en) | System and method of providing communication security | |
US20120002805A1 (en) | Cryptographic Key Spilt Combiner Including a Biometric Input | |
EP2339777A2 (en) | Method of authenticating a user to use a system | |
US7194628B1 (en) | Methods and systems for group authentication using the naccache-stern cryptosystem in accordance with a prescribed rule | |
CN114039790A (en) | Block chain-based fine-grained cloud storage security access control method | |
US8656179B2 (en) | Using hidden secrets and token devices to create secure volumes | |
Nabeel et al. | Privacy-Preserving Fine-Grained Access Control in Public Clouds. | |
CN108494724A (en) | Cloud storage encryption system based on more authorized organization's encryption attribute algorithms and method | |
US8738531B1 (en) | Cryptographic distributed storage system and method | |
US7970135B1 (en) | Method for the secure, distributed generation of an encryption key | |
Anjali et al. | Design and implementation of secure cloud storage system using hybrid cryptography algorithms with role based access control model | |
Wagle | Comparative study of privacy preservation and access control of cloud data | |
Divya et al. | Secure Data Sharing in Cloud Environment Using Multi Authority Attribute Based Encryption | |
GUNWANT | A Secure and Verifiable Big Data Access Control System in Cloud For Doctor of Philosophy in Computer Science and Engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TECSEC, INC., VIRGINIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHEIDT, EDWARD M.;DOMANGUE, ERSIN;REEL/FRAME:017964/0325 Effective date: 20060622 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |