Praxis: die RSA-Kommandos in OpenSSL.
In diesem Video lernst du folgende Themen:
- Was ist Kryptographie?
- Vertraulichkeit, Integrität und Authentizität.
- Daten und verschlüsselte Daten.
- Algorithmen und verschlüsselte Keys.
Auszug aus dem Video
Bevor wir uns mit der Ver- und Entschlüsselung von Daten mit dem RSA-Algorithmus beschäftigen, will ich euch die RSA-Kommandos von OpenSSL vorstellen. Derzeit sind es drei Kommandos mit unterschiedlichen Funktionen und das erste Kommando ist „genrsa“. Mit „genrsa“ könnt Ihr euch in OpenSSL ein eigenes RSA-Schlüsselpaar erstellen lassen und hier seht Ihr die Hilfe in OpenSSL. Ihr habt hier zum Beispiel die Möglichkeit den öffentlichen Exponenten zu Testzwecken mit dem Wert 3 zu belegen. Mit folgenden Aufruf könnt Ihr euch alle Parameter vom Kommando „genrsa“ ausgeben lassen:
genrsa -help
Das Kommando „genrsa“ ist recht einfach zu benutzen und wir werden uns gleich als erstes ein RSA-Schlüsselpaar erstellen lassen.
genrsa -out rsa2048.asymkey 2048
Mit diesem Aufruf wird ein RSA-Schlüsselpaar mit einer Länge von 2048 Bit erstellt. Die Parameter haben folgende Bedeutung:
- „genrsa“: das Kommando in OpenSSL, was ein RSA-Schlüsselpaar erstellt.
- „-out rsa2048.asymkey“: hier gebe ich die Zieldatei an, wohin das RSA-Schlüsselpaar gespeichert werden soll. Ich benutze hierbei die Dateiendung „asymkey“ um zu kennzeichnen, das es sich eben um ein asymmetrisches Schlüsselpaar handelt.
- „2048“: als letztes wird die Schlüssellänge in Bit angegeben.
Das Kommando „rsa“
Das zweite Kommando mit dem wir in den nächsten Videos arbeiten werden nennt sich einfach nur „rsa“. Mit diesem Kommando werden wir uns einige Informationen über das RSA-Schlüsselpaar ausgeben lassen und mit folgendem Aufruf könnt Ihr euch die Hilfe in OpenSSL anzeigen lassen:
rsa -help
Wir können uns zum Beispiel den Key und den Modulus ausgegeben lassen. Oder aber OpenSSL extrahiert uns den public Key aus dem RSA-Schlüsselpaar und speichert diesen in eine separate Datei. Diese Feature werden wir sogar anwenden. Es gibt sogar eine Option für dieses Kommando, wo Ihr eurer RSA-Schlüssselpaar prüfen lassen könnt. Das ist zum Beispiel sinnvoll, wenn euer RSA-Schlüsselpaar nicht von OpenSSL erstellt wurde, Ihr aber mit OpenSSL ver- und entschlüsseln möchtet. Das würde ich euch sogar empfehlen, diese Prüfung einmal durchführen zu lassen.
Mit folgendem Aufruf könnt Ihr euch die Informationen über das eben erstellte RSA-Schlüsselpaar ausgeben lassen:
rsa -text -in rsa2048.asymkey
Ihr seht dann die ASN.1-Struktur von dem RSA-Schlüsselpaar. Die Zahlen werden in hexadezimaler Form angezeigt. Diese ganze ASN.1-Struktur nennt sich „RSAPrivatKey“ und ist in dem RFC 8017 spezifiziert. Der Modulus, also das Produkt der beiden Primzahlen steht an 2. Stelle und gehört zum public Key, der public Exponent steht an 3.Stelle. Die beiden Primzahlen selbst stehen an 5. und 6.Stelle und gehören zum private Key, müssen also geheim bleiben.
Das Kommando „rsautl“
Das letzte und wichtigste Kommando, welches wir anwenden werden, lautet „rsautl“. Mit diesem Kommando werden die Daten ver- oder entschlüsselt. Oder können sogar signiert werden. Je nach Anwendung kann der RSA public Key direkt angegeben werden. Oder wird aus einem digitalen Zertifikat ausgelesen.
Mit folgendem Aufruf könnt Ihr euch die Parameter des Kommandos ausgeben lassen:
rsautl -help
Interessant für euch könnte noch die Option „asn1parse“ sein, mit dieser werden die einzelnen Asn.1-Datentypen aufgelistet, ähnlich wie es der Asn.1-Editor darstellt. Mit dem Kommando „rsautl“ werden wir in den nächsten Videos Daten ver- und entschlüsseln, sowie Daten signieren und deren Signatur verifizieren.
Weitere Videos in diesem Onlinekurs:
Jetzt zum Newsletter anmelden und als Dankeschön einen exklusiven Gutschein Code für unsere Kryptographie Kurse erhalten.
Bleibe informiert zum Thema Kryptographie, erhalte neue Kurse als einer der Ersten und nimm an exklusiven Rabattaktionen teil. Wir verschicken keinen Spam und du kannst den Newsletter jederzeit wieder abbestellen.