DE102016002549A1 - Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern - Google Patents

Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern Download PDF

Info

Publication number
DE102016002549A1
DE102016002549A1 DE102016002549.2A DE102016002549A DE102016002549A1 DE 102016002549 A1 DE102016002549 A1 DE 102016002549A1 DE 102016002549 A DE102016002549 A DE 102016002549A DE 102016002549 A1 DE102016002549 A1 DE 102016002549A1
Authority
DE
Germany
Prior art keywords
key
timer
time
der
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102016002549.2A
Other languages
English (en)
Inventor
Anmelder Gleich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of DE102016002549A1 publication Critical patent/DE102016002549A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Abstract

Ein immer größerer Teil unserer privaten/intimen Daten ist online. Fast monatlich gibt es neue Berichte von Hacker die millionen Anmeldedaten/Passwörter erbeuten konnten. Es steht fest: Unsere Daten sind online nicht sicher. Denn: Egal wie gut ein Versteck/eine Verschlüsselung auch ist, – irgendwo muss stehen wie etwas wieder zu finden ist, irgendwo muss ein Schlüssel dazu sein. Im vorliegenden Verfahren werden Passwörter nur als verkürzter Einweg-Hashwert gespeichert und sind somit unmöglich wiederherzustellen. Zudem verhindert das System dass Anmeldedaten jemals wieder dechiffriert werden. Weiterhin werden Daten mehrmals mit varianten und teils nur kurzlebigen Schlüsseln chiffriert, die nicht gespeichert werden, sondern mit einem Schlüssel chiffriert werden der ebenfalls nicht gespeichert wird. Dieser ergibt sich aus einer zukünftigen Systemzeit welche nur einem unlesbaren Timer bekannt ist der dann die Dechiffrierung initiiert. Ferner werden diese Schlüssel selbst bei deren Verwendung hochwirksam versteckt und Zeiger darauf nur in Prozessorregistern geführt die von aussen unlesbar sind. Eine optionale Hardwareerweiterung schließt jegliche Manipulationen aus. Die Verschlüsselung ist so umfangreich und variant dass sie unknackbar ist und die dazugehörigen Schlüssel sind nie greifbar. Die Erbeutung so geschützter Daten, vor allem Anmeldedaten, ist unmöglich.

Description

  • In den verschiedensten IT-Anwendungen und vor allem Internet-Webseiten können oder müssen sich Benutzer registrieren. Hierzu wird zumeist ein Benutzername (oft die eMail-Adresse) in Kombination mit einem Passwort zur Authentifizierung angegeben. Mit dieser Kombination kann der Benutzer sich später jederzeit wieder einloggen um Zugriff auf seine persönlichen Einstellungen, sein Konto oder die ihm (meist durch vorangegangene oder nachfolgende Bezahlung) zugewiesenen Dienste zu erlangen. Milliarden Menschen haben zum Teil mehrere sogenannte Accounts auf verschiedensten Websites. Allen voran Online-Shop's, eBay etc, Banken, Reiseportalen, App-Anbietern usw. Die jeweiligen (Website-)Server/Anwendungen speichern diese Anmeldedaten/Zugangsdaten (Benutzername und Kennwort) zumeist in Datenbanken entweder in Klartext oder verschlüsselt. Obwohl der Zugriff auf diese Datenbanken durch verschiedene Verfahren geschützt wird, häufen sich in den letzten Monaten erfolgreiche Hacker-Attacken in denen massenweise solche Anmeldedaten erbeutet werden. Aufgrund der einfachen Verschlüsselung und der Masse an erbeuteten Daten lassen sich diese Daten mit etwas Rechenleistung wieder entschlüsseln. In vielen Fällen wird der dazu notwendige Schlüssel ebenfalls erbeutet. Manchmal werden die Daten jedoch auch unverschlüsselt erbeutet, weil die Server-Eigner nicht mit dem Gelingen eines solchen Hacker-Angriffs gerechnet haben. Der resultierende Schaden ist nicht nur für das Vertrauen und Image der jeweiligen Website enorm; Es birgt für die Anwender ein hohes Risiko des Missbrauchs dieser Daten. Da 95% der Anwender diese Anmeldedaten in selber Form mehrfach, d. h. bei mehreren Anwendungen oder Webseiten, benutzen, geht von der Erbeutung solcher Anmeldedaten eine unbezifferbare Bedrohung aus. So kann beispielsweise ein auf einer einfach geschützten Website erbeutetes Passwort genutzt werden um im Namen des Anwenders Einkäufe auf div. Online-Shops zu machen oder Zugriff auf eine vom Anwender genutzte Cloud (Online-Speicher) zu erlangen und damit zu intimen Daten und Bildern oder gar der Zugang zu weitaus sensibleren Anwendungsbereichen wie dem Online-Banking erlangt werden. Dies ist ein massives und teilweise noch stark unterschätztes Risiko unserer Zeit in der sich ein zunehmender Bereich unseres Lebens online manifestiert.
  • Bei der vorliegenden Erfindung handelt es sich um ein mehrschichtiges Verfahren, welches dieses Problem gänzlich beseitigt.
    • 1. Es werden die bei der Registrierung (erstmaligen Anmeldung) eingegebenen Passwörter generell NICHT mehr gespeichert. Vielmehr wird daraus ein deutlich (mind. um 37,5%) verkürzter HASH-WERT gespeichert der sich aus dem eingegebenen Passwort per kryptografischen Einweg-Hashings (OWHF) errechnet – jedoch selbst mit dem zughörigen Algorithmus nicht rekonstruiert werden kann. (OWHF bedeutet One-Way Hash Function und steht für die Erstellung eines Hash-Wertes aus dem selbst bei Bekanntheit des benutzten Verfahrens/Algorithmus/Schlüssels eine Wiederherstellung des Ausgangswertes (Eingabewert) unmöglich ist. Also eine Einweg-Hashfunktion.) Somit ist schon mal sichergestellt, dass erbeutete Passwörter nicht in anderen Anwednungen/Websites verwendet werden können oder dass daraus kein Klartext rekonstruiert werden kann der es dem Angreifer erlaubt das Konzept das ein Anwender gebraucht um Passwörter zu generieren zu erkennen. Und zwar selbst dann nicht falls es dem Angreifer gelingen könnte, alle nachfolgenden Verschlüsselungen zu brechen und das Hashing zu reversieren. Hat der Ausgangswert eine Länge von weniger als 16 Zeichen wird er (ggf. mehrfach) mit sich selbst erweitert, bis eine Länge von mindestens 16 Zeichen vorliegt. Ein Hashing wie CRC-64 sollte ausreichen um die Häufigkeit von Kollisionen vernachlässigbar zu machen. An sich sind solche aber auch nicht problematisch da eine Konto-Verwechslung aufgrund des nicht gehashten (oder zumindest nicht verkürzt gehashten) anwendungseinmaligen Anmeldenamens ausgeschlossen ist und es gibt ohnehin eine große Anzahl an Passwörtern die von Millionen Anwendern gleichermaßen benutzt werden.
    • 2. Da Hash-Verschlüsselung aber durchaus zu knacken* ist, muss ein zusätzlicher (z. B. 192-Bit-) Schlüssel (MASTER-KEV) die Hash-Werte oder auch weitere sensible Daten (die jedoch im Gegensatz zum Passwort komplett wiederherstellbar sein müssen – wie z. B. der Anmeldename – und daher nicht derart gehasht werden können) verschlüsseln. Hierfür würde sich aus heutiger Sicht eine AES-Verschlüsselung anbieten; also z. B. AES-192 mit höchstmöglicher Rundenzahl, mindestens 12, besser 16. Das vorliegende Schutzverfahren ist aber grundsätzlich vom darin verwendeten kryptografischen Verschlüsselungsverfahren selbst unabhängig. Dieses kann mit fortschreitender Zeit und Technik angepasst werden so dass hier jeweils ein solches Verwendung findet dass zu der jeweiligen Zeit als sicher (und zukunftssicher) gilt. Selbiges gilt für die Schlüsselbreite. Je nach Sensibilität der Daten kann die Mindestgröße von 128 Bit z. B. auf 192, 256, 512, 1024 Bit oder weiter erhöht werden. Letztlich ist es nur eine Frage der Rechenpower. Dieser Master-Key muss im Gegensatz zu dem Hash-Algorithmus individuell zu der jeweiligen Anwendung sein. Er kann z. B. beim Installationsvorgang aus einer Programm-Seriennummer oder aus den Hardware-Daten des PC's (inkl. div. Seriennummern und Prozessor-ID's) oder aus einer z. B. 58-stelligen Zufallszahl evtl. in Kombination mit einem Unique-Key der in den Programmcode implementiert wurde generiert werden. Es wäre denkbar, dass sich die Anwendung oder der Anwender diesen bei der Registrierung bzw. nach der Installation vom Hersteller bzw. dessen Registrierungsserver zuweisen lässt. Auch eine Generierung aus einem Hardwarebaustein (Hardwareerweiterung It. Anspruch 8) zur Erzeugung von Schlüsseln/Zufallszahlen oder mit Hilfe von zufälligen Mausbewegungen des Anwenders wäre praktikabel. In der Praxis wird es wohl eine Kombination aus diesen Methoden sein. Zuätzlich muss dieser Master-Key an einer Stelle untergebracht sein, die nur der zuständigen Chiffrierungssoftware zugänglich ist. Dies könnte ein versteckter Bereich/Unterordner sein zu dem nicht einmal der Administrator und das System selbst Zugriffsrechte hat, aber das wäre nicht sonderlich sicher. Da der Master-Key dem Anwender bekannt sein oder auf einem Notfallmedium (verschlüsselt) gesichert sein muss um z. B. für den Fall eines Hardware-Ausfalls das komplette System oder ein Backup wieder herstellen zu können, wäre es auch praktikabel, wenn dieser Master-Key nach jedem Systemneustart vom Anwender eingegeben wird und er somit garnicht auf Festplatte etc. gespeichert ist. Kann bei Systemen z. B. aufgrund Redundanz ein Hardware-Ausfall/Absturz ausgeschlossen werden, kann auf die Mitteilung des Master-Key sogar gänzlich verzichtet werden. (Siehe auch Ausführungen zum Thema Backup) Der Master-Key ist dann nur im Arbeitsspeicher abgelegt und dort entsprechend versteckt wie die weiteren Ausführungen beschreiben. Der Vorteil liegt darin, dass ein Missbrauch durch Menschen die Zugriff zum System haben, ausgeschlossen ist. *) „knacken” bedeute hier – da wir ein verkürztes Einweg-Hashing anwenden – nicht die Wiederherstellung des Quellwertes sondern die Erzeugung eines Pseudo-Quellwertes der unter dem selben Hashing (selbes Verfahren, selber Algorithmus, selber Schlüssel) zu dem selben Ergebnis (Hash-Wert) führt und somit eine Prüfung positiv durchläuft. Aber auch eine zusätzliche Verschlüsselung bietet vor allem auf Dauer keine 100%-ige Sicherheit. Wie sich in der Vergangenheit immer wieder gezeigt hat, werden als sicher geltende Systeme nach oft nur kurzer Zeit doch geknackt. Zwar kann auch damit das ursprüngliche Passwort aufgrund des in 1. genannten verkürzten Hashings nicht sicher wiederhergestellt werden (womit die Gefahr für den Anwender faktisch auf das attakierte Portal begrenzt ist), doch ein Angreifer könnte somit unberechtigten Zugriff auf die angegriffene Website/Anwendung haben. Um dieses Rest-Risiko weiter zu minimieren, folgen die nächsten Schritte.
    • 3. Der unter 2. verwendete Master-Key wird, bevor er zur Verschlüsselung von Passwörtern (Hash-Wert aus 1.) eingesetzt wird, ARITHMETISCH BEARBEITET. Als Basis dafür dient u. a. der sog. Unique-Key (die einmalige Ordnungszahl) des jeweiligen Datenbanksatzes, eine Datenfeldnummer sowie eventuell anderweitige Daten dieses Datensatzes (z. B. Anmeldename, Klarname oder Geburtsdatum) bzw. ein stark reduzierter Hashwert davon. Gut geeignet ist z. B. der Ausgangswert des Anmeldenamens, der als wichtigstes Such-Datenfeld mit dem unbearbeiteten Master-Key (und Zeitschlüssel, siehe 4.) verschlüsselt wird da ansonsten eine Suchanfrage an die Datenbank unmöglich oder zumindest sehr zeitaufwendig wäre. Abgesehen vom Einbringen der Datenfeldnummer wird für jedes zu verschlüsselnde Datenfeld eine etwas andere Funktion zur Bearbeitungs des Master-Key angewendet und die Daten jeweils anderer Datenfelder einbezogen sodass Manipulationen durch Tausch der Datenfelder zu keiner gültigen Dechiffrierung führen. Aufgrund der arithmetischen Bearbeitung ist eine Mustererkennung-Kryptoanlyse für diese Daten auszuschließen. Man könnte die Sicherheit nochmals steigern in dem man für nur zweifach verschlüsselte (suchbaren) Datenfelder einen anderen Master-Key verwendet als für die Verschlüsselung der Passwörter oder ähnlich sensibler Datenfelder, doch wir reden hier von ein paar hundert Jahren Analysezeit mehr oder weniger, nach heutigen Stand der Technik. Als arithmetische Berechnung kann beispielsweise bei einem 128-Bit-Schlüssel eine einfache Multiplikation des Unique-Key's mit dem zweiten Wort des Master-Keys multipliziert mit 12, eine Multiplikation der Datenfeldnummer mit dem siebten Wort und eine Addition des fünften Wortes mit dem stark (auf 16 Bit) reduzierten Hashwert des Anmeldenamens als ausreichend betrachtet werden. Aber hier können auch viele weitere Kombinationen und Methoden Anwendung finden, wie z. B. eine Bit-Verschiebung oder eine weitere Verschlüsselung; wobei letzteres die Handhabung unnötig verzögert. Die dafür verwendete Funktion/Formel sollte möglichst anwendungsindividuell sein. D. h. sie wird entweder bei der Installation (zufällig) vom Installationsprogramm erzeugt oder vom Anwender vorgegeben. Diese Funktion muss dem Anwender bekannt sein oder auf einem Notfallmedium (verschlüsselt) gesichert sein, falls die Möglichkeit von Hardware-Ausfällen/Abstürzen nicht abgesichert ist. Auch sollte ein Backup inklusive dieser arithmetischen Bearbeitung erfolgen. Somit ist gewährleistet daß jeder Datensatz mit einem etwas anderen Schlüssel (Master-Key) verschlüsselt wird, was eine Muster-Erkennung, wie sie zum Errechnen bzw. Hacken des Schlüssels erbeuteter Daten eingesetzt werden kann, nahezu ausschließt und einen möglichen Angriff auf das extrem zeitintensive Brute-Force (das systematische durchprobieren aller möglichen Schlüssel) beschränkt.
    • 4. Um jegliche Angriffe (insbesondere die eben erwähnte Brute-Force und Kryptoanalyse) nach heutigen Stand unmöglich zu machen wird der zuvor generierte Code (Master-Keyverschlüsselte(Hash-)Werte) zusätzlich nochmals mit einem ZEITSCHLÜSSEL verschlüsselt. Dabei sollte ein anderes Verschlüsselungsverfahren (z. B. Twofish oder Blowfish) angewendet werden wie es mit dem Master-Key verwendet wurde. Dieser mindestens 128 Bit breite Zeitschlüssel wird in regelmäßigen Abständen (z. B. maximal täglich besser stündlich (wenn genug PC-Leistung bereit steht um die somit notwendige Dechiffrierung-Chiffrierung in angemessener Zeit durchzuführen) neu erstellt. Er wird entweder als Zufallszahl generiert oder aus einer speziellen Hardwareeinrichtung gewonnen. Dabei kann eine Mehrfacherzeugung oder eine mathematische Funktion benutzt werden um die benötigte Größe (Bitbreite) zu erzielen. Wichtig ist, dass er nicht vorhersehbar ist. Zusätzlich sollte der Zeitpunkt zu dem er erzeugt wird eine gewisse Variabilität haben, die wiederum per Zufall festgelegt wird. Es kann beispielsweise im groben ein 60 Minuten Zeitfenster vogesehen werden welches defacto immer wieder neu bestimmt wird indem jedesmal eine Zufallszahl von 1 bis 600 zu 3300 (55·60) addiert wird und so die Sekunden des nächsten Zeitpunktes zum Erzeugen eines neuen Zeitschlüssels und der dazugehörigen Umchiffrierung der (Anmelde-)Daten festlegt, wobei die Zeit zwischen den Umchiffrierungen dann zwischen 55 und 65 Minuten schwankt. Damit wird ein evtl. erbeuteter Zeitschlüssel in Kürze wertlos und jeglicher Angriff direkt auf dem Datenbankserver erhält eine zeitliche Brissanz die es einmal mehr unmöglich machen dürfte zum Erfolg zu kommen. Die Erzeugung mit Hilfe einer speziellen Hardware-Einrichtung zur Erzeugung von Zufallszahlen und/oder zufälligen Schlüsseln wie es z. B. mit Hilfe von Trusted Platform Module (TPM) möglich ist, wäre am Besten sofern ausgeschlossen werden kann dass der dort generierte Schlüssel irgendwo abgefangen/”mitgehört” werden kann. Am effektivsten ist insofern eine Kombination verschiedener Methoden. So werden alle Passwörter (und evtl. weitere Daten) regelmäßig per gültigen Zeitschlüssel dechiffriert und mit dem neuen sofort wieder chiffriert. In der Praxis wird so eine Umchiffrierung je nach Datenbankgröße und Rechenleistung evtl. im Hintergrund bzw. etappenweise laufen können und nach Beendigung werden dann nur die entsprechenden Datenbankfelder getauscht. Ein Online-Angriff ist somit aufgrund der jeweils kurzen Zeitfenster unmöglich und wenn die komplette (verschlüsselte) Datenbank erbeutet wird, dürfte deren Dechiffrierung aufgrund der drei- bis vier-fachen Verschlüsselungstiefe als (zeitlich) unrealistisch angesehen werden, denn das Ergebnis aus dem Hackversuch mit Verfahren 2 – Zeitschlüssel – bringt keinen Klartext der dem Angreifer zeigen könnte, dass er sein Teilziel erreicht hat und es gibt – auch aufgrund der arithmetischen Bearbeitung und der unterschiedlichen Verschlüsselungsverfahren – keinen einzelnen Schlüssel mit dem die gesamte Datenbank dechiffriert werden kann. Die Möglichkeiten steigen von 2 hoch 128 (eine 38 stellige Zahl) auf (2 hoch 128) hoch 128, einer Zahl mit 4933 Stellen. Würde jede Berechnung nur 1 PikoSekunde (1 millionstel Mikrosekunde) dauern, wäre ein Computer damit 4 e 4912 Jahre beschäftigt wobei das Weltall erst seit 1,4 e 10 Jahren besteht. Nun bestünde theoretisch nur noch die Gefahr dass die Schlüssel (Masterkey und Zeitschlüssel) trotz aller üblichen Vorsichtsmaßnahmen (womöglich zusammen mit den zugehörigen (mehrfach verschlüsselten) Daten) erbeutet werden. Aus diesem Grund folgt die nächste/letzte Sicherheitsstufe.
    • 5. Es gibt bislang 2 Schlüssel im System. Den Master-Key und den Zeitschlüssel. Um sicherzustellen, dass diese Schlüssel nicht erbeutet werden können, werden sie generell defacto nicht gespeichert, – weder auf Festplatte noch im Arbeitsspeicher. Statt dessen werden sie mit einem Wert verschlüsselt der sich aus einem zukünftigen Zeitwert des Systems errechnet, z. B. die Systemzeit in Mikrosekunden (durch einen anwendungsspezifischen Algorithmus mit sich stets wechselnden (Zufalls-)Parametern zu einem 128 Bit-Schlüssel hochgerechnet). Nur der sich jeweils daraus ergebende FUTURE-KEY wird gespeichert. Doch dieser ist zunächst unbrauchbar und kann nur zu einer ganz bestimmten Zeit die 0,5–2 Sekunden in der Zukunft liegt mit dem dann gegebenen System-Zeitwert (oder Timer-Wert – siehe weiter unten) in den ursprünglichen Zeitschlüssel und Masterkey umgewandelt werden. Erst dann kann mit diesen Schlüsseln wieder Chiffrierungs- und Dechiffrierungsaufgaben vorgenommen werden. In der Zeit bis dahin werden anstehende Chiffrierungsaufgaben in eine Warteschlange gestellt. Sie werden dann von einem Unterprogramm abgearbeitet das per Timer (dieser muss die im System höchste Priorität haben) aufgerufen wird. Der Timer wurde bei Erzeugung der Future-Key's gleich mit gesetzt und darf nach dem Setzen weder verändert noch ausgelesen werden können, bis er abgelaufen ist. Auch muss darauf geachtet werden, dass vom Ablaufdes Timers bis zum Anlauf des Unterprogramms eine gewisse (wenn auch minimale) Zeitspanne vergeht. Dies muss durch eine entsprechende Fehlerkorrektur aufgefangen werden. Aus diesem Grund läuft der Timer nach seinem Auslösen weiter so dass das Timer-Unterprogramm die erfolgte Zeitverzögerung messen und ausgleichen kann. Zur weiteren Fehlerkorrektur (z. B. durch unkalkulierbare Überläufe der kleinsten Stelle der Zeitangabe) wird von Masterkey und Zeitschlüssel ein maximal 16 Bit breiter Prüfziffern-Hash gespeichert. Zur Messung der Zeitverzögerung muss der Timer nach seinem Ablauf bzw. Auslösens, eine bstimmte Zeit (die das System benötigt um die ausgelöste Interruptanforderung auszuführen und das Timer-Unterpgrogramm startet, also z. B. 150 Prozessortakte, die für die Timer-Hardware z. B. per DIP/DIL-Schalter IC festgelegt werden) auslesbar sein. Um zu vermeiden, dass ein Schadprogramm diese kurze Auslesbarkeit ausnutzt sollte dieser Timer einen Alarm auslösen bzw. das System anhalten falls vor dem Ablaufdes Timers oder nach dem ersten Auslesen ein Programm versucht diesen auszulesen. Ferner ist der Timer nur ein einziges mal pro Phase (Start-Ablauf-Neustart) auslesbar und hält nach dem Auslesen an. Die gelesene Nachlaufzeit ist somit nur dem Timer und dem Timer-Unterprogramm bekannt und kann genutzt werden um damit die neu zu setzende Timerzeit arithmetisch zu verschlüsseln. Dadurch kann diese neue Zeit X nicht anderweitig abgefangen werden bzw. wäre dann nutzlos. Als zusätzliche Sicherheitmaßnahme löst die Timer-Hardware Alarm aus wenn sie nicht binnen einer bestimmten Zeit nach dem Auslösen erneut gestartet wird. Um Adressmanipulationen vorzubeugen prüft die Timer-Hardware ob die Schreibbefehle tatsächlich aus dem Adressbereich des Timer-Unterprogramms erfolgen. Auch erfolgen diese Schreibbefehle so direkt wie möglich und ohne dazwischengeschaltete Treiber oder ähnlichem. Ist dies systembedingt nicht möglich muss die Integrität der jeweiligen Treiber zusätzlich sichergestellt werden. Sollte ohne Timer mit diesem Leistungsumfang gearbeitet werden, so ist die zu verwertende Zeitangabe in einem genug großen Bereich zu wählen so dass die Fehlerkorrektur auch ohne Verzögerungsinformation die korrekten Schlüssel wieder herstellen kann. Geht man beispielsweise von einer Taktrate von 5 GHz aus, dann entstehen bei 150 Taktraten Verzögerungen von ca. 30 ns, woraus sich eine Verwendung aller Zeitangaben kleiner als 100 ns ausschließt. Da die meisten Systemzeitangaben ohnehin den Mikrosekundenbereich nicht unterschreiten, wird sich dieses Problem in der heutigen Prasxis erübrigen. Am Ende des Timer-Unterprogramms wird/werden der/die Future-Key(s) wieder neu erzeugt, der Timer gesetzt und der Zeitschlüssel/Master-Key gelöscht. Die Zeitspanne bis zum nächsten Timer-Event muss stets eine gewisse Variabilität haben um nicht vorhersehbar zu sein. Hierzu wird ähnlich wie bei dem Zeitintervall zum Erzeugen des Zeitschlüssel z. B. bei einer 2-Sekunden-Intervall-Vorgabe der neuen Zeit X eine 30%-ige zufällige Varianz hinzu addiert oder abgezogen sodass die neue Zeit X dann tatsächlich beispielsweise in 1,4 bis 2,6 Sekunden gegeben ist. Zur Erzeugung eines sicheren Future-Key wird der jeweilige Schlüssel (Masterkey/Zeitschlüssel) mit einem mind. 128-Bit-Schlüssel verschlüsselt der sich aus einem anwendungsspezifischen Algorithmus mit stets wechselnden zum Teil per Zufallszahl bestimmten Parameter erzeugt. Die Einbindung eines TPM oder eines auf der Hardwareerweiterung installierten Verschlüsselungsdienstes wäre zusätzlich hilfreich. Um einen Brute-Force-Angriff in diesem Bereich zu vereiteln muss die Verschlüsselungstechnik hier so aufwendig gewählt werden dass die Dechiffrierung aus Computersicht extrem lange braucht. Der eingesetzte Computer sollte je nach Leistungsstärke etwa 100–500 Millisekunden dafür benötigen. Geht man von einem hochwertigen System aus so dürfte ein High-End-System zumindest auch 1–10 Millisekunden benötigen. Hierzu wird zunächst eine übliche Verschlüsselung eingesetzt und anschließend weitere mathematisch komplexe Berechnungen durchgeführt. Da das Radizieren als eine der aufwendigsten Berechnungen gilt, kann hier mit vielstelligen komplexen Potenzen gearbeitet werden. Ggf. mehrfach verschachtelt. Ferner wird der Future-Key des Masterkey's (MK) hochgradig versteckt. Es darf nicht möglich sein, den dafür verwendeten Datenträger komplett zu erbeuten innerhalb 1/100 der Zeit in der ein Zeitschlüssel Gültigkeit hat. Geht man beispielsweise von einem Zeitrythmus für die Erneuerung des Zeitschlüssels von 1 h und von einer bestenfalls (in dem Fall schlimmstenfalls) durchschnittlichen Downloadrate von 100 Mbit/Sek. aus so muss der Datenträger in dem der MK-Future-Key in einer Matrix ähnlicher Schlüsselwerte mit größtenteils übereinstimmenden 16-Bit Hashwerten (Prüfsumme, siehe oben) versteckt ist mindestens 5 TB groß sein. Natürlich erhöht sich die Sicherheit weiter wenn das Versteck für den MK-Future-Key zudem auf verschiedene Geräte verteilt wird, wobei damit verschiedene Speicher des Systems (nicht der Arbeitsspeicher in dem auch der Zeitschlüssel-Future-Key gespeichert ist) gemeint sind aber auch Speicher anderer Systeme die u. a. per Netzwerk angebunden sind oder sichere (Cloud-)Server im Internet. Beim Speichern auf Festplatte wird hier idealerweise der sog. Direktzugriff angewandt um den FK irgendwo abzulegen ohne dass das Filesystem einen Hinweis darauf vermerkt. Denkbar wäre auch die Aufsplittung auf mehrere Geräte. Damit das Datenschutz-System den MK-Future-Key wieder finden kann wird der genaue Ort des Verstecks in einem Zeiger gesichert welcher wiederrum mit dem Zeitschlüssel verschlüsselt wird. Sofern mit der Hardware-Erweiterung gearbeitet wird, können zusätzlich die o. g. stetig wechselnden Parameter die als Basis für den anwendungsspezifischen Algorithmus dienen mit dem aus der zukünftigen Systemzeit der 128-Bit-Schlüssel zur Erzeugung der Future-Key's erzeugt wird aus dem Arbeitsspeicher gelöscht werden nachdem diese Parameter (die zusammen mindestens 128 Bit haben müssen) als Pseudo-Zeit-Vorgabe in den 128-Bit-Timer programmiert wurden. Der Timer läuft dann nicht gegen 0 sondern gegen eine Pseudeo-Zeit + X die dem Timer-Unterprogramm die Parameter liefert die es zusammen mit der Systemzeit benötigt um die Future-Key's wieder zu dechiffrieren. Alternativ kann der Schlüssel zur Chiffrierung von MK und Zeitschlüssel zu Future-Key auch eine 128-Bit-Zufallszahl sein die dann in dem Timer als Ziel (Alarmzeit) gegeben wird. Nun wird als Startzeit diese Zufallszahl + X vorgegeben und die Zufallszahl gelöscht. So ist sicher gestellt dass der Timer in X Zeit auslöst und an das damit gestartete Timer-Unterprogramm genau den Schlüssel übergibt der nötig ist um aus den Future-Key's wieder die ursprünglichen Schlüssel zu gewinnen. Da der Timer nicht auslesbar ist und nur nach dem Auslösen einmalig seinen Inhalt an das Timer-Unterprogramm (und nur an dieses) preisgibt, ist der Schlüssel zur Dechiffrierung der Future-Key's schlichtweg nicht verfügbar. Wird ohne Hardwareerweiterung und somit mit einem Standard-System-Timer gearbeitet die zumeist nur 64 Bit haben dann ist der Future-Key unter Umständen angreifbar. Allerdings ist dann aufgrund der besonders aufwendig gewählten Dechiffrierung von einer Zeitverzögerung auszugehen in der der so erbeutete Zeitschlüssel längst seine Gültigkeit verloren hat. Zudem ist der MK-Future-Key erst nach erfolgreich geknackten Zeitschlüssel(-Future-Key) zu finden doch bis dahin ist er schon längst woanders, da sich dessen Aufenthaltsort ca. alle 2 Sek. ändert. Das komplette Entwenden aller möglichen Aufenthalstorte des MK-Future-Key scheidet aufgrund der enormen Größe und Vielfalt dieser mbglichen Verstecke (vor allem in der Zeit X, beispielsweise 2 Sek.) aus. Nach der Zeit X werden beide Haupt-Schlüssel bereits wieder mit einem neuen Schlüssel zu neuen Future-Key's chiffriert. Es ist also aufgrund der Größe der möglichen Aufenthaltsorte nicht möglich beide Future-Key's zu erbeuten so dass beide mit dem selben Schlüssel erzeugt wurden. Dies Wiederrum verursacht notwendige Tests von 1 e 1233. Unmöglich. Um den MK-Future-Key zu finden wäre es unumgänglich den dafür hinterlegten Zeiger zu dechiffrieren. Dafür müsste aber aus dem Zeitschlüssel-Future-Key erst mal der Zeitschlüssel gewonnen werden. Doch dies ist auch bei nur 64-Bit-Timer-Werten in dem dafür notwendigen Zeitfenster von ca. 2 Sekunden (Zeit X bis zum nächsten Timer-Event) selbst mit Supercomputern aufgrund der besonders aufwendigen Dechiffrierung undenkbar. Diese Komplexität kann übrigens an die wachsende Rechenleistung stetig angepasst werden so dass es auch in 100 Jahren unmöglich sein wird diesen Schlüssel in 2 Sekunden zu knacken. Wobei dann aus den 2 Sekunden wohl auch schon längst 0,0002 Sekunden geworden sind. Die einhergehende Verzögerung der Anmeldung dadurch dass im Durchschnitt erst in 1,2 Sekunden die Anmeldedaten geprüft oder gespeichert werden, fällt (vor allem im Internetverkehr) nicht ins Gewicht da sie für jeden Anwender nur einmalig bei Anmeldung auftritt. Werden mit dem Verfahren auch weitere Daten verschlüsselt so ist die Intervall-Vorgabe kürzer zu wählen (z. B. 0,2 Sek). Es wird somit nur der bzw. zwei Future-Key(s) im System gespeichert mit denen man (falls erbeutet) nichts anfangen kann da er/sie erst zur Zeit X gültig wird/werden. Der aus dieser Zeit-X-Dechiffrierung zu gewinnende Zeitschlüssel mit dem eine Dechiffrierung der Daten möglich wäre, ist nicht bekannt und niergends im System gespeichert, ebenso ist der ebenfalls notwendige Master-Key im System nicht vorhanden. Mit den Future-Keys selbst lassen sich die Daten jedoch nicht dechiffrieren sondern nur der Zeitschlüssel und Master-Key erzeugen aber eben auch nur zur Zeit X. Die Zeit zu der diese Future-Keys Gültigkeit erreichen, wird ebenfalls nicht gespeichert sondern direkt in einen Timer (zumindest High Precision Event Timer (HPET)) programmiert. Dieser sollte idealerweise ein NMI(Not maskable Interrupt)-Timer sein bzw. einen NMI auslösen und die erste Aktion des Timer-Unterprogramms besteht darin, andere Interrupts und Threads zu unterbinden so dass während der Abarbeitung dieses Unterprogramms kein anderes Programm (parallel) abgearbeitet wird. Um die oben beschriebene Funktionalitäten (z. B. Unlesbarkeit bis zum Auslösen) des Timers zu gewährleisten kann dieser als Spezial-Timer auf einer HARDWAREERWEITERUNG dem System zur Verfügung gestellt werden. Der Timer sollte 2 128-Bit-Register haben. Eines für die Startzeit und eines für die Alarmzeit. Die Zeitauflösung sollte wenigstens 1 Nanosekunde (ns) sein, möglichst 1 Pikosekunde (ps), wenngleich dem Erfinder aktuell keine so schnell zählenden Timer-Chips bekannt sind, sollten stets die technisch hochauflösendsten Timer der jeweiligen Zeit Verwendung finden. Diese Hardwareerweiterung könnte zusätzlich eine Funktion zur hardwaremäßigen Zufallszahlerzeugung beinhalten. Ferner könnte hier z. B. auf einem Eeprom (oder einem anderen nichtflüchtigen Speicher der nur per hardwareseitigen Eingriff zu beschreiben/zu ändern ist) die Software zur Chiffrierung und Dechiffrierung inkl. dem o. g. Timer-Unterprogramm untergebracht sein. Idealerweise blendet sich dieser Speicher in einem bestimmten Speicherbereich des Arbeitsspeicher des Systems ein (ähnlich dem ROM/Flash für Bios) oder die Software wird daraus geladen und regelmäßig damit verglichen, sodass Manipulationen des Programmcodes ausgeschlossen sind. Ein Update der Software ist nur möglich wenn auf der Hardwareerweiterung(-skarte) z. B. ein Knopf gedrückt wird oder bei Verwendung eines Eproms dieses per UV-Emitter gelöscht wird. Natürlich ist auch ein sonstiger nichtflüchtiger Speicher denkbar wenn sein Beschreiben hardwareseitig blockiert wird bis z. B. der Systemadministrator der ein Update einspielt hierzu eine Taste betätigt oder einen Jumper setzt, wobei sichergestellt sein sollte dass die Beschreibbarkeit nach Ausführen des Updates oder zumindest nach einer gewissen Zeit (z. B. 15 Minuten) automatisch wieder deaktiviert wird, falls es von Seiten des Anwenders vergessen wird. Damit während dieses Schreibvorgangs Manipulationen (z. B. mit einem Rootkit/Bootkit) ausgeschlossen sind, könnte das Update eines solchen Speicherbausteins auch auf einem anderen System ausgeführt werden, welches standardmäßig nicht am Netzwerk angebunden ist. Selbstverständlich kann als Updateprogramm nur eines vom Hersteller der Chiffrierungssoftware verwendet werden welches die Integrität des erfolgten Updates mehrfach vergleicht. Diese Hardwareerweiterung sollte ferner prüfen ob der zum Aufruf des Timer-Unterprogramms zuständige Interrupt-Zeiger (dieser ist typischerweise in einer Interrupt-Tabelle des Systems gespeichert) manipuliert wurde. Dies geschieht z. B. indem die Hardware prüft, ob kurz (Bereich von ca. 10–150 Prozessor-Taktzyklen) nach dem Auslösen des Timers der Prozessor auch tatsächlich in dem Speicherbereich arbeitet in dem das Timer-Unterprogramm gespeichert ist. Damit bei nicht redundanden Systemen die Zeitschlüssel vor Verlust durch einen System-/Hardware-Fehler/-Neustart geschützt sind, können diese (ohne Future-Key-Chiffrierung) auf der o. g. Hardwareerweiterung (z. B. auf einem Flash-Speicher) gesichert werden, wobei diese Sicherung bzw. der Transfer zum Flash-Speicher ebenfalls nur verschlüsselt erfolgt mit Hilfe der angehaltenen Timer-Zeit die nur dem Timer (und somit der Timer-Hardwareerweiterung) und dem Timer-Unterprogramm bekannt ist und wobei das Auslesen dieses speziellen Flash-Speichers grundsätzlich gesperrt ist und nur mit zusätzlichen vorort am System auch hardwaremäßig zu erfolgenden Sicherheitsmaßnahmen möglich ist. Idealerweise wird ferner die Hardwareerweiterung vor Diebstahl geschützt, was u. a. mit Bindung an das jeweilige System (inkl. CPU-ID) erfolgen kann. Als zusätzliche Sicherheitsmaßsnahme und vor allem wenn systembedingt die direkte Ausführung des auf Eeprom befindlichen Programmcodes dort nicht möglich ist oder ohne Hardwareerweiterung gearbeitet wird, prüft ein oder mehrere weiteres/weitere Programm/e und/oder die Hauptanwendung regelmäßig (in sehr kurzen Abständen < 0,05 Sek.) ob es ggf. Manipulationen am Interrupt-Zeiger oder der im Arbeitsspeicher aktiven Software gab und löst notfalls Alarm aus und hält ggf. das System an. Dies könnte entweder durch kompletten oder stichpunktartigen Vergleich der im Arbeitsspeicher befindlichen (Chiffrierungs-)Programme mit den Programmdaten auf dem Eeprom oder durch Prüfziffer-Hashing erfolgen. Um bei fortschreitenden Multi-Threadding zu verhindern dass ein Schadprogramm den vom Timer-Unterprogramm dechiffrierten Masterkey/Zeitschlüssel aus dem Arbeitsspeicher erbeutet sollte dieser nur auf der bereits mehrfach erwähnten Hardwareerweiterung zwischengespeichert werden die dann wiederrum nur Lesezugriffe vom Timer-Unterprogramm aus zulässt. Alternativ oder in Kombination damit werden die dechiffrierten Masterkey/Zeitschlüssel an stets unterschiedlichen Stellen innerhalb einer SPEICHER-ZUFALLSMATRIX abgelegt. Hierzu wird am Anfang des Timer-Unterprogramms ein größerer (z. B. 16 MB in einem 64-Bit-System) geschützter Speicherbereich mit Zufallszahlen gefüllt und per Zufall bestimmt wo in diesem Bereich genau der Schlüssel abgelegt wird, wobei er nie als ganzes sondern in vorzugsweise 16 Teile aufgesplittet gespeichert wird und die Position jedes dieser Teile vom Zufall bestimmt wird. Dabei müssen die Zufallszahlen so gewählt werden, dass sich (angewandt auf die selbe Bitlänge des Schlüssels also z. B. 128 Bit ebenfalls aufgeteilt in 16 Teile) die zur o. g. Fehlerkorrektur vermerkte 16-Bit-Hash-Prüfziffer vielfach (> 200000, 25–50%) ergibt. Ferner werden die Zeiger welche auf den so versteckten Masterkey/Zeitschlüssel bzw. deren 16 Teile zeigt in zwei (je einem) QWords (64-Bit) codiert. Bei einer Aufsplittung in je 8 Teile reicht auch ein einziges QWord. Dieser enthält mehrere Zufallswerte wodurch eine Errechnung der jeweiligen Postition unmöglich sein dürfte oder zumindest so lange dauert dass zumindest der dann erbeutete Zeitschlüssel längst ungültig ist. (Was jedoch nichts nützt wenn Datenbank und Matrix erbeutet wurden und in aller Ruhe mit z. B. einem Hochleistungsrechner-Verbund (> 100 TFlops) gehackt werden, weshalb bei sensiblen Daten die Aufteilung auf 8 Teile in 1 QWord nicht empfohlen wird.) Diese QWords werden, während des Timer-Unterprogramm und somit während der Nutzung von Masterkey/Zeitschlüssel (bevor sie wieder gelöscht werden) nur in Prozessorregistern abgelegt so dass sie von Programmen eines anderen Prozessors nicht gelesen werden können. Abgesehen von den Prozessorregistern ist nur noch der Prozessorstack als kurzzeitiger Zwischspeicherort für eines der QWord-Offset-Codes zulässig, wobei es dann vorher mit dem jeweils anderen Schlüssel (den Schlüssel auf den das andere QWord zeigt) oder der Hardwareeinrichtung verschlüsselt wird. Als zusätzliche Sicherung kann ein derartiger Zwischenspeicherort (der Stack ist ja zumeist Teil des normalen Arbeitsspeicher) aus Gründen der Verwirrung in hoher Frequenz per Zufallszahlen in 64-Bit-Größe belegt werden. Hilfreich könnte auch sein, wenn das System, welches die Chiffrierung bzw. Dechiffrierung bzw. Prüfung der (Anmelde-)Daten bzw. deren Speicherung vornimmt, während seiner Chiffrierungs-Aktivität, insbesondere während der Umchiffrierung und dem Abarbeiten des Timer-Unterprogramms vom Netzwerk getrennt wird, bzw. sich vom Netzwerk trennt. Dies könnte softwareseitig oder für eine größere Sicherheit und Schnelligkeit hardwarseitig geschehen. Vorstellbar ist hier eine spezielle Funktion/Erweiterung der Netzwerkkarte bzw. deren Anbindung ans System um die Umschaltung innerhalb von Millisekunden zu ermöglichen. In jedem Fall sollte bei dem ausführenden System die sog. Speicher- und Prozessor-Dump-Funktion deaktiviert sein und auch nicht aktivierbar sein. Auch für den Fall eines Prozessorfehlers/Absturz. Falls bei Betrieb ohne Hardwareerweiterung die Integrität der verwendeten Programme und der Interrupt-Tabelle somit nicht sichergestellt werden kann, sollte stattdessen zumindest ein Trusted Platform Module (TPM) verwendet werden um die Integrität des Systems zu erhöhen.
  • Zwar wäre die generelle Verschlüsselung per TPM ebenfalls möglich und somit wäre auch sichergestellt dass der Schlüssel nicht ohne weiteres erbeutet werden kann sofern hierfür der Endorsement Key verwendet würde da dieser (der private Teil) ausschließlich dem TPM bekannt ist, doch wäre aufgrund dessen dass dieser immer gleich ist, ein Angriff z. B. per Mustererkennung durchaus denkbar und je nach Rechenleistung womöglich sogar in vertretbarer Zeit. Zusätzlich besteht noch das Problem bei einem Hardware-Defekt und die direkte Nutzung der TPM-Verschlüsselung zur Krypto-Analyse des Schlüssels. Insgesamt würde der Funktionsumfang eines TPM für den Großteil der hier vorliegenden Sicherheitsmechanismen. nicht ausreichen.
  • Gibt ein Anwender nun nach erfolgter Registrierung seine Anmeldedaten ein um Zugang zu der jeweiligen Website bzw. seinen erworbenen Diensten zu erlangen, so werden diese Anmeldedaten-Anfrage zunächst in eine Warteschlange gestellt. Bei Auslösen des Timers wird das eingegebene Passwort nach dem o. g. Verfahren codiert und dann dieser Code mit dem in der Datenbank hinterlegten/gespeicherten (und ebenfalls bereits nach diesem Verfahren chiffrierten) Code verglichen. Stimmt es überein kann Zugang gewährt werden, ansonsten nicht.
  • Zur VERANSCHAULICHUNG gehen wir von einer einfachen Konfiguration aus.
  • Es gibt einen Web-Server mit Zugriff auf eine Datenbank (Datenbankserver) und das vorliegende mehrschichtige Schutzverfahren wird entweder in der Datenbankanwendung implementiert so dass die Anwender-Eingaben vor deren Verbindung/Weiterleitung zur Datenbank ausgefiltert werden und dann – sofern es sich um Anmeldedaten (oder anderweitige sensible Daten die zu sichern sind) handelt – durch dieses Schutzverfahren laufen bevor Sie der Datenbank übergeben werden oder dieses Verfahren wird auf dem Webserver zwischengeschaltet, was definitv sicherer wäre, jedoch nur möglich ist wenn der Webserver exklusiven Zugriff auf die Datenbank hat oder alle weiteren Verbindungen ebenfalls durch das Schutzverfahren laufen. Das Schutzverfahren wird im Übrigen auch sicherstellen, dass Anmeldedaten nie dechiffriert werden, da dafür auch keine Notwendigkeit besteht. Ferner wird es bei anderweitigen Dechiffrierungsanfragen (stichpunktartig) prüfen ob für die Anforderung ein gültiges Login besteht. Ggf. wird es hierfür eine interne (verschlüsselte) Liste führen um die Gefahr von SQL-Angriffen und Login-Täuschungen abzuwenden. Ein Admin-Zugriff ist in der höchsten Sicherheitsstufe nicht möglich, kann aber darunter unter bestimmten weiteren Voraussetzungen etabliert werden.
  • Treffen nun Daten ein werden diese, bevor sie an die Datenbankverwaltung weiter gesendet werden, abgefangen und durchlaufen das nachfolgende Verfahren.
    • 1. Passwörter werden per verkürzten Einweg-Hashing sofort zu unwiederherstellbaren Hash-Werten verschlüsselt. Dieser Teilschritt könnte ggf. bereits am Front-End (Web-Browser) erfolgen, falls nicht per https übertragen wird oder dies irgendwann als unsicher angesehen wird.
    • 2. Anmeldename und Passwort werden von der Web-(Server-)Anwendung an das Schutzverfahren übergeben. Dies erfolgt am einfachsten indem die Anmeldedaten als neuer Eintrag einer speziellen (Stack-)Datei hinzugefügt werden. Er beinhaltet den Chiffrierungsgrund, die Anmeldedaten und eine Zuordnungsnummer der Anfrage. Ggf. dazugehörige weitere Daten werden zunächst gepuffert. Selbstverständlich wären auch andere Wege des programmübergreifenden Datenaustauschs möglich.
    • 3. Zur Zeit X ruft der wiederholt gesetzte Timer das entsprechende Unterprogramm auf.
    • 4. Dieses blockiert sofort weitere Interrupts und speichert die Systemzeit sowie den Timerwert (Nachlaufzeit zum Ausgleich der Zeitverzögerung seit Timer-Ablauf) und stoppt dann ggf. die Netzwerkverbindung zum Web(-Server) und weitere Threads.
    • 5. Nun wird die Zufallsmatrix zur gesicherten Ablage der Schlüssel vorbereitet und aus der gesicherten Systemzeit (abzgl. des Timerwertes) der gültige Zeitschlüssel und der Master-Key berechnet und ggf. die Fehlerkorrektur angewendet. Zum Auffinden des Masterkey-Future-Key's wird der Zeiger darauf zuvor mit dem dechiffrierten Zeitschlüssel entschlüsselt. Der Masterkey-Future-Key wird (im Versteck) sicher gelöscht.
    • 6. Dann werden die Daten aus der (Stack-)Datei entnommen und sogleich dort sicher gelöscht*. Der Anmeldename wird mit dem Master-Key und Zeitschlüssel verschlüsselt und das Ergebnis als Suchanfrage an die Datenbank gesendet. Bei positiven Ergebnis wird der Master-Key entsprechend der Klardaten, der Datenfeldnumer und des Unique-Key's des Datensatzes gemäß der anwendungsindividuellen Formel arithmetisch bearbeitet und der Passwort-Hash damit verschlüsselt. Anschließend erfolgt die Verschlüsselung mit dem Zeitschlüssel und das Passwort wird mit dem der Datenbank verglichen bzw. dort gespeichert. Ggf. können weitere sensible Daten (aus dem Puffer oder nachfolgend) mit dem arithmetisch bearbeiteten Master-Key und Zeitschlüssel chiffriert gespeichert werden. Alternativ könnte für sensible Daten (neben dem Passwort) ein gesonderter Zeitschlüssel verwendet werden, welcher dann analog zum Haupt-Zeitschlüssel gehandhabt wird (Future-Key-Verschlüsselung).
    • 7. Der Chiffrierungsgrund der (Stack-)Datei entscheidet die exakte Vorgehensweise. Er startet u. U. auch weitere Aktivitäten wie z. B. die Erstellung eines neuen Zeitschlüssels oder eine Datensicherung.
    • 8. Die o. g. (Stack-)Datei erhält unter der jeweiligen Zuordnungsnummer eine Quittierung/Rückmeldung.
    • 9. Eventuelle Zwischenspeicher (Variablen) für die aus der Datei entnommenen Anmeldedaten werden sicher gelöscht*. * „sicher gelöscht” bedeutet die Anwendung von Löschverfahren die eine Wiederherstellung unmöglich machen.
    • 10. Das neue Versteck für den Masterkey-Future-Key's wird vorbereitet. (Zufalls Matrix) Der Zeiger darauf wird mit Zeitschlüssel chiffriert, wobei das Original noch nicht gelöscht wird.
    • 11. Es werden neue Parameter erzeugt und aus der neuen Zeit X ein 128-Bit-Schlüssel errechnet. Daraus wird in einem extrem komplexen Verfahrensmix aus Verschlüsselung und Potenzierung mit komplexen vielstelligen Zahlen je ein neuer Future-Key berechnet und der Timer entsprechend gesetzt.
    • 12. Master-Key und Zeitschlüssel werden sicher gelöscht.
    • 13. Ggf. wird die Netzwerkanbindung/Internetanbindung wieder hergestellt.
    • 14. Der Masterkey-Future-Key wird versteckt und das Original sowie der unchiffrierte Zeiger darauf sicher gelöscht.
    • 15. 15. Blockierte Threads und Interrupts werden wiederaktiviert und der Web-(Server-)Anwendung eine Botschaft gesendet, dass die Anmeldedaten bearbeitet bzw. ausgewertet wurden so dass evtl. weitere gepufferte Anfragen weiter geleitet werden.
  • Es ist davon auszugehen dass von der Datenbank z. B. täglich eine Sicherung (BACKUP) erstellt wird/werden soll. Dies erfolgt zumeist auf einem gesonderten Sicherungslaufwerk. In diesem Fall wird entweder die Datenbank mit Hilfe des Zeitschlüssels, da dieser nach kurzer Zeit verworfen sein wird, dechiffriert und dann gesichert (also „nur” mit dem arithmetisch veränderten Masterkey verschlüsselt) oder es wird der für diese Sicherung gültige Zeitschlüssel ausgedruckt bzw. dem Anwender mitgeteilt sodass das Backup notfalls wiederhergestellt werden kann. Da der gültige Zeitschlüssel unbekannt ist und erst zum nächsten Timer-Ablauf aus dem Future-Key und der Systemzeit berechnet werden kann, muss diese Sicherungsfunktion vom Timer-Unterprogramm ausgeführt werden.
  • Damit der ausgedruckte oder mitgeteilte Backup-Zeitschlüssel nicht ausserhalb des Systems, also in der materiellen Welt (womöglich zusammen mit dem dazugehörigen Backup z. B. aus einem Safe) entwendet werden kann, wäre es sinnvoll, dass das Timer-Unterprogramm die zu den (beispielsweise 100 letzten) Backups gehörigen Backup-Zeitschlüssel in einer Liste speichert die so wie die Anmeldedaten auch mit dem kompletten Schutzverfahren chiffriert sind und somit nicht erbeutet werden können. Falls ein Backup wiederhergestellt werden muss wird dies dem Timer-Unterprogramm (so wie auch der Backkup-Vorgang) über eine spezielle Anfrage mitgeteilt und nach dessen Anweisung das Backup eingespielt. Dem Timer-Unterprogramm wird das Datum des Backups mitgeteilt sodass es den dazugehörigen Backup-Zeitschlüssel aus der o. g. Liste extrahieren kann.
  • Erfüllt ein Server all diese Sicherheitsbausteine so erhält er ein SIEGEL, das er u. a. auf seinem Portal veröffentlichen kann und welches (ähnlich dem „Trusted-Shop-Garantie-Siegel”) dem Anwender/Nutzer die Gewissheit gibt, dass seine (Anmelde-)Daten hier sicher sind. Hierbei ist eine mindestens zweistufige Qualitäts-Klassifizierung sinnvoll um zu unterscheiden ob das Maximum der Sicherheitsmechanismen (inklusive Hardwareerweiterung, TPM und Handhabung der jeweils sichersten Optionen) oder nur das Minimum (in etwa Patentanspruch 1) eingesetzt wird.
  • Man könnte vielleicht meinen, dass mit Hilfe einer RSA-Verschlüsselung (asynchrone Schlüssel) und Aufbewahrung des privaten/geheimen Schlüssels an einem anderen sicheren Ort eine ähnliche Sicherheit erreicht werden könnte, da der evtl. mit erbeutete (öffentliche) Schlüssel nicht ausreicht um die Daten zu entschlüsseln (was normalerweise auch garnicht nötig ist sofern es sich nur um Anmeldedaten handelt). Doch aufgrund der rassanten Entwicklung im Bereich der Rechenleistung ist heute schon klar, dass selbst Schlüssel mit 1024-Bit Länge in naher Zukunft berechnet werden können (Faktorisierung) sofern der öffentliche Schlüssel bekannt ist. Insofern wäre hiermit eine langfristige Sicherheit definitv nicht gegeben. (Siehe Schätzungen und Prognosen von BSI, NIST, bzw. Dirk Fox (Secorvo GmbH)) Vor allem wäre jedoch diese Handhabung nicht zweckmäßig wenn auch (sensible) Daten wieder dechiffriert werden müssen. Die Erbeutung des privaten Schlüssels wäre ferner nie ganz auszuschließen.
  • Es bestünde ferner die Möglichkeit allein mit einer starken Einweg-Verschlüsselung (so wie das Hashing aus Anspruch 1) die reale Entschlüsselung erbeuteter Daten selbst mit dem richtigen Schlüssel auszuschließen. Allerdings ist es in diesem Fall möglich Äquivalentwerte zu finden, die zu dem gleichen Ergebnis (Hashwert) kommen und somit Zugriff gewähren obwohl der ursprüngliche reale Ausgangswert nicht wiederhergestellt werden konnte. Ferner wäre auch hier das Problem dass es natürlich auch Daten gibt die nicht mit einem Einweg-Hashing verschlüsselt werden können da es notwendig ist sie wieder völlig herstellen zu können.
  • Zwar wird hier in erster Linie über Anmeldedaten gesprochen, aber selbstverständlich lassen sich mit diesem Verfahren auch alle anderweitigen Daten schützen. Zu empfehlen ist jedoch dass größere Mengen sensibler Daten stets mit einem gesonderten Master-Key/Zeitschlüssel verschlüsselt werden sollten und wenn sie (das jeweilige Datenfeld bzw. die jeweilige Datenspalte) nicht für eine datenbankweite Suche zur Verfügung stehen müssen, sollte unbedingt die arithmetische Bearbeitung des Master-Key's (vor der weiteren Verschlüsselung per Zeitschlüssel) erfolgen. Denn ist eine Datenbank mit einem einzigen Schlüssel verschlüsselt, gilt: Je größer die Datenmenge desto leichter ist der Schlüssel zu knacken.
  • Selbstverständlich haben hochwertige Datenbanksysteme eine eigene Verschlüsselung. Diese ist bei Anwendung des vorliegenden Verfahrens eigentlich überflüssig, schadet aber auch nicht.
  • Insbesondere muss sich somit die Anwendung des vorliegenden Verfahrens nicht um die Verschlüsselung der einfacheren und nicht ganz so sensiblen Daten kümmern. So würde es beispielsweise bei einem Bankserver ausreichen, die Anmeldedaten und z. B. Kontonummer sowie Strasse mit dem vorliegenden Verfahren zu schützen, wobei für Kontonummer und Strasse je ein gesonderter Zeitschlüssel zum Einsatz kommen könnte. Alle restlichen Daten wären mit der Datenbankverschlüsselung ausreichend gesichert da mit ihnen im Fall der Erbeutung kein dramatischer Schaden entstünde.
  • Mit diesem Verfahren geschützte Daten/Passwörter können bei heutigem Wissensstand und absehbaren Technikstand nicht erbeutet werden. Selbst mit einem Brute-Force-Angriff eines Super-Computers könnte jeweils immer nur ein einziger Account geknackt werden sofern die Web-Anwendung Brute-Force-Angriffe nicht sowieso verhindert. Ein Angriff auf die Datenbank als Ganzes kann aufgrund der mehrfachen inhomogenen Verschlüsselung ausgeschlossen werden. Rechnerisch kann klar gesagt werden dass selbst ein Computer in tausenden von Jahren mit einer Rechenleistung die Trilliarden größer wäre als heute ein erfolgreicher Angriff als unmöglich anzusehen ist.
  • Es bleibt am Ende das Hauptrisiko dass der/die Schlüssel (hier Master-Key etc.) mit erbeutet wird/werden, was jedoch durch das vorliegende Verfahren ausgeschlossen werden kann da sämtliche relevanten Schlüssel niemals wirklich vorliegen. 99% der Zeit sind nur die Future-Key's vorhanden (und diese gut versteckt) welche – selbst wenn sie erbeutet würden – völlig nutzlos sind da mit Ihnen nur die Master-Key's und Zeitschlüssel erzeugt werden könnten (aber eben auch nur zu einer ganz bestimmten Zeit die nur der programmierte Timer kennt). Da das Hack-Ergebnis kein Klartext sondern wiederrum nur ein Schlüssel ist der zudem nur einer von 2 ist, fallen sämtliche möglichen Angriffsszenarien aus. Es müsste quasi für jedem möglichen Schlüssel erst alle Angriffe auf die erbeuteten Daten angewendet werden um zu sehen ob dabei sinnvolle Ergebnisse entstehen. Die Rechenzeit dafür übersteigt Alter und Lebensdauer des Universums.
  • Wann die Future-Key's Gültigkeit erlangen ist nicht herausfindbar und während der kurzen Ablaufdauer des Timer-Unterprogramms liegen Master-Key und Zeitschlüssel nur so versteckt vor dass es selbst mit Super-Computern in 1000 Jahren unmöglich sein dürfte die tatsächlichen Schlüssel heraus zu finden. Der codierte Zeiger darauf liegt während dessen nur in Prozessorregistern auf die selbst mit einem Hardwareeingriff nicht zugegriffen werden kann.
  • Master-Key und Zeitschlüssel sind quasi wie Geister der Zukunft, – nicht da und wenn doch dann nicht zu sehen.
  • Nur dann wenn der Angreifer während des Abauf des Timer-Unterprogramms einen kompletten Speicher- und Prozessor-Dump (inklusive aller Prozessor-Register) erbeuten könnte, würde eine echte Gefahr bestehen. Dies muss daher ausgeschlossen werden. Andernfalls müssen die Zufalls-Matrix in der die Schlüssel versteckt sind und/oder die Dechiffrierungsaufgaben selbst auf verschiedene Systeme/Speicher aufgeteilt werden. Auch eine Kombination (weitere Verschlüsselungsstufe(n)) mit TPM-Ver- und Ent-Schlüsselung wäre hilfreich, vor allem wenn zum unveränderlichen EK noch eine weitere Verschlüsselungsstufe mit wechselndem Schlüssel eingefügt wird. Ein derartiger Dienst kann gemäß Anspruch 8 noch optimaler in der o. g. Timer-Hardware-Erweiterung integriert werden, sodass letztlich auch ein Speicher- und Prozessor-Dump nicht zu einem erfolgreichen Angriff führen kann, da ein Teil der Verschlüsselung in der Hardwareeinrichtung stattfindet und diese Schlüssel dort unlesbar untergebracht sind. Sie werden auf der Hardwareeinrichtung erzeugt und können diese nicht verlassen. Da die Hardwareeinrichtung zu einem unveränderlichen Schlüssel noch einen variablen innehält der analog zum Zeitschlüssel in gewissen Zeitabständen neu erzeugt wird, kann eine Kryptoanalyse ausgeschlossen werden. Der Unterschied zu einem TPM (Trusted Platform Module) liegt einmal in der speziellen Sicherung gegen Hardwaredefekte besteht und darin dass keine asynchrone Chiffrierung stattfindet und somit auch kein öffentlicher Schlüssel bekannt ist.
  • Auf eine Sicherung der Hardware-Schlüssel ausserhalb der Hardwareeeinrichtung (wegen etwaiger Hardware-Defekte) kann verzichtet werden wenn diese Verschlüsselungsstufen bei einem Backup ausgelassen bzw. entfernt werden, was wiederrum nur zu empfehlen ist wenn die Backups besonders sicher aufbewahrt werden.

Claims (8)

  1. Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-)Daten insbesondere Passwörtern, wobei – vom Anwender eingegebene Passwörter nie gespeichert werden, sondern daraus mit Hilfe eines kryptografischen EINWEG-HASHINGS ein um mindestens 37,5 Prozent verkürzter Hash-Wert gebildet wird und nur dieser gespeichert wird, wobei, falls der Ausgangswert eine Länge von weniger als 16 Zeichen hat, dieser mit sich selbst erweitert wird, bis eine Länge von 16 Zeichen vorliegt; – der erzeugte Hash-Wert, der Anmeldename und ggf. weitere sensible Daten verschlüsselt wird, wobei (ggf. pro Datenspalte) ein anwendungsindividueller und nahezu einmaliger, mindestens 128 Bit langer MASTER-KEV verwendet wird, dessen Speicherort besonders gesichert ist, indem ein Zugriff darauf nur der Verschlüsselungssoftware möglich/gestattet ist bzw. dieser garnicht im System gespeichert ist; – der Master-Key, bevor er zur Verschlüsselung des Hash-Wertes, oder weiterer sensibler Daten zu denen eine Datenbanksuche verzichtbar ist, eingesetzt wird, ARITHMETISCH BEARBEITET wird und als Basis dafür der sogenannte Unique-Key, eine Datenfeldnummer und/oder weitere Daten die je nach zu chiffrierenden Datenfeld wechseln, und/oder weitere Daten des jeweiligen Datenbanksatzes der gespeicherten Daten dient, so dass jede Verschlüsselung mit einem etwas anderen Master-Key erfolgt, wobei die dafür verwendete Funktion/Formel anwendungsindividuell ist; – die verschlüsselten Anmeldedaten (und ggf. weitere Daten) nun ein weiteres mal verschlüsselt werden, wobei ein mindestens 128 Bit langer ZEITSCHLÜSSEL verwendet wird, der in bestimmten, in einem gewissen Rahmen variablen Zeitabständen aus dem Zeitcode des Systems oder per Zufallszahl neu erzeugt wird; wobei dann jeweils alle Zeitschlüssel-verschlüsselten Daten mit dem bisherigen Zeitschlüssel dechiffriert und sofort mit dem neu erzeugten Zeitschlüssel wieder chiffriert werden, sodass rotierende Verschlüsselungswerte entstehen; wobei sich das hier angewandte Verschlüsselungsverfahren von dem unterscheidet, das für den Master-Key angewandt wurde. – aus dem Master-Key und dem Zeitschlüssel unter Verwendung eines in der Zukunft liegenden Systemzeitwertes (Zeit X) auf Basis einer anwendungsindividuellen Formel mit wechselnden teils zufallsbestimmten Parameter jeweils ein sogenannter FUTURE-KEY errechnet/chiffriert wird, und anschließend der Masterkey und Zeitschlüssel sicher gelöscht werden, und ein Timer gesetzt wird um zur Zeit X ein entsprechendes Interruptprogramm (Timer-Unterprogramm) aufzurufen, wobei der Future-Key der Schlüssel ist, der zur Zeit X von dem Interruptprogramm mit dem dann vorliegenden Systemzeitwert dechiffriert wird und als Ergebnis den Master-Key bzw. Zeitschlüssel wieder erzeugt, welche während deren Verwendung in mindestens 8 besser 16 Teilen aufgesplittet in einer großen (z. B. 16 MB) SPEICHER-ZUFALLSMATRIX mit mindestens 25% übereinstimmenden 16-Bit-Hash-Prüfsummen versteckt gehalten werden und zu der die Zeiger darauf ausschließlich codiert in Prozessorregistern abgelegt werden; – die Dechiffrierung der Future-Key's zu den jeweiligen Schlüsseln bewusst extrem komplex sein muss und somit derart aufwendige Rechenoperationen erfordert sodass der zugrundeliegende Computer zwischen 100 und 500 Millisekunden und ein zeitgemäßer Supercomputer mindestens 0,02 Millisekunden dafür benötigt; wobei sich dieses Verfahren kontinuierlich wiederholt und wobei die Zeit zu der die Future-Key's Gültigkeit erreichen, nicht gespeichert wird sondern direkt in einen Timer programmiert wird; wobei diese Zeit X mit einer gewissen Variabilität in der Zukunft liegt; wobei (De-)Chiffrierung-Anfragen zu (Anmelde-)Daten bis zum jeweils nächsten Zeitpunkt X zwischengespeichert werden, und die Anfragen zum Zeitpunkt X von dem Timer-Unterprogramm beantwortet werden, wobei dabei ggf. Dechiffrierungsanforderungen für Anmeldedaten blockiert werden; wobei am Ende des Timer-Unterprogramms für Master-Key und Zeitschlüssel je ein neuer Future-Key erzeugt wird, der Timer gesetzt und Master-Key und Zeitschlüssel (wiederherstellungs-)sicher gelöscht werden, wobei zur Erzeugung der Future-Key's der zukünftige Systemzeitwert mit einer anwendungsindividuellen Formel/Funktion mit stets wechselnden teils zufallsbestimmten Parametern zu einem mind. 128 Bit langen Schlüssel umgewandelt wird welcher zur Verschlüsselung von Master-Key und Zeitschlüssel dient und diese Future-Key's (FK) in unterschiedlichen Hardware-Geräten gespeichert werden wobei i. d. R. der Zeitschlüssel-FK im Arbeitsspeicher und der Masterkey-FK versteckt auf eine oder aufgesplittet auf mehrere direkte oder netzwerkgebundene Festplatte oder im Internet gespeichert wird und der Zeiger darauf mit dem Zeitschlüssel verschlüsselt wird.
  2. Verfahren nach Anspruch 1, wobei der Zeitschlüssel per Hardware oder aus einer hardwaregenerierten Zufallszahl erzeugt wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei der verwendete TIMER auf einer zusätzlichen Hardware(-Einschubkarte) untergebracht wird und hardwaremäßig zur Vermeidung jeglicher Manipulationen nach dem Starten bis zum Ablauf/Auslösen des Timers nicht gelesen und nicht verändert werden kann und nach dem Auslösen unendlich weiter läuft und beschreibbar ist bis er wieder neu gestartet wird, wobei er nach dem Auslösen eine bestimmte Zeit einmal gelesen werden kann und dann stoppt und bei anderweitigen Leseanfragen sowie bei Erreichen einer bestimmten Nachlaufzeit ohne Neustart Alarm auslöst und ggf. das System anhält, wobei das Setzen des Timers mit einer auf Basis des gelesenen (gestoppten) Timerstandes arithmetisch bearbeiteten oder verschlüsselten Zeitangabe erfolgt und wobei der Timer ein 128-BitTimer ist dessen Auslöse-Zeit nicht zwangsläufig dem Wert bzw. der Zeit 0 entspricht sondern individuell gewählt werden kann, wobei auch dieses (Alarmzeit-)Register den o. g. Anforderungen entspricht.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die INTEGRITÄT der verwendeten Programme, insbesondere die zur Chiffrierung bzw. Dechiffrierung bzw. Prüfung der Anmeldedaten bzw. dessen Speicherung zuständigen Programme/-teile entweder mit Hilfe eines Trusted Platform Module (TPM) sichergestellt wird und/oder die verwendeten Programme gegenseitig und/oder ein oder mehrere weiteres/weitere Programm/e und/oder die Hauptanwendung regelmäßig prüft ob es ggf. Manipulationen am zum Aufruf des Timer-Unterprogramms zuständigen Interrupt-Zeiger oder der o. g. Software gab und notfalls Alarm auslöst und/oder das System anhält.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die sicherheitsrelevanten Programme (Software zur Chiffrierung und Dechiffrierung inkl. dem o. g. Timer-Unterprogramm) auf einem nur per Hardwareeingriff beschreibbaren nichtflüchtigen Speicherchip (z. B. EEPROM auf der o. g. (Timer-)Hardwareerweiterung) untergebracht sind und entweder sich dieser Speicherchip direkt in einem bestimmten Speicherbereich des Arbeitsspeicher des Systems einblendet oder die o. g. Programme daraus geladen und regelmäßig damit verglichen werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die o. g. (Timer-)Hardwareerweiterung oder eine zusätzliche Hardwareeinrichtung prüft ob der zum Aufruf des Timer-Unterprogramms zuständige INTERRUPT-ZEIGER manipuliert wurde indem die Hardware kurz nach dem Auslösens des Timers eigenständig überprüft ob der Prozessor bzw. die Prozessoren auch tatsächlich in dem Speicherbereich arbeiten in dem das Timer-Unterprogramm gespeichert ist und andernfalls Alarm auslöst und/oder das System anhält.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die o. g. (Timer-)Hardwareerweiterung oder eine zusätzliche Hardwareeinrichtung dem System zusätzlich 3-fach gespiegelten Flash-Speicher zur Verfügung stellt der nur per Hardware-Eingriff wie z. B. dem Betätigen einer Taste auf der Hardwareeinrichtung und ggf. weiteren Maßnahmen einmalig gelesen werden kann.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die o. g. (Timer-)Hardwareerweiterung oder eine zusätzliche Hardwareeinrichtung dem System wenigstens 2 synchrone Ver- und Ent-schlüsselungs-Dienste zur Verfügung stellt wobei einer mit einem dauerhaften und unveränderbaren Schlüssel und der andere mit einem per Initialisierung von aussen mit auf der Hardwareerweiterung generierten Zufallszahlen erzeugten Schlüssel operiert und beide mindestens 128-Bit-Schlüssel ausserhalb der Hardwareeinrichtung unbekannt und unlesbar sind, die Hardware jedoch Maßnahmen ermöglicht dem Verlust der Schlüssel bei Hardwaredefekten auszuschließen welche z. B. zusätzliche galvanisch getrennte Sicherungsbausteine oder eine besonders verschlüsselte Übertragung/Synchronisation zu anderweitigen Einrichtungen sein können und diese Ver- und Ent-schlüsselungs-Dienste genutzt werden, Daten zusätzlich zum Verfahren nach Anspruch 1 zu schützen und/oder die codierten Zeiger auf die in der Zufalls-Matrix abgelegten Schlüssel zu verschlüsseln und/oder die Future-Key's zusätzlich zu verschlüsseln und/oder Zeitschlüssel die zu Backups gehören anderweitig verschlüsselt zu sichern.
DE102016002549.2A 2016-01-18 2016-03-04 Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern Ceased DE102016002549A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016000328.6 2016-01-18
DE102016000328 2016-01-18

Publications (1)

Publication Number Publication Date
DE102016002549A1 true DE102016002549A1 (de) 2017-07-20

Family

ID=58162412

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016002549.2A Ceased DE102016002549A1 (de) 2016-01-18 2016-03-04 Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern
DE112017000412.8T Withdrawn DE112017000412A5 (de) 2016-01-18 2017-01-17 Verfahren zur mehrschichtig geschützten Sicherung von Daten insbesondere Anmeldedaten und Passwörtern

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE112017000412.8T Withdrawn DE112017000412A5 (de) 2016-01-18 2017-01-17 Verfahren zur mehrschichtig geschützten Sicherung von Daten insbesondere Anmeldedaten und Passwörtern

Country Status (3)

Country Link
US (1) US20190028273A1 (de)
DE (2) DE102016002549A1 (de)
WO (1) WO2017129184A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113796044A (zh) * 2020-03-24 2021-12-14 京东方科技集团股份有限公司 实现保密通信的方法、设备及存储介质

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017103519A1 (de) * 2017-02-21 2018-08-23 Uniscon Universal Identity Control Gmbh Verfahren zum gesicherten Zugriff auf Daten
US10742408B2 (en) 2017-02-27 2020-08-11 Cord3 Innovation Inc. Many-to-many symmetric cryptographic system and method
DE102017128655A1 (de) * 2017-12-04 2019-06-06 Anna Elischer Verbindungseinheit und verfahren zur zugriffssteuerung
US10528556B1 (en) 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10528557B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
EP3834111B1 (de) * 2018-08-10 2023-10-04 Cryptography Research, Inc. Speicherbusschutz
US11087012B2 (en) 2018-10-22 2021-08-10 Cibecs International Ltd. Data protection system and method
US20200202017A1 (en) * 2018-12-20 2020-06-25 Micron Technology, Inc. Secure communication for log reporting in memory sub-systems
US11654635B2 (en) 2019-04-18 2023-05-23 The Research Foundation For Suny Enhanced non-destructive testing in directed energy material processing
CN110493197B (zh) * 2019-07-25 2022-02-01 深圳壹账通智能科技有限公司 一种登录处理方法及相关设备
CN110933671B (zh) * 2019-11-29 2023-09-26 深圳市国电科技通信有限公司 数据传输方法和系统
CN110990458B (zh) * 2019-12-03 2023-04-18 电子科技大学 分布式数据库系统、接口通信中间件
CN111211891B (zh) * 2020-01-13 2023-04-28 广东跑合中药材电子商务有限公司 一种多维度aes对称加解密方法
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US20220006641A1 (en) * 2020-07-03 2022-01-06 Inveniam Capital Partners, Inc. Distribution of Blockchain Validation
CN111953676B (zh) * 2020-08-10 2022-07-15 四川阵风科技有限公司 一种基于硬件设备等级的文件加密方法
CN111988297B (zh) * 2020-08-13 2022-09-13 北京诚志重科海图科技有限公司 一种文字通信保密传输明密转换系统
CN112181898B (zh) * 2020-09-23 2023-12-29 北京百汇安科技有限公司 嵌入式安全文件管理系统
CN112632571B (zh) * 2020-12-04 2024-04-09 翰顺联电子科技(南京)有限公司 数据加密方法、解密方法与装置及存储装置
CN112672354B (zh) * 2020-12-25 2022-02-01 四川长虹电器股份有限公司 一种应用程序升级认证方法、装置及智能终端设备
CN112733130B (zh) * 2021-01-18 2022-11-29 成都质数斯达克科技有限公司 账户注册方法、装置、电子设备及可读存储介质
CN112995208B (zh) * 2021-04-16 2023-04-07 佛山职业技术学院 一种智能锁的故障预警测试方法,系统及存储介质
US11941159B2 (en) 2021-06-08 2024-03-26 Hewlett-Packard Develoment Company, L.P. Configuration data deletion based on tamper status
CN113806778B (zh) * 2021-09-23 2022-08-02 深圳市电子商务安全证书管理有限公司 基于大数据平台的数据管理方法、系统及存储介质
CN115037452B (zh) * 2021-11-19 2023-09-12 荣耀终端有限公司 数据保护方法、系统及电子设备
CN114785528B (zh) * 2022-06-20 2022-10-14 深圳市乐凡信息科技有限公司 数据传输的加密方法、系统、设备及存储介质
EP4325387A1 (de) 2022-08-19 2024-02-21 Steen Harbach AG Verfahren zum bereitstellen eines digitalen schlüssels

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381695B2 (en) * 1997-08-22 2002-04-30 International Business Machines Corporation Encryption system with time-dependent decryption
US20030099360A1 (en) * 2001-11-28 2003-05-29 Khoi Hoang Time-based encryption key
US6603857B1 (en) * 1997-07-14 2003-08-05 Entrust Technologies Limited Method and apparatus for controlling release of time sensitive information
US20120290833A1 (en) * 2011-05-12 2012-11-15 Sybase, Inc. Certificate Blobs for Single Sign On
US9225526B2 (en) * 2009-11-30 2015-12-29 Red Hat, Inc. Multifactor username based authentication

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195956B2 (en) * 2009-08-17 2012-06-05 Brocade Communications Systems, Inc. Re-keying data in place
CN102136907A (zh) * 2010-01-25 2011-07-27 中兴通讯股份有限公司 一种无源光网络系统组播业务加密方法和装置
US8429420B1 (en) * 2010-04-12 2013-04-23 Stephen Waller Melvin Time-based key management for encrypted information
JP5457985B2 (ja) * 2010-09-17 2014-04-02 株式会社日立製作所 カメラ管理装置、ネットワークカメラシステム、ネットワークカメラ制御方法、ネットワーク機器制御方法
JP5750935B2 (ja) * 2011-02-24 2015-07-22 富士ゼロックス株式会社 情報処理システム、情報処理装置、サーバ装置およびプログラム
WO2016033365A1 (en) * 2014-08-27 2016-03-03 Contentguard Holdings, Inc. Distributing protected content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6603857B1 (en) * 1997-07-14 2003-08-05 Entrust Technologies Limited Method and apparatus for controlling release of time sensitive information
US6381695B2 (en) * 1997-08-22 2002-04-30 International Business Machines Corporation Encryption system with time-dependent decryption
US20030099360A1 (en) * 2001-11-28 2003-05-29 Khoi Hoang Time-based encryption key
US9225526B2 (en) * 2009-11-30 2015-12-29 Red Hat, Inc. Multifactor username based authentication
US20120290833A1 (en) * 2011-05-12 2012-11-15 Sybase, Inc. Certificate Blobs for Single Sign On

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113796044A (zh) * 2020-03-24 2021-12-14 京东方科技集团股份有限公司 实现保密通信的方法、设备及存储介质

Also Published As

Publication number Publication date
US20190028273A1 (en) 2019-01-24
WO2017129184A1 (de) 2017-08-03
DE112017000412A5 (de) 2018-10-11

Similar Documents

Publication Publication Date Title
DE102016002549A1 (de) Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern
DE69725833T2 (de) Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
CN112074836A (zh) 通过可信执行环境保护数据的设备和方法
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE112008003855B4 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
DE102017205948A1 (de) Nachrichtenauthentifizierung mit sicherer Codeverifikation
DE102008025197A1 (de) Verfahren, System und Vorrichtung zum fehlertoleranten Verschlüsselungs-, Unversehrtheits- und Wiedergabegabeschutz von Daten in einem nichtflüchtigen Speicher
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
Muthurajkumar et al. Secured temporal log management techniques for cloud
DE102013203126A1 (de) Transparentes Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
CN104239820A (zh) 一种安全存储设备
US11188668B2 (en) Method for accessing data in a secure manner
DE112019000594T5 (de) Injizieren von Abfangcode in einen Ausführungspfad eines ein Programm ausführenden Prozesses, um einen Abfangadressbereich zu erzeugen, um möglichen schädlichen Programmcode zu erkennen
US20190199512A1 (en) Re-encrypting data on a hash chain
DE112022003368T5 (de) Verschlüsselungsüberwachungsregister und -system
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
EP2434424A1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online Diensten
WO2021236196A1 (en) Split keys for wallet recovery
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
DE112010005847T5 (de) Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
EP3345366B1 (de) Verfahren zum sicheren und effizienten zugriff auf verbindungsdaten

Legal Events

Date Code Title Description
R086 Non-binding declaration of licensing interest
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final