WO2024200764A1 - Innovative server-based method for management of confidential data - Google Patents
Innovative server-based method for management of confidential data Download PDFInfo
- Publication number
- WO2024200764A1 WO2024200764A1 PCT/EP2024/058675 EP2024058675W WO2024200764A1 WO 2024200764 A1 WO2024200764 A1 WO 2024200764A1 EP 2024058675 W EP2024058675 W EP 2024058675W WO 2024200764 A1 WO2024200764 A1 WO 2024200764A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- key
- authenticator
- profile
- client
- server
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 161
- 238000013475 authorization Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 21
- 230000008520 organization Effects 0.000 claims description 18
- 150000003839 salts Chemical class 0.000 claims description 18
- 230000008878 coupling Effects 0.000 claims description 11
- 238000010168 coupling process Methods 0.000 claims description 11
- 238000005859 coupling reaction Methods 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 9
- 238000000151 deposition Methods 0.000 claims 1
- 230000008901 benefit Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 239000000463 material Substances 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241001271959 Anablepidae Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000009993 protective function Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Definitions
- the present invention relates to a computer-implemented method for secure management of secret data on a server and secure use of the secret data by means of various application clients.
- a computer-implemented method for secure management of secret data on a server and secure use of the secret data by means of various application clients By cryptographically encrypting the secret data and authorizing all application clients by means of an authenticator client, the user retains full control over his secret data available on the server at all times, while at the same time ensuring that the secret data is highly user-friendly.
- the method does not require a master password and includes two-factor authentication.
- the present invention also relates to a system, a server and three computer program products A, B and C for implementing the method according to the invention.
- a password is set by the user at least when it is initialized and must be kept secret. If the password is displayed, intercepted or accessed unencrypted by a potential attacker, can be guessed or calculated, the security and integrity of the data, applications and user profile are at risk.
- 2FA two-factor authentication
- 2FA means that authentication must also be carried out using a second method, for example confirming a login by entering an SMS code in addition to the password. This can be beneficial for the user by combining factors that a user remembers (e.g. password) with those that a user has (mobile phone, biometric data). 2FA is generally recommended for important access and could prevent numerous security gaps caused by authentication being outsmarted.
- An alternative way of using and storing passwords is to use cloud-based, centralized password management systems, such as those offered by Google or Apple for client browsers. Access to passwords is secured, for example, by an existing account with the respective provider. This results in user-friendly functions such as synchronization across all client devices on which a user is logged in. Furthermore, server-based storage of passwords can relatively easily prevent brute-force attacks by controlling the frequency of login attempts.
- SSO procedures offer a user the possibility of easy access to all services and applications of their authorization through one-time authentication.
- SSO procedures are widely offered as a software-as-a-service (SaaS) model.
- Password managers such as those described above can be seen as an example of a local SSO system in which a local client with which a user authenticates automatically fills in all access data.
- SSO procedures are widespread which use a single portal, which in turn handles the login for other services and applications, or ticketing systems which transmit proof of a user’s authentication within a trusted circle of services or applications, thus allowing a login to be carried out for all services and applications.
- SSO procedures are not necessarily free of a master password.
- Passwords are not the only data in the digital environment that must be kept secret. Credit card data, for example, is often used in online shopping. Sensitive personal data such as addresses and contact details should also be protected. In principle, the list of potentially secret data that needs to be protected can be expanded by a user. Essentially any type of data is conceivable, in particular secret notes or image data.
- secret data such as passwords must generally be transmitted and stored in encrypted form.
- Cryptographic processes are suitable for this. Such processes are not only aimed at encrypting data, but also serve to ensure the integrity and origin of data.
- a method for ensuring the integrity of data is known from the state of the art, in which a so-called hash value (also called a hash or checksum) is calculated from data.
- a so-called hash value function (hash function) is used.
- hash function is provided, for example, by the Secure Hash Algorithm (SHA).
- SHA Secure Hash Algorithm
- a typical length for a hash is, for example, 256 bits.
- a desirable property of a good cryptographic hash function is injectivity and the resulting collision resistance, which means that the hash function always maps different input data to different hashes. If the sender of the data calculates its hash value and makes this hash value available to the recipient, the recipient can verify the authenticity and genuineness of the data, provided the hash value itself is genuine and reliable.
- the hash method has the disadvantage that the method is completely invalidated if the hash value itself is manipulated during a man-in-the-middle attack.
- Man-in-the-middle attacks can be largely avoided if both sides exchange certificates with each other during communication between A and B and communicate which certificates they expect. This makes it impossible for an attacker E to manipulate the communication. This process is known as certificate pinning.
- a certificate is a data set that confirms the properties of a person or a device and whose origin and integrity can be cryptographically verified. Certificates based on asymmetric cryptographic methods, also known as public-key or public-private-key methods, are widespread. They are used, among other things, for digital signatures. With asymmetric cryptographic methods, an owner has a key pair consisting of a public and a secret (or private) key. Using a unique cryptographic function, the owner calculates a certificate or signature for a specific message or its unique hash.
- Any recipient can use a mutual cryptographic function to restore the message or its hash from the public key published by the owner and the certificate or signature and, by comparing it with the actual (unencrypted) message, ensure beyond doubt the authorship of the owner and the integrity of the message.
- a device can, for example, authenticate itself against a web application or server by verifying ownership of the private key. which in turn was issued to the device, for example, by a trusted third party.
- Asymmetric cryptographic methods can also be used to encrypt data so that the original data cannot be viewed in plain text by third parties.
- the data is encrypted by an actor in the system using the public key of an asymmetric key pair and cryptographic algorithms.
- the secret key is only known to the actor who is allowed to decrypt the data and should not be shared but stored securely.
- the resulting encrypted data set can only be decrypted by the associated secret key, i.e. only by the corresponding actor.
- symmetric encryption In the alternative symmetric encryption, however, data is encrypted with a single cryptographic key. It can only be decrypted using the same key.
- the advantage of symmetric encryption is that the process is relatively simple, efficient and fast.
- the disadvantage of symmetric encryption is that it requires that all trustworthy parties who are authorized to view the data must know the key, since both encrypting and decrypting data requires knowledge of the same key. At the same time, it must be ensured that only these parties have knowledge of this key. This gives rise to the problem of so-called key exchange via a potentially insecure digital
- Transport Layer Security is a cryptographic protocol for securing communication in networks.
- TLS is an example of a widely respected standard that is kept up to date in various versions.
- TLS includes methods for creating and using symmetric and asymmetric cryptographic keys, for creating digital signatures, for exchanging keys over insecure channels and for authentication.
- US10893045B2 discloses a method in which only certain end devices are allowed access to data, including on a server, by creating a session on the server using a unique ID of the end device.
- An authenticator can also be used to allow or deny access from end devices by authenticating the user with a second factor.
- the server does not store explicit password data, but rather any data, and access to the data is achieved using a master password.
- the encryption method of the server-side data is controlled in the method by any end device. The method is therefore suitable as a secure data storage facility, but not as a password manager without a master password.
- US9590959B2 also discloses a method in which a user's access request to a database service is authenticated by a cryptographic service. Different cryptographic methods are provided to prove the authenticity of the request or the user. This method can implicitly be understood as authentication for a server-based password manager with additional functions. However, no 2FA or a more specific encryption technique for potential password data stored in the database is disclosed.
- a single sign-on system is known from US8589442B2, which works according to a decentralized principle. Login data of a user on one device can also be used on other devices by authenticating unique device IDs of all authorized devices with a mapping algorithm. However, this procedure does not 2FA is disclosed for individual logins.
- US10341334B2 discloses a single sign-on solution in a portal variant, where a user logs in once to several associated websites using a master password. The associated logins and passwords are stored on a web server, encrypted using the master password. 2FA is not disclosed here either.
- US8904180B2 discloses a method and system in which encrypted data on a device is stored separately from the key material for decrypting the data on a server. Access to the key material on the server is achieved by querying a client device by sending a signed one-time key, whereby the signature can be authenticated by the server or a third service. The server then makes the key material, encrypted with the one-time key, available to the client device.
- a possibility for 2FA is disclosed, which would also be implicitly conceivable with a smartphone as a second factor.
- the patent does not disclose any methods for the controlled authentication of other, trustworthy clients.
- the encryption of the access data on the server is not controlled by the client or an additional device. Instead, the access data is either encrypted with an additional master key on the server, or as a "key bag" on the client, so that the server only provides authentication. This means that either the advantage of having the security of the access data against attacks on the server in your own hands or the advantages of storing it on the server are lost.
- US20080031447A1 discloses a method for securely storing passwords and user names from websites on a server.
- the invention discloses encrypted storage, whereby the data can only be decrypted using key material from a client, so that the data on the server is not vulnerable.
- the method does not disclose 2FA and expects a master password from the user.
- US20220209955A1 discloses a method for enabling a secure log-in process even under offline conditions, whereby a server provides various services, such as regularly changing passwords and authenticating users.
- the invention discloses two variants of storing password data: online and offline.
- a client In the online variant, it is disclosed that a client must authenticate itself using an additional device as a second factor, but it is not clearly disclosed that the password data on the server is stored by a
- the key material controlled by the client is permanently encrypted and therefore cannot be attacked.
- the second factor or authenticator is also not able to control the coupling of other clients in the sense of a password manager.
- the keys are stored encrypted on the client, not on a server.
- US9727715B2 discloses a method which also includes a server and an application for password management.
- Password data is encrypted using an asymmetric key associated with a client, stored on the server and can be accessed when visiting the associated website.
- the private key on the client is in turn encrypted using another key which is generated from an authentication mechanism so that 2FA can be achieved.
- this second factor does not have to be an additional device and is not set up to manage the available clients in the sense of a password manager.
- the client is the owner of the first key; multiple clients cannot be managed by a trusted second factor, for example a mobile application.
- US10491588B2 discloses a method in which a password management server acts as an authenticator to establish the connection between a device and a secure password database.
- the method also includes the automatic filling of password forms on the device by a web application.
- the server as an interface always requires a connection from the server to the device as well as to the secure password database, which combines the disadvantages of local and cloud-based storage.
- a master password is also required.
- EP2332114B1 and US9948648B1 disclose methods for automatically filling in and generating password data in web applications. However, the methods do not specify secure control and storage of the password data.
- EP3420677B1 also discloses a method in which a password-free connection of two client devices is carried out by communication via a server.
- secret material for secure authentication is exchanged in an encrypted manner using asymmetric key pairs between both clients and stored on a server to confirm that the devices are connected.
- the exchange of information via asymmetric encryption is carried out by scanning QR codes. from one client to the other client. Sharing of login data such as passwords between the clients is revealed, but no server-based password manager or primary control of password data by a client.
- the security white paper v1.4 from heylogin GmbH describes a method that provides password-free management of secret data in a user-friendly manner.
- Secret data can be stored securely on a server and encrypted using flexible client devices.
- the method does not reveal any possibility of managing user-based permissions to the secret data or exchanging access, since each encryption of secret data is permanently assigned to a device.
- secret data such as passwords
- the user should not have to accept any loss of time or security by remembering and entering secret data, in particular as a single point of failure. Instead, user-friendliness similar to an SSO solution should be provided.
- the user should be able to manage the secret data for any web application and on any of the devices they use easily, efficiently and inexpensively.
- the security and integrity of all secret data on servers exposed on the Internet should be ensured and controlled via the user's devices.
- the authorizations to access the secret data should be flexibly assigned and assigned to users and shareable between users.
- an authenticator client controls the use of the secret data, the devices using this secret data and the underlying encryption of all secret data.
- the secret data is stored on a server so that multiple devices can access it, which is an advantage in terms of usability of the invention.
- All secret data is stored exclusively in encrypted form on the server, with keys that are only available on the user's devices.
- the devices never send secret data in unencrypted form to the server, so the server is only used as a data storage and communication proxy.
- the server allows central access to the secret data and its use with various devices, as long as the user authorizes this using the authenticator client. All communication between the user's devices takes place via encrypted channels.
- the method is inherently protected by 2FA, whereby the secret data and authorizations of other devices can be easily managed at the same time via the authenticator client.
- key pair implies that it is an asymmetric key pair comprising a private and a public key.
- client includes both an authenticator client and an application client with its application client extension.
- a push authenticator is initialized on an initial authenticator client.
- the authenticator client can be seen as the core of the method according to the invention on the user side, since this authenticator client controls any storage and use, as well as any addition of further clients, in the method described below.
- the push authenticator is a system of cryptographic keys of the authenticator client, which in combination allow the method according to the invention described below to be implemented on the software side, while the authenticator client describes the hardware device itself that is used for the method according to the invention.
- the initial authenticator client is described as initial because it can be replaced, e.g. if the device is lost.
- the first sub-step of S01) involves generating at least two asymmetric Key pairs, a login key pair consisting of a private login key and a public login key, and an encoding key pair consisting of a private encoding key and a public encoding key.
- a key element designated for creating and storing cryptographic keys is preferably used to generate and store asymmetric cryptographic keys.
- a modern smartphone is preferably used as the authenticator client, as such key elements are standard equipment for their biometric functions, among other things.
- Such key elements are advantageously designed to be particularly resilient to cyberattacks and physical attacks, so that they protect the private keys particularly well.
- Curve25519 is particularly preferred for creating the asymmetric keys, which is recommended in the TLS protocol 1.3.
- the two public keys are stored on a server in a second sub-step of S01).
- a client By possessing the private login key, a client can authenticate itself against the server.
- the login key can be seen as a login to an account for the method according to the invention, but this is not dependent on knowledge of a master password, but on possession of a device, the authenticator client.
- the server can verify that the message actually comes from a client that is in possession of the private login key.
- a cryptographic method described in the TLS protocol is particularly preferably used for the authentication process.
- the server can use the public coding key to encrypt data in such a way that only the owner of the private coding key has access.
- step S02 the existing push authenticator is used to link additional clients to the server that can retrieve the secret data stored for this account. These clients are referred to below as application clients.
- This process of coupling such an application client is authorized in a first sub-step of S02) by the authenticator client by exchanging at least its private login key in encrypted form with the application client.
- This encrypted transmission is preferably carried out using asymmetric encryption. A preferred embodiment of the encrypted transmission is described later in the description.
- the application client uses the private login key to authenticate itself against the server in the manner already described.
- a session is created on the server for the application client by the authenticated application client storing the public session key of a session key pair generated by the application client on the server.
- This public session key can be used to encrypt data to which only this application client has access using its private session key.
- Creating a session requires that the application client comprises a computer program product that is set up to generate an asymmetric cryptographic session key pair.
- a computer program product that offers this functionality, among other things, is part of this invention and is described later in the description.
- a software functionality for creating cryptographic keys on the application client is provided by an application client extension described later.
- the application client also uses a key element to securely store the private keys, in particular the private encryption key and the private session key, which it has at its disposal.
- Step S02) can be repeated in order to link several application clients using the authenticator client.
- all linked clients or their sessions are displayed in list form on the authenticator client.
- the method is set up for an option for the authenticator client to control the sessions of application clients, delete the public session keys from the server and thus remove the session on the server side.
- any contact by the application client without a session with the server is rejected by the server.
- the application client is set up to delete any keys it possesses in the event of rejection by the server. This advantageously prevents the long-term and therefore unnecessarily risky storage of private keys on unauthorized devices.
- the application client retrieves the status of its session from the server at regular intervals, so that the private key material is deleted from the authenticator client at this point in time at the latest if no session exists.
- the status of the session is retrieved for the first time by the application client immediately when the application client extension is started.
- the time interval can be set and is also made dependent on the security requirements on the application client. Is For example, if no key element is installed in the application client and the application client is connected to a potentially dangerous public network, the time interval for retrieving the session status can be set to a particularly short time, for example 1 second.
- a client cannot see that its own session no longer exists without contacting the server, which deletes the key material. This advantageously prevents an attacker from being incentivized to delay deleting the session.
- authenticator clients also each receive a session on the server, so that several authenticator clients of a user can be initialized, but also controlled from another authenticator client.
- step S03 the initialized authenticator client and the coupled application client are used to store or retrieve secret data by the application client on or from a safe located on the server.
- a safe is a data packet on the server's storage medium that is assigned to an account and, as described below, is cryptographically encrypted.
- the safe contains an ordered list of transfers that map the chronological order of the stored secret data so that all secret data is clearly sorted and assigned.
- several safes can exist for an account, which can be encrypted differently.
- Secret data in the safe preferably includes login data for web applications, i.e. user names, email addresses and passwords.
- alternative secret data can also be stored in safes according to the invention, for example payment and credit card information or addresses.
- other data types that can be defined by the user such as free text for secret notes or image data, can also be stored.
- the safe containing secret data is encrypted using a symmetric key.
- this encryption advantageously means that multiple copies of the safe do not have to be encrypted for the different push authenticators. It therefore makes sense that there is always exactly one symmetric key for a safe.
- this key Since with symmetric encryption, decryption is also done using the same symmetric key, this key must also be encrypted because it is to be stored on the server in order to ensure authorized access to the Safe.
- This encryption takes place in a second sub-step of S03) using the public encryption key of the push authenticator, so that only a client that is in possession of the private encryption key has access to the symmetric key and thus the safe.
- the storage and retrieval of secret data from the safe is authorized by the application client, namely by the authenticator client, which provides the private encryption key in encrypted form for the application client so that the latter can retrieve the private encryption key and decrypt the safe.
- This encrypted provision of the private encryption key is preferably authorized by an active input on the authenticator client by a user.
- the encrypted provision or retrieval is realized by the private encryption key being encrypted by the authenticator client using the public session key and sent to the application client via the server, whereby only the application client can decrypt this transmission.
- the private encryption key is transmitted to the application client together with the private login key in step S02).
- the private encryption key cannot be stored in persistent memory by the application client, so that the authenticator client must confirm each individual storage or retrieval and the private encryption key can advantageously not be stolen in the event of a physical attack on the application client while it is switched off.
- Further preferred embodiments for authorizing storage and retrieval by providing the encryption key by the authenticator client result from further described preferred features of the invention.
- the authenticator client controls the authorized clients through this configuration, particularly in step S02) and any access to the secret data in step S03).
- the authenticator client is used as a second factor for an attempt to retrieve secret data from the application client.
- the authenticator client is required to activate a protective function of the device, for example through biometric authentication.
- biometric authentication advantageously means that the 2FA protection is completely achieved through the user owning a device (authenticator client) and querying a secret from the user (e.g. biometric authentication).
- biometric authentication e.g. biometric authentication
- This authentication of the user on the authenticator client is now standard in any case, especially when using a modern smartphone, and is independent of the management method. confidential data. In this respect, this measure is advantageous not to be seen as additional effort, as other 2FA methods are usually seen.
- a smartphone is used as an authenticator client, which has a key element. Furthermore, the authenticator client preferably has options for user input to authorize steps S02) and S03).
- an authenticator client is used simultaneously as an application client.
- the computer program products that implement the features of the method on the authenticator client or the application client when they are executed are installed and executed separately from one another.
- the features of the method that belong to the authenticator client are executed in a mobile app and the features of the method that belong to the application client are executed in a web application that is called up via the browser.
- the embodiment variant in which the use of the push authenticator within the mobile app requires a protective function of the smartphone when the mobile app is opened is particularly preferred, so that 2FA is advantageously secured when the device is used.
- the method according to the invention further comprises the use of at least one profile as an indirection level of the authenticator client, in addition to the initialized push authenticator.
- a profile is essentially technically equivalent to a push authenticator, with the difference that a profile does not have its own login key to authenticate itself against the server.
- a profile instead of at least one push authenticator, a profile encrypts the symmetric key of at least one safe with a public profile key of an asymmetric profile key pair created on the authenticator client.
- the profile and thus in particular the private profile key is then encrypted on the server side in this standard embodiment using the public coding key of the associated push authenticator.
- a profile comprises at least the profile key pair, but in the further course of the description, further keys belonging to the profile are described, which are also encrypted accordingly using the public coding key of the associated push authenticator.
- This configuration of standard and preferred encryptions explains the concept of the profile as an indirection layer, which means that the profile acts as an additional layer between a push and authenticator and a safe.
- the profile is therefore controlled by this push authenticator and thus by the authenticator client.
- the profile controls access to safes encrypted with its profile key pair.
- the technical effect is an additional encryption level with which a wide range of encryption variants can be implemented between push authenticators and safes.
- a user is assigned a profile for each organization or context in which all accesses for this user can be collected.
- Profiles advantageously allow authorizations to be implemented on a user-specific or otherwise flexible basis.
- profiles allow, for example, the implementation of a superadmin profile, which can encrypt all of an organization's safes and is therefore a basic requirement for the possible allocation of administrator rights to manage secret data, but also to prevent the loss of secret data due to key loss.
- profiles are also fundamentally advantageous in relation to the crypto agility of the invention or the organization that uses the method according to the invention.
- crypto methods can be changed or updated step by step. This means that basic security against certain threats can be established with little effort, without, for example, having to re-encrypt each individual safe.
- This is a flexibility advantage compared to the use of exclusively direct encryption of safes using push authenticators.
- any key material associated with a profile is created from a random profile seed.
- encrypting a profile e.g. by the Encryption key of the associated push authenticator that the random profile seed is encrypted.
- each user per organization or context is assigned not only one profile for encrypting safes, but at least one additional profile that is used for the fully encrypted reception of messages and information and/or for storing preferences and settings regarding the use of the method according to the invention, for example the time until a session is automatically closed.
- other functions can thus be implemented in the same encryption architecture in addition to storing and retrieving secret data.
- a profile In one version of a profile, several identical copies of the profile are encrypted on the server side using the public encryption keys of several push authenticators.
- This version gives several push authenticators, especially those of several users, access to a profile.
- the advantage here is increased flexibility in managing and changing authenticators.
- a profile can be encrypted using any authenticator. For example, hardware security devices can be added or removed as additional or backup authenticators. The entire set of authenticators of a user or several users can thus be flexibly rotated with regard to their profile. This is also advantageous for a more secure backup and recovery strategy, as it makes the total loss of key material less likely.
- a profile In another variant of a profile, several profiles are encrypted with the same public encryption key of a push authenticator, so that a push authenticator has access to several profiles.
- This version can be used to implement a push authenticator as a master device for specific applications in which extensive access should not depend on users or profiles, but on specific devices.
- a profile is encrypted using the public encryption keys of several push authenticators at the same time, so that these several push authenticators are required at the same time to gain access to the profile.
- This variant is preferably only used for particularly sensitive secret data for which a high level of security applies or for whose management the consent of several users is required. This can advantageously create a digital four-eyes principle for access to this profile.
- the symmetric key of a vault is encrypted by one or more different public profile keys or public encryption keys of multiple profiles or push authenticators.
- the symmetric key can be encrypted by the public keys of multiple profiles, multiple push authenticators, or both profiles and push authenticators.
- a symmetric key can be encrypted by the public keys of several profiles or push authenticators at the same time, so that these several profiles or push authenticators are required to gain access to the symmetric key.
- This variant is preferably only used for particularly sensitive secret data for which a high level of security applies or for whose management the consent of several users is required. This can advantageously create a digital four-eyes principle for access to secret data.
- multiple copies of the same symmetric key can be encrypted using the public keys of multiple profiles or push authenticators, so that these multiple profiles or push authenticators can access the symmetric key independently of one another.
- the access of the profiles or push authenticators to a safe can thus be established and managed independently of one another.
- multiple vaults can be created for one account, so that conversely a public profile key of a profile or a public encryption key of a push authenticator can encrypt multiple different symmetric keys belonging to different vaults.
- a push authenticator can have direct access to the symmetric key of a safe and to a profile, with the profile also having access to three other safes. This would give a push authenticator access to a total of 4 safes.
- Profiles are advantageous as an indirection layer for push authenticators because they provide flexibility for access permissions to secret data. Access to a Tresor is no longer necessarily tied to a user and their (initial) authenticator client. Instead, in a preferred implementation, a user can share access to a vault via a profile with other push authenticators on other users' authenticator clients. To share access to a vault via a profile, in a preferred implementation, a sharing authenticator client encrypts this profile with the public encryption key of a push authenticator registered with the server of another, receiving authenticator client by retrieving the public encryption key from the server. The sharing authenticator client then stores the encrypted profile on the server so that the receiving authenticator client can retrieve the profile that only it can read. Profiles thus provide a solution for secure, fully encrypted account sharing, where access to the secret data, but not access to the account, is shared via the push authenticator itself. This feature is particularly beneficial in small teams with specialized tasks in the work environment.
- two profiles are used sequentially, with at least a first profile being encrypted directly by the public profile key of the profile key pair of at least a second profile.
- certain authorization chains can advantageously be implemented even more simply and, from a key hygiene perspective, even more cleanly.
- a user can temporarily take over access to secret data or access data from another user without the profiles or authenticators assigned to the other user being changed. Instead, only an encryption of a profile of one user with a profile of the other user needs to be created and sent to the profile of one user.
- a parent or guardian can temporarily take over access to a child's access data.
- access data of an employee leaving an organization can be transferred securely and easily to a new employee.
- the direct encryption of at least a first profile using the public profile key of the profile key pair of at least a second profile means that no further intermediate steps are introduced, such as separate safes for storing certain profiles.
- This embodiment is less computationally and memory-intensive.
- the advantage is that the encryption of the profiles is therefore more efficient and, from a key hygiene perspective, simpler and clearer.
- Profile is the random profile seed of the first profile from which its key material can be generated, is encrypted directly by the profile key pair of the second profile.
- the profile seed contains all the necessary information of the profile, so that it is advantageous not to encrypt several individual keys.
- two profiles are used sequentially in such a way that a comprehensive authorization structure for at least one administrator of the secret data of an organization is advantageously implemented cryptographically.
- the first profile encrypts all safes belonging to an organization and at least the second profile is managed by the push authenticators of an administrator of the organization.
- the first profile technically takes on the function of a super administrator and can advantageously prevent unwanted loss of access to safes by automatically encrypting each safe using this profile, preferably automatically.
- At least one, but preferably all user profiles of administrators of the organization have access to this profile. If an administrator authorization is to be revoked, the encryption of the first profile can advantageously be simply deleted with the second profile of this administrator, so that the second profile is no longer able to decrypt the first profile.
- the administrator of the organization is able to delete all encryptions according to method step S03) of his organization, replace them with placeholders and generate new ones.
- This embodiment allows an administrator to cancel profiles of certain users, certain push authenticators or certain encryptions (and thus access authorizations).
- Advantageous use cases of this are the on- and offboarding of employees of an organization, the creation and cancellation of certain (administrator) authorizations, as well as the blocking and restoring of access in the event of loss or change of devices that can be used as push authenticators.
- the administrator of the organization is able to resolve an encryption and thus the corresponding access authorization as follows.
- the encryption of a profile or the symmetric key of a safe is deleted.
- the profile is continued as a free profile, with placeholders being used as encryptions.
- new encryptions are created and the keys or the profile start value are encrypted and sent to the push authenticator of the new, replaced or returning user.
- This can advantageously be used to start a flexible and secure onboarding process. It is particularly preferable for a new push authenticator to regenerate the keys of his newly assigned profile after onboarding, so that from a data protection point of view only he, and no longer the administrator, has access to them.
- a safe comprises a sensitive data area and a metadata area.
- the sensitive data area is additionally encrypted within the safe using a symmetric high-security key. This means that to access this sensitive data area, both the symmetric key for decrypting the entire safe and the symmetric high-security key for decrypting the sensitive data area are required.
- the symmetric high-security key is in turn encrypted using a public high-security key of an asymmetric high-security key pair of a push authenticator or a public profile high-security key of an asymmetric profile high-security key pair of a profile.
- secret but not highly sensitive data such as user names and email addresses can be stored in the metadata area, while the associated passwords and other secret data such as answers to security questions are stored in the sensitive data area.
- billing addresses could be stored in the metadata area and credit card information in the sensitive data area.
- the high-security key pair or the profile high-security key pair each belongs to a push authenticator or profile and is generated on the corresponding authenticator client in addition to the key pairs already described that belong to a push authenticator or profile, and the respective private key is stored there.
- the high security key pair and the profile high security key pair cannot be stored on a client's permanent memory.
- a permanent memory is a memory that makes data available even after the power supply is switched off. This means that a client only has these keys available in a working memory, at most until the next time this client is switched off. After that, they must be re-stored. To ensure that access to these keys is not lost in this embodiment, this generation must be reproducible at least on the authenticator client that generated the high-security key pair or the profile high-security key pair. The preferred method for this is to generate them from a random starting value that is saved. Such a starting value is described in more detail later in the description.
- the non-permanently storable version of the private high-security key or private profile high-security key ensures that an application client never has permanent access to the sensitive data area of the safe, but that this access always depends on the generation from the random start value or retrieval of the private (profile) high-security key from the authenticator client. This means that the authenticator client controls access to the sensitive data area not only when connecting application clients, but at all times.
- the login key pair of an authenticator client cannot be stored on permanent storage, so that no application client can permanently log on to the server. This advantageously means that access to the account is also permanently controlled via the authenticator client.
- a coupled application client can be set to an open or closed state, whereby this application client receives access or no access to the private high-security key.
- This advantageously ensures that access of this application client to the sensitive data area can be regulated, whereby an application client in the open state receives access, while an application client in the closed state only receives access to the metadata area.
- This regulation or setting to the open or closed state is carried out by the authenticator client.
- setting to the open or closed state is achieved by switching a binary switch within a mobile application, whereby the mobile application displays such a binary switch for each coupled application client in a list.
- these binary switches for setting the state are preferably displayed within the previously described list overview of all clients on the authenticator client.
- the state is determined by the existence of the with the high-security key or profile high-security key encrypted with the public session key of the application client in an application client session on the server. If a high-security key encrypted in this way exists, only the application client that has the private session key can decrypt this high-security key and use it to access the safe.
- the authenticator client associated with the high-security key can change the application client from the open to the closed state by removing this key from the server.
- the ability to put an application client into an open state can increase the efficiency of retrieving and storing secret data for a particularly trustworthy device.
- the ability to put an application client into a closed state means that every retrieval or storage of secret data can and must be authorized by the trusted authenticator client.
- the private encryption key or private profile key unlike the equivalent high-security keys, can be stored on the application client so that the application client has at least access to the metadata area as long as it has an active session on the server.
- the application client cannot retrieve secret data from the sensitive data area for the web applications, but can at least recognize via a stored URL of the web application or a stored user name that secret data for the web application is present in the sensitive data area in the safe.
- the integrity of the public coding keys, high-security keys, profile keys, profile high-security keys and session keys stored on the server is ensured by a signing process.
- a private identification key of an identification key pair of the push authenticator or profile associated with the respective public key stored on the server is used for the signing process.
- the public identification key is stored on the server.
- a signature is generated from the private identification key and the respective public key, which is stored on the server together with the respective public key.
- the server or third parties can determine without a doubt that the signature comes from the owner of the private identification key, in this case from the authenticator client.
- the integrity of the signed public keys is guaranteed. This applies as long as the public identification key on the server is also correct and unchanged. If it is the However, if this is no longer the case, this problem can again be advantageously detected by the authenticator client.
- the key pairs belonging to a push authenticator - login key pair, identification key pair, coding key pair and high-security key pair - are derived from a random authenticator start value. Furthermore, the key pairs belonging to a profile - identification key pair, profile key pair and profile high-security key pair - are also derived from a random authenticator start value. This derivation is particularly preferably carried out using collision-free cryptographic one-way functions.
- Deriving the key pairs has the advantage that a push authenticator and all of its keys can be derived from a single random start value.
- the random authenticator or profile start value can be transmitted once instead.
- Other preferred properties of keys such as that high-security and login keys may not be permanently stored on an application client for security reasons, are preferably assigned to the keys after derivation.
- Any random authenticator or profile start value that can derive keys that may not be permanently stored on an application client may itself not be permanently stored on an application client.
- the random start values for push authenticators and profiles on an authenticator client are stored on the key element of the authenticator client, advantageously encrypted and protected against attacks.
- This embodiment variant results in the random authenticator or profile start value being transmitted in encrypted form instead of the encrypted transmission of private keys in the method according to the invention.
- the random authenticator start value is transmitted in encrypted form instead of the private login key.
- the random authenticator start value or profile start value is transmitted instead of the private coding and high-security keys or profile and profile high-security keys.
- the setting of an application client into an open or closed state is controlled by adding the random authenticator or profile start value encrypted with the public session key of the application client to a session instead of the private high-security keys contained in these random start values.
- a profile is not generated from one but from two random profile start values, with the profile key pair being generated from one random profile start value and the identification key pair and the profile high-security key pair being generated from another random profile high-security start value. If the symmetric key and symmetric high-security key of a safe are encrypted using a profile, this division also allows a coupled application client to be divided into open and closed states, in that in the case of the closed state the random profile high-security start value (which cannot be stored permanently) is not made available in the session and thus no sensitive data can be retrieved from the safe by the application client.
- the key pairs belonging to a push authenticator, identification key pair, coding key pair and high-security key pair are derived from a random salt value in addition to the random authenticator start value.
- the key pairs belonging to a profile, identification key pair, profile key pair and profile high-security key pair are derived from a random profile salt value in addition to the random profile start value and profile high-security start value.
- the salt value and profile salt value are stored unencrypted on the server.
- Deriving keys from random start values combined with random salt values has the advantage that an attacker cannot find out private keys by testing different start values, also systematically using so-called rainbow tables, and can derive the start value if the result of a key is the same. Salt values thus advantageously increase cryptographic security.
- the method comprises a recovery function which allows a new authenticator client and the secret data encrypted by any push authenticator or profile of the initial authenticator client to be used without having access to the initial authenticator client, i.e. the first authenticator client used for this account.
- Backup authenticators are used for this purpose, which are advantageously initialized on the new authenticator client by the recovery function in order to gain access to the secret data of the initial authenticator client.
- an additional backup authenticator is created, which contains a copy of the same secret data like the push authenticator of the initial authenticator client.
- the corresponding random authenticator start value of the backup authenticator, from which all keys of this backup authenticator can be derived, is preferably stored in an encrypted cloud that is protected by additional security measures.
- iOS and Android offer encrypted cloud backups for their mobile applications, which are used for the backup authenticator.
- a backup code can be retrieved by the user from the mobile application.
- this backup code is retrieved for the first time, another backup authenticator is created and the user's secret data is encrypted with this backup authenticator.
- An authenticator start value is particularly preferably derived from the backup code using a hash function using a backup salt value, which is stored on the server.
- the backup salt value advantageously increases the security of this execution of the recovery function.
- the user himself is responsible for security against spying, manipulation and loss of the backup code.
- the secret data is combined into a single transfer in all safes encrypted by the respective backup authenticator of the initial authenticator client.
- the safe(s) are then encrypted using one or preferably two new symmetric keys. These symmetric keys are encrypted using new public encryption keys and preferably new public high-security keys of a newly initialized push authenticator on the new authenticator client. All keys of the initial authenticator client, including the backup authenticator used, are deleted so that all safes are advantageously re-encrypted and long-term attacks on the secret data are prevented via the recovery function from this point on at the latest.
- New recovery functions are preferably created on the new authenticator client using the backup authenticators described.
- an application client comprises an associated application client extension that is locally connected to and on the application client.
- the application client extension is a browser extension in a browser on the application client.
- the application client extension serves to store metadata of the secret data of a safe to which the session of this application client is assigned. store and retrieve. This makes it particularly useful for the application client extension to identify websites that are accessed in the browser as known websites for which secret data is already available.
- the application client extension generates overlays, in particular for the forms for logging in to well-known websites.
- the overlays are particularly advantageously displayed instead of the original forms by adapting the source code of the website accordingly. This allows a user to immediately recognize that secret data has already been saved using the method according to the invention and to retrieve it accordingly.
- the overlays also ask the user whether the secret data already entered should be saved in the corresponding safe, for example if there are no previously saved login data for this website after a successful login attempt on a website.
- the application client extension also generates overlays for forms that ask the user to enter, in particular but not exclusively, address, payment and credit card information.
- the application client extension generates overlays if the user or another user has left a secret note for a specific URL and asks whether it is displayed. This advantageously allows notes to be saved and shared securely specifically for certain web applications.
- the application extension automatically recognizes known websites for which secret data is available, generates and displays overlays, and automatically fills out forms, particularly login forms, with all secret data available in the current state of the application client.
- the only task left for the user is to confirm the saving or retrieval of secret data using the authenticator client when the application client is closed, with the application client extension also generating and displaying a special overlay for this task. This advantageously ensures a user experience that is as convenient as an SSO solution.
- any authorization of the coupling of application clients as well as the storage and retrieval of secret data by an authenticator client is achieved by a swipe gesture that is carried out on the smartphone used as the authenticator client in this embodiment.
- a mobile application as already described is installed on the authenticator client, which in this
- the user is prompted to perform the swipe gesture using a simple graphical user interface.
- the security function of the smartphone for example biometric authentication using a fingerprint or facial identification, is requested. This advantageously achieves 2FA using an authentication that is intuitive and familiar to the user.
- the authorization on the smartphone is also a particularly simple and intuitive type of authorization and advantageously increases the user-friendliness of the entire process.
- a session of a client coupled to the server includes a session token, which is stored on the server alongside the public session key.
- the existing session token advantageously allows the client to send requests to the server.
- removing the session token allows sessions of application clients, but also authenticator clients, to be controlled by rejecting their requests to the server by removing the session token.
- a client whose request to the server is rejected deletes its stored keys.
- the session token is therefore a particularly simple way of exercising control over client sessions by an authenticator client.
- the coupling of an application client is initialized in step S01) by entering a public exchange key of an asymmetric exchange key pair generated by this application client into the authenticator client.
- the input includes any form of data capture by the authenticator client, in particular but not limited to physical typing by the user or capture of image, radio or sound information.
- the authenticator client encrypts its private login key or preferably its random authenticator start value with this public exchange key and sends the encrypted result to the application client, which can decrypt the private login key or preferably the random authenticator start value with the private exchange key. Encryption advantageously ensures the security of the transmission.
- the encrypted private login key or random authenticator start value is preferably sent using the server as a proxy, i.e.
- the integrity of the sent encrypted private login key or random authenticator seed is verified by means of a signature of the authenticator client, particularly preferably by means of its identification key.
- the application client can determine the authenticator client as the sender and the integrity of the encrypted private login key or random authenticator seed value sent if the server also sends the public identification key to the application client.
- the exchange key pair is only used once, so that no spam, malicious code or incorrect information can be sent to the application client using the same encryption.
- the exchange key pair is particularly preferably renewed on a time-controlled basis, particularly preferably every 30 seconds, 60 seconds or 5 minutes.
- the public exchange key is contained in an exchange QR code generated and displayed by the application client, which is captured visually by the authenticator client and particularly preferably by camera.
- This embodiment advantageously allows a particularly high level of user-friendliness.
- a mobile application that executes the method according to the invention on a smartphone used as an authenticator client is registered with the operating system of the smartphone as a processor of at least one such specific type of QR code that is used for coupling application clients. This mobile application is therefore started automatically when such a QR code is captured by any camera application on the smartphone. This in turn increases the time efficiency of the method and thus advantageously the user-friendliness.
- embodiments of the present invention can be implemented as a program, firmware, computer program or computer program product with a program code or as data, wherein the program code or the data is effective to carry out one of the methods when the program runs on a computing unit.
- the program code, the computer program product or the data can also be stored, for example, on a machine-readable carrier or data carrier.
- the program code or the data can be present, among other things, as source code, machine code or byte code as well as other intermediate code.
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- ASIC Application-Specific Integrated Circuit
- IC Integrated Circuit
- SOC System on Chip
- FPGA Field Programmable Gate Array
- the present invention also includes the server, which has at least one computing unit for executing computer programs, network connections for exchanging data with at least all clients connected to the server in a network, and at least one storage medium for storing computer programs as well as keys, values, sessions and safes.
- the computing unit is a CPU (central processing unit), which can be used for a variety of operations but is not adapted to particularly specialized computing operations.
- the server also includes an application-specific integrated circuit (ASIC) for efficient encryption, for checking signatures or certificates and for executing hash functions.
- ASIC application-specific integrated circuit
- the present invention comprises a computer program product A.
- This comprises commands which, when executed by a computing unit on an authenticator client, cause the authenticator client to carry out the method according to the invention.
- This relates in particular to the method steps and features that are carried out on the authenticator. These include in particular, but not restrictively, the following method steps and features:
- the server and a computer program product A the present invention also includes a computer program product B.
- the computer program product B consists of up to two parts, a primary computer program product of the application client and an application client extension.
- the primary computer program product of the application client is a web application
- the application client extension is implemented as a browser add-in.
- the coupling including displaying the public exchange key pair and functions such as retrieving the status of the application client, is carried out in the web application.
- the browser add-in takes over all functions and steps of the process relating to storing metadata of secret data, creating and displaying overlays, filling out forms, and storing and retrieving secret data on and from the server.
- the server and the computer program products A and B the present invention also includes a computer program product C.
- This relates in particular to the method steps and features that are carried out on the server. These include in particular, but not restrictively, the following method steps and features:
- the present invention also includes a system which consists of the combination of the computer program products A, B and C and the server.
- This system is able to fully carry out the present inventive method.
- the prerequisite for this is the use of suitable authenticator clients or application clients which have already been specified but are not covered by the present invention and which are set up to execute at least the computer program products A and B.
- all cryptographic keys are shown as color boxes and provided with a key symbol. All keys or values that are shown in light gray are secret keys or values that are only available on the device to which they belong. Keys or values that are shown in white are also secret, but are available on the server, albeit only in encrypted form. Keys or values that are shown in dark gray are public keys or values and can be unencrypted on the server side.
- Fig. 1 The operating principle of the user interface of the method according to the invention in
- Step S03 The user saves or retrieves secret data on an application client (1.3), here a laptop.
- this function is provided via overlays (1.4.2) by the application client extension (1.4.1), in this preferred embodiment executed as a browser add-in.
- Different forms (1.4.3) of different web applications can be automatically recognized by the application client extension (1.4.1) and the inventive overlay (1.4.2) displayed. If the user saves or retrieves secret data, he is asked to confirm this step on his authenticator client (1.2), in this preferred embodiment a smartphone.
- Fig. 2 The underlying architecture of the system of the parties involved in the process
- An authenticator client (1.2) communicates via a server (1.1) with an application client (1.3) or its associated application client extension (1.4.1). Both the authenticator client (1.2) and the application client (1.3) and its application client extension (1.4.1) communicate with the server via encrypted channels, shown by the solid arrows, in this preferred embodiment via channels with encryption according to the TLS protocol.
- the server (1.1) serves as a communication proxy between the clients; this functionality is shown with the dotted arrows. In this case, the clients communicate using end-to-end encrypted messages within the encrypted channels. Local, unencrypted communication on the same device only occurs between the application client (1.3) and its application client extension (1.4.1), e.g. between the device memory and the browser add-in.
- Fig. 3 A comparison of the different keys that a push authenticator (1.5) and a profile (1.7) have.
- a profile (1.7) does not have a login key pair consisting of a public (2.1.2) and a private (2.1.3) login key to independently authenticate itself against the server.
- Both the profile (1.7) and the push authenticator (1.5) have an identification key pair consisting of a public (2.2.2) and a private (2.2.3) identification key, whereby all other described public keys of the profile (1.7) or push authenticator (1.5) that are stored on the server are signed using the private identification key (2.2.3), whereby the integrity of the signed public keys can be ensured using the signing process (2.2.4).
- Profile (public (2.5.2) and private (2.5.3) profile key and public (2.6.2) and private (2.6.3) profile high security key) and push authenticator (public (2.3.2) and private (2.3.3) encryption key and public (2.4.2) and private (2.4.3) high security key) have differently named keys for encrypting vaults belonging to the profile or push authenticator.
- the encryption key pair (2.3.2 and 2.3.3) and high security key pair (2.4.2 and 2.4.3) of the push authenticator (1.5) also serve to decrypt any keys of a profile (1.7) assigned to this push authenticator in order to gain access to this profile.
- all keys of the profile or push authenticator are derived from the random profile start value (4.2.1) and the random profile high security start value (4.2.2) or the random authenticator start value (4.1). Both the profile start value (4.2.1) and the profile high security start value (4.2.2) exist in order to be able to retrieve the profile key pair (2.5.2 and 2.5.3) and the profile high security key pair (2.6.2 and 2.6.3) individually from a profile, e.g. depending on whether the profile is in the open or closed state. In this variant, all keys from the push authenticator (1.5) or the profile (1.7) are also derived from a random salt value (4.3) or a random profile salt value (4.4).
- Fig. 4 The encryption of a safe (3.3.1) on a server (1.1), in this
- the public (2.2.2, 2.5.2, 2.6.2) and private (2.2.3, 2.5.3, 2.6.3) keys generated on the authenticator client (1.2) and belonging to the profile are generated from at least one random profile seed value (4.2.1), one random high-security profile seed value (4.2.2) and one random profile salt value (4.4).
- the public keys (2.2.2, 2.5.2, 2.6.2) are stored on the server, whereby the public profile high-security key (2.6.2) is used to encrypt the symmetric high-security key (3.2) and the public profile key (2.5.2) is used to encrypt at least the symmetric key (3.1).
- both symmetric keys are also encrypted using the public profile key (2.5.2).
- the symmetric keys can in turn be used to retrieve secret data from the safe (3.3.1), which is stored there systematically and chronologically sorted in individual transfers (3.3.7) for individual web applications.
- Fig. 5 The access restriction to a profile (1.7) through encryption by a push authenticator (1.5) and a second, in this embodiment, backup authenticator (1.6).
- key pairs associated with the profile are generated from a random profile start value (4.2.1), a random profile high security start value (4.2.2) and a random profile salt value (4.4), whereby These can be used to encrypt a server-side vault as shown in Fig.4.
- the random profile salt (4.4) is stored publicly on the server
- the random profile seed (4.2.1) is encrypted by the public encryption key (2.3.2) of a push authenticator (1.5)
- the random profile high-security seed (4.2.2) is encrypted by at least the public high-security key
- This backup authenticator (1.6) can be created by transferring the random authenticator seed (4.1) and the random salt value (4.3) to another authenticator client and, in the event of a loss of the initial authenticator client (1.2), generate all keys (2.1.2, 2.1.3, 2.2.2, 2.2.3, 2.3.2, 2.3.3, 2.4.2, 2.4.3) there in order to decrypt the profile (1.7) and thus gain access.
- Fig. 6 The public and private keys available to a profile (1.7) and a push authenticator (1.5) on an application client in uncoupled, coupled but closed, and coupled and open states.
- uncoupled state the application client generates only one public (2.8.2) and one private (2.8.3) exchange key in order to be able to receive keys or start values encrypted from an authenticator client.
- coupled state the application client has a session (2.7.4) with a session token (2.7.5) and a public (2.7.2) and a private
- a push or backup authenticator (1.5 or 1.6) also has a login key pair consisting of a public (2.1.2) and private (2.1.3) login key to authenticate against the server, which a profile cannot do.
- a profile (1.7) or push/backup authenticator (1.5 / 1.6) on an application client has all the keys described in particular in Fig. 3.
- the open state can control whether the push/backup authenticator (1.5 / 1.6) on an application client has access to its private high-security key (2.4.3), identification key
- Fig. 7 An illustration of the access authorization to a safe (3.3.1) and the secret data contained therein through the possession and use of certain keys.
- a push authenticator accesses the safe (3.3.1) directly, unlike in the equally possible embodiment in Fig. 4, in which a profile accesses the safe (3.3.1) as an indirection level for the push authenticator.
- the push authenticator is in possession of the encryption key pair (2.3.1), consisting of a private (2.3.3) and a public (2.3.2) encryption key. With these keys, the push authenticator can encrypt and decrypt the symmetric key (3.1) in order to gain access to the safe encrypted by this symmetric key (3.1).
- the safe is divided into a metadata area (3.3.5) and a sensitive data area (3.3.3), with the sensitive data area (3.3.3) additionally encrypted by a symmetric high-security key (3.2).
- the push authenticator can only access the metadata area (3.3.5) and the metadata (3.3.6) contained therein.
- the push authenticator requires the high-security key pair (2.4.1) consisting of a private (2.4.3) and a public (2.4.2) high-security key to encrypt and decrypt the symmetric high-security key (3.2).
- the private high-security key (2.4.3) cannot be stored permanently by the push authenticator, but must be generated or derived using the random authenticator seed value (see Fig.6), which in turn is only possible when the push authenticator is in the open state.
- Fig. 8 An illustration of a preferred embodiment of the
- Application client extension (1.4.1) with its functions and the various overlays (1.4.2).
- the method according to the invention is used here for password-based login to a web application.
- a web application here for example Github.com, shows its standard form (1.4.3) for login. Therefore the application client and the application client extension (1.4.1) must be coupled with an authenticator client by, in this preferred embodiment, the application client extension
- This QR code (2.8.4) contains a public exchange key
- the application extension (1.4.1) recognizes the known form (1.4.3) for logging in and automatically displays an overlay (1.4.2) for logging in using the method according to the invention instead of the form, see the illustration in the top center of Fig.8. If the user initializes the login, the overlay (1.4.2) in the bottom center of the illustration shows that the user should authorize access to the secret data of this web application using the authenticator client - this applies at least in the case that the application client is not set to the open state, because then it could also retrieve the sensitive secret data without authorization. At the end of the process, the overlay (1.4.2) shows the successful login to the web application and is then hidden.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
The present invention relates to a computer-implemented method for the secure management of confidential data on a server, and the secure use of confidential data by means of different application clients. Through cryptographic encryption of the confidential data and the authorisation of all application clients by means of an authenticator client, the user retains full control over their confidential data available on the server at all times, while at the same time maintaining a high level of user-friendliness of the use of the confidential data. The method does not require a master password and comprises two-factor authentication.
Description
INNOVATIVES SERVERBASIERTES VERFAHREN ZUM MANAGEMENT GEHEIMERINNOVATIVE SERVER-BASED METHOD FOR MANAGING SECRET
DATEN DATA
TECHNISCHES GEBIET TECHNICAL FIELD
Die vorliegende Erfindung betrifft ein computerimplementiertes Verfahren für ein gesichertes Management geheimer Daten auf einem Server sowie die gesicherte Nutzung der geheimen Daten mittels verschiedener Applikationsclients. Der Nutzer behält durch kryptografische Verschlüsselung der geheimen Daten und die Autorisierung aller Applikationsclients mittels eines Authentifikatorclients jederzeit die volle Kontrolle über seine auf dem Server verfügbaren geheimen Daten bei gleichzeitig hoher Benutzerfreundlichkeit der Nutzung der geheimen Daten. Das Verfahren benötigt dabei kein Masterpasswort und umfasst Zwei- Faktor-Authentifizierung. The present invention relates to a computer-implemented method for secure management of secret data on a server and secure use of the secret data by means of various application clients. By cryptographically encrypting the secret data and authorizing all application clients by means of an authenticator client, the user retains full control over his secret data available on the server at all times, while at the same time ensuring that the secret data is highly user-friendly. The method does not require a master password and includes two-factor authentication.
Die vorliegende Erfindung betrifft außerdem ein System, einen Server und drei Computerprogrammprodukte A, B und C zur Umsetzung des erfindungsgemäßen Verfahrens. The present invention also relates to a system, a server and three computer program products A, B and C for implementing the method according to the invention.
STAND DER TECHNIK STATE OF THE ART
Die Nutzung von Nutzernamen und Passwörtern ist eine vielfach genutzte Methode der Authentifizierung eines Nutzers bei dessen Zugangsversuch zur Nutzung einer Webanwendung oder computerimplementierten Anwendung. Ein Passwort wird vom Nutzer zumindest bei dessen Initialisierung gesetzt und muss geheim gehalten werden. Wird das Passwort von einem potenziellen Angreifer unverschlüsselt angezeigt, abgefangen oder abgerufen, kann es erraten werden oder errechnet werden, sind Sicherheit und Integrität der Daten, Anwendungen und des Nutzerprofils gefährdet. The use of user names and passwords is a widely used method of authenticating a user when attempting to access a web application or computer-implemented application. A password is set by the user at least when it is initialized and must be kept secret. If the password is displayed, intercepted or accessed unencrypted by a potential attacker, can be guessed or calculated, the security and integrity of the data, applications and user profile are at risk.
Gleichzeitig wächst die Zahl der Nutzeraccounts bei verschiedenen Anwendungen, die Nutzer mithilfe von Passwörtern zu sichern versuchen. Dadurch ergibt sich ein Zielkonflikt zwischen IT-Sicherheit und Nutzerfreundlichkeit. Werden alle Zugänge durch ein gleiches Passwort gesichert, ergibt sich ein „Single-Point-of-Failure“ und ein hoher Schweregrad des Problems, wenn dieses Passwort gebrochen wird. Werden Passwörter zu einfach und gut zu merken gewählt, können sie erraten werden. Sind sie zu kurz ergeben sich Chancen, mittels Brute-Force Methoden das Passwort zu erraten. Legt ein Nutzer seine Passwörter für erhöhte Nutzerfreundlichkeit zentral und unverschlüsselt ab, kann ein Angreifer dieses Verzeichnis kompromittieren. At the same time, the number of user accounts in various applications that users try to secure with passwords is growing. This results in a conflict of objectives between IT security and user-friendliness. If all access is secured with the same password, there is a single point of failure and a high level of severity of the problem if this password is broken. If passwords are chosen to be too simple and easy to remember, they can be guessed. If they are too short, there is a chance of guessing the password using brute force methods. If a user stores his passwords centrally and unencrypted for greater user-friendliness, an attacker can compromise this directory.
Klassische Passwortmanager versuchen die Probleme der Nutzerfreundlichkeit durch ein Masterpasswort zu lösen. Alle Passwortdaten werden zentral gespeichert und der Zugang
mittels des Masterpassworts gewährt. Solche Systeme offenbaren dennoch klare Nachteile bei der IT-Sicherheit. Das Masterpasswort als Single-Point-of-Failure ist für Angreifer ein lukrativer Angriffsvektor. Bei Offline-Passwortmanagern kann es durch Brute-Force Methoden ermittelt werden, wenn das Masterpasswort nicht lang und stark genug ist. Studien offenbaren, dass Nutzer häufig nicht in der Lage sind, ein ausreichend langes und starkes Passwort zu generieren und sich dieses zu merken, ohne es wiederum im Klartext als Erinnerung zu offenbaren. Durch Key-Logging oder andere Malware kann außerdem das Masterpasswort ausgespäht oder der Nutzer durch Phishing oder ähnliche Methoden zur Eingabe seines Masterpassworts an der falschen Stelle angeleitet werden. Classic password managers try to solve the problems of user-friendliness by using a master password. All password data is stored centrally and access using the master password. However, such systems reveal clear disadvantages in terms of IT security. The master password is a single point of failure and is a lucrative attack vector for attackers. With offline password managers, it can be determined using brute force methods if the master password is not long and strong enough. Studies reveal that users are often unable to generate a sufficiently long and strong password and remember it without revealing it in plain text as a reminder. The master password can also be spied on using key logging or other malware, or the user can be instructed to enter their master password in the wrong place using phishing or similar methods.
Auch von Seiten der Nutzerfreundlichkeit sind klassische Passwortmanager in der Regel suboptimal, da sie das regelmäßige Eingeben des, möglichst starken, Masterpasswortes voraussetzen. Classic password managers are also generally suboptimal in terms of user-friendliness, as they require the regular entry of the master password, which should be as strong as possible.
Klassische Passwortmanager bieten in der Regel eine Möglichkeit der Zwei-Faktor- Authentifizierung (2FA) an, häufig vertrauen Nutzer aber nur auf ihr Passwort. 2FA bedeutet, dass die Authentifizierung zusätzlich über eine zweite Methode erfolgen muss, beispielsweise die Bestätigung eines Logins durch Eingabe eines SMS Code zusätzlich zum Passwort. Dabei können für den Nutzer vorteilhaft solche Faktoren, an die sich ein Nutzer erinnert (z.B. Passwort) mit solchen kombiniert werden, die ein Nutzer besitzt (Mobiltelefon, Biometrische Daten). 2FA ist für wichtige Zugänge grundsätzlich empfehlenswert und könnte zahlreiche Sicherheitslücken durch eine überlistete Authentifizierung im Ansatz verhindern. Classic password managers usually offer the option of two-factor authentication (2FA), but users often only trust their password. 2FA means that authentication must also be carried out using a second method, for example confirming a login by entering an SMS code in addition to the password. This can be beneficial for the user by combining factors that a user remembers (e.g. password) with those that a user has (mobile phone, biometric data). 2FA is generally recommended for important access and could prevent numerous security gaps caused by authentication being outsmarted.
Eine alternative Variante der Nutzung und Speicherung von Passwörtern sind cloudbasierte, zentrale Systemlösungen zur Passwortverwaltung, wie sie beispielsweise von Google oder Apple für die Browser von Clients angeboten werden. Dabei wird der Zugang zu den Passwörtern z.B. durch den bereits vorhandenen Account beim jeweiligen Anbieter abgesichert. Es ergeben sich nutzerfreundliche Funktionen wie die Synchronisation in alle Clientgeräte, auf denen ein Nutzer angemeldet ist. Weiterhin kann die serverbasierte Speicherung von Passwörtern relativ simpel Brute-Force Angriffe durch Kontrolle der Häufigkeit der Loginversuche verhindern. An alternative way of using and storing passwords is to use cloud-based, centralized password management systems, such as those offered by Google or Apple for client browsers. Access to passwords is secured, for example, by an existing account with the respective provider. This results in user-friendly functions such as synchronization across all client devices on which a user is logged in. Furthermore, server-based storage of passwords can relatively easily prevent brute-force attacks by controlling the frequency of login attempts.
Nichtsdestotrotz basieren solche Lösungen auf dem Zugang zu dem jeweiligen Nutzeraccount und damit über ein Masterpasswort und verlangen nicht zwingenderweise eine 2FA. Die Verschlüsselung der Passwortdaten auf dem Server wird je nach Verfahren nicht in jedem Fall durch die eigenen Clientgeräte kontrolliert. Wenn die Verschlüsselung der serverseitigen Passwortdaten bereits durch ein Clientgerät ausgeführt wurde, so ist nicht in garantiert, dass das Schlüsselmaterial zur Entschlüsselung lokal sicher, beispielweise auf einem Sicherheitschip, aufbewahrt wird. Ein zentrales Zugriffsmanagement, das
Passwortsharing oder die individuelle Verwaltung einzelner Geräte eines Nutzeraccounts und deren Zugriffsrechte sind in der Regel nicht gegeben. Nevertheless, such solutions are based on access to the respective user account and thus via a master password and do not necessarily require 2FA. Depending on the procedure, the encryption of the password data on the server is not always controlled by the client devices themselves. If the encryption of the server-side password data has already been carried out by a client device, there is no guarantee that the key material for decryption is stored securely locally, for example on a security chip. A central access management system that Password sharing or individual management of individual devices of a user account and their access rights are generally not possible.
Eine weitere Möglichkeit der Nutzung und Speicherung von Passwörtern sind „Single-Sign- On“ (SSO) Verfahren. SSO Verfahren bietet einem Nutzer die Möglichkeit des einfachen Zugriffs auf alle Dienste und Anwendungen seiner Berechtigung durch einmalige Authentifizierung. SSO Verfahren werden verbreitet als Software-as-a-Service (SaaS) Modell angeboten. Solche Passwortmanager, wie sie weiter oben beschrieben werden, können als ein Beispiel eines lokalen SSO Systems gesehen werden, bei dem ein lokaler Client, bei dem sich ein Nutzer authentifiziert, alle Zugangsdaten automatisiert ausfüllt. Darüber hinaus sind SSO Verfahren verbreitet, welche ein einzelnes Portal nutzen, welches wiederum den Login für andere Dienste und Anwendungen übernimmt, oder aber Ticketing Systeme, welche innerhalb eines vertrauenswürdigen Kreises von Diensten oder Anwendungen Nachweise der Authentifizierung eines Nutzers übertragen und somit bei allen Diensten und Anwendungen eine Anmeldung durchgeführt wird. Another way of using and storing passwords is through “Single Sign-On” (SSO) procedures. SSO procedures offer a user the possibility of easy access to all services and applications of their authorization through one-time authentication. SSO procedures are widely offered as a software-as-a-service (SaaS) model. Password managers such as those described above can be seen as an example of a local SSO system in which a local client with which a user authenticates automatically fills in all access data. In addition, SSO procedures are widespread which use a single portal, which in turn handles the login for other services and applications, or ticketing systems which transmit proof of a user’s authentication within a trusted circle of services or applications, thus allowing a login to be carried out for all services and applications.
Ein Nachteil von SSO Verfahren ist die Unerschöpflichkeit der Dienste und Anwendungen, die vom Verfahren integriert werden müssen. So muss beispielweise bei Ticketing Systemen der Circle of T rust auf möglichst alle Dienste und Anwendungen erweitert werden, um ein großes Maß an Nutzerfreundlichkeit zu erreichen. Ein Nutzer kann sich nicht sicher sein, dass beispielsweise jede Webanwendung vom SSO Verfahren auch unterstützt wird. Insbesondere SSO Verfahren mit hoher Nutzerfreundlichkeit durch die Integration vieler Dienste und Anwendungen sind in der Regel teuer. Auch bei SSO Verfahren ist das Teilen von Zugangsdaten in der Regel nicht vorgesehen. Darüber hinaus sind SSO Verfahren je nach erster Authentifizierung nicht zwingend frei von einem Masterpasswort. One disadvantage of SSO procedures is the inexhaustibility of the services and applications that must be integrated into the procedure. For example, in ticketing systems, the circle of trust must be extended to as many services and applications as possible in order to achieve a high level of user-friendliness. A user cannot be sure that, for example, every web application is supported by the SSO procedure. In particular, SSO procedures that are highly user-friendly due to the integration of many services and applications are usually expensive. Sharing access data is also not usually provided for in SSO procedures. In addition, depending on the initial authentication, SSO procedures are not necessarily free of a master password.
Passwörter sind nicht die einzigen Daten im digitalen Umfeld, die geheim zu halten sind. Kreditkartendaten werden beispielsweise vielfach im Onlineshopping eingesetzt. Sensible personenbezogene Daten wie Adressen und Kontaktdaten sollten ebenso geschützt werden. Grundsätzlich ist die Liste an potenziell zu schützenden, geheimen Daten von einem Nutzer erweiterbar. Denkbar sind hierbei im Wesentlichen beliebige Datentypen, insbesondere auch geheime Notizen oder Bilddaten. Passwords are not the only data in the digital environment that must be kept secret. Credit card data, for example, is often used in online shopping. Sensitive personal data such as addresses and contact details should also be protected. In principle, the list of potentially secret data that needs to be protected can be expanded by a user. Essentially any type of data is conceivable, in particular secret notes or image data.
Unabhängig vom Verfahren der Authentifizierung und der Verwaltung von Zugängen müssen geheime Daten, wie z.B. Passwörter, in der Regel verschlüsselt übertragen und gespeichert werden. Hierfür eignen sich kryptografische Verfahren. Solche Verfahren zielen dabei nicht nur auf die Verschlüsselung von Daten ab, sondern dienen darüber hinaus auch der Sicherstellung der Integrität und Herkunft von Daten.
Aus dem Stand der Technik ist beispielsweise ein Verfahren zur Sicherstellung der Integrität von Daten bekannt, bei dem aus Daten ein sogenannter Streuwert (auch Hash oder Prüfsumme genannt) berechnet wird. Dabei kommt eine sogenannte Streuwertfunktion (Hashfunktion) zum Einsatz. Eine solche Hashfunktion wird beispielsweise durch den Secure Hash Algorithmus (SHA) bereitgestellt. Mit einer Hashfunktion kann ein in seiner Größe nicht notwendigerweise beschränkter Datenblock auf einen Datenblock fester Größe, den Hash, abgebildet werden. Eine typische Länge für einen Hash ist beispielsweise 256 bit. Eine wünschenswerte Eigenschaft einer guten kryptografischen Hashfunktion ist die Injektivität und eine dadurch erzielte Kollisionsresistenz, was bedeutet, dass die Hashfunktion unterschiedliche Eingangsdaten immer auf unterschiedliche Hashes abbildet. Wenn der Sender der Daten ihren Hashwert berechnet und diesen Hashwert dem Empfänger zur Verfügung stellt, kann der Empfänger die Echtheit und Unverfälschtheit der Daten verifizieren, vorausgesetzt der Hashwert selbst ist echt und verlässlich. Regardless of the authentication and access management process, secret data such as passwords must generally be transmitted and stored in encrypted form. Cryptographic processes are suitable for this. Such processes are not only aimed at encrypting data, but also serve to ensure the integrity and origin of data. For example, a method for ensuring the integrity of data is known from the state of the art, in which a so-called hash value (also called a hash or checksum) is calculated from data. A so-called hash value function (hash function) is used. Such a hash function is provided, for example, by the Secure Hash Algorithm (SHA). With a hash function, a data block that is not necessarily limited in size can be mapped to a data block of fixed size, the hash. A typical length for a hash is, for example, 256 bits. A desirable property of a good cryptographic hash function is injectivity and the resulting collision resistance, which means that the hash function always maps different input data to different hashes. If the sender of the data calculates its hash value and makes this hash value available to the recipient, the recipient can verify the authenticity and genuineness of the data, provided the hash value itself is genuine and reliable.
Das Hash-Verfahren bringt jedoch den Nachteil mit sich, dass das Verfahren völlig außer Kraft gesetzt wird, wenn der Hashwert selbst während einer Man-In-The-Middle-Attacke manipuliert wird. Man-In-The-Middle Attacken lassen sich weitestgehend vermeiden, indem bei der Kommunikation zwischen A und B beide Seiten Zertifikate voneinander austauschen und kommunizieren, welche Zertifikate sie erwarten. Dadurch kann ausgeschlossen werden, dass ein Angreifer E die Kommunikation manipuliert. Dieser Vorgang wird als Certificate Pinning bezeichnet. However, the hash method has the disadvantage that the method is completely invalidated if the hash value itself is manipulated during a man-in-the-middle attack. Man-in-the-middle attacks can be largely avoided if both sides exchange certificates with each other during communication between A and B and communicate which certificates they expect. This makes it impossible for an attacker E to manipulate the communication. This process is known as certificate pinning.
Ein Zertifikat ist ein Datensatz, der Eigenschaften einer Person oder eines Geräts bestätigt und dessen Herkunft und Integrität kryptografisch verifiziert werden kann. Weit verbreitet sind Zertifikate auf Basis von asymmetrischen kryptografischen Verfahren, auch public-key- oder public-private-key Verfahren genannt. Sie werden unter anderem zur digitalen Signatur eingesetzt. Bei asymmetrischen kryptografischen Verfahren besitzt ein Inhaber ein Schlüsselpaar aus einem öffentlichen und einem geheimen (oder privaten) Schlüssel. Durch eine eindeutige kryptografische Funktion berechnet der Inhaber ein Zertifikat bzw. eine Signatur zu einer bestimmten Nachricht bzw. deren eindeutigen Hash. Ein beliebiger Empfänger kann durch eine gegenseitige kryptografische Funktion aus dem vom Inhaber veröffentlichten öffentlichen Schlüssel und dem Zertifikat bzw. der Signatur die Nachricht oder deren Hash wiederherstellen und durch Vergleich mit der tatsächlichen (unverschlüsselten) Nachricht zweifelsfrei die Urheberschaft des Inhabers sowie die Integrität der Nachricht sicherstellen. Durch Versenden eines Zertifikates zu einer Kontaktaufnahme kann sich beispielsweise ein Gerät gegen eine Webanwendung bzw. einen Server authentifizieren, indem der Besitz des privaten Schlüssels verifiziert wird,
welcher wiederum z.B. durch eine vertrauenswürdige dritte Instanz an das Gerät ausgestellt wurde. A certificate is a data set that confirms the properties of a person or a device and whose origin and integrity can be cryptographically verified. Certificates based on asymmetric cryptographic methods, also known as public-key or public-private-key methods, are widespread. They are used, among other things, for digital signatures. With asymmetric cryptographic methods, an owner has a key pair consisting of a public and a secret (or private) key. Using a unique cryptographic function, the owner calculates a certificate or signature for a specific message or its unique hash. Any recipient can use a mutual cryptographic function to restore the message or its hash from the public key published by the owner and the certificate or signature and, by comparing it with the actual (unencrypted) message, ensure beyond doubt the authorship of the owner and the integrity of the message. By sending a certificate to make contact, a device can, for example, authenticate itself against a web application or server by verifying ownership of the private key. which in turn was issued to the device, for example, by a trusted third party.
Asymmetrische kryptografische Verfahren können auch zur Verschlüsselung von Daten eingesetzt werden, sodass die originalen Daten im Klartext durch Dritte nicht eingesehen werden können. Dabei werden die Daten mittels des öffentlichen Schlüssels eines asymmetrischen Schlüsselpaars unter Nutzung kryptografischer Algorithmen durch einen Akteur im System verschlüsselt. Der geheime Schlüssel ist nur durch den Akteur bekannt, der die Daten entschlüsseln darf und sollte nicht geteilt, sondern sicher gespeichert werden. Der resultierende, verschlüsselte Datensatz kann nur vom zugehörigen geheimen Schlüssel entschlüsselt werden, also nur vom entsprechenden Akteur. Asymmetric cryptographic methods can also be used to encrypt data so that the original data cannot be viewed in plain text by third parties. The data is encrypted by an actor in the system using the public key of an asymmetric key pair and cryptographic algorithms. The secret key is only known to the actor who is allowed to decrypt the data and should not be shared but stored securely. The resulting encrypted data set can only be decrypted by the associated secret key, i.e. only by the corresponding actor.
Bei der alternativen symmetrischen Verschlüsselung werden Daten dagegen mit einem einzelnen kryptografischen Schlüssel verschlüsselt. Sie kann nur unter Nutzung des gleichen Schlüssels entschlüsselt werden. Vorteilhaft an der symmetrischen Verschlüsselung ist die Tatsache, dass das Verfahren relativ simpel, effizient und schnell ist. Nachteilig an der symmetrischen Verschlüsselung ist, dass diese voraussetzt, dass alle vertrauenswürdigen Parteien, die berechtigt zum Einsehen der Daten sind, den Schlüssel kennen müssen, da sowohl das Verschlüsseln als auch das Entschlüsseln von Daten die Kenntnis des gleichen Schlüssels voraussetzt. Gleichzeitig muss gesichert sein, dass auch ausschließlich diese Parteien Kenntnis über diesen Schlüssel haben. Es ergibt sich dadurch das Problem des sogenannten Schlüsseltauschs über einen potenziell unsicheren digitalenIn the alternative symmetric encryption, however, data is encrypted with a single cryptographic key. It can only be decrypted using the same key. The advantage of symmetric encryption is that the process is relatively simple, efficient and fast. The disadvantage of symmetric encryption is that it requires that all trustworthy parties who are authorized to view the data must know the key, since both encrypting and decrypting data requires knowledge of the same key. At the same time, it must be ensured that only these parties have knowledge of this key. This gives rise to the problem of so-called key exchange via a potentially insecure digital
Kommunikationskanal zur Initialisierung eines verschlüsselten Datenaustauschs zwischen mehreren Parteien. Communication channel for initiating an encrypted data exchange between multiple parties.
Die Algorithmen bzw. Funktionen zur Erstellung von kryptografischen Schlüsseln aus beispielweise einer Zufallszahlenreihe müssen spezielle Anforderungen aufweisen. So muss nicht nur der geheime Schlüssel in der Lage sein, die mittels des öffentlichen Schlüssels verschlüsselte Nachricht zu entschlüsseln. Es darf außerdem nicht oder quasi nicht möglich sein, aus einem öffentlichen Schlüssel eines asymmetrischen Schlüsselpaars auf den geheimen Schlüssel zurückzuschließen. Um diese Voraussetzungen zu erfüllen, existieren verschiedene kryptografische Systeme mit verschiedenen Einwegfunktionen wie der zuvor beschriebene SHA. Mathematisch ist es nicht bewiesen, dass diese Einwegfunktionen bei asymmetrischen Verschlüsselungsverfahren nicht durch einen Angreifer mit entsprechend hoher Rechenleistung umkehrbar sind, man einen privaten Schlüssel also aus dem öffentlichen Schlüssel ableiten kann. Theoretisch bietet daher eine symmetrische Verschlüsselung wie beispielsweise das One-Time-Pad eine noch höhere Sicherheit als eine asymmetrische Verschlüsselung. Ein sich ständig weiterentwickelnder Stand der Technik sowie die Nutzung von viel beachteten Open-Source-Standards für die zugrundeliegenden
kryptografischen Systeme und Funktionen, wie beispielsweise Curve25519 für asymmetrische Verschlüsselung, sind ein Ansatz, ein hohes Maß an Sicherheit zu gewährleisten. The algorithms or functions for creating cryptographic keys from, for example, a random number sequence must meet special requirements. Not only must the secret key be able to decrypt the message encrypted using the public key. It must also be impossible or virtually impossible to deduce the secret key from the public key of an asymmetric key pair. In order to meet these requirements, various cryptographic systems with various one-way functions such as the SHA described above exist. Mathematically, it has not been proven that these one-way functions cannot be reversed by an attacker with sufficiently high computing power in asymmetric encryption methods, i.e. that a private key cannot be derived from the public key. In theory, symmetric encryption such as the one-time pad offers even greater security than asymmetric encryption. A constantly evolving state of the art and the use of widely respected open source standards for the underlying Cryptographic systems and functions, such as Curve25519 for asymmetric encryption, are one approach to ensure a high level of security.
Transport Layer Security (TLS) ist ein kryptografisches Protokoll zur Absicherung von Kommunikation in Netzwerken. TLS ist ein Beispiel für einen vielbeachteten Standard, welcher in verschiedenen Versionen auf einem neuen Stand der Technik gehalten wird. TLS umfasst unter anderem Methoden für die Erstellung und Nutzung symmetrischer und asymmetrischer kryptografischer Schlüssel, zum Erstellen von digitalen Signaturen, zum Schlüsseltausch über unsichere Kanäle und zur Authentifikation. Transport Layer Security (TLS) is a cryptographic protocol for securing communication in networks. TLS is an example of a widely respected standard that is kept up to date in various versions. TLS includes methods for creating and using symmetric and asymmetric cryptographic keys, for creating digital signatures, for exchanging keys over insecure channels and for authentication.
Nachfolgend werden einige konkrete Ansätze aus dem Stand der Technik beschrieben, Verfahren für ein sicheres und nutzerfreundliches Management geheimer Daten, in der Regel bezogen auf Passwortdaten, bereitzustellen. Below, some concrete approaches from the state of the art are described to provide procedures for secure and user-friendly management of secret data, usually related to password data.
Aus US10893045B2 ist ein Verfahren bekannt, bei dem nur bestimmten Endgeräten der Zugriff auf Daten, unter anderem auf einem Server, erlaubt wird, indem mittels einer eindeutigen ID des Endgeräts auf dem Server eine Sitzung erstellt wird. Außerdem kann ein Authentifikator eingesetzt werden, um die Zugriffe von Endgeräten zu erlauben oder abzulehnen, indem der Nutzer mit einem zweiten Faktor authentifiziert wird. Allerdings sind auf dem Server nicht explizit Passwortdaten, sondern beliebige Daten gespeichert und der Zugang zu den Daten geschieht mittels eines Masterpasswortes. Die Verschlüsselungsmethode der serverseitigen Daten ist in dem Verfahren durch ein beliebiges Endgerät kontrolliert. Somit eignet sich das Verfahren als eine gesicherte Datenablage, aber keinen Passwortmanager ohne Masterpasswort. US10893045B2 discloses a method in which only certain end devices are allowed access to data, including on a server, by creating a session on the server using a unique ID of the end device. An authenticator can also be used to allow or deny access from end devices by authenticating the user with a second factor. However, the server does not store explicit password data, but rather any data, and access to the data is achieved using a master password. The encryption method of the server-side data is controlled in the method by any end device. The method is therefore suitable as a secure data storage facility, but not as a password manager without a master password.
Aus US9590959B2 ist weiterhin ein Verfahren bekannt, bei dem durch einen kryptografischen Service eine Zugriffsanfrage eines Nutzers auf einen Datenbankservice authentifiziert wird. Dabei werden unterschiedliche kryptografische Verfahren bereitgestellt, um die Authentizität der Anfrage bzw. des Nutzers zu beweisen. Implizit kann dieses Verfahren als Authentifikation für einen serverbasierten Passwortmanager mit zusätzlichen Funktionen verstanden werden. Es wird allerdings keine 2FA oder eine konkretere Verschlüsselungstechnik von potenziellen, in der Datenbank gespeicherten Passwortdaten offenbart. US9590959B2 also discloses a method in which a user's access request to a database service is authenticated by a cryptographic service. Different cryptographic methods are provided to prove the authenticity of the request or the user. This method can implicitly be understood as authentication for a server-based password manager with additional functions. However, no 2FA or a more specific encryption technique for potential password data stored in the database is disclosed.
Aus US8589442B2 ist ein Single-Sign-On System bekannt, welches nach einem dezentralen Prinzip funktioniert. Logindaten eines Nutzers auf einem Gerät können dabei auch auf anderen Geräten genutzt werden, indem eindeutige Geräte-IDs aller berechtigten Geräte mit einem Mapping-Algorithmus authentifiziert werden. In diesem Verfahren wird allerdings keine
2FA bei einzelnen Anmeldungen offenbart. US10341334B2 offenbart dagegen eine Single- Sign-On Lösung in einer Portalvariante, bei der ein Nutzer sich mittels eines Masterpassworts einmalig auf mehreren assoziierten Webseiten einloggt. Die zugehörigen Logins und Passwörter werden auf einem Webserver, mithilfe des Masterpassworts verschlüsselt, gespeichert. Eine 2FA wird auch hier nicht offenbart. A single sign-on system is known from US8589442B2, which works according to a decentralized principle. Login data of a user on one device can also be used on other devices by authenticating unique device IDs of all authorized devices with a mapping algorithm. However, this procedure does not 2FA is disclosed for individual logins. US10341334B2, on the other hand, discloses a single sign-on solution in a portal variant, where a user logs in once to several associated websites using a master password. The associated logins and passwords are stored on a web server, encrypted using the master password. 2FA is not disclosed here either.
Aus US8904180B2 ist ein Verfahren und System bekannt, bei welchem verschlüsselte Daten auf einem Gerät separat von dem Schlüsselmaterial zur Entschlüsselung der Daten auf einem Server aufbewahrt werden. Der Zugang zum Schlüsselmaterial auf dem Server erfolgt durch Abfrage eines Client-Geräts mittels Sendens eines signierten Einmal-Schlüssels, wobei die Signatur vom Server oder einem dritten Dienst authentifiziert werden kann. Der Server stellt dann das Schlüsselmaterial, mit dem Einmal-Schlüssel verschlüsselt, an das Client-Gerät zur Verfügung. Durch die Nutzung zweiteiliger symmetrischer Schlüssel zur Ver- und Entschlüsselung der geheimen Daten, welche auf einem Clientgerät und zusätzlich auf der Serverseite gespeichert werden, wird eine Möglichkeit zur 2FA offenbart, welche implizit auch mit einem Smartphone als zweiten Faktor denkbar wäre. Allerdings offenbart das Patent keine Verfahren zur kontrollierten Authentifizierung anderer, vertrauenswürdiger Clients. Weiterhin ist die Verschlüsselung der Zugangsdaten auf dem Server nicht durch den Client oder ein zusätzliches Gerät gesteuert. Stattdessen werden die Zugangsdaten entweder mit einem zusätzlichen Masterkey auf Server verschlüsselt, oder aber als „Key- Bag“ auf dem Client, sodass der Server nur noch die Authentifizierung beisteuert. So entfallen entweder der Vorteil, die Sicherheit der Zugangsdaten gegen Angriffe auf den Server in der eigenen Hand zu haben, oder die Vorteile des Speicherns auf dem Server. US8904180B2 discloses a method and system in which encrypted data on a device is stored separately from the key material for decrypting the data on a server. Access to the key material on the server is achieved by querying a client device by sending a signed one-time key, whereby the signature can be authenticated by the server or a third service. The server then makes the key material, encrypted with the one-time key, available to the client device. By using two-part symmetric keys to encrypt and decrypt the secret data, which is stored on a client device and additionally on the server side, a possibility for 2FA is disclosed, which would also be implicitly conceivable with a smartphone as a second factor. However, the patent does not disclose any methods for the controlled authentication of other, trustworthy clients. Furthermore, the encryption of the access data on the server is not controlled by the client or an additional device. Instead, the access data is either encrypted with an additional master key on the server, or as a "key bag" on the client, so that the server only provides authentication. This means that either the advantage of having the security of the access data against attacks on the server in your own hands or the advantages of storing it on the server are lost.
Aus US20080031447A1 ist ein Verfahren zur sicheren Speicherung von Passwörtern und Benutzernamen von Webseiten auf einem Server bekannt. Die Erfindung offenbart eine verschlüsselte Speicherung, wobei die Entschlüsselung der Daten nur durch Schlüsselmaterial eines Clients möglich ist, sodass die Daten auf dem Server nicht angreifbar sind. Allerdings offenbart das Verfahren keine 2FA und erwartet ein Master- Kennwort des Nutzers. US20080031447A1 discloses a method for securely storing passwords and user names from websites on a server. The invention discloses encrypted storage, whereby the data can only be decrypted using key material from a client, so that the data on the server is not vulnerable. However, the method does not disclose 2FA and expects a master password from the user.
US20220209955A1 offenbart ein Verfahren zur Ermöglichung eines sicheren Log in prozesses auch unter Offlinebedingungen, wobei ein Server verschiedene Services, wie das regelmäßige Wechseln von Passwörtern und die Authentifizierung von Nutzern zur Verfügung stellt. Die Erfindung offenbart zwei Varianten der Speicherung von Passwortdaten: Online und offline. In der Onlinevariante wird zwar offenbart, dass sich ein Client mittels eines zusätzlichen Geräts als zweiten Faktors authentifizieren muss, aber es wird nicht eindeutig offenbart, dass die Passwortdaten auf dem Server durch von einem
Client kontrollierten Schlüsselmaterial dauerhaft verschlüsselt sind und somit nicht angegriffen werden können. Der zweite Faktor bzw. Authentifikator ist außerdem nicht in der Lage, im Sinne eines Passwortmanagers das Koppeln anderer Clients zu kontrollieren. In der Offlinevariante sind die Schlüssel dagegen auf dem Client verschlüsselt gelagert, nicht auf einem Server. US20220209955A1 discloses a method for enabling a secure log-in process even under offline conditions, whereby a server provides various services, such as regularly changing passwords and authenticating users. The invention discloses two variants of storing password data: online and offline. In the online variant, it is disclosed that a client must authenticate itself using an additional device as a second factor, but it is not clearly disclosed that the password data on the server is stored by a The key material controlled by the client is permanently encrypted and therefore cannot be attacked. The second factor or authenticator is also not able to control the coupling of other clients in the sense of a password manager. In the offline version, however, the keys are stored encrypted on the client, not on a server.
In US9727715B2 ist ein Verfahren offenbart, welches ebenfalls einen Server und eine Applikation zur Passwortverwaltung umfasst. Passwortdaten werden verschlüsselt mit einem zu einem Client zugehörigen asymmetrischen Schlüssel verschlüsselt, auf dem Server gelagert und können bei Besuch der zugehörigen Webseite abgerufen werden. Der private Schlüssel auf dem Client wird wiederum mittels eines weiteren Schlüssel verschlüsselt, welcher aus einem Authentifizierungsmechanismus generiert wird, sodass eine 2FA erreicht werden kann. Dieser zweite Faktor muss allerdings kein zusätzliches Gerät sein und ist nicht zur Verwaltung der verfügbaren Clients im Sinne eines Passwortmanagers eingerichtet. In dieser Erfindung ist der Client Besitzer des ersten Schlüssels, mehrere Clients können nicht durch einen vertrauenswürdigen zweiten Faktor, zum Beispiel eine mobile Applikation, verwaltet werden. US9727715B2 discloses a method which also includes a server and an application for password management. Password data is encrypted using an asymmetric key associated with a client, stored on the server and can be accessed when visiting the associated website. The private key on the client is in turn encrypted using another key which is generated from an authentication mechanism so that 2FA can be achieved. However, this second factor does not have to be an additional device and is not set up to manage the available clients in the sense of a password manager. In this invention, the client is the owner of the first key; multiple clients cannot be managed by a trusted second factor, for example a mobile application.
Aus US10491588B2 ist ein Verfahren bekannt, in der ein Server für das Passwortmanagement als Authentifikator agiert, um die Verbindung zwischen einem Gerät und einer sicheren Passwortdatenbank herzustellen. Das Verfahren umfasst auch das automatische Ausfüllen von Passwortformularen auf dem Gerät durch eine Webanwendung. Durch den Server als Schnittstelle muss allerdings immer sowohl eine Verbindung vom Server zum Gerät als auch der sicheren Passwortdatenbank hergestellt werden, wodurch die Nachteile von lokaler und cloudbasierter Speicherung kombiniert werden. Außerdem wird ein Masterpasswort benötigt. US10491588B2 discloses a method in which a password management server acts as an authenticator to establish the connection between a device and a secure password database. The method also includes the automatic filling of password forms on the device by a web application. However, the server as an interface always requires a connection from the server to the device as well as to the secure password database, which combines the disadvantages of local and cloud-based storage. A master password is also required.
Aus EP2332114B1 und US9948648B1 sind Verfahren zum automatischen Ausfüllen und Generieren von Passwortdaten in Webanwendungen bekannt. Die Verfahren spezifizieren allerdings keine sichere Kontrolle und Speicherung der Passwortdaten. EP2332114B1 and US9948648B1 disclose methods for automatically filling in and generating password data in web applications. However, the methods do not specify secure control and storage of the password data.
Aus EP3420677B1 ist weiterhin ein Verfahren bekannt, bei dem eine passwortfreie Koppelung von zwei Client Devices durch Kommunikation mittels eines Servers durchgeführt wird. Dabei wird auf verschlüsselte Weise unter Nutzung asymmetrischer Schlüsselpaare zwischen beiden Clients geheimes Material zur sicheren Authentifizierung ausgetauscht und auf einem Server hinterlegt, dass die Geräte gekoppelt sind. Der Austausch der Informationen über asymmetrische Verschlüsselung wird durch das Scannen von QR-Codes
von einem Client von dem anderen Client vereinfacht. Es wird ein Teilen von Logindaten wie Passwörtern zwischen den Clients offenbart, allerdings kein serverbasierter Passwortmanager, oder eine primäre Kontrolle der Passwortdaten durch einen Client. EP3420677B1 also discloses a method in which a password-free connection of two client devices is carried out by communication via a server. In this case, secret material for secure authentication is exchanged in an encrypted manner using asymmetric key pairs between both clients and stored on a server to confirm that the devices are connected. The exchange of information via asymmetric encryption is carried out by scanning QR codes. from one client to the other client. Sharing of login data such as passwords between the clients is revealed, but no server-based password manager or primary control of password data by a client.
Aus dem Security-Whitepaper v1.4 der heylogin GmbH ist ein Verfahren bekannt, welches eine passwortfreie Verwaltung geheimer Daten in nutzerfreundlicher Weise bereitstellt. Hierbei können geheime Daten sicher auf einem Server gespeichert und durch flexible Clientgeräte verschlüsselt werden. Das Verfahren offenbart allerdings keine Möglichkeit, nutzerbasiert die Berechtigungen zu den geheimen Daten zu verwalten, oder Zugänge auszutauschen, da jede Verschlüsselung von geheimen Daten fest einem Gerät zugewiesen ist. The security white paper v1.4 from heylogin GmbH describes a method that provides password-free management of secret data in a user-friendly manner. Secret data can be stored securely on a server and encrypted using flexible client devices. However, the method does not reveal any possibility of managing user-based permissions to the secret data or exchanging access, since each encryption of secret data is permanently assigned to a device.
AUFGABE TASK
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zum sicheren Speichern, Nutzen und zum Management von geheimen Daten wie insbesondere Passwörtern bereitzustellen. Dabei soll der Nutzer keinen Zeit- oder Sicherheitsverlust durch das Merken und Eingeben geheimer Daten, insbesondere als Single-Point-of-Failure, in Kauf nehmen müssen. Stattdessen soll eine Benutzerfreundlichkeit ähnlich einer SSO-Lösung bereitgestellt werden. Dabei soll der Nutzer jedoch die geheimen Daten für jede beliebige Webanwendung und an jedem seiner genutzten Geräte einfach, effizient und kostengünstig verwalten können. Die Sicherheit und Integrität aller geheimen Daten auf im Internet exponierten Servern soll dabei sichergestellt und über die Geräte des Nutzers kontrolliert werden. Außerdem sollen die Berechtigungen zum Zugriff auf die geheimen Daten flexibel Nutzern zu- und abzuordnen sowie zwischen Nutzern teilbar sein. It is therefore the object of the present invention to provide a method for the secure storage, use and management of secret data, such as passwords in particular. The user should not have to accept any loss of time or security by remembering and entering secret data, in particular as a single point of failure. Instead, user-friendliness similar to an SSO solution should be provided. However, the user should be able to manage the secret data for any web application and on any of the devices they use easily, efficiently and inexpensively. The security and integrity of all secret data on servers exposed on the Internet should be ensured and controlled via the user's devices. In addition, the authorizations to access the secret data should be flexibly assigned and assigned to users and shareable between users.
LÖSUNG SOLUTION
Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. The object is achieved by a method having the features of claim 1.
Weitere vorteilhafte Ausgestaltungen und Weiterbildungen ergeben sich aus den Unteransprüchen sowie aus der Beschreibung unter Bezugnahme auf die Figuren. Further advantageous embodiments and developments emerge from the subclaims and from the description with reference to the figures.
ALLGEMEINE VORTEILE GENERAL BENEFITS
Vorteilhaft kontrolliert ein Authentifikatorclient die Nutzung der geheimen Daten, die Geräte zur Nutzung dieser geheimen Daten und die zugrundeliegende Verschlüsselung aller geheimen Daten. Die geheimen Daten sind auf einem Server gespeichert, sodass mehrere Geräte auf diese zugreifen können, was einen Vorteil bezüglich der Benutzerfreundlichkeit
der Erfindung mit sich führt. Auf dem Server werden jegliche geheimen Daten ausschließlich verschlüsselt gespeichert, mit Schlüsseln, welche nur für auf den Geräten des Nutzers zur Verfügung stehen. Die Geräte senden niemals geheime Daten in unverschlüsselter Form zum Server, sodass der Server nur als Datenspeicher und Kommunikationsproxy verwendet wird. Der Server erlaubt jedoch einen zentralen Zugriff auf die geheimen Daten und deren Nutzung mit verschiedenen Geräten, solange der Nutzer dies mithilfe des Authentifikatorclients autorisiert. Jede Kommunikation zwischen den Geräten des Nutzers geschieht dabei über verschlüsselte Kanäle. Durch die Nutzung insbesondere eines Mobiltelefons mit Zugriffsschutz als Authentifikatorclient ist das Verfahren inhärent durch 2FA geschützt, wobei über den Authentifikatorclient gleichzeitig die geheimen Daten und Berechtigungen anderer Geräte einfach verwaltet werden können. Advantageously, an authenticator client controls the use of the secret data, the devices using this secret data and the underlying encryption of all secret data. The secret data is stored on a server so that multiple devices can access it, which is an advantage in terms of usability of the invention. All secret data is stored exclusively in encrypted form on the server, with keys that are only available on the user's devices. The devices never send secret data in unencrypted form to the server, so the server is only used as a data storage and communication proxy. However, the server allows central access to the secret data and its use with various devices, as long as the user authorizes this using the authenticator client. All communication between the user's devices takes place via encrypted channels. By using a mobile phone with access protection as the authenticator client, the method is inherently protected by 2FA, whereby the secret data and authorizations of other devices can be easily managed at the same time via the authenticator client.
AUSFÜHRLICHE BESCHREIBUNG DETAILED DESCRIPTION
Nachfolgend wird die Erfindung ausführlich beschrieben. Dabei wird die vorliegende Erfindung näher erläutert, ohne die Erfindung auf diese Beschreibungen zu beschränken. Sofern in dieser Anmeldung der Begriff "kann" verwendet wird, handelt es sich sowohl um die technische Möglichkeit als auch um die tatsächliche technische Umsetzung. Der Singular schließt den Plural ein, es sei denn, aus dem Kontext geht eindeutig etwas anderes hervor.The invention is described in detail below. The present invention is explained in more detail without restricting the invention to these descriptions. Where the term "can" is used in this application, this refers to both the technical possibility and the actual technical implementation. The singular includes the plural, unless the context clearly indicates otherwise.
Insbesondere impliziert nachfolgend der Begriff Schlüsselpaar, dass es sich um ein asymmetrisches Schlüsselpaar, umfassend einen privaten und einen öffentlichen Schlüssel, handelt. Der Begriff Client umfasst nachfolgend sowohl einen Authentifikatorclient als auch einen Applikationsclient mit dessen Applikationsclienterweiterung. In particular, the term key pair implies that it is an asymmetric key pair comprising a private and a public key. The term client includes both an authenticator client and an application client with its application client extension.
Das erfindungsgemäße Verfahren basiert auf drei grundlegenden Schritten S01) bis S03). In Schritt S01) wird ein Push-Authentifikator auf einem initialen Authentifikatorclient initialisiert. Der Authentifikatorclient kann als Kernstück des erfindungsgemäßen Verfahrens auf der Nutzerseite gesehen werden, da mit diesem Authentifikatorclient in dem nachfolgend beschriebenen Verfahren jegliches Speichern und Nutzen, sowie jegliches Hinzufügen weiterer Clients gesteuert wird. Der Push-Authentifikator ist ein System von kryptografischen Schlüsseln des Authentifikatorclients, die es in ihrer Kombination erlauben, das nachfolgend beschriebene erfindungsgemäße Verfahren softwareseitig umzusetzen, während der Authentifikatorclient das hardwaretechnische Gerät an sich beschreibt, das für das erfindungsgemäße Verfahren genutzt wird. Der initiale Authentifikatorclient wird als initial beschrieben, weil er, z.B. bei Verlust des Geräts, ersetzt werden kann. The method according to the invention is based on three basic steps (S01) to S03). In step S01), a push authenticator is initialized on an initial authenticator client. The authenticator client can be seen as the core of the method according to the invention on the user side, since this authenticator client controls any storage and use, as well as any addition of further clients, in the method described below. The push authenticator is a system of cryptographic keys of the authenticator client, which in combination allow the method according to the invention described below to be implemented on the software side, while the authenticator client describes the hardware device itself that is used for the method according to the invention. The initial authenticator client is described as initial because it can be replaced, e.g. if the device is lost.
Zum Initialisieren des Push-Authentifikators auf dem Authentifikatorclient gehört in einem ersten Teilschritt von S01) das Generieren von zumindest zwei asymmetrischen
Schlüsselpaaren, einem Loginschlüsselpaar bestehend aus einem privaten Loginschlüssel und einem öffentlichen Loginschlüssel, sowie einem Codierungsschlüsselpaar bestehend aus einem privaten Codierungsschlüssel und einem öffentlichen Codierungsschlüssel. Für das Generieren und Speichern von asymmetrischen kryptografischen Schlüsseln wird bevorzugt ein zum Erstellen und Speichern kryptografischer Schlüssel designiertes Schlüsselelement verwendet. Bevorzugt wird dafür als Authentifikatorclient ein modernes Smartphone eingesetzt, bei denen solche Schlüsselelemente unter anderem für deren biometrische Funktionen zur Standardausstattung gehören. Solche Schlüsselelemente sind vorteilhaft dazu eingerichtet, besonders resilient gegen Cyberattacken und physische Attacken zu sein, sodass sie die privaten Schlüssel besonders gut schützen. Besonders bevorzugt wird zur Erstellung der asymmetrischen Schlüssel Curve25519 eingesetzt, welches im TLS-Protokoll 1.3 vorteilhaft empfohlen wird. To initialize the push authenticator on the authenticator client, the first sub-step of S01) involves generating at least two asymmetric Key pairs, a login key pair consisting of a private login key and a public login key, and an encoding key pair consisting of a private encoding key and a public encoding key. A key element designated for creating and storing cryptographic keys is preferably used to generate and store asymmetric cryptographic keys. A modern smartphone is preferably used as the authenticator client, as such key elements are standard equipment for their biometric functions, among other things. Such key elements are advantageously designed to be particularly resilient to cyberattacks and physical attacks, so that they protect the private keys particularly well. Curve25519 is particularly preferred for creating the asymmetric keys, which is recommended in the TLS protocol 1.3.
Die beiden öffentlichen Schlüssel werden in einem zweiten Teilschritt von S01) auf einem Server gespeichert. Durch Besitz des privaten Loginschlüssels kann sich ein Client gegen den Server authentifizieren. Der Loginschlüssel kann in diesem Verfahren als Login zu einem Account für das erfindungsgemäße Verfahren gesehen werden, allerdings ist dieser nicht abhängig vom Wissen um ein Masterpasswort, sondern von dem Besitz eines Geräts, des Authentifikatorclients. Für einen solchen Authentifikationsprozess wird bevorzugt das Erstellen einer Signatur verwendet für eine Nachricht, die mit der Kontaktaufnahme des Clients mit dem Server gesendet wird, mittels des privaten Loginschlüssels. Der Server kann durch Prüfen der Signatur mittels des öffentlichen Loginschlüssels verifizieren, dass die Nachricht tatsächlich von einem Client kommt, der in Besitz des privaten Loginschlüssels ist. Besonders bevorzugt kommt für den Authentifikationsprozess ein im TLS-Protokoll beschriebenes kryptografisches Verfahren zum Einsatz. Den öffentlichen Codierungsschlüssel kann der Server nutzen, um Daten so zu verschlüsseln, dass nur noch der Besitzer des privaten Codierungsschlüssels Zugriff erhält. The two public keys are stored on a server in a second sub-step of S01). By possessing the private login key, a client can authenticate itself against the server. In this method, the login key can be seen as a login to an account for the method according to the invention, but this is not dependent on knowledge of a master password, but on possession of a device, the authenticator client. For such an authentication process, it is preferred to create a signature for a message that is sent when the client contacts the server, using the private login key. By checking the signature using the public login key, the server can verify that the message actually comes from a client that is in possession of the private login key. A cryptographic method described in the TLS protocol is particularly preferably used for the authentication process. The server can use the public coding key to encrypt data in such a way that only the owner of the private coding key has access.
In Schritt S02) wird der nun vorhandene Push-Authentifikator genutzt, um weitere Clients mit dem Server zu koppeln, die die für diesen Account gespeicherten geheimen Daten abrufen können. Diese Clients werden nachfolgend Applikationsclients genannt. In step S02), the existing push authenticator is used to link additional clients to the server that can retrieve the secret data stored for this account. These clients are referred to below as application clients.
Dieser Prozess des Koppelns eines solchen Applikationsclients wird in einem ersten Teilschritt von S02) durch den Authentifikatorclient autorisiert, indem dieser zumindest seinen privaten Loginschlüssel in verschlüsselter Form mit dem Applikationsclient austauscht. Diese verschlüsselte Übertragung wird bevorzugt mittels asymmetrischer Verschlüsselung durchgeführt. Eine bevorzugte Ausführungsvariante der verschlüsselten Übertragung wird im weiteren Verlauf der Beschreibung beschrieben.
Der Applikationsclient nutzt in einem zweiten Teilschritt von S02) den privaten Loginschlüssel, um sich in bereits beschriebener Form gegen den Server zu authentifizieren. This process of coupling such an application client is authorized in a first sub-step of S02) by the authenticator client by exchanging at least its private login key in encrypted form with the application client. This encrypted transmission is preferably carried out using asymmetric encryption. A preferred embodiment of the encrypted transmission is described later in the description. In a second sub-step of S02), the application client uses the private login key to authenticate itself against the server in the manner already described.
In einem dritten Teilschritt von S02) wird auf dem Server für den Applikationsclient eine Sitzung erstellt, indem der authentifizierte Applikationsclient den öffentlichen Sitzungsschlüssel eines durch den Applikationsclient generierten Sitzungsschlüsselpaars auf dem Server hinterlegt. Mit diesem öffentlichen Sitzungsschlüssel können Daten verschlüsselt werden, auf die nur dieser Applikationsclient mittels seines privaten Sitzungsschlüssels Zugriff hat. Das Erstellen einer Sitzung setzt voraus, dass der Applikationsclient ein Computerprogrammprodukt umfasst, welches für das Generieren eines asymmetrischen kryptografischen Sitzungsschlüsselpaars eingerichtet ist. Ein Computerprogrammprodukt, welches unter anderem diese Funktionalität bietet, ist ein Teil dieser Erfindung und wird im weiteren Verlauf der Beschreibung beschrieben. In einer bevorzugten Variante wird eine Softwarefunktionalität zur Erstellung von kryptografischen Schlüsseln auf dem Applikationsclient durch eine im weiteren Verlauf beschriebene Applikationsclienterweiterung bereitgestellt. In einer besonders bevorzugten Variante nutzt der Applikationsclient ebenfalls ein Schlüsselelement zum sicheren Speichern der privaten Schlüssel, hier insbesondere der private Codierungsschlüssel und der private Sitzungsschlüssel, über die er verfügt. In a third sub-step of S02), a session is created on the server for the application client by the authenticated application client storing the public session key of a session key pair generated by the application client on the server. This public session key can be used to encrypt data to which only this application client has access using its private session key. Creating a session requires that the application client comprises a computer program product that is set up to generate an asymmetric cryptographic session key pair. A computer program product that offers this functionality, among other things, is part of this invention and is described later in the description. In a preferred variant, a software functionality for creating cryptographic keys on the application client is provided by an application client extension described later. In a particularly preferred variant, the application client also uses a key element to securely store the private keys, in particular the private encryption key and the private session key, which it has at its disposal.
Der Schritt S02) kann wiederholt werden, um mehrere Applikationsclients mithilfe des Authentifikatorclients zu koppeln. In einer bevorzugten Ausführung des Verfahrens werden alle gekoppelten Clients bzw. deren Sitzungen auf dem Authentifikatorclient in Listenform angezeigt. In einer besonders bevorzugten Ausführung ist das Verfahren für eine Option des Authentifikatorclients eingerichtet, die Sitzungen von Applikationsclients zu kontrollieren, die öffentlichen Sitzungsschlüssel vom Server zu Löschen und damit die Sitzung serverseitig zu entfernen. In dieser Variante wird jegliche Kontaktaufnahme des Applikationsclients ohne Sitzung mit dem Server vom Server abgelehnt. In einer besonders bevorzugten Variante ist der Applikationsclient dazu eingerichtet, in diesem Fall der Ablehnung durch den Server, jegliche Schlüssel, die er besitzt, zu löschen. Dadurch wird vorteilhaft das langfristige und dadurch unnötig riskante Speichern von privaten Schlüsseln auf nicht autorisierten Geräten verhindert. In einer weiterhin bevorzugten Variante ruft der Applikationsclient den Status seiner Sitzung in regelmäßigem zeitlichem Abstand vom Server ab, sodass vorteilhaft spätestens zu diesem Zeitpunkt das private Schlüsselmaterial vom Authentifikatorclient gelöscht wird, wenn keine Sitzung mehr existiert. In einer besonders bevorzugten Ausführungsvariante wird der Status der Sitzung vom Applikationsclient unmittelbar beim Start der Applikationsclienterweiterung erstmalig abgerufen. In einer weiteren besonders bevorzugten Variante kann das zeitliche Intervall eingestellt werden und wird außerdem abhängig gemacht von den Sicherheitsvoraussetzungen auf dem Applikationsclient. Ist
beispielsweise kein Schlüsselelement im Applikationsclient verbaut und der Applikationsclient ist mit einem potenziell gefährlichen öffentlichen Netzwerk verbunden, so kann das zeitliche Intervall zum Abrufen des Sitzungsstatus auf eine besonders geringe Zeit gestellt werden, beispielsweise 1 Sekunde. In einer außerdem bevorzugten Variante kann ein Client nicht sehen, dass seine eigene Sitzung nicht mehr existiert, ohne Kontakt zum Server aufzunehmen, wodurch das Schlüsselmaterial gelöscht wird. Dadurch wird vorteilhaft verhindert, dass ein Angreifer überhaupt incentiviert wird, das Löschen der Sitzung hinauszögern zu wollen. In einer weiterhin bevorzugten Ausführungsvariante erhalten auch Authentifikatorclients jeweils eine Sitzung auf dem Server, sodass vorteilhaft mehrere Authentifikatorclients eines Nutzers initialisiert, aber auch von einem anderen Authentifikatorclient aus kontrolliert werden können. Step S02) can be repeated in order to link several application clients using the authenticator client. In a preferred embodiment of the method, all linked clients or their sessions are displayed in list form on the authenticator client. In a particularly preferred embodiment, the method is set up for an option for the authenticator client to control the sessions of application clients, delete the public session keys from the server and thus remove the session on the server side. In this variant, any contact by the application client without a session with the server is rejected by the server. In a particularly preferred variant, the application client is set up to delete any keys it possesses in the event of rejection by the server. This advantageously prevents the long-term and therefore unnecessarily risky storage of private keys on unauthorized devices. In a further preferred variant, the application client retrieves the status of its session from the server at regular intervals, so that the private key material is deleted from the authenticator client at this point in time at the latest if no session exists. In a particularly preferred embodiment, the status of the session is retrieved for the first time by the application client immediately when the application client extension is started. In another particularly preferred variant, the time interval can be set and is also made dependent on the security requirements on the application client. Is For example, if no key element is installed in the application client and the application client is connected to a potentially dangerous public network, the time interval for retrieving the session status can be set to a particularly short time, for example 1 second. In another preferred variant, a client cannot see that its own session no longer exists without contacting the server, which deletes the key material. This advantageously prevents an attacker from being incentivized to delay deleting the session. In another preferred variant, authenticator clients also each receive a session on the server, so that several authenticator clients of a user can be initialized, but also controlled from another authenticator client.
In Schritt S03) werden der initialisierte Authentifikatorclient sowie der gekoppelte Applikationsclient zum Speichern bzw. Abrufen von geheimen Daten durch den Applikationsclient auf bzw. von einem auf dem Server befindlichen Tresor genutzt. Ein Tresor ist ein Datenpaket auf dem Speichermedium des Servers, welcher einem Account zugeordnet ist und, wie nachfolgend beschrieben, kryptografisch verschlüsselt ist. In einer bevorzugten Ausführung enthält der Tresor eine geordnete Liste an Übergaben, welche die zeitliche Reihenfolge der gespeicherten geheimen Daten abbilden, sodass alle geheimen Daten eindeutig sortiert und zugeordnet sind. Grundsätzlich können mehrere Tresore für einen Account existieren, die verschieden verschlüsselt werden können. In step S03), the initialized authenticator client and the coupled application client are used to store or retrieve secret data by the application client on or from a safe located on the server. A safe is a data packet on the server's storage medium that is assigned to an account and, as described below, is cryptographically encrypted. In a preferred embodiment, the safe contains an ordered list of transfers that map the chronological order of the stored secret data so that all secret data is clearly sorted and assigned. In principle, several safes can exist for an account, which can be encrypted differently.
Geheime Daten im Tresor umfassen bevorzugt Logindaten für Webanwendungen, das heißt Benutzernamen, Mailadressen und Passwörter. Darüber hinaus können auch alternative geheime Daten erfindungsgemäß in Tresoren gespeichert werden, beispielsweise Zahlungsund Kreditkarteninformationen oder Adressen. In einer weiteren Ausführung des Tresors können auch vom Nutzer definierbare, andere Datentypen wie freie Texte für geheime Notizen oder Bilddaten gespeichert werden. Secret data in the safe preferably includes login data for web applications, i.e. user names, email addresses and passwords. In addition, alternative secret data can also be stored in safes according to the invention, for example payment and credit card information or addresses. In another version of the safe, other data types that can be defined by the user, such as free text for secret notes or image data, can also be stored.
In einem ersten Teilschritt zum Zweck des Speicherns und Abrufens von geheimen Daten in Schritt S03) wird der Tresor, welcher geheime Daten beinhaltet, mittels eines symmetrischen Schlüssels verschlüsselt. In dem Fall, dass mehrere Push-Authentifikatoren Zugriff auf den Tresor erhalten sollen, müssen durch diese Verschlüsselung vorteilhaft nicht mehrere Kopien des Tresors für die unterschiedlichen Push-Authentifikatoren verschlüsselt werden. Es existiert daher sinnvollerweise immer genau ein symmetrischer Schlüssel zu einem Tresor. In a first sub-step for the purpose of storing and retrieving secret data in step S03), the safe containing secret data is encrypted using a symmetric key. In the event that multiple push authenticators are to be granted access to the safe, this encryption advantageously means that multiple copies of the safe do not have to be encrypted for the different push authenticators. It therefore makes sense that there is always exactly one symmetric key for a safe.
Da bei einer symmetrischen Verschlüsselung das Entschlüsseln ebenfalls unter Nutzung des gleichen symmetrischen Schlüssels geschieht, muss dieser Schlüssel ebenfalls verschlüsselt werden, da er auf dem Server gespeichert werden soll, um autorisierten Zugriff auf den
Tresor zu erlauben. Dieses Verschlüsseln geschieht in einem zweiten Teilschritt von S03) mittels des öffentlichen Codierungsschlüssels des Push-Authentifikators, sodass vorteilhaft nur ein Client Zugriff auf den symmetrischen Schlüssel und damit den Tresor erhält, der in Besitz des privaten Codierungsschlüssels ist. Since with symmetric encryption, decryption is also done using the same symmetric key, this key must also be encrypted because it is to be stored on the server in order to ensure authorized access to the Safe. This encryption takes place in a second sub-step of S03) using the public encryption key of the push authenticator, so that only a client that is in possession of the private encryption key has access to the symmetric key and thus the safe.
In einem dritten Teilschritt von S03) wird das Speichern und Abrufen von geheimen Daten aus dem Tresor durch den Applikationsclient autorisiert, und zwar durch den Authentifikatorclient, welcher in verschlüsselter Form den privaten Codierungsschlüssel für den Applikationsclient bereitstellt, damit dieser den privaten Codierungsschlüssel abrufen und den Tresor entschlüsseln kann. Bevorzugt wird dieses verschlüsselte Bereitstellen des privaten Codierungsschlüssels durch eine aktive Eingabe am Authentifikatorclient durch einen Nutzer autorisiert. In einer möglichen Ausführung wird das verschlüsselte Bereitstellen bzw. Abrufen dadurch realisiert, dass der private Codierungsschlüssel vom Authentifikatorclient mittels des öffentlichen Sitzungsschlüssel verschlüsselt und über den Server an den Applikationsclient gesendet wird, wobei nur der Applikationsclient diese Sendung entschlüsseln kann. In einer weiteren Variante wird der private Codierungsschlüssel gemeinsam mit dem privaten Loginschlüssel in Schritt S02) an den Applikationsclient übertragen. In einer bevorzugten Ausgestaltung der beider Übertragungsvarianten kann der private Codierungsschlüssel nicht durch den Applikationsclient in beständigem Speicher gespeichert werden, sodass der Authentifikatorclient jedes einzelne Speichern oder Abrufen bestätigen muss und der private Codierungsschlüssel bei einem physischen Angriff auf den Applikationsclient, während dieser abgeschaltet ist, vorteilhaft nicht gestohlen werden kann. Weitere bevorzugte Ausführungen zum Autorisieren des Speicherns und Abrufens durch Bereitstellen des Codierungsschlüssels durch den Authentifikatorclient ergeben sich aus weiteren beschriebenen bevorzugten Merkmalen der Erfindung. In a third sub-step of S03), the storage and retrieval of secret data from the safe is authorized by the application client, namely by the authenticator client, which provides the private encryption key in encrypted form for the application client so that the latter can retrieve the private encryption key and decrypt the safe. This encrypted provision of the private encryption key is preferably authorized by an active input on the authenticator client by a user. In one possible embodiment, the encrypted provision or retrieval is realized by the private encryption key being encrypted by the authenticator client using the public session key and sent to the application client via the server, whereby only the application client can decrypt this transmission. In another variant, the private encryption key is transmitted to the application client together with the private login key in step S02). In a preferred embodiment of the two transmission variants, the private encryption key cannot be stored in persistent memory by the application client, so that the authenticator client must confirm each individual storage or retrieval and the private encryption key can advantageously not be stolen in the event of a physical attack on the application client while it is switched off. Further preferred embodiments for authorizing storage and retrieval by providing the encryption key by the authenticator client result from further described preferred features of the invention.
Vorteilhaft kontrolliert der Authentifikatorclient durch diese Konfiguration insbesondere in Schritt S02) die autorisierten Clients und in Schritt S03) jeden Zugriff auf die geheimen Daten. Weiterhin vorteilhaft wird hier für einen Abrufversuch von geheimen Daten vom Applikationsclient der Authentifikatorclient als zweiter Faktor eingesetzt. In einer bevorzugten Ausführungsvariante wird hierfür auf dem Authentifikatorclient das aktivierte Nutzen einer Schutzfunktion des Geräts abverlangt, zum Beispiel durch eine biometrische Authentifizierung. Dadurch wird vorteilhaft der 2FA-Schutz vollständig durch den Besitz eines Gerätes durch den Nutzer (Authentifikatorclient) und eine Abfrage eines Geheimnisses des Nutzers (z.B. biometrische Authentifizierung). Diese Authentifizierung des Nutzers am Authentifikatorclient ist, insbesondere bei Nutzung eines modernen Smartphones, heutzutage in jedem Fall Standard und unabhängig vom Verfahren zum Management
geheimer Daten empfehlenswert. Insofern ist diese Maßnahme vorteilhaft nicht als zusätzlicher Aufwand zu sehen, wie andere Methoden zur 2FA in der Regel gesehen werden. Advantageously, the authenticator client controls the authorized clients through this configuration, particularly in step S02) and any access to the secret data in step S03). Another advantage is that the authenticator client is used as a second factor for an attempt to retrieve secret data from the application client. In a preferred embodiment, the authenticator client is required to activate a protective function of the device, for example through biometric authentication. This advantageously means that the 2FA protection is completely achieved through the user owning a device (authenticator client) and querying a secret from the user (e.g. biometric authentication). This authentication of the user on the authenticator client is now standard in any case, especially when using a modern smartphone, and is independent of the management method. confidential data. In this respect, this measure is advantageous not to be seen as additional effort, as other 2FA methods are usually seen.
Wie bereits beschrieben wird in einer bevorzugten Ausführung der Erfindung ein Smartphone als Authentifikatorclient eingesetzt, welches über ein Schlüsselelement verfügt. Weiterhin bevorzugt verfügt der Authentifikatorclient über Möglichkeiten der Benutzereingabe zum Autorisieren der Schritte S02) und S03). As already described, in a preferred embodiment of the invention, a smartphone is used as an authenticator client, which has a key element. Furthermore, the authenticator client preferably has options for user input to authorize steps S02) and S03).
In einer speziellen Ausführung wird ein Authentifikatorclient gleichzeitig als Applikationsclient eingesetzt. In diesem Fall werden die Computerprogrammprodukte, die bei deren Ausführung jeweils die Merkmale des Verfahrens auf dem Authentifikatorclient bzw. dem Applikationsclient implementieren, getrennt voneinander installiert und ausgeführt. So werden die Merkmale des Verfahrens, die zu dem Authentifikatorclient gehören, beispielsweise in einer mobilen App ausgeführt und die Merkmale des Verfahrens, die zum dem Applikationsclient gehören in einer Webanwendung, die über den Browser aufgerufen wird. Besonders bevorzugt wird in diesem Fall die Ausführungsvariante, bei der die Nutzung des Push-Authentifikators innerhalb der mobilen App eine Schutzfunktion des Smartphones beim Öffnen der mobilen App voraussetzt, sodass vorteilhaft eine 2FA bei Nutzung des Gerätes gesichert wird. In a special embodiment, an authenticator client is used simultaneously as an application client. In this case, the computer program products that implement the features of the method on the authenticator client or the application client when they are executed are installed and executed separately from one another. For example, the features of the method that belong to the authenticator client are executed in a mobile app and the features of the method that belong to the application client are executed in a web application that is called up via the browser. In this case, the embodiment variant in which the use of the push authenticator within the mobile app requires a protective function of the smartphone when the mobile app is opened is particularly preferred, so that 2FA is advantageously secured when the device is used.
Das erfindungsgemäße Verfahren umfasst weiterhin den Einsatz zumindest eines Profils als Indirektionsebene des Authentifikatorclients, zusätzlich zu dem initialisierten Push Authentifikator. Ein Profil ist im Wesentlichen technisch äquivalent zu einem Push- Authentifikator zu betrachten, mit dem Unterschied, dass ein Profil keinen eigenen Loginschlüssel besitzt, um sich gegen den Server zu authentifizieren. Stattdessen verschlüsselt ein Profil in einer standardmäßigen Ausführungsform anstelle zumindest eines Push-Authentifikators den symmetrischen Schlüssel zumindest eines Tresors mit einem öffentlichen Profilschlüssel eines auf dem Authentifikatorclient erstellten asymmetrischen Profilschlüsselpaars. Das Profil und damit insbesondere der private Profilschlüssel, wird dann in dieser standardmäßigen Ausführungsform serverseitig durch den öffentlichen Codierungsschlüssel des zugehörigen Push-Authentifikators verschlüsselt. Ein Profil umfasst zumindest das Profilschlüsselpaar, im weiteren Verlauf der Beschreibung werden allerdings noch weitere zum Profil gehörige Schlüssel beschrieben, welche entsprechend ebenfalls durch den öffentlichen Codierungsschlüssel des zugehörigen Push-Authentifikators verschlüsselt werden. The method according to the invention further comprises the use of at least one profile as an indirection level of the authenticator client, in addition to the initialized push authenticator. A profile is essentially technically equivalent to a push authenticator, with the difference that a profile does not have its own login key to authenticate itself against the server. Instead, in a standard embodiment, instead of at least one push authenticator, a profile encrypts the symmetric key of at least one safe with a public profile key of an asymmetric profile key pair created on the authenticator client. The profile and thus in particular the private profile key is then encrypted on the server side in this standard embodiment using the public coding key of the associated push authenticator. A profile comprises at least the profile key pair, but in the further course of the description, further keys belonging to the profile are described, which are also encrypted accordingly using the public coding key of the associated push authenticator.
Durch diese Konfiguration an standardmäßigen und bevorzugten Verschlüsselungen ist der Begriff des Profils als Indirektionsebene erklärt, der bedeutet, dass das Profil im Verschlüsselungsprozess eines Tresors als zusätzliche Ebene zwischen einen Push-
Authentifikator und einen Tresor geschaltet ist. Das Profil wird insofern durch diesen Push- Authentifikator und damit durch den Authentifikatorclient kontrolliert. Gleichzeitig kontrolliert das Profil den Zugriff auf mit seinem Profilschlüsselpaar verschlüsselte Tresore. Der technische Effekt ist eine zusätzliche Verschlüsselungsebene, mit der sich eine große Bandbreite an Verschlüsselungsvarianten zwischen Push-Authentifikatoren und Tresoren umsetzen lassen. This configuration of standard and preferred encryptions explains the concept of the profile as an indirection layer, which means that the profile acts as an additional layer between a push and authenticator and a safe. The profile is therefore controlled by this push authenticator and thus by the authenticator client. At the same time, the profile controls access to safes encrypted with its profile key pair. The technical effect is an additional encryption level with which a wide range of encryption variants can be implemented between push authenticators and safes.
Durch die große Bandbreite an Verschlüsselungsvarianten ergeben sich eine Reihe von Vorteilen bezüglich der Flexibilität des gesamten erfindungsgemäßen Verfahrens. Einerseits ergibt sich ein Vorteil bezüglich der Aufgeräumtheit und Übersichtlichkeit des Verschlüsselungsverfahrens, welche auch als „Schlüsselhygiene“ bezeichnet werden kann. Profile erlauben es, für getrennte Kontexte getrennte Schlüssel in Profilen anzulegen, beispielsweise in Profilen für private Nutzung und für Unternehmensnutzung. Profile sind dabei jeweils völlig unabhängig voneinander zu betrachten, da keine Abhängigkeiten zwischen zufälligen Profilstartwerten bzw. Profilschlüsseln von Profilen bzw. zwischen Profilen und Push-Authentifikatoren bestehen. Weiter gedacht und konkreter erlaubt diese Schlüsselhygiene vorteilhaft die Schaffung inhaltlicher sinnvoller Rollen und Zuordnungen innerhalb des erfindungsgemäßen Systems. The wide range of encryption variants results in a number of advantages in terms of the flexibility of the entire method according to the invention. On the one hand, there is an advantage in terms of the tidiness and clarity of the encryption method, which can also be referred to as "key hygiene". Profiles allow separate keys to be created in profiles for separate contexts, for example in profiles for private use and for company use. Profiles are to be viewed completely independently of one another, since there are no dependencies between random profile start values or profile keys of profiles or between profiles and push authenticators. Thinking further and more specifically, this key hygiene advantageously allows the creation of meaningful roles and assignments within the system according to the invention.
Beispielsweise wird in einer bevorzugten Ausführungsform einem Nutzer pro Organisation oder Kontext ein Profil zugeordnet, in dem alle Zugänge für diesen Nutzer gesammelt werden können. Profile erlauben vorteilhaft, Berechtigungen nutzerbezogen oder anderweitig flexibel umzusetzen. Weiterhin erlauben Profile beispielsweise das Umsetzen eines Superadmin-Profils, welches alle Tresore einer Organisation verschlüsseln kann und somit eine Grundvoraussetzung für die etwaige Vergabe von Administratorrechten zur Verwaltung der geheimen Daten, aber auch zum Verhindern des Verlustes von geheimen Daten durch Schlüsselverlust ist. For example, in a preferred embodiment, a user is assigned a profile for each organization or context in which all accesses for this user can be collected. Profiles advantageously allow authorizations to be implemented on a user-specific or otherwise flexible basis. Furthermore, profiles allow, for example, the implementation of a superadmin profile, which can encrypt all of an organization's safes and is therefore a basic requirement for the possible allocation of administrator rights to manage secret data, but also to prevent the loss of secret data due to key loss.
Grundsätzlich vorteilhaft ist der Einsatz von Profilen weiterhin in Bezug auf die Kryptoagilität der Erfindung beziehungsweise der Organisation, welche das erfindungsgemäße Verfahren nutzt. So können beispielsweise Kryptoverfahren schrittweise umgestellt bzw. aktualisiert werden. Somit kann bei geringem Aufwand eine Grundsicherheit gegen bestimmte Bedrohungen hergestellt werden, ohne das beispielsweise jeder einzelne Tresor umgeschlüsselt wird. Dies ist ein Flexibilitätsvorteil gegenüber dem Einsatz von ausschließlich direkten Verschlüsselungen von Tresoren durch Push-Authentifikatoren. The use of profiles is also fundamentally advantageous in relation to the crypto agility of the invention or the organization that uses the method according to the invention. For example, crypto methods can be changed or updated step by step. This means that basic security against certain threats can be established with little effort, without, for example, having to re-encrypt each individual safe. This is a flexibility advantage compared to the use of exclusively direct encryption of safes using push authenticators.
In einer bevorzugten Ausführungsform wird jegliches zu einem Profil zugehörige Schlüsselmaterial aus einem zufälligen Profilstartwert erstellt. In dieser bevorzugten Ausführungsform bedeutet das Verschlüsseln eines Profil, z.B. durch den
Codierungsschlüssel des zugehörigen Push-Authentifikators, dass der zufällige Profilstartwert verschlüsselt wird. In a preferred embodiment, any key material associated with a profile is created from a random profile seed. In this preferred embodiment, encrypting a profile, e.g. by the Encryption key of the associated push authenticator that the random profile seed is encrypted.
In einer Ausführungsform werden jedem Nutzer pro Organisation oder Kontext nicht nur genau ein Profil zum Verschlüsseln von Tresoren zugeordnet, sondern zumindest ein weiteres Profil, welches dem vollverschlüsselten Empfangen von Nachrichten und Informationen und/oder dem Speichern von Präferenzen und Einstellungen bezüglich der Nutzung des erfindungsgemäßen Verfahrens, beispielsweise die Zeit bis zum automatischen Schließen einer Sitzung, dient. Vorteilhaft können somit in der gleichen Verschlüsselungsarchitektur weitere Funktionen neben dem Speichern und Abrufen geheimer Daten umgesetzt werden. In one embodiment, each user per organization or context is assigned not only one profile for encrypting safes, but at least one additional profile that is used for the fully encrypted reception of messages and information and/or for storing preferences and settings regarding the use of the method according to the invention, for example the time until a session is automatically closed. Advantageously, other functions can thus be implemented in the same encryption architecture in addition to storing and retrieving secret data.
In einer Ausführungsvariante eines Profils werden mehrere gleiche Kopien des Profils serverseitig durch die öffentlichen Codierungsschlüssel mehrerer Push-Authentifikatoren verschlüsselt. Durch diese Ausführungsvariante erhalten mehrere Push-Authentifikatoren, insbesondere von mehreren Nutzern, Zugriff auf ein Profil. Vorteilhaft ist hierbei eine erhöhte Flexibilität bezüglich des Verwaltens und Veränderns von Authentifikatoren. Ein Profil kann durch beliebige Authentifkatoren verschlüsselt werden. Beispielsweise können Hardware Security Devices als zusätzliche bzw. Backup-Authentifikatoren hinzugefügt oder entfernt werden. Das gesamte Set der Authentifikatoren eines Nutzers oder mehrerer Nutzer kann so flexibel bezüglich seines Profils rotiert werden. Dies ist weiterhin vorteilhaft für eine sicherere Backup und Recovery Strategie, da es den Totalverlust von Schlüsselmaterial unwahrscheinlicher macht. In one version of a profile, several identical copies of the profile are encrypted on the server side using the public encryption keys of several push authenticators. This version gives several push authenticators, especially those of several users, access to a profile. The advantage here is increased flexibility in managing and changing authenticators. A profile can be encrypted using any authenticator. For example, hardware security devices can be added or removed as additional or backup authenticators. The entire set of authenticators of a user or several users can thus be flexibly rotated with regard to their profile. This is also advantageous for a more secure backup and recovery strategy, as it makes the total loss of key material less likely.
In einer weiteren Ausführungsvariante eines Profils werden mit dem gleichen öffentlichen Codierungsschlüssel eines Push-Authentifikators mehrere Profile verschlüsselt, sodass ein Push-Authentifikator Zugriff auf mehrere Profile erhält. Vorteilhaft kann durch diese Ausführung ein Push-Authentifikator als Master-Gerät für spezifische Anwendungen umgesetzt werden, in denen ein umfänglicher Zugriff nicht von Nutzern oder Profilen, sondern an bestimmten Geräten abhängen soll. In another variant of a profile, several profiles are encrypted with the same public encryption key of a push authenticator, so that a push authenticator has access to several profiles. This version can be used to implement a push authenticator as a master device for specific applications in which extensive access should not depend on users or profiles, but on specific devices.
In einer weiteren Ausführungsvariante wird ein Profil durch die öffentlichen Codierungsschlüssel mehrerer Push-Authentifikatoren gleichzeitig verschlüsselt, sodass diese mehreren Push-Authentifikatoren gleichzeitig benötigt werden, um Zugriff auf das Profil zu erhalten. Diese Variante wird bevorzugt nur für besonders sensible geheime Daten eingesetzt, für welche ein hohes Sicherheitsmaß gilt oder für deren Verwaltung die Zustimmung mehrerer Nutzer nötig ist. Vorteilhaft kann so ein digitales Vier-Augen-Prinzip für den Zugriff auf dieses Profil hergestellt werden.
In einer durch die Einführung von Profilen folgenden, weiterhin bevorzugten Ausführungsvariante wird der symmetrische Schlüssel eines Tresors durch einen oder mehrere verschiedene öffentliche Profilschlüssel oder öffentliche Codierungsschlüssel von mehreren Profilen oder Push-Authentifikatoren verschlüsselt. Dabei kann der symmetrische Schlüssel durch die öffentlichen Schlüssel mehrerer Profile, mehrerer Push-Authentifikatoren oder sowohl Profile als auch Push-Authentifikatoren verschlüsselt werden. In another variant, a profile is encrypted using the public encryption keys of several push authenticators at the same time, so that these several push authenticators are required at the same time to gain access to the profile. This variant is preferably only used for particularly sensitive secret data for which a high level of security applies or for whose management the consent of several users is required. This can advantageously create a digital four-eyes principle for access to this profile. In a preferred embodiment variant following the introduction of profiles, the symmetric key of a vault is encrypted by one or more different public profile keys or public encryption keys of multiple profiles or push authenticators. The symmetric key can be encrypted by the public keys of multiple profiles, multiple push authenticators, or both profiles and push authenticators.
Ein symmetrischer Schlüssel kann in einer Ausführungsform durch die öffentlichen Schlüssel mehrerer Profile oder Push-Authentifikatoren gleichzeitig verschlüsselt werden, sodass diese mehreren Profile oder Push-Authentifikatoren benötigt werden, um Zugriff auf den symmetrischen Schlüssel zu erhalten. Diese Variante wird bevorzugt nur für besonders sensible geheime Daten eingesetzt, für welche ein hohes Sicherheitsmaß gilt oder für deren Verwaltung die Zustimmung mehrerer Nutzer nötig ist. Vorteilhaft kann so ein digitales Vier- Augen-Prinzip für den Zugriff auf geheime Daten hergestellt werden. In one embodiment, a symmetric key can be encrypted by the public keys of several profiles or push authenticators at the same time, so that these several profiles or push authenticators are required to gain access to the symmetric key. This variant is preferably only used for particularly sensitive secret data for which a high level of security applies or for whose management the consent of several users is required. This can advantageously create a digital four-eyes principle for access to secret data.
In einer alternativen, bevorzugten Ausführungsform können mehrere Kopien des gleichen symmetrischen Schlüssels durch die öffentlichen Schlüssel mehrerer Profile oder Push- Authentifikatoren verschlüsselt werden, sodass diese mehreren Profile oder Push- Authentifikatoren unabhängig voneinander Zugriff auf den symmetrischen Schlüssel erhalten. Vorteilhaft kann so der Zugriff der Profile bzw. Push-Authentifikatoren auf einen Tresor unabhängig voneinander hergestellt und verwaltet werden. In an alternative, preferred embodiment, multiple copies of the same symmetric key can be encrypted using the public keys of multiple profiles or push authenticators, so that these multiple profiles or push authenticators can access the symmetric key independently of one another. Advantageously, the access of the profiles or push authenticators to a safe can thus be established and managed independently of one another.
Wie bereits beschrieben, können mehrere Tresore für einen Account erstellt werden, sodass im Umkehrschluss auch ein öffentlicher Profilschlüssel eines Profils oder ein öffentlicher Codierungsschlüssel eines Push-Authentifikators mehrere verschiedene, zu verschiedenen Tresoren gehörige, symmetrische Schlüssel verschlüsseln kann. As already described, multiple vaults can be created for one account, so that conversely a public profile key of a profile or a public encryption key of a push authenticator can encrypt multiple different symmetric keys belonging to different vaults.
Durch diese möglichen Ausführungsvarianten kann beispielsweise, aber nicht bevorzugt, ein einzelner Push-Authentifikator sowie zwei Profile Zugriff auf einen symmetrischen Schlüssel erhalten, wobei wiederum jeweils zwei verschiedene, weitere Push-Authentifikatoren Zugriff auf jedes Profil haben. Damit hätten insgesamt 5 verschiedene Push-Authentifikatoren Zugriff auf den zugehörigen T resor. In einer weiteren möglichen, aber nicht besonders bevorzugten Ausführungsvariante kann beispielsweise ein Push-Authentifikator direkten Zugriff auf den symmetrischen Schlüssel eines Tresors, und auf ein Profil haben, wobei das Profil weiterhin Zugriff auf drei weitere Tresore hat. Damit hätte ein Push-Authentifikator Zugriff auf insgesamt 4 Tresore. These possible implementation variants can, for example (but not preferred), give a single push authenticator and two profiles access to a symmetric key, with two different push authenticators having access to each profile. This would give a total of 5 different push authenticators access to the associated safe. In another possible but not particularly preferred implementation variant, for example, a push authenticator can have direct access to the symmetric key of a safe and to a profile, with the profile also having access to three other safes. This would give a push authenticator access to a total of 4 safes.
Profile sind als Indirektionsebene für Push-Authentifikatoren vorteilhaft, da sie Flexibilität für die Zugriffsberechtigungen auf geheimen Daten mit sich bringen. Der Zugriff auf einen
Tresor ist nichtmehr zwangsweise an einen Nutzer und dessen (initialen) Authentifikatorclient gebunden. Stattdessen kann ein Nutzer in einer bevorzugten Ausführungsvariante den Zugriff auf einen Tresor über ein Profil mit anderen Push-Authentifikatoren auf anderen Authentifikatorclients anderer Nutzer teilen. Zum Teilen des Zugriffs auf einen Tresor über ein Profil verschlüsselt ein teilender Authentifikatorclient in einer bevorzugten Ausführung dieses Profil mit dem öffentlichen Codierungsschlüssel eines beim Server registrierten Push- Authentifikators eines anderen, empfangenden Authentifikatorclients, indem er den öffentlichen Codierungsschlüssel über den Server abruft. Danach speichert der teilende Authentifikatorclient das verschlüsselte Profil auf dem Server, sodass der empfangende Authentifikatorclient das nur für ihn lesbare Profil abrufen kann. Profile bieten damit eine Lösung für sicheres, vollständig verschlüsseltes Account-Sharing, wobei der Zugriff auf die geheimen Daten, nicht aber der Zugriff auf den Account über den Push-Authentifikator selbst geteilt wird. Diese Funktion ist vorteilhaft insbesondere in kleinen Teams mit spezialisierten Aufgaben im Arbeitsumfeld. Profiles are advantageous as an indirection layer for push authenticators because they provide flexibility for access permissions to secret data. Access to a Tresor is no longer necessarily tied to a user and their (initial) authenticator client. Instead, in a preferred implementation, a user can share access to a vault via a profile with other push authenticators on other users' authenticator clients. To share access to a vault via a profile, in a preferred implementation, a sharing authenticator client encrypts this profile with the public encryption key of a push authenticator registered with the server of another, receiving authenticator client by retrieving the public encryption key from the server. The sharing authenticator client then stores the encrypted profile on the server so that the receiving authenticator client can retrieve the profile that only it can read. Profiles thus provide a solution for secure, fully encrypted account sharing, where access to the secret data, but not access to the account, is shared via the push authenticator itself. This feature is particularly beneficial in small teams with specialized tasks in the work environment.
In einer bevorzugten Ausführungsform werden zwei Profile sequenziell eingesetzt, wobei zumindest ein erstes Profil direkt durch den öffentlichen Profilschlüssel des Profilschlüsselpaars zumindest eines zweiten Profils verschlüsselt wird. Durch die Ausführungsform zweier sequenzieller Profile können vorteilhaft bestimmte Berechtigungsverkettungen noch einfacher und aus Sicht der Schlüsselhygiene noch sauberer umgesetzt werden. Beispielsweise kann ein Nutzer temporär den Zugriff auf geheime Daten oder Zugangsdaten von einem anderen Nutzer übernehmen, ohne dass die dem anderen Nutzer zugeordneten Profile oder Authentifikatoren in sich geändert werden. Stattdessen muss nur eine Verschlüsselung eines Profils des einen Nutzers mit einem Profil des anderen Nutzers erstellt werden und an das Profil des einen Nutzer gesendet werden. So kann beispielsweise ein Erziehungsberechtigter temporär den Zugriff auf die Zugangsdaten eines Kindes übernehmen. In einem weiteren Anwendungsbeispiel können Zugangsdaten eines eine Organisation verlassenden Mitarbeiters sicher und einfach an einen neuen Mitarbeiter übergeben werden. In a preferred embodiment, two profiles are used sequentially, with at least a first profile being encrypted directly by the public profile key of the profile key pair of at least a second profile. By implementing two sequential profiles, certain authorization chains can advantageously be implemented even more simply and, from a key hygiene perspective, even more cleanly. For example, a user can temporarily take over access to secret data or access data from another user without the profiles or authenticators assigned to the other user being changed. Instead, only an encryption of a profile of one user with a profile of the other user needs to be created and sent to the profile of one user. For example, a parent or guardian can temporarily take over access to a child's access data. In another application example, access data of an employee leaving an organization can be transferred securely and easily to a new employee.
Die direkte Verschlüsselung zumindest eines ersten Profils durch den öffentlichen Profilschlüssel des Profilschlüsselpaars zumindest eines zweiten Profils bedeutet, dass keine weiteren Zwischenschritte eingeführt werden, wie beispielsweise eigene Tresore für die Aufbewahrung bestimmter Profile. Diese Ausführungsform ist weniger rechen- und speicherintensiv. Vorteilhaft wird die Verschlüsselung der Profile somit effizienter und aus Sicht der Schlüsselhygiene simpler und übersichtlicher. The direct encryption of at least a first profile using the public profile key of the profile key pair of at least a second profile means that no further intermediate steps are introduced, such as separate safes for storing certain profiles. This embodiment is less computationally and memory-intensive. The advantage is that the encryption of the profiles is therefore more efficient and, from a key hygiene perspective, simpler and clearer.
In einer besonders bevorzugten Ausführungsform des sequenziellen Einsetzens zweierIn a particularly preferred embodiment of the sequential insertion of two
Profile wird der zufällige Profilstartwert des ersten Profils, aus dem dessen Schlüsselmaterial
generiert werden kann, direkt durch das Profilschlüsselpaar des zweiten Profils verschlüsselt. Der Profilstartwert umfasst alle notwendigen Informationen des Profils, sodass vorteilhaft nicht mehrere einzelne Schlüssel verschlüsselt werden müssen. Profile is the random profile seed of the first profile from which its key material can be generated, is encrypted directly by the profile key pair of the second profile. The profile seed contains all the necessary information of the profile, so that it is advantageous not to encrypt several individual keys.
In einer besonders bevorzugten Ausführungsform werden zwei Profile dergestalt sequenziell eingesetzt, dass vorteilhaft eine umfängliche Berechtigungsstruktur für zumindest einen Administrator der geheimen Daten einer Organisation kryptografisch umgesetzt werden. Dabei verschlüsselt das erste Profil sämtliche zu einer Organisation gehörigen Tresore und das zumindest zweite Profil wird von den Push-Authentifikatoren eines Administrators der Organisation verwaltet. Das erste Profil nimmt dabei technisch die Funktion eines Superadministrators ein und kann vorteilhaft ungewollte Zugriffsverluste auf Tresore verhindern, indem, bevorzugt automatisiert, jeder Tresor durch dieses Profil automatisiert verschlüsselt wird. Auf dieses Profil haben wiederum zumindest ein, aber bevorzugt alle Nutzerprofile von Administratoren der Organisation Zugriff. Soll eine Administratorberechtigung aufgehoben werden, kann vorteilhaft simpel die Verschlüsselung des ersten Profils mit dem zweiten Profil dieses Administrators gelöscht werden, sodass das zweite Profil nicht mehr in der Lage ist, das erste Profil zu entschlüsseln. In a particularly preferred embodiment, two profiles are used sequentially in such a way that a comprehensive authorization structure for at least one administrator of the secret data of an organization is advantageously implemented cryptographically. The first profile encrypts all safes belonging to an organization and at least the second profile is managed by the push authenticators of an administrator of the organization. The first profile technically takes on the function of a super administrator and can advantageously prevent unwanted loss of access to safes by automatically encrypting each safe using this profile, preferably automatically. At least one, but preferably all user profiles of administrators of the organization have access to this profile. If an administrator authorization is to be revoked, the encryption of the first profile can advantageously be simply deleted with the second profile of this administrator, so that the second profile is no longer able to decrypt the first profile.
In einer besonders bevorzugten Ausführungsform des sequenziellen Einsetzens zweier Profile zum Umsetzen einer Berechtigungsstruktur für zumindest einen Administrator der geheimen Daten einer Organisation ist der Administrator der Organisation in der Lage, sämtliche Verschlüsselungen entsprechend Verfahrensschritt S03) seiner Organisation zu löschen, durch Platzhalter zu ersetzen sowie neu zu generieren. Dieses Ausführungsform erlaubt es einem Administrator, Profile bestimmter Nutzer, bestimmte Push-Authentifikatoren oder bestimmte Verschlüsselungen (und damit Zugriffsberechtigungen) aufzuheben. Vorteilhafte Nutzungsfälle hiervon sind das On- und Offboarding von Mitarbeitern einer Organisation, das Erstellen und Aufheben bestimmter (Administrator-)Berechtigungen, sowie das Sperren und Wiederherstellen des Zugriffs beim Verlust oder Wechsel von Geräten, die als Push-Authentifikator eingesetzt werden können. In a particularly preferred embodiment of the sequential use of two profiles to implement an authorization structure for at least one administrator of the secret data of an organization, the administrator of the organization is able to delete all encryptions according to method step S03) of his organization, replace them with placeholders and generate new ones. This embodiment allows an administrator to cancel profiles of certain users, certain push authenticators or certain encryptions (and thus access authorizations). Advantageous use cases of this are the on- and offboarding of employees of an organization, the creation and cancellation of certain (administrator) authorizations, as well as the blocking and restoring of access in the event of loss or change of devices that can be used as push authenticators.
In einer ganz besonders bevorzugten Ausführungsform ist der Administrator der Organisation in der Lage, das Auflösen einer Verschlüsselung und damit der entsprechenden Zugriffsberechtigung wie folgt durchzuführen. Die Verschlüsselung eines Profils oder des symmetrischen Schlüssels eines Tresors wird gelöscht. Im Falle der Verschlüsselung eines Profils wird das Profil als freies Profil weitergeführt, wobei Platzhalter als Verschlüsselungen eingesetzt werden. Bei Rückkehr oder Übergabe des Profils werden neue Verschlüsselungen erstellt und die Schlüssel oder der Profilstartwert an den Push- Authentifikator des neuen, ersetzten oder zurückgekehrten Nutzers verschlüsselt und gesendet. Vorteilhaft kann hierdurch ein flexibler und sicherer Onboardingprozess gestartet
werden. Besonders bevorzugt generiert ein neuer Push-Authentifikator die Schlüssel seines neu zugewiesenen Profils nach dem Onboarding neu, sodass datenschutztechnisch vorteilhaft nur er, und nicht mehr der Administrator, Zugriff darauf hat. In a particularly preferred embodiment, the administrator of the organization is able to resolve an encryption and thus the corresponding access authorization as follows. The encryption of a profile or the symmetric key of a safe is deleted. In the case of encryption of a profile, the profile is continued as a free profile, with placeholders being used as encryptions. When the profile is returned or handed over, new encryptions are created and the keys or the profile start value are encrypted and sent to the push authenticator of the new, replaced or returning user. This can advantageously be used to start a flexible and secure onboarding process. It is particularly preferable for a new push authenticator to regenerate the keys of his newly assigned profile after onboarding, so that from a data protection point of view only he, and no longer the administrator, has access to them.
In einer bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst ein Tresor einen sensiblen Datenbereich und eine Metadatenbereich. Der sensible Datenbereich ist innerhalb des Tresors zusätzlich durch einen symmetrischen Hochsicherheitsschlüssel verschlüsselt. Das bedeutet, dass zum Zugriff auf diesen sensiblen Datenbereich sowohl der symmetrische Schlüssel zum Entschlüsseln des gesamten Tresors als auch der symmetrische Hochsicherheitsschlüssel zum Entschlüsseln des sensiblen Datenbereichs benötigt wird. Der symmetrische Hochsicherheitsschlüssel wird wiederum mit einem öffentlichen Hochsicherheitsschlüssels eines asymmetrischen Hochsicherheitsschlüsselpaars eines Push-Authentifikators oder eines öffentlichen Profilhochsicherheitsschlüssels eines asymmetrischen Profilhochsicherheitsschlüsselpaars eines Profils verschlüsselt. In a preferred embodiment of the method according to the invention, a safe comprises a sensitive data area and a metadata area. The sensitive data area is additionally encrypted within the safe using a symmetric high-security key. This means that to access this sensitive data area, both the symmetric key for decrypting the entire safe and the symmetric high-security key for decrypting the sensitive data area are required. The symmetric high-security key is in turn encrypted using a public high-security key of an asymmetric high-security key pair of a push authenticator or a public profile high-security key of an asymmetric profile high-security key pair of a profile.
In einer bevorzugten Ausführung entsprechend der Nutzung des erfindungsgemäßen Verfahrens als Passwortmanager, können in dem Metadatenbereich geheime, aber nicht hochsensible Daten wie Benutzernamen und Mailadressen gespeichert werden, während im sensiblen Datenbereich die zugehörigen Passwörter und weiteren geheimen Daten wie Antworten auf Sicherheitsfragen gespeichert werden. Bei einer alternativen Anwendung des erfindungsgemäßen Verfahrens für den Onlinehandel könnten im Metadatenbereich beispielsweise Rechnungsadressen und im sensiblen Datenbereich Kreditkarteninformationen aufbewahrt werden. In a preferred embodiment corresponding to the use of the method according to the invention as a password manager, secret but not highly sensitive data such as user names and email addresses can be stored in the metadata area, while the associated passwords and other secret data such as answers to security questions are stored in the sensitive data area. In an alternative application of the method according to the invention for online trading, for example, billing addresses could be stored in the metadata area and credit card information in the sensitive data area.
Durch den Zugriff oder fehlenden Zugriff auf den privaten Hochsicherheitsschlüssels bzw. den privaten Profilhochsicherheitsschlüssels kann somit stufenweise der Zugriff auf einen zweiten Bereich mit sensibleren Daten bestimmt werden. Das Hochsicherheitsschlüsselpaar bzw. das Profilhochsicherheitsschlüsselpaar gehört jeweils zu einem Push-Authentifikator bzw. Profil und wird entsprechend neben den bereits beschriebenen zu einem Push- Authentifikator oder Profil gehörigen Schlüsselpaaren auf dem entsprechenden Authentifikatorclient erzeugt und der jeweilige private Schlüssel dort gespeichert. Through access or lack of access to the private high-security key or the private profile high-security key, access to a second area with more sensitive data can be gradually determined. The high-security key pair or the profile high-security key pair each belongs to a push authenticator or profile and is generated on the corresponding authenticator client in addition to the key pairs already described that belong to a push authenticator or profile, and the respective private key is stored there.
In einer besonders bevorzugten Ausführungsvariante können das Hochsicherheitsschlüsselpaar sowie das Profilhochsicherheitsschlüsselpaar nicht auf einem dauerhaften Speicher eines Clients gespeichert werden. Ein dauerhafter Speicher ist ein Speicher, welcher Daten auch nach dem Abschalten der Stromversorgung noch verfügbar macht. Dies bedeutet, dass ein Client diese Schlüssel nur in einem Arbeitsspeicher, maximal bis zur nächsten Abschaltung dieses Clients, verfügbar hat. Danach müssen sie neu
abgerufen werden. Damit der Zugriff auf diese Schlüssel in dieser Ausführungsvariante nicht verloren geht, muss zumindest auf dem Authentifikatorclient, welcher das Hochsicherheitsschlüsselpaar bzw. das Profilhochsicherheitsschlüsselpaar erzeugt hat, dieses Erzeugen reproduzierbar sein. Hierfür eignet sich bevorzugt das Erzeugen aus einem zufälligen Startwert, welcher gespeichert wird. Ein solcher Startwert wird im weiteren Verlauf der Beschreibung näher beschrieben. In a particularly preferred embodiment, the high security key pair and the profile high security key pair cannot be stored on a client's permanent memory. A permanent memory is a memory that makes data available even after the power supply is switched off. This means that a client only has these keys available in a working memory, at most until the next time this client is switched off. After that, they must be re-stored. To ensure that access to these keys is not lost in this embodiment, this generation must be reproducible at least on the authenticator client that generated the high-security key pair or the profile high-security key pair. The preferred method for this is to generate them from a random starting value that is saved. Such a starting value is described in more detail later in the description.
Durch die nicht dauerhaft speicherbare Ausführungsvariante der privaten Hochsicherheitsschlüssel bzw. privaten Profilhochsicherheitsschlüssel wird vorteilhaft sichergestellt, dass ein Applikationsclient nie dauerhaft Zugriff auf den sensiblen Datenbereich des Tresors erhält, sondern dieser Zugriff immer vom Erzeugen aus dem zufälligen Startwert bzw. Abrufen der privaten (Profil-)Hochsicherheitsschlüssel vom Authentifikatorclient abhängig ist. Somit ist gegeben, dass der Authentifikatorclient den Zugriff auf den sensiblen Datenbereich nicht nur beim Koppeln von Applikationsclients, sondern jederzeit, kontrolliert. The non-permanently storable version of the private high-security key or private profile high-security key ensures that an application client never has permanent access to the sensitive data area of the safe, but that this access always depends on the generation from the random start value or retrieval of the private (profile) high-security key from the authenticator client. This means that the authenticator client controls access to the sensitive data area not only when connecting application clients, but at all times.
In einer weiterhin bevorzugten Variante ist auch das Loginschlüsselpaar eines Authentifikatorclients nicht auf dauerhaftem Speicher speicherbar, sodass kein Applikationsclient sich dauerhaft auf dem Server anmelden kann. Damit wird vorteilhaft der Zugriff auf den Account ebenfalls dauerhaft über den Authentifikatorclient gesteuert. In a further preferred variant, the login key pair of an authenticator client cannot be stored on permanent storage, so that no application client can permanently log on to the server. This advantageously means that access to the account is also permanently controlled via the authenticator client.
In einer bevorzugten Ausführungsvariante der Nutzung der Zugriffssteuerung eines Metadatenbereichs und eines sensiblen Datenbereichs des Tresors kann ein gekoppelter Applikationsclient in einen offenen oder geschlossenen Zustand versetzt werden, wodurch dieser Applikationsclient Zugriff oder keinen Zugriff auf den privaten Hochsicherheitsschlüssel erhält. Damit wird vorteilhaft erreicht, dass ein Zugriff dieses Applikationsclients auf den sensiblen Datenbereich geregelt werden kann, wobei ein Applikationsclient im offenen Zustand Zugriff erhält, während ein Applikationsclient im geschlossenen Zustand nur Zugriff auf den Metadatenbereich erhält. Dieses Regeln bzw. das Versetzen in den offenen oder geschlossenen Zustand durch den Authentifikatorclient durchgeführt wird. In einer besonders bevorzugten Ausführungsvariante wird das Versetzen in den offenen oder geschlossenen Zustand durch das Umstellen eines binären Schalters innerhalb einer mobilen Applikation erreicht, wobei die mobile Applikation einen solchen binären Schalter für jeden gekoppelten Applikationsclient in einer Liste anzeigt. Weiterhin bevorzugt werden diese binären Schalter zum Einstellen des Zustands innerhalb der bereits beschriebenen Listenübersicht über alle Clients auf dem Authentifikatorclient dargestellt. In a preferred embodiment of the use of access control of a metadata area and a sensitive data area of the safe, a coupled application client can be set to an open or closed state, whereby this application client receives access or no access to the private high-security key. This advantageously ensures that access of this application client to the sensitive data area can be regulated, whereby an application client in the open state receives access, while an application client in the closed state only receives access to the metadata area. This regulation or setting to the open or closed state is carried out by the authenticator client. In a particularly preferred embodiment, setting to the open or closed state is achieved by switching a binary switch within a mobile application, whereby the mobile application displays such a binary switch for each coupled application client in a list. Furthermore, these binary switches for setting the state are preferably displayed within the previously described list overview of all clients on the authenticator client.
In einer besonders bevorzugten Ausführungsvariante der Steuerung des offenen oder geschlossenen Zustands eines Applikationsclients wird der Zustand durch die Existenz des
mit dem öffentlichen Sitzungsschlüssel des Applikationsclients verschlüsselten Hochsicherheitsschlüssels oder Profilhochsicherheitsschlüssels in einer Sitzung des Applikationsclients auf dem Server bestimmt. Existiert ein so verschlüsselter Hochsicherheitsschlüssel, so kann nur der Applikationsclient, der über den privaten Sitzungsschlüssel verfügt, diesen Hochsicherheitsschlüssel entschlüsseln und mit diesem auf den Tresor zugreifen. Der zum Hochsicherheitsschlüssel zugehörige Authentifikatorclient kann durch das Entfernen dieses Schlüssels vom Server den Applikationsclient vom offenen in den geschlossenen Zustand versetzen. In a particularly preferred embodiment of the control of the open or closed state of an application client, the state is determined by the existence of the with the high-security key or profile high-security key encrypted with the public session key of the application client in an application client session on the server. If a high-security key encrypted in this way exists, only the application client that has the private session key can decrypt this high-security key and use it to access the safe. The authenticator client associated with the high-security key can change the application client from the open to the closed state by removing this key from the server.
Durch die Möglichkeit, einen Applikationsclient in einen offenen Zustand zu versetzen, kann die Effizienz des Abrufens und Speicherns von geheimen Daten für ein besonders vertrauenswürdiges Gerät erhöht werden. Durch die Möglichkeit, einen Applikationsclient in einen geschlossenen Zustand zu versetzen, kann und muss jedes Abrufen oder Speichern von geheimen Daten durch den vertrauenswürdigen Authentifikatorclient autorisiert werden. Gleichzeitig kann der private Codierungsschlüssel bzw. private Profilschlüssel, im Gegensatz zu den äquivalenten Hochsicherheitsschlüsseln, auf dem Applikationsclient gespeichert werden, sodass der Applikationsclient, solange er eine aktive Sitzung auf dem Server besitzt, zumindest Zugriff auf den Metadatenbereich besitzt. Vorteilhaft kann der Applikationsclient dadurch zwar insbesondere keine geheimen Daten aus dem sensiblen Datenbereich für die Webanwendungen abrufen, aber zumindest über eine gespeicherte URL der Webanwendung oder einen gespeicherten Benutzernamen erkennen, dass geheime Daten für die Webanwendung im sensiblen Datenbereich im Tresor vorliegen. The ability to put an application client into an open state can increase the efficiency of retrieving and storing secret data for a particularly trustworthy device. The ability to put an application client into a closed state means that every retrieval or storage of secret data can and must be authorized by the trusted authenticator client. At the same time, the private encryption key or private profile key, unlike the equivalent high-security keys, can be stored on the application client so that the application client has at least access to the metadata area as long as it has an active session on the server. Advantageously, the application client cannot retrieve secret data from the sensitive data area for the web applications, but can at least recognize via a stored URL of the web application or a stored user name that secret data for the web application is present in the sensitive data area in the safe.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens wird die Integrität der auf dem Server gespeicherten öffentlichen Codierungsschlüssel, Hochsicherheitsschlüssel, Profilschlüssel, Profilhochsicherheitsschlüssel sowie Sitzungsschlüssel durch einen Signierprozess sichergestellt. Für den Signierprozess kommt ein privater Identifikationsschlüssels eines Identifikationsschlüsselpaars des zu dem jeweiligen öffentlichen, auf dem Server gespeicherten Schlüssel zugehörigen Push- Authentifikators oder Profils zum Einsatz. Der öffentliche Identifikationsschlüssel wird auf dem Server gespeichert. Bei dem Signierprozess wird aus dem privaten Identifikationsschlüssel und dem jeweiligen öffentlichen Schlüssel eine Signatur erzeugt, welche gemeinsam mit dem jeweiligen öffentlichen Schlüssel auf dem Server gespeichert wird. Mithilfe des öffentlichen Identifikationsschlüssels und der Signatur können der Server bzw. Dritte zweifelsfrei feststellen, dass die Signatur von dem Besitzer des privaten Identifikationsschlüssels kommt, in diesem Fall von dem Authentifikatorclient. Gleichzeitig wird die Integrität der signierten öffentlichen Schlüssel garantiert. Dies gilt, solange auch der öffentliche Identifikationsschlüssel auf dem Server korrekt und unverändert ist. Ist er das
jedoch nicht mehr, kann dieses Problem vorteilhaft wiederum durch den Authentifikatorclient festgestellt werden. In a further preferred embodiment of the method according to the invention, the integrity of the public coding keys, high-security keys, profile keys, profile high-security keys and session keys stored on the server is ensured by a signing process. A private identification key of an identification key pair of the push authenticator or profile associated with the respective public key stored on the server is used for the signing process. The public identification key is stored on the server. During the signing process, a signature is generated from the private identification key and the respective public key, which is stored on the server together with the respective public key. Using the public identification key and the signature, the server or third parties can determine without a doubt that the signature comes from the owner of the private identification key, in this case from the authenticator client. At the same time, the integrity of the signed public keys is guaranteed. This applies as long as the public identification key on the server is also correct and unchanged. If it is the However, if this is no longer the case, this problem can again be advantageously detected by the authenticator client.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens werden die zu einem Push-Authentifikator gehörigen Schlüsselpaare Loginschlüsselpaar, Identifikationsschlüsselpaar, Codierungsschlüsselpaar und Hochsicherheitsschlüsselpaar aus einem zufälligen Authentifikatorstartwert abgeleitet. Weiterhin werden die zu einem Profil gehörigen Schlüsselpaare Identifikationsschlüsselpaar, Profilschlüsselpaar und Profilhochsicherheitsschlüsselpaar ebenfalls aus einem zufälligen Authentifikatorstartwert abgeleitet. Dieses Ableiten geschieht besonders bevorzugt durch kollisionsfreie kryptografische Einwegfunktionen. In a further preferred embodiment of the method according to the invention, the key pairs belonging to a push authenticator - login key pair, identification key pair, coding key pair and high-security key pair - are derived from a random authenticator start value. Furthermore, the key pairs belonging to a profile - identification key pair, profile key pair and profile high-security key pair - are also derived from a random authenticator start value. This derivation is particularly preferably carried out using collision-free cryptographic one-way functions.
Das Ableiten der Schlüsselpaare hat den Vorteil, dass ein Push-Authentifikator mitsamt all seinen Schlüsseln aus einem einzigen zufälligen Startwert abgeleitet werden kann. Beim Autorisieren anderer Geräte durch das Übertragen von mehreren privaten Schlüsseln an diese, kann stattdessen einmalig der zufällige Authentifikator- oder Profilstartwert übertragen werden. Weitere bevorzugte Eigenschaften von Schlüsseln, dass beispielsweise Hochsicherheits- und Loginschlüssel aus Sicherheitsgründen nicht dauerhaft auf einem Applikationsclient gespeichert werden dürfen, werden den Schlüsseln bevorzugt nach dem Ableiten zugeordnet. Jeder zufällige Authentifikator- bzw. Profilstartwert, welcher Schlüssel Ableiten kann, welche nicht dauerhaft auf einem Applikationsclient gespeichert werden dürfen, darf selbst ebenfalls nicht dauerhaft auf einem Applikationsclient gespeichert werden. In einer besonders bevorzugten Ausführung werden die zufälligen Startwerte für Push- Authentifikatoren und Profile auf einem Authentifikatorclient auf dem Schlüsselelement des Authentifikatorclients gespeichert, vorteilhaft verschlüsselt und vor Angriffen geschützt. Deriving the key pairs has the advantage that a push authenticator and all of its keys can be derived from a single random start value. When authorizing other devices by transmitting multiple private keys to them, the random authenticator or profile start value can be transmitted once instead. Other preferred properties of keys, such as that high-security and login keys may not be permanently stored on an application client for security reasons, are preferably assigned to the keys after derivation. Any random authenticator or profile start value that can derive keys that may not be permanently stored on an application client may itself not be permanently stored on an application client. In a particularly preferred embodiment, the random start values for push authenticators and profiles on an authenticator client are stored on the key element of the authenticator client, advantageously encrypted and protected against attacks.
Diese Ausführungsvariante hat zur Folge, dass anstelle des verschlüsselten Übertragens privater Schlüssel im erfindungsgemäßen Verfahren in der Regel der zufällige Authentifikator- oder Profilstartwert verschlüsselt übertragen wird. So wird insbesondere beim Autorisieren des Koppelns eines Applikationsclients der zufällige Authentifikatorstartwert anstelle des privaten Loginschlüssels verschlüsselt übertragen. Außerdem wird beim Autorisieren eines Speicherns oder Abrufens von geheimen Daten durch den Applikationsclient anstelle der privaten Codierungs- und Hochsicherheitsschlüssel bzw. Profil und Profilhochsicherheitsschlüssel der zufällige Authentifikatorstartwert bzw. Profilstartwert übertragen. In einer besonders bevorzugten Ausführungsvariante wird das Versetzen eines Applikationsclients in einen offenen oder geschlossenen Zustand gesteuert durch das Hinzufügen des mit dem öffentlichen Sitzungsschlüssel des Applikationsclients verschlüsselten zufälligen Authentifikator- bzw. Profilstartwerts, anstelle der in diesen zufälligen Startwerten enthaltenen privaten Hochsicherheitsschlüsseln, zu einer Sitzung.
In einer besonders bevorzugten Ausführungsvariante wird ein Profil nicht aus einem, sondern aus zwei zufälligen Profilstartwerten erzeugt, wobei aus einem zufälligen Profilstartwert das Profilschlüsselpaar und aus einem anderen zufälligen Profilhochsicherheitsstartwert das Identifikationsschlüsselpaar und das Profilhochsicherheitsschlüsselpaar erzeugt werden. Sind der symmetrische Schlüssel und symmetrische Hochsicherheitsschlüssel eines Tresors mithilfe eines Profils verschlüsselt, erlaubt diese Teilung bei einem gekoppelten Applikationsclient ebenfalls zwischen offenem und geschlossenem Zustand zu unterteilen, indem im Fall des geschlossenen Zustands der (nicht dauerhaft speicherbare) zufällige Profilhochsicherheitsstartwert nicht in der Sitzung zur Verfügung gestellt wird und somit durch den Applikationsclient keine sensiblen Daten aus dem Tresor abgerufen werden können. This embodiment variant results in the random authenticator or profile start value being transmitted in encrypted form instead of the encrypted transmission of private keys in the method according to the invention. In particular, when authorizing the coupling of an application client, the random authenticator start value is transmitted in encrypted form instead of the private login key. In addition, when authorizing the storage or retrieval of secret data by the application client, the random authenticator start value or profile start value is transmitted instead of the private coding and high-security keys or profile and profile high-security keys. In a particularly preferred embodiment variant, the setting of an application client into an open or closed state is controlled by adding the random authenticator or profile start value encrypted with the public session key of the application client to a session instead of the private high-security keys contained in these random start values. In a particularly preferred embodiment, a profile is not generated from one but from two random profile start values, with the profile key pair being generated from one random profile start value and the identification key pair and the profile high-security key pair being generated from another random profile high-security start value. If the symmetric key and symmetric high-security key of a safe are encrypted using a profile, this division also allows a coupled application client to be divided into open and closed states, in that in the case of the closed state the random profile high-security start value (which cannot be stored permanently) is not made available in the session and thus no sensitive data can be retrieved from the safe by the application client.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens werden die zu einem Push-Authentifikator gehörigen Schlüsselpaare Identifikationsschlüsselpaar, Codierungsschlüsselpaar und Hochsicherheitsschlüsselpaar (ausschließlich das Loginschlüsselpaar) zusätzlich zu dem zufälligen Authentifikatorstartwert aus einem zufälligen Saltwert abgeleitet. Weiterhin werden die zu einem Profil gehörigen Schlüsselpaare Identifikationsschlüsselpaar, Profilschlüsselpaar und Profilhochsicherheitsschlüsselpaar zusätzlich zu dem zufälligen Profilstartwert und Profilhochsicherheitsstartwert aus einem zufälligen Profilsaltwert abgeleitet. Saltwert und Profilsaltwert werden unverschlüsselt auf dem Server gespeichert. Das Ableiten von Schlüsseln aus zufälligen Startwerten kombiniert mit zufälligen Saltwerten hat den Vorteil, dass ein Angreifer keine privaten Schlüssel herausfinden kann, indem er verschiedene Startwerte, mittels sogenannter Rainbow Tables auch systematisch, durchtestet und bei gleichem Ergebnis eines Schlüssels den Startwert ableiten kann. Saltwerte erhöhen somit vorteilhaft die kryptografische Sicherheit. In a further preferred embodiment of the method according to the invention, the key pairs belonging to a push authenticator, identification key pair, coding key pair and high-security key pair (excluding the login key pair), are derived from a random salt value in addition to the random authenticator start value. Furthermore, the key pairs belonging to a profile, identification key pair, profile key pair and profile high-security key pair, are derived from a random profile salt value in addition to the random profile start value and profile high-security start value. The salt value and profile salt value are stored unencrypted on the server. Deriving keys from random start values combined with random salt values has the advantage that an attacker cannot find out private keys by testing different start values, also systematically using so-called rainbow tables, and can derive the start value if the result of a key is the same. Salt values thus advantageously increase cryptographic security.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst das Verfahren eine Recovery-Funktion, welche es erlaubt, einen neuen Authentifikatorclient sowie die durch jeglichen Push-Authentifikator oder Profil des initialen Authentifikatorclients verschlüsselten geheimen Daten zu nutzen, ohne auf den initialen, also den ersten für diesen Account verwendeten, Authentifikatorclient Zugriff zu haben. Dafür werden Backup-Authentifikatoren genutzt, welche durch die Recovery-Funktion vorteilhaft auf dem neuen Authentifikatorclient initialisiert werden, um Zugriff auf die geheimen Daten des initialen Authentifikatorclients zu erhalten. In a further preferred embodiment of the method according to the invention, the method comprises a recovery function which allows a new authenticator client and the secret data encrypted by any push authenticator or profile of the initial authenticator client to be used without having access to the initial authenticator client, i.e. the first authenticator client used for this account. Backup authenticators are used for this purpose, which are advantageously initialized on the new authenticator client by the recovery function in order to gain access to the secret data of the initial authenticator client.
In einer besonders bevorzugten Ausführungsvariante der Recovery-Funktion wird beim Initialisieren des Push-Authentifikators auf dem initialen Authentifikatorclient zusätzlich ein weiterer Backup-Authentifikator erstellt, welcher eine Kopie der gleichen geheimen Daten
wie der Push-Authentifikator des initialen Authentifikatorclients verschlüsselt. Dabei wird der entsprechende zufällige Authentifikatorstartwert des Backup-Authentifikators, aus welchem sich jegliche Schlüssel dieses Backup-Authentifikators ableiten lassen, besonders bevorzugt in einer verschlüsselten und durch weitere Sicherheitsmaßnahmen geschützten Cloud gespeichert. Beispielhaft, aber nicht einschränkend, bieten iOS und Android für ihre mobilen Anwendungen verschlüsselte Cloud-Backups, die für den Backup-Authentifikator genutzt werden. In a particularly preferred embodiment of the recovery function, when the push authenticator is initialized on the initial authenticator client, an additional backup authenticator is created, which contains a copy of the same secret data like the push authenticator of the initial authenticator client. The corresponding random authenticator start value of the backup authenticator, from which all keys of this backup authenticator can be derived, is preferably stored in an encrypted cloud that is protected by additional security measures. As an example, but not as a limitation, iOS and Android offer encrypted cloud backups for their mobile applications, which are used for the backup authenticator.
In einer alternativen, besonders bevorzugten Variante kann ein Backup-Code vom Nutzer aus der mobilen Applikation abgerufen werden. Für diesen Backup-Code wird beim erstmaligen Abrufen ein weiterer Backup-Authentifikator erstellt und die geheimen Daten des Nutzers mit diesem Backup-Authentifikator verschlüsselt. Aus dem Backup-Code wird besonders bevorzugt mithilfe eines Backup-Saltwerts, welcher auf dem Server gespeichert wird, ein Authentifikatorstartwert mithilfe einer Hashfunktion abgeleitet. Der Backup-Saltwert erhöht vorteilhaft die Sicherheit dieser Ausführung der Recovery-Funktion. Für die Sicherheit gegen Ausspähen, Manipulieren und Verlust des Backup-Codes ist in dieser Ausführungsform der Recovery-Funktion der Nutzer selbst verantwortlich. In an alternative, particularly preferred variant, a backup code can be retrieved by the user from the mobile application. When this backup code is retrieved for the first time, another backup authenticator is created and the user's secret data is encrypted with this backup authenticator. An authenticator start value is particularly preferably derived from the backup code using a hash function using a backup salt value, which is stored on the server. The backup salt value advantageously increases the security of this execution of the recovery function. In this embodiment of the recovery function, the user himself is responsible for security against spying, manipulation and loss of the backup code.
In einer weiterhin besonders bevorzugten Ausführungsvariante der Recovery-Funktion werden beim Initialisieren des neuen Authentifikatorclients durch eine der beschriebenen oder eine andere Recovery Funktion in allen durch den jeweiligen Backup-Authentifikator des initialen Authentifikatorclients verschlüsselten Tresoren die geheimen Daten in eine einzelne Übergabe zusammengefasst. Der oder die Tresore werden dann mittels eines oder bevorzugt zwei neuen symmetrischen Schlüssels verschlüsselt. Diese symmetrischen Schlüssel werden durch neue öffentliche Codierungsschlüssel und bevorzugt neue öffentliche Hochsicherheitsschlüssel eines neu initialisierten Push-Authentifikators auf dem neuen Authentifikatorclient verschlüsselt. Alle Schlüssel des initialen Authentifikatorclients, einschließlich des genutzten Backup-Authentifikators, werden gelöscht, sodass alle Tresore vorteilhaft neu verschlüsselt sind und langfristig angelegte Angriffe auf die geheimen Daten über die Recovery-Funktion spätestens ab diesem Zeitpunkt verhindert werden. Bevorzugt werden auf dem neuen Authentifikatorclient neue Recovery-Funktionen durch die beschriebenen Backup-Authentifikatoren angelegt. In a particularly preferred embodiment of the recovery function, when the new authenticator client is initialized using one of the described or another recovery function, the secret data is combined into a single transfer in all safes encrypted by the respective backup authenticator of the initial authenticator client. The safe(s) are then encrypted using one or preferably two new symmetric keys. These symmetric keys are encrypted using new public encryption keys and preferably new public high-security keys of a newly initialized push authenticator on the new authenticator client. All keys of the initial authenticator client, including the backup authenticator used, are deleted so that all safes are advantageously re-encrypted and long-term attacks on the secret data are prevented via the recovery function from this point on at the latest. New recovery functions are preferably created on the new authenticator client using the backup authenticators described.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst ein Applikationsclient eine zugehörige, mit und auf dem Applikationsclient lokal verbundene Applikationsclienterweiterung. In einer besonders bevorzugten Ausführung ist die Applikationsclienterweiterung eine Browsererweiterung in einem Browser auf dem Applikationsclient. Die Applikationsclienterweiterung dient dazu, Metadaten der geheimen Daten eines Tresors, zu dem die Sitzung dieses Applikationsclients zugeordnet ist, zu
speichern und abzurufen. Dadurch können durch die Applikationsclienterweiterung vorteilhaft insbesondere Webseiten, die im Browser aufgerufen werden, als bekannte Webseiten identifiziert werden, für welche bereits geheime Daten vorliegen. In a further preferred embodiment of the method according to the invention, an application client comprises an associated application client extension that is locally connected to and on the application client. In a particularly preferred embodiment, the application client extension is a browser extension in a browser on the application client. The application client extension serves to store metadata of the secret data of a safe to which the session of this application client is assigned. store and retrieve. This makes it particularly useful for the application client extension to identify websites that are accessed in the browser as known websites for which secret data is already available.
In einer besonders bevorzugten Ausführungsvariante generiert die Applikationsclienterweiterung Overlays, insbesondere für die Formulare zum Login bei bekannten Webseiten. Die Overlays werden besonders vorteilhaft anstelle der originalen Formulare eingeblendet, indem der Quellcode der Webseite entsprechend angepasst wird. Somit kann ein Nutzer vorteilhaft sofort erkennen, dass bereits geheime Daten mithilfe des erfindungsgemäßen Verfahrens gespeichert wurden und diese entsprechend abrufen. Die Overlays fragen weiterhin bei dem Nutzer ab, ob die bereits eingegebenen geheimen Daten in dem entsprechenden Tresor gespeichert werden sollen, beispielsweise wenn bei einem erfolgreichen Loginversuch auf einer Webseite keine bisher gespeicherten Logindaten für diese Webseite vorliegen. In einer weiteren Ausführungsvariante generiert die Applikationsclienterweiterung Overlays auch für Formulare, welche den Nutzer zur Eingabe von insbesondere, aber nicht ausschließlich Adress-, Zahlungs- und Kreditkarteninformationen auffordern. In einer weiteren Ausführungsvariante generiert die Applikationsclienterweiterung Overlays, wenn der Nutzer oder ein anderer Nutzer für eine bestimmte URL eine geheime Notiz hinterlassen hat und fragt deren Anzeige ab. Damit können vorteilhaft sicher Notizen speziell für bestimmte Webanwendungen gespeichert und geteilt werden. In a particularly preferred embodiment, the application client extension generates overlays, in particular for the forms for logging in to well-known websites. The overlays are particularly advantageously displayed instead of the original forms by adapting the source code of the website accordingly. This allows a user to immediately recognize that secret data has already been saved using the method according to the invention and to retrieve it accordingly. The overlays also ask the user whether the secret data already entered should be saved in the corresponding safe, for example if there are no previously saved login data for this website after a successful login attempt on a website. In another embodiment, the application client extension also generates overlays for forms that ask the user to enter, in particular but not exclusively, address, payment and credit card information. In another embodiment, the application client extension generates overlays if the user or another user has left a secret note for a specific URL and asks whether it is displayed. This advantageously allows notes to be saved and shared securely specifically for certain web applications.
In einer weiterhin besonders bevorzugten Ausführungsvariante führt die Applikationserweiterung das Erkennen bekannter Webseiten, für welche geheime Daten vorliegen, das Generieren und Einblenden von Overlays sowie ein automatisches Ausfüllen der Formulare, insbesondere Formulare zum Login, mit allen im aktuellen Zustand des Applikationsclients verfügbaren geheimen Daten, automatisch aus. Für den Nutzer bleibt nur noch die Aufgabe übrig, bei einem geschlossenen Zustand des Applikationsclients das Speichern bzw. Abrufen von geheimen Daten mittels des Authentifikatorclients zu bestätigen, wobei die Applikationsclienterweiterung auch für diese Aufgabe ein spezielles Overlay generiert und einblendet. Somit kann vorteilhaft eine Nutzererfahrung gewährleistet werden, die ähnlich komfortabel wie eine SSO-Lösung ist. In a particularly preferred embodiment, the application extension automatically recognizes known websites for which secret data is available, generates and displays overlays, and automatically fills out forms, particularly login forms, with all secret data available in the current state of the application client. The only task left for the user is to confirm the saving or retrieval of secret data using the authenticator client when the application client is closed, with the application client extension also generating and displaying a special overlay for this task. This advantageously ensures a user experience that is as convenient as an SSO solution.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens wird jegliches Autorisieren des Koppelns von Applikationsclients sowie des Speicherns und Abrufens von geheimen Daten durch einen Authentifikatorclient durch eine Wischgeste erreicht, die auf dem in dieser Ausführungsvariante als Authentifikatorclient eingesetzten Smartphone durchgeführt wird. In einer besonders bevorzugten Variante ist auf dem Authentifikatorclient eine bereits beschriebene mobile Anwendung installiert, die in dieser
Ausführungsvariante im Fall einer benötigten Autorisierung den Nutzer mithilfe einer einfachen grafischen Benutzeroberfläche zu der Wischgeste auffordert. In einer besonders bevorzugten Ausführungsvariante wird zusätzlich zum Durchführen der Wischgeste die Sicherheitsfunktion des Smartphones, beispielsweise eine biometrische Authentifizierung mittels Fingerabdrucks oder Gesichtsidentifikation, abgefragt. Somit wird vorteilhaft eine 2FA erreicht mithilfe einer für den Nutzer intuitiven und bekannten Authentifizierung. Die auf dem Smartphone ist ebenfalls eine besonders einfache und intuitive Art der Autorisierung und erhöht vorteilhaft die Benutzerfreundlichkeit des gesamten Verfahrens. In a further preferred embodiment of the method according to the invention, any authorization of the coupling of application clients as well as the storage and retrieval of secret data by an authenticator client is achieved by a swipe gesture that is carried out on the smartphone used as the authenticator client in this embodiment. In a particularly preferred variant, a mobile application as already described is installed on the authenticator client, which in this In the event that authorization is required, the user is prompted to perform the swipe gesture using a simple graphical user interface. In a particularly preferred embodiment, in addition to performing the swipe gesture, the security function of the smartphone, for example biometric authentication using a fingerprint or facial identification, is requested. This advantageously achieves 2FA using an authentication that is intuitive and familiar to the user. The authorization on the smartphone is also a particularly simple and intuitive type of authorization and advantageously increases the user-friendliness of the entire process.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens umfasst eine Sitzung eines mit dem Server gekoppelten Clients einen Sitzungstoken, welcher neben dem öffentlichen Sitzungsschlüssel auf dem Server gespeichert wird. Der vorhandene Sitzungstoken erlaubt es vorteilhaft dem Client, Anfragen an den Server zu senden. Das Entfernen des Sitzungstokens erlaubt es in dieser Ausführungsvariante, Sitzungen von Applikationsclients, aber auch Authentifikatorclients zu kontrollieren, indem durch Entfernen des Sitzungstokens deren Anfragen an den Server abgelehnt werden. Ein Client, dessen Anfrage an den Server abgelehnt wird, löscht in einer besonders bevorzugten Ausführung seine gespeicherten Schlüssel. Der Sitzungstoken ist somit eine besonders einfache Art, die Kontrolle über Sitzungen von Clients durch einen Authentifikatorclient auszuüben. In a further preferred embodiment of the method according to the invention, a session of a client coupled to the server includes a session token, which is stored on the server alongside the public session key. The existing session token advantageously allows the client to send requests to the server. In this embodiment, removing the session token allows sessions of application clients, but also authenticator clients, to be controlled by rejecting their requests to the server by removing the session token. In a particularly preferred embodiment, a client whose request to the server is rejected deletes its stored keys. The session token is therefore a particularly simple way of exercising control over client sessions by an authenticator client.
In einer weiterhin bevorzugten Ausführungsvariante des erfindungsgemäßen Verfahrens wird das Koppeln eines Applikationsclients in Schritt S01) initialisiert durch das Eingeben eines öffentlichen Austauschschlüssels eines von diesem Applikationsclient generierten asymmetrischen Austauschschlüsselpaars in den Authentifikatorclient. Das Eingeben umfasst dabei jegliche Form der Datenerfassung durch den Authentifikatorclient, insbesondere aber nicht einschränkend durch physisches Eintippen durch den Nutzer oder Erfassen von Bild-, Funk oder Toninformationen. Der Authentifikatorclient verschlüsselt seinen privaten Loginschlüssel oder bevorzugt seinen zufälligen Authentifikatorstartwert mit diesem öffentlichen Austauschschlüssel und sendet das verschlüsselte Resultat an den Applikationsclient, welcher den privaten Loginschlüssel oder bevorzugt den zufälligen Authentifikatorstartwert mit dem privaten Austauschschlüssel entschlüsseln kann. Vorteilhaft wird durch das Verschlüsseln eine Sicherheit der Übertragung gewährleistet. Das Senden des verschlüsselten privaten Loginschlüssels oder zufälligen Authentifikatorstartwerts geschieht bevorzugt mithilfe des Servers als Proxy, also in der Funktion der Weiterleitung. Besonders bevorzugt wird die Integrität des versendeten verschlüsselten privaten Loginschlüssels oder zufälligen Authentifikatorstartwerts mittels einer Signatur des Authentifikatorclients, besonders bevorzugt mittels dessen Identifikationsschlüssels,
sichergestellt. Der Applikationsclient kann Authentifikatorclient als Absender sowie die Integrität des versendeten verschlüsselten privaten Loginschlüssels oder zufälligen Authentifikatorstartwerts feststellen, wenn der Server dem Applikationsclient den öffentlichen Identifikationsschlüssel zusätzlich mitsendet. In a further preferred embodiment of the method according to the invention, the coupling of an application client is initialized in step S01) by entering a public exchange key of an asymmetric exchange key pair generated by this application client into the authenticator client. The input includes any form of data capture by the authenticator client, in particular but not limited to physical typing by the user or capture of image, radio or sound information. The authenticator client encrypts its private login key or preferably its random authenticator start value with this public exchange key and sends the encrypted result to the application client, which can decrypt the private login key or preferably the random authenticator start value with the private exchange key. Encryption advantageously ensures the security of the transmission. The encrypted private login key or random authenticator start value is preferably sent using the server as a proxy, i.e. in the forwarding function. Particularly preferably, the integrity of the sent encrypted private login key or random authenticator seed is verified by means of a signature of the authenticator client, particularly preferably by means of its identification key. The application client can determine the authenticator client as the sender and the integrity of the encrypted private login key or random authenticator seed value sent if the server also sends the public identification key to the application client.
In einer besonders bevorzugten Ausführungsvariante wird das Austauschschlüsselpaar nur einmalig verwendet, sodass vorteilhaft kein Spam, Schadcode oder fehlerhaften Informationen mithilfe der dauerhaft gleichen Verschlüsselung an den Applikationsclient gesendet werden können. Besonders bevorzugt wird das Austauschschlüsselpaar zeitgesteuert, besonders bevorzugt aller 30 Sekunden, 60 Sekunden oder 5 Minuten, erneuert. In a particularly preferred embodiment, the exchange key pair is only used once, so that no spam, malicious code or incorrect information can be sent to the application client using the same encryption. The exchange key pair is particularly preferably renewed on a time-controlled basis, particularly preferably every 30 seconds, 60 seconds or 5 minutes.
In einer besonders bevorzugten Ausführungsvariante des Koppelns eines Applikationsclients mittels eines asymmetrischen Austauschschlüsselpaars ist der öffentliche Austauschschlüssel in einem vom Applikationsclient generierten und angezeigten Austausch-QR-Code enthalten, welcher vom Authentifikatorclient visuell und besonders bevorzugt per Kamera erfasst wird. Diese Ausführung erlaubt vorteilhaft eine besonders hohe Benutzerfreundlichkeit. In einer weiterhin besonders bevorzugten Ausführungsvariante ist eine mobile Anwendung, die das erfindungsgemäße Verfahren auf einem als Authentifikatorclient genutzten Smartphones ausführt, beim Betriebssystem des Smartphones als Verarbeiter von zumindest einer solchen bestimmten Art von QR-Codes, welche für das Koppeln von Applikationsclients verwendet wird, registriert. Dadurch wird diese mobile Anwendung automatisch gestartet, wenn ein solcher QR-Code durch eine beliebige Kameraanwendung des Smartphones erfasst wird. Dies erhöht wiederum die zeitliche Effizienz des Verfahrens und damit vorteilhaft die Benutzerfreundlichkeit. In a particularly preferred embodiment of coupling an application client using an asymmetric exchange key pair, the public exchange key is contained in an exchange QR code generated and displayed by the application client, which is captured visually by the authenticator client and particularly preferably by camera. This embodiment advantageously allows a particularly high level of user-friendliness. In a further particularly preferred embodiment, a mobile application that executes the method according to the invention on a smartphone used as an authenticator client is registered with the operating system of the smartphone as a processor of at least one such specific type of QR code that is used for coupling application clients. This mobile application is therefore started automatically when such a QR code is captured by any camera application on the smartphone. This in turn increases the time efficiency of the method and thus advantageously the user-friendliness.
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Programm, Firmware, Computerprogramm oder Computerprogrammprodukt mit einem Programmcode oder als Daten implementiert sein, wobei der Programmcode oder die Daten dahin gehend wirksam ist bzw. sind, eines der Verfahren durchzuführen, wenn das Programm auf einer Recheneinheit abläuft. Der Programmcode, das Computerprogrammprodukt oder die Daten kann bzw. können beispielsweise auch auf einem maschinenlesbaren Träger oder Datenträger gespeichert sein. Der Programmcode oder die Daten können unter anderem als Quellcode, Maschinencode oder Bytecode sowie als anderer Zwischencode vorliegen. In general, embodiments of the present invention can be implemented as a program, firmware, computer program or computer program product with a program code or as data, wherein the program code or the data is effective to carry out one of the methods when the program runs on a computing unit. The program code, the computer program product or the data can also be stored, for example, on a machine-readable carrier or data carrier. The program code or the data can be present, among other things, as source code, machine code or byte code as well as other intermediate code.
Eine Recheneinheit kann durch einen Prozessor, einen Computerprozessor (CPU = Central Processing Unit), einen Grafikprozessor (GPU = Graphics Processing Unit), einen Computer, ein Computersystem, einen anwendungsspezifischen integrierten Schaltkreis (ASIC = Application-Specific Integrated Circuit), einen integrierten Schaltkreis (IC = Integrated
Circuit), ein Ein-Chip-System (SOC = System on Chip), ein programmierbares Logikelement oder ein feldprogrammierbares Gatterarray mit einem Mikroprozessor (FPGA = Field Programmable Gate Array) gebildet sein. A computing unit can be represented by a processor, a computer processor (CPU = Central Processing Unit), a graphics processor (GPU = Graphics Processing Unit), a computer, a computer system, an application-specific integrated circuit (ASIC = Application-Specific Integrated Circuit), an integrated circuit (IC = Integrated Circuit), a single-chip system (SOC = System on Chip), a programmable logic element or a field-programmable gate array with a microprocessor (FPGA = Field Programmable Gate Array).
Die vorliegende Erfindung umfasst neben dem umfänglich beschriebenen Verfahren außerdem den Server, welcher zumindest eine Recheneinheit zur Ausführung von Computerprogrammen, Netzwerkanschlüsse zum Austausch von Daten zumindest mit allen mit dem Server verbundenen Clients in einem Netzwerk, sowie zumindest ein Speichermedium zum Speichern von Computerprogrammen sowie Schlüsseln, Werten, Sitzungen und Tresoren. In bevorzugter Ausführung ist die Recheneinheit eine CPU (central processing unit), welche vielseitig für Operationen anwendbar ist, aber nicht auf besonders spezialisierte Rechenoperationen angepasst ist. In bevorzugter Ausführung umfasst der Server weiterhin einen anwendungsspezifischen integrierten Schaltkreis (ASIC) zur effizienten Verschlüsselung, zum Prüfen von Signaturen oder Zertifikaten und dem Ausführen von Hashfunktionen. In addition to the method described in detail, the present invention also includes the server, which has at least one computing unit for executing computer programs, network connections for exchanging data with at least all clients connected to the server in a network, and at least one storage medium for storing computer programs as well as keys, values, sessions and safes. In a preferred embodiment, the computing unit is a CPU (central processing unit), which can be used for a variety of operations but is not adapted to particularly specialized computing operations. In a preferred embodiment, the server also includes an application-specific integrated circuit (ASIC) for efficient encryption, for checking signatures or certificates and for executing hash functions.
Die vorliegende Erfindung umfasst neben dem umfänglich beschriebenen Verfahren und dem Server ein Computerprogrammprodukt A. Dieses umfasst Befehle, die bei der Ausführung durch eine Recheneinheit auf einem Authentifikatorclient diesen dazu veranlassen, das erfindungsgemäße Verfahren auszuführen. Dies betrifft im Speziellen die Verfahrensschritte und -merkmale, die auf dem Authentifikator ausgeführt werden. Hierzu gehören insbesondere, aber nicht einschränkend, folgende Verfahrensschritte und - merkmale: In addition to the extensively described method and the server, the present invention comprises a computer program product A. This comprises commands which, when executed by a computing unit on an authenticator client, cause the authenticator client to carry out the method according to the invention. This relates in particular to the method steps and features that are carried out on the authenticator. These include in particular, but not restrictively, the following method steps and features:
• Das Generieren bzw. Ableiten aller asymmetrischer Schlüsselpaare auf einem Authentifikatorclient, • Generating or deriving all asymmetric key pairs on an authenticator client,
• Das Erstellen und Senden sowie Empfangen und Auswerten von Anfragen zum oder vom Server • Creating and sending as well as receiving and evaluating requests to or from the server
• Zugreifen auf Schnittstellen zur Nutzung von Kamera, Schutzelement, Schutzfunktion und Speicher des Authentifikatorclients • Access interfaces for using the camera, protection element, protection function and memory of the authenticator client
• Speichern von privaten Schlüsseln und Werten • Storing private keys and values
• Das Bereitstellen einer Benutzeroberfläche, welche Funktionen zum Autorisieren (z.B. mittels Wischgeste), Auflisten aller gekoppelten Clients, Ändern des Status und Entfernen der Sessions von Clients, Erstellen und Teilen eines Profils, Eingeben eines öffentlichen Austauschschlüssels zum Koppeln eines Applikationsclients (insbesondere per Kamera und QR-Code), Auffordern des Nutzers zum Verifizieren über die Schutzfunktion des Smartphones als Authentifikatorclient, bereitstellt.
Die vorliegende Erfindung umfasst neben dem umfänglich beschriebenen Verfahren, dem Server und einem Computerprogrammprodukt A auch ein Computerprogrammprodukt B. Dieses umfasst Befehle, die bei der Ausführung durch eine Recheneinheit auf einem Applikationclient diesen dazu veranlassen, das erfindungsgemäße Verfahren auszuführen. Dies betrifft im Speziellen die Verfahrensschritte und -merkmale, die auf dem Authentifikator ausgeführt werden. Hierzu gehören insbesondere, aber nicht einschränkend, folgende Verfahrensschritte und -merkmale: • Providing a user interface that provides functions for authorizing (e.g. using a swipe gesture), listing all paired clients, changing the status and removing sessions from clients, creating and sharing a profile, entering a public exchange key to pair an application client (in particular via camera and QR code), prompting the user to verify using the smartphone's protection function as an authenticator client. In addition to the extensively described method, the server and a computer program product A, the present invention also includes a computer program product B. This includes commands which, when executed by a computing unit on an application client, cause the client to execute the method according to the invention. This relates in particular to the method steps and features that are carried out on the authenticator. These include in particular, but not restrictively, the following method steps and features:
• Das Generieren bzw. Ableiten aller asymmetrischer Schlüsselpaare auf einem Applikationsclient, • Generating or deriving all asymmetric key pairs on an application client,
• Das Erstellen und Senden sowie Empfangen und Auswerten von Anfragen zum oder vom Server • Creating and sending as well as receiving and evaluating requests to or from the server
• Zugreifen auf Schnittstellen zur Nutzung von Schutzelement und Speicher des Applikationsclients • Access interfaces for using the application client's protection element and memory
• Speichern von privaten Schlüsseln und Metadaten von geheimen Daten • Storing private keys and metadata of secret data
• Zugriff auf Schnittstelle zu lokaler Kommunikation mit einer zugehörigen Applikationsclienterweiterung • Access to interface for local communication with an associated application client extension
• Das Bereitstellen zumindest einer Benutzeroberfläche, welche Funktionen zum Abrufen des Sitzungsstatus, Erstellen und Anzeigen eines öffentlichen Austauschschlüssels zum Koppeln mit einem Server und Authentifikatorclient (insbesondere per QR-Code), Erkennen des Bekanntheitsstatus einer Webanwendung sowie Erstellen und Einblenden von Overlays, Anzeigen einer Autorisierungsaufforderung für den Authentifikatorclient, automatisches Ausfüllen von geheimen Daten, Speichern von geheimen Daten, bereitstellt. • Providing at least one user interface that provides functions for retrieving session status, creating and displaying a public exchange key for coupling with a server and authenticator client (in particular via QR code), detecting the awareness status of a web application, creating and displaying overlays, displaying an authorization request for the authenticator client, automatically filling in secret data, storing secret data.
Das Computerprogrammprodukt B besteht aus bis zu zwei Teilen, einem primären Computerprogrammprodukt des Applikationsclients und einer Applikationsclienterweiterung. In einer bevorzugten Ausführungsvariante ist das primäre Computerprogrammprodukt des Applikationsclients eine Webanwendung, während die Applikationsclienterweiterung als Browser-Addin ausgeführt ist. In dieser bevorzugten Ausführung wird das Koppeln einschließlich Anzeigen des öffentlichen Austauschschlüsselpaars sowie Funktionen wie ein Abruf des Status des Applikationsclients in der Webanwendung durchgeführt. Das Browser- Addin übernimmt dagegen alle Funktionen und Schritte des Verfahrens bezüglich des Speicherns von Metadaten von geheimen Daten, des Erstellens und Anzeigens von Overlays, des Ausfüllens von Formularen sowie des Speicherns und Abrufens von geheimen Daten auf und vom Server.
Die vorliegende Erfindung umfasst neben dem umfänglich beschriebenen Verfahren, dem Server und den Computerprogrammprodukten A und B auch ein Computerprogrammprodukt C. Dieses umfasst Befehle, die bei der Ausführung durch eine Recheneinheit auf dem Server diesen dazu veranlassen, das erfindungsgemäße Verfahren auszuführen. Dies betrifft im Speziellen die Verfahrensschritte und -merkmale, die auf dem Server ausgeführt werden. Hierzu gehören insbesondere, aber nicht einschränkend, folgende Verfahrensschritte und - merkmale: The computer program product B consists of up to two parts, a primary computer program product of the application client and an application client extension. In a preferred embodiment, the primary computer program product of the application client is a web application, while the application client extension is implemented as a browser add-in. In this preferred embodiment, the coupling, including displaying the public exchange key pair and functions such as retrieving the status of the application client, is carried out in the web application. The browser add-in, on the other hand, takes over all functions and steps of the process relating to storing metadata of secret data, creating and displaying overlays, filling out forms, and storing and retrieving secret data on and from the server. In addition to the extensively described method, the server and the computer program products A and B, the present invention also includes a computer program product C. This includes commands which, when executed by a computing unit on the server, cause the server to carry out the method according to the invention. This relates in particular to the method steps and features that are carried out on the server. These include in particular, but not restrictively, the following method steps and features:
• Das Generieren bzw. Ableiten aller symmetrischer Schlüssel, • Generating or deriving all symmetric keys,
• Zugreifen auf die Netzwerkanschlüsse zum Erstellen und Senden sowie Empfangen und Auswerten von Anfragen zu oder von den Clients, insbesondere das Agieren als Proxy zur Weiterleitung der Kommunikation zwischen Clients, • Accessing the network connections to create and send as well as receive and evaluate requests to or from the clients, in particular acting as a proxy to forward communication between clients,
• Zugreifen auf den Speicher sowie spezielle ASICs zur Verschlüsselung, Überprüfung von Signaturen und Zertifikaten oder Ausführung von Hashfunktionen, • Access to memory and special ASICs for encryption, verification of signatures and certificates or execution of hash functions,
• Speichern von verschlüsselten privaten Schlüsseln, öffentlichen Schlüsseln und geheimen Daten in Tresoren, insbesondere Generieren einer systematischen datenbankähnlichen Datenverwaltung, sodass Tresore, Schlüssel, Werte, Sitzungen, Tokens und Accountdaten einander und den jeweiligen Nutzern und Clients korrekt zugeordnet werden, • Storing encrypted private keys, public keys and secret data in vaults, in particular generating a systematic database-like data management so that vaults, keys, values, sessions, tokens and account data are correctly assigned to each other and to the respective users and clients,
Die vorliegende Erfindung umfasst neben dem umfänglich beschriebenen Verfahren, dem Server und den Computerprogrammprodukten A, B und C auch ein System, welches aus der Kombination der Computerprogrammprodukte A, B und C sowie dem Server besteht. Dieses System ist in der Lage, das vorliegende erfindungsgemäße Verfahren vollumfänglich auszuführen. Voraussetzung ist hierfür die Verwendung von geeigneten bereits spezifizierten, aber nicht von der vorliegenden Erfindung umfassten Authentifikatorclients bzw. Applikationsclients, welche dafür eingerichtet sind, zumindest die Computerprogrammprodukte A bzw. B auszuführen. In addition to the extensively described method, the server and the computer program products A, B and C, the present invention also includes a system which consists of the combination of the computer program products A, B and C and the server. This system is able to fully carry out the present inventive method. The prerequisite for this is the use of suitable authenticator clients or application clients which have already been specified but are not covered by the present invention and which are set up to execute at least the computer program products A and B.
Weitere Vorteile, Merkmale und Anwendungsmöglichkeiten der vorliegenden Erfindung ergeben sich auch aus der nachfolgenden Beschreibung von Ausführungsbeispielen und den Zeichnungen. Dabei können die in den Ansprüchen und in der Beschreibung erwähnten Merkmale jeweils einzeln für sich oder in beliebiger Kombination erfindungswesentlich sein. Zudem ist darauf hinzuweisen, dass der Fachmann zweifelsohne erkennt, dass sich die einzelnen Merkmale, die in den vorstehenden konkreten Ausführungsformen beschrieben sind, auf angemessene Weise miteinander kombinieren lassen, soweit kein Widerspruch vorliegt, wobei zum Vermeiden unnötiger Wiederholung auf eine separate Beschreibung verschiedener möglicher Kombinationen verzichtet wird.
AUSFÜHRUNGSBEISPIELE Further advantages, features and possible applications of the present invention also emerge from the following description of embodiments and the drawings. The features mentioned in the claims and in the description can be essential to the invention individually or in any combination. In addition, it should be noted that the person skilled in the art will undoubtedly recognize that the individual features described in the above specific embodiments can be combined with one another in an appropriate manner, provided there is no contradiction, whereby a separate description of various possible combinations is omitted in order to avoid unnecessary repetition. EXAMPLES OF IMPLEMENTATION
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit den folgenden Zeichnungen und Beschreibungen der Grundprinzipien und Ausführungsbeispiele der vorliegenden Erfindung. The above-described characteristics, features and advantages of this invention, as well as the manner in which they are achieved, will be more clearly and distinctly understood in connection with the following drawings and descriptions of the basic principles and embodiments of the present invention.
Dabei wird die vorliegende Erfindung näher erläutert, ohne die Erfindung auf diese Zeichnungen und Beschreibungen zu beschränken. Sofern in dieser Anmeldung der Begriff "kann" verwendet wird, handelt es sich sowohl um die technische Möglichkeit als auch um die tatsächliche technische Umsetzung. In den einzelnen Figuren gezeigte und zu dem jeweiligen Beispiel beschriebene Merkmale sind nicht auf das jeweilige Einzelbeispiel beschränkt. Der Singular schließt den Plural ein, es sei denn, aus dem Kontext geht eindeutig etwas anderes hervor. The present invention is explained in more detail without restricting the invention to these drawings and descriptions. If the term "can" is used in this application, this refers to both the technical possibility and the actual technical implementation. Features shown in the individual figures and described for the respective example are not restricted to the respective individual example. The singular includes the plural, unless the context clearly indicates otherwise.
In den nachfolgenden Zeichnungen sind alle kryptografischen Schlüssel als Farbkästen dargestellt und mit einem Schlüsselsymbol versehen. Alle Schlüssel oder Werte, die in der hellgrauen Farbe hinterlegt sind, sind geheime Schlüssel oder Werte, welche nur auf dem jeweiligen Gerät vorhanden sind, zu dem sie gehören. Weiß hinterlegte Schlüssel oder Werte sind ebenfalls geheim, liegen aber auf dem Server, jedoch ausschließlich in verschlüsselter Form, vor. Dunkelgrau hinterlegte Schlüssel oder Werte sind öffentliche Schlüssel oder Werte und können serverseitig unverschlüsselt vorliegen. In the following drawings, all cryptographic keys are shown as color boxes and provided with a key symbol. All keys or values that are shown in light gray are secret keys or values that are only available on the device to which they belong. Keys or values that are shown in white are also secret, but are available on the server, albeit only in encrypted form. Keys or values that are shown in dark gray are public keys or values and can be unencrypted on the server side.
Nachfolgend zeigt: Below shows:
Fig. 1 : Das Wirkprinzip der Bedienoberfläche des erfindungsgemäßen Verfahrens inFig. 1 : The operating principle of the user interface of the method according to the invention in
Schritt S03). Dabei speichert oder ruft der Nutzer geheime Daten auf einem Applikationsclient (1.3), hier ein Laptop, ab. Diese Funktion wird in der hier dargestellten, bevorzugten Ausgestaltung über Overlays (1.4.2) durch die Applikationsclienterweiterung (1.4.1) bereitgestellt, in dieser bevorzugten Ausführung als Browser-Addin ausgeführt. Verschiedenartige Formulare (1.4.3) verschiedener Webanwendungen können durch die Applikationsclienterweiterung (1.4.1) automatisch erkannt und das erfindungsgemäße Overlay (1.4.2) angezeigt werden. Speichert oder ruft der Nutzer geheime Daten ab, wird er auf seinem Authentifikatorclient (1.2), in dieser bevorzugten Ausführungsvariante ein Smartphone, aufgefordert, diesen Schritt zu bestätigen. Step S03). The user saves or retrieves secret data on an application client (1.3), here a laptop. In the preferred embodiment shown here, this function is provided via overlays (1.4.2) by the application client extension (1.4.1), in this preferred embodiment executed as a browser add-in. Different forms (1.4.3) of different web applications can be automatically recognized by the application client extension (1.4.1) and the inventive overlay (1.4.2) displayed. If the user saves or retrieves secret data, he is asked to confirm this step on his authenticator client (1.2), in this preferred embodiment a smartphone.
Fig. 2: Die zugrundeliegende Architektur des Systems der am Verfahren beteiligtenFig. 2: The underlying architecture of the system of the parties involved in the process
Geräte. Die Pfeile stellen die verfahrensspezifischen Kommunikationskanäle
dar. Ein Authentifikatorclient (1.2) kommuniziert über einen Server (1.1) mit einem Applikationsclient (1.3) bzw. dessen zugehöriger Applikationsclienterweiterung (1.4.1). Sowohl der Authentifikatorclient (1.2) als auch der Applikationsclient (1.3) und dessen Applikationsclienterweiterung (1.4.1) kommunizieren mit dem Server über verschlüsselte Kanäle, dargestellt durch die durchgezogenen Pfeile, in dieser bevorzugten Ausführung über Kanäle mit Verschlüsselung nach TLS- Protokoll. Zusätzlich dient der Server (1.1) als ein Kommunikationsproxy zwischen den Clients, diese Funktionsweise wird dargestellt mit den gepunkteten Pfeilen. In diesem Fall kommunizieren die Clients mittels Ende- zu-Ende verschlüsselter Nachrichten innerhalb der verschlüsselten Kanäle. Nur zwischen Applikationsclient (1.3) und dessen Applikationsclienterweiterung (1.4.1) kommt es zu einer lokalen, unverschlüsselten Kommunikation auf demselben Gerät, z.B. zwischen dem Gerätespeicher und dem Browser-Addin. Devices. The arrows represent the process-specific communication channels An authenticator client (1.2) communicates via a server (1.1) with an application client (1.3) or its associated application client extension (1.4.1). Both the authenticator client (1.2) and the application client (1.3) and its application client extension (1.4.1) communicate with the server via encrypted channels, shown by the solid arrows, in this preferred embodiment via channels with encryption according to the TLS protocol. In addition, the server (1.1) serves as a communication proxy between the clients; this functionality is shown with the dotted arrows. In this case, the clients communicate using end-to-end encrypted messages within the encrypted channels. Local, unencrypted communication on the same device only occurs between the application client (1.3) and its application client extension (1.4.1), e.g. between the device memory and the browser add-in.
Fig. 3: Ein Vergleich der verschiedenen Schlüssel, welche ein Push-Authentifikator (1.5) und ein Profil (1.7) besitzen. Ein Profil (1.7) besitzt im Gegensatz zum Push-Authentifikator (1.5) kein Loginschlüsselpaar aus öffentlichem (2.1.2) und privatem (2.1.3) Loginschlüssel, um sich selbstständig gegen den Server zu authentifizieren. Sowohl Profil (1.7) als auch Push-Authentifikator (1.5) besitzen ein Identifikationsschlüsselpaar aus öffentlichem (2.2.2) und privatem (2.2.3) Identifikationsschlüssel, wobei alle weiteren beschriebenen öffentlichen Schlüssel des Profils (1.7) bzw. Push-Authentifikators (1.5), welche auf dem Server gespeichert werden, mittels des privaten Identifikationsschlüssels (2.2.3) signiert werden, wodurch mittels des Signierprozesses (2.2.4) die Integrität der signierten öffentlichen Schlüssel sichergestellt werden kann. Profil (öffentlicher (2.5.2) und privater (2.5.3) Profilschlüssel und öffentlicher (2.6.2) und privater (2.6.3) Profilhochsicherheitsschlüssel) und Push-Authentifikator (öffentlicher (2.3.2) und privater (2.3.3) Codierungsschlüssel und öffentlicher (2.4.2) und privater (2.4.3) Hochsicherheitsschlüssel) besitzen unterschiedlich benannte Schlüssel zum Verschlüsseln von zum Profil bzw. Push-Authentifikator gehörigen Tresoren. Das Codierungsschlüsselpaar (2.3.2 und 2.3.3) und Hochsicherheitsschlüsselpaar (2.4.2 und 2.4.3) des Push-Authentifikators (1.5) dienen allerdings außerdem dazu, jegliche Schlüssel eines diesem Push-Authentifikator zugeordneten Profils (1.7) zu entschlüsseln, um Zugriff auf dieses Profil zu erhalten. In der dargestellten Ausführungsvariante
werden jegliche Schlüssel des Profils bzw. des Push Authentifikators aus dem zufälligen Profilstartwert (4.2.1) und dem zufälligen Profilhochsicherheitsstartwert (4.2.2), bzw. dem zufälligen Authentifikatorstartwert (4.1) abgeleitet. Dabei existieren sowohl Profilstartwert (4.2.1) als auch Profilhochsicherheitsstartwert (4.2.2), um von einem Profil das Profilschlüsselpaar (2.5.2 und 2.5.3) und das Profilhochsicherheitsschlüsselpaar (2.6.2 und 2.6.3) einzeln abrufen zu können, z.B. je nachdem, ob das Profil in offenem oder geschlossenem Zustand ist. In dieser Ausführungsvariante werden alle Schlüssel von dem Push-Authentifikator (1.5) bzw. dem Profil (1.7) zusätzlich aus einem zufälligen Saltwert (4.3) bzw. einem zufälligen Profilsaltwert (4.4) abgeleitet. Fig. 3: A comparison of the different keys that a push authenticator (1.5) and a profile (1.7) have. In contrast to the push authenticator (1.5), a profile (1.7) does not have a login key pair consisting of a public (2.1.2) and a private (2.1.3) login key to independently authenticate itself against the server. Both the profile (1.7) and the push authenticator (1.5) have an identification key pair consisting of a public (2.2.2) and a private (2.2.3) identification key, whereby all other described public keys of the profile (1.7) or push authenticator (1.5) that are stored on the server are signed using the private identification key (2.2.3), whereby the integrity of the signed public keys can be ensured using the signing process (2.2.4). Profile (public (2.5.2) and private (2.5.3) profile key and public (2.6.2) and private (2.6.3) profile high security key) and push authenticator (public (2.3.2) and private (2.3.3) encryption key and public (2.4.2) and private (2.4.3) high security key) have differently named keys for encrypting vaults belonging to the profile or push authenticator. The encryption key pair (2.3.2 and 2.3.3) and high security key pair (2.4.2 and 2.4.3) of the push authenticator (1.5) also serve to decrypt any keys of a profile (1.7) assigned to this push authenticator in order to gain access to this profile. In the embodiment shown all keys of the profile or push authenticator are derived from the random profile start value (4.2.1) and the random profile high security start value (4.2.2) or the random authenticator start value (4.1). Both the profile start value (4.2.1) and the profile high security start value (4.2.2) exist in order to be able to retrieve the profile key pair (2.5.2 and 2.5.3) and the profile high security key pair (2.6.2 and 2.6.3) individually from a profile, e.g. depending on whether the profile is in the open or closed state. In this variant, all keys from the push authenticator (1.5) or the profile (1.7) are also derived from a random salt value (4.3) or a random profile salt value (4.4).
Fig. 4: Die Verschlüsselung eines Tresors (3.3.1) auf einem Server (1.1), in dieserFig. 4: The encryption of a safe (3.3.1) on a server (1.1), in this
Ausführungsvariante mittels eines Profils (1.7), wobei angemerkt sei, dass eine solche Verschlüsselungsvariante in einer Ausführungsvariante ohne Profil auch direkt durch einen Push-Authentifikator vorgenommen werden kann. Die auf dem Authentifikatorclient (1.2) erzeugten und zum Profil gehörenden öffentlichen (2.2.2, 2.5.2, 2.6.2) und privaten (2.2.3, 2.5.3, 2.6.3) Schlüssel werden aus zumindest einem zufälligen Profilstartwert (4.2.1), einem zufälligen Profilhochsicherheitsstartwert (4.2.2) und einem zufälligen Profilsaltwert (4.4) erzeugt. Die öffentlichen Schlüssel (2.2.2, 2.5.2, 2.6.2) werden auf dem Server gespeichert, wobei der öffentliche Profilhochsicherheitsschlüssel (2.6.2) genutzt wird, um den symmetrischen Hochsicherheitsschlüssel (3.2) zu verschlüsseln und der öffentliche Profilschlüssel (2.5.2) genutzt wird, um zumindest den symmetrischen Schlüssel (3.1) zu verschlüsseln. In einer bevorzugten Variante werden durch den öffentlichen Profilschlüssel (2.5.2) zusätzlich beide symmetrischen Schlüssel (3.1 , 3.2) verschlüsselt. Mit den symmetrischen Schlüsseln können wiederum geheime Daten aus dem Tresor (3.3.1) abgerufen werden, welche dort systematisch und zeitlich sortiert in einzelnen Übergaben (3.3.7) für einzelne Webanwendungen gespeichert sind. Variant using a profile (1.7), whereby it should be noted that such an encryption variant can also be carried out directly by a push authenticator in a variant without a profile. The public (2.2.2, 2.5.2, 2.6.2) and private (2.2.3, 2.5.3, 2.6.3) keys generated on the authenticator client (1.2) and belonging to the profile are generated from at least one random profile seed value (4.2.1), one random high-security profile seed value (4.2.2) and one random profile salt value (4.4). The public keys (2.2.2, 2.5.2, 2.6.2) are stored on the server, whereby the public profile high-security key (2.6.2) is used to encrypt the symmetric high-security key (3.2) and the public profile key (2.5.2) is used to encrypt at least the symmetric key (3.1). In a preferred variant, both symmetric keys (3.1, 3.2) are also encrypted using the public profile key (2.5.2). The symmetric keys can in turn be used to retrieve secret data from the safe (3.3.1), which is stored there systematically and chronologically sorted in individual transfers (3.3.7) for individual web applications.
Fig. 5: Die Zugriffsbeschränkung auf ein Profil (1.7) durch Verschlüsselungen durch einen Push-Authentifikator (1.5) und einen zweiten, in dieser Ausführungsvariante Backup-Authentifikator (1.6). Im Profil links unten werden wie in Fig.4 aus einem zufälligen Profilstartwert (4.2.1), einem zufälligen Profilhochsicherheitsstartwert (4.2.2) und einem zufälligen Profilsaltwert (4.4) zum Profil zugehörige Schlüsselpaare erzeugt, wobei
diese wie in Fig.4 zum Verschlüsseln eines serverseitigen Tresors genutzt werden können. Während der zufällige Profilsaltwert (4.4) öffentlich auf dem Server gespeichert wird, werden der zufällige Profilstartwert (4.2.1) zwar verschlüsselt durch den öffentlichen Codierungsschlüssel (2.3.2) eines Push- Authentifikators (1.5) und der zufällige Profilhochsicherheitsstartwert (4.2.2) verschlüsselt durch zumindest den öffentlichen HochsicherheitsschlüsselFig. 5: The access restriction to a profile (1.7) through encryption by a push authenticator (1.5) and a second, in this embodiment, backup authenticator (1.6). In the profile at the bottom left, as in Fig. 4, key pairs associated with the profile are generated from a random profile start value (4.2.1), a random profile high security start value (4.2.2) and a random profile salt value (4.4), whereby These can be used to encrypt a server-side vault as shown in Fig.4. While the random profile salt (4.4) is stored publicly on the server, the random profile seed (4.2.1) is encrypted by the public encryption key (2.3.2) of a push authenticator (1.5) and the random profile high-security seed (4.2.2) is encrypted by at least the public high-security key
(2.4.2) des Push-Authentifikators (1.5) auf dem Server gespeichert. Dadurch kann nur dieser Push-Authentifikator (1.5) Zugriff auf dieses Profil erlangen, indem er die zufälligen Startwerte (4.2.1 und 4.2.2) des Profils entschlüsselt. Zusätzlich ist in dieser Ausführungsvariante ein Backup-Authentifikator (1.6) eingerichtet, mit dem die zufälligen Startwerte (4.2.1 und 4.2.2) des Profils noch einmal in gleicher Weise verschlüsselt auf dem Server gelagert werden. Dieser Backup-Authentifikator(1.6) kann durch Übertragen des zufälligen Authentifikatorstartwerts (4.1) und des zufälligen Saltwerts (4.3) auf einem anderen Authentifikatorclient erstellt werden und dort im Fall eines Verlusts des initialen Authentifikatorclients (1.2) dort alle Schlüssel (2.1.2, 2.1.3, 2.2.2, 2.2.3, 2.3.2, 2.3.3, 2.4.2, 2.4.3) erzeugen, um das Profil (1.7) zu entschlüsseln und damit Zugriff zu erhalten. (2.4.2) of the push authenticator (1.5) is stored on the server. This means that only this push authenticator (1.5) can gain access to this profile by decrypting the random start values (4.2.1 and 4.2.2) of the profile. In addition, a backup authenticator (1.6) is set up in this version, with which the random start values (4.2.1 and 4.2.2) of the profile are stored again on the server in the same encrypted form. This backup authenticator (1.6) can be created by transferring the random authenticator seed (4.1) and the random salt value (4.3) to another authenticator client and, in the event of a loss of the initial authenticator client (1.2), generate all keys (2.1.2, 2.1.3, 2.2.2, 2.2.3, 2.3.2, 2.3.3, 2.4.2, 2.4.3) there in order to decrypt the profile (1.7) and thus gain access.
Fig. 6: Die öffentlichen und privaten Schlüssel, welche einem Profil (1.7) und einem Push-Authentifikator (1.5) auf einem Applikationsclient in nicht gekoppeltem, gekoppeltem aber geschlossenen, sowie gekoppeltem und offenen Zustand zur Verfügung stehen. In nicht gekoppeltem Zustand generiert der Applikationsclient nur einen öffentlichen (2.8.2) und einen privaten (2.8.3) Austauschschlüssel, um von einem Authentifikatorclient Schlüssel oder Startwerte verschlüsselt übertragen bekommen zu können. Im gekoppelten Zustand besitzt der Applikationsclient eine Sitzung (2.7.4) mit einem Sitzungstoken (2.7.5) und einem öffentlichen (2.7.2) und einem privatenFig. 6: The public and private keys available to a profile (1.7) and a push authenticator (1.5) on an application client in uncoupled, coupled but closed, and coupled and open states. In uncoupled state, the application client generates only one public (2.8.2) and one private (2.8.3) exchange key in order to be able to receive keys or start values encrypted from an authenticator client. In coupled state, the application client has a session (2.7.4) with a session token (2.7.5) and a public (2.7.2) and a private
(2.7.3) Sitzungsschlüssel. Ein Push- oder Backup-Authentifikator (1.5 oder 1.6) besitzt außerdem ein Loginschlüsselpaar aus öffentlichem (2.1.2) und privatem (2.1.3) Loginschlüssel, um sich gegen den Server zu authentifizieren, was ein Profil nicht kann. Darüber hinaus besitzt ein Profil (1.7) oder Push-/Backup-Authentifikator (1.5 / 1.6) auf einem Applikationsclient alle insbesondere in Fig. 3 beschrieben Schlüssel. Allerdings kann durch den offenen Zustand gesteuert werden, ob Push- /Backup-Authentifikator (1.5 / 1.6) auf einem Applikationsclient Zugriff auf dessen privaten Hochsicherheitsschlüssel (2.4.3), Identifikationsschlüssel(2.7.3) session key. A push or backup authenticator (1.5 or 1.6) also has a login key pair consisting of a public (2.1.2) and private (2.1.3) login key to authenticate against the server, which a profile cannot do. In addition, a profile (1.7) or push/backup authenticator (1.5 / 1.6) on an application client has all the keys described in particular in Fig. 3. However, the open state can control whether the push/backup authenticator (1.5 / 1.6) on an application client has access to its private high-security key (2.4.3), identification key
(2.2.3) und Loginschlüssel (2.1.3) bzw. ein Profil (1.7) Zugriff auf dessen
privaten Identifikationsschlüssel und Profilhochsicherheitsschlüssel hat. Dies erlaubt oder verbietet entsprechend den Zugriff auf sensible Daten innerhalb der geheimen Daten und kann über einen Authentifikatorclient gesteuert werden. (2.2.3) and login key (2.1.3) or a profile (1.7) access to its private identification key and high security profile key. This allows or prohibits access to sensitive data within the secret data and can be controlled via an authenticator client.
Fig. 7: Eine Illustration der Zugriffsberechtigung auf einen Tresor (3.3.1) und die enthaltenen geheimen Daten durch den Besitz und den Einsatz bestimmter Schlüssel. In dieser Ausführungsvariante greift ein Push-Authentifikator direkt auf den Tresor (3.3.1) zu, anders als in der ebenso möglichen Ausführungsvariante in Fig.4, in der ein Profil als Indirektionsebene für den Push-Authentifikator auf den Tresor (3.3.1) zugreift. Der Push-Authentifikator ist im Besitz des Codierungsschlüsselpaars (2.3.1), bestehend aus einem privaten (2.3.3) und einem öffentlichen (2.3.2) Codierungsschlüssel. Mit diesen Schlüsseln kann der Push-Authentifikator den symmetrischen Schlüssel (3.1) ver- und entschlüsseln, um Zugriff auf den durch diesen symmetrischen Schlüssel (3.1) verschlüsselten Tresor zu erhalten. In dieser bevorzugten Ausführungsvariante ist der Tresor allerdings in einen Metadatenbereich (3.3.5) und einen sensiblen Datenbereich (3.3.3) unterteilt, wobei der sensible Datenbereich (3.3.3) zusätzlich durch einen symmetrischen Hochsicherheitsschlüssel (3.2) verschlüsselt ist. Mithilfe des symmetrischen Schlüssels (3.1) allein kann der Push-Authentifikator nur auf den Metadatenbereich (3.3.5) und die darin enthaltenen Metadaten (3.3.6) zugreifen. Für den Zugriff auf die sensiblen Daten (3.3.4) im sensiblen Datenbereich (3.3.3) benötigt der Push-Authentifikator das Hochsicherheitsschlüsselpaar (2.4.1) aus einem privaten (2.4.3) und einem öffentlichen (2.4.2) Hochsicherheitsschlüssel zum Ver- und Entschlüsseln des symmetrischen Hochsicherheitsschlüssels (3.2). Der private Hochsicherheitsschlüssel (2.4.3) kann vom Push-Authentifikator nicht dauerhaft gespeichert werden, sondern muss, siehe Fig.6, mittels des zufälligen Authentifikatorstartwerts generiert bzw. abgeleitet werden, was wiederum nur im offenen Zustand des Push-Authentifikators möglich ist.Fig. 7: An illustration of the access authorization to a safe (3.3.1) and the secret data contained therein through the possession and use of certain keys. In this embodiment, a push authenticator accesses the safe (3.3.1) directly, unlike in the equally possible embodiment in Fig. 4, in which a profile accesses the safe (3.3.1) as an indirection level for the push authenticator. The push authenticator is in possession of the encryption key pair (2.3.1), consisting of a private (2.3.3) and a public (2.3.2) encryption key. With these keys, the push authenticator can encrypt and decrypt the symmetric key (3.1) in order to gain access to the safe encrypted by this symmetric key (3.1). In this preferred embodiment, however, the safe is divided into a metadata area (3.3.5) and a sensitive data area (3.3.3), with the sensitive data area (3.3.3) additionally encrypted by a symmetric high-security key (3.2). Using the symmetric key (3.1) alone, the push authenticator can only access the metadata area (3.3.5) and the metadata (3.3.6) contained therein. To access the sensitive data (3.3.4) in the sensitive data area (3.3.3), the push authenticator requires the high-security key pair (2.4.1) consisting of a private (2.4.3) and a public (2.4.2) high-security key to encrypt and decrypt the symmetric high-security key (3.2). The private high-security key (2.4.3) cannot be stored permanently by the push authenticator, but must be generated or derived using the random authenticator seed value (see Fig.6), which in turn is only possible when the push authenticator is in the open state.
Fig. 8: Eine Illustration einer bevorzugten Ausführungsvariante derFig. 8: An illustration of a preferred embodiment of the
Applikationsclienterweiterung (1.4.1) mit deren Funktionen und den verschiedenen Overlays (1.4.2). Das erfindungsgemäße Verfahren wird hier zum passwortbasierten Login auf eine Webanwendung eingesetzt. Im ersten Zustand links oben zeigt eine Webanwendung, hier beispielsweise Github.com, deren standardmäßiges Formular (1.4.3) zum Login. Daher
muss die der Applikationsclient und die Applikationsclienterweiterung (1.4.1) mit einem Authentifikatorclient gekoppelt werden, indem in dieser bevorzugten Ausführungsvariante der von der ApplikationsclienterweiterungApplication client extension (1.4.1) with its functions and the various overlays (1.4.2). The method according to the invention is used here for password-based login to a web application. In the first state at the top left, a web application, here for example Github.com, shows its standard form (1.4.3) for login. Therefore the application client and the application client extension (1.4.1) must be coupled with an authenticator client by, in this preferred embodiment, the application client extension
(1.4.1) dargestellte QR-Code (2.8.4) durch den Authentifikatorclient gescannt wird. Dieser QR-Code (2.8.4) enthält einen öffentlichen Austauschschlüssel(1.4.1) is scanned by the authenticator client. This QR code (2.8.4) contains a public exchange key
(2.8.2), wodurch Loginschlüssel oder zufällige Startwerte verschlüsselt und sicher zwischen dem Authentifikatorclient und dem Applikationsclient ausgetauscht und das Koppeln des Applikationsclients durchgeführt werden kann. Im gekoppelten Zustand erkennt die Applikationserweiterung (1.4.1) das bekannte Formular (1.4.3) zum Login und blendet automatisch ein Overlay (1.4.2) zum Login mit dem erfindungsgemäßen Verfahren anstelle des Formulars ein, siehe Darstellung in der Mitte oben von Fig.8. Initialisiert der Nutzer den Login, so zeigt das Overlay (1.4.2) in der Darstellung unten mittig an, dass der Nutzer den Zugriff auf die geheimen Daten dieser Webanwendung mittels des Authentifikatorclients autorisieren soll - dies gilt zumindest für den Fall, dass der Applikationsclient nicht in offenen Zustand gesetzt ist, denn dann könnte er auch die sensiblen geheimen Daten ohne Autorisieren abrufen. Am Ende des Prozesses zeigt das Overlay (1.4.2) den erfolgreichen Login in die Webanwendung an und wird danach ausgeblendet. (2.8.2), whereby login keys or random starting values can be exchanged in an encrypted and secure manner between the authenticator client and the application client and the application client can be coupled. In the coupled state, the application extension (1.4.1) recognizes the known form (1.4.3) for logging in and automatically displays an overlay (1.4.2) for logging in using the method according to the invention instead of the form, see the illustration in the top center of Fig.8. If the user initializes the login, the overlay (1.4.2) in the bottom center of the illustration shows that the user should authorize access to the secret data of this web application using the authenticator client - this applies at least in the case that the application client is not set to the open state, because then it could also retrieve the sensitive secret data without authorization. At the end of the process, the overlay (1.4.2) shows the successful login to the web application and is then hidden.
In den unterschiedlichen Figuren sind hinsichtlich ihrer Funktion gleichwertige Teile stets mit denselben Bezugszeichen versehen, sodass diese in der Regel auch nur einmal beschrieben werden. In the different figures, parts that are equivalent in terms of their function are always provided with the same reference symbols, so that they are usually only described once.
Die gezeigten Ausführungsformen der Erfindung sind jeweils beispielhaft und nicht beschränkend zu verstehen. Die Erfindung kann auch auf hiervon abweichende Weise ausgeführt werden. Daher sind alle gleichwertigen strukturellen Änderungen, die durch Anwendung der Beschreibung der Erfindung vorgenommen werden, in den Umfang der Patentanmeldung einzubeziehen.
BEZUGSZEICHENLISTEThe embodiments of the invention shown are to be understood as examples and not as restrictive. The invention can also be carried out in a different manner. Therefore, all equivalent structural changes made by applying the description of the invention are to be included in the scope of the patent application. REFERENCE SYMBOL LIST
(1.1) Server (1.1) Server
(1.2) Authentifikatorclient (1.2) Authenticator client
(1.3) Applikationsclient (1.3) Application client
(1.4.1) Applikationsclienterweiterung (1.4.1) Application client extension
(1.4.2) Overlay (1.4.2) Overlay
(1.4.3) Formular (1.4.3) Form
(1.5) Push-Authentifikator (1.5) Push Authenticator
(1.6) Backup-Authentifikator (1.6) Backup Authenticator
(1.7) Profil (1.7) Profile
(2.1.1) Loginschlüsselpaar (2.1.1) Login key pair
(2.1.2) Öffentlicher Loginschlüssel (2.1.2) Public login key
(2.1.3) Privater Loginschlüssel (2.1.3) Private login key
(2.2.1) Identifikationsschlüsselpaar (2.2.1) Identification key pair
(2.2.2) Öffentlicher Identifikationsschlüssel(2.2.2) Public identification key
(2.2.3) Privater Identifikationsschlüssel(2.2.3) Private identification key
(2.2.4) Signierprozess (2.2.4) Signing process
(2.3.1) Codierungsschlüsselpaar (2.3.1) Encryption key pair
(2.3.2) Öffentlicher Codierungsschlüssel(2.3.2) Public encryption key
(2.3.3) Privater Codierungsschlüssel (2.3.3) Private encryption key
(2.4.1) Hochsicherheitsschlüsselpaar (2.4.1) High security key pair
(2.4.2) Öffentlicher Hochsicherheitsschlüssel(2.4.2) Public high-security key
(2.4.3) Privater Hochsicherheitsschlüssel(2.4.3) Private high-security key
(2.5.1) Profilschlüsselpaar (2.5.1) Profile key pair
(2.5.2) Öffentlicher Profilschlüssel (2.5.2) Public profile key
(2.5.3) Privater Profilschlüssel
(2.6.1) Profilhochsicherheitsschlüsselpaar(2.5.3) Private profile key (2.6.1) Profile high-security key pair
(2.6.2) Öffentlicher Profilhochsicherheitsschlüssel(2.6.2) Public profile high security key
(2.6.3) Privater Profilhochsicherheitsschlüssel(2.6.3) Private profile high security key
(2.7.1) Sitzungsschlüsselpaar (2.7.1) Session key pair
(2.7.2) Öffentlicher Sitzungsschlüssel (2.7.2) Public session key
(2.7.3) Privater Sitzungsschlüssel (2.7.3) Private session key
(2.7.4) Sitzung (2.7.4) Session
(2.7.5) Sitzungstoken (2.7.5) Session token
(2.8.1) Austauschschlüsselpaar (2.8.1) Replacement key pair
(2.8.2) Öffentlicher Austauschschlüssel (2.8.2) Public exchange key
(2.8.3) Privater Austauschschlüssel (2.8.3) Private exchange key
(2.8.4) Austausch-QR-Code (2.8.4) Exchange QR code
(3.1) Symmetrischer Schlüssel (3.1) Symmetric key
(3.2) Symmetrischer Hochsicherheitsschlüssel(3.2) Symmetric high-security key
(3.3.1) Tresor (3.3.1) Safe
(3.3.2) geheime Daten (3.3.2) secret data
(3.3.3) Sensibler Datenbereich (3.3.3) Sensitive data area
(3.3.4) Sensible Daten (3.3.4) Sensitive data
(3.3.5) Metadatenbereich (3.3.5) Metadata area
(3.3.6) Metadaten (3.3.6) Metadata
(3.3.7) Übergabe (3.3.7) Handover
(4.1) Zufälliger Authentifikatorstartwert (4.1) Random authenticator seed
(4.2.1) Zufälliger Profilstartwert (4.2.1) Random profile starting value
(4.2.2) Zufälliger Profilhochsicherheitsstartwert(4.2.2) Random profile high security seed
(4.3) Zufälliger Saltwert (4.3) Random salt value
(4.4) Zufälliger Profilsaltwert
(4.4) Random profile salt value
Claims
1. Computerimplementiertes Verfahren für ein gesichertes Management von geheimen Daten (3.3.2) auf einem Server (1.1) sowie die gesicherte Nutzung der geheimen Daten1. Computer-implemented procedure for secure management of secret data (3.3.2) on a server (1.1) and secure use of the secret data
(3.3.2), umfassend die Schritte: (3.3.2), comprising the steps:
501) Initialisieren von zumindest einem Push-Authentifikator (1.5) auf einem initialen Authentifikatorclient (1.2), umfassend das 501) Initializing at least one push authenticator (1.5) on an initial authenticator client (1.2), comprising the
Generieren von zumindest zwei zum Push-Authentifikator (1.5) gehörigen asymmetrischen Schlüsselpaaren, einem Loginschlüsselpaar (2.1.1) aus einem privaten Loginschlüssel (2.1.3) und einem öffentlichen Loginschlüssel (2.1.2) und einem Codierungsschlüsselpaar (2.3.1) aus einem privaten CodierungsschlüsselGenerating at least two asymmetric key pairs belonging to the push authenticator (1.5), a login key pair (2.1.1) from a private login key (2.1.3) and a public login key (2.1.2) and an encryption key pair (2.3.1) from a private encryption key
(2.3.3) und einem öffentlichen Codierungsschlüssel (2.3.2) und (2.3.3) and a public encryption key (2.3.2) and
Speichern des öffentlichen Loginschlüssels (2.1.2) und des öffentlichen Codierungsschlüssels (2.3.2) des Push-Authentifikators (1.5) auf dem Server (1.1), Storing the public login key (2.1.2) and the public encryption key (2.3.2) of the push authenticator (1.5) on the server (1.1),
502) Koppeln zumindest eines Applikationsclients (1.3) mit dem Server (1.1), umfassend das 502) coupling at least one application client (1.3) to the server (1.1), comprising the
Autorisieren durch den Authentifikatorclient (1.2) mittels verschlüsselten Austauschs des privaten Loginschlüssels (2.1.3) vom Push-Authentifikator (1.5) mit dem Applikationsclient (1.3), Authorization by the authenticator client (1.2) by means of encrypted exchange of the private login key (2.1.3) from the push authenticator (1.5) with the application client (1.3),
Authentifizieren des Applikationsclients (1.3) gegen den Server (1.1) mittels des Loginschlüsselpaars (2.1.1) und das Erstellen einer Sitzung (2.7.4) für den Applikationsclient (1.3) auf dem Server (1.1) durch das Hinterlegen eines öffentlichen Sitzungsschlüssels (2.7.2) eines vom Applikationsclient (1.3) generierten Sitzungsschlüsselpaars (2.7.1), Authenticating the application client (1.3) against the server (1.1) using the login key pair (2.1.1) and creating a session (2.7.4) for the application client (1.3) on the server (1.1) by depositing a public session key (2.7.2) of a session key pair (2.7.1) generated by the application client (1.3),
503) Speichern bzw. Abrufen von geheimen Daten (3.3.2) durch den Applikationsclient503) Storage or retrieval of secret data (3.3.2) by the application client
(1.3) auf bzw. von einem auf dem Server (1.1) befindlichen Tresor (3.3.1), umfassend das
Verschlüsseln des Tresors (3.3.1) beim Speichern sowie Entschlüsseln des Tresors (3.3.1) beim Abrufen, wobei das Verschlüsseln oder Entschlüsseln durch einen auf dem Server (1.1) gespeicherten symmetrischen Schlüssel (3.1) erreicht wird, (1.3) to or from a safe (3.3.1) located on the server (1.1), comprising the Encrypting the vault (3.3.1) when storing it and decrypting the vault (3.3.1) when retrieving it, whereby the encryption or decryption is achieved by a symmetric key (3.1) stored on the server (1.1),
Verschlüsseln des symmetrischen Schlüssels (3.1) mit dem öffentlichen Codierungsschlüssel (2.3.2) des Push-Authentifikators (1.5) und Encrypting the symmetric key (3.1) with the public encryption key (2.3.2) of the push authenticator (1.5) and
Speichern bzw. Abrufen mittels Autorisierens eines verschlüsselten Abrufens des privaten Codierungsschlüssels (2.3.3) des Push-Authentifikators (1.5) durch den Authentifikatorclient (1.3) zum Entschlüsseln des symmetrischen Schlüssels (3.1), dadurch gekennzeichnet dass zumindest ein Profil (1.7) als Indirektionsebene zusätzlich zu dem Push-Authentifikator (1.5) eingesetzt wird, wobei der symmetrische Schlüssel (3.1) durch einen öffentlichen Profilschlüssel (2.5.2) eines Profilschlüsselpaars (2.5.1) des Profils (1.7) verschlüsselt wird, wobei das Profil (1.7) durch den öffentlichen Codierungsschlüssel (2.3.2) des Push- Authentifikators (1.5) verschlüsselt wird. Storing or retrieving by authorizing an encrypted retrieval of the private encryption key (2.3.3) of the push authenticator (1.5) by the authenticator client (1.3) for decrypting the symmetric key (3.1), characterized in that at least one profile (1.7) is used as an indirection level in addition to the push authenticator (1.5), wherein the symmetric key (3.1) is encrypted by a public profile key (2.5.2) of a profile key pair (2.5.1) of the profile (1.7), wherein the profile (1.7) is encrypted by the public encryption key (2.3.2) of the push authenticator (1.5).
2. Verfahren nach Anspruch 1, wobei der symmetrische Schlüssel (3.1) durch einen oder mehrere verschiedene öffentliche Profilschlüssel (2.5.2) oder öffentliche Codierungsschlüssel (2.3.2) von mehreren Profilen (1.7) oder Push-Authentifikatoren (1.5) verschlüsselt wird. 2. The method according to claim 1, wherein the symmetric key (3.1) is encrypted by one or more different public profile keys (2.5.2) or public encryption keys (2.3.2) of multiple profiles (1.7) or push authenticators (1.5).
3. Verfahren nach einem der Ansprüche 1 bis 2, wobei zwei Profile sequenziell eingesetzt wobei werden, sodass zumindest ein erstes Profil (1.7) direkt durch den öffentlichen Profilschlüssel (2.5.2) des Profilschlüsselpaars (2.5.1) zumindest eines zweiten Profils (1.7) verschlüsselt wird. 3. Method according to one of claims 1 to 2, wherein two profiles are used sequentially so that at least a first profile (1.7) is encrypted directly by the public profile key (2.5.2) of the profile key pair (2.5.1) of at least a second profile (1.7).
4. Verfahren nach Anspruch 3, wobei das erste Profil (1.7) sämtliche zu einer Organisation gehörigen Tresore (3.3.1) verschlüsselt und wobei das zumindest zweite Profil (1.7) von den Push-Authentifikatoren (1.5) eines Administrators der Organisation verwaltet wird. 4. The method according to claim 3, wherein the first profile (1.7) encrypts all vaults (3.3.1) belonging to an organization and wherein the at least second profile (1.7) is managed by the push authenticators (1.5) of an administrator of the organization.
5. Verfahren nach Anspruch 4, wobei der Administrator der Organisation in der Lage ist, sämtliche Verschlüsselungen entsprechend Verfahrensschritt S03) seiner Organisation zu löschen, durch Platzhalter zu ersetzen sowie neu zu generieren.
5. The method according to claim 4, wherein the administrator of the organization is able to delete all encryptions according to method step S03) of his organization, to replace them with placeholders and to generate new ones.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Tresor (3.3.1) einen sensiblen Datenbereich (3.3.3) sowie einen Metadatenbereich (3.3.5) umfasst, wobei der sensible Datenbereich (3.3.3) zusätzlich durch einen auf dem Server gespeicherten symmetrischen Hochsicherheitsschlüssel (3.2) verschlüsselt ist, wobei der symmetrische Hochsicherheitsschlüssel (3.2) mittels eines öffentlichen Hochsicherheitsschlüssels (2.4.2) eines Hochsicherheitsschlüsselpaars (2.4.1) eines Push-Authentifikators (1.5) oder eines öffentlichen Profilhochsicherheitsschlüssels6. Method according to one of claims 1 to 5, wherein the safe (3.3.1) comprises a sensitive data area (3.3.3) and a metadata area (3.3.5), wherein the sensitive data area (3.3.3) is additionally encrypted by a symmetric high-security key (3.2) stored on the server, wherein the symmetric high-security key (3.2) is encrypted by means of a public high-security key (2.4.2) of a high-security key pair (2.4.1) of a push authenticator (1.5) or a public profile high-security key
(2.6.2) eines Profilhochsicherheitsschlüsselpaars (2.6.1) eines Profils (1.7) verschlüsselt wird. (2.6.2) of a profile high security key pair (2.6.1) of a profile (1.7).
7. Verfahren nach Anspruch 6, wobei das Hochsicherheitsschlüsselpaar (2.4.1), das Profilhochsicherheitsschlüsselpaars (2.6.1) und das Loginschlüsselpaar (2.1.1) nicht auf einem dauerhaften Speicher von Clients, das heißt Authentifikatorclients (1.2) oder Applikationsclients (1.3), gespeichert werden kann. 7. The method according to claim 6, wherein the high security key pair (2.4.1), the profile high security key pair (2.6.1) and the login key pair (2.1.1) cannot be stored on a permanent memory of clients, i.e. authenticator clients (1.2) or application clients (1.3).
8. Verfahren nach einem der Ansprüche 6 bis 7, wobei ein gekoppelter Applikationsclient (1.3) in einen geschlossenen Zustand versetzt wird, in welchem dieser Applikationsclient (1.3) keinen Zugriff auf den privaten Hochsicherheitsschlüssel (2.4.3) erhält. 8. Method according to one of claims 6 to 7, wherein a coupled application client (1.3) is placed in a closed state in which this application client (1.3) does not receive access to the private high-security key (2.4.3).
9. Verfahren nach einem der Ansprüche 6 bis 8, wobei ein gekoppelter Applikationsclient (1.3) in einen offenen Zustand versetzt wird, in welchem der Applikationsclient (1.3) Zugriff auf den privaten Hochsicherheitsschlüssel (2.4.3) erhält. 9. The method according to any one of claims 6 to 8, wherein a coupled application client (1.3) is placed in an open state in which the application client (1.3) receives access to the private high-security key (2.4.3).
10. Verfahren nach einem der Ansprüche 1 bis 9, wobei die Integrität der auf dem Server (1.1) gespeicherten öffentlichen Codierungsschlüssel (2.3.2), Hochsicherheitsschlüssel10. Method according to one of claims 1 to 9, wherein the integrity of the public encryption keys (2.3.2), high security keys
(2.4.2), Profilschlüssel (2.5.2), Profilhochsicherheitsschlüssel (2.6.2) sowie Sitzungsschlüssel (2.7.2) durch einen Signierprozess (2.2.4) mittels eines privaten Identifikationsschlüssels (2.2.3) eines Identifikationsschlüsselpaars (2.2.1) des zugehörigen Push-Authentifikators (1.5) oder Profils (1.7) sichergestellt wird. (2.4.2), profile key (2.5.2), profile high-security key (2.6.2) and session key (2.7.2) is ensured by a signing process (2.2.4) using a private identification key (2.2.3) of an identification key pair (2.2.1) of the associated push authenticator (1.5) or profile (1.7).
11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die Schlüsselpaare (2.1.1, 2.2.1, 2.3.1, 2.4.1 , 2.5.1 , 2.6.1) eines Push-Authentifikators (1.5) oder eines Profils (1.7) aus zumindest einem zufälligen Authentifikatorstartwert (4.1) bzw. Profilstartwert (4.2.1, 4.2.2) abgeleitet werden.
11. The method according to one of claims 1 to 10, wherein the key pairs (2.1.1, 2.2.1, 2.3.1, 2.4.1, 2.5.1, 2.6.1) of a push authenticator (1.5) or a profile (1.7) are derived from at least one random authenticator start value (4.1) or profile start value (4.2.1, 4.2.2).
12. Verfahren nach Anspruch 11 , wobei zum Ableiten der Schlüsselpaare (2.1.1 , 2.2.1 , 2.3.1, 2.4.1 , 2.5.1 , 2.6.1) eines Push-Authentifikators (1.5) oder eines Profils (1.7) zusätzlich ein zufälliger Saltwert (4.3) oder Profilsaltwert (4.4) verwendet und für den Push-Authentifikator (1.5) bzw. das Profil (1.7) auf dem Server (1.1) gespeichert wird. 12. The method according to claim 11, wherein to derive the key pairs (2.1.1, 2.2.1, 2.3.1, 2.4.1, 2.5.1, 2.6.1) of a push authenticator (1.5) or a profile (1.7), a random salt value (4.3) or profile salt value (4.4) is additionally used and stored on the server (1.1) for the push authenticator (1.5) or the profile (1.7).
13. Verfahren nach einem der Ansprüche 1 bis 12, wobei das Verfahren eine Recovery- Funktion umfasst, welche ein Nutzen eines neuen Authentifikatorclients (1.2) und aller bisherigen geheimen Daten (3.3.2) ohne den initialen Authentifikatorclient (1.2) ermöglicht. 13. The method according to any one of claims 1 to 12, wherein the method comprises a recovery function which enables the use of a new authenticator client (1.2) and all previous secret data (3.3.2) without the initial authenticator client (1.2).
14. Verfahren nach einem der Ansprüche 1 bis 13, wobei zusätzlich zu dem Applikationsclient (1.3) eine zugehörige Applikationsclienterweiterung (1.4.1) gekoppelt wird, welche Metadaten (3.3.6) der Sitzung (2.7.4) speichert und abruft sowie Overlays (1.4.2) für gespeicherte geheime Daten (3.3.2) auf Internetseiten einblendet. 14. Method according to one of claims 1 to 13, wherein in addition to the application client (1.3) an associated application client extension (1.4.1) is coupled, which stores and retrieves metadata (3.3.6) of the session (2.7.4) and displays overlays (1.4.2) for stored secret data (3.3.2) on Internet pages.
15. Verfahren nach Anspruch 14, wobei die Applikationserweiterung (1.4.1) verschiedene Formulare (1.4.3) einer Internetseite automatisiert erkennt und auf Wunsch ausfüllen kann. 15. The method according to claim 14, wherein the application extension (1.4.1) automatically recognizes various forms (1.4.3) of a website and can fill them out if desired.
16. Verfahren nach einem der Ansprüche 1 bis 15, wobei das Autorisieren des Applikationsclients (1.3) sowie das Speichern und Abrufen von geheimen Daten (3.3.2) durch den Applikationsclient (1.3) mithilfe einer einfachen Wischgeste auf einem Smartphone als Authentifikatorsclient (1.2) durchgeführt werden. 16. The method according to any one of claims 1 to 15, wherein the authorization of the application client (1.3) as well as the storage and retrieval of secret data (3.3.2) by the application client (1.3) are carried out by means of a simple swipe gesture on a smartphone as an authenticator client (1.2).
17. Verfahren nach einem der Ansprüche 1 bis 16, wobei eine Sitzung (2.7.4) einen vom Server (1.1) generierten Sitzungstoken (2.7.5) umfasst, der es zumindest dem zur Sitzung (2.7.4) gehörenden Client erlaubt, Anfragen an den Server (1.1) zu senden. 17. The method according to any one of claims 1 to 16, wherein a session (2.7.4) comprises a session token (2.7.5) generated by the server (1.1), which allows at least the client belonging to the session (2.7.4) to send requests to the server (1.1).
18. Verfahren nach einem der Ansprüche 1 bis 17, wobei das Koppeln des Applikationsclients in Schritt S02) mittels Eingebens eines von dem Applikationsclient (1.3) erstellten und ausgegebenen öffentlichen Austauschschlüssels (2.8.2) eines Austauschschlüsselpaars (2.8.1) in den Authentifikatorclient (1.2) initialisiert wird und wobei der private Loginschlüssel (2.1.3) beim Austausch vom Authentifikatorclient (1.2) zum Applikationsclient (1.3) mit dem öffentlichen Austauschschlüssel (2.8.2) verschlüsselt wird.
18. The method according to one of claims 1 to 17, wherein the coupling of the application client in step S02) is initialized by entering a public exchange key (2.8.2) of an exchange key pair (2.8.1) created and issued by the application client (1.3) into the authenticator client (1.2), and wherein the private login key (2.1.3) is encrypted with the public exchange key (2.8.2) during the exchange from the authenticator client (1.2) to the application client (1.3).
19. Verfahren nach Anspruch 18, wobei der öffentliche Austauschschlüssel (2.8.2) in einem vom Applikationsclient (1.3) generierten und angezeigten Austausch-QR-Code (2.8.4) enthalten ist, welcher vom Authentifikatorclient (1.2) erfasst wird. 19. The method according to claim 18, wherein the public exchange key (2.8.2) is contained in an exchange QR code (2.8.4) generated and displayed by the application client (1.3), which is detected by the authenticator client (1.2).
20. Server (1.1), umfassend zumindest eine Recheneinheit zur Ausführung von Computerprogrammen, Netzwerkanschlüsse zum Austausch von Daten zumindest mit den zum Verfahren nach einem der Ansprüche 1 bis 19 gehörenden Clients in einem Netzwerk, sowie zumindest ein Speichermedium zum Speichern von zumindest Computerprogrammen, Schlüsseln, Werten, Sitzungen und Tresoren. 20. Server (1.1), comprising at least one computing unit for executing computer programs, network connections for exchanging data at least with the clients belonging to the method according to one of claims 1 to 19 in a network, and at least one storage medium for storing at least computer programs, keys, values, sessions and safes.
21. Computerprogrammprodukt A, umfassend Befehle, die bei der Ausführung durch einen Authentifikatorclient diesen dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 19 auszuführen. 21. Computer program product A, comprising instructions which, when executed by an authenticator client, cause the authenticator client to carry out the method according to one of claims 1 to 19.
22. Computerprogrammprodukt B, umfassend Befehle, die bei der Ausführung durch einen Applikationsclient diesen dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 19 auszuführen. 22. Computer program product B, comprising instructions which, when executed by an application client, cause the application client to carry out the method according to one of claims 1 to 19.
23. Computerprogrammprodukt C, umfassend Befehle, die bei der Ausführung durch den Server diesen dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 19 auszuführen. 23. Computer program product C, comprising instructions which, when executed by the server, cause the server to carry out the method according to one of claims 1 to 19.
24. System, umfassend einen Server (1.1) nach Anspruch 20, ein Computerprogrammprodukt A nach Anspruch 21, ein Computerprogrammprodukt B nach Anspruch 22 und ein Computerprogrammprodukt C nach Anspruch 23.
24. System comprising a server (1.1) according to claim 20, a computer program product A according to claim 21, a computer program product B according to claim 22 and a computer program product C according to claim 23.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
LU103094A LU103094B1 (en) | 2023-03-29 | 2023-03-29 | INNOVATIVE SERVER-BASED METHOD FOR MANAGING SECRET DATA |
LULU103094 | 2023-03-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024200764A1 true WO2024200764A1 (en) | 2024-10-03 |
Family
ID=86226588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2024/058675 WO2024200764A1 (en) | 2023-03-29 | 2024-03-28 | Innovative server-based method for management of confidential data |
Country Status (2)
Country | Link |
---|---|
LU (1) | LU103094B1 (en) |
WO (1) | WO2024200764A1 (en) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080031447A1 (en) | 2006-08-04 | 2008-02-07 | Frank Geshwind | Systems and methods for aggregation of access to network products and services |
US20100169368A1 (en) * | 2004-12-22 | 2010-07-01 | Neill Richard W | System and associated methods for remotely enabling features |
US8589442B2 (en) | 2006-03-22 | 2013-11-19 | Alibaba Group Holding Limited | Intersystem single sign-on |
US8904180B2 (en) | 2001-03-09 | 2014-12-02 | Ca, Inc. | Method and apparatus for cryptographic key storage wherein key servers are authenticated by possession and secure distribution of stored keys |
US9003015B2 (en) * | 2010-12-21 | 2015-04-07 | Sitecore A/S | Method and a system for managing a website using profile key patterns |
US9590959B2 (en) | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
US9727715B2 (en) | 2014-09-07 | 2017-08-08 | Michael Boodaei | Authentication method and system using password as the authentication key |
US9948648B1 (en) | 2013-03-14 | 2018-04-17 | Dell Software Inc. | System and method for enforcing access control to publicly-accessible web applications |
EP2332114B1 (en) | 2008-08-08 | 2018-08-22 | Microsoft Technology Licensing, LLC | Form filling with digital identities, and automatic password generation |
US10341334B2 (en) | 2007-06-22 | 2019-07-02 | Google Llc | Web based system that allows users to log into websites without entering username and password information |
US10491588B2 (en) | 2017-03-23 | 2019-11-26 | Baldev Krishan | Local and remote access apparatus and system for password storage and management |
US10893045B2 (en) | 2013-08-29 | 2021-01-12 | Liberty Labs Limited | System for accessing data from multiple devices |
EP3420677B1 (en) | 2016-02-26 | 2021-08-11 | CA, Inc. | System and method for service assisted mobile pairing of password-less computer login |
US20220209955A1 (en) | 2020-12-20 | 2022-06-30 | Secret Double Octopus Ltd | System and method for performing a secure online and offline login process |
-
2023
- 2023-03-29 LU LU103094A patent/LU103094B1/en active IP Right Grant
-
2024
- 2024-03-28 WO PCT/EP2024/058675 patent/WO2024200764A1/en unknown
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904180B2 (en) | 2001-03-09 | 2014-12-02 | Ca, Inc. | Method and apparatus for cryptographic key storage wherein key servers are authenticated by possession and secure distribution of stored keys |
US20100169368A1 (en) * | 2004-12-22 | 2010-07-01 | Neill Richard W | System and associated methods for remotely enabling features |
US8589442B2 (en) | 2006-03-22 | 2013-11-19 | Alibaba Group Holding Limited | Intersystem single sign-on |
US20080031447A1 (en) | 2006-08-04 | 2008-02-07 | Frank Geshwind | Systems and methods for aggregation of access to network products and services |
US10341334B2 (en) | 2007-06-22 | 2019-07-02 | Google Llc | Web based system that allows users to log into websites without entering username and password information |
EP2332114B1 (en) | 2008-08-08 | 2018-08-22 | Microsoft Technology Licensing, LLC | Form filling with digital identities, and automatic password generation |
US9003015B2 (en) * | 2010-12-21 | 2015-04-07 | Sitecore A/S | Method and a system for managing a website using profile key patterns |
US9590959B2 (en) | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
US9948648B1 (en) | 2013-03-14 | 2018-04-17 | Dell Software Inc. | System and method for enforcing access control to publicly-accessible web applications |
US10893045B2 (en) | 2013-08-29 | 2021-01-12 | Liberty Labs Limited | System for accessing data from multiple devices |
US9727715B2 (en) | 2014-09-07 | 2017-08-08 | Michael Boodaei | Authentication method and system using password as the authentication key |
EP3420677B1 (en) | 2016-02-26 | 2021-08-11 | CA, Inc. | System and method for service assisted mobile pairing of password-less computer login |
US10491588B2 (en) | 2017-03-23 | 2019-11-26 | Baldev Krishan | Local and remote access apparatus and system for password storage and management |
US20220209955A1 (en) | 2020-12-20 | 2022-06-30 | Secret Double Octopus Ltd | System and method for performing a secure online and offline login process |
Non-Patent Citations (1)
Title |
---|
HEYLOGIN GMBH: "heylogin White Paper", 6 April 2022 (2022-04-06), pages 1 - 16, XP093084091, Retrieved from the Internet <URL:https://web.archive.org/web/20220528040652/https://www.heylogin.com/files/heylogin-security-whitepaper-en-v1-4.pdf> [retrieved on 20230914] * |
Also Published As
Publication number | Publication date |
---|---|
LU103094B1 (en) | 2024-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2020797B1 (en) | Client-server Opaque token passing apparatus and method | |
DE60314402T2 (en) | SYSTEM AND METHOD FOR STORING AND RECEIVING CRYPTOGRAPHIC SECRETS FROM DIFFERENT CUSTOM END USERS IN A NETWORK | |
US8059818B2 (en) | Accessing protected data on network storage from multiple devices | |
US11316685B1 (en) | Systems and methods for encrypted content management | |
DE102009001718B4 (en) | Method for providing cryptographic key pairs | |
EP1777907B1 (en) | Method and devices for carrying out cryptographic operations in a client-server network | |
DE112015002927B4 (en) | Password-based secret encryption key generation and management | |
DE112008001436T5 (en) | Secure communication | |
EP2544117A1 (en) | Method and system for sharing or storing personal data without loss of privacy | |
EP2289222B1 (en) | Method, authentication server and service server for authenticating a client | |
DE102017223898A1 (en) | Safely store and access files with a web application | |
DE212015000047U1 (en) | Secure login without passwords | |
WO2014086654A1 (en) | Method for setting up a secure connection between clients | |
CN110519222B (en) | External network access identity authentication method and system based on disposable asymmetric key pair and key fob | |
CN112989320B (en) | User state management system and method for password equipment | |
DE102017121648B3 (en) | METHOD FOR REGISTERING A USER AT A TERMINAL DEVICE | |
JP2007104118A (en) | Protection method of secret information and communication apparatus | |
DE102017006200A1 (en) | Method, hardware and system for dynamic data transmission to a blockchain computer network for storing personal data around this part again block by block as the basis for end to end encryption used to dynamically update the data collection process via the data transmission module in real time from sensor units. The block modules on the blockchain database system are infinitely expandable. | |
LU103094B1 (en) | INNOVATIVE SERVER-BASED METHOD FOR MANAGING SECRET DATA | |
DE102014114432B4 (en) | A method, apparatus and computer program for controlling access to a service within a network | |
EP3355548A1 (en) | Method and system for user authentication | |
KR100842014B1 (en) | Accessing protected data on network storage from multiple devices | |
EP2591583B1 (en) | Method for secure communication and encryption for internet communication |