Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ===== SSH Key generieren ===== SSH sollte immer in Kombination mit Schlüsseln genutzt werden. Ein SSH Schlüssel kann zur automatischen passwotlosen authentifizierung genutzt werden. Zusammen mit einem PassPhrase ist auch quasi eine zwei Faktor Authentifizerung. \\ \\ **Für einen administrativen Account sollte immer ein PassPhrase genutzt werden!** \\ \\ ==== Schlüsseltypen ==== ** Kopiert von ** [[https://nordvpn-com.translate.goog/blog/ecdsa-vs-rsa/?_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=de&_x_tr_pto=rq|Nord VPN]] \\ \\ === RSA === RSA (Rivest-Shamir-Adleman) ist ein asymmetrischer Verschlüsselungsalgorithmus, der Primzahlfaktorisierung verwendet, um einen sicheren Kanal für die Datenübertragung zu erstellen. Seit seiner Einführung im Jahr 1977 ist RSA ein grundlegender Bestandteil von SSL/TLS -Protokollen geworden und wird bis heute von einer großen Anzahl von Programmiersprachen unterstützt. Anwendungen in verschiedenen Bereichen verwenden RSA, darunter Kryptowährungen, E-Mail-Verschlüsselung, Schlüsselaustausch und digitale Signaturen. Beim RSA-Verschlüsselungsprozess werden zwei große Primzahlen (p und q) multipliziert, um eine zusammengesetzte Zahl (n) zu erhalten, die zum Erstellen öffentlicher und privater kryptografischer Schlüssel verwendet wird. Die Sicherheit der RSA-Verschlüsselung beruht auf der Annahme, dass es praktisch unmöglich ist, die zusammengesetzte Zahl wieder in ihre Primzahlen zu zerlegen – sie ist einfach zu groß. **Da RSA jedoch mit extrem großen Zahlen arbeitet, muss es einen Schlüssel mit einer Länge von mindestens 3072 Bit generieren, um dem 128-Bit-Sicherheitsstandard zu entsprechen. Arten von RSA-Schlüsseln** RSA verwendet zwei Arten von kryptografischen Schlüsseln – öffentliche und private. Beide Schlüssel sind das Ergebnis komplexer mathematischer Gleichungen. Wenn Sie Zahlen mögen, finden Sie hier eine grobe Erklärung, wie jeder der Schlüssel berechnet wird: Der öffentliche RSA-Schlüssel besteht aus der zusammengesetzten Zahl (n) und einem öffentlichen Exponenten (e). Der öffentliche Exponent ist eine Zahl, die zwei Bedingungen erfüllen muss. Erstens muss er eine Komprime zu ϕ(n) sein, wenn ϕ(n) (p−1)(q−1) ist. Zweitens sollte der öffentliche Exponent eine kleine Zahl sein, beispielsweise 65537. Der private RSA-Schlüssel besteht aus der zusammengesetzten Zahl (n) und einer privaten Komponente (d). Die private Komponente (d) wird so gewählt, dass sie einen Rest von 1 ergibt, wenn sie mit dem öffentlichen Exponenten (e) multipliziert und durch ϕ(n) dividiert wird. Sowohl der öffentliche als auch der private Schlüssel im RSA-Algorithmus enthalten die zusammengesetzte Zahl (n) – ein Element, das die beiden verbindet. Dieses Element ermöglicht es RSA, als asymmetrischer Algorithmus zu funktionieren, wodurch die Schlüssel voneinander abhängig, aber nicht austauschbar sind: Was auch immer mit dem öffentlichen Schlüssel verschlüsselt wird, kann nur mit dem privaten Schlüssel entschlüsselt werden. Was ist ECDSA und wie funktioniert es? \\ \\ === ECDSA === Der Elliptic Curve Digital Signature Algorithm (ECDSA) ist ein kryptografischer Algorithmus, der sein kryptografisches Schlüsselpaar erstellt, indem er die Konzepte des älteren DSA-Algorithmus verwendet und sie auf eine Elliptic Curve Cryptography ( ECC ) anwendet. ECDSA wurde 1992 entwickelt und wird hauptsächlich für digitale Signaturen und den Austausch kryptografischer Schlüssel verwendet. ECDSA arbeitet auf der Grundlage des diskreten Logarithmusproblems (DLP), dessen Lösung rechnerisch unmöglich ist. Im Wesentlichen wird ein Punkt P zufällig innerhalb der elliptischen Kurve (E) von ECDSA ausgewählt. Dann wird ein weiterer Punkt – Q – innerhalb derselben Kurve ausgewählt, der sich aus P multipliziert mit k ergibt. Die Schwierigkeit dieses mathematischen Problems besteht darin, dass P und Q große Zahlen sind und es äußerst schwierig ist, einen Skalar k zu finden, der die Gleichung erfüllt. Obwohl ECDSA große Schlüssel verwendet, sind diese deutlich kleiner als bei RSA. Damit ECDSA den 128-Bit-Sicherheitsstandard erreicht, reicht es aus, 256-Bit-Schlüssel zu verwenden. Im Vergleich dazu benötigt RSA mindestens 3072-Bit-Schlüssel, um demselben Standard zu entsprechen. Unabhängig von den verwendeten kleineren Schlüsseln bietet ECDSA dasselbe Sicherheitsniveau wie RSA. Die kleinere Schlüsselgröße macht ECDSA auch zu einem perfekten Algorithmus für mobile Anwendungen, da diese weniger Bandbreite benötigen. Arten von ECDSA-Schlüsseln Der ECDSA besteht aus zwei kryptografischen Schlüsseln – einem öffentlichen und einem privaten. Jeder der Schlüssel steht für ein bestimmtes Element aus der DLP-Gleichung (Q=kP): Der private ECDSA-Schlüssel steht für die zufällig ausgewählte Ganzzahl (k), die sich nicht ändert, solange das kryptografische Schlüsselpaar verwendet wird. Der öffentliche ECDSA-Schlüssel stellt den Punkt Q dar und wird aus dem privaten Schlüssel (k) abgeleitet, wenn er in der Gleichung Q=kP verwendet wird. Dabei steht P für den vordefinierten Punkt innerhalb der elliptischen Kurve. Die Schlüsselgenerierung in ECDSA erfordert viel komplexere mathematische Berechnungen als die bereitgestellte vereinfachte Version der DLP-Gleichung (Q=kP). Diese Vereinfachung hilft jedoch zu veranschaulichen, dass der öffentliche Schlüssel in ECDSA vom privaten Schlüssel abgeleitet wird und wie die beiden miteinander verbunden sind. \\ \\ ==== SSH Key mit PassKey generieren ==== <code>ssh-keygen -t ecdsa -b 521 -E sha256 -o -a 1000</code> PassPhrase festelegen! |-t| Schlüsseltyp| |-b| Bitlänge, quasi die Länge der Kurve| |-E| Hash des Fingerprints| |-a| Durch wieviele Runden KDF (key derivation function, currently bcrypt_pbkdf) ist der Key gegen Bruteforce geschützt| \\ \\ ==== Server Konfiguration ==== Um einen Login per Schlüssel zu konfigurieren muss auf dem Server der public Key hinterlegt werden. Entweder durch <code>ssh-copy-id USERNAME@SERVER</code> oder man erstellt die Datei authorized_keys per Hand <code>nano /home/USERNAME/.ssh/authorized_keys</code> Hier wird stumpf der Inhalt von der Datei id_ecdsa.pub hinein kopiert.