Target:
- Comunicazione sicura tra il server S e Master M
- Server S esegue script scaricato da Master M (sicuro)
Problema:
-
Ingombro ridotto: utilizza il software esistente (installazione di base di un sistema unix)
-
Quasi completamente automatico
(Possibile) "Protocollo":
Data
- Server S e Master M condividono un SM_KEY segreto comune (una sola volta), che viene scambiato su un canale protetto prima dell'avvio del protocollo. Questo può essere telefono, posta elettronica crittografata o qualsiasi altro canale tra i due proprietari di sistema
- Master ha Keypair (K_M, K_M_pub) per la firma (OpenSSL)
Install-Phase
-
Il server S genera un OpenSSH-Keypair
(K_S, K_S_pub)
-
Il server S invia K_pub al Master M tramite HTTPS-GET / POST, oltre al checksum protetto da MAC:
S - > K_S_pub, MAC (K_S_pub) _SM_KEY - > M
-
Master M verifica MAC con SM_KEY e safes K_S_pub
-
Master M invia la sua chiave pubblica e il checksum protetto da MAC (il server lo "scarica" via HTTPS):
M - > K_M_pub, MAC (K_M_pub) _SM_KEY - > S
Fase operativa
- Il server scarica gli script via HTTPs per eseguirli firmati dalla chiave privata del master (K_M) e verificarlo con K_M_pub
- Il server carica i risultati per eseguire il master tramite SFTP mediante l'autenticazione con la chiave privata K_S (il master può verificare il tentativo con K_S_pub)
Strumenti usati
- OpenSSL per firma / verifica (chiavi RSA)
- OpenSSH per SFTP (pubkey-Authentication)
- wget per HTTPS-Richieste (comunicazione dal server al master)
Possibili attacchi
- Installazione MITM: a causa del MAC (K_S_pub) _SM_Key il Master può riconoscerlo e interrompere ulteriori comunicazioni; Il server può riconoscere la risposta falsificata verificando anche il MAC
- Operazione MITM: verranno eseguiti solo script firmati, il caricamento è protetto da SFTP
Mi manca qualcosa?