Cómo almacenar de forma segura un certificado en servidores

El problema de las claves / certificados / contraseñas necesarios para autenticar / descifrar algo automáticamente no tiene una solución real. Muchas compañías afirman tenerlo, pero verá que en la 17ª diapositiva de la presentación de marketing todavía necesita escribir algo en algún momento.

Si necesita exponer algo (por ejemplo, un certificado) a otro servicio, tarde o temprano necesitará una versión utilizable (sin cifrar) de esa cadena, que debe almacenarse en algún lugar. Ha habido muchos intentos de mitigar este riesgo (entre otros, OAuth, que al menos ayuda a eliminar el almacenamiento persistente), pero no puede haber (con la tecnología actual) una solución debido a la naturaleza del cifrado (necesita una clave para descifrarlo) .

Es posible que desee mitigar restringiendo el acceso a través de otros elementos (por ejemplo, una dirección IP además del certificado, que requiere que estén disponibles dos elementos no relacionados)

Hay una excepción a eso: hashes. La idea es que tiene una información A que se “hash” (una operación matemática) en HashOfA que tiene dos propiedades:

  • cualquier A y B siempre dará lugar a diferentes hashes (no se llaman colisiones)
  • si hash algo y obtienes HashOfA estás seguro de que algo = A

Así es como se almacenan las contraseñas (con la advertencia obligatoria sobre la salazón)