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:
- Los dispositivos deben poder autenticar la identidad de cada uno y hablar a través de canales seguros.
- El servidor de la API también debe autenticar la identidad de todos los dispositivos.
- 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:
- Genere una clave RSA para la empresa (manténgala privada en la empresa) y úsela para generar una CA autofirmada
- Utilice la CA autofirmada para generar un certificado X509 para los servidores API.
- Utilice la CA autofirmada para generar un certificado X509 para cada dispositivo.
- Agregue la CA autofirmada a cada dispositivo de CA confiable.
Soy nuevo en esto, por lo que todavía tengo algunas preguntas.
- ¿Es válido lo anterior?
- 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.