Zum Inhalt springen
buybitcoinsmart

Glossar / Entwicklerreferenz

PP pki data

Was ist PP pki data?
PP pki data war das Feld in einer BIP70-Zahlungsanforderung, das die Zertifikate des Händlers transportierte, DER-kodiert, das Blattzertifikat zuerst, dahinter etwaige Zwischenzertifikate und ohne das Wurzelzertifikat.

Spezifiziert im BIP-70.

Eine Signatur ist wertlos ohne den öffentlichen Schlüssel, der sie prüft, und BIP70 lieferte diesen Schlüssel in einem Zertifikat statt für sich allein. Das Feld enthielt einen kleinen Protobuf-Wrapper um eine Liste roher DER-Zertifikate, geordnet vom Händler nach außen. Was darin stand, entschied, ob eine Wallet einen Firmennamen oder eine bloße Warnung anzeigte.

So funktioniert es

Status: historisch. PP pki data war Feld 3 der fünf in einer PaymentRequest-Nachricht, und Bitcoin Core entfernte den Code, der es las, in Version 0.20.0, veröffentlicht am 3. Juni 2020.

In den Bytes steckte eine Protobuf-Nachricht namens X509Certificates mit genau einem wiederholten Feld, wobei jeder Eintrag ein vollständiges Zertifikat in binärer Form war. Die Reihenfolge war vorgeschrieben und nicht dem Geschmack überlassen: das eigene Zertifikat des Händlers kam zuerst, dann die Zwischenzertifikate, die nötig waren, um eine öffentliche Wurzel zu erreichen.

Die Wurzel selbst fehlte bewusst, und diese Überlegung gilt weit über BIP70 hinaus. Eine Wurzel, die Sie von der Stelle erhalten, die Sie prüfen wollen, beweist nichts, denn jeder kann eine erzeugen und damit Beliebiges signieren. Vertrauen muss aus einer Liste kommen, die Ihr Gerät bereits besitzt.

DER, die verwendete Kodierung, ist die kanonische binäre Form von ASN.1: eine Struktur, genau eine zulässige Bytefolge. Das bekannte PEM-Format mit seinen BEGIN CERTIFICATE-Zeilen sind dieselben Bytes in base64, was etwa ein Drittel mehr Platz kostet, deshalb ist das Übertragungsformat immer das rohe.

Zertifikate bestimmten die Größe einer Anforderung. Ausgaben, ein Zeitstempel und eine Notiz mochten zusammen ein paar hundert Byte ergeben, während ein RSA-2048-Zertifikat allein einen 256-Byte-Modulus und eine 256-Byte-Signatur trägt, bevor Namen oder Erweiterungen gezählt werden, und zwei davon in Folge erreichen Tausende. Wo der pki type "none" war, war das Feld einfach leer und eine Wallet hatte nichts anzuzeigen außer dem Ziel.

Wo Sie es sehen

Dieselbe Zertifikatsliste, in derselben Reihenfolge mit dem Blattzertifikat zuerst, kommt bei jeder HTTPS-Verbindung an, die Sie herstellen.

Ein TLS-Server sendet zuerst sein eigenes Zertifikat und danach die Zwischenzertifikate, und lässt die Wurzel aus dem oben genannten Grund weg. Sie können die genaue Liste, die eine Website sendet, mit einem Befehl lesen, openssl s_client -showcerts -connect example.com:443, und was ausgegeben wird, ist genau dasselbe Material, das BIP70 transportierte, angezeigt in PEM statt binär.

Für jemanden, der Bitcoin kauft, liegt die Lehre in dem, was diese Bytes nicht sagen. Eine gültige Kette beweist, dass irgendeine Autorität zum Zeitpunkt der Ausstellung die Kontrolle über einen Domainnamen geprüft hat. Sie sagt nichts darüber, wem die Firma gehört, ob die Seite eine Kopie einer Börse ist oder ob diese Börse Auszahlungen bedienen kann. Phishing-Websites tragen völlig gültige Zertifikate, kostenlos und in Sekunden erhalten, und das Schloss, das sie erzeugen, ist von dem echten nicht zu unterscheiden.

Lesen Sie also die Domain, nicht das Schloss. Rufen Sie eine Börse über ein Lesezeichen auf, das Sie einmal angelegt haben, statt über eine Suchanzeige, und behandeln Sie eine Zertifikatswarnung auf einer Website, die Ihr Geld hält, als Schlusspunkt und nicht als Aufforderung.

PP pki data vs. Zertifikatskette

PP pki data war ein Container; die Zertifikatskette ist das, was hineinkam. Von pki data zu sprechen ergibt nur Sinn, wenn Sie BIP70-Dokumentation oder archivierten Wallet-Quellcode lesen, denn nichts anderes hat den Begriff je verwendet. Eine Kette dagegen ist etwas Lebendiges, auf das Sie täglich angewiesen sind, und die Ordnungsregel, die BIP70 festhielt, Blattzertifikat zuerst und die Wurzel ausgelassen, ist die Regel, die TLS noch immer befolgt.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Warum wurde das Wurzelzertifikat nie in eine Zahlungsanforderung aufgenommen?

Weil eine vom Absender gelieferte Wurzel nichts beweist. Jeder kann eine Wurzel erzeugen und damit Beliebiges signieren, deshalb muss Vertrauen aus der Liste kommen, die bereits auf Ihrem Gerät installiert ist, und nicht aus Bytes, die der Händler anzuhängen beschloss.

Bedeutet ein gültiges Zertifikat, dass eine Börse sicher zu nutzen ist?

Nein. Es bedeutet, dass jemand gegenüber einer Zertifizierungsstelle die Kontrolle über diesen Domainnamen nachgewiesen hat. Es enthält keine Information über Zulassung, Zahlungsfähigkeit oder Ehrlichkeit der Firma, und eine täuschend ähnliche Domain erhält genauso leicht ein gültiges Zertifikat.

Verwandte Begriffe

Mehr zum Thema Entwicklerreferenz

Diese Seite auf Englisch lesen