Caducidad / imposición del cambio de frase de contraseña para claves privadas ssh

7

Por curiosidad, y también para comprobar si esto es factible:

¿Hay alguna forma de utilizar herramientas estándar para asignar una fecha de caducidad [solo] a la frase de contraseña de una clave privada ssh, o para imponer la caducidad y el cambio de la frase de contraseña sin cambiar la clave privada? (No estoy hablando de scripts que verifican [a, c, m] el tiempo del par de llaves o algo así ...)

¿O existe alguna solución estándar que logre un resultado similar, que sea imponer / asegurar el cambio regular de la frase de contraseña para la autenticación basada en clave?

Por favor, no preguntes POR QUÉ , quiero hacer eso, pero no dudes en comentar sobre la seguridad / inconveniencia / inseguridad añadidas que esto podría proporcionar.

Lo único que está vagamente relacionado parece ser el intervalo de validez que se puede especificar al crear el par de claves a través de ssh-keygen. Aunque si he entendido esto correctamente, el certificado de firma que se usó para firmar el par de llaves caducaría, por lo tanto, la clave caducaría.

    
pregunta doktor5000 07.09.2014 - 16:24
fuente

3 respuestas

6

Respuesta simple, no. Las claves SSH son claves criptográficas simples, si desea agregarle un período de validez, terminará en territorio PKI.

Hay una respuesta en el sitio de Ubuntu Stack Exchange, preguntando cómo para hacer que las claves SSH caduquen automáticamente, pero esto tiene que ver con el uso de la herramienta ssh-agent .

Alternativamente, puede usar una aplicación de terceros instalada en su servidor para que caduquen automáticamente las claves SSH según la configuración personalizada. Un buen ejemplo de esto es la herramienta SSHARK , que utiliza registros DNS personalizados para registrar la validez de la clave, y el uso de la función command= en archivo authorized_keys .

    
respondido por el StampyCode 18.03.2015 - 17:37
fuente
4

Tenga en cuenta que no hay manera de saber solo de la clave pública si la clave privada tiene una frase de contraseña asociada, y no hay forma de saber cuál es la frase de contraseña o cuándo fue se modificó por última vez, incluso con acceso a la clave privada (aunque se puede suponer que si la clave privada se ha reescrito según su última marca de tiempo modificada desde que se generó por primera vez, fue para cambiar la contraseña en la clave).

Un enfoque que no requiera acceso a las claves privadas podría ser algo como esto:

  • requiere por política el uso de una herramienta externa para distribuir el público llaves,
  • registrar en esa herramienta cuando se envió una clave pública, y
  • eliminar activamente la clave pública de todos los sistemas en la fecha de vencimiento o cuando se revoque explícitamente.

El repositorio de claves públicas centralizado debe conservar las claves caducadas durante el tiempo que sea necesario para evitar su reutilización, idealmente para siempre, pero todos sabemos cómo funciona.

    
respondido por el Mike McManus 19.03.2015 - 23:21
fuente
2

Algo que se parece a lo que usted quiere es usar una CA de usuario de SSH, que le permite establecer una vida útil en la clave firmada. Cualquier automatización que coloque alrededor de la firma de llaves puede negarse a firmar por más de 90 días. Luego, agregue la clave pública para su usuario CA a TrustedUserCAKeys en / etc / ssh / sshd_config y establezca AuthorizedKeysFile en none.

El intervalo de validez que menciona es parte del sistema de CA de SSH, y AFAIK solo se aplica en una CA de SSH.

    
respondido por el Mark 18.09.2018 - 22:56
fuente

Lea otras preguntas en las etiquetas