El Handshake en Blockchain: Intercambio de Claves sin Confianza
Antes de que dos usuarios de Z-Text puedan intercambiar mensajes, deben completar un handshake criptografico. Este articulo explica como funciona y por que es importante para la seguridad.
Antes de que dos usuarios de Z-Text puedan intercambiar mensajes, deben completar un "handshake" -- un protocolo criptográfico que establece una clave de cifrado compartida. Este artículo explica cómo funciona y por qué es importante para la seguridad.
Por qué un handshake
En los mensajeros cifrados tradicionales, un servidor central media el intercambio de claves. Cuando envías un mensaje a alguien en Signal, su servidor facilita el acuerdo inicial de claves. Esto funciona bien pero introduce una dependencia de confianza -- confías en que el servidor entregue las claves correctas.
Z-Text no tiene servidores. El handshake se realiza completamente a través de transacciones de blockchain, haciéndolo sin necesidad de confianza y verificable. Ningún intermediario puede alterar u observar el intercambio de claves.
El protocolo
El handshake de Z-Text sigue un protocolo de intercambio de claves Diffie-Hellman modificado, adaptado para la entrega basada en blockchain:
Paso 1: Iniciación
Alice quiere enviar un mensaje a Bob. Ella conoce la z-address de Bob. La aplicación de Alice genera un par de claves efímeras y crea una transacción blindada a la z-address de Bob. El memo de la transacción contiene la clave pública efímera de Alice y su z-address.
Debido a que es una transacción blindada, nadie observando la blockchain puede ver que Alice envió algo a Bob, ni qué contiene el memo.
Paso 2: Detección
Cuando Bob sincroniza su billetera, su aplicación detecta la transacción entrante y lee el memo. La reconoce como una solicitud de handshake gracias a un marcador de protocolo específico en el formato del memo.
La aplicación de Bob muestra la solicitud de handshake con la z-address de Alice, pidiéndole que acepte o rechace.
Paso 3: Respuesta
Si Bob acepta, su aplicación genera su propio par de claves efímeras y envía una transacción de respuesta a la z-address de Alice. El memo contiene la clave pública efímera de Bob.
Paso 4: Derivación de claves
Tanto Alice como Bob ahora tienen las claves públicas efímeras del otro. Cada uno calcula independientemente el secreto compartido usando Elliptic Curve Diffie-Hellman (ECDH). Las propiedades matemáticas de ECDH garantizan que ambas partes lleguen al mismo secreto compartido sin que este sea transmitido.
Este secreto compartido se utiliza luego como base para derivar claves de cifrado simétrico para todos los mensajes futuros entre Alice y Bob.
Propiedades de seguridad
El handshake de blockchain proporciona varias propiedades de seguridad importantes:
- Confidencialidad: El intercambio de claves está oculto dentro de transacciones blindadas, invisible para los observadores
- Integridad: La prueba de trabajo de la blockchain asegura que las transacciones no puedan ser alteradas
- Autenticidad: Solo el titular de la clave privada de la z-address puede crear la respuesta del handshake
- Sin MITM: Sin un servidor central, no hay intermediario que pueda sustituir claves
Comparación con el protocolo Signal
El protocolo Signal usa un servidor central para almacenar y entregar pre-keys. Si bien esto permite el intercambio de claves asíncrono (puedes enviar un mensaje a alguien que está desconectado), requiere confiar en los servidores de Signal para entregar las claves correctas.
El handshake de blockchain de Z-Text también es asíncrono (Bob no necesita estar conectado cuando Alice envía la solicitud), pero el mecanismo de entrega es la blockchain descentralizada en lugar de un servidor corporativo. Los pasos del handshake se detectan mediante G-stream mempool push, completándose en segundos por paso, y el modelo de confianza es fundamentalmente más sólido.
Consideraciones prácticas
El handshake generalmente se completa en segundos por paso mediante G-stream mempool push. Cada paso requiere una pequeña comisión de transacción en BTCZ. Una vez establecida, la clave compartida se almacena localmente y no necesita ser renovada -- todos los mensajes futuros entre los dos contactos usan la misma clave.
Si un contacto se elimina y se vuelve a agregar, se debe realizar un nuevo handshake, generando un secreto compartido completamente nuevo.
Articulos Relacionados
Cifrado de Dos Capas: Como Z-Text Protege tus Mensajes
La mayoria de los mensajeros cifrados dependen de una sola capa de cifrado. Z-Text utiliza dos capas de cifrado independientes, cada una protegiendo contra diferentes vectores de amenaza.
Por Que Importa la Mensajeria Descentralizada
Miles de millones de mensajes fluyen a traves de servidores centralizados cada dia. La mensajeria descentralizada ofrece un modelo fundamentalmente diferente donde ninguna entidad controla la infraestructura.