Zur weiteren Erhöhung der Sicherheit wird eine elektronische Signatur verwendet, die vom Empfänger geprüft werden kann um den Sender der Nachricht, sowie die Integrität der übermittelten Daten zu prüfen. Die Signatur wird mit dem privaten Schlüssel des Senders erzeugt und kann mit dessen öffentlichen Schlüssel vom Empfänger überprüft werden.
Der aktuell verwendete Signaturalgorithmus ist: SHA256withECDSA
In die Signatur gehen folgende Merkmale der Transportdatei ein:
- transportID (String)
- creationTimestamp (Zeitstempel)
- senderIK (String)
- receiverIK (String)
- data (byte Array)
Dazu werden die die Daten in der genannten Reihenfolge zunächst in byte arrays umgewandelt und hintereinander gehängt. Strings werden dabei als UTF8 codiert, Zeitstempel zunächst in einem Text nach ISO-8601 umgewandelt und dann ebenfalls UTF8 codiert. Die verschlüsselten Daten können direkt angehängt werden. Der resultierende Bytestrom wird dem Signaturalgorithmus übergeben.
Die folgenden Merkmale gehen nicht in die Signatur ein:
- version
- adtgekidversion
- signatureAlgorithm
- signature
- encryptionAlgorithm