¿Por qué JSON-RPC sobre SSL está "fuertemente desaconsejado"?

El Wiki contiene una página que simplemente dice:

Se desaconseja encarecidamente JSON-RPC sobre SSL

¿Por qué?

Encontré un método para habilitar JSON_RPC sobre SSL aquí . La publicación no menciona nada acerca de que JSON-RPC sobre SSL esté fuertemente desaconsejado. ¿Qué riesgos corro al usarlo?

Nota para otros lectores: esta pregunta trata sobre el uso de una interfaz de comando para el software de Bitcoin, y en realidad no tiene nada que ver con JSON-RPC.

Respuestas (1)

La interfaz RPC no está diseñada para usarse en ningún escenario que requiera SSL, que sería acceso a través de Internet u otras redes no confiables. No tiene las protecciones de denegación de servicio necesarias o la revisión para que sea seguro para su uso de esta manera, por lo que permitir que los clientes potencialmente maliciosos se conecten sería increíblemente imprudente. Si necesita hablar con una bitcoindinstancia remota, es mejor que haga un túnel SSHo stunnelque proporcione una ruta segura y autenticada sin exponer el socket más allá de localhost.

A partir de 2017, la compatibilidad con RPC SSL se eliminó por completo para respaldar el alejamiento continuo de la dependencia de OpenSSL en el daemon (lamentablemente, BIP70 exige su inclusión para el cliente GUI).

A partir de 2019, toda dependencia de OpenSSL se eliminó con éxito de bitcoind.

¿Puedo agregar esto a la wiki de bitcoin? ermmmm ¡A la mierda, lo estoy haciendo!
el año es ahora 2017, y parece que el soporte RPC SSL se ha eliminado por completo. En su lugar, las notas de la versión recomiendan utilizar mecanismos de tunelización específicos del sistema operativo. Salud. bitcoin.org/en/release/v0.12.0#rpc-ssl-support-dropped
También de ahí las notas de la versión cuando se eliminó SSL. Menciona algunas soluciones: github.com/bitcoin/bitcoin/blob/…
¿Puedo usar IPSEC?
no entendí muy bien el razonamiento; pasar información confidencial en texto claro es un problema mayor, es un gran no-no. (aparece como una debilidad común cwe.mitre.org/data/definitions/319.html )
No es responsabilidad de Bitcoin Core proporcionar un transporte seguro. Se supone que la interfaz RPC se usa localmente en un sistema donde no se requiere cifrado; si se va a usar de forma remota, un usuario puede proporcionar su propio transporte, como wireguard o incluso SSL, si así lo desea, pero no es seguro. ser un integrado. La existencia previa de SSL en Bitcoin Core ha resultado directamente en la corrupción de la memoria en OpenSSL que filtra la memoria segura del cliente.