Primero: la primera regla de criptografía: ¡No lance su propio criptográfico!
Segundo: ¿Por qué quieres configurar este servicio? Señal (+ OTR o Axolotl ) hace todo esto para: Está abierto: source, permite la verificación entre pares, ofrece encriptación de extremo a extremo, ofrece almacenamiento encriptado del lado del cliente y en el que confían todos los criptógrafos conocidos.
Divulgación: sí utilizo Signal y estoy convencido de su calidad, no estoy trabajando para OpenWhisperSystems o de otra forma afiliada.
Pero ahora, vayamos a responder sus preguntas:
Entiendo que esto es básicamente lo que es SSL, pero es realmente el
La mejor opción que existe, especialmente si los servidores de certificados son los EE.UU.
basado?
SSL (o, más moderno, denominado TLS ) generalmente proporciona seguridad de transporte entre los usuario y sus servidores. No hace nada por sí mismo más allá de eso. Podría permitir a los clientes establecer sesiones TLS entre ellos (lo que resultaría en un buen cifrado de extremo a extremo), sin embargo, TLS está más diseñado para ser un protocolo de seguridad en tiempo real (algo). En cuanto a los certificados, si utiliza algo más que el intercambio de claves RSA , una fuga de la clave privada no permitirá el descifrado de datos TLS (si eliminó el efímero (EC) DHE teclas) pero permitiría ataques de hombre en el medio (esto supone que se usa DHE anónimo / efímero (EC)). Adaptar un estilo de estilo TOFU u otro mecanismo de actualización de claves podría hacer que la conexión sea resistente al hombre en los ataques medios después de la conexión inicial.
¿Es posible tener claves de cliente generadas dinámicamente solo almacenadas
en dispositivos móviles que no pueden ser descifrados por mí?
Absolutamente. OTR ya incluye dicha funcionalidad. Básicamente, usted desea terminar como una retransmisión de los mensajes que transmiten los clientes (como la infraestructura de Internet estándar) mientras negocian de forma segura un secreto compartido a través de sus servidores. Puede verificar su compañero comparando los hashes del secreto compartido de Diffie-Hellman (o la clave pública de la otra parte utilizada para autenticar las claves públicas de Diffie-Hellman) out-of-band .