CA autofirmada y firmas digitales

0

Se me pide que diseñe el sistema de criptografía de clave pública para dispositivos similares a IoT. Estos dispositivos se comunicarán entre sí a través de TCP / IP y también se comunicarán con un servidor de API basado en la nube. El firmware para estos dispositivos se desarrolla internamente.

Los requisitos son:

  1. Los dispositivos deben poder autenticar la identidad de cada uno y hablar a través de canales seguros.
  2. El servidor de la API también debe autenticar la identidad de todos los dispositivos.
  3. Firma digital: todas las actualizaciones de firmware llevarán una firma digital y los dispositivos solo deben actualizarse si la firma es válida.

Mi solución hasta ahora para los primeros two requisitos es:

  1. Genere una clave RSA para la empresa (manténgala privada en la empresa) y úsela para generar una CA autofirmada
  2. Utilice la CA autofirmada para generar un certificado X509 para los servidores API.
  3. Utilice la CA autofirmada para generar un certificado X509 para cada dispositivo.
  4. Agregue la CA autofirmada a cada dispositivo de CA confiable.

Soy nuevo en esto, por lo que todavía tengo algunas preguntas.

  1. ¿Es válido lo anterior?
  2. Para la firma digital, por lo que puedo decir, puedo usar la clave privada desde el paso uno para firmar los binarios de firmware. Luego, en los dispositivos, ¿podemos simplemente extraer la clave pública del certificado de CA corporativo y usarla para verificar la firma?

Gracias.

    
pregunta srd 26.04.2018 - 14:25
fuente

2 respuestas

2

1 - Lo que estás haciendo es válido, lo estás haciendo bien.

2 - No debe usar la clave en el paso 1 para firmar, sino la clave en el paso 2. La clave del paso 1 es para la CA y solo debe usarla para firmar otros certificados. Puede crear un certificado dedicado para firmar firmware, o usar el certificado de punto final de API para firmarlos. Funciona igual.

La clave del paso 1 es la parte más sensible de su infraestructura. Tratar es como la llave maestra. Úselo solo para firmar otros certificados.

    
respondido por el ThoriumBR 26.04.2018 - 15:14
fuente
1

Solo un énfasis en la respuesta de ThoriumBR.

Los certificados autofirmados se pueden usar en cualquiera de estos enfoques:

  • certificados de prueba simples sin ningún valor
  • raíz de una PKI

Para el último caso de uso, es el punto central de toda la PKI: todo pierde cualquier confianza si se compromete. Por esa razón, muy pocas personas pueden usarlo, y solo se usa (rara vez) para firmar certificados intermediarios.

El número de niveles en los certificados intermedios viene dado por la complejidad de la organización: cada persona autorizada para entregar (firmar) certificados debe poseer un certificado (privado) por motivos de auditoría. De esa manera, es posible identificar quién es responsable de un compromiso de certificado.

Nada impone que, excepto las mejores prácticas: la confianza de un certificado no puede ser superior a la confianza que puede tener en todo el proceso que lo entregó ...

De manera diferente, una infraestructura de certificado X509 no es tan difícil de construir, xca es una herramienta gráfica bien documentada que debe satisfacer sus necesidades. La parte difícil es definir procedimientos seguros para la entrega, renovación y (eventualmente) revocación de los certificados.

    
respondido por el Serge Ballesta 26.04.2018 - 16:32
fuente

Lea otras preguntas en las etiquetas