Was sind die Teile ECDSA Eintrag in der known_hosts-Datei
Ich versuche, zu extrahieren, ein ecdsa-public-key von meiner known_hosts-Datei, das ssh verwendet, um zu überprüfen, einen host. Ich habe unten ein Beispiel.
Dies ist der Eintrag "127.0.0.1 ecdsa-sha2-nistp256" in meiner known_hosts-Datei:
AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAaaaibmlzdhayntyaaabbbf3qczkprluwunlrhafvezngcpd/rT13yFjKiCesA1qoU3rEp9syhnJgTbaJgk70ojot71fdgkwwcnczujqpffo=
Lief ich es durch einen base64-decoder, um dieses zu erhalten :
���ecdsa-sha2-nistp256���nistp256���A]2F[rUF=wXʈ'ZSzħ2r BIN::WL0rp
So, ich bin vorausgesetzt, diese Fragezeichen sind eine Art von separator[Bearbeiten: das sind Längen]. Ich dachte mir, dass nistp256 ist die elliptische Kurve verwendet, aber was genau ist das Letzte Wert? Von dem, was ich gelesen habe, wird der öffentliche Schlüssel für das ecdsa hat ein paar von Werten x und y, die stellen einen Punkt auf der Kurve. Gibt es eine Möglichkeit, extrahieren Sie die x-und y von dort?
Ich versuche, es zu konvertieren in java public key-Objekt, aber ich brauche x und y, um so zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht alle Zeichen dargestellt, da Sie binären. Schreiben Sie die Base64-dekodierten Wert auf die Datei und öffnen Sie Sie im hex-editor.
Public-key für P256 Kurve sollte 65-byte-array, beginnend ab byte mit dem Wert 4 (was bedeutet, dass nicht-komprimierte Punkt), nächste 32 Byte wäre x-Wert, und der nächste 32 - y-Wert.
Hier ist das Ergebnis hexadezimal:
Signatur-Algorithmus:
Name der Domäne Parameter:
Public-key Wert:
So müssen Sie zunächst den Namen der digitalen Signatur-Algorithmus zu verwenden, dann den Namen der Kurve und dann den öffentlichen Teil des Schlüssels, vertreten durch eine unkomprimierte EC-Punkt. Unkomprimierte Punkte beginnen mit
04
, dann die X-Koordinate (gleiche Größe wie die Größe Schlüssel) und dann die Y-Koordinate.Wie Sie sehen können, alle Feld-Werte vorangestellt werden 4 bytes, die die Größe des Feldes. Alle Werte und Felder sind mit Big-Endian-notation.