Validación de certificado TLS fácil de usar

2

Estoy diseñando una aplicación en la que los clientes generan sus propios certificados TLS ad-hoc (no hay una autoridad central).

Cuando dos clientes interactúan por primera vez, necesito que comprueben mutuamente el certificado de sus compañeros. Sé que generalmente se usan huellas dactilares para esto, pero necesito mantenerlo más adaptado a los principiantes, por lo que hacer que comprueben 20 caracteres hexadecimales (SHA-1) no suena muy convincente.

Pensé en representar la misma huella digital con los caracteres 0-9a-zA-Z (dándome 62 caracteres para representar el mismo valor), pero todavía tiene 13 dígitos.

¿Hay alguna forma común (o quizás no tan común) de que dos usuarios validen sus certificados mutuos? Esta es una aplicación en tiempo real de baja latencia, por lo que son posibles varios viajes de ida y vuelta.

EDIT
Los usuarios pueden intercambiar información en persona en este escenario, por lo que es posible decir (o mostrar) un código entre ellos. Sin embargo, me gustaría evitar que tengan que observar 20 caracteres y verificarlos manualmente, principalmente para facilitar su uso.

    
pregunta WhyNotHugo 28.04.2015 - 10:11
fuente

1 respuesta

2

Aquí hay tres ideas.

Utilice una CA
Como los comentaristas ya dijeron: Haz que confíen en un CA. Es menos doloroso. Y se escala mucho mejor. Cada participante solo tendrá que verificar la autenticidad de la entidad emisora de certificados una vez y luego podrá comunicarse con todos los demás participantes. (Entonces, por supuesto, tendrá que confiar en la CA, muchísimo. Pero considero que esta es una buena compensación en su caso).

Método de audio de persona a persona: use la lista de palabras PGP
Si realmente desea la verificación individual "1 a 1", utilice una lista de palabras de octeto. Asigna cada byte hexadecimal (0x00 a 0xFF) a una o más palabras.
PGP ha hecho esto: Wikipedia: lista de palabras PGP

Método de imagen legible por máquina: utilice un código QR
Un mensajero instantáneo que uso se llama "Threema". Y hacen hincapié en la seguridad de extremo a extremo y no es necesario confiar en una CA. Alice no necesita verificar la clave de Bob para mandarle mensajes instantáneos. Pero si Alice quiere verificar la clave de Bob, entonces ambas se encuentran cara a cara y Bob presiona el botón de mostrar mi tecla como código QR en la aplicación. Y Alice selecciona los datos de contacto de Bob y luego presiona el botón de escanear esa persona con la tecla a través del código QR.

(Hay tres niveles de confianza en la aplicación. El mejor nivel de confianza está reservado para las personas que se han encontrado cara a cara. Enlace web: Threema Levels (Archivado aquí .))

    
respondido por el StackzOfZtuff 28.04.2015 - 10:44
fuente

Lea otras preguntas en las etiquetas