¿Puede un hacker inteligente robar el dinero de todos de la billetera blockchain.info?

Blockchain.info afirma :

No podemos (ni queremos):

  • Ver tu saldo
  • Ver su libreta de direcciones
  • Realiza transacciones en tu nombre
  • Confiscar su billetera
  • Bloquearlo en nuestro servicio.

Lo hacen almacenando solo el archivo de billetera encriptado que contiene las claves privadas y permitiendo que el cliente web descifre y firme usando las claves privadas sin comunicarlas nunca al servidor. Esto significa que es cierto que blockchain.info no puede realizar transacciones en su nombre.

Solía ​​pensar que esto también significaba que, si un hacker irrumpía en sus servidores, no podría robar los bitcoins de todos, porque las claves privadas no se almacenan allí.

Sin embargo, ahora no estoy tan seguro. ¿No podría el hacker simplemente cambiar el código del servidor para enviar javascript al cliente web que, cuando se ejecuta, descifra esas claves privadas y las envía de regreso al servidor (ahora pirateado)?

Tomaría más tiempo, ya que todos tendrían que iniciar sesión para verse comprometidos... pero aún así podrían robar un montón de Bitcoins.

¿Me estoy perdiendo algo o es este el estado actual de las cosas con blockchain.info?

(Tenga en cuenta que esto no pretende ser una excavación en este sitio web en particular; en realidad es más una pregunta de seguridad en general).

Respuestas (2)

Sí, el ataque que describes es posible.

Pero esto no es específico de blockchain.info ni de las billeteras en línea.

Si un atacante logra ejecutar código en su máquina, está pwned.

Siempre que un atacante logre inyectar un código que se ocupe de las claves privadas en su forma no cifrada, el atacante puede hacer que le devuelva las claves.

Una forma en que un atacante puede hacer esto es, como usted describe, comprometiendo el sitio web de la billetera en línea e inyectando javascript malicioso.

Otra forma sería comprometer el binario de un cliente bitcoin (billetera almacenada en el cliente) que instala en su máquina local.

La "seguridad adicional" que blockchain.info afirma proporcionar es que el simple hecho de obtener la base de datos de claves no es suficiente para que un atacante robe su dinero.

¿Es posible la suplantación de identidad en el cliente local? -- Me refiero a que la interfaz de bitcoin se falsifica como una aplicación local y utiliza el cliente de bitcoin real como interfaz para la cadena de bloques. Una vez más, no es un problema con la cadena de bloques per se, pero la cadena de bloques no garantizaría la seguridad.
@PhilipStern: Sí, ciertamente eso es posible.

Anticiparon este tipo de ataque y están monitoreando sus archivos JavaScript, consulte este sitio web suyo http://blockchain-status.com/javascript_verifier

Además, CloudFlare (el proxy inverso que usan) puede modificar el Javascript sobre la marcha (CloudFlare está en el otro extremo del cifrado de su navegador, por lo que SSL aquí solo asegura la conexión entre usted y las máquinas CloudFlare y, opcionalmente, CloudFlare a Blockchain .info, no te estás conectando directamente a Blockchain)

Es cierto que el script del lado del cliente no envía la contraseña al servidor, pero en realidad necesita enviar la contraseña de su billetera para usar su antigua API de billetera (está en desuso) y si un pirata informático puede controlar sus servidores de alguna manera, es posible que los piratas informáticos pueden leer la billetera sin cifrar de la memoria sin tener que inyectar scripts de clientes maliciosos, incluso si asumimos que no los están guardando en el disco.