¿Qué funciones de seguridad están integradas en el software estándar de Bitcoin?

He leído mucho sobre el algoritmo de Bitcoin y su base de cifrado, sin embargo, se ha dicho poco sobre la seguridad inherente del software.

¿Qué soluciones ya están integradas en el software y qué está previsto?

Problemas que veo:

  • Actualmente utiliza redes IRC para localizar a otros. (IRC es bastante inseguro y se elimina fácilmente con DDoS simple)

  • Las carteras no se han cifrado de forma predeterminada. (El acceso físico o remoto al disco duro proporciona a cualquier persona la billetera sin siquiera una frase de contraseña).

  • Las billeteras son estructuras de datos complejas sin herramientas de respaldo. (No se pueden realizar fácilmente copias de seguridad en una copia física impresa o en una copia digital segura. Al menos no sin usar software de terceros como PGP o TrueCrypt).

  • Los protocolos de comunicación del servidor están predeterminados en texto sin formato en lugar de SSL o algún otro tráfico cifrado.

Respuestas (1)

Esencialmente, casi ninguno. Pero todos los problemas no son particularmente serios o las soluciones propuestas realmente no ayudan de todos modos.

La última versión del cliente no usa IRC de forma predeterminada, aunque todavía se admite para ayudar a los clientes más antiguos a encontrar clientes más nuevos. En su lugar, se utiliza DNS. Pero estos realmente no son puntos de falla porque una lista de nodos legítimos que funcionan está codificada en el cliente. Y tan pronto como pueda encontrar un nodo, puede enviarle la lista actual de nodos en funcionamiento de todos modos.

Las billeteras no están encriptadas de forma predeterminada, pero si lo estuvieran, nos inundarían las quejas de "Olvidé la contraseña de mi billetera" y la gente perdería sus Bitcoins de todos modos. Además, existen razones técnicas complejas por las que proteger la billetera con contraseña no funcionará contra el modelo de amenaza típico (malware distribuido en masa con conocimiento específico de Bitcoin).

El cliente admite un comando de 'billetera de respaldo'. Pero la billetera está en formato BerkeleyDB. Desearía que el cliente tuviera un formato de billetera nativo específicamente para copias de seguridad. Se está trabajando en billeteras totalmente deterministas, por lo que puede "hacer una copia de seguridad" de su billetera simplemente conociendo una frase de contraseña, incluso sin ningún archivo de copia de seguridad. Este es un problema legítimo y en el que se está trabajando.

El servidor utiliza de forma predeterminada texto sin formato, pero también utiliza de forma predeterminada la comunicación localhost solamente y debe configurar una contraseña para ejecutarlo en modo servidor. (No hay problema en el modo GUI).

Todos estos temas están siendo trabajados. El cliente está bastante crudo en este momento, definitivamente.

Una cosa para agregar es que el cifrado de billetera a menudo se ve como la única cura para curar todo, cuando en realidad no lo es. La razón es que los virii elaborados aún pueden robar las claves no cifradas de la memoria, si tienen privilegios elevados, y existen varios otros exploits, por lo que proporcionar cifrado podría dar como resultado una falsa sensación de seguridad. No obstante, la nueva línea 0.4 de Clientes tendrá una función de cifrado, que está desactivada de forma predeterminada.
Los virus, en primer lugar, son un único punto de falla que realmente no puedes vencer. El software antivirus solo los atrapa después de que están en libertad, y muy rara vez algunas heurísticas detectan algo. Puede escribir código para protegerse contra muchos vectores de ataque, pero casi nunca puede encontrarlos todos. Mi preocupación es el acceso más deliberado, el robo de la computadora o algo así, para eso es bueno el cifrado de la billetera.