Warum wird von JSON-RPC über SSL „dringend abgeraten“?

Das Wiki enthält eine Seite , die einfach besagt:

Von JSON-RPC über SSL wird dringend abgeraten

Wieso den?

Ich habe hier eine Methode zum Aktivieren von JSON_RPC über SSL gefunden . Der Beitrag erwähnt nichts darüber, dass von JSON-RPC über SSL dringend abgeraten wird. Welche Risiken gehe ich bei der Nutzung ein?

Hinweis für andere Leser: Diese Frage bezieht sich auf die Verwendung einer Befehlsschnittstelle für Bitcoin-Software und hat nicht wirklich etwas mit JSON-RPC zu tun.

Antworten (1)

Die RPC-Schnittstelle ist nicht für die Verwendung in Szenarien konzipiert, in denen SSL erforderlich wäre, also der Zugriff über das Internet oder andere nicht vertrauenswürdige Netzwerke. Es verfügt nicht über die erforderlichen Denial-of-Service-Schutzmaßnahmen oder Überprüfungen, um die Verwendung auf diese Weise sicher zu machen, und daher wäre es unglaublich unklug, potenziell bösartigen Clients eine Verbindung zu erlauben. Wenn Sie mit einer entfernten bitcoindInstanz sprechen müssen, ist es besser, mit SSHoder zu tunneln stunnel, die einen sicheren, authentifizierten Pfad bereitstellt, ohne den Socket weiter als localhost offenzulegen.

Ab 2017 wurde die Unterstützung für RPC-SSL vollständig entfernt, um die weitere Abkehr von der Abhängigkeit von OpenSSL im Daemon zu unterstützen (leider schreibt BIP70 seine Einbeziehung für den GUI-Client vor).

Ab 2019 wurde jegliche Abhängigkeit von OpenSSL erfolgreich aus bitcoind.

kann ich das zum bitcoin wiki hinzufügen??? ähm Scheiß drauf, ich mache es!
das Jahr ist jetzt 2017 und es scheint, dass die RPC-SSL-Unterstützung ganz eingestellt wurde. Stattdessen empfehlen die Versionshinweise die Verwendung von betriebssystemspezifischen Tunneling-Mechanismen. Prost. bitcoin.org/en/release/v0.12.0#rpc-ssl-support-dropped
Daher auch die Versionshinweise, als SSL fallen gelassen wurde. Erwähnt einige Lösungen: github.com/bitcoin/bitcoin/blob/…
kann ich IPSEC verwenden?
Ich habe die Argumentation nicht ganz verstanden; Das Übergeben vertraulicher Informationen im Klartext ist ein größeres Problem, es ist ein großes Nein-Nein. (es wird als häufige Schwachstelle aufgeführt cwe.mitre.org/data/definitions/319.html )
Es liegt nicht in der Verantwortung von Bitcoin Core, einen sicheren Transport bereitzustellen. Die RPC-Schnittstelle soll lokal auf einem System verwendet werden, auf dem keine Verschlüsselung erforderlich ist. Wenn sie remote verwendet werden soll, kann ein Benutzer seinen eigenen Transport wie Wireguard oder sogar SSL bereitstellen, wenn er dies wünscht, aber es ist nicht sicher dafür integriert zu sein. Die frühere Existenz von SSL in Bitcoin Core hat direkt zu einer Speicherbeschädigung in OpenSSL geführt, wodurch sicherer Speicher vom Client verloren geht.