¿Reemplazar certificados simultáneamente en servidores remotos?

1

Un servidor de terceros nos envía mensajes firmados que verificamos. Cuando su certificado está a punto de caducar, el tercero genera un nuevo par de claves y nos envía el nuevo certificado.

En algún momento, el servidor comenzará a firmar con su nueva clave, lo que requerirá que utilicemos el nuevo certificado correspondiente para verificar.

¿Cómo podemos hacer que este proceso de reemplazo de dos caras sea preciso y fácil? Sería una molestia si los mensajes fueran rechazados debido a problemas de tiempo (es decir, los conmutadores de la parte A, luego se envía un mensaje, luego los conmutadores de la parte B).

Una solución obvia podría ser probar todas las claves no vencidas, pero eso parece una contaminación de código. Particularmente porque solo enfrentamos este desafío en algunos escenarios, lo que significa que algunos las incidencias de la verificación de firmas tienen que preocuparse por varios certificados, mientras que otros no.

Otra idea es especificar una marca de tiempo. Sin embargo, es posible que los relojes del servidor no estén sincronizados, y los cachés de memoria (por ejemplo, con una caducidad de 15 minutos) podrían interferir aún más.

    
pregunta Timo 27.06.2016 - 11:38
fuente

2 respuestas

1
  

¿Cómo podemos hacer que este proceso de reemplazo de dos caras sea preciso y fácil?

La forma convencional de hacerlo es admitir múltiples certificados en el lado de la verificación. El lado del verificador debe instalar los nuevos certificados, que deben trabajar uno al lado del otro. Luego, el firmante puede intercambiar el nuevo certificado en el momento de su elección antes de que caduque el certificado anterior.

Tenga en cuenta que en la mayoría de los casos de uso de criptografía asimétrica, el verificador generalmente necesitará el soporte de múltiples certificados de todos modos, ya que el verificador podría necesitar verificar los mensajes antiguos utilizando certificados caducados. En estos casos, se debe notificar al usuario que la verificación es exitosa con un certificado caducado.

Si realmente no puede admitir varios certificados, necesitará un tiempo de inactividad sincronizado . Primero, el firmante se desactiva y borra todos los mensajes no enviados; luego, cuando el verificador termina de procesar todos los mensajes pendientes, el verificador se desactiva. Después de que ambos asistentes hayan actualizado sus certificados, los servicios pueden volver a activarse. Si el firmante es capaz de poner en cola los mensajes no enviados para ser reenviados más tarde, entonces el firmante puede restaurar el servicio en cualquier momento después de que se confirme que el verificador está inactivo; de lo contrario, el firmante tenía que esperar a que el verificador estuviera arriba antes de iniciar.

Si realmente no puede tolerar el tiempo de inactividad cada vez que caduca el certificado, entonces lo que podría hacer es utilizar una verificación de la cadena de certificados. En este esquema, crearía un certificado raíz de larga duración (por ejemplo, 10 años o más), que se utiliza para certificar certificados de hoja de vida más corta (por ejemplo, seis meses al año); el verificador aceptaría cualquier certificado que esté anclado al certificado raíz. Aún necesitaría sincronizar los tiempos de inactividad para reemplazar un certificado raíz, pero no sería necesario sincronizar la sustitución de certificados hoja. Sin embargo, deberías proteger tu certificado raíz muy caros, ya que este certificado raíz es difícil de reemplazar si está comprometido.

    
respondido por el Lie Ryan 25.10.2016 - 17:21
fuente
0

Puede resolver esto utilizando herramientas de implementación como Chef o Ansible.

Particularmente sobre Chef, tienes el Chef Push para insertar cualquier libro de cocina (es decir, los archivos clave) en todos los nodos (es decir, los servidores).

    
respondido por el yzT 27.06.2016 - 11:43
fuente

Lea otras preguntas en las etiquetas