AES Encryption
Dieser Adapter verschlüsselt und entschlüsselt Eingabedaten mit dem AES-Verschlüsselungsalgorithmus.
Hinweis:
Advanced Encryption Standard (AES), ein öffentlich verfügbarer Verschlüsselungsalgorithmus, ist einer der sichersten und am häufigsten verwendeten Verschlüsselungsmethoden.
Die Funktionsweise basiert auf einer Reihe von Byte-Ersetzungen, Verwürfelungen (Permutationen) und linearen Transformationen. Diese werden – daher der Begriff Blockverschlüsselung – auf 16-Byte-Datenblöcken durchgeführt. Die Operationen werden mehrmals wiederholt, und in jeder dieser Iterationen wird ein individueller, aus dem eigentlichen Schlüssel berechneter Iterationsschlüssel für die Berechnungen verwendet. AES als Verschlüsselungsmethode bietet einen großen Vorteil gegenüber klassischen Verschlüsselungsmethoden: Wenn nur ein einziges Bit im Schlüssel oder im Datenblock verändert wird, entsteht ein völlig anderer Chiffreblock. Die Länge des Schlüssels wird durch die Bezeichnungen AES-128
, AES-192
und AES-256
spezifiziert: 128, 192 bzw. 256 Bit. AES ist der bevorzugte Verschlüsselungsstandard, denn bis heute ist für keine der AES-Varianten ein praktisch durchführbarer Angriff bekannt.
Zusätzliche Informationen zur AES-Verschlüsselung finden Sie auch unter https://www.comparitech.com/blog/information-security/what-is-aes-encryption/.
Eigenschaften (Properties)
Operation
| Vom Adapter ausgeführte Operation Mögliche Werte:
|
Parameter
Adapter | Hauptklasse des Adapters (nicht verändern)! Mögliche Werte: |
password | Erforderlich für die Operation |
salt | Erforderlich für die Operation In der Kryptografie bezeichnet Salt eine zufällig gewählte Zeichenfolge, die vor der weiteren Verarbeitung (z. B. Eingabe in eine Hash-Funktion) an einen bestimmten Klartext angehängt wird, um die Entropie der Eingabe zu erhöhen. Salt wird häufig zum Speichern und Übertragen von Passwörtern verwendet, um die Informationssicherheit zu erhöhen. |
keyAlgorithm | Erforderlich für die Operation Mögliche Werte:
|
keyLength | Erforderlich für die Operation Mögliche Werte:
|
keyIteration | Erforderlich für die Operation GenerateSharedKey . Wiederholungen, die zum Erzeugen des Shared Keys verwendet werden soll. |
cipherAlgorithm | Algorithmus zum Verschlüsseln und Entschlüsseln der Eingabedaten. Mögliche Werte:
Zusatzinformationen zum CBC- und zum ECB-Modus
|
sharedKey | Shared Key zum Verschlüsseln und Entschlüsseln der Eingabedaten (Base64-kodiert). |
initializationVector | Initialisierungsvektor zum Verschlüsseln und Entschlüsseln der Eingabedaten; Funktioniert nur im CBC-Modus Wenn Nachrichten verschlüsselt werden, muss vermieden werden, dass gleiche Klartextblöcke immer wieder gleiche Chiffretextblöcke ergeben. Beispiel: Im Deutschen beginnt ein förmlicher Brief in der Regel mit „Sehr geehrte(r) Frau/Herr“ gefolgt vom Namen. Mit diesem Wissen könnte ein Angreifer versuchen, Rückschlüsse auf den verwendeten Schlüssel zu ziehen. Um das zu vermeiden, wird der erste Klartextblock mit einem Initialisierungsvektor-XOR verknüpft. Da der Initialisierungsvektor zufällig erzeugt wurde, unterscheiden sich die entstehenden Chriffretexte auch dann, wenn die Klartexte mit identischen Daten beginnen. |
prependInitializationVector | Legt fest, ob der Initialisierungsvektor als Präfix für die verschlüsselten Daten vorangestellt werden soll. Da Angreifer ohne den Schlüssel keinen Informationsgewinn aus dem Initialisierungsvektor erhalten, kann der Initialisierungsvektor kann problemlos im Klartext an die verschlüsselten Daten übertragen werden. Der Initialisierungsvektor ist lediglich zur Verwässerung des Nachrichtenanfangs gedacht, bevor die Nachricht verschlüsselt wird. Wird der Initialisierungsvektor nicht übertragen, muss er auf anderem Wege erhalten werden, da er für die Entschlüsselung notwendig ist. Mögliche Werte: |
encoding | Erforderlich für die Operation Decrypt . Gibt das Encoding der entschlüsselten Daten an. |
mimeType | Erforderlich für die Operation Decrypt . Gibt den Mime-Type der entschlüsselten Daten an. |
Statuswerte
-1 | Während der Ausführung der Operation kam es zu einem Fehler. Nähere Details finden Sie im Server-Log. |
1 | Die Operation wurde erfolgreich ausgeführt. |
Input
Der Adapter erwartet je nach Operation verschiedene Input-Dokumente.
Für die Operation
Encrypt
erwartet der Adapter ein beliebiges Input-Dokument, z. B. XML-, Text- oder Binär-Dateien.Beispielhafter Input für Operation Encrypt
XMLThis is a top secret message and should be AES encrypted!
Für die Operation
Decrypt
erwartet der Adapter AES-verschlüsselte Daten (Base64).Beispielhafter Input für Operation Decrypt
XMLdpi4dqEK7yiRcyz1HdLs9yxqNLIg6u8fqGR0JxADiCdHb/6PGDqSxzID6VcuecxUP44x7bkHTggDpn8DO/bgKg==
Output
Der Adapter gibt je nach Operation verschiedene Ergebnis-Dokumente aus.
Bei der Operation
Encrypt
gibt der Adapter die Eingabedaten verschlüsselt zurück (Base64-kodiert).Beispielhafte Ausgabe für Operation Encrypt
XMLdpi4dqEK7yiRcyz1HdLs9yxqNLIg6u8fqGR0JxADiCdHb/6PGDqSxzID6VcuecxUP44x7bkHTggDpn8DO/bgKg==
Bei der Operation
Decrypt
gibt der Adapter die verschlüsselten Eingabedaten entschlüsselt zurück.Beispielhafte Ausgabe für Operation Decrypt
XMLThis is a top secret message and should be AES encrypted!
Bei der Operation
GenerateSharedKey
gibt der Adapter den Shared Key mit den im Adapter definierten Key Parametern zurück.Beispielhafte Ausgabe für Operation GenerateSharedKey
XMLSfQYr8UlXmBIeHbZE28XkquKZHFX0qfsSTGBl+4WQDM=
Bei der Operation
GenerateInitializationVector
gibt der Adapter einen zufälligen Initialisierungsvektor abhängig vom Cipher-Algorithmus aus.Beispielhafte Ausgabe für Operation GenerateInitializationVector
CODEJXAxGJ343MMjwLFi78z8xw==
Beispielszenario:
Ein typisches Szenario ist der Austausch von verschlüsselten Daten zwischen zwei Systemen. Eine Möglichkeit dies zu erreichen, ist ein geheimes Passwort zum Verschlüsseln und Entschlüsseln der Daten, das beide Systeme kennen. Dabei wird aus dem Passwort über den GenerateSharedKey
-Algorithmus ein Schlüssel generiert. Der Schlüssel bereitet das Passwort kryptografisch auf und sorgt je nach gewähltem Algorithmus für eine stärkere Verschlüsselung. Je stärker der Schlüssel, desto schwerer können die verschlüsselten Daten durch Dritte entschlüsselt werden.
Alternativ zum Passwort kann auch der Schlüssel beiden Systemen bereitgestellt werden. Dies ist insofern weniger sicher, als die zusätzliche Information, d. h. mit welchem Passwort der Schlüssel generiert wurde, nicht bekannt ist.
Mit dem Schlüssel und dem Cipher-Algorithmus werden die Daten für Dritte unkenntlich gemacht und können nur mit dem gleichen Schlüssel wieder kenntlich gemacht werden.
Die verschlüsselten Daten können nun zum zweiten System transportiert werden, entweder über ein Netzwerk oder Hardware (USB-Stick). Auf diesem Weg kann kein Dritter die Daten verwenden.
Das zweite System erzeugt sich ebenfalls den Schlüssel mit den exakt gleichen Parametern wie das erste System. Zusammen mit dem wiederum gleichen Cipher-Algorithmus werden die Daten entschlüsselt und sind wieder verwendbar.