Skip to main content
Skip table of contents

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:

  • Encrypt: Verschlüsselt Eingabedaten mit dem AES-Verschlüsselungsalgorithmus.
  • Decrypt: Entschlüsselt Eingabedaten mit dem AES-Verschlüsselungsalgorithmus.
  • GenerateSharedKey: Erzeugt einen Shared Key zum Verschlüsseln und Entschlüsseln der Eingabedaten.
  • GenerateInitializationVector: Erzeugt einen zufälligen Initialisierungsvektor zum Verschlüsseln und Entschlüsseln der Eingabedaten.

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern)!

Mögliche Werte:  de.softproject.integration.adapter.aes.AesEncryption : Hauptklasse (Standard)

password

Erforderlich für die Operation GenerateSharedKey . Passwort zum Erzeugen des Shared Keys.

salt

Erforderlich für die Operation GenerateSharedKey . Salt zum Erzeugen des Shared Keys (Base64-kodiert).

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 GenerateSharedKey . Algorithmus zum Erzeugen des Shared Keys. 

Mögliche Werte:

  • DESede: Erstellt Secret Keys zur Verwendung mit dem DESede-(Triple DES)-Algorithmus.
  • PBEWith<digest>And<encryption> bzw. PBEWith<prf>And<encryption> : Secret Key Factory zur Verwendung für PKCS5-Passwortverschlüsselung, wobei <digest> ein Nachrichtendigest, <prf> eine Pseudozufallsfunktion und <encryption> ein Verschlüsselungsalgorithmus ist, z. B.  PBEWithMD5AndDES (PKCS #5, Version 1.5),  PBEWithHmacSHA256AndAES_128 (siehe PKCS #5, Version 2.0).
  • PBKDF2With<prf>: Passwort-basierter Algorithmus zur Schlüsselableitung (siehe PKCS #5, Version 2.0), der die Pseudozufallsfunktion (<prf>) nutzt, z. B.  PBKDF2WithHmacSHA256
keyLength

Erforderlich für die Operation GenerateSharedKey . Schlüssellänge zum Erzeugen des Shared Keys. 

Mögliche Werte:

  • 128
  • 196
  • 256
keyIterationErforderlich 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:

  • AES/CBC/PKCS5PADDING
  • AES/CBC/NOPADDING
  • AES/ECB/PKCS5PADDING
  • AES/ECB/NOPADDING

Zusatzinformationen zum CBC- und zum ECB-Modus

  • Cipher Block Chaining Mode (CBC Mode) ist eine Betriebsart, in der Blockchiffren betrieben werden können. Vor dem Verschlüsseln eines Klartextblocks wird dieser zunächst mit dem im vorhergehenden Schritt erzeugten Geheimtextblock per XOR (exklusives Oder) verknüpft. Die Struktur der Verschlüsselung und der Entschlüsselung im CBC-Modus ist in nachfolgenden Abbildungen dargestellt:

    CBC-Verschlüsselung
     
    CBC Entschlüsselung


  • Electronic Code Book Mode (ECB Mode) ist die einfachste Betriebsart für Blockchiffren, da jeder Klartextblock einzeln verschlüsselt wird. So ergeben gleiche Klartextblöcke unter Verwendung desselben Schlüssels immer denselben Chiffretextblock. Dies ist auch der große Nachteil dieser Methode, da die Klartextmuster erhalten bleiben. In nachfolgenden Abbildungen ist die Struktur des ECB bei der Ver- und Entschlüsselung dargestellt:

sharedKeyShared 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:  true- /  false-Angabe

encodingErforderlich für die Operation  Decrypt. Gibt das Encoding der entschlüsselten Daten an.
mimeTypeErforderlich 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.

1Die Operation wurde erfolgreich ausgeführt.

Input

Der Adapter erwartet je nach Operation verschiedene Input-Dokumente.

  • Für die OperationEncrypt erwartet der Adapter ein beliebiges Input-Dokument, z. B. XML-, Text- oder Binär-Dateien. 

    Beispielhafter Input für Operation Encrypt

    XML
    This 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

    XML
    dpi4dqEK7yiRcyz1HdLs9yxqNLIg6u8fqGR0JxADiCdHb/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

    XML
    dpi4dqEK7yiRcyz1HdLs9yxqNLIg6u8fqGR0JxADiCdHb/6PGDqSxzID6VcuecxUP44x7bkHTggDpn8DO/bgKg==
  • Bei der Operation Decrypt gibt der Adapter die verschlüsselten Eingabedaten entschlüsselt zurück. 

    Beispielhafte Ausgabe für Operation Decrypt

    XML
    This 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

    XML
    SfQYr8UlXmBIeHbZE28XkquKZHFX0qfsSTGBl+4WQDM=
  • Bei der Operation GenerateInitializationVector gibt der Adapter einen zufälligen Initialisierungsvektor abhängig vom Cipher-Algorithmus aus. 

    Beispielhafte Ausgabe für Operation GenerateInitializationVector

    CODE
    JXAxGJ343MMjwLFi78z8xw==

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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.