¿Hay alguna forma, sin saberlo, de la comunicación, de que la parte es el agente, sin almacenar las claves criptográficas en el agente localmente?
Bueno, si el agente tiene que usar el secreto para autenticarse en el servidor, entonces el agente debe tener algún tipo de acceso al secreto en el momento de la autenticación, y es vulnerable a los ataques de suplantación de identidad en menos durante ese lapso. Entonces es realmente una pregunta de cómo podemos:
- Minimice el formulario del acceso del agente al secreto;
- Minimice el intervalo de tiempo para que el secreto también esté disponible.
Una técnica para hacer el # 1 es darle al agente un módulo de seguridad de hardware - un módulo de hardware aislado y reforzado que genera y almacena claves, pero que no permite que los secretos escapen de él. En este caso, el agente no puede ver realmente las claves secretas; todo lo que puede hacer es enviar datos al HSM y solicitarle que realice operaciones con las claves almacenadas.
Una búsqueda rápida de "Módulo de seguridad de hardware de Raspberry Pi" muestra algunos enlaces, que es posible que desee leer. ( Este es el que me parece más interesante, personalmente). es posible que también desee buscar información sobre la interfaz de Raspberry Pi con tarjetas inteligentes o dispositivos como Yubikeys, que también son procesadores criptográficos externos.
Una técnica para # 2 es proteger el secreto de autenticación primario del agente con un segundo secreto o factor, externo al agente. Una solución podría ser:
- Proteja con contraseña la clave de autenticación del agente, por ejemplo, mediante el cifrado basado en contraseña;
- Tenga mucho cuidado de que el agente no almacene ninguna copia de contraseña o secreto de larga duración; Bórrelos inmediatamente de la memoria en cuanto haya terminado con ellos.
El inconveniente aquí es que cuando se requiere autenticación, el usuario debe ingresar la contraseña.
Para una aplicación real de estas ideas, considere Guía de seguridad de iOS de Apple . Las llaves maestras del teléfono o tableta viven dentro del "Enclave seguro" (un HSM):
El Enclave seguro es un coprocesador fabricado en el procesador A-series de Apple A7 o posterior. Utiliza memoria cifrada e incluye un generador de números aleatorios de hardware. El enclave seguro proporciona todas las operaciones criptográficas para la administración de claves de protección de datos y mantiene la integridad de la protección de datos incluso si el núcleo ha sido comprometido. La comunicación entre el Enclave seguro y el procesador de la aplicación se aísla en un buzón controlado por interrupciones y en buffers de datos de memoria compartida. [pag. 7]
Cuando el teléfono está bloqueado, descarta o encripta las claves maestras para que las aplicaciones no puedan realizar operaciones con ellas:
Si Touch ID está desactivado, cuando un dispositivo se bloquea, las claves de la clase de protección de datos completada, que se guardan en el enclave seguro, se descartan. Los archivos y elementos de llavero en esa clase son inaccesibles hasta que el usuario desbloquee el dispositivo ingresando su código de acceso. [pag. 9]