Recientemente compramos un certificado SSL comodín para nuestro dominio. Convertimos todos los certificados a un almacén de claves Java, pero ahora nos preguntamos dónde deberíamos almacenarlos para su uso posterior.
¿La gente usa el control de fuente como BitBucket para este tipo de archivos o simplemente genera cada vez que se necesita, o algo más?
Nos preguntamos si existe una solución estándar o alguna "mejor práctica" para almacenar estos certificados para uso futuro.
ssl-certificate
certificate
best-practices
Criptonita Americana
fuente
fuente
Respuestas:
Hay múltiples soluciones:
Una avenida es un almacén de claves específico, ya sea un dispositivo basado en hardware, un módulo de seguridad de hardware o un equivalente basado en software.
Otra es simplemente revocar la clave anterior y generar una nueva clave privada / pública cuando surja la situación. Eso cambia un poco el problema de mantener la seguridad clave a asegurar el nombre de usuario / contraseña de la cuenta con el proveedor de certificados y sus procedimientos para volver a emitirlos. La ventaja es que la mayoría de las organizaciones ya tienen una solución de administración de cuentas privilegiada, por ejemplo, 1 2
Hay múltiples formas de almacenamiento fuera de línea, desde imprimir una copia impresa del par de claves pública y privada, incluida la contraseña (pero que será una perra para restaurar) hasta simplemente almacenarlas en medios digitales clasificados para almacenamiento a largo plazo .
Los lugares realmente malos son GitHub, tu equipo WiKi o un recurso compartido de red (y te haces una idea).
Actualización 2015/4/29: Keywhiz parece un enfoque interesante también.
fuente
No, los certificados SSL no entran en el control de origen, al menos no en la parte de la clave privada.
Trátelos como si fuera una contraseña. Los nuestros se almacenan exactamente de la misma manera que nuestras contraseñas: en KeePass. Le permite adjuntar archivos y está encriptado.
fuente
Si coloca la clave privada en el control de origen, cualquier persona que tenga acceso a ella podrá suplantar su servidor. Si su servidor web no está utilizando PFS (secreto directo perfecto), entonces también es posible descifrar cualquier tráfico SSL capturado con herramientas de código abierto comúnmente disponibles como Wireshark.
Puede proteger la clave DES o AES cifrándola con una frase de contraseña con OpenSSL. OpenSSL está disponible para Linux, OSX y Windows.
OpenSSL también puede eliminar la frase de contraseña cuando una frase de contraseña es inconveniente (por ejemplo, en un servidor web que se inicia automáticamente pero no admite la entrada automática de frases de contraseña).
Agregar una frase de contraseña con cifrado AES (más seguro que DES): -
Eliminar una frase de contraseña (se le pedirá la frase de contraseña): -
fuente
Otra opción, después de leer sobre KeyWhiz, era la Bóveda de HashiCorp. No es solo un administrador de contraseñas, sino una tienda de Secretos, creo que es algo similar a KeyWhiz. Está escrito en GO, y el cliente también funciona como servidor, y se conecta a un montón de backends y métodos de autenticación. Vault también es de código abierto, con la opción Enterprise también.
Dado que las claves y los certificados SSL son solo archivos de texto, puede codificarlos en base64 y guardarlos como una cadena en Vault, o incluso solo el texto en Vault. No hay una WebUI o GUI, es toda la línea de comandos o guión guiada, y tiene una API web muy buena y estable para arrancar.
fuente
Recomendaría buscar un HSM fuera de línea (como un token de cifrado de hardware o un CAC) para almacenar la clave privada y el certificado. Esto no solo protege la clave privada de un compromiso accidental, sino que también proporciona una descarga criptográfica básica.
Si tiene más activos criptográficos para administrar, recomendaría buscar un software Enterprise Key & Certificate Management, que puede automatizar las renovaciones, rastrear el ciclo de vida, automatizar el aprovisionamiento a los puntos finales, etc. La mayoría de estos almacena el activo cifrado en reposo como un CLOB en una base de datos.
fuente