Objetivo:
- Comunicación segura entre el servidor S y Master M
- El servidor S ejecuta el script descargado de Master M (de forma segura)
Problema:
-
Huella pequeña: use el software existente (instalación básica de un sistema unix)
-
Mayormente automatizado
(Posible) "Protocolo":
Dado
- El servidor S y el maestro M comparten un SM_KEY secreto común (contraseña de un solo uso), que se intercambia por un canal seguro antes de que comience el protocolo. Puede ser un teléfono, correo electrónico cifrado entre o cualquier otro canal entre los dos propietarios del sistema
- El maestro tiene Keypair (K_M, K_M_pub) para firmar (OpenSSL)
Install-Phase
-
El servidor S genera un OpenSSH-Keypair
(K_S, K_S_pub)
-
El servidor S envía K_pub a Master M a través de HTTPS-GET / POST, así como una suma de comprobación segura de MAC:
S - > K_S_pub, MAC (K_S_pub) _SM_KEY - > M
-
Master M verifica MAC con SM_KEY y cajas fuertes K_S_pub
-
El Maestro M envía su clave pública y su suma de comprobación protegida por MAC (el servidor la "descarga" a través de HTTPS):
M - > K_M_pub, MAC (K_M_pub) _SM_KEY - > S
Fase de operación
- El servidor descarga skripts a través de HTTP para ejecutarse, los cuales están firmados por la Clave privada del maestro (K_M) y verifican con K_M_pub
- El servidor carga los resultados al maestro a través de SFTP mediante la autenticación con la clave privada K_S (el Maestro puede verificar el intento con K_S_pub)
Herramientas utilizadas
- OpenSSL para firmar / verificar (claves RSA)
- OpenSSH para SFTP (pubkey-Authentication)
- wget para solicitudes HTTPS (Comunicación del servidor al maestro)
Ataques posibles
- Instalación de MITM: debido a la MAC (K_S_pub) _SM_Key, el Maestro puede reconocerla y abortar la comunicación; El servidor puede reconocer la respuesta falsificada al verificar también MAC
- Operación MITM: solo se ejecutarán los scripts firmados, la carga está asegurada por SFTP
¿Echo de menos algo?