Secure data parser method and system
Abstract
A method for ensuring a transmission of data blocks in a data stream, the method comprising: encrypting each block of data in the data stream with an encryption key; distribute portions of the encryption key in at least two share headers; distributing data units of the encrypted data blocks in at least two data shares, in which each of the at least two data shares contains a substantially random distribution of a respective subset of the data units; and transmit the at least two data shares and the at least two share headers to a remote location through at least one communication path, whereby the data flow can be restored from at least two data shares from the at least two data shares and at least two share headings of the at least two share headings.

Term
0.2 yearsto projected expiry
Projected expiry 20 November 2026, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
15 claims: 1 independent, 14 dependent
- 1ES 2 658 097 T3 REIVINDICACIONES 1. Un método para asegurar una transmisión de bloques de datos en un flujo de datos, comprendiendo el método:encriptar cada bloque de datos en el flujo de datos con una clave de encriptación;distribuir porciones de la clave de encriptación en al menos dos encabezamientos de compartición;distribuir unidades de datos de los bloques de datos encriptados en al menos dos comparticiones de datos, en el que cada una de las al menos dos comparticiones de datos contiene una distribución sustancialmente aleatoria de un respectivo subconjunto de las unidades de datos;y transmitir las al menos dos comparticiones de datos y los al menos dos encabezamientos de compartición a una localización remota a través de al menos una ruta de comunicaciones, mediante la cual el flujo de datos puede restaurarse de al menos dos comparticiones de datos de las al menos dos comparticiones de datos y de al menos dos encabezamientos de compartición de los al menos dos encabezamientos de compartición.
- 2El método de la reivindicación 1, que comprende adicionalmente:generar información de integridad para cada bloque de datos encriptados en el flujo de datos;y transmitir la información de integridad a la localización remota.
- 3El método de la reivindicación 2, en el que la información de integridad se transmite con las al menos dos comparticiones de datos.
- 4El método de la reivindicación 2, en el que la información de integridad se selecciona a partir del grupo que consiste en un troceo, una firma de MAC y una firma digital.
- 5El método de la reivindicación 1, en el que distribuir porciones de la clave de encriptación comprende distribuir porciones de la clave de encriptación usando un algoritmo de compartición secreto.
- 6El método de la reivindicación 5, en el que el algoritmo de compartición secreto se selecciona a partir del grupo que consiste en Shamir y Blakely.
- 7El método de la reivindicación 1, en el que transmitir las al menos dos comparticiones de datos y los al menos dos encabezamientos de compartición comprende transmitir las al menos dos comparticiones de datos y los al menos dos encabezamientos de compartición en una única ruta de comunicaciones en una transmisión en serie.
- 8El método de la reivindicación 1, en el que transmitir las al menos dos comparticiones de datos y los al menos dos encabezamientos de compartición comprende transmitir las al menos dos comparticiones de datos y los al menos dos encabezamientos de compartición a través de múltiples rutas de comunicaciones en paralelo.
- 9El método de la reivindicación 1, en el que la transmisión se realiza usando una aplicación de compartición de ficheros.
- 10El método de la reivindicación 1, en el que la transmisión se realiza usando una aplicación de voto o encuesta.
- 11El método de la reivindicación 1, en el que la transmisión se realiza usando una aplicación de voz sobre IP (VoIP).
- 12El método de la reivindicación 1, en el que los bloques de datos se seleccionan a partir del grupo que consiste en paquetes de datos de red, paquetes de voz de red y bloques de datos de sistema de ficheros.
- 13El método de la reivindicación 1, que comprende adicionalmente:anexar información de redundancia a las al menos dos comparticiones de datos;y transmitir la información de redundancia a la localización remota.
- 14El método de la reivindicación 1, que comprende adicionalmente encriptar la clave de encriptación con una clave de grupo de trabajo antes de distribuir la clave de encriptación.
- 15El método de la reivindicación 14, en el que encriptar la clave de encriptación con la clave de grupo de trabajo comprende encriptar la clave de encriptación usando una función de compresión de AES.
Independent claims15
603 paragraphs in 35 sections, as filed
ES 2 658 097 T3
DESCRIPTION
Safe data analysis method and system
Field of the invention
The present invention relates generally to a system for securing data from unauthorized access or use.
Background of the invention
In today's society, individuals and businesses conduct an increasing amount of activities on and through computer systems. These computer systems, including proprietary and non-proprietary computer networks, often store, archive, and transmit all types of sensitive information. Therefore, there is a growing need to secure data stored and transmitted through these systems that cannot be read or otherwise compromised.
A common solution for securing computer systems is to provide login and password functionality. However, password management has proven to be quite expensive with a high percentage of calls to technical support related to password problems. In addition, passwords provide little security in that, in general, they are stored in a file susceptible to inappropriate access, through, for example, brute force attacks.
Another solution for securing computer systems is to provide cryptographic infrastructures. Cryptography, in general, refers to protecting data by transforming or encrypting it into an unreadable format. Only those who possess the key or keys for the encryption can decrypt the data in a usable format. Cryptography is used to identify users, eg authentication, to allow access privileges, eg authorization, to create certificates and digital signatures, and the like. A known cryptography system is a public key system that uses two keys, a public key known to all and a private key known only to the individual or business owner thereof. In general, data encrypted with one key is decrypted with the other, and neither key is recreated from the other.
Unfortunately, even earlier typical public key cryptographic systems still rely heavily on the user for security. For example, cryptographic systems issue the private key to the user, for example through the user's browser. The unsophisticated users then generally store the private key on a hard drive accessible to others via an open computer system, such as, for example, the Internet. On the other hand, users can choose poor names for files that contain their private key, such as, for example, key. The result of the above and other acts is to allow the key or keys to be compromised.
In addition to the above compromises, a user can record their private key on a computer system configured with a backup or file system, potentially resulting in copies of the private key that travel across multiple computer storage devices or other systems. This security breach is often referred to as "key migration." Similar to key migration, many applications provide access to the user's private key through, at most, simple login and password access. As mentioned above, login and password access often does not provide adequate security.
One solution to increase the security of older cryptographic systems is to include biometrics as part of authentication or authorization. Biometries generally include measurable physical characteristics, such as, for example, fingerprints or voice that can be verified by an automated system, such as, pattern matching or recognition of fingerprint patterns or voice patterns. In such systems, a user's biometrics and / or keys can be stored on mobile computing devices, such as, for example, a smart card, laptop, personal digital assistant, or mobile phone, thus allowing the biometrics or keys are usable in a mobile environment.
The previous mobile biometric cryptographic system still suffers from a variety of disadvantages. For example, the mobile user may lose or break the smart card or portable computing device, thereby completely interrupting their access to potentially important data. Alternatively, a malicious person can steal the mobile user's smart card or portable computing device and use it to effectively steal the mobile user's digital credentials. On the other hand, the portable computing device can be connected to an open system, such as the internet, and, like passwords, the file where the biometrics is stored can be susceptible to compromise through lack of attention to the user's security. malicious or security intruders.
ES 2 658 097 T3
Document US 2004/0049687 refers to a method which comprises generating a session master key and encrypting data, separating the encrypted data into four shares according to the session master key pattern, separating the session master key and appending the key data to the encrypted parsed data, and encrypt each share and store the encryption keys in different locations of the encrypted data shares.
The document Secured storage using SecureParsertm by Schnitzer et al., Proceedings of the 2005 ACM Workshop on storage security and survivability, New York, January 1, 2005, ISBN: 978-1-5993-233-4 refers to an approach to cryptographic data division, in which the input data is randomly divided at the bit level into multiple shares which can then be stored in separate locations or transmitted over different communication channels. The technology itself is a form of unencrypted encryption and uses an encryption algorithm as its main security component, in which the concept of using shares forms the "key."
Summary of the invention
Based on the foregoing, there is a need to provide a cryptographic system whose security is user independent while still supporting mobile users. The above objects are achieved by the claimed features. The invention is defined in the claims.
Accordingly, one aspect of the present invention is to provide a method for securing virtually any type of data from unauthorized access or use. The method comprises one or more steps of analyzing, dividing and / or separating the data to be secured into two or more parts or portions. The method also comprises encrypting the data to be secured.
The encryption of the data can be done before or after the first analysis, division and / or separation of the data. Furthermore, the encryption step can be repeated for one or more portions of the data. Similarly, the analysis, division and / or separation steps can be repeated for one or more portions of the data. The method also optionally comprises storing the analyzed, divided and / or separated data that has been encrypted at one location or at multiple locations.
This method also optionally comprises reconstituting or reassembling the secured data in its original form for authorized access or use. This method can be incorporated into the operations of any computer, server, engine or the like, which can execute the desired steps of the method.
Another aspect of the present invention provides a system for securing virtually any type of data from unauthorized access or use. This system comprises a data division module, a cryptographic management module, and, optionally, a data assembly module. The system may further comprise, in one embodiment, one or more data storage facilities where secure data can be stored.
Accordingly, one aspect of the invention is to provide a secure server, or trust engine, that has server-centric keys, or in other words, to store cryptographic keys and user authentication data on a server. According to this embodiment, a user accesses the trust engine to perform authentication and cryptographic functions, such as, but not limited to, for example, authentication, authorization, digital signature and generation, storage and retrieval of certificates, encryption, actions of notary type and type of legal power and the like.
Another aspect of the invention is to provide a trusted or trusted authentication process. In addition, after positive authentication in a reliable manner, a wide number of different actions can be taken, from providing cryptographic technology, to system or device authorization and access, to allow use or control of one or a large number of electronic devices.
Another aspect of the invention is to provide cryptographic keys and authentication data in an environment where they are not lost, stolen or compromised, advantageously avoiding a need to reissue and manage new keys and authentication data. In accordance with another aspect of the invention, the trust engine allows a user to use a key pair for multiple activities, dispatchers, and / or authentication requests. According to yet another aspect of the invention, the trust engine performs at least one stage of cryptographic processing, such as, but not limited to, encrypting, authenticating or signing on the server side, thus allowing clients or users to have only minimal computing resources.
In accordance with yet another aspect of the invention, the trust engine includes one or multiple repositories for storing portions of each cryptographic key and authentication data. The slices are created through a data splitting process that prohibits reconstruction without a predetermined slice from more than one location in a repository or from multiple repositories. According to another embodiment, the multiple repositories may be geographically remote such that a rogue employee or a system
ES 2 658 097 T3 otherwise compromised in a repository will not provide access to a user's key or authentication data.
According to yet another embodiment, the authentication process advantageously allows the trust engine to process multiple authentication activities in parallel. According to yet another embodiment, the trust engine can advantageously track failed access attempts and thus limit the number of times malicious intruders can attempt to sabotage the system.
According to yet another embodiment, the trust engine can include multiple instances where each trust engine can predict and share the processing loads with the others. According to yet another embodiment, the trust engine may include a redundancy module to interrogate a plurality of authentication results to ensure that more than one system authenticates the user.
Therefore, one aspect of the invention includes a secure cryptographic system, which can be remotely accessible, for storing data of any type, including, but not limited to, a plurality of private cryptographic keys to be associated with a plurality of users. The cryptographic system associates each of the plurality of users with one or more different keys of the plurality of private cryptographic keys and performs cryptographic functions for each user using the one or more different associated keys without releasing the plurality of private cryptographic keys to the users. . The cryptographic system comprises a depository system having at least one server that stores the data to be secured, such as a plurality of private cryptographic keys and a plurality of registration authentication data. Each of the enrollment authentication data identifies one of multiple users and each of the multiple users is associated with one or more different keys from the plurality of private cryptographic keys. The cryptographic system may also comprise an authentication engine that compares authentication data received by one of the multiple users to registration authentication data corresponding to the one of multiple users and received from the depositary system, thereby reducing a result of authentication. The cryptographic system can also comprise a cryptographic engine that, when the authentication result indicates proper identification of the one of the multiple users, performs cryptographic functions on behalf of the one of the multiple users using the one or more different associated keys received from the system of depositary. The cryptographic system may also comprise a transaction engine connected to route data from the multiple users to the escrow server system, the authentication engine, and the cryptographic engine.
Another aspect of the invention includes a secure cryptographic system that is optionally remotely accessible. The cryptographic system comprises a depository system that has at least one server that stores at least one private key and any other data, such as, but not limited to, a plurality of registration authentication data, in which each of the data Enrollment authentication identifies one of possible multiple users. The cryptographic system may optionally also comprise an authentication engine that compares authentication data received by users to enrollment authentication data corresponding to the user and received from the repository system, thereby producing an authentication result. The cryptographic system also comprises a cryptographic engine that, when the authentication result indicates appropriate identification of the user, performs cryptographic functions on behalf of the user using at least said private key, which can be received from the depository system. The cryptographic system may optionally also comprise a connected transaction engine to route data from users to other engines or systems such as, but not limited to, the escrow server system, the authentication engine, and the cryptographic engine.
Another aspect of the invention includes a method of facilitating cryptographic functions. The method comprises associating a multi-user user with one or more keys from a plurality of private cryptographic keys stored in a secure location, such as a secure server. The method also comprises receiving authentication data from the user, and comparing the authentication data to authentication data corresponding to the user, thereby verifying the identity of the user. The method also comprises using the one or more keys to perform cryptographic functions without releasing the one or more keys to the user.
Another aspect of the invention includes an authentication system for uniquely identifying a user through the secure storage of the user's enrollment authentication data. The authentication system comprises one or more data storage facilities, wherein each data storage facility includes a second computer-accessible storage medium that stores at least one of the enrollment authentication data portions. The authentication system also comprises an authentication engine that communicates with the data storage facility or facilities. The authentication engine comprises a data splitting module that operates on the enrollment authentication data to create chunks, a data assembly module that processes the chunks of at least one of the data storage facilities to assemble the data from enrollment authentication, and a data comparer module that receives current authentication data from a user and compares the current authentication data with the assembled enrollment authentication data to determine whether the user has been uniquely identified.
ES 2 658 097 T3
Another aspect of the invention includes a cryptographic system. The cryptographic system comprises one or more data storage facilities, wherein each data storage facility includes a second computer-accessible storage medium that stores at least a portion of one or more cryptographic keys. The cryptographic system also comprises a cryptographic engine that communicates with the data storage facilities. The cryptographic engine also comprises a data division module that operates on the cryptographic keys to create chunks, a data assembly module that processes the chunks from at least one of the data storage facilities to assemble the cryptographic keys, and a cryptographic management module that receives the assembled cryptographic keys and performs cryptographic functions with them.
Another aspect of the invention includes a method of storing any type of data, including, but not limited to, authentication data at geographically remote secure data storage facilities thereby protecting the data against composition of any individual data storage facility. . The method comprises receiving data in a trust engine, combining data with a first substantially random value in the trust engine to form a first combined value, and combining data with a second substantially random value to form a second combined value. The method comprises creating a first match of the first substantially random value with the second combined value, creating a second match of the first substantially random value with the second substantially random value, and storing the first match in a first secure data storage facility. The method comprises storing the second pairing in a second secure data storage facility remote from the first secure data storage facility.
Another aspect of the invention includes a method of storing any type of data, including, but not limited to, authentication data which comprises receiving data, combining the data with a first set of bits to form a second set of bits, and combining the data. data with a third set of bits to form a fourth set of bits. The method also comprises creating a first match of the first set of bits with the third set of bits. The method also comprises creating a second match of the first set of bits with the fourth set of bits, and storing one of the first and second matches on a first computer accessible storage medium. The method also comprises storing the other of the first and second matches on a second computer accessible storage medium.
Another aspect of the invention includes a method of storing cryptographic data in geographically remote secure data storage facilities thereby protecting the cryptographic data from compromise of any individual data storage facility. The method comprises receiving cryptographic data in a trust engine, combining cryptographic data with a first substantially random value in the trust engine to form a first combined value, and combining cryptographic data with a second substantially random value to form a second value. combined. The method also comprises creating a first match of the first substantially random value with the second combined value, creating a second match of the first substantially random value with the second substantially random value, and storing the first match in a first secure data storage facility. The method also comprises storing the second pairing in a second secure data storage facility remote from the first secure data storage facility.
Another aspect of the invention includes a cryptographic data storage method comprising receiving authentication data and combining the cryptographic data with a first set of bits to form a second set of bits. The method also comprises combining the cryptographic data with a third set of bits to form a fourth set of bits, creating a first match of the first set of bits with the third set of bits, and creating a second match of the first set of bits with the fourth set of bits. The method also comprises storing one of the first and second matches on a first computer accessible storage medium, and storing the other of the first and second matches on a second computer accessible storage medium.
Another aspect of the invention includes a method of handling sensitive data of any type or form in a cryptographic system, in which the sensitive data exists in a usable form only during actions by authorized users, using the sensitive data. The method also comprises receiving in a software module substantially scrambled or encrypted sensitive data from a first computer accessible storage medium, and receiving in the software module substantially randomized or encrypted data that may or may not be sensitive data, from one or more other second computer accessible storage medium. The method also comprises processing the pre-encrypted substantially randomized sensitive data, which may or may not be sensitive data, in the software module to assemble the sensitive data and employing the sensitive data in a software engine to perform an action. The action includes, but is not limited to, one of authenticating a user and performing a cryptographic function.
Another aspect of the invention includes a secure authentication system. The secure authentication system comprises a plurality of authentication engines. Each authentication engine receives enrollment authentication data designed to uniquely identify a user to a degree of certainty. Each
ES 2 658 097 T3 authentication engine receives current authentication data to compare Enrollment authentication data, and each authentication engine determines an authentication result. The secure authentication system also comprises a redundancy system that receives the authentication result from at least two of the authentication engines and determines whether the user has been uniquely identified.
Another aspect of the invention includes a secure data-in-motion system whereby data can be transmitted in different portions that are secured in accordance with the present invention such that any portion that was compromised should not provide enough data to restore the data. originals. This can apply to any data transmission, be it wired, wireless or physical.
Another aspect of the invention includes the integration of the secure data analyzer of the present invention into any suitable system where data is stored or communicated. For example, email system, RAID systems, video broadcast systems, database systems or any other suitable system that may have the secure data analyzer built in at any suitable level.
Another aspect of the invention includes using any suitable splitting and analysis algorithm to generate data shares. Be it random, pseudo-random, deterministic, or any combination thereof that can be used to analyze and divide data.
Brief description of the drawings
The present invention is described in more detail below in conjunction with the accompanying drawings, which are intended to illustrate and not to limit the invention, and in which:
Figure 1 illustrates a block diagram of a cryptographic system, in accordance with aspects of an embodiment of the invention;
Figure 2 illustrates a block diagram of the trust engine of Figure 1, in accordance with aspects of one embodiment of the invention;
Figure 3 illustrates a block diagram of the transaction engine of Figure 2, in accordance with aspects of one embodiment of the invention;
Figure 4 illustrates a block diagram of the depository of Figure 2, in accordance with aspects of one embodiment of the invention;
Figure 5 illustrates a block diagram of the authentication engine of Figure 2, in accordance with aspects of one embodiment of the invention;
Figure 6 illustrates a block diagram of the cryptographic engine of Figure 2, in accordance with aspects of one embodiment of the invention;
Figure 7 illustrates a block diagram of a repository system, in accordance with aspects of another embodiment of the invention;
Figure 8 illustrates a flow chart of a data division process in accordance with aspects of an embodiment of the invention;
Figure 9, Panel A illustrates a data flow of an enrollment process in accordance with aspects of an embodiment of the invention;
Figure 9, Panel B illustrates a flow diagram of an interoperability process in accordance with aspects of an embodiment of the invention;
Figure 10 illustrates a data flow of an authentication process in accordance with aspects of an embodiment of the invention;
Figure 11 illustrates a data flow of a signature process in accordance with aspects of an embodiment of the invention;
Figure 12 illustrates a data flow and encryption / decryption process in accordance with aspects and yet another embodiment of the invention;
Figure 13 illustrates a simplified block diagram of a trust engine system in accordance with aspects of another embodiment of the invention;
Figure 14 illustrates a simplified block diagram of a trust engine system in accordance with aspects of another embodiment of the invention;
Figure 15 illustrates a block diagram of the redundancy module of Figure 14, in accordance with aspects of one embodiment of the invention;
Figure 16 illustrates a process for evaluating authentications in accordance with one aspect of the invention;
Figure 17 illustrates a process for assigning a value to an authentication in accordance with one aspect as shown in Figure 16 of the invention;
Figure 18 illustrates a process for performing trust arbitration in one aspect of the invention as shown in Figure 17; Y
Figure 19 illustrates a sample transaction between a user and a dealer in accordance with aspects of an embodiment of the invention where an initial web-based contact leads to a sales contract signed by both parties.
ES 2 658 097 T3
Figure 20 illustrates a sample user system with a cryptographic service provider module that provides security functions to a user system.
Figure 21 illustrates a process for analyzing, dividing and / or separating data with encryption and storing the encryption master key with the data.
Figure 22 illustrates a process for analyzing, dividing and / or separating data with encryption and storing the master encryption key separately from the data.
Figure 23 illustrates the intermediate key process for analyzing, dividing and / or separating data with encryption and storing the encryption master key with the data.
Figure 24 illustrates the intermediate key process for analyzing, dividing and / or separating data with encryption and storing the encryption master key separately from the data.
Figure 25 illustrates the use of the cryptographic methods and systems of the present invention with a small working group.
Figure 26 is a block diagram of an illustrative physical token security system employing the secure data analyzer in accordance with one embodiment of the present invention.
Figure 27 is a block diagram of an illustrative arrangement in which the secure data analyzer is integrated into a system in accordance with one embodiment of the present invention.
Figure 28 is a block diagram of an illustrative data-in-motion system in accordance with one embodiment of the present invention.
Figure 29 is a block diagram of another illustrative moving data system in accordance with one embodiment of the present invention.
Figures 30-32 are block diagrams of an illustrative system having the secure data analyzer integrated in accordance with one embodiment of the present invention.
Figure 33 is a process flow diagram of an illustrative process for analyzing and dividing data in accordance with one embodiment of the present invention.
Figure 34 is a process flow diagram of an illustrative process for restoring portions of data to original data in accordance with one embodiment of the present invention.
Figure 35 is a process flow diagram of an illustrative process for dividing data at the bit level in accordance with one embodiment of the present invention.
Figure 36 is a process flow diagram of illustrative steps and features, which may be used in any suitable combination, with any suitable addition, deletion, or modification in accordance with one embodiment of the present invention.
Figure 37 is a process flow diagram of illustrative steps and features that may be used in any suitable combination, with any suitable addition, deletion, or modification in accordance with one embodiment of the present invention.
Figure 38 is a simplified block diagram of the storage of the key and data components in the shares, which can be used in any suitable combination, with any suitable addition, deletion or modification in accordance with one embodiment of the present invention.
Figure 39 is a simplified block diagram of the storage of the key and data components in the shares using a workgroup key, which can be used in any suitable combination, with any suitable addition, deletion or modification in accordance with one embodiment of the present invention.
Figures 40A and 40B are simplified and illustrative process flow diagrams for the generation of headings and data division for data in motion, which may be used in any suitable combination, with any suitable addition, deletion or modification in accordance with one embodiment of the present invention.
Figure 41 is a simplified block diagram of an illustrative sharing format, which can be used in any suitable combination, with any suitable addition, deletion or modification in accordance with one embodiment of the present invention.
Detailed description of the invention
One aspect of the present invention is to provide a cryptographic system where one or more secure servers, or a trust engine, store cryptographic keys and user authentication data. Users access the functionality of conventional cryptographic systems through network access to the trust engine, however the trust engine does not release the actual keys and other authentication data and therefore the keys and data remain insurance. This server-centric storage of keys and authentication data provides user-independent security, portability, availability, and simplicity.
Since users can be sure of, or trust, the cryptographic system to perform user and document authentication and other cryptographic functions, a wide variety of functionalities can be incorporated into the system. For example, the trust engine provider may ensure against repudiation of the agreement by, for example, authenticating the agreement participants, digitally signing the agreement on behalf of or for the participants, and storing a record of the agreement digitally signed by each competitor. In addition, the cryptographic system can monitor agreements and determine to apply varying degrees of authentication, based on, for example, price, user, distributor, geographic location, place of use or the like.
ES 2 658 097 T3
To facilitate a complete understanding of the invention, the remainder of the detailed description describes the invention with reference to the figures, in which reference is made to like elements with the same numerals throughout this document.
Figure 1 illustrates a block diagram of a cryptographic system 100, in accordance with aspects of one embodiment of the invention. As shown in Figure 1, the cryptographic system 100 includes a user system 105, a trust engine 110, a certificate authority 115, and a distributor system 120, which communicates over a communication link 125.
In accordance with one embodiment of the invention, user system 105 comprises a conventional general purpose computer having one or more microprocessors, such as, for example, an Intel-based processor. Furthermore, the user system 105 includes an appropriate operating system, such as, for example, an operating system that may include graphics or windows, such as Windows, Unix, Linux, or the like. As shown in Figure 1, the user system 105 may include a biometric device 107. The biometric device 107 can advantageously capture a biometrics of the user and transfer the captured biometrics to the trust engine 110. In accordance with one embodiment of the invention, the biometric device may advantageously comprise a device having attributes and characteristics similar to those disclosed in United States Patent Application No. 08 / 926,277, filed September 5, 1997, entitled "RELIEF OBJECT IMAGE GENERATOR," United States Patent Application No. 09 / 558,634, filed April 26, 2000, entitled "IMAGINE DEVICE FOR A RELIEF OBJECT AND SYSTEM AND METHOD OF USING THE IMAGE DEVICE", United States Patent Application No. 09 / 435,011, filed November 5, 1999, entitled "RELIEF OBJECT SENSOR ADAPTER", and Application US Patent No. 09 / 477,943, filed January 5, 2000, entitled "PLANAR OPTICAL IMAGE SENSOR AND SYSTEM FOR GENERATING AN ELECTRONIC IMAGE OF A RELIEF OBJECT FOR FINGERPRINT READING", all of which are owned by the current transferee.
In addition, user system 105 may be connected to communication link 125 through a conventional service provider, such as, for example, a dial-up, digital subscriber line (DSL), cable modem, fiber connection, or the like. In accordance with another embodiment, user system 105 connects to communication link 125 through network connectivity such as, for example, a local or wide area network. According to one embodiment, the operating system includes a TCP / iP stack that handles all inbound and outbound message traffic passed through communication link 125.
Although user system 105 is disclosed with reference to the above embodiments, the invention is not intended to be limited in this way. Rather, one skilled in the art will recognize from the disclosure herein a wide number of alternative embodiments of user system 105, including almost any computing device that can send or receive information from another computing system. For example, user system 105 may include, but is not limited to, a computer workstation, an interactive television, an interactive kiosk, a personal mobile computing device, such as a digital assistant, mobile phone, laptop, or the like, a wireless communications device, a smart card, an embedded computing device, or the like, that can interact with the communication link 125. In such alternative systems, the operating systems will differ in the same way and will be tailored for the particular device. However, in accordance with one embodiment, operating systems continue to advantageously provide the appropriate communication protocols necessary to establish communication with communication link 125.
Figure 1 illustrates the trust engine 110. According to one embodiment, the trust engine 110 comprises one or more secure servers for accessing and storing sensitive information, which may be in any type or form of data, such as, but not limited to, limitation of text, audio, video, user authentication data and public and private cryptographic keys. According to one embodiment, the authentication data includes data designed to uniquely identify a user of the cryptographic system 100. For example, the authentication data may include a user identification number, one or more biometrics, and a series of questions and answers generated by the trust engine 110 or the user, but initially answered by the user at enrollment. The above questions may include demographic data, such as place of birth, address, anniversaries, or similar, personal data, such as mother's maiden name, favorite ice cream, or the like, or other data designed to uniquely identify the user. . Trust engine 110 compares user authentication data associated with a current transaction to authentication data provided at a previous time, such as, for example, during enrollment. The trust engine 110 may advantageously require the user to produce the authentication data at the time of each transaction, or, the trust engine 110 may advantageously allow the user to periodically produce authentication data, such as at the beginning of a chain of authentication. transactions or logging into a particular dealer website.
According to the embodiment where the user produces biometric data, the user provides a physical feature, such as, but not limited to, facial scan, hand scan, ear scan, iris scan, retinal scan, vascular pattern, DNA, a fingerprint, handwriting or speech, to the biometric device 107. The
ES 2 658 097 T3 biometric device advantageously produces an electronic, or biometric, pattern of the physical characteristic. The electronic pattern is transferred through user system 105 to trust engine 110 for either enrollment or authentication purposes.
Once the user produces the appropriate authentication data and the trust engine 110 determines a positive match between that authentication data (current authentication data) and the authentication data provided at enrollment (enrollment authentication data ), the trust engine 110 provides the user with full cryptographic functionality. For example, the appropriately authenticated user may advantageously employ the trust engine 110 to perform hash, digital signing, encryption and decryption (often referred to together as encryption only), creation or distribution of digital certificates, and the like. However, the private cryptographic keys used in the cryptographic functions will not be available outside of the trust engine 110, thus ensuring the integrity of the cryptographic keys.
According to one embodiment, the trust engine 110 generates and stores cryptographic keys. According to another embodiment, at least one cryptographic key is associated with each user. Additionally, when cryptographic keys include public key technology, each private key associated with a user is generated by, and not released from, trust engine 110. Therefore, as long as the user has access to the trust engine 110, the user can perform cryptographic functions using his private or public key. Such remote access advantageously provides users to remain fully mobile and access cryptographic functionality through virtually any internet connection, such as cell phones and satellites, kiosks, laptops, hotel rooms, and the like.
According to another embodiment, trust engine 110 performs cryptographic functionality using a key pair generated for trust engine 110. According to this embodiment, the trust engine 110 first authenticates the user, and after the user has appropriately produced authentication data that matches the enrollment authentication data, the trust engine 110 uses its own pair of cryptographic keys to perform cryptographic functions on behalf of the authenticated user.
One skilled in the art will recognize from the disclosure of this document that cryptographic keys may advantageously include some or all of the symmetric keys, public keys, and private keys. Furthermore, one skilled in the art will recognize from the disclosure herein that the above keys can be implemented with a wide number of algorithms available from commercial technologies, such as, for example, RSA, ELGAMAL, or the like.
Figure 1 also illustrates certification authority 115. According to one embodiment, certification authority 115 may advantageously comprise a trusted third-party organization or company that issues digital certificates, such as, for example, VeriSign, Baltimore, Entrust, or Similar. The trust engine 110 can advantageously transmit requests for digital certificates, via one or more conventional digital certificate protocols, such as, for example, PKCS10, to the certificate authority 115. In response, the certificate authority 115 will issue a digital certificate in one of a number of different protocols, such as, for example, PKCS7. According to one embodiment of the invention, the trust engine 110 requests digital certificates from several or all of the important certificate authorities 115 so that the trust engine 110 has access to a digital certificate that corresponds to the certificate standard of any requesting party.
According to another embodiment, the trust engine 110 internally performs certificate issuance. In this embodiment, the trust engine 110 can access a certificate system to generate certificates and / or can internally generate certificates when requested, such as, for example, at key generation time or in the requested certificate standard. at the time of application. The trust engine 110 will be disclosed in more detail below.
Figure 1 also illustrates the dispatcher system 120. According to one embodiment, the dispatcher system 120 advantageously comprises a web server. Typical web servers generally serve content over the internet using one of several internet markup languages or document formatting standards, such as Hyper Text Markup Language (HTML) or Extensible Markup Language (XML). The web server accepts requests from browsers such as Netscape and Internet Explorer and then returns the appropriate electronic documents. A number of server-side or client-side technologies can be used to increase the power of the web server beyond its ability to deliver conventional electronic documents. For example, these technologies may include Common Gateway Interface (CGI) scripts, Secure Sockets Layer (SSL) security, and Active Server Pages (ASP). Distributor system 120 may advantageously provide electronic content related to business, personal, educational, or other transactions.
ES 2 658 097 T3
Although the dispenser system 120 is disclosed with reference to the above embodiments, the invention is not intended to be limited in this way. Rather, one skilled in the art will recognize from the disclosure herein that dispenser system 120 may advantageously comprise any of the devices described with reference to user system 105 or combinations thereof.
Figure 1 also illustrates the communication link 125 that connects the user system 105, the trust engine 110, the certification authority 115, and the distributor system 120. According to one embodiment, the communication link 125 preferably comprises the internet. . The Internet, as used throughout this disclosure, is a global network of computers. The fabric of the internet, which is well known to those skilled in the art, includes a backbone with networks branching off from the backbone. These branches, in turn, have networks that branch from them, and so on. Routers move information packets between network levels, and then from network to network, until the packet reaches the proximity of its destination. From the destination, the destination network hosts direct the information packet to the appropriate terminal or node. In an advantageous embodiment, internet routing hubs comprise Domain Name System (DNS) servers using Transmission Control Protocol / Internet Protocol (TCP / IP) as is well known in the art. Routing hubs are connected to one or more other routing switches using high-speed communication links.
A known part of the Internet is the global computer network. The global computer network contains different computers, which store documents that can present graphical and textual information. The computers that provide information on the global computer network are typically called "websites". A website is defined by an Internet address that has an associated electronic page. The website can be identified by a Uniform Resource Locator (URL). In general, an electronic page is a document that organizes the presentation of text, graphic images, audio, video, and so on.
Although communication link 125 is disclosed in terms of its preferred embodiment, one skilled in the art will recognize from the disclosure herein that communication link 125 can include a wide range of interactive communication links. For example, communication link 125 may include interactive television networks, telephone networks, wireless data transmission systems, two-way cable systems, custom private or public computer networks, interactive kiosk networks, ATM machine networks, direct links, satellite or cellular networks and the like.
Figure 2 illustrates a block diagram of the trust engine 110 of Figure 1 in accordance with aspects of one embodiment of the invention. As shown in Figure 2, the trust engine 110 includes a transaction engine 205, a depository 210, an authentication engine 215, and a cryptographic engine 220. In accordance with one embodiment of the invention, the trust engine 110 also includes mass storage 225. As further shown in Figure 2, the transaction engine 205 communicates with the repository 210, the authentication engine 215, and the cryptographic engine 220, along with the mass storage 225. In addition, the repository 210 communicates with the authentication engine 215, crypto engine 220, and mass storage 225. Additionally, authentication engine 215 communicates with crypto engine 220. According to one embodiment of the invention, some or all of the above communications may advantageously comprise the transmission of XML documents to IP addresses corresponding to the receiving device. As mentioned above, XML documents advantageously allow designers to create their own custom document tags, which enable the definition, transmission, validation, and interpretation of data between applications and between organizations. Additionally, some or all of the above communications may include conventional SSL technologies.
According to one embodiment, the transaction engine 205 comprises a data routing device, such as a conventional web server available from Netscape, Microsoft, Apache, or the like. For example, the web server can advantageously receive incoming data from the communication link 125. In accordance with one embodiment of the invention, the incoming data is routed to a front-end security system for the trust engine 110. For example, the front-end security system may advantageously include a firewall, an intrusion detection system that searches for known attack profiles, and / or a virus scanner. After clearing the front end security system, data is received by transaction engine 205 and routed to one of repository 210, authentication engine 215, crypto engine 220, and mass storage 225. In addition, the transaction engine 205 monitors incoming data from the authentication engine 215 and the cryptographic engine 220, and routes the data to particular systems through the communication link 125. For example, the transaction engine 205 may advantageously route data to the user system 105, certification authority 115, or distributor system 120.
According to one embodiment, the data is routed using conventional HTTP routing techniques, such as, for example, using URLs or Uniform Resource Indicators (URLs). URIs are similar to URLs, however, URIs typically indicate the source of files or actions, such as, for example, executables, scripts, and the like. Therefore, in accordance with one embodiment, the user system 105, the certification authority 115, the dispatcher system 120, and the components of the trust engine 210, include
ES 2 658 097 T3 advantageously enough data in the communication URLs or URIs for the transaction engine 205 to properly route data throughout the entire cryptographic system.
Although data routing is disclosed with reference to its preferred embodiment, one skilled in the art will recognize a wide number of possible data routing solutions or strategies. For example, XML or other data packets can advantageously be unpacked and recognized for their format, content, or the like, so that the transaction engine 205 can properly route data through the trust engine 110. Furthermore, one skilled in the art will recognize that data routing can advantageously be adapted to data transfer protocols in accordance with particular network systems, such as, for example, when the communication link 125 comprises a local network.
In accordance with yet another embodiment of the invention, transaction engine 205 includes conventional SSL encryption technologies, such that prior systems can authenticate themselves, and vice versa, with transaction engine 205, during particular communications. As will be used throughout this disclosure, the term “<sup>1</sup>X SSL ”refers to communications where a server, but not necessarily the client, is authenticated by SSL, and the term“ FULL SSL ”refers to communications where the client and server are authenticated by SSL. When the current disclosure uses the term "SSL", the communication may comprise SSL<sup>1</sup>X or TOTAL.
As the transaction engine 205 routes data to the various components of the cryptographic system 100, the transaction engine 205 can advantageously create an audit trail. According to one embodiment, the audit trail includes a record of at least the type and format of data routed by the transaction engine 205 throughout the entire cryptographic system 100. Such audit data can advantageously be stored in mass storage 225.
Figure 2 also illustrates the repository 210. According to one embodiment, the repository 210 comprises one or more storage facilities, such as, for example, a directory server, a database server, or the like. As shown in Figure 2, the repository 210 stores cryptographic keys and enrollment authentication data. The cryptographic keys may advantageously correspond to the trust engine 110 or to the users of the cryptographic system 100, such as the user or reseller. The enrollment authentication data may advantageously include data designed to uniquely identify a user, such as user IDs, passwords, answers to questions, biometric data, or the like. This enrollment authentication data can advantageously be obtained at a user enrollment or at an alternate time later. For example, trust engine 110 may include periodic or other renewal or reissue of enrollment authentication data.
According to one embodiment, the communication from the transaction engine 205 to and from the authentication engine 215 and the cryptographic engine 220 comprises secure communication, such as, for example, conventional SSL technology. Furthermore, as mentioned above, communication data to and from repository 210 can be transferred using URL, URI, HTTP, or XML documents, with any of the foregoing advantageously having data requests and formats embedded therein.
As mentioned above, the repository 210 may advantageously comprise a plurality of secure data storage facilities. In such an embodiment, the secure data storage facilities can be configured such that a security compromise in an individual data storage facility will not compromise the cryptographic keys or authentication data stored therein. For example, according to this embodiment, the cryptographic keys and authentication data are mathematically operated to statistically and substantially randomize the data stored in each data storage facility. According to one embodiment, scrambling the data from an individual data storage facility renders that data indecipherable. Therefore, compromising an individual data storage facility produces only a scrambled indecipherable number and does not compromise the security of any cryptographic key or authentication data as a whole.
Figure 2 also illustrates the trust engine 110 that includes the authentication engine 215. According to one embodiment, the authentication engine 215 comprises a comparer configured to compare data from the transaction engine 205 with data from the repository 210. For For example, during authentication, a user supplies current authentication data to trust engine 110 such that transaction engine 205 receives current authentication data. As mentioned above, the transaction engine 205 recognizes the data requests, preferably at the URL or URI, and routes the authentication data to the authentication engine 215. In addition, after the request, the depositary 210 forwards the data authentication of enrollment that correspond to the user to the authentication engine 215. Therefore, the authentication engine 215 has both the current authentication data and the enrollment authentication data for comparison.
ES 2 658 097 T3
According to one embodiment, the communications to the authentication engine comprise secure communications, such as, for example, SSL technology. Additionally, security may be provided in the components of the trust engine 110, such as, for example, super-encryption using public key technologies. For example, according to one embodiment, the user encrypts the current authentication data with the public key of the authentication engine 215. Furthermore, the repository 210 also encrypts the enrollment authentication data with the public key of the authentication engine 215. In this way, only the private key of the authentication engine can be used to decrypt the transmissions.
As shown in Figure 2, the trust engine 110 also includes the cryptographic engine 220. According to one embodiment, the cryptographic engine comprises a cryptographic handling module, configured to advantageously provide conventional cryptographic functions, such as, for example, public key infrastructure (PKI) functionality. For example, the cryptographic engine 220 can advantageously issue public and private keys to users of the cryptographic system 100. In this way, the cryptographic keys are generated in the cryptographic engine 220 and forwarded to the depositary 210 so that at least the private cryptographic keys are not available outside of the 110 trust engine. In accordance with another embodiment, the cryptographic engine 220 at least scrambles and splits the private cryptographic key data, thereby storing only the scrambled-split data. Similar to the splitting of enrollment authentication data, the splitting process ensures that stored keys are not available outside of the crypto engine 220. According to another embodiment, the functions of the cryptographic engine can be combined with and performed by the authentication engine 215.
According to one embodiment, the communications to and from the cryptographic engine include secure communications, such as SSL technology. In addition, XML documents can be advantageously used to transfer data and / or perform cryptographic function requests.
Figure 2 also illustrates the trust engine 110 having the mass storage 225. As mentioned above, the transaction engine 205 maintains the data corresponding to an audit trail and stores such data in the mass storage 225. Similarly, in accordance with one embodiment of the invention, repository 210 maintains data corresponding to an audit trail and stores such data in mass storage device 225. The repository audit trail data is similar to that of the transaction engine 205 in that the audit trail data comprises a record of the requests received by the repository 210 and the response thereto. Additionally, mass storage 225 can be used to store digital certificates that have a user's public key contained therein.
Although the trust engine 110 is disclosed with reference to its preferred and alternative embodiments, the invention is not intended to be limited in this way. Instead, one of ordinary skill in the art will recognize a wide number of alternatives to the trust engine 110 in the disclosure herein. For example, the trust engine 110, may advantageously perform authentication only, or alternatively, only some or all of the cryptographic functions, such as data encryption and decryption. In accordance with such embodiments, one of the authentication engine 215 and the crypto engine 220 can be advantageously removed, thereby creating a simpler design for the trust engine 110. Furthermore, the cryptographic engine 220 may also communicate with a certificate authority such that the certificate authority is embedded in the trust engine 110. According to yet another embodiment, the trust engine 110 can advantageously perform authentication and one or more cryptographic functions, such as, for example, digital signature.
Figure 3 illustrates a block diagram of the transaction engine 205 of Figure 2, in accordance with aspects of one embodiment of the invention. According to this embodiment, the transaction engine 205 comprises an operating system 305 having a management thread and a listening thread. The operating system 305 may advantageously be similar to those found in conventional high volume servers, such as, for example, web servers available from Apache. The listening thread monitors incoming communication from one of the communication link 125, the authentication engine 215, and the crypto engine 220 for incoming data flow. The management thread recognizes particular data structures of the incoming data stream, such as, for example, the above data structures, thus routing the incoming data to one of the communication link 125, the repository 210, the authentication engine 215, crypto engine 220, or mass storage 225. As shown in Figure 3, incoming and outgoing data can be advantageously secured through, for example, SSL technology.
Figure 4 illustrates a block diagram of the depot 210 of Figure 2 in accordance with aspects of one embodiment of the invention. According to this embodiment, the repository 210 comprises one or more Lightweight Directory Access Protocol (LDAP) servers. LDAP directory servers are available from a wide variety of manufacturers such as Netscape, ISO, and others. Figure 4 also shows that the directory server preferably stores data 405 corresponding to cryptographic keys and data 410 corresponding to enrollment authentication data. According to one embodiment, the repository 210 comprises a single logical memory structure that indexes authentication data and cryptographic key data to a single user ID. The unique logical memory structure preferably includes mechanisms for
ES 2 658 097 T3 ensure a high degree of reliability, or security, in the data stored therein. For example, the physical location of repository 210 may advantageously include a wide number of conventional security measures, such as limited employee access, modem surveillance systems, and the like. In addition to, or instead of, physical security, the computer system or server may advantageously include software solutions to protect stored data. For example, repository 210 can advantageously create and store data 415 that corresponds to an audit trail of actions taken. Furthermore, incoming and outgoing communications can advantageously be encrypted with public key encryption coupled with conventional SSL technologies.
In accordance with another embodiment, repository 210 may comprise distinct and physically separate data storage facilities, as further disclosed with reference to Figure 7.
Figure 5 illustrates a block diagram of the authentication engine 215 of Figure 2 in accordance with aspects of one embodiment of the invention. Similar to the transaction engine 205 of Figure 3, the authentication engine 215 comprises an operating system 505 that has at least one listening thread and one for handling a modified version of a conventional web server, such as, for example, servers web available from Apache. As shown in Figure 5, the authentication engine 215 includes access to at least one private key 510. The private key 510 can be used advantageously, for example, to decrypt data from the transaction engine 205 or the depositary 210, which was encrypted. with a corresponding public key of the authentication engine 215.
Figure 5 also illustrates the authentication engine 215 comprising a comparator 515, a data division module 520, and a data assembly module 525. In accordance with the preferred embodiment of the invention, the comparator 515 includes technology that can compare potentially complex patterns related to previous authentication biometric data. The technology can include hardware, software, or combined solutions for pattern comparisons, such as, for example, those representing fingerprint patterns or voice patterns. Furthermore, according to one embodiment, the comparer 515 of the authentication engine 215 can advantageously compare conventional chunks of documents to present a comparison result. In accordance with one embodiment of the invention, comparator 515 includes applying heuristics 530 to the comparison. Heuristics 530 can advantageously handle circumstances surrounding an authentication attempt, such as, for example, time of day, IP address or subnet mask, purchase profile, email address, processor serial number or ID, or similar.
In addition, the nature of biometric data comparisons can result in varying degrees of confidence that result from matching current biometric authentication data to enrollment data. For example, unlike a traditional password that can return only a positive or negative match, a fingerprint can be determined to be a partial match, for example a 90% match, a 75% match, or a 10% match. , rather than just right or wrong. Other biometric identifiers such as voice print analysis or facial recognition may share this property of probabilistic authentication, rather than absolute authentication.
When working with such probabilistic authentication or in other cases when less than absolutely reliable authentication is considered, it is desirable to apply heuristics 530 to determine that the level of trust in the provided authentication is high enough to authenticate the transaction in progress.
Sometimes it will be the case that the transaction being shipped is a relatively low value transaction where it is acceptable to authenticate at a lower level of trust. This could include a transaction that has a low dollar value associated with it (for example, a $ 10 purchase) or a low-risk transaction (for example, admission to a members-only website).
Conversely, to authenticate other transactions, it may be desirable to require a high degree of trust in the authentication before allowing the transaction to proceed. Such transactions can include high dollar value transactions (for example, signing a multi-million dollar supply contract) or high risk transaction if inappropriate authentication occurs (for example, remotely logging into a government computer).
The use of heuristics 530 in combination with trust levels and transaction values can be used as will be described below to enable the comparer to provide a dynamic context sensitive authentication system.
In accordance with another embodiment of the invention, the comparer 515 can advantageously track authentication attempts for a particular transaction. For example, when a transaction fails, the trust engine 110 may request the user to re-enter their current authentication data. The comparer 515 of the authentication engine 215 may advantageously employ an attempt limiter 535 to limit the number of authentication attempts, thereby prohibiting brute force attempts to spoof user authentication data. According to one embodiment, the attempt limiter 535 comprises a software module that monitors repeated authentication attempt transactions and, for example, limits authentication attempts
ES 2 658 097 T3 for a transaction given to three. Therefore, the Attempt limiter 535 will limit an automated Attempt to spoof an individual's authentication data to, for example, just three "chances." After three failures, the attempt limiter 535 can advantageously deny further authentication attempts. Such a denial can be advantageously implemented through, for example, the comparer 515 returning a negative result regardless of the current authentication data being transmitted. On the other hand, the transaction engine 205 can advantageously block any further authentication attempts pertaining to a transaction in which three attempts have previously failed.
The authentication engine 215 also includes the data division module 520 and the data assembly module 525. The data division module 520 advantageously comprises a software, hardware, or combination module that has the ability to operate mathematically in various data to substantially randomize and slice the data. According to one embodiment, the original data is not recreated from an individual portion. The data assembly module 525 advantageously comprises a software, hardware, or combination module configured to operate mathematically on the above substantially randomized portions, such that the combination thereof provides the original decrypted data. According to one embodiment, the authentication engine 215 employs the data division module 520 to scramble and divide the enrollment authentication data into portions, and employs the data assembly module 525 to reassemble the portions into authentication data. Wearable inscription.
Figure 6 illustrates a block diagram of the cryptographic engine 220 of the trust engine 200 of Figure 2 in accordance with aspects of one embodiment of the invention. Similar to the transaction engine 205 of Figure 3, the cryptographic engine 220 comprises an operating system 605 that has at least one listening thread and one handling thread of a modified version of a conventional web server, such as, for example, web servers. available from Apache. As shown in Figure 6, the cryptographic engine 220 comprises a data division module 610 and a data assembly module 620 that function similar to those of Figure 5. However, according to one embodiment, the data division 610 and data assembly module 620 process cryptographic key data, unlike previous enrollment authentication data. However, one skilled in the art will recognize from the disclosure herein that data division module 910 and data division module 620 can be combined with those of authentication engine 215.
The cryptographic engine 220 also comprises a cryptographic management module 625 configured to perform one, some, or all of a large number of cryptographic functions. According to one embodiment, the cryptographic management module 625 may comprise software or program modules, hardware, or both. According to another embodiment, the cryptographic management module 625 can perform data comparisons, data analysis, data division, data separation, data hashing, data encryption or decryption, verification or creation of digital signature, certificate generation. digital, storage or requests, cryptographic key generation, or the like. Furthermore, one skilled in the art will recognize from the disclosure of this document that the cryptographic management module 825 may advantageously comprise a public key infrastructure, such as Fairly Good Privacy (PGP), an RSA-based public key system, or a large number of alternative key management systems. In addition, the cryptographic management module 625 can perform public key encryption, symmetric key encryption, or both. In addition to the foregoing, the cryptographic management module 625 may include one or more computer programs or modules, hardware, or both, to implement seamless, transparent interoperability functions.
One skilled in the art will recognize from the disclosure of this document that cryptographic functionality can include a wide variety of functions generally related to cryptographic key management systems.
Figure 7 illustrates a simplified block diagram of a depot system 700 in accordance with aspects of one embodiment of the invention. As shown in Figure 7, the depository system 700 advantageously comprises multiple data storage facilities, for example, data storage facilities D1, D2, D3, and D4. However, it is readily understood by those skilled in the art that the repository system may have only one data storage facility. According to one embodiment of the invention, each of the data storage facilities D1 to D4 may advantageously comprise some or all of the elements disclosed with reference to the repository 210 of Figure 4. Similar to repository 210, data storage facilities D1 through D4 communicate with transaction engine 205, authentication engine 215, and cryptographic engine 220, preferably through conventional SSL. Communication links that transfer, for example, XML documents. Communications from the transaction engine 205 may advantageously include requests for data, wherein the request is advantageously broadcast to the IP address of each data storage facility D1 through D4. On the other hand, the transaction engine 205 can broadcast requests to particular data storage facilities based on a wide number of criteria, such as, for example, response time, server loads, maintenance schedules, or the like.
ES 2 658 097 T3
In response to requests for data from the transaction engine 205, the depositing system 700 advantageously forwards stored data to the authentication engine 215 and the cryptographic engine 220. The respective data assembly modules receive the forwarded data and assemble the data in usable formats. . On the other hand, the communications from the authentication engine 215 and the cryptographic engine 220 to the data storage facilities D1 to D4 may include the transmission of sensitive data to be stored. For example, according to one embodiment, the authentication engine 215 and the cryptographic engine 220 may advantageously employ their respective data division modules to divide sensitive data into indecipherable portions, and then transmit one or more indecipherable portions of the sensitive data to a particular data storage facility.
According to one embodiment, each data storage facility, D1 to D4, comprises a separate and independent storage system, such as, for example, a directory server. In accordance with another embodiment of the invention, the repository system 700 comprises multiple geographically separated independent data storage systems. By distributing the sensitive data across separate and separate storage facilities D1 to D4, some or all of which may be advantageously geographically separated, the repository system 700 provides redundancy along with additional security measures. For example, according to one embodiment, only the data from two of the multiple data storage facilities, D1 through D4, is needed to decrypt and reassemble the sensitive data. Thus, up to two of the four data storage facilities D1 through D4 may be inoperative due to maintenance, system failure, power failure, or the like, without affecting the functionality of the trust engine 110. Furthermore, since, according to one embodiment, the data stored in each data storage facility is scrambled and indecipherable, the compromise of any individual data storage facility does not necessarily compromise the sensitive data. Furthermore, in the embodiment having geographic separation of data storage facilities, a compromise of multiple geographically remote facilities becomes increasingly difficult. In fact, even a dishonest employee will be greatly challenged to disrupt the necessary multiple geographically independent remote data storage facilities.
Although the depository system 700 is disclosed with reference to its preferred and alternative embodiments, the invention is not intended to be limited in this way. Instead, one of ordinary skill in the art will recognize from the disclosure herein a wide number of alternatives for the repository system 700. For example, the repository system 700 may comprise one, two, or more data storage facilities. Furthermore, the sensitive data can be mathematically operated such that portions from two or more data storage facilities are necessary to reassemble and decrypt the sensitive data.
As mentioned above, the authentication engine 215 and the cryptographic engine 220 each include a data division module 520 and 610, respectively, for dividing any type or form of sensitive data, such as, for example, text. , audio, video, authentication data and cryptographic key data. Figure 8 illustrates a flow chart of a data division process 800 performed by the data division module in accordance with aspects of one embodiment of the invention. As shown in Figure 8, the data division process 800 begins in step 805 when the sensitive data "S" is received by the data division module of the authentication engine 215 or the cryptographic engine 220. Preferably, in step 810, the data division module then generates a substantially random number, value or string or set of bits, "A." For example, the random number A can be generated in a wide number of various conventional techniques available to one of ordinary skill in the art, to produce high quality random numbers suitable for use in cryptographic applications. Furthermore, according to one embodiment, the random number A comprises a bit length which can be any suitable length, such as shorter, longer or equal to the bit length of the sensitive data, S.
Furthermore, in step 820 the data division process 800 generates another statistically random number "C." According to the preferred embodiment, the generation of the statistically random numbers A and C can advantageously be done in parallel. The data division module then combines the numbers A and C with the sensitive data S so that new numbers "B" and "D" are generated. For example, the number B may comprise the binary combination of A XOR S and the number D may comprise the binary combination of C XOR S. The XOR function, or the "exclusive or" function, is well known to those of skill in the art. . The above combinations preferably take place in steps 825 and 830, respectively, and, according to one embodiment, the above combinations also take place in parallel. The data division process 800 then continues to step 835 where the random numbers A and C and the numbers B and D are paired so that neither pair contains enough data, by itself, to rearrange and decipher the data. original sensitive S. For example, the numbers can be paired as follows: AC, AD, bC, and BD. According to one embodiment, each of the previous pairings is distributed to one of the repositories D1 to D4 of Figure 7. According to another embodiment, each of the previous pairings is randomly distributed to one of the repositories D1 to D4 . For example, during a first data division process 800, the AC match may be sent to the repository D2, via, for example, a random selection of the IP address of D2. Then, during a second data division process 800, the AC match can be sent to the depositor D4, via, for example, a random selection of the IP address of D4.
ES 2 658 097 T3
Furthermore, the pairings can all be stored in a repository, and can be stored in separate locations in said repository.
Based on the foregoing, the data division process 800 advantageously places portions of the sensitive data in each of the four data storage facilities D1 to D4 so that no single data storage facility D1 to D4 includes sufficient data. encrypted to recreate the original sensitive data S. As mentioned above, such scrambling of the data into individually unusable encrypted portions increases security and provides that trust in the data is maintained even if one of the data storage facilities, D1 to D4, is compromised.
Although the data division process 800 is disclosed with reference to its preferred embodiment, the invention is not intended to be limited in this way. Instead one skilled in the art will recognize from the disclosure of this document a wide number of alternatives to the 800 data division process. For example, the data division process can advantageously divide the data into two numbers, eg, the random number A and the number B, and randomly distribute A and B across two data storage facilities. In addition, the data division process 800 can advantageously divide the data among a large number of data storage facilities through the generation of additional random numbers. The data can be divided into any desired, selected, predetermined or randomly assigned size unit including but not limited to one bit, bits, bytes, kilobytes, megabytes or greater, or any combination or sequence of sizes. Additionally, varying the sizes of the data drives resulting from the splitting process can present the data that is more difficult to restore to usable form, thereby increasing the security of sensitive data. It is readily apparent to those skilled in the art that the divided data unit sizes can be a wide variety of data unit sizes or patterns of sizes or combinations of sizes. For example, the data unit sizes can be selected or predetermined to be all the same size, a fixed set of different sizes, a combination of sizes, or randomly generated sizes. Similarly, data units can be distributed over one or more shares according to a fixed or predetermined data unit size, a pattern or combination of data unit sizes, or a randomly generated data unit size (s). per share.
As mentioned above, to recreate the sensitive data S, the data portions need to be descrambled and rearranged. This procedure can advantageously take place in the data assembly modules, 525 and 620, of the authentication engine 215 and the cryptographic engine 220, respectively. The data assembly module, eg, data assembly module 525, receives portions of data from data storage facilities D1 through D4, and reassembles the data in usable form. For example, according to one embodiment where the data division module 520 employed the data division process 800 of Figure 8, the data assembly module 525 uses portions of data from at least two of the data storage facilities. data D1 to D4 to recreate the sensitive data S. For example, the matches of AC, AD, BC, and BD, were distributed such that any two provide one of A and B, or, C and D. Noting that S = A XOR B or S = C xOr D indicates that when the data assembly module receives one of A and B, or, C and D, the data assembly module 525 can advantageously reassemble the sensitive data S. Thus, the data assembly module 525 can assemble the sensitive data S, when, for example, it receives portions of data from at least the first two of the data storage facilities D1 to D4 to respond to a reassembly request by the trust engine 110.
Based on the data assembling and splitting processes above, the sensitive data S exists in usable format only in a limited area of the trust engine 110. For example, when the sensitive data S includes enrollment authentication data, the authentication data Usable non-scrambled enrollments are available only in the authentication engine 215. Similarly, when the sensitive data S includes private cryptographic key data, the usable non-scrambled private cryptographic key data is available only in the cryptographic engine 220.
Although the processes of dividing and assembling data are disclosed with reference to their preferred embodiments, the invention is not intended to be limited in this way. Instead, one skilled in the art will recognize from the disclosure of this document, a wide number of alternatives for dividing and reassembling sensitive data S. For example, public key encryption can be used to further secure the data in data storage facilities D1 to D4. Furthermore, it is readily apparent to those skilled in the art that the data division module described herein is also a separate and distinct embodiment of the present invention that can be incorporated into, combined with, or otherwise made part of any system. pre-existing computing, software packages, databases or combinations thereof, or other embodiments of the present invention, such as the trust engine, the authentication engine, and the transaction engine disclosed and described herein.
Figure 9A illustrates a data flow of an enrollment process 900 in accordance with aspects of one embodiment of the invention. As shown in Figure 9A, the enrollment process 900 begins in step 905 when a user wishes to enroll with the trust engine 110 of the cryptographic system 100. Accordingly
In an embodiment, the user system 105 advantageously includes a client-side applet, such as one based on Java, that requires the user to enter registration data, such as demographic data and registration authentication data. According to one embodiment, the enrollment authentication data includes user ID, password or passwords, biometric or biometric or the like. According to one embodiment, during the query process, the client-side applet preferably communicates with the trust engine 110 to ensure that a chosen user ID is unique. When the user ID is not unique, the trust engine 110 can advantageously suggest a unique user ID. The client-side applet collects the enrollment data and transmits the enrollment data, for example, through an XML document, to the trust engine 110, and in particular, to the transaction engine 205. According to one embodiment , the transmission is encrypted with the public key of the authentication engine 215.
According to one embodiment, the user performs a single enrollment during step 905 of the enrollment process 900. For example, the user enrolls himself as a particular person, such as Joe User. When Joe User wants to sign up as Joe User, CEO of Mega Corp., then according to this embodiment, Joe User signs up a second time, receives a second unique user ID, and the trust engine 110 does not associate the two identities. In accordance with another embodiment of the invention, the enrollment process 900 provides multiple user identities for a single user ID. Thus, in the example above, the trust engine 110 will advantageously associate the two Joe User identities. As will be understood by one skilled in the art from the disclosure of this document, a user can have many identities, for example Joe User the head of household, Joe User the member of the Charitable Foundations, and the like. Even though the user may have multiple identities, in accordance with this embodiment, the trust engine 110 preferably stores only one set of enrollment data. Furthermore, users can advantageously add, edit / update, or delete identities as needed.
Although the enrollment process 900 is disclosed with reference to its preferred embodiment, the invention is not intended to be limited in this way. Instead, a person skilled in the art will recognize from the disclosure of this document, a wide number of alternatives for collecting enrollment data, and in particular, enrollment authentication data. For example, the applet can be a Common Object Model (COM) -based applet or similar.
Furthermore, the enrollment process may include gradual enrollment. For example, at a lower level of enrollment, the user can enroll through communication link 125 without producing documentation as to his or her identity. Based on an increased enrollment level, the user enrolls using a trusted third party, such as a digital notary. For example, and the user can appear in person at the trusted third party, produce credentials such as birth certificate, driving license, military ID or the like, and the trusted third party can advantageously include, for example, their digital signature in the issuance of registration. The trusted third party may include a real notary, a government agency, such as the Postal Service or the Department of Motor Vehicles, a human resources person at a large company enrolling an employee, or the like. One skilled in the art will understand from the disclosure of this document that a wide number of varying enrollment levels can occur during the 900 enrollment process.
After receiving the enrollment authentication data, in step 915, the transaction engine 205, using conventional TOTAL SSL technology forwards the enrollment authentication data to the authentication engine 215. In step 920, the authentication engine 215 decrypts the enrollment authentication data using the private key of the authentication engine 215. Furthermore, the authentication engine 215 employs the data division module to mathematically operate on the enrollment authentication data to divide the data into at least two independently indecipherable randomized numbers. As mentioned above, at least two numbers can comprise a random statistical number and a binary number to which the XOR operation has been performed. In step 925, the authentication engine 215 forwards each portion of the scrambled numbers to one of the data storage facilities D1 to D4. As mentioned above, the authentication engine 215 can advantageously randomize which portions are transferred to which repositories.
Often during the enrollment process 900, the user will also want to have a digital certificate issued so that he or she can receive encrypted documents from other users outside of the cryptographic system 100. As mentioned above, the certificate authority 115 generally issues certificates in accordance with one or more of several conventional standards. In general, the digital certificate includes a public key of the user or system, which is known to everyone.
If the user requests a digital certificate at enrollment, or at another time, the request is passed through trust engine 110 to authentication engine 215. According to one embodiment, the request includes an XML document that has, for For example, the appropriate name of the user. According to step 935, the authentication engine 215 transfers the request to the cryptographic engine 220 which instructs the cryptographic engine 220 to generate a cryptographic key or pair of keys.
ES 2 658 097 T3
Upon request, in step 935, the cryptographic engine 220 generates at least one cryptographic key. According to one embodiment, the cryptographic management module 625 generates a key pair, where one key is used as a private key, and one is used as a public key. The cryptographic engine 220 stores the private key and, according to one embodiment, a copy of the public key. In step 945, the cryptographic engine 220 transmits a request for a digital certificate to the transaction engine 205. According to one embodiment, the request advantageously includes a standardized request, such as PKCS10, embedded in, for example, an XML document. The request for a digital certificate can advantageously correspond to one or more certification authorities and to one or more conventional formats required by the certification authorities.
In step 950 the transaction engine 205 forwards this request to the certification authority 115, which, in step 955, returns a digital certificate. The returned digital certificate may advantageously be in a standardized format, such as PKCS7, or in a format proprietary to one or more of the certification authorities 115. In step 960, the digital certificate is received by the transaction engine 205, and a copy is forwarded to the user and a copy is stored with the trust engine 110. The trust engine 110 stores a copy of the certificate so that the Trust Engine 110 will not need to rely on the availability of Certificate Authority 115. For example, when the user wants to send a digital certificate, or a third party requests the user's digital certificate, the request for the digital certificate is typically sent to the certificate authority 115. However, if the certificate authority 115 is performing maintenance or you have been the victim of a security breach or compromise, the digital certificate may not be available.
At any time after issuing the cryptographic keys, the cryptographic engine 220 can advantageously employ the data division process 800 described above such that the cryptographic keys are divided into independently indecipherable randomized numbers. Similar to the authentication data, in step 965 the cryptographic engine 220 transfers the scrambled numbers to the data storage facilities D1 to D4.
An expert in the field will recognize from the disclosure of this document that the user can request a digital certificate at any time after registration. In addition, communications between systems may advantageously include TOTAL SSL or public key encryption technologies. Additionally, the enrollment process can issue multiple digital certificates from multiple certificate authorities, including one or more proprietary certificate authorities internal or external to the trust engine 110.
As disclosed in steps 935 to 960, one embodiment of the invention includes the request for a certificate that is eventually stored in the trust engine 110. Since, according to one embodiment, the cryptographic management module 625 issues the keys used by trust engine 110, each certificate corresponds to the private key. Thus, trust engine 110 can advantageously provide interoperability through monitoring of certificates owned by, or associated with, a user. For example, when the cryptographic engine 220 receives a request for a cryptographic function, the cryptographic handling module 625 can investigate the certificates owned by the requesting user to determine whether the user possesses a private key that matches the attributes of the request. When such a certificate exists, the cryptographic management module 625 can use the certificate or the public or private keys associated with it, to perform the requested function. When such a certificate does not exist, the cryptographic management module 625 can advantageously and transparently perform a number of actions to try to remedy the absence of an appropriate key. For example, Figure 9B illustrates a flow diagram of an interoperability process 970, which in accordance with aspects of one embodiment of the invention, discloses the above steps to ensure that the cryptographic handling module 625 performs cryptographic functions using appropriate keys.
As shown in Figure 9B, the interoperability process 970 begins with step 972 where the cryptographic handling module 925 determines the type of certificate desired. According to one embodiment of the invention, the type of certificate can advantageously be specified in the request for cryptographic functions, or other data provided by the requestor. According to another embodiment, the type of certificate can be determined by the data format of the request. For example, the cryptographic handling module 925 may advantageously recognize that the request corresponds to a particular type.
According to one embodiment, the type of certificate may include one or more algorithm standards, eg, RSA, ELGAMAL, or the like. Furthermore, the type of certificate may include one or more types of keys, such as symmetric keys, public keys, strong encryption keys such as 256-bit keys, less secure keys, or the like. In addition, the type of certificate may include updates or substitutions of one or more of the previous rules or algorithm keys, one or more message or data formats, one or more data encoding or encapsulation schemes, such as Base 32 or Base 64. The type of certificate may also include support for one or more cryptographic applications or third-party interfaces, one or more communication protocols, or one or more certificate standards or protocols. One skilled in the art will recognize from the disclosure of this document that other differences in certificate types may exist, and translations to and from these differences may be implemented as disclosed herein.
ES 2 658 097 T3
Once the cryptographic management module 625 determines the type of certificate, the interoperability process 970 continues to step 974, and determines if the user has a certificate that matches the type determined in step 974. When the user has a matching certificate, for example, the trust engine 110 has access to the matching certificate through, for example, a previous storage of it, the cryptographic management module 825 knows that a matching private key is also stored in trust engine 110. For example, the matching private key may be stored in repository 210 or repository system 700. The cryptographic handling module 625 may advantageously request that the matching private key be reassembled from, for example, the depositary 210, and then at step 976, use the matching private key to perform cryptographic actions or functions. For example, as mentioned above, the cryptographic management module 625 can advantageously perform hash, hash comparisons, data encryption or decryption, digital signature creation or verification, or the like.
When the user does not have a matching certificate, the interoperability process 970 continues to step 978 where the cryptographic management module 625 determines if the user has a cross-certification certificate. According to one embodiment, cross-certification between certification authorities takes place when a first certification authority determines to trust certificates from a second certification authority. In other words, the first certification authority determines that the certificates from the second certification authority meet certain quality standards, and therefore can be “certified” as equivalent to the first certification authority's own certificates. Cross-certification becomes more complex when certification authorities issue, for example, certificates that have levels of trust. For example, the first certificate authority can provide three levels of trust for a particular certificate, typically based on the degree of trustworthiness in the enrollment process, while the second certificate authority can provide seven levels of trust. Cross certification can advantageously track which levels and which certificates from the second certificate authority can be substituted for which levels and which certificates from the first. When the above cross-certification between two certification authorities is officially and publicly done, the mapping of the certificates and levels to each other is sometimes called “chaining”.
According to another embodiment of the invention, the cryptographic management module 625 can advantageously develop cross-certifications outside of those agreed by the certification authorities. For example, the 625 cryptographic management module can access a certificate authority's first certification practice statement (CPS), or other published policy statement, and use, for example, the authentication tokens required by levels of trust. individuals, match the first certificates of the certification authority with those of another certification authority.
When, in step 978, the cryptographic management module 625 determines that users have a cross-certification certificate, the interoperability process 970 continues to step 976, and performs the cryptographic action or function using the cross-certification public key, the private key, or both. Alternatively, when the cryptographic management module 625 determines that the user does not have a cross-certification certificate, the interoperability process 970 continues to step 980, where the cryptographic management module 625 selects a certification authority that issues the type of certificate. requested certificate, or to a cross-certification certificate to it. In step 982, the cryptographic management module 625 determines whether the user's enrollment authentication data, discussed above, meets the authentication requirements of the chosen certification authority. For example, if the user registers through a network answering, for example, demographic and other questions, the authentication data provided may establish a lower level of confidence that a user provides biometric data and appears before a third party, such as , for example, a notary. According to one embodiment, the above authentication requirements can advantageously be provided in the CPS of the chosen authentication authority.
When the user has provided the trust engine 110 with enrollment authentication data that meets the requirements of the chosen certification authority, the interoperability process 970 continues to step 984, where the cryptographic management module 825 obtains the certificate from the authority. certification chosen. According to one embodiment, the cryptographic management module 625 obtains the certificate by following steps 945 to 960 of the enrollment process 900. For example, the cryptographic management module 625 may advantageously employ one or more public keys from one or more of the key pairs already available to the cryptographic engine 220, to request the certificate from the certification authority. According to another embodiment, the cryptographic management module 625 can advantageously generate one or more new key pairs, and use the public keys that correspond to them, to request the certificate from the certification authority.
According to another embodiment, the trust engine 110 may advantageously include one or more certificate issuance modules that can issue one or more types of certificate. According to this embodiment, the certificate issuing module can provide the above certificate. When the cryptographic management module 625 obtains the certificate, the interoperability process 970 continues to step 976, and performs the cryptographic action or function using the public key, private key, or both that correspond to the obtained certificate.
ES 2 658 097 T3
When the user, in step 982, has not provided the trust engine 110 with Enrollment authentication data that meets the requirements of the chosen certification authority, the cryptographic management module 625 determines, in step 986 if there are other authorities certification that have different authentication requirements. For example, the cryptographic management module 625 can search for certificate authorities that have lower authentication requirements, but still issue the chosen certificates, or cross-certify them.
When there is the previous certificate authority that has lower requirements, the interoperability process 970 continues to step 980 and chooses that certificate authority. Alternatively, when no such certificate authority exists, at step 988, trust engine 110 may request additional authentication tokens from the user. For example, the trust engine 110 may request new enrollment authentication data comprising, for example, biometric data. Also, the trust engine 110 may request the user to appear before a third party and provide appropriate authentication credentials, such as, for example, appear before a notary with a driver's license, social security card, bank card, birth certificate. , Military ID, or similar. When the trust engine 110 receives updated authentication data, the interoperability process 970 continues to step 984 and obtains the previously chosen certificate.
Through the above interoperability process 970, the cryptographic management module 625 advantageously provides seamless seamless translations and conversions between different cryptographic systems. One skilled in the art will recognize from the disclosure of this document a wide number of advantages and implementations of the above interoperable system. For example, the previous step 986 of the interoperability process 970 may advantageously include aspects of trusted arbitration, discussed in greater detail below, where the certification authority may accept lower levels of cross-certification under special circumstances. In addition, the 970 interoperability process may include ensuring interoperability between and using conventional certificate revocations, such as employing certificate revocation lists (CRLs), online certificate status protocols (OCSP), or the like.
Figure 10 illustrates a data flow of an authentication process 1000 in accordance with aspects of one embodiment of the invention. According to one embodiment, the authentication process 1000 includes collecting current authentication data from a user and comparing it to that of the user's enrollment authentication data. For example, the authentication process 1000 begins at step 1005 where a user wants to perform a transaction with, for example, a reseller. Such transactions may include, for example, selecting a purchase option, requesting access to a restricted area or device of distributor system 120, or the like. In step 1010, a dispatcher provides the user with a transaction ID and an authentication request. The transaction ID may advantageously include a 192-bit quantity having a 32-bit indication concatenated with a 128-bit random quantity, or a “nonce” (random number used only once), concatenated with a dealer-specific constant of 32 bits. Such a transaction ID uniquely identifies the transaction so that imitated transactions can be rejected by the trust engine 110.
The authentication request may advantageously include what level of authentication is required for a particular transaction. For example, the distributor can specify a particular level of trust that is required for the transaction on shipment. If authentication cannot be performed at this trust level, as will be discussed below, the transaction will not take place without any additional authentication by the user to rise to the trust level, or without a change in the authentication terms between the vendor. and the server. These expeditions are discussed more fully below.
According to one embodiment, the transaction ID and the authentication request can advantageously be generated by a vendor-side applet or other software program. Furthermore, the transmission of the transaction ID and authentication data may include one or more XML documents encrypted using conventional SSL technology, such as, for example,<sup>1</sup>X SSL, or in other words SSL authenticated on the vendor side.
After user system 105 receives the transaction ID and authentication request, user system 105 collects current authentication data, potentially including current biometric information, from the user. The user system 105, in step 1015, encrypts at least the current authentication data "B" and the transaction ID, with the public key of the authentication engine 215, and transfers this data to the trust engine 110. The transmission preferably comprises XML documents encrypted with at least <sup>1</sup>X Conventional SSL. In step 1020, the transaction engine 205 receives the transmission, preferably recognizes the data or request format in the URL or URI, and forwards the transmission to the authentication engine 215.
During steps 1015 and 1020, dispatcher system 120, in step 1025, forwards the transaction ID and authentication request to trust engine 110, using preferred TOTAL SSL technology. This communication can also include a dealer ID, although the dealer identification can also be communicated through a non-random portion of the transaction ID. In steps 1030 and 1035, the
ES 2 658 097 T3 transaction engine 205 receives the communication, creates a record on the audit trail, and generates a request for user enrollment authentication data to be reassembled from data storage facilities D1 to D4. In step 1040, the repository system 700 transfers the portions of the enrollment authentication data that correspond to the user to the authentication engine 215. In step 1045, the authentication engine 215 decrypts the transmission using its private key and compares the enrollment authentication data to the current authentication data provided by the user.
The comparison of step 1045 may advantageously apply heuristic context-sensitive authentication, as referenced above, and is discussed in more detail below. For example, if the biometric information received does not match perfectly, a lower confidence match results. In particular embodiments, the level of authentication trust is balanced against the nature of the transaction and the wishes of both the user and the reseller. Again, this is discussed in more detail below.
In step 1050, the authentication engine 215 fills in the authentication request with the result of the comparison from step 1045. According to one embodiment of the invention, the authentication request is filled with a YES / NO or TRUE / result. FALSE of the authentication process 1000. At step 1055 the completed authentication request is returned to the vendor for the vendor to act, for example, allowing the user to complete the transaction that initiated the authentication request. According to one embodiment, a confirmation message is passed to the user.
Based on the foregoing, the authentication process 1000 advantageously keeps the sensitive data safe and produces results configured to maintain the integrity of the sensitive data. For example, sensitive data is reassembled only within the authentication engine 215. For example, the enrollment authentication data is indecipherable until it is assembled into the authentication engine 215 using the data assembly module, and the current authentication data is indecipherable until it is unpacked using conventional SSL technology and the key. authentication engine private 215. Furthermore, the authentication result transmitted to the distributor does not include the sensitive data, and the user may not even know whether he or she produced valid authentication data.
Although the authentication process 1000 is disclosed with reference to its preferred and alternative embodiments, the invention is not intended to be limited in this way. Instead, one skilled in the art will recognize from the disclosure of this document, a wide number of alternatives for the 1000 authentication process. For example, the dispatcher can be advantageously replaced by almost any requesting application, even those that reside with user system 105. For example, a client application, such as Microsoft Word, may use an application program interface (API) or a cryptographic API (CAPI) to request authentication before unlocking a document. Alternatively, a mail server, a network, a cell phone, a personal or mobile computing device, a workstation, or the like, can all make the authentication requests that can be filled through the authentication process 1000. In fact, after providing the above trusted authentication process 1000, the requesting application or device may provide access to or use of a wide number of electronic or computer systems or devices.
Furthermore, the authentication process 1000 can employ a wide number of alternative procedures in the event of authentication failure. For example, the authentication failure may keep the same transaction ID and require the user to re-enter their current authentication details. As mentioned above, the use of the same transaction ID allows the authentication engine comparer 215 to monitor and limit the number of authentication attempts for a particular transaction, thereby creating a more secure cryptographic system 100.
Furthermore, the authentication process 1000 can be used to advantage to develop elegant one-time sign-on solutions, such as unlocking a vault of sensitive data. For example, successful or positive authentication can provide the authenticated user with the ability to automatically access any number of passwords for an almost unlimited number of systems and applications. For example, authenticating a user may provide the user with access to password, login, financial credentials, or the like, associated with multiple online vendors, a local area network, various personal computing devices, internet service providers, auction providers, investment brokers, or the like. Employing a sensitive data vault, users can choose truly large and random passwords since they do not need to remember them through association. Instead, the authentication process 1000 provides access to the same. For example, a user can choose a random alphanumeric string more than twenty digits in length instead of something associated with a memorable data, name, and so on.
According to one embodiment, a sensitive data vault associated with a given user can be advantageously stored in the data storage facilities of the depositary 210, or divided and stored in the depositary system 700. According to this embodiment, after authentication of positive user, the trust engine 110 serves the requested sensitive data, such as, for example, the appropriate password to the requesting application. According to another embodiment, the trust engine 110 may include a separate system for storing the sensitive data vault. For example, trust engine 110 may include a trust engine.
ES 2 658 097 T3 standalone software that implements the data vault functionality and that resides figuratively "behind" the front end security system of the trust engine 110. According to this embodiment, the software engine serves the sensitive data requested after the software engine receives a signal indicating positive user authentication from the trust engine 110.
In yet another embodiment, the data vault may be implemented by a third party system. Similar to the software engine embodiment, the third-party system may advantageously serve the requested sensitive data after the third-party system receives a signal indicating positive user authentication from the trust engine 110. According to yet another embodiment, the data vault may be implemented in the user system 105. A user-side software engine may advantageously serve the above data after receiving a signal indicating positive user authentication from the trust engine 110.
Although the above data vaults are disclosed with reference to alternative embodiments, one skilled in the art will recognize from the disclosure herein a wide number of additional implementations thereof. For example, a particular data vault may include aspects of some or all of the above embodiments. Furthermore, any of the above data vaults may employ one or more authentication requests at varying times. For example, any of the data vaults may require authentication of each one or more transactions, periodically, each one or more sessions, each access to one or more web pages or web sites, at one or more other specified intervals, or the like.
Figure 11 illustrates a data flow of a signature process 1100 in accordance with aspects of one embodiment of the invention. As shown in Figure 11, the signature process 1100 includes steps similar to those of the authentication process 1000 described above with reference to Figure 10. In accordance with one embodiment of the invention, the signature process 1100 first authenticates the user and then performs one or more of several digital signature functions as will be discussed in greater detail below. According to another embodiment, the signature process 1100 may advantageously store data related thereto, such as scraps of messages or documents, or the like. This data can be used to advantage in an audit or any other event, such as for example, when a participating party tries to reject a transaction.
As shown in Figure 11, during the authentication steps, the user and reseller can advantageously agree on a message, such as, for example, a contract. During signing, the signing process 1100 advantageously ensures that the contract signed by the user is identical to the contract supplied by the distributor. Therefore, according to one embodiment, during authentication, the dispatcher and the user include a hash of their respective copies of the message or contract, in the data transmitted to the authentication engine 215. Employing only a hash of a message or contract , the trust engine 110 can advantageously store a significantly reduced amount of data, providing a more efficient and cost-effective cryptographic system. Furthermore, the stored hash can be advantageously compared to a hash of a document in question to determine whether the document in question matches one signed by either party. The ability to determine that the document is identical to one related to a transaction provides additional proof that it can be used in the face of repudiation by a party to a transaction.
At step 1103, the authentication engine 215 assembles the enrollment authentication data and compares it to the current authentication data provided by the user. When the authentication engine comparer 215 indicates that the enrollment authentication data matches the current authentication data, the authentication engine comparer 215 also compares the hash of the dispatcher-supplied message to the hash of the user-supplied message. Therefore, the authentication engine 215 advantageously ensures that the message agreed to and by the user is identical to that agreed to and by the distributor.
In step 1105, the authentication engine 215 transmits a digital signature request to the cryptographic engine 220. In accordance with one embodiment of the invention, the request includes a hash of the message or contract. However, one skilled in the art will recognize from the disclosure of this document that the cryptographic engine 220 can encrypt virtually any type of data, including, but not limited to, video, audio, biometrics, images or text to form the digital signature. desired. Returning to step 1105, the digital signature request preferably comprises an XML document communicated through conventional SSL technologies.
In step 1110, the authentication engine 215 transmits a request to each of the data storage facilities D1 to D4, so that each of the data storage facilities D1 to D4 transmits its respective portion of the key o cryptographic keys that correspond to a signing party. According to another embodiment, the cryptographic engine 220 employs some or all of the stages of the interoperability process 970 discussed above, so that the cryptographic engine 220 first determines the appropriate key or keys to request from the depositary 210 or the depository system 700 for the signing party, and takes actions to provide appropriate matching keys. According to yet another embodiment, the authentication engine 215 or the cryptographic engine 220 may advantageously request one or more of the keys associated with the signing party and stored in the depositary 210 or the depositary system 700.
ES 2 658 097 T3
According to one embodiment, the signing party includes one or both of the user and the distributor. In such a case, the authentication engine 215 advantageously requests the cryptographic keys that correspond to the user and / or the distributor. According to another embodiment, the signing party includes trust engine 110. In this embodiment, trust engine 110 is certifying that the authentication process 1000 appropriately authenticated the user, reseller, or both. Therefore, the authentication engine 215 requests the cryptographic key from the trust engine 110, such as, for example, the key that belongs to the cryptographic engine 220, to perform the digital signature.
According to another embodiment, the trust engine 110 performs a function similar to a digital notary. In this embodiment, the signing party includes the user, distributor, or both, along with the trust engine 110. Thus, the trust engine 110 provides the digital signature of the user and / or distributor, and then indicates with its own signature that the user and / or distributor were properly authenticated. In this embodiment, the authentication engine 215 can advantageously request assembly of the cryptographic keys that correspond to the user, the distributor, or both. According to another embodiment, the authentication engine 215 can advantageously request assembly of the cryptographic keys that correspond to the trust engine 110.
According to another embodiment, the trust engine 110 performs functions similar to a power of attorney. For example, trust engine 110 may digitally sign the message on behalf of a third party. In such a case, the authentication engine 215 requests the cryptographic keys associated with the third party. According to this embodiment, the signature process 1100 may advantageously include third party authentication, before allowing functions similar to a power of attorney. Furthermore, the authentication process 1000 may include a check for third-party restrictions, such as, for example, business logic or the like that dictate when and under what circumstances a particular third-party signature may be used.
Based on the above, in step 1110, the authentication engine requests the cryptographic keys from the data storage facilities D1 to D4 that correspond to the signing party. In step 1115, the data storage facilities D1 to D4 transmit their respective portions of the cryptographic key that correspond to the signing party to the cryptographic engine 220. According to one embodiment, the above transmissions include SSL technologies. According to another embodiment, the above transmissions can advantageously be super-encrypted with the public key of the cryptographic engine 220.
In step 1120, the cryptographic engine 220 assembles the previous cryptographic keys of the signing party and encrypts the message with them, thus forming the digital signature or signatures. In step 1125 of the signature process 1100, the cryptographic engine 220 transmits the digital signature or signatures to the authentication engine 215. At step 1130, the authentication engine 215 transmits the completed authentication request along with a copy of the hashed message and the digital signature (s) to the transaction engine 205. At step 1135, the transaction engine 205 transmits a reception comprising the transaction ID, an indication of whether the authentication was successful, and the digital signature (s), to the vendor. According to one embodiment, the above transmission may advantageously include the digital signature of the trust engine 110. For example, the trust engine 110 can encrypt the reception hash with its private key, thereby forming a digital signature to be attached. to the transmission to the dealer.
According to one embodiment, the transaction engine 205 also transmits a confirmation message to the user. Although the signature process 1100 is disclosed with reference to its preferred and alternative embodiments, the invention is not intended to be limited in this way. Instead, one skilled in the art will recognize from the disclosure of this document a wide number of alternatives to the 1100 signature process. For example, the dispatcher can be replaced with a user application, such as an email application. For example, the user may wish to digitally sign a particular email with their digital signature. In such an embodiment, the transmission throughout the entire signature process 1100 may advantageously include only one copy of a hash of the message. Furthermore, one skilled in the art will recognize from the disclosure of this document that a large number of client applications can request digital signatures. For example, client applications can comprise word processors, spreadsheets, emails, voicemail, access to restricted system areas, or the like.
Furthermore, one skilled in the art will recognize from the disclosure herein that steps 1105 to 1120 of the signature process 1100 may advantageously employ some or all of the steps of the interoperability process 970 of Figure 9B, thereby providing interoperability. between different cryptographic systems that may need to process, for example, the digital signature under different types of signature.
Figure 12 illustrates a data flow of an encryption / decryption process 1200 in accordance with aspects of one embodiment of the invention. As shown in Figure 12, the decryption process 1200 begins by authenticating the user using the authentication process 1000. According to one embodiment, the authentication process 1000 includes in the authentication request, a synchronous session key. For example, in conventional PKI technologies, it is understood by those skilled in the art that encrypting or decrypting data using public and private keys is mathematically intensive and may require significant system resources. However, in symmetric key cryptographic systems, or systems where the sender and receiver of a message share a single common key that is used to encrypt and decrypt a message, the operations
ES 2 658 097 T3 mathematics is significantly easier and faster. Therefore, in conventional PKI technologies, the sender of a message will generate the synchronous session key, and encrypt the message using the fastest and simplest symmetric key system. The sender will then encrypt the session key with the recipient's public key. The encrypted session key will be attached to the encrypted message synchronously and both data is sent to the receiver. The receiver uses his private key to decrypt the session key, and then uses the session key to decrypt the message. Based on the above, the simplest and fastest symmetric key system is used for most encryption / decryption processing. Thus, in decryption process 1200, decryption advantageously assumes that a key synchronous with the user's public key has been encrypted. Therefore, as mentioned above, the encrypted session key is included in the authentication request.
Returning to the decryption process 1200, after the user has authenticated in step 1205, the authentication engine 215 forwards the encrypted session key to the cryptographic engine 220. In step 1210, the authentication engine 215 forwards a request to each of the data storage facilities, D1 to D4, requesting the user's cryptographic key data. In step 1215, each data storage facility, D1 through D4, transmits its respective portion of the cryptographic key to the cryptographic engine 220. According to one embodiment, the previous transmission is encrypted with the public key of the cryptographic engine 220.
In step 1220 of the decryption process 1200, the cryptographic engine 220 assembles the cryptographic key and decrypts the session key with it. In step 1225, the cryptographic engine forwards the session key to the authentication engine 215. In step 1227, the authentication engine 215 fills in the authentication request that includes the decrypted session key, and transmits the completed authentication request to the transaction engine 205. At step 1230, the transaction engine 205 forwards the authentication request along with the session key to the requesting distributor or application. Next, according to one embodiment, the requesting application or dispatcher uses the session key to decrypt the encrypted message.
Although the decryption process 1200 is disclosed with reference to its preferred and alternative embodiments, one skilled in the art will recognize from the disclosure herein, a wide number of alternatives to the decryption process 1200. For example, the process of decryption 1200 can forego synchronous key encryption and rely on full public key technology. In such an embodiment, the requesting application may transmit the entire message to the cryptographic engine 220, or it may employ some type of compression or reversible hashing to transmit the message to the cryptographic engine 220. One skilled in the art will also recognize from the disclosure of this document that the above communications may advantageously include XML documents packed in SSL technology.
The encryption / decryption process 1200 also provides encryption of documents or other data. Therefore, in step 1235, a requesting application or distributor can advantageously transmit to the transaction engine 205 of the trust engine 110, a request for the user's public key. The requesting application or distributor makes this request since the requesting application or distributor uses the user's public key, for example, to encrypt the session key that will be used to encrypt the document or message. As mentioned in enrollment process 900, transaction engine 205 stores a copy of the user's digital certificate, for example, in mass storage 225. Therefore, in step 1240 of the encryption process 1200, the transaction engine 205 requests the user's digital certificate from mass storage 225. In step 1245, mass storage 225 transmits the digital certificate that corresponds to the user, to the engine transaction 205. In step 1250, transaction engine 205 transmits the digital certificate to the requesting application or reseller. According to one embodiment, the encryption portion of the encryption process 1200 does not include authenticating a user. This is because the requesting distributor only needs the user's public key, and is not requesting any sensitive data.
One skilled in the art will recognize from the disclosure of this document that if a particular user does not have a digital certificate, the trust engine 110 may employ some or all of the enrollment process 900 to generate a digital certificate for that particular user. The trust engine 110 can then initiate the encryption / decryption process 1200 and thus provide the appropriate digital certificate.
Furthermore, one skilled in the art will recognize from the disclosure herein that steps 1220 and 1235-1250 of the encryption / decryption process 1200 may advantageously employ some or all of the steps of the interoperability process of Figure 9B, providing interoperability. in this way between different cryptographic systems that may need, for example, to process encryption.
Figure 13 illustrates a simplified block diagram of a reliable motor system 1300 in accordance with aspects of yet another embodiment of the invention. As shown in Figure 13, the trust engine system 1300 comprises a plurality of different trust engines 1305, 1310, 1315, and 1320, respectively. To facilitate a more complete understanding of the invention, Figure 13 illustrates each trust engine, 1305, 1310, 1315, and 1320 as having a transaction engine, a depository, and an authentication engine. However, one skilled in the art will recognize that each transaction engine may advantageously comprise some, a combination, or all of the communication elements and channels disclosed with
ES 2 658 097 T3 referring to Figures 1-8. For example, one embodiment may advantageously include trust engines having one or more transaction engines, repositories, and cryptographic servers or any combination thereof.
According to one embodiment of the invention, each of the trust engines 1305, 1310, 1315 and 1320 are geographically separated, so that, for example, the trust engine 1305 can reside in a first location, the trust engine 1310 can reside in a second location, trust engine 1315 can reside in a third location, and trust engine 1320 can reside in a fourth location. The above geographic separation advantageously reduces the response time of the system while increasing the security of the global trust engine system 1300.
For example, when a user logs into the cryptographic system 100, the user may be close to the first location and may wish to authenticate. As described with reference to Figure 10, to authenticate, the user provides current authentication data, such as biometric or the like, and the current authentication data is compared to the user's enrollment authentication data. Therefore, according to one example, the user advantageously provides current authentication data to the geographically closest trust engine 1305. The transaction engine 1321 of the trust engine 1305 then forwards the current authentication data to the authentication engine 1322 which also resides in the first location. In accordance with another embodiment, the transaction engine 1321 forwards the current authentication data to one or more of the authentication engines of the trust engines 1310, 1315, or 1320.
The transaction engine 1321 also requests the assembly of the enrollment authentication data from the repositories of, for example, each of the trust engines, 1305 to 1320. According to this embodiment, each repository provides its portion of the data authentication of enrollment to authentication engine 1322 of trust engine 1305. The authentication engine 1322 then uses the encrypted data portions from, for example, the first two repositories to respond, and assembles the enrollment authentication data in decrypted form. The authentication engine 1322 compares the enrollment authentication data with the current authentication data and returns an authentication result to the transaction engine 1321 of the trust engine 1305.
Based on the foregoing, the trust engine system 1300 employs the closest of a plurality of geographically separate trust engines, 1305 to 1320, to perform the authentication process. According to one embodiment of the invention, routing of information to the closest transaction engine can be advantageously performed in client-side applets running on one or more of the user system 105, dispatcher system 120, or certificate authority. 115. According to an alternative embodiment, a more sophisticated decision process can be employed to select from trust engines 1305 to 1320. For example, the decision may be based on the availability, operability, connection speed, load, performance, geographic proximity, or a combination thereof, of a given trust engine.
In this way, the 1300 trust engine system reduces its response time while maintaining the security advantages associated with geographically remote data storage facilities, such as those discussed with reference to Figure 7 where each data storage facility stores randomized chunks of sensitive data. For example, a security compromise in, for example, trust engine 1325 repository 1315 does not necessarily compromise sensitive data in trust engine system 1300. This is because repository 1325 contains only non-decipherable randomized data that, without more, they are completely useless.
According to another embodiment, the trust engine system 1300 may advantageously include multiple arranged crypto engines similar to the authentication engines. Cryptographic engines can advantageously perform cryptographic functions such as those disclosed with reference to Figures 1-8. In accordance with yet another embodiment, the trust engine system 1300 may advantageously replace multiple authentication engines with multiple cryptographic engines, thereby performing cryptographic functions such as those disclosed with reference to Figures 1-8. In accordance with yet another embodiment of the invention, the trust engine system 1300 may replace each multiple authentication engine with an engine that has some or all of the functionality of the authentication engines, cryptographic engines, or both, as disclosed. in the above.
Although the trust engine system 1300 is disclosed with reference to its preferred and alternative embodiments, one of skill in the art will recognize that the trust engine system 1300 may comprise portions of trust engines 1305 through 1320. For example, the trust system trust engine 1300 may include one or more transaction engines, one or more repositories, one or more authentication engines, or one or more cryptographic engines or combinations thereof.
ES 2 658 097 T3
Figure 14 illustrates a simplified block diagram of a trust engine system 1400 in accordance with aspects of yet another embodiment of the invention. As shown in Figure 14, the 1400 trust engine system includes multiple 1405, 1410, 1415, and 1420 trust engines. In accordance with one embodiment, each of the trust engines 1405, 1410, 1415, and 1420 comprises some or all of the elements of the trust engine 110 disclosed with reference to Figures 1-8. According to this embodiment, when client-side applets of user system 105, distributor system 120, or certificate authority 115 communicate with trust engine system 1400, these communications are sent to the address IP of each of the trust engines 1405 to 1420. Furthermore, each transaction engine in each of the trust engines, 1405, 1410, 1415, and 1420, behaves similar to the transaction engine 1321 of the trust engine 1305 disclosed with reference to Figure 13. For example, during an authentication process, each transaction engine in each of the trust engines 1405, 1410, 1415, and 1420 transmits the current authentication data to their respective authentication engines and transmits a request to assemble the scrambled data. stored in each of the repositories of each of the trust engines 1405 to 1420. Figure 14 does not illustrate all these communications; since such an illustration would become too complex. Continuing with the authentication process, each of the repositories then communicates their portion of the scrambled data to each of the authentication engines of each of the trust engines 1405 to 1420. Each of the authentication engines of each of the trust engines uses its comparer to determine if the current authentication data matches the enrollment authentication data provided by the repositories of each of the trust engines 1405 to 1420. According to this embodiment, the result of the comparison by each of the authentication engines is then transmitted to a redundancy module of the other three trust engines. For example, authentication engine output from trust engine 1405 is transmitted to trust engine redundancy modules 1410, 1415, and 1420. Thus, the trust engine redundancy module 1405 similarly receives the result of the authentication engines from the trust engines 1410, 1415, and 1420.
Figure 15 illustrates a block diagram of the redundancy module of Figure 14. The redundancy module comprises a comparer configured to receive the authentication result from three authentication engines and transmit that result to the transaction engine of the fourth trust engine. The comparer compares the authentication result from the three authentication engines, and if two of the results match, the comparer concludes that the authentication result should match that of the two matching authentication engines. This result is then transmitted back to the transaction engine that corresponds to the trust engine not associated with the three authentication engines.
Based on the above, the redundancy module determines an authentication result from the data received from the authentication engines that are preferably geographically remote from the trust engine of that of the redundancy module. By providing such redundancy functionality, the trust engine 1400 system ensures that a compromise of the authentication engine of one of the trust engines 1405 to 1420 is insufficient to compromise the authentication result of the redundancy module of that particular trust engine. . One skilled in the art will recognize that the redundancy module functionality of the trust engine system 1400 can also be applied to the crypto engine of each of the trust engines 1405 through 1420. However, such crypto engine communication was not shown in Figure 14 to avoid complexity. Furthermore, one skilled in the art will recognize that a wide number of alternative authentication conflict resolution algorithms for the comparer of Figure 15 are suitable for use in the present invention.
In accordance with yet another embodiment of the invention, the trust engine system 1400 may advantageously employ the redundancy module during cryptographic comparison steps. For example, some or all of the redundancy module disclosure above with reference to Figures 14 and 15 may be advantageously implemented during a hash comparison of documents provided by one or more parties during a particular transaction.
Although the above invention has been described in terms of certain preferred and alternative embodiments, other embodiments will be apparent to those skilled in the art from the disclosure herein. For example, the trust engine 110 can issue short-term certificates, where the private cryptographic key is released to the user for a predetermined period of time. For example, current certificate rules include a validity field that can be set to expire after a predetermined amount of time.Therefore, the trust engine 110 can release a private key to a user where the private key was valid for, for example, example, 24 hours. According to such an embodiment, the trust engine 110 can advantageously issue a new cryptographic key pair to associate with a particular user and then release the private key from the new cryptographic key pair. Next, once the private cryptographic key is released, the trust engine 110 immediately expires any internal valid use of that private key, as it is no longer insurable by the trust engine 110.
Furthermore, one skilled in the art will recognize that the cryptographic system 100 or the trust engine 110 may include the ability to recognize any type of device, such as, but not limited to, a laptop, a cell phone, a network, a biometric device. or similar. According to one embodiment, such recognition may
ES 2 658 097 T3 come from data supplied in the request for a particular service, such as, a request for authentication leading to access or use, a request for cryptographic functionality, or the like. According to one embodiment, the above application may include a unique device identifier, such as, for example, a processor ID. Alternatively, the request may include data in a particular recognizable data format. For example, mobile phones and satellites often do not include the processing power for full X509.v3 strong encryption certificates, and therefore do not require them. According to this embodiment, the trust engine 110 can recognize the type of data presented, and respond only in the same way.
In a further aspect of the above-described system, context-sensitive authentication can be provided using techniques as will be described below. Context-sensitive authentication, for example as shown in Figure 16, provides the ability to evaluate not only the actual data that is sent by the user when trying to authenticate himself, but also the circumstances surrounding the generation and delivery of These data. Such techniques may also support transaction-specific trust arbitration between the user and trust engine 110 or between the dispatcher and trust engine 110, as will be described below.
As discussed above, authentication is the process of proving that a user is who he claims to be. In general, authentication requires proving some fact to an authentication authority. The trust engine 110 of the present invention represents the authority to which a user must authenticate himself. The user must demonstrate to the trust engine 110 that he is who he claims to be: knowing something that only the user should know (knowledge-based authentication), that he has something that only the user should have (token-based authentication), or by being something that only the user should be (authentication based on biometrics).
Examples of knowledge-based authentication include without limitation a password, PIN number, or combination lock. Examples of token-based authentication include without limitation a house key, a physical credit card, a driver's license, or a home phone number. Examples of biometric-based authentication include without limitation a fingerprint, handwriting scan, facial scan, hand scan, eye scan, iris scan, vascular pattern, DNA, a voice analysis, or a retina scan.
Each type of authentication has unique advantages and disadvantages, and each provides a different level of security. For example, it is generally more difficult to create a fake fingerprint that matches someone else than overhearing someone's password and repeating it. Each type of authentication also requires that a different type of data be known to the authentication authority to verify that someone is using that form of authentication.
As used herein, "authentication" will broadly refer to the overall process of verifying the identity of someone who is who they say they are. An "authentication technique" will refer to a particular type of authentication based on a particular piece of knowledge, physical token, or biometric reading. "Authentication data" refers to information that is submitted or otherwise demonstrated to an authentication authority to establish identity. “Enrollment data” shall refer to data that is initially submitted to an authentication authority to establish a baseline for comparison with authentication data. An "authentication instance" will refer to the data associated with an attempt to authenticate using an authentication technique.
The internal protocols and communications involved in the processes of authenticating a user are described with reference to Figure 10 above. The part of this process in which context-sensitive authentication takes place occurs in the comparison stage shown in step 1045 of Figure 10. This step takes place in the authentication engine 215 and involves assembling the registration data 410 retrieved from the repository 210 and comparing the authentication data provided by the same user. A particular embodiment of this process is shown in Figure 16 and is described below.
The current authentication data provided by the user and the enrollment data retrieved from the repository 210 are received by the authentication engine 215 in step 1600 of Figure 16. Both of these data sets may contain data that is related to techniques. separate authentication forms. Authentication engine 215 separates the authentication data associated with each individual authentication instance in step 1605. This is necessary so that the authentication data is compared to the appropriate subset of the enrollment data for the user (for example, fingerprint authentication data should be compared to fingerprint enrollment data, rather than login data. password enrollment).
In general, authenticating a user involves one or more instances of authentication, depending on what authentication techniques are available to the user. These methods are limited by the enrollment data that was provided by the user during their enrollment process (if the user did not provide a retina scan when they signed up, they will not be able to authenticate themselves using a retina scan), as well as the media
ES 2 658 097 T3 that may currently be available to the user (for example if the user does not have a fingerprint reader at their current location, fingerprint authentication will not be practical). In some cases, a single authentication instance may be sufficient to authenticate a user; however, in certain circumstances a combination of multiple authentication instances can be used to more confidently authenticate a user for a particular transaction.
Each authentication instance consists of data related to a particular authentication technique (eg, fingerprint, password, smart card, etc.) and the circumstances surrounding the capture and delivery of the data for that particular technique. For example, a particular instance of attempting to authenticate by password will generate not only the data related to the password itself, but also circumstantial data, known as "metadata", related to that password attempt. This circumstantial data includes information such as: the time in which the particular authentication instance took place, the network address from which the authentication information was delivered, as well as any other information, as known to experts in the field. , which can be determined about the origin of the authentication data (type of connection, processor serial number, etc.).
In many cases, only a small amount of circumstantial metadata will be available. For example, if the user is located on a network that uses intermediaries or network address translation or another technique that masks the address of the source computer, only the address of the intermediary or router can be determined. Similarly, in many cases information such as the processor serial number will not be available due to any limitations of the hardware or operating system being used, deactivation of such features by the system operator, or other connection limitations. between the user system and the trust engine 110.
As shown in Figure 16, once the individual authentication instances represented in the authentication data are extracted and separated in step 1605, the authentication engine 215 evaluates each instance for reliability by indicating that the user is who. claims to be. Reliability for a single authentication instance will generally be determined based on several factors. These can be grouped as factors related to the reliability associated with the authentication technique, which are evaluated at step 1610, and factors related to the particular authentication data provided, which are evaluated at step 1815. The first group includes without limitation intrinsic reliability of the authentication technique being used, and the reliability of the enrollment data being used with that method. The second group includes without limitation the degree of match between the enrollment data and the data provided with the authentication instance, and the metadata associated with that authentication instance. Each of these factors can vary independently of the others.
The intrinsic reliability of the authentication technique is based on how difficult it is for an imposter to provide correct data from another person, as well as the overall error rates for the authentication technique. For authentication methods based on passwords and knowledge, this reliability is often quite low since there is nothing to prevent someone from revealing their password to another person and that second person from using that password. Even a more complex knowledge-based system may have only moderate reliability since knowledge can be transferred from person to person quite easily. Token-based authentication, such as having an appropriate smart card or using a particular terminal to perform authentication, is similarly low-reliability used by itself, since there is no guarantee that the correct person is in possession of the token. appropriate.
However, biometric techniques are inherently more reliable since it is generally more difficult to provide another person with the ability to use your fingerprints in a convenient, even intentional way. Since disrupting biometric authentication techniques is more difficult, the intrinsic reliability of biometric methods is generally higher than that of purely knowledge-based or token-based authentication techniques. However, even biometric techniques can have some occasions when a false acceptance or a false rejection is generated. These occurrences can be reflected by different reliabilities for different implementations of the same biometric technique. For example, a fingerprint matching system provided by one company may provide higher reliability than one provided by a different company since one uses higher quality optics or better scan resolution or some other improvement that reduces the appearance of false. acceptances or false rejections.
Note that this reliability can be expressed in different ways. Reliability is desirably expressed in some metric that can be used by heuristics 530 and authentication engine algorithms 215 to calculate the trust level of each authentication. A preferred way of expressing these reliabilities is a percentage or fraction. For example, fingerprints can be assigned an intrinsic reliability of 97%, while passwords can only be assigned an intrinsic reliability of 50%. Those skilled in the art will recognize that these particular values are merely exemplary and may vary between specific implementations.
ES 2 658 097 T3
The second factor for which reliability must be assessed is the reliability of the enrollment. This is part of the “gradual enrollment” process mentioned above. This reliability factor reflects the reliability of the identification provided during the initial enrollment process. For example, if the individual is initially enrolled in a manner where he physically produces evidence of his identity to a notary or other public official, and the enrollment data is notarized and notarized at that time, the data will be more reliable than the data that are provided over a network during enrollment and only guaranteed by a digital signature or other information that is not truly tied to the individual.
Other enrollment techniques with varying levels of reliability include without limitation: enrollment in a physical office of the trusted engine operator 110; registration at a user's place of employment; registration at a post office or passport office; Enrollment through an affiliate or trusted party for the trusted engine operator 110; anonymous or pseudonymous registration in which the registered identity is not yet identified with a particular real individual, as well as other means that are known in the art.
These factors reflect the trust between the trust engine 110 and the source of identification provided during the enrollment process. For example, if enrollment is done in association with an employer during the initial process of providing proof of identity, this information may be considered extremely reliable for company purposes, but may be trusted to a lesser degree by a government agency or competitor. . Therefore, the trust engines operated by each of these other organizations can assign different levels of trust to this enrollment.
Similarly, additional data that is sent over the network, but is authenticated by other trusted data provided during a previous enrollment with the same trust engine 110 can be considered as reliable as the original enrollment data was, even though the latest data will be sent over an open network. In such circumstances, a subsequent notarization will effectively increase the level of reliability associated with the original registration data. In this way, for example, an anonymous or pseudonymous registration can then be elevated to a complete registration showing some official registration of the identity of the individual that matches the registered data.
The reliability factors discussed above are generally values that can be determined in advance of any particular authentication instance. This is since they are based on enrollment and technique, rather than actual authentication. In one embodiment, the step of generating trustworthiness based on these factors involves searching for previously determined values for this particular authentication technique and the user's enrollment data. In a further aspect of an advantageous embodiment of the present invention, such reliabilities can be included with the enrollment data itself. In this way, these factors are automatically delivered to the authentication engine 215 along with the enrollment data sent from the repository 210.
Although these factors can generally be determined in advance of any individual authentication instance, they still have an effect on each authentication instance that uses that particular authentication technique for that user. Additionally, although the values may change over time (for example if the user re-enrolls in a more reliable way), they are not dependent on the authentication data itself. In contrast, the reliability factors associated with a single specific instance data can vary on each occasion. These factors, as discussed below, must be evaluated for each new authentication to generate reliability scores at step 1815.
Authentication data reliability reflects the match between data provided by the user in a particular authentication instance and data provided during authentication enrollment. This is the fundamental question of whether the authentication data matches the enrollment data for the individual user who is claiming that it is. Typically, when the data does not match, the user is considered to be unsuccessfully authenticated, and the authentication fails. The way this is evaluated may change depending on the authentication technique used. Comparison of such data is performed by the function of the comparer 515 of the authentication engine 215 as shown in Figure 5.
For example, password matches are generally evaluated in a binary way. In other words, a password is either a perfect match, or a failed match. It is usually undesirable to accept as even a partial match a password that is close to the correct password if it is not exactly correct. Therefore, when evaluating a password authentication, the reliability of the authentication returned by the comparer 515 is typically either 100% (correct) or 0% (bad), with no possibility of intermediate values.
Similar rules to these passwords generally apply to token-based authentication methods, such as smart cards. This is because having a smart card that has a similar or similar identifier to the correct one is just as incorrect as having another incorrect token. Therefore tokens also tend to be binary authenticators: a user either has the correct token or they don't.
ES 2 658 097 T3
However, certain types of authentication data, such as questionnaires and biometrics, are generally not binary authenticators. For example, a fingerprint can match a reference fingerprint to varying degrees. To some extent, this may be due to variations in the quality of the data captured during initial enrollment or subsequent authentications. (A fingerprint may be smudged, or a person may have a healing scar or burn on a particular finger.) In other cases the data may match less than perfectly since the information itself is somewhat variable and is based on pattern matching. (A speech analysis may seem close enough but not correct enough due to background noise, or the acoustics of the environment in which the voice is recorded, or because the person may have a cold.) Finally, in situations where large amounts of data are being compared, it may simply be the case that many of the data matches are good, but some are not. (A ten-question questionnaire may have yielded eight correct answers to personal questions, but two incorrect questions.) For any of these reasons, the match between the enrollment data and the data for a particular authentication instance can desirably be assigned a partial match value by comparer 515. In this way, the fingerprint can be said to be 85% match, the voice print 65% match, and the questionnaire 80% match, for example.
This measure (degree of match) produced by the comparer 515 is the factor that represents the basic question of whether an authentication is successful or not. However, as discussed above, this is only one of the factors that can be used in determining the trustworthiness of a given authentication instance. Note also that even though a match may be determined to some partial degree, it may ultimately be desirable to provide a binary result based on a partial match. In an alternative mode of operation, it is also possible to treat partial matches as binary, ie perfect (100%) or failed (0%) matches, based on whether or not the degree of match passes a particular threshold match level. Such a process can be used to provide a simple pass / fail level of match for systems that might otherwise produce fuzzy matches.
Another factor to consider when evaluating the reliability of a given authentication instance relates to the circumstances under which the authentication data is provided for this particular instance. As discussed above, the circumstances refer to the metadata associated with a particular authentication instance. This may include without limitation information such as: the authenticator's network address, to the extent that it can be determined; the time of authentication; the mode of transmission of the authentication data (telephone line, cell phone, network, etc.); and the authenticator's system serial number.
These factors can be used to produce a profile of the type of authentication that is typically requested by the user. This information can then be used to assess reliability in at least two ways. One way is to consider whether the user is requesting authentication in a way that is consistent with the normal authentication profile for this user. If the user normally makes authentication requests from one network address during his weekdays (when he is at work) and from a different network address during the evenings or weekends (when he is at home), an authentication takes place from home address during the business day is less reliable as it is outside the normal authentication profile. Similarly, if the user is typically authenticated using a biometric fingerprint and at night, an authentication that originates during the day using only a password is less reliable.
An additional way that circumstantial metadata can be used to assess the reliability of an authentication instance is to determine how much corroboration the circumstance provides that the authenticator is the individual it claims to be. For example, if the authentication comes from a system with a serial number that is known to be associated with the user, this is a good circumstantial indicator that the user is who they claim to be. Conversely, if the authentication comes from a network address that is known to be in Los Angeles when the user is known to reside in London, this is an indication that this authentication is less reliable based on their circumstances.
It is also possible that a cookie or other electronic data may be placed on the system that is being used by a user when interacting with a distributor system or with the trust engine 110. This data is written to the user's system storage and may contain an identification that can be read by a web browser or other software on the user system. If this data is allowed to reside on the user's system between sessions (a "persistent cookie"), it may be sent with the authentication data as additional evidence of past use of this system during the authentication of a particular user. In effect, the metadata of a given instance, particularly a persistent cookie, can form a token-based authenticator class itself.
Once the appropriate reliability factors are generated based on the technique and data of the authentication instance as described above in steps 1610 and 1615 respectively, they are used to produce an overall reliability for the authentication instance provided in the step 1620. One means of doing this is simply to express each reliability as a percentage and then multiply them together.
ES 2 658 097 T3
For example, assuming that the authentication data is being sent from a known network address that is from the user's home computer completely according to the user's past authentication profile (100%), and the technique being used is fingerprint identification (97%), and the initial fingerprint data was recorded through the user's employer with trust engine 110 (90%), and the match between the authentication data and the original fingerprint sample in the enrollment data is very good (99%). The overall reliability of this authentication instance could then be calculated as the product of these reliabilities: 100% * 97% * 90% * 99% - 86.4% reliability.
This calculated reliability represents the reliability of a single authentication instance. The overall reliability of a single authentication instance can also be calculated using techniques that treat different reliability factors differently, for example using formulas where different weights are assigned to each reliability factor. Additionally, those skilled in the art will recognize that the actual values used may represent values other than percentages and may use non-arithmetic systems. One embodiment may include a module used by an authentication requester to establish the weights for each factor and the algorithms used in establishing the overall trustworthiness of the authentication instance.
The authentication engine 215 can use the above techniques and variations thereof to determine the reliability of a single authentication instance, indicated as step 1620. However, it can be useful in many authentication situations for multiple authentication instances that are provide at the same time. For example, while attempting to authenticate himself using the system of the present invention, a user may provide a user identification, fingerprint authentication data, a smart card, and a password. In such a case, three separate authentication instances are being provided to trust engine 110 for evaluation. Continuing to step 1625, if the authentication engine 215 determines that the data provided by the user includes more than one authentication instance, then each instance in turn will be selected as shown in step 1630 and evaluated as described. above in steps 1610, 1615, and 1620.
Note that many of the reliability factors analyzed may vary from one of these instances to another. For example, the intrinsic reliability of these techniques is likely to be different, as is the degree of match provided between authentication data and enrollment data. Additionally, the user may have provided the registration data at different times and under different circumstances for each of these techniques, providing different registration reliabilities for each of these instances as well. Finally, even though the circumstances under which the data for each of these instances is being sent are the same, the use of such techniques can adjust each of the user profiles differently, and thus different circumstantial reliabilities can be assigned. (For example, the user can normally use their password and fingerprint, but not their smart card.)
As a result, the final reliability for each of these instance authentications may be different from each other. However, using multiple instances together, the overall trust level for authentication will tend to increase.
After the authentication engine has performed steps 1610 to 1620 for all authentication instances provided in the authentication data, the trustworthiness of each instance is used in step 1635 to assess the overall authentication trust level. This process of combining the reliabilities of individual authentication instances at the authentication trust level can be modeled by various methods related to the individual reliabilities produced, and can also address the particular interaction between some of these authentication techniques. (For example, multiple knowledge-based systems such as passwords can produce less confidence than a single password and even a fairly weak biometrics, such as basic speech analysis).
One means in which the authentication engine 215 can combine the reliabilities of multiple concurrent authentication instances to generate a final confidence level is to multiply the unreliability of each instance to arrive at a total unreliability. Unreliability is generally the complementary percentage of reliability. For example, a technique that is 84% reliable is 16% unreliable. The three authentication instances described above (fingerprint, smart card, password) will produce 86%, 75%, and 72% reliability, which would correspond to non-reliability of (100-86)%, (100-75) and (100 -72)%, or 14%, 25%, and 28%, respectively. Multiplying these unreliabilities, we obtain a cumulative unreliability of 14% * 25% * 28% - .98% unreliability, which corresponds to a reliability of 99.02%.
In a further mode of operation, additional factors and heuristics 530 may be applied to the authentication engine 215 to account for the interdependence of various authentication techniques. For example, if someone has unauthorized access to a private home computer, they probably have access to the phone line at that address as well. Therefore, authentication based on an originating phone number as well as the serial number of the authentication system does not add much to the overall trust in authentication.
ES 2 658 097 T3
However, knowledge-based authentication is largely independent of token-based authentication (that is, if someone steals your cell phone or keys, they are no more likely to know your PIN or password than if they didn't).
Additionally, different vendors or other authentication requesters may wish to weigh different aspects of authentication differently. This can include the use of weighting factors or algorithms used when calculating individual trust instances as well as the use of different means to evaluate multi-instance authentication events.
For example, distributors for certain types of transactions, for example corporate email systems, may wish to authenticate primarily based on heuristics and other default circumstantial data. Therefore, they can apply high weights to factors related to metadata and other profile-related information associated with the circumstances surrounding authentication events. This arrangement could be used to ease the burden on users during normal operating hours, no longer requiring the user to log into the correct machine during business hours. However, another vendor may weight authentications that come from a particular technique more heavily, for example fingerprint matching, due to a policy decision that such a technique is more suitable for authentication for the particular vendor's purposes.
Such various weights can be defined by the authentication requestor generating the authentication request and sending the trust engine 110 with the authentication request in a mode of operation. Such options could also be set as preferences during an initial enrollment process for the authentication requester and stored in the authentication engine in another mode of operation.
Once the authentication engine 215 produces an authentication trust level for the provided authentication data, this trust level is used to complete the authentication request in step 1640, and this information is forwarded from the authentication engine 215 to the transaction engine 205 for inclusion in a message to the authentication requester.
The process described above is merely exemplary, and those skilled in the art will recognize that the steps need not be performed in the order shown or that only certain of the steps are desired to be performed, or that a variety of combination of steps may be desired. Additionally, certain steps, such as evaluating the reliability of each provided authentication instance, can be carried out in parallel with each other if circumstances permit.
In a further aspect of this invention, a method is provided for adapting conditions when the level of authentication trust produced by the above-described process fails to meet the level of trust required of the vendor or other party requiring authentication. In circumstances such as these there is a gap between the provided confidence level and the desired confidence level, the operator of the confidence engine 110 is in a position to provide opportunities for one or both parties to provide alternative data or requirements to close this gap. trustworthy. This process will be referred to as “trust arbitration” in this document.
Trust arbitration can take place in a cryptographic authentication structure as described above with reference to Figures 10 and 11. As shown therein, a dealer or other party will request an authentication of a particular user in association with a transaction. particular. In one circumstance, the distributor simply requests an authentication, positive or negative, and after receiving appropriate data from the user, the trust engine 110 will provide such a binary authentication. In circumstances such as these, the degree of trust required to ensure positive authentication is determined based on preferences set in the trust engine 110.
However, it is also possible that the dealer may request a particular level of trust to complete a particular transaction. This required level can be included with the authentication request (e.g. authenticate this user at 98% trust) or it can be determined by trust engine 110 based on other factors associated with the transaction (i.e. authenticate this user as appropriate for this transaction). One such factor may be the economic value of the transaction. For transactions that have higher economic value, a higher degree of trust may be required. Similarly, for transactions with high degrees of risk, a high degree of trust may be required. Conversely, for transactions that are low risk or low value, lower levels of trust may be required by the distributor or other authentication requester.
The trust arbitration process takes place between the stages of the trust engine 110 that receives the authentication data in step 1050 of Figure 10 and the return of an authentication result to the distributor in step 1055 of Figure 10. Enter These stages, the process leading to the assessment of trust levels and potential trust arbitrage take place as shown in Figure 17. In circumstances where simple binary authentication is performed, the process shown in Figure 17 reduces to having the transaction engine 205 that
ES 2 658 097 T3 directly comparing the provided authentication data with the enrollment data for the identified user as discussed above with reference to Figure 10, labeling any difference as negative authentication.
As shown in Figure 17, the first step after receiving the data in step 1050 is for the transaction engine 205 to determine the level of trust that is required for positive authentication for this particular transaction in step 1710. This stage can be performed in one of several different ways. The required trust level may be specified to the trust engine 110 by the authentication requestor at the time the authentication request is made. The authentication requester can also set a preference in advance that is stored in the repository 210 or other storage that is accessible by the transaction engine 205. This preference can then be read and used each time an authentication request is made by this authentication requester. The preference can also be associated with a particular user and a security measure such that a particular level of trust is always required to authenticate that user, the user preference being stored in the repository 210 or other storage medium accessible by the login engine. transaction 205. The required level can also be obtained by the transaction engine 205 or the authentication engine 215 based on information provided in the authentication request, such as the value and risk level of the transaction to authenticate.
In one mode of operation, a policy management module or other software that is used when the authentication request is generated is used to specify the degree of trust required for the authentication of the transaction. This can be used to provide a set of rules to follow when assigning the required level of trust based on the policies that are specified in the policy management module. An advantageous mode of operation is for such a module to be incorporated with a dealer's web server to appropriately determine the required level of trust for indexed transactions with the dealer's web server.
In this manner, transaction requests from users can be assigned to a required level of trust in accordance with dealer policies and such information can be forwarded to the trust engine 110 along with the authentication request.
This level of trust required correlates with the degree of certainty the distributor wishes to have that the individual being authenticated is in fact who he identifies as himself. For example, if the transaction is one where the dealer wants a fair degree of certainty since goods are being exchanged hands, the dealer may require a confidence level of 85%. For the situation where the distributor is merely authenticating the user to allow them to view member-only content or privileges to exercise in a chat room, the downside risk may be small enough that the distributor requires only a 60% trust level. However, to enter into a production contract worth tens of thousands of dollars, the distributor may require a confidence level of 99% or more.
This required trust level represents a metric to which the user must authenticate himself to complete the transaction. If the required trust level is 85% for example, the user must provide authentication to trust engine 110 sufficient for trust engine 110 to say with 85% confidence that the user is who they say they are. It is the balance between this required level of trust and the level of authentication trust that produces either a positive authentication (to the satisfaction of the reseller) or a possibility of trust arbitration.
As shown in Figure 17, after the transaction engine 205 receives the required trust level, it compares in step 1720 the required trust level to the authentication trust level that the authentication engine 215 calculated for the current authentication. (as discussed with reference to Figure 16). If the authentication trust level is higher than the trust level required for the transaction in step 1730, then the process moves to step 1740 where positive authentication occurs for this transaction by the transaction engine 205. A message to this effect will then be inserted into the authentication results and returned to the distributor via transaction engine 205 as shown in step 1055 (see Figure 10).
However, if the authentication trust level does not satisfy the required trust level in step 1730, then a trust gap exists for the current authentication, and trust arbitration is performed in step 1750. The trust arbitration is described more fully with reference to Figure 18 below. This process as described below takes place in the transaction engine 205 of the trust engine 110. Since no authentication or other cryptographic operations are required to perform trust arbitration (other than those required for SSL communication between transaction engine 205 and other components), the process can be performed outside of authentication engine 215. However, as will be discussed below, any reevaluation of authentication data or other authentication or cryptographic events will require the transaction engine 205 to resend the appropriate data to the authentication engine 215. Those skilled in the art will recognize that the process Trusted arbitration could alternatively be structured to take place partially or completely in the authentication engine itself 215.
ES 2 658 097 T3
As mentioned above, trust arbitration is a process where the trust engine 110 mediates a negotiation between the distributor and the user in an attempt to ensure positive authentication when appropriate. As shown in step 1805, the transaction engine 205 first determines whether or not the current situation is appropriate for trust arbitration. This can be determined based on the circumstances of the authentication, for example if this authentication has already been through multiple arbitration cycles, as well as on the preferences of any of the distributor or user, as will be further discussed below.
In such circumstances where arbitration is not possible, the process continues to step 1810 where the transaction engine 205 generates a negative authentication, and then inserts it into the authentication results that are sent to the distributor in step 1055 (see Figure 10). One limit that can be used to advantage to prevent authentications from being pending indefinitely is to set a time limit period from the initial authentication request. In this way, any transaction that is not positively authenticated within the time limit is denied further arbitration and is negatively authenticated. Those skilled in the art will recognize that such a time limit may vary depending on the circumstances of the transaction and the wishes of the user and distributor. Limitations can also be placed on the number of attempts that can be made to provide successful authentication. Such limitations can be handled by an attempt limiter 535 as shown in Figure 5.
If arbitration is not prohibited in step 1805, the transaction engine 205 will then participate in the negotiation with one or both of the parties to the transaction. Transaction engine 205 may send a message to the user requesting some additional form of authentication to enhance the level of authentication trust produced as shown in step 1820. In the simplest form, this may simply indicate that the authentication was insufficient. A request can also be sent to produce one or more additional authentication instances to improve the overall trust level of the authentication.
If the user provides any additional authentication instances in step 1825, then the transaction engine 205 adds these authentication instances to the authentication data for the transaction and forwards them to the authentication engine 215 as shown in step 1015 (see Figure 10), and the authentication is re-evaluated based on the pre-existing authentication instances for this transaction and the newly provided authentication instances.
An additional type of authentication may be a request from the trust engine 110 to make some form of person-to-person contact between the operator of the trust engine 110 (or a trusted partner) and the user, for example, by phone call. . This phone call or other non-computer authentication can be used to provide personal contact with the individual and also to perform some form of questionnaire-based authentication. This can also provide the opportunity to verify an originating phone number and potentially an analysis of the user's voice when they are on the call. Even though additional authentication data cannot be provided, the additional context associated with the user's telephone number can enhance the context of authentication reliability. Any data or circumstances reviewed based on this phone call are fed into the trust engine 110 for use in consideration of the authentication request.
Additionally, at step 1820 the trust engine 110 may provide an opportunity for the user to purchase coverage, effectively purchasing more reliable authentication. The operator of the trust engine 110 may at times wish to only make such an option available if the trust level of the authentication is above a certain threshold to begin with. In effect, this user-side coverage is a way for the trust engine 110 to guarantee the user when the authentication meets the normal required trust level of the trust engine 110 for authentication, but does not meet the distributor's required trust level. for this transaction. In this way, the user can still successfully authenticate at a very high level as may be required by the distributor, even though he only has authentication instances that produce sufficient trust for the trust engine 110.
This function of the trust engine 110 allows the trust engine 110 to guarantee the satisfaction of the trust engine 110 to someone who is authenticated, but not of the dealer. This is analogous to the function performed by a notary adding his signature to a document to indicate that someone who reads the document at a later time than the person whose signature appears on the document is in fact the person who signed it. The signature of the notary attests the act of signing by the user. In the same way, the trust engine is providing an indication that the person making the transaction is who he says he is.
However, since the trust engine 110 is artificially boosting the trust level provided by the user, there is a higher risk to the operator of the trust engine 110, since the user is not actually meeting the trust level required from the dealer. . The cost of the hedge is designed to offset the risk of a false positive authentication to the trust engine 110 (which may be effectively notarizing user authentications). User pays motor operator
ES 2 658 097 T3 trust 110 to take the risk of authenticating at a higher level of trust than actually provided.
Since such a hedging system allows someone to effectively purchase a higher trust rating from trust engine 110, both dealers and users may wish to avoid using user-side hedging on certain transactions. Distributors may wish to limit positive authentications to circumstances where they know that the actual authentication data supports the degree of trust they require and thus may indicate to the trust engine 110 that user-side coverage should not be allowed. Similarly, to protect their identity online, a user may wish to avoid the use of their user-side coverage on their account, or may wish to limit their use to situations where the level of authentication trust without the coverage is greater than a certain limit. This can be used as a security measure to prevent someone from accidentally eavesdropping on a password or stealing a smart card and using it to falsely authenticate at a low level of trust, and then purchase coverage to produce a very high level of (false ) confidence. These factors can be evaluated when determining whether user-side coverage is allowed.
If the user purchases coverage in step 1840, then the authentication trust level is adjusted based on the coverage purchased in step 1845, and the authentication trust level and required trust level are compared again in step 1730 ( see Figure 17). The process continues from there, and can lead to either a positive authentication at step 1740 (see Figure 17), or back to the trust arbitration process at step 1750 for further arbitration (if allowed) or an authentication. negative at step 1810 if further arbitration is prohibited.
In addition to sending a message to the user in step 1820, the transaction engine 205 may also send a message to the distributor in step 1830 indicating that a pending authentication is currently below the required trust level. The message may also offer various options on how to proceed with the dealer. One of these options is simply to inform the reseller what the current authentication trust level is and ask if the reseller wants to maintain their current unmet required trust level. This can be beneficial as in some cases, the distributor may have independent means to authenticate the transaction or may have used a default set of requirements that generally result in a higher required level being initially specified than is actually necessary for the particular transaction in question.
For example, it may be conventional practice that all incoming purchase order transactions with the distributor are expected to meet a 98% confidence level.
However, if an order was recently analyzed over the phone between the dealer and a former customer, and immediately after the transaction is authenticated, but only at a 93% confidence level, the dealer may simply want to lower the acceptance level to this transaction, since the phone call effectively provides additional authentication for the dealer. In certain circumstances, the vendor may wish to lower their required trust level, but not all the way to the current authentication trust level. For example, the dealer in the example above may consider that the phone call before the order may merit a 4% reduction in the degree of confidence required; however, this is still higher than the 93% confidence produced by the user.
If the distributor does not adjust its required trust level in step 1835, then the authentication trust level produced by the authentication and the required trust level are compared in step 1730 (see Figure 17). If the trust level now exceeds the required trust level, positive authentication can be generated in the transaction engine 205 in step 1740 (see Figure 17). If not, additional arbitration may be attempted as discussed above if allowed.
In addition to requesting an adjustment to the required level of trust, the transaction engine 205 may also offer dealer-side coverage for the dealer requesting authentication. This coverage serves a purpose similar to that described above for user side coverage. At this point, however, instead of the cost that corresponds to the risk that is being taken by the trust engine 110 in authenticating above the actual authentication trust level produced, the cost of the hedge corresponds to the risk that is being taken. by the reseller by accepting a lower level of trust in authentication.
Rather than just reducing their current required level of trust, the reseller has the option of purchasing coverage to protect themselves from the additional risk associated with a lower level of trust in user authentication. As described above, it may be advantageous for the distributor to only consider purchasing such coverage to fill the trust gap in conditions where the existing authentication is already above a certain threshold.
The availability of such coverage on the dealer side allows the dealer the option of: lowering his trust requirement directly at no additional cost to himself, bearing himself the risk of false authentication (based on the lower trust level required); or, buying coverage for the gap
ES 2 658 097 T3 trust between the authentication trust level and its requirement, the operator of the trust engine 110 bearing the risk of the lower trust level that has been provided. By purchasing the coverage, the reseller effectively maintains its high trust level requirement - since the risk of false authentication is shifted to the operator of the trust engine 110.
If the dealer purchases coverage in step 1840, the authentication trust level and the required trust levels are compared in step 1730 (see Figure 17), and the process continues as described above.
Note that it is also possible for both the user and the distributor to respond to messages from the trust engine 110. Those skilled in the art will recognize that there are multiple ways in which such situations can be handled. An advantageous way to handle the possibility of multiple responses is to simply treat responses in a first-in, first-serve manner.
For example, if the reseller responds with a reduced required trust level and immediately thereafter the user also purchases coverage to raise their authentication level, the authentication is first reassessed based on the reduced trust requirement of the reseller. If the authentication is now positive, the user's coverage acquisition is ignored. In another advantageous mode of operation, the user may only be charged for the level of coverage required to meet the new reduced dealer trust requirement (if even a trust gap was left with the reduced dealer trust requirement).
If no response is received from anywhere during the trust arbitration process at step 1850 within the time limit set for authentication, the arbitration is re-evaluated at step 1805. This effectively begins the arbitration process again. If the time limit has expired or other circumstances prevent further arbitration at step 1805, negative authentication is generated by transaction engine 205 at step 1810 and returned to the distributor at step 1055 (see Figure 10). If not, new messages can be sent to the user and dealer, and the process can be repeated as desired.
Note that for certain types of transactions, for example, digital signature of documents that are not part of a transaction, may not be necessary for a distributor or other third party; therefore the transaction is primarily between the user and the trust engine 110. In circumstances such as these, the trust engine 110 will have its own required trust level that must be satisfied in order to generate positive authentication. However, in such circumstances, it will often be undesirable for the trust engine 110 to provide cover to the user so that the trust of their own signature is raised.
The process described above and shown in Figures 16-18 can be carried out using various communication modes as described above with reference to trust engine 110. For example, messages can be web-based and sent using SSL connections. between trust engine 110 and applets downloaded in real time to browsers running on the user or vendor systems. In an alternative mode of operation, certain specialized applications may be in use by the user and dealer that facilitate such hedging and arbitrage transactions. In another alternative mode of operation, secure email operations can be used to mediate the arbitration described above, thereby allowing lazy evaluations and batch processing of authentications. Those skilled in the art will recognize that different modes of communications may be used as appropriate to the circumstances and authentication requirements of the vendor.
The following description with reference to Figure 19 describes a sample transaction that integrates the various aspects of the present invention as described above. This example illustrates the overall process between a user and a reseller as mediated by trust engine 110. Although the various steps and components as described in detail above can be used to carry out the following transaction, the illustrated process focuses on the interaction between the trust engine 110, the user, and the reseller.
The transaction begins when the user, while viewing web pages online, fills in an order form on the dealer website at step 1900. The user wants to send his order form to the dealer, signed with his digital signature. To do this, the user submits the order form with their request for a signature to the trust engine 110 in step 1905. The user will also provide authentication data that will be used as described above to authenticate their identity.
In step 1910 the authentication data is compared with the registration data by the trust engine 110 as previously discussed, and if positive authentication occurs, the order form hashing, signed with the user's private key, it is forwarded to the distributor together with the order form itself.
The distributor receives the signed form in step 1915, and then the distributor will generate an invoice or other contract related to the acquisition to be made in step 1920. This contract is sent back to the user
ES 2 658 097 T3 with a request for a signature in step 1925. The distributor also sends an authentication request for this contract transaction to the trust engine 110 in step 1930 that includes a hash of the contract to be signed by both parties . To enable the contract to be digitally signed by both parties, the dealer also includes authentication data himself so that the dealer's signature on the contract can be verified later if necessary.
As discussed above, the trust engine 110 then verifies the authentication data provided by the distributor to confirm the identity of the distributor, and if the data produces positive authentication in step 1935, it continues with step 1955 when received. the data from the user. If the dealer authentication data does not match the dealer enrollment data to the desired degree, a message is returned to the dealer requesting additional authentication. Trust arbitration can be performed at this point if necessary, as described above, for the dispatcher to successfully authenticate itself to the trust engine 110.
When the user receives the contract in step 1940, he reviews it, generates authentication data to sign if acceptable in step 1945, and then sends a hash of the contract and its authentication data to trust engine 110 in step 1950. The trust engine 110 verifies the authentication data in step 1955 and if the authentication is good, it continues to process the contract as described below. As discussed above with reference to Figures 17 and 18, trust arbitration can be performed as appropriate to close any trust gap that exists between the authentication trust level and the authentication level required for the transaction.
The trust engine 110 signs the contract hash with the user's private key, and sends this signed hash to the dispatcher in step 1960, who signs the entire message on his own behalf, that is, including a hash of the entire message (including user's signature) encrypted with private key 510 from trust engine 110. This message is received by the dispatcher in step 1965. The message represents a signed contract (encrypted contract hash using the user's private key) and a reception from the trust engine 110 (the message hash including the signed contract, encrypted using the trust engine 110's private key).
The trust engine 110 similarly prepares a hash of the contract with the dealer's private key in step 1970, and forwards this to the user, signed by the trust engine 110. In this way, the user also receives a copy of the contract. , signed by the distributor, as well as a receipt, signed by the trusted engine 110, of the delivery of the contract signed in stage 1975.
In addition to the foregoing, a further aspect of the invention provides a cryptographic Service Provider Module (SPM) that may be available to a client-side application as a means of accessing functions provided by the trust engine 110 described above. An advantageous way of providing such a service is for the cryptographic SPM to mediate communications between a third-party Application Programming Interface (API) and a trust engine 110 that is accessible via a network or other remote connection. A sample cryptographic SPM is described below with reference to Figure 20.
For example, in a typical system, a number of APIs are available to programmers. Each API provides a set of function calls that can be made by an application 2000 running on the system. Examples of APIs that can provide suitable programming interfaces for cryptographic functions, authentication functions, and other security functions include the Cryptographic API (CAPI) 2010 provided by Microsoft with its Windows operating systems, and the Common Data Security Architecture (CDSA) , sponsored by IBM, Intel and other members of the Open Group. CAPI will be used as an exemplary security API in the discussion that follows. However, the cryptographic SPM described could be used with CDSA or other security API as is known in the art.
This API is used by a user system 105 or dispatcher system 120 when a call is made for a cryptographic function. Included among these functions may be requests associated with performing various cryptographic operations, such as encrypting a document with a particular key, signing a document, requesting a digital certificate, verifying a signature on a signed document, and such other cryptographic functions as described in the present document or are known to those skilled in the art.
Such cryptographic functions are normally performed locally for the system in which the CAPI 2010 is located. This is because in general the requested functions require the use of any resource of the user's local system 105, such as a fingerprint reader, or software functions that are programmed using libraries that run on the local machine. Access to these local resources is typically provided by one or more Service Provider Modules (SPM) 2015, 2020 as referenced above that provide resources with which cryptographic functions are carried out. Such SPMs can include software libraries 2015 to perform encryption or decryption operations, or drivers and applications 2020 that can access specialized hardware 2025, such as biometric scanning devices. Just as CapI 2010 provides functions that can be used by an application
ES 2 658 097 T3
2000 From system 105, the 2015, 2020 SPMs provide CAPI with access to lower-level features and resources associated with the services available on the system.
In accordance with the invention, it is possible to provide a cryptographic SPM 2030 that can access the cryptographic functions provided by the trust engine 110 and make these functions available to an application 2000 through CAPI 2010. Unlike the implementations where CAPI 2010 is only available to access resources that are locally available through the 2015, 2020 SPMs, a 2030 cryptographic SPM as described in this document could send requests for cryptographic operations to a remotely located network accessible to the trust engine 110 to perform the desired operations.
For example, if an application 2000 has a need for a cryptographic operation, such as signing a document, the application 2000 makes a function call to the appropriate CAPI 2010 function. CAPI 2010 in turn will execute this function, making use of the resources made available to it through the SPM 2015, 2020 and the cryptographic SPM 2030. In the case of a digital signature function, the cryptographic SPM 2030 will generate an appropriate request that will be sent to the trust engine 110 through the communication link 125.
The operations that take place between the cryptographic SPM 2030 and the trust engine 110 are the same operations that would be possible between any other system and the trust engine 110. However, these functions are effectively made available to a security system. user 105 through CAPI 2010 so that they appear to be locally available on user 105's own system. However, unlike conventional SPMs 2015, 2020, the functions are carried out in the remote trust engine 110 and the results forwarded to the cryptographic SPM 2030 in response to appropriate requests through the communication link 125.
This cryptographic SPM 2030 makes available a number of operations to the user system 105 or a dispatcher system 120 that may not be available otherwise. These functions include without limitation: document encryption and decryption; digital certificate coverage, digital signature of documents; verification of digital signatures; and other such operations as will be apparent to those skilled in the art.
In a separate embodiment, the present invention comprises a complete system for performing the data securing methods of the present invention on any data set. The computer system of this embodiment comprises a data division module comprising the functionality shown in Figure 8 and described at this point. In one embodiment of the present invention, the data division module, sometimes referred to herein as a secure data analyzer, comprises a program or suite of analyzer software comprising data division, encryption and decryption, reconstitution functionality. or reassembly. This embodiment may further comprise a data storage facility or multiple data storage facilities, as well. The data division module, or secure data analyzer, comprises a set of cross-platform software module that is integrated into an electronic infrastructure, or as a complement to any application that requires the final security of its elements. This analysis process operates on any type of data set, and on any and all types of files, or on a database in any row, column, or cell of data in that database.
The analysis process of the present invention can be designed, in one embodiment, in a modular level manner, and any encryption process is suitable for use in the processes of the present invention. Modular levels of the analysis and division process of the present invention may include, but are not limited to, 1) cryptographic division, dispersed and securely stored in multiple locations; 2) encrypt, cryptographically split, securely and dispersed stored in multiple locations; 3) encrypt, cryptographically divide, encrypt each share, then stored dispersed and securely in multiple locations; and 4) encrypt, cryptographically split, encrypt each share with a different type of encryption that was used in the first stage then stored dispersed and securely in multiple locations.
The process comprises, in one embodiment, dividing the data according to the contents of a generated random number or key, and performing the same cryptographic division of the key used in the encryption of the data division to ensure two or more chunks, or shares, of parsed and split data, and in one embodiment, preferably into four or more parsed and split data chunks, encrypt all chunks, then distribute and store these portions back in the database, or relocate them to any named, fixed or removable device, depending on the requestor's need for privacy and security. Alternatively, in another embodiment, the encryption may take place prior to the splitting of the data set by the splitting module or the secure data analyzer. The original data processed as described in this embodiment is encrypted and obfuscated and secured. The dispersion of the encrypted elements, if desired, can be virtually anywhere, including, but not limited to, a single server or data storage device, or between separate data storage facilities or devices. The management of the encryption key in one embodiment can be included in the software suite, or in another embodiment it can be integrated into an existing infrastructure or any other desired location.
ES 2 658 097 T3
A cryptographic division (crypto division) partitions the data into N number of shares. Partitioning can be on any data unit size, including a single bit, bits, bytes, kilobytes, megabytes, or larger units, as well as any pattern or combination of data unit sizes whether predetermined or randomly generated. The units can also be different in size, based on any of a set of random or predetermined values. This means that the data can be viewed as a sequence of these units. In this way the size of the data units themselves can present the most secure data, for example by using one or more predetermined or randomly generated patterns, sequences or combinations of data unit sizes. The drives below are distributed (randomly or by a set of default values) across the N shares. This distribution could also imply a mixing of the order of the drives in the shares. It is readily apparent to those skilled in the art that the distribution of the data units in the shares can be made according to a wide variety of possible selections, including but not limited to predetermined sizes of fixed size, or one or more combinations, pattern or sequence of data unit sizes that are predetermined or randomly generated.
An example of this process of cryptographic division, or crypto division, would be to consider that the data is 23 bytes in size, with the size of the data unit chosen to be one byte, and with the number of shares selected to be 4 Each byte would be distributed in one of the 4 shares. Assuming a random distribution, a key would be obtained to create a sequence of 23 random numbers (r1, r2, r3 to r23), each with a value between 1 and 4 that corresponds to the four shares. Each of the data units (in this example 23 individual bytes of data) is associated with one of the 23 random numbers that correspond to one of the four shares. The distribution of the data bytes in the four shares would take place by placing the first byte of the data in share number r1, byte two in share r2, byte three in share r3, up to byte of order 23 of data in share r23. It is readily apparent to those skilled in the art that a wide variety of other possible steps or combination of step sequences, including the size of the data units, can be used in the crypto-division process of the present invention, and the above example is a non-limiting description of one of the processes for crypto-splitting data. To recreate the original data, the reverse operation could be performed.
In another embodiment of the crypto-splitting process of the present invention, one option for the crypto-splitting process is to provide sufficient redundancy in the shares so that only a subset of the shares is necessary to reassemble or restore the data to its original or usable form. As a non-limiting example, the crypto division can be done as a "3 of 4" crypto division such that only three of the four shares are necessary to reassemble or restore the data to its original or usable form. This is also referred to as a "crypto division M of N" where N is the total number of shares, and M is at least one less than N. It is readily apparent to those skilled in the art that there may be many possibilities to create this redundancy in the crypto division process of the present invention.
In one embodiment of the crypto division process of the present invention, each unit of the data is stored in two shares, the first share and the spare share. Using the "3 of 4" crypto division process described above, any one share can be lost, and this is sufficient to reassemble or restore the original data without lost data drives since only three of the four total shares are required. As described herein, a random number is generated that corresponds to one of the shares. The random number is associated with a data unit, and is stored in the corresponding share, based on a key. A key is used, in this embodiment, to generate the main share and reserve share random number. As described herein for the crypto division process of the present invention, a set of random numbers (also referred to as primary share numbers) from 0 to 3 equal to the number of data units is generated. Then another set of random numbers (also referred to as spare share numbers) is generated from 1 to 3 equal to the number of data units. Each data unit is then associated with a primary share number and a spare share number. Alternatively, a set of random numbers that is less than the number of data units can be generated, and the set of random numbers repeated, but this may reduce the security of sensitive data. The primary share number is used to determine in which share the data drive is stored. The spare share number is combined with the primary share number to create a third share number between 0 and 3, and this number is used to determine in which share the data drive is stored. In this example, the equation to determine the third number is:
(primary share number + spare share number) MOD 4 = third share number.
In the above-described embodiment where the main share number is between 0 and 3, and the spare share number is between 1 and 3 it ensures that the third share number is different from the main share number. This results in the data drive being stored in two different shares. It is readily apparent to those skilled in the art that there can be many ways to perform
ES 2 658 097 T3 redundant crypto division and non-redundant crypto division in addition to the embodiments disclosed herein. For example, the data drives in each share could be mixed using a different algorithm. This data unit mixing can be done as the original data is divided into the data units, or after the data units are placed in the partitions, or after the sharing is complete, for example.
The various crypto division processes and data mixing processes described herein, and all other embodiments of the crypto division and data mixing methods of the present invention can be performed in data units of any size, including but not limited to, as small as an individual bit, bits, bytes, kilobytes, megabytes, or larger.
An example of a source code implementation that could perform the crypto division process described in this document is:
DATA [1:24] - byte series with the data to be divided SHARES [0: 3; 1:24] - two-dimensional series representing each row one of the shares
RANDOM [1:24] - series of random numbers in the interval 0..3 = 1;
= 1;
= 1;
= 1;
For J = 1 to 24 do
Begin
IF RANDOM [J [== 0 then Begin
SHARES [1, S1] = DATA [J];
= S1 + 1;
End
ELSE IF RANDOM [J [== 1 then Begin
SHARES [2, S2] = DATA [J];
= S2 + 1;
END
ELSE IF RANDOM [J [== 2 then Begin
Shares [3, S3] = data [J]; S3 = S3 + 1;
End
Else begin
Shares [4, S4] = data [J]; S4 = S4 + 1;
End;
END;
An example of a source code embodiment that would perform the crypto-splitting RAID process described in this document is:
Generate two sets of numbers, Main share is 0 to 3, Spare share is 1 to 3. Then put each data drive in share [main share [1]] and share [(main share [1] + spare_share [1] ]) mod 4, with the same process as in the previously described crypto division. This method will be scalable to any size of N, where only N-1 shares are required to restore the data.
Recovery, recombination, reassembly, or reconstitution of the encrypted data elements may use any number of authentication techniques, including, but not limited to, biometrics, such as fingerprint recognition, facial scan, hand scan, iris scan, retinal examination, eye examination, vascular pattern recognition or DNA analysis. The data division and / or analyzer modules of the present invention can be integrated into a wide variety of infrastructure products or applications as desired.
Traditional encryption technologies in the art rely on one or more keys used to encrypt the data and render it unusable without the key. The data, however, remains whole and intact and is under attack. The secure data analyzer of the present invention, in one embodiment, addresses this problem by performing a cryptographic analysis and dividing the encrypted file into two or more slices or shares, and in another
ES 2 658 097 T3 embodiment, preferably four or more shares, adding another encryption layer to each data share, then storing the shares in different physical and / or logical locations.
When one or more data shares are physically removed from the system, using a removable device, such as a data storage device, or by placing the partition under the control of another party, any possibility of compromise of the secured data is effectively removed. .
An example of an embodiment of the secure data analyzer of the present invention and an example of how it can be used is shown in Figure 21 and described below. However, it is readily apparent to those skilled in the art that the secure data analyzer of the present invention can be used in a wide variety of ways in addition to the non-limiting example below. As a deployment option, and in one embodiment, the secure data analyzer may be implemented with external session key management or secure internal storage of session keys. Upon deployment, a Parser Master Key will be generated that will be used to secure the application and for encryption purposes. It should also be noted that the incorporation of the Analyzer Master key into the resulting secured data allows for flexibility of sharing secured data for individuals in a workgroup, business, or extended public.
As shown in Figure 21, this embodiment of the present invention shows the steps of the processes performed by the secure data analyzer in data to store the session master key with the analyzed data:
1. Generate a session master key and encrypt the data using RS1 stream encryption.
two. Separate the resulting encrypted data into four shares or pieces of data analyzed according to the pattern of the session master key.
3. In this embodiment of the method, the session master key will be stored together with the secured data shares in a data repository. Detach the session master key according to the Parser Master Key pattern and append the key data to the encrypted parsed data.
Four. The resulting four data shares will contain encrypted portions of the original data and portions of the session master key. Generate a stream encryption key for each of the four data shares.
5. Encrypt each share, then store the encryption keys in different locations of the encrypted data portions or shares: Share 1 gets Key 4, Share 2 gets Key 1, Share 3 gets Key 2, Share 4 gets Key 3 .
To restore the original data format, the stages are reversed.
It is readily apparent to those skilled in the art that certain steps of the methods described herein can be performed in a different order, or repeated multiple times, as necessary. It is also readily apparent to those skilled in the art that portions of the data can be handled differently from one another. For example, multiple stages of analysis can be performed on only a portion of the analyzed data. Each piece of analyzed data can be uniquely secured in any desirable manner provided only that the data can be reassembled, reconstituted, reformed, decrypted, or restored to its original or other usable form.
As shown in Figure 22 and described herein, another embodiment of the present invention comprises the steps of the process performed by the secure data analyzer in data to store the session master key data in one or more data tables. separate key management:
1. Generate a session master key and encrypt the data using RS1 stream encryption.
two. Separate the resulting encrypted data into four shares or pieces of data analyzed according to the pattern of the session master key.
3. In this embodiment of the method of the present invention, the session master key will be stored in a separate key management table in a data repository. Generate a unique transaction ID for this transaction. Store the transaction ID and session master key in a separate key management table. Separate the transaction ID according to the Parser Master Key pattern and append the data to the encrypted parsed or separated data.
Four. The resulting four data shares will contain encrypted portions of the original data and portions of the transaction ID.
5. Generate a stream encryption key for each of the four data shares.
6. Encrypt each share, then store the encryption keys in different locations of the encrypted data portions or shares: Share 1 gets Key 4, Share 2 gets Key 1, Share 3 gets Key 2, Share 4 gets Key 3 .
To restore the original data format, the steps are reversed.
ES 2 658 097 T3
It is readily apparent to those skilled in the art that certain steps of the method described herein can be performed in a different order, or repeated multiple times, as necessary. It is also readily apparent to those skilled in the art that portions of the data can be handled differently from one another. For example, multiple steps of separation or analysis can be performed on only a portion of the analyzed data. Each piece of analyzed data can be uniquely secured in any desirable manner provided only that the data can be reassembled, reconstituted, reformed, decrypted, or restored to its original or other usable form.
As shown in Figure 23, this embodiment of the present invention shows the steps of the processes performed by the secure data analyzer in data to store the session master key with the analyzed data:
1. Access the analyzer master key associated with the authenticated user
two. Generate a single session master key
3. Obtain an Intermediary Key from an exclusive OR function of the Parser Master Key and the session master key
Four. Optional encryption of data using an existing or new encryption algorithm keyed with the Intermediary Key.
5. Separate the resulting data optionally encrypted into four shares or pieces of data analyzed according to the Intermediary key pattern.
6. In this embodiment of the method, the session master key will be stored together with the secured data shares in a data repository. Separate the session master key according to the Parser Master Key pattern and append the key data in the optionally encrypted parsed data shares.
7. The resulting multiple data shares will optionally contain portions of the original encrypted data and portions of the session master key.
8. Optionally generate an encryption key for each of the four data shares.
9. Optionally encrypt each share with an existing or new encryption algorithm, then store the encryption keys in different locations of the encrypted data slices or shares: for example, Share 1 gets Key 4, Share 2 gets Key 1, Share 3 gets Key 2, Share 4 gets Key 3.
To restore the original data format, the stages are reversed.
It is readily apparent to those skilled in the art that certain steps of the methods described herein can be performed in a different order, or repeated multiple times, as necessary. It is also readily apparent to those skilled in the art that portions of the data can be handled differently from one another. For example, multiple stages of analysis can be performed on only a portion of the analyzed data. Each piece of analyzed data can be uniquely secured in any desirable manner provided only that the data can be reassembled, reconstituted, reformed, decrypted, or restored to its original or other usable form.
As shown in Figure 24 and described herein, another embodiment of the present invention comprises the steps of the process performed by the secure data analyzer on data to store the session master key data in one or more data tables. separate key management:
1. Access the Analyzer Master Key associated with the authenticated user
two. Generate a single session Master Key
3. Obtain an Intermediary Key from an exclusive OR function of the Parser Master Key and Session Master Key
Four. Optionally encrypt the data using an existing or new encryption algorithm keyed with the Intermediary Key.
5. Separate the resulting data optionally encrypted into four shares or pieces of data analyzed according to the Intermediary Key pattern.
6. In this embodiment of the method of the present invention, the session master key will be stored in a separate key management table in a data repository. Generate a unique transaction ID for this transaction. Store the transaction ID and session master key in a separate key management table or pass the session master key and transaction ID back to the requesting program for external management. Separate the transaction ID according to the Parser Master Key pattern and append the data to the optionally encrypted or separated parsed data.
7. The resulting four data shares will optionally contain portions of the original encrypted data and portions of the transaction ID.
8. Optionally generate an encryption key for each of the four data shares.
9. Optionally encrypt each share, then store the encryption keys in different locations of the encrypted data portions or shares. For example: Share 1 gets Key 4, Share 2 gets Key 1, Share 3 gets Key 2, Share 4 gets Key 3.
ES 2 658 097 T3
To restore the original data format, the stages are reversed.
It is readily apparent to those skilled in the art that certain steps of the method described herein can be performed in a different order, or repeated multiple times, as necessary. It is also readily apparent to those skilled in the art that portions of the data can be handled differently from one another. For example, multiple steps of separation or analysis can be performed on only a portion of the analyzed data. Each piece of analyzed data can be uniquely secured in any desirable manner provided only that the data can be reassembled, reconstituted, reformed, decrypted, or restored to its original or other usable form.
A wide variety of methodologies are suitable for use in the methods of the present invention, as is readily apparent to those skilled in the art. The One Time Fill algorithm is sometimes considered one of the most secure encryption methods, and is suitable for use in the method of the present invention. Using the One Time Fill algorithm requires generating a key that is as long as the data to be secured. The use of this method may be less desirable in certain circumstances such as those that result in the generation and management of very long keys due to the size of the data set to be secured. In the One Time Fill (OTP) algorithm, the simple or exclusive function, XOR, is used. For two binary streams x and y of the same length, x XOR y means the exclusive or at the bit level of x and y.
At the bit level, the following is generated:
XOR 0 = 0
XOR1 = 1
XOR 0 = 1
XOR 1 = 0
An example of this process is described in this document for an n-byte secret, s, (or data set) to split. The process will generate a random value of n bytes, a, and then set:
b = a XOR s.
Note that "s" can be obtained by the equation:
s = a XOR b.
Values a and b are referred to as shares or portions and are placed in separate repositories. Once the secret is divided into two or more shares, it is safely discarded.
The secure data analyzer of the present invention can use this function, perform multiple XOR functions incorporating multiple different secret key values: K1, K2, K3, Kn, K5. At the beginning of the operation, the data to be secured is passed through the first encryption operation, secure data = XOR data secret key 5:
S = D XOR K5
To securely store the resulting encrypted data in, for example, four shares, S1, S2, S3, Sn, the data is analyzed and divided into "n" segments, or shares, according to the value of K5. This operation results in "n" pseudo-random shares of the original encrypted data. Subsequent XOR functions can be performed on each share with the remaining secret key values, for example: secure data segment 1 = encrypted data share 1 XOR secret key 1:
SD 1 = S1 XOR K1
SD2 = S2 XOR K2
SD3 = S3 XOR K3
SDn = Sn XOR Kn.
ES 2 658 097 T3
In one embodiment, it may not be desirable to have just any repository that contains enough information to decrypt the information held therein, so the key required to decrypt the share is stored in a different data repository:
Depository 1: SD1, Kn Depository 2: SD2, K1 Depository 3: SD3, K2 Depository n: SDn, K3.
Additionally, appended to each share may be the information required to retrieve the original session encryption key, K5. Therefore, in the key management example described herein, the original session master key is referenced by a transaction ID divided into "n" shares according to the contents of the parser-dependent Master Key. the installation (TID1, TID2, TID3, TIDn):
Depository 1: SD1, Kn, TID1 Depository 2: SD2, K1, TID2 Depository 3: SD3, K2, TID3 Depository n: SDn, K3, TIDn.
In the embedded session key example described in this document, the session master key is divided into “n” shares according to the contents of the facility-dependent Analyzer Master Key (SK1, SK2, SK3, SKn) :
Depository 1: SD1, Kn, SK1 Depository 2: SD2, K1, SK2 Depository 3: SD3, K2, SK3 Depository n: SDn, K3, SKn.
Unless all four shares are recovered, the data cannot be reassembled according to this example. Even if all four shares were captured, there is no possibility of reassembling or restoring the original information without access to the session master key and the Analyzer Master Key.
This example has described one embodiment of the method of the present invention, and also describes, in another embodiment, the algorithm used to partition repositories so that the shares from all repositories can be combined to form the secret authentication material. The necessary calculations are very simple and fast. However, with the One Time Fill (OTP) algorithm there may be circumstances that make it less desirable, such as a large data set to be secured, since the key size is the same size as the data to be stored. Therefore, there would be a need to store and transmit around twice the amount of the original data which may be less desirable under certain circumstances.
RS1 stream encryption
The RS1 stream cipher splitting technique is very similar to the OTP splitting technique described herein. Instead of a random value of n bytes, a random value n '= min (n, 16) -bytes is generated and used for the RS1 Stream Encryption algorithm key. The advantage of the RS1 Stream Encryption algorithm is that a pseudo-random key is generated from a much smaller number of seeds. The execution speed of the RS1 Stream Cipher encryption is also considered to be about 10 times the speed of the Triple DES encryption well known in the art without compromising security. The RS1 Streaming Encryption algorithm is well known in the art, and can be used to generate the keys used in the XOR function. The RS1 Stream Encryption algorithm is interoperable with other commercially available stream encryption algorithms, such as the RC4 ™ stream encryption algorithm from RSA Security, Inc. and is suitable for use in the methods of the present invention.
Using the above key notation, K1 through K5 are now n-byte random values and it is set:
SD1 = S1 XOR E (K1)
SD2 = S2 XOR E (K2)
SD3 = S3 XOR E (K3)
SDn = Sn XOR E (Kn)
ES 2 658 097 T3 where E (K1) to E (Kn) are the first n 'output bytes of the RS1 Stream Encryption algorithm keyed by K1 to Kn. Shares are now placed in data repositories as described in this document.
In this RS1 stream encryption algorithm, the necessary calculations required are almost as simple and fast as the OTP algorithm. The benefit in this example using RS1 Stream Encryption is that the system needs to store and transmit on average only about 16 bytes more than the original data size to be secured per share. When the original data size is more than 16 bytes, this RS1 algorithm is more efficient than the OTP algorithm since it is simply shorter. It is readily apparent to those skilled in the art that a wide variety of encryption methods or algorithms are suitable for use in the present invention, including, but not limited to, RS1, OTP, RC4 ™, Triple DES, and AES.
Major advantages are provided by the computer systems and data security methods of the present invention over traditional encryption methods. One advantage is the security obtained from moving data sharing to different locations on one or more data repositories or storage devices, which may be in different logical, physical, or geographic locations. When data shares are physically divided and under the control of different personnel, for example, the possibility of data compromise is greatly reduced.
Another advantage provided by the methods and system of the present invention is the combination of the steps of the method of the present invention to secure data to provide an understandable process for maintaining the security of sensitive data. The data is encrypted with a secure key and divided into one or more shares, and in one embodiment, four shares, according to the secure key. The secure key is stored securely with a reference pointer that is secured across four shares according to one secure key. The data shares are then individually encrypted and the keys are stored securely with different encrypted shares. When combined, the entire process for securing data according to the methods disclosed herein becomes a comprehensive data security package.
Data secured in accordance with the methods of the present invention is easily recoverable and is restored, reconstituted, reassembled, decrypted or otherwise returned to its original or other form suitable for use. To restore the original data, the following items can be used:
1. All shares or portions of the data set.
two. Knowledge of and ability to reproduce the process flow of the method used to secure the data.
3. Access to the session master key.
Four. Access to the Master Key of the Analyzer.
Therefore, it may be desirable to plan a secure installation in which at least one of the above elements can be physically separated from the remaining components of the system (under the control of a different system administrator for example).
Protection against a rogue application invoking the application of data security methods can be enforced through the use of the Parser Master Key. A mutual authentication handshake between the secure data analyzer and the application may be required in this embodiment of the present invention prior to any action taken.
System security dictates that there is no "back door" method for re-creating the original data. For installations where data recovery issues may arise, the secure data analyzer can be enhanced to provide a mirror of all four shares and the session master key repository. Hardware options such as RAID (low-cost redundant disk systems, used to spread information across multiple disks) and software options such as replication can also aid in data recovery planning.
Key management
In one embodiment of the present invention, the data securing method uses three sets of keys for an encryption operation. Each set of keys can have individual key storage, retrieval, security, and retrieval options based on installation. Keys that can be used include, but are not limited to:
The master key of the analyzer
This key is an individual key associated with the secure data analyzer installation. If it is installed on the server where the secure data analyzer has been deployed. There are a variety of options suitable for securing this key including, but not limited to, a smart card, hardware key storage
ES 2 658 097 T3 separate, conventional key storage, custom key stores or in a secured database table, for example.
The session master key
A session master key can be generated each time data is secured. The session master key is used to encrypt the data before the analysis and division operations. It can also be incorporated (if the session master key is not embedded in the analyzed data) as a means of analyzing the encrypted data. The session master key can be secured in a variety of ways, including, but not limited to, conventional key storage, custom key storage, separate database table, or secured on encrypted shares, for example.
The share encryption keys
For each share or portions of a dataset that is created, an individual Share Encryption Key can be generated to further encrypt the shares. Share encryption keys can be stored in different shares than the share that was encrypted.
It is readily apparent to those skilled in the art that the data security and computer system methods of the present invention are widely applicable to any type of data in any setting or environment. In addition to commercial applications carried out over the internet or between customers and distributors, the data security methods and computer systems of the present invention are highly applicable to non-commercial or private settings or environments. Any data set that you want to keep safe from any unauthorized user can be secured using the methods and systems described in this document. For example, accessing a particular database in a company or organization can advantageously be restricted to only selected users using the methods and systems of the present invention to secure data. Another example is the generation, modification or access to documents in which it is desired to restrict access or prevent unauthorized or accidental access or disclosure outside of a group of selected individuals, computers or workstations. These and other examples of the ways in which the data assurance methods and systems of the present invention are applicable to any non-commercial or commercial setting or setting for any setting, including, but not limited to, any organization, government agency, or corporation. .
In another embodiment of the present invention, the data securing method uses three sets of keys for an encryption operation. Each set of keys can have individual key storage, retrieval, security, and retrieval options based on installation. Keys that can be used include, but are not limited to:
1. The master key of the analyzer
This key is an individual key associated with the secure data analyzer installation. If it is installed on the server where the secure data analyzer has been deployed. There are a variety of suitable options for securing this key including, but not limited to, a smart card, separate hardware key storage, conventional key storage, custom key stores, or in a secured database table, for example.
two. The session master key
A session master key can be generated each time data is secured. The session master key is used in conjunction with the analyzer master key to obtain the Intermediary Key. The session master key can be secured in a variety of ways, including, but not limited to, conventional key storage, custom key storage, separate database table, or secured on encrypted shares, for example.
3. The intermediary key
A proxy key can be generated each time data is secured. The intermediate key is used to encrypt the data before the analysis and division operation. It can also be incorporated as a means of analyzing encrypted data.
Four. The share encryption keys
For each share or portions of a dataset that is created, an individual Share Encryption Key can be generated to further encrypt the shares. Share encryption keys can be stored in different shares than the share that was encrypted.
ES 2 658 097 T3
It is readily apparent to those skilled in the art that the data security and computer system methods of the present invention are widely applicable to any type of data in any setting or environment. In addition to commercial applications carried out over the internet or between customers and distributors, the data security methods and computer systems of the present invention are highly applicable to non-commercial or private settings or environments. Any data set that is desired to be kept safe from any unauthorized user can be secured using the methods and system as described in this document. For example, access to a particular database in a company or organization can advantageously be restricted to only selected users using the methods and systems of the present invention to secure data. Another example is the generation, modification or access to documents in which it is desired to restrict access or prevent unauthorized or accidental access or disclosure outside of a group of selected individuals, computers or workstations. These and other examples of the ways in which the data assurance methods and systems of the present invention are applicable to any non-commercial or commercial setting or setting for any setting, including, but not limited to, any organization, government agency, or corporation. .
Workgroup, project, individual pc / laptop or cross platform data security
The data security methods and computer systems of the present invention are also useful when securing data by workgroup, individual PC / laptop project and any other platform that is in use in, for example, businesses, offices, government agencies, or any setting in which sensitive data is created, handled or stored. The present invention provides methods and computer systems for securing data that are known to be known later by organizations, such as the United States Government, for implementation throughout the government organization or between governments at a state or federal level.
The data security methods and computer systems of the present invention provide the ability to not only analyze and divide flat files but also data fields, sets and / or tables of any type. Additionally, all forms of data that can be secured under this process, including, but not limited to, text, video, images, biometrics, and voice data. The scalability, speed and data throughput of the methods for securing data of the present invention are only limited to the hardware available to the user.
In one embodiment of the present invention, data securing methods are used as described below in a workgroup environment. In one embodiment, as shown in Figure 23 and described below, the Workgroup Scale data securing method of the present invention uses the TrustEngine's private key management functionality to store user / user relationships. group and associated private keys (Parser Group Master Keys) required for a group of users to share secure data. The method of the present invention has the ability to secure data for a company, workgroup, or individual user, depending on how the Analyzer Master Key was deployed.
In one embodiment, additional key management and user / group management programs may be provided, which enable the implementation of large-scale workgroups with a single point of key management and administration. Key generation, management, and revocation are handled through the single maintenance schedule, all of which become especially important as the number of users increases. In another embodiment, key management may also be established through one or more different system administrators, who may not allow any one person or group to control data as needed. This allows secured data management to be obtained by roles, responsibilities, affiliation, rights, etc., as defined by an organization, and access to secured data may be limited to only those that are required or permitted to have access solely to the portion they are working on, while others, such as managers or executives, may have access to all the secured data. This embodiment allows the sharing of secured data between different groups in a company or organization while at the same time allowing only certain selected individuals, such as those with predetermined and authorized roles and responsibilities, to view the data as a whole. Furthermore, this embodiment of the methods and systems of the present invention also allows data sharing between, for example, separate companies, or separate departments or divisions of companies, or any department, group, agency, or office or the like separate from any government or organization or whatever, where some sharing is required, but just one party cannot be allowed to have access to all the data. Particularly obvious examples of the need and utility for such a method and system of the present invention are to allow sharing, but to maintain security, in government areas, agencies and offices and between different divisions, departments or offices of a large company, or any other organization, for example.
An example of the applicability of the methods of the present invention on a smaller scale is as follows. A Parser Master key is used as a secure data parser brand or string generation for an organization. As the analyzer master key usage scale is reduced from all
ES 2 658 097 T3 from the company to a smaller workgroup, the data securing methods described herein are used to share files across user groups.
In the example shown in Figure 25 and described below, there are six users defined along with their title or role in the organization. The sidebar represents five possible groups that the user can belong to according to their role. The arrow represents the affiliation by the user in one or more of the groups.
When the secure data analyzer is configured for use in this example, the system administrator accesses the user and group information from the operating system through a maintenance program. This maintenance program generates and assigns Analyzer Group Master Keys to users based on their group membership.
In this example, there are three members in the Senior Personnel group. For this group, the actions would be:
1. Access the Master Password of the Analyzer Group for the Senior Personnel group (generate a password if it is not available);
two. Generate a digital certificate that associates the General Manager with the Senior Personnel group;
3. Generate a digital certificate that associates the CFO with the Senior Personnel group;
Four. Generate a digital certificate that associates the Vice President of Marketing with the Senior Personnel group.
The same set of actions would be done for each group, and each member in each group. When the maintenance program is complete, the Parser Group Master Key becomes a shared credential for each member of the group. Revocation of the assigned digital certificate can be done automatically when a user is removed from a group through the maintenance program without affecting the remaining members of the group.
Once the shared credentials have been defined, the parsing and splitting process remains the same. When a file, document or data item is to be secured, the user is prompted for the target group to be used when the data is secured. The resulting insured data is only accessible by other members of the target group. This functionality of the methods and systems of the present invention can be used with any other computer system or software platform, any that can be, for example, integrated into existing application programs or used independently for file security.
It is readily apparent to those skilled in the art that any combination or combination of encryption algorithms are suitable for use in the methods and systems of the present invention. For example, the encryption steps can be repeated, in one embodiment, to produce a multilayer encryption scheme. Furthermore, a different encryption algorithm, or combination of encryption algorithms, may be used in repeated encryption steps so that different encryption algorithms are applied to different layers of the multilayer encryption scheme. As such, the encryption scheme itself can be made a component of the methods of the present invention to secure sensitive data from unauthorized use or access.
The secure data analyzer can include an error checking component as an internal component, as an external component, or as both. For example, in a suitable approach, since the data chunks are created using the secure data analyzer according to the present invention, to ensure the integrity of the data in a chunk, a hash value is taken at preset intervals in the portion and is appended to the end of the interval. The hash value is a predictable and reproducible numerical representation of the data. If any bit of the data changes, the hash value would be different. A scan module (as a separate component external to the secure data analyzer or as an internal component) can then explore the chunks of data generated by the secure data analyzer. Each piece of data (or alternatively, less than all pieces of data according to some interval or by random or pseudo-random sampling) is compared to the appended value (s) and action can be taken. This action can include a report for matching and mismatched values, an alert for mismatching values, or invoking some external or internal program to trigger a retrieval of the data. For example, data retrieval could be accomplished by invoking a retrieval module based on the concept that fewer than all portions may be required to generate original data in accordance with the present invention.
Any other suitable integrity check can be implemented using any suitable integrity information appended anywhere in all or a subset of the data portions. The integrity information can include any suitable information that can be used to determine the integrity of portions of data. Examples of integrity information may include hash values calculated based on any suitable parameter (for example, based on respective pieces of data), digital signature information, message authentication code (MAC) information, any other suitable information, or any combination thereof.
ES 2 658 097 T3
The secure data analyzer of the present invention can be used in any suitable application. In particular, the secure data analyzer described herein has a variety of applications in different areas of computing and technology. Several of such areas are discussed below. It will be understood that these are merely illustrative in nature and that any other suitable application may make use of the secure data analyzer.
It will be further understood that the examples described are merely illustrative embodiments that can be modified in any suitable way to satisfy suitable wishes. For example, the analysis and division can be based on any suitable unit, such as bits, bytes, kilobytes, megabytes, by any combination thereof, or by any other suitable unit.
The secure data analyzer of the present invention can be used to implement secure physical tokens, in which data stored in a physical token may be required to access additional data stored in another storage area. In a suitable approach, a physical token, such as a compact USB flash drive, a floppy disk, an optical disk, a smart card, or any other suitable physical token, can be used to store one of at least two pieces of analyzed data from in accordance with the present invention. To access the original data, the USB flash drive would need to be accessed. Therefore, a personal computer that maintains one portion of the analyzed data would need to have the USB flash drive, which has the other portion of the analyzed data, connected before the original data can be accessed. Figure 26 illustrates this application. Storage area 2500 includes a portion of analyzed data 2502. Physical token 2504, which has a portion of analyzed data 2506 would need to be coupled to storage area 2500 using any suitable communication interface 2508 (for example, USB, serial, parallel, Bluetooth, IR, IEEE 1394, Ethernet, or any other interface communications) to access the original data. This is useful in a situation where, for example, sensitive data on a computer is left alone and subjected to unauthorized access attempts. By removing the physical token (eg USB flash drive), sensitive data is inaccessible. It will be understood that any other approach can be used to use physical witnesses.
The secure data analyzer of the present invention can be used to implement a secure authentication system in which user enrollment data (for example, passwords, private encryption keys, fingerprint samples, biometric data or any other data from appropriate user enrollment) are parsed and split using the secure data analyzer. User enrollment data can be analyzed and divided, whereby one or more portions are stored on a smart card, a Common Government Access Card, any suitable physical storage device (e.g. magnetic or optical disk, drive key, etc.), or any other suitable device. One or more other portions of the analyzed user enrollment data may be stored in the system performing the authentication. This provides an added level of security to the authentication process (eg, in addition to the biometric authentication information obtained from the biometric source, the user's enrollment data must also be obtained by the appropriate parsed and split data portion).
The secure data analyzer of the present invention can be integrated into any suitable existing system to provide the use of its functionality in each respective environment of the system. Figure 27 shows a block diagram of an illustrative 2600 system, which may include software, hardware, or both to implement any suitable application. The 2600 system can be an existing system in which the 2602 secure data analyzer can be retrofitted as an integrated component. Alternatively, the secure data analyzer 2602 can be integrated into any suitable 2600 system from, for example, its earliest design stage. The 2600 Secure Data Analyzer can be integrated into any suitable level of the 2600 system. For example, secure data analyzer 2602 can be integrated into system 2600 at a sufficiently background level that the presence of secure data analyzer 2602 can be substantially transparent to an end user of system 2600. Secure data analyzer 2602 can be used to analyze and divide data among one or more storage devices 2604 in accordance with the present invention. Some illustrative examples of systems that have the secure data analyzer built into them are discussed below.
The secure data analyzer of the present invention can be integrated into an operating system kernel (eg, Linux, Unix, or any other suitable commercial or proprietary operating system). This integration can be used to protect data at the device level in which, for example, data that would normally be stored on one or more devices is separated into a number of chunks by the secure data analyzer built into the operating system and stored between the one or more devices. When trying to access the original data, appropriate software, also integrated into the operating system, can recombine the analyzed data portions into the original data in a way that can be transparent to the end user.
The secure data analyzer of the present invention can be integrated into a volume manager or any other suitable component of a storage system to protect local and networked data storage across any or all supported platforms. For example, with the built-in secure data analyzer, a storage system can make use of the redundancy offered by the secure data analyzer (ie
ES 2 658 097 T3 that is, it is used to implement the feature of needing less than all the separate portions of data to reconstruct the original data) to protect against data loss. The secure data analyzer also allows all data to be written to storage devices, whether redundancy is used or not, to be in the form of multiple slices that are generated in accordance with the analysis of the present invention. When trying to access the original data, appropriate software, also integrated into the volume manager or other suitable component of the storage system, can recombine the analyzed data portions into the original data in a way that can be transparent to the user. final.
In a suitable approach, the secure data analyzer of the present invention can be integrated into a RAID controller (such as hardware or software). This enables the secure storage of data to multiple drives while maintaining fault tolerance in the event of drive failure.
The secure data analyzer of the present invention can be integrated into a database to protect, for example, sensitive table information. For example, in a suitable approach, the data associated with particular cells of a database table (for example, individual cells, one or more particular columns, one or more particular rows, any combination thereof, or a table of entire database) can be parsed and separated in accordance with the present invention (for example, when different portions are stored on one or more storage devices in one or more locations or on a single storage device). Access to recombine the slices to view the original data can be granted through traditional authentication methods (eg, username and password query).
The secure analyzer of the present invention can be integrated into any suitable system involving data in motion (ie, data transfer from one location to another). Such systems include, for example, email, streaming data broadcasts, and wireless communications (eg, WiFi). With regard to email, in a suitable approach, the secure scanner can be used to analyze outgoing messages (that is, containing text, binary data, or both (for example, files attached to an email message)) and send the messages. different portions of the data analyzed along different trajectories thus creating multiple data streams. If any one of these data streams is compromised, the original message remains secure since the system may require more than one of the portions to be combined, in accordance with the present invention, to generate the original data. In another suitable approach, the different chunks of data can be combined along a path sequentially so that if one chunk is obtained, it may not be enough to generate the original data. The different portions arrive at the intended receiver location and can be combined to generate the original data in accordance with the present invention.
Figures 28 and 29 are illustrative block diagrams of such email systems. Figure 28 shows a 2700 sender system, which can include any suitable hardware, such as a computer terminal, personal computer, portable device (eg, PDA, Blackberry), cell phone, computer network, any other suitable hardware, or any combination. thereof. The sending system 2700 is used to generate and / or store a message 2704, which can be, for example, an email message, a binary data file (eg, graphics, voice, video, etc.), or both. . Message 2704 is parsed and split by secure data analyzer 2702 in accordance with the present invention. The resulting portions of data may communicate over one or more separate communication paths 2706 over the 2708 network (e.g., the Internet, an intranet, an LAN, WiFi, Bluetooth, any other permanently wired or wireless communication means or any combination thereof) to the 2710 receiving system. The data portions may communicate parallel in time or alternatively, according to any suitable time delay between the communication of the different data portions. The receiving system 2710 can be any suitable hardware as described above with respect to the sending system 2700. The separate data portions carried along the communication paths 2706 are recombined in the receiving system 2710 to generate the original message or data in accordance with the present invention.
Figure 29 shows a 2800 sender system, which may include any suitable hardware, such as a computer terminal, personal computer, portable device (eg, PDA), cell phone, computer network, any other suitable hardware, or any combination thereof. . Sender system 2800 is used to generate and / or store a message 2804, which can be, for example, an email message, a binary data file (eg, graphics, voice, video, etc.), or both. . Message 2804 is parsed and split by secure data analyzer 2802 in accordance with the present invention. The resulting portions of data may communicate over a single communications path 2806 over the 2808 network (for example, the Internet, an intranet, a LAN, WiFi, Bluetooth, any other suitable communications medium, or any combination of the themselves) to the receiving system 2810. The data portions may communicate serially through the communication path 2806 with respect to each other. The receiving system 2810 can be any suitable hardware as described above with respect to the sending system 2800. The separate data portions carried along the communications path 2806 are recombined in the receiving system 2810 to generate the original message. or data according to the present invention.
ES 2 658 097 T3
It will be understood that the arrangement of Figures 28 and 29 is merely illustrative. Any other suitable arrangement can be used. For example, in another suitable approach, the features of the systems of Figures 28 and 29 can be combined with that using the multipath approach of Figure 28 and using one or more of the communication paths 2706. to carry a portion of data as communication path 2806 does in the context of Figure 29.
The secure data analyzer can be integrated into any suitable level of a data-in-motion system. For example, in the context of an email system, the secure scanner can be integrated at the user interface level (for example, in Microsoft® Outlook), in which case the user can have control over the use of the features of the secure data analyzer when you use e-mail. Alternatively, the secure parser can be implemented in a back-end component such as the exchange server, in which case messages can be automatically parsed, divided and communicated along different paths according to the present invention without any user intervention. .
Similarly, in the case of streaming data (eg, audio, video) broadcasts, the output data can be analyzed and separated into multiple streams each containing a portion of the analyzed data. The multiple streams can be transmitted along one or more paths and recombined at the receiver location in accordance with the present invention. One of the benefits of this approach is that it avoids the relatively large overhead associated with traditional data encryption followed by transmission of the encrypted data over a single communication channel. The secure analyzer of the present invention allows data in motion to be sent in multiple parallel streams, increasing speed and efficiency.
It will be understood that the secure data analyzer can be integrated for protection of and fault tolerance of any type of data in motion via any means of transport, including, for example, wired, wireless or physical. For example, voice over internet protocol (VoIP) applications can make use of the secure data analyzer of the present invention. Wireless or wired data transport from or to any suitable personal digital assistant (PDA) device such as Blackberries and smartphones can be ensured using the secure data analyzer of the present invention. Communications using 802.11 wireless protocols for wireless peer-to-peer and hub-based networks, satellite communications, wireless point-to-point communications, internet client / server communications, or any other suitable communication may involve the data-in-motion capabilities of the analyzer. secure data in accordance with the present invention. Data communication between computer peripheral devices (for example, printer, scanner, keyboard, network router, biometric authentication device (for example, fingerprint scanner), or any other suitable peripheral device) between a computer and a peripheral device computer, between a computer peripheral device and any other suitable device, or any combination thereof can make use of the data-in-motion features of the present invention.
The data-in-motion features of the present invention can also be applied to secure share physical transport using, for example, separate routes, vehicles, methods, and any other suitable physical transport or any combination thereof. For example, the physical transport of data can take place on digital / magnetic tapes, floppy disks, optical disks, physical tokens, USB drives, removable disk drives, consumer electronics devices with flash memory (for example, Apple IPOD or other MP3 players), flash memory, any other suitable medium used to transport data, or any combination thereof.
The secure data analyzer of the present invention can provide security with disaster recovery capability. In accordance with the present invention, less than all portions of the separated data generated by the secure data analyzer may be required to retrieve the original data. That is, out of m stored slices, n can be the minimum number of these m slices needed to retrieve the original data, where n <= m. For example, if each of the four slices is stored in a different physical location relative to the other three slices, then if n = 2 in this example, two of the locations may be compromised so the data is destroyed or they are inaccessible, and the original data can still be retrieved from the slices at the other two locations. Any suitable value for not m can be used.
Furthermore, the n of m characteristic of the present invention can be used to create a "two-man rule" thereby avoiding entrusting a single individual or any other entity with full access to what could be sensitive data, two or More distinct entities each with a portion of the separate data analyzed by the secure analyzer of the present invention may need to agree to put their portions together to retrieve the original data.
The secure data analyzer of the present invention can be used to provide a group of entities with a group-level key that allows members of the group to access particular information authorized to be accessed by that particular group. The group key may be one of the data portions generated by the secure parser according to the present invention that may be required to be combined with another portion
ES 2 658 097 T3 stored centrally, for example to retrieve the requested information. This feature makes it possible, for example, to ensure collaboration between a group. It can be applied in, for example, specialized networks, virtual private networks, intranets, or any other suitable network.
Specific applications of this use of the secure analyzer include, for example, coalition information sharing in which, for example, multi-national friendly government forces are provided the ability to communicate operational and otherwise sensitive data at a level of communication. security authorized to each respective country via a single network or a dual network (i.e. compared to the many networks that involve relatively substantially manual processes currently used). This capability is applicable also for companies or other organizations in which the information that needs to be known by one or more specific individuals (in or without the organization) can be communicated through a single network without the need to worry about which unauthorized individuals. see the information.
Another specific application includes a multi-level security hierarchy for government systems. That is, the secure analyzer of the present invention can provide the ability to operate a government system at different levels of classified information (eg, unclassified, classified, secret, top secret) using a single network. If desired, more networks can be used (eg, a separate network for top secret), but the present invention allows substantially less than in the current arrangement where a separate network is used for each level of classification.
It will be understood that any combination of the above-described applications of the secure analyzer of the present invention may be used. For example, the group key application can be used in conjunction with the data-in-motion security application (i.e., where data communicating over a network can only be accessed by a member of the respective group, and where , while the data is in motion, it is divided among multiple paths (or sent in sequential portions) in accordance with the present invention).
The secure data analyzer of the present invention can be integrated into any middleware application to enable applications to store data securely to different database products or to different devices without modification to any of the applications or databases. Middle support is a general term for any product that allows two separate and existing programs to communicate. For example, in a suitable approach, the middleware that the built-in secure data analyzer has can be used to allow programs written for a particular database to communicate with other databases without custom coding.
The secure data analyzer of the present invention can be implemented having any combination of any suitable capabilities, such as those discussed herein. In some embodiments of the present invention, for example, the secure data analyzer can be implemented having only certain capabilities while other capabilities can be obtained through the use of software, external hardware, or both interconnected directly or indirectly with the secure data analyzer.
Figure 30, for example, shows an illustrative implementation of the secure data analyzer as the secure data analyzer 3000. The secure data analyzer 3000 can be implemented with very few built-in capabilities. As illustrated, the secure data analyzer 3000 may include built-in capabilities to analyze and divide data into chunks (also referred to herein as shares) of data using module 3002 in accordance with the present invention. The secure data analyzer 3000 may also include built-in capabilities to realize redundancy to be able to implement, for example, the m of n feature described above (i.e., recreate the original data using fewer of all the parsed and split data shares) using module 3004. Secure data analyzer 3000 may also include share distribution capabilities using module 3006 to place data shares in buffers from which they are sent for communication to a remote location, for storage, etc., in accordance with the present. invention. It will be understood that any other suitable capability can be built into the Secure Data Analyzer 3000.
The assembled data buffer 3008 can be any suitable memory used to store the original data (though not necessarily in its original form) that will be parsed and divided by the secure data parser 3000. In a divide operation, the buffer of Assembled data 3008 provides input to secure data parser 3008. In a restore operation, the assembled data buffer 3008 can be used to store the output of the secure data analyzer 3000.
The partition share buffers 3010 can be one or more memory modules that can be used to store the multiple data shares that result from the original data analysis and filtering. In a split operation, the split share buffers 3010 support the output of the secure data analyzer. In a restore operation, the split share buffers support input to the secure data analyzer 3000.
ES 2 658 097 T3
It will be understood that any other suitable arrangement of capabilities may be integrated for the secure data analyzer 3000. Any additional features may be integrated and any of the illustrated features may be removed, made more robust, made less robust, or otherwise modified as any suitable way. Buffers 3008 and 3010 are likewise merely illustrative and may be modified, deleted, or added in any suitable manner.
Any suitable module implemented in software, hardware, or both can call or call the Secure Data Analyzer 3000. If desired, even capabilities that are built into the Secure Data Analyzer 3000 can be substituted by one or more external modules. As illustrated, some external modules include random number generator 3012, encryption feedback key generator 3014, hashing algorithm 3016, any one or more encryption types 3018, and key management 3020. It will be understood that These are external modules for illustrative purposes only. Any other suitable module may be used in addition to or in place of those illustrated.
The encryption feedback key generator 3014 may generate, externally to the secure data analyzer 3000, for each operation of the secure data analyzer, a unique key, or random number (using, for example, the random number generator 3012), to be used as a seed value for an operation that extends an original session key size (for example, a value of 128, 256, 512, or 1024 bits) by a value equal to the length of the data to be parsed and divided . Any suitable algorithm for generating the encryption feedback key may be used, including, for example, the AES encryption feedback key generation algorithm.
To facilitate the integration of Secure Data Analyzer 3000 and its external modules (i.e. Secure Data Analyzer layer 3026) into an application layer 3024 (e.g. Email application, Database application, etc. ), a packaging layer can be used that can make use of, for example, API function calls. Any other suitable arrangement may be used to facilitate integration of the secure data analyzer layer 3026 into the application layer 3024.
Figure 31 illustratively shows how the arrangement of Figure 30 can be used when issuing a write command (for example, to a storage device), insert (for example, in a database field), or transmit (eg, over a network) in the application layer 3024. In step 3100 the data to be secured is identified and a call is made to the secure data analyzer. The call is passed through the packaging layer 3022 where at step 3102, the packaging layer 3022 transmits the input data identified at step 3100 in the assembled data buffer 3008. Also at step 3102, it can be stored any suitable sharing information, file names, any other suitable information, or any combination thereof (eg, as information 3106 in packaging layer 3022). The secure data processor 3000 then analyzes and splits the data it takes as input from the assembled data buffer 3008 in accordance with the present invention. It issues the data shares in the 3010 split share buffers. At step 3104, packaging layer 3022 obtains from stored information 3106 any suitable sharing information (i.e., stored by packaging 3022 in step 3102) and the sharing location (s) (eg, from one or more configuration files). The packaging layer 3022 then writes the output shares (obtained from the partition share buffers 3010) appropriately (eg, written to one or more storage devices, communicated to a network, etc.).
Figure 32 illustratively shows how the layout of Figure 30 can be used when a read (for example, from a storage device), select (for example, from a database field), or receive (for example) takes place. example, from a network). In step 3200, the data to be restored is identified and a call is made to the secure data analyzer 3000 from the application layer 3024. At step 3202, from the packaging layer 3022, any suitable sharing information is obtained and the sharing location is determined. The packaging layer 3022 loads the portions of data identified in step 3200 into the buffers of the slice shares 3010. The secure data analyzer 3000 then processes these shares in accordance with the present invention (for example, if only three out of four shares are available, then the redundancy capabilities of the secure data analyzer 3000 can be used to restore the original data using only all three shares). The reconstructed data is then stored in assembled data buffer 3008. In step 3204, the application layer 3022 converts the data stored in the assembled data buffer 3008 into its original data format (if necessary) and provides the original data in its original format to the application layer 3024.
It will be understood that the analysis and filtering of original data illustrated in Figure 31 and the restoration of the data portions into original data illustrated in Figure 32 is merely illustrative. Any other suitable process, component, or both may be used in addition to or in place of those illustrated.
ES 2 658 097 T3
Figure 33 is a block diagram of an illustrative process flow for analyzing and dividing original data into two or more pieces of data in accordance with one embodiment of the present invention. As illustrated, the original data to be analyzed and divided is plain text 3306 (ie, the word "SEND" is used as an example). It will be understood that any other type of data can be analyzed and divided in accordance with the present invention. A 3300 session key is generated. If the length of the session key 3300 is not compatible with the original data length 3306, then the encryption feedback session key 3304 can be generated.
In a suitable approach, the original data 3306 can be encrypted prior to analysis, splitting, or both. For example, as Figure 33 illustrates, original data 3306 may be XORed with any suitable value (eg, encryption feedback session key 3304, or any other suitable value). It will be understood that any other suitable encryption technique may be used in place of or in addition to the illustrated XOR technique. It will be further understood that although Figure 33 is illustrated in terms of byte-by-byte operations, the operation may take place at the bit level or at any other suitable level. It will be further understood that, if desired, there is no need for any encryption in any way of the original data 3306.
The resulting encrypted data (or original data if no encryption took place) is then chopped to determine how to divide the encrypted (or original) data among the output cubes (for example, of which there are four in the illustrated example). In the illustrated example, hashing occurs in bytes and is a function of encryption feedback session key 3304. It will be understood that this is merely illustrative. Hashing can be done at the bit level, if desired. The hash may be a function of any other suitable value in addition to the encryption feedback session key 3304. In another suitable approach, hash does not need to be used. Instead, any other suitable technique for dividing data can be used.
Figure 34 is a block diagram of an illustrative process flow for restoring original data 3306 from two or more analyzed and divided original data 3306 portions in accordance with one embodiment of the present invention. The process involves chipping the portions in reverse (i.e. to the processes in Figure 33) as a function of the 3304 encryption feedback session key to restore the original encrypted data (or original data if there was no encryption prior to analysis and division). The encryption key can then be used to restore the original data (ie, in the illustrated example, the encryption feedback session key 3304 is used to decrypt the XOR encryption by performing the XOR operation on the encrypted data). This restores the original 3306 data.
Figure 35 shows how bit division can be implemented in the example of Figures 33 and 34. A hash can be used (for example, as a function of the encryption feedback session key, as a function of any other suitable value ) to determine a bit value into which to divide each byte of data. It will be understood that this is merely an illustrative way in which to implement bit-level division. Any other suitable technique can be used.
It will be understood that any reference to hashing functionality made herein can be made with respect to any suitable hashing algorithm. These include for example MD5 and SHA-1.
Different hashing algorithms can be used at different times and by different components of the present invention.
After a split point has been determined in accordance with the illustrative procedure above or through any other procedure or algorithm, a determination can be made as to which data portions to append to each of the left and right segments. Any suitable algorithm can be used to make this determination. For example, in a suitable approach, a table of all possible distributions can be created (for example, in the form of target pairings for the left segment and for the right segment), in which a target share value can be determined for each of the left and right segment using any suitable hash function or corresponding data in the session key, encryption feedback session key, or any other suitable random or pseudo-random value, which can be generated and scaled to the size of the original data. For example, a corresponding byte hashing function can be performed on the random or pseudo-random value. The output of the hash function is used to determine which destination pairings (that is, one for the left segment and one for the right segment) to select from the table of all destination combinations. Based on this result, each segment of the division data unit is appended to the respective two shares indicated by the table value selected as a result of the hashing function.
Redundancy information may be appended to the data portions in accordance with the present invention to allow restoration of the original data using fewer than all the data portions. For example, if you want two out of four slices to be sufficient for restoring data, then additional data from shares can be appended accordingly for each share in, for example, a cyclical order way (for example, where size of the original data is 4 MB, so share 1 gets its own shares as well as those in shares 2 and 3; share 2 gets its own
ES 2 658 097 T3 share as well as those of shares 3 and 4; share 3 gets its own share as well as those of shares 4 and 1; and share 4 gets its own shares as well as those of shares 1 and 2). Any suitable redundancy can be used in accordance with the present invention.
It will be understood that any other suitable analysis and division approach may be used to generate portions of data from an original data set in accordance with the present invention. For example, the analysis and division can be processed randomly or pseudo-randomly on a bit-by-bit basis. A random or pseudo-random value can be used (e.g. session key, encryption feedback session key, etc.) in which for each bit in the original data, the result of a hash function in the corresponding data in the random or pseudo-random value you can indicate to which share to append the respective bit. In a suitable approach the random or pseudo-random value can be generated as, or expanded to, 8 times the size of the original data so that the hashing function can be performed on a corresponding byte of the random or pseudo-random value with respect to each bit of the original data. Any other suitable algorithm for analyzing and dividing data on a bit-by-bit level can be used in accordance with the present invention. It will further be appreciated that redundancy data may be appended to data shares such as, for example, in the manner immediately described above in accordance with the present invention.
In a proper approach, the analysis and division need not be random or pseudo-random. Instead, any suitable deterministic algorithm can be used to analyze and divide data. For example, decomposing the original data into sequential shares can be used as an analysis and division algorithm. Another example is analyzing and dividing the original data bit by bit, appending each respective bit to the data shares sequentially in a cyclical order fashion. It will further be appreciated that redundancy data may be appended to data shares such as, for example, in the manner described above in accordance with the present invention.
In an embodiment of the present invention, after the secure data analyzer generates a number of original data slices, to restore the original data, one or more of the generated slices may be required to be certain. For example, if one of the slices is used as an authentication share (for example, recorded on a physical token device), and the fault tolerance feature of the secure data analyzer is being used (that is, where they are required less than all slices to restore the original data), then even though the secure data analyzer can access a sufficient number of slices of the original data to restore the original data, it may require the authentication share stored on the physical token device before the original data is restored. It will be understood that any particular number and types of shares may be required based on, for example, application, data type, user, any other suitable factor, or any combination thereof.
In a suitable approach, the secure data analyzer or some component external to the secure data analyzer may encrypt one or more portions of the original data. The encrypted portions may be required to be provided and decrypted to restore the original data. Different encrypted portions can be encrypted with different encryption keys. For example, this feature can be used to implement a more secure "two-man rule" in which a first user would need to have a particular share encrypted using a first encryption and a second user would need to have a particular share encrypted using a second encryption key. encryption. To access the original data, both users would need to have their respective encryption keys and provide their respective portions of the original data. In a suitable approach, a public key can be used to encrypt one or more pieces of data which may be a mandatory share required to restore the original data. A private key can then be used to decrypt the share to be used to restore the original data.
Any suitable paradigm of this type that makes use of mandatory shares can be used where fewer than all shares are needed to restore the original data.
In a suitable embodiment of the present invention, the distribution of data over a finite number of data shares can be processed randomly or pseudo-randomly so that from a statistical perspective, the probability that a particular data share receives one unit of data particular is equal to the probability that any one of the remaining shares will receive the data drive. As a result, each data share will have roughly the same number of data bits.
According to another embodiment of the present invention, each of the finite number of data shares need not have an equal probability of receiving data units from the original data division and analysis.
Instead certain one or more shares may have a higher or lower probability than the remaining shares. As a result, certain shares may be larger or smaller in terms of bit size relative to other shares. For example, in a two-share scenario, one share may have a 1% chance of receiving a data drive while the second share has a 99% chance. It should therefore be deduced that once the data units have been distributed
ES 2 658 097 T3 using the secure data analyzer between the two shares, the first share should have about 1% of the data and the second share about 99%. Any suitable probability can be used in accordance with the present invention.
It will be understood that the secure data analyzer may also be programmed to distribute data to shares according to an exact (or nearly exact) percentage. For example, the secure data analyzer can be programmed to distribute 80% of the data to a first share and the remaining 20% of the data to a second share.
According to another embodiment of the present invention, the secure data analyzer can generate data shares, one or more of which have predefined sizes. For example, the secure data parser can divide original data into data chunks where one of the chunks is exactly 256 bits. In a suitable approach, if it is not possible to generate a chunk of data that has the required size, then the secure data parser can fill the chunk to the correct size. Any suitable size can be used.
In a suitable approach, the size of a piece of data may be the size of an encryption key, a split key, any other suitable key, or any other suitable data item.
As discussed above, the secure data analyzer can use keys in the analysis and division of the data. For the sake of clarity and brevity, these keys will be referred to herein as "split keys." For example, the session master key, previously entered, is a type of split key. Also, as discussed previously, split keys can be secured on data shares generated by the secure data parser. Any suitable algorithm can be used to secure the split keys to secure them between data shares. For example, the Shamir algorithm can be used to secure split keys with which information that can be used to reconstruct a split key is generated and appended to data shares. Any other suitable algorithm of this type may be used in accordance with the present invention.
Similarly, any suitable encryption key can be secured in one or more data shares according to any suitable algorithm such as the Shamir algorithm. For example, the encryption keys used to encrypt a set of data before analysis and division, the encryption keys used to encrypt portions of data after analysis and division, or both can be secured using, for example, the Shamir algorithm or any other suitable algorithm.
According to one embodiment of the present invention, an All or Nothing Transformation (AoNT), such as a Full Packet Transformation, can be used to further secure the data by transforming split keys, encryption keys, any other suitable data element, or any combination thereof. For example, an encryption key used to encrypt a data set prior to analysis and division in accordance with the present invention can be transformed by an AoNT algorithm. The transformed encryption key can then be distributed among the data shares according to, for example, the Shamir algorithm or any other suitable algorithm. To rebuild the encryption key, the encrypted data set must be restored (for example, not necessarily using all data shares if redundancy was used according to the present invention) to access the necessary information regarding the transformation according to with AoNT as is well known to a person skilled in the art. When the original encryption key is recovered, it can be used to decrypt the encrypted data set to recover the original data set. It will be understood that the fault tolerance characteristics of the present invention can be used in conjunction with the AoNT characteristic. In particular, the redundancy data can be included in the data slices so that fewer of all the data slices are required to restore the encrypted data set.
It will be understood that AoNT can be applied to the encryption keys used to encrypt the data portions after analysis and division instead of or in addition to the encryption and AoNT of the respective encryption key that corresponds to the data set before analysis and division. . Similarly, AoNT can be applied to division keys.
In one embodiment of the present invention, encryption keys, split keys, or both used in accordance with the present invention may be further encrypted using, for example, a workgroup key to provide an additional level of security to a set. data insured.
In one embodiment of the present invention, an auditing module can be provided that tracks each time the secure data analyzer is invoked to split data.
Figure 36 illustrates possible options 3600 for using the secure data analyzer components in accordance with the invention. Each combination of options is summarized below and labeled with the appropriate stage numbers from Figure 36. The secure data analyzer can be modular in nature, allowing
ES 2 658 097 T3 any known algorithm is used in each of the function blocks shown in Figure 36. For example, other key division algorithms (eg secret sharing) can be used such as Blakely instead of Shamir, or AES encryption could be replaced by any other known encryption algorithm such as Triple DES. The labels shown in the example of Figure 36 merely represent one possible combination of algorithms for use in one embodiment of the invention. It should be understood that any suitable algorithm or combination of algorithms can be used in place of the labeled algorithms.
1) 3610, 3612, 3614, 3615, 3616, 3617, 3618, 3619
Using the data previously encrypted in step 3610, the data can eventually be divided into a predefined number of shares. If the splitting algorithm requires a key, a split encryption key can be generated in step 3612 using a cryptographically secure pseudo-random number generator. The split encryption key can optionally be transformed using an All or Nothing Transformation (AoNT) into a transform split key in step 3614 before the key is split into the predefined number of fault tolerant shares in step 3615 The data can then be divided into the predefined number of shares in step 3616. A fault tolerant scheme can be used in step 3617 to allow regeneration of the data from less than the total number of shares. Once the shares have been created, authentication / integrity information can be embedded in the shares at step 3618. Each share can optionally be post-encrypted at step 3619.
2) 3111, 3612, 3614, 3615, 3616, 3617, 3618, 3619
In some embodiments, the input data can be encrypted using an encryption key provided by a user or an external system. The foreign key is provided at step 3611. For example, the key may be provided from foreign key storage. If the splitting algorithm requires a key, the splitting encryption key can be generated using a cryptographically secure pseudo-random number generator in step 3612. The split key can optionally be transformed using an All or Nothing Transformation (AoNT) into a transform split encryption key in step 3614 before the key is split into the predefined number of fault tolerant shares in step 3615 The data is then divided into a predefined number of shares in step 3616. A fault tolerant scheme can be used in step 3617 to allow regeneration of the data from less than the total number of shares. Once the shares have been created, authentication / integrity information can be embedded in the shares at step 3618. Each share can optionally be post-encrypted at step 3619.
3) 3612, 3613, 3614, 3615, 3612, 3614, 3615, 3616, 3617, 3618, 3619
In some embodiments, an encryption key can be generated using a cryptographically secure pseudo-random number generator in step 3612 to transform the data. Encryption of the data using the generated encryption key may take place at step 3613. The encryption key may optionally be transformed using an All or Nothing Transform (AoNT) into a transform encryption key at step 3614. The transformation encryption key and / or the generated encryption key can then be divided into the predefined number of fault-tolerant shares in step 3615. If the division algorithm requires a key, the generation of the encryption key of division using a cryptographically secure pseudo-random number generator can take place in step 3612. The split key may optionally be transformed using an All or Nothing Transformation (AoNT) into a transform split encryption key in step 3614 before the key is split into the predefined number of fault tolerant shares in step 3615 The data can then be divided into a predefined number of shares in step 3616. A fault tolerant scheme can be used in step 3617 to allow regeneration of the data from less than the total number of shares. Once the shares have been created, the authentication / integrity information will be embedded in the shares at step 3618. Each share may then optionally be post-encrypted at step 3619.
4) 3612, 3614, 3615, 3616, 3617, 3618, 3619
In some embodiments, the data can be divided into a predefined number of shares. If the splitting algorithm requires a key, generation of the splitting encryption key using a cryptographically secure pseudo-random number generator can take place in step 3612. The split key can optionally be transformed using an All or Nothing Transformation (AoNT) into a transformed split key in step 3614 before the key is split into the predefined number of fault tolerant shares in step 3615.
The data can then be divided in step 3616. A fault tolerant scheme can be used in step 3617 to allow regeneration of the data from less than the total number of shares. Once the shares have been created, authentication / integrity information can be embedded in the shares at step 3618. Each share can optionally be post-encrypted at step 3619.
ES 2 658 097 T3
Although the above four combinations of options are preferably used in some embodiments of the invention, any other combination of suitable features, steps or options may be used with the secure data analyzer in other embodiments.
The secure data analyzer can offer flexible data protection by facilitating physical separation. Data can be encrypted first, then divided into “m of n” fault-tolerant shares. This allows regeneration of the original information when less than the total number of shares are available. For example, some partitions may be lost or corrupted in transmission. Lost or corrupted shares can be recreated from fault tolerance or integrity information appended to the shares, as discussed in more detail below.
To create the shares, a number of keys are optionally used by the secure data analyzer. These keys can include one or more of the following:
Pre-encryption key: When pre-encryption of shares is selected, a foreign key can be passed to the secure data analyzer. This key can be generated and stored externally in a key store (or other location) and can be used to optionally encrypt data prior to data splitting.
Split Encryption Key - This key can be generated internally and used by the secure data analyzer to encrypt the data prior to splitting. This key can then be safely stored in the shares using a key splitting algorithm.
Split Session Key - This key is not used with an encryption algorithm; instead, data partitioning algorithms can be used to apply keys when random division is selected. When using a random split, a split session key can be generated internally and used by the secure data parser to partition the data into shares. This key can be safely stored in the shares using a key splitting algorithm.
Post encryption key: When post encryption of shares is selected, a foreign key can be passed to the secure data analyzer and used to post encrypt individual shares. This key can be generated and stored externally in a key store or other suitable location.
In some embodiments, when data is secured using the secure data analyzer in this manner, the information can only be reassembled provided the required shares and external encryption keys are present.
Figure 37 shows the illustrative overview of the 3700 process for using the secure data analyzer of the present invention in some embodiments. As described above, two well-suited functions for the 3706 secure data analyzer may include 3702 encryption and 3704 backup. As such, the 3706 secure data analyzer can be integrated with a backup or RAID system or hardware encryption engine. or software in some embodiments.
The primary key processes associated with the 3706 secure data analyzer may include one or more of the pre-encryption process 3708, the encryption / transformation process 3710, the secure key process 3712, the parse / distribute process 3714, the tolerance tolerance process. 3716 failures, 3716 share authentication process, and 3720 post-encryption process. These processes can be executed in various suitable orders or combinations, as detailed in Figure 36. The combination and order of processes may depend on the particular application or use, the level of security desired, whether pre-encryption, post-encryption, or both is desired, the desired redundancy, the capabilities or performance of an underlying or embedded system, or any other suitable factor or combination of factors.
The output of the illustrative process 3700 can be two or more shares 3722. As described above, data can be distributed to each of these shares randomly (or pseudo-randomly) in some embodiments. In other embodiments, a deterministic algorithm (or some suitable combination of randomness, pseudo-randomness, and deterministic algorithms) can be used.
In addition to individual information protection assets, there is sometimes a requirement to share information between different user groups or communities of interest. It may then be necessary to control access to individual shares in that user group or share credentials among those users that would only allow group members to reassemble the shares. To this end, a workgroup key may be displayed to group members in some embodiments of the invention. The workgroup key should be protected and kept confidential, as compromising the workgroup key can potentially allow those outside the group to access information. Some systems and methods for workgroup key development and protection are discussed below.
ES 2 658 097 T3
The workgroup key concept enables enhanced protection of information assets by encrypting key information stored in shares. Once this operation is done, even if all the required shares and foreign keys were discovered, an attacker has no hope of recreating the information without accessing the workgroup key.
Figure 38 shows the illustrative block diagram 3800 for storing key and data components in shares. In the example of diagram 3800, the pre-encryption and post-encryption steps are omitted, although these steps can be included in other embodiments.
The simplified process for dividing the data includes encrypting the data using encryption key 3804 in encryption step 3802. Portions of encryption key 3804 can then be divided and stored in shares 3810 in accordance with the present invention. The split portions of the encryption key 3806 may also be stored in the shares 3810. Using the split encryption key, data 3808 is then split and stored in shares 3810.
To restore the data, the split encryption key 3806 can be recovered and restored in accordance with the present invention. The split operation can then be reversed to restore the ciphertext. The encryption key 3804 can also be recovered and restored, and the cipher text can then be decrypted using the encryption key.
When using a workgroup key, the above process can be changed to slightly protect the encryption key with the workgroup key. The encryption key can then be encrypted with the workgroup key before being stored in the shares. The modified stages are shown in illustrative block diagram 3900 of Figure 39.
The simplified process for dividing the data using a workgroup key includes first encrypting the data using the encryption key at step 3902. The encryption key can then be encrypted with the workgroup key at step 3904 The encryption key encrypted with the workgroup key can then be divided into portions and stored with shares 3912. Division key 3908 can also be divided and stored in shares 3912. Finally, data portions 3910 are divided and stored in shares 3912 using division key 3908.
To restore the data, the division key can be recovered and restored in accordance with the present invention. The divide operation can then be reversed to restore the ciphertext in accordance with the present invention. The encryption key (which was encrypted with the workgroup key) can be retrieved and restored. The encryption key can then be decrypted using the workgroup key. Finally, the cipher text can be decrypted using the encryption key.
There are several secure methods for deploying and protecting workgroup keys. The selection of which method to use for a particular application depends on a number of factors. These factors may include the level of security required, cost, convenience, and the number of users in the workgroup. Some techniques commonly used in some embodiments are provided below:
Hardware-based key storage
Hardware-based solutions generally provide the strongest guarantees for the security of encryption / decryption keys in an encryption system. Examples of hardware-based storage solutions include tamper-resistant key token devices that store keys on a portable device (eg, smart card / dongle), or non-portable key storage peripherals. These devices are designed to prevent the easy duplication of key material by unauthorized parties. Keys can be generated by a trusted authority and distributed to users, or generated on hardware. Additionally, many key storage systems provide multi-factor authentication, where the use of keys requires access to both a physical object (token) and a passphrase or biometric.
Software-based key storage
Although specialized hardware-based storage may be desirable for high-security deployments or applications, other deployments may choose to store keys directly on local hardware (for example, disks, RAM storages, or non-volatile RAM such as USB drives). This provides a lower level of protection against insiders, or in cases where an attacker can directly access the encryption machine.
To secure keys on disk, software-based key management often protects keys by storing them in encrypted form under a key obtained from a combination of other authentication metrics, including: passwords and passphrases, presence of other keys (e.g. , from a hardware-based solution), biometrics, or any suitable combination of the above. The level of security
ES 2 658 097 T3 provided by such techniques can range from relatively weak key protection mechanisms provided by some operating systems (eg MS Windows and Linux), to more robust solutions implemented using multi-factor authentication.
The secure data analyzer of the present invention can be used to advantage in a number of applications and technologies. For example, email system, RAID systems, video broadcast systems, database systems, tape backup systems, or any other suitable system may have the secure data analyzer built into any suitable level. As discussed above, it will be understood that the secure data analyzer can also be integrated for protection and fault tolerance of any type of data in motion through any means of transport, including, for example, wired, wireless or wireless means of transport. physical. As an example, voice over internet protocol (VoIP) applications can make use of the secure data analyzer of the present invention to solve problems related to echoes and delays commonly found in VoIP. The need for network retries on interrupted packets can be eliminated by using fault tolerance, which ensures packet delivery even with the loss of a predetermined number of shares. Data packets (eg, network packets) can also be efficiently divided and restored "on the fly" with minimal delay and buffering, resulting in a comprehensive solution for various types of data in motion. The secure data analyzer can act on network data packets, network voice packets, filesystem data blocks, or any other suitable information unit. In addition to integrating with a VoIP application, the secure data analyzer can be integrated with a file-sharing application (for example, a peer-to-peer file-sharing application), a video broadcast application, a polling or voting application. electronic (which can implement an electronic voting protocol and blind signatures, such as the Sensus protocol), an email application, or any other network application that may require or desire secure communication.
In some embodiments, support for network data in motion may be provided by the secure data analyzer of the present invention in two distinct phases - a header generation phase and a data partitioning phase. The simplified header generation process 4000 and the simplified data partition process 4010 are shown in Figures 40A and 40B, respectively. One or both of these processes can be done on network packets, filesystem blocks, or any other suitable information.
In some embodiments, the header generation process 4000 may be performed once at the start of a network packet packet flow. In step 4002, a split, K, random (or pseudo-random) encryption key may be generated. The split encryption key, K, can then optionally be encrypted (eg, using the workgroup key described above) at the AES 4004 key packaging step. Although AES key packaging may be used in some embodiments, any suitable key encryption or key packaging algorithm may be used in other embodiments. The AES key packaging stage 4004 can operate on the entire split encryption key, K, or the split encryption key can be parsed in multiple blocks (eg, 64-bit blocks). The AES key compression stage 4004 can then operate on blocks of the split encryption key, if desired.
In step 4006, a secret sharing algorithm (eg, Shamir) may be used for the split split encryption key, K, in key shares. Each key share can then be embedded in one of the output shares (for example, in the share headers). Finally, a share integration block and (optionally) a post-authentication tag (eg, MAC) can be appended to the header block of each share. Each header block can be designed to fit into a single data packet.
After the header generation is complete (for example, using the simplified header generation process 4000), the secure data analyzer can enter the data partitioning phase using the simplified data division process 4010. Each packet The incoming data or data block in the stream is encrypted using the split encryption key, K, in step 4012. In step 4014, the sharing integrity information (eg, an H hash) can be computed in the resulting ciphertext from step 4012. For example, a SHA-256 hash may be computed. At step 4106, the data packets or data blocks can then be partitioned into two or more data shares using one of the above-described data division algorithms in accordance with the present invention. In some embodiments, the data packets or data blocks may be divided such that each data share contains a substantially random distribution of the encrypted data packets or data blocks. The integrity information (eg H hash) can then be appended to each data share. An optional post-authentication tag (eg, MAC) can also be calculated and appended to each data share in some embodiments.
ES 2 658 097 T3
Each data share can include metadata, which may be necessary to allow correct reconstruction of the data blocks or data packets. This information can be included in the share header. The metadata can include information such as cryptographic key shares, key identities, random numbers used only once for sharing, MAC signatures / values, and integrity blocks. To maximize bandwidth efficiency, metadata can be stored in a compact binary format.
For example, in some embodiments, the share header includes a clean text header snippet, which is not encrypted and may include such items as Shamir key sharing, random number used only once per session, random number used only once Once per share, key identifiers (for example, a workgroup key identifier and a post-authentication key identifier). The share header may also include an encrypted header fragment that is encrypted with the split encryption key. An integrity header fragment, which may include integrity checks for any number of the above blocks (eg, the previous two blocks), may also be included in the header. Any other suitable value or information can also be included in the share header.
As shown in the illustrative sharing format 4100 of Figure 41, header block 4102 can be associated with two or more output blocks 4104. Each header block, such as header block 4102, can be designed to fit in a single network data packet. In some embodiments, after the header block 4102 is transmitted from a first location to a second location, the output blocks may be transmitted next. Alternatively, header block 4102 and output blocks 4104 can be transmitted in parallel at the same time. Transmission can take place over one or more similar or dissimilar communication paths.
Each output block can include data portion 4106 and integrity / authenticity portion 4108. As described above, each data share can be secured using a share integrity portion that includes share integrity information (eg, a SHA-256 hash) of the pre-partitioned encrypted data. To verify the integrity of the output blocks at recovery time, the secure data analyzer can compare the share integrity blocks for each share and then reverse the division algorithm. The hash of the recovered data can then be verified against the sharing hash.
Although some common applications of the secure data analyzer have been described above, it should be clearly understood that the present invention can be integrated with any network application to increase security, fault tolerance, anonymity, any suitable combination of the above.
Additionally, other combinations, additions, substitutions, and modifications will be apparent to those skilled in the art in light of the disclosure herein. Accordingly, the present invention is not to be considered limited by the reaction of the preferred embodiments but is to be defined by a reference to the appended claims.
Contents35
42 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42
46 members in 9 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 738231P | United States of America | – | |
| 73823105 | United States of America | P | |
| 2006045066 | United States of America | W |
Members46
| Document | Office | Kind | |
|---|---|---|---|
| US2007160198A1 | United States of America | A1 | |
| AU2006350252A1 | Australia | A1 | |
| CA2629015A1 | Canada | A1 | |
| WO2008054406A2 | World Intellectual Property Organization (WIPO) | A2 | |
| EP1952575A2 | European Patent Office (EPO) | A2 | |
| WO2008054406A3 | World Intellectual Property Organization (WIPO) | A3 | |
| CN101401341A | China | A | |
| AU2006350252B2 | Australia | B2 | |
| AU2011200164A1 | Australia | A1 | |
| US8009830B2 | United States of America | B2 | |
| BRPI0618725A2 | Brazil | A2 | |
| US2011258439A1 | United States of America | A1 | |
| EP1952575A4 | European Patent Office (EPO) | A4 | |
| AU2011200164B2 | Australia | B2 | |
| AU2012202522A1 | Australia | A1 | |
| US8320560B2 | United States of America | B2 | |
| US2013064364A1 | United States of America | A1 | |
| CN103384196A | China | A | |
| US8644502B2 | United States of America | B2 | |
| US2014108807A1 | United States of America | A1 | |
| US2015074430A1 | United States of America | A1 | |
| AU2012202522B2 | Australia | B2 | |
| AU2015207814A1 | Australia | A1 | |
| AU2015207814B2 | Australia | B2 | |
| US9317705B2 | United States of America | B2 | |
| CN101401341B | China | B | |
| CN105743930A | China | A | |
| CN105978683A | China | A | |
| HK1223751A | Hong Kong, China | A | |
| HK1223751A1 | Hong Kong, China | A1 | |
| EP1952575B1 | European Patent Office (EPO) | B1 | |
| ES2658097T3This record | Spain | T3 | |
| US10108807B2 | United States of America | B2 | |
| US2019197248A1 | United States of America | A1 | |
| US10452854B2 | United States of America | B2 | |
| US2020293672A1 | United States of America | A1 | |
| US11068609B2 | United States of America | B2 | |
| US2021303709A1 | United States of America | A1 | |
| US2023229796A1 | United States of America | A1 | |
| US11734437B2 | United States of America | B2 | |
| US2023367890A1 | United States of America | A1 | |
| US12093412B2 | United States of America | B2 | |
| US12141299B2 | United States of America | B2 | |
| US12147551B1 | United States of America | B1 | |
| US2024386117A1 | United States of America | A1 | |
| US2025190598A1 | United States of America | A1 |
Numbers
- Publication
- 2658097
- Application
- 6851765
Titles2
- Spanish
- Método y sistema de análisis de datos seguro
- English
- Method and secure data analysis system
Classification
- CPC, 7
- H04L9/3231
- H04L63/0428
- G06F21/62
- H04L9/085
- H04L9/3247
- H04L2209/80
- H04L2209/56
- IPC, 4
- H04L9 08
- H04L9 32
- H04L29 06
- G06F21 62