Un particolare server con cui ho bisogno di interagire ha un sshd
antico o azzoppato, e supporta solo gli algoritmi SHA1 per lo scambio di chiavi. Dalle informazioni contenute nei documenti di Snowden, mi dispiace che le chiavi scambiate con server con algoritmi di scambio di chiavi deboli possano essere intercettate.
Conservo un'identità separata che utilizzo solo con questo server e ho una voce ~/.ssh/config
specifica per utilizzare quell'identità durante la connessione; e il mio ssh_config
a livello di macchina non consente gli algoritmi di scambio di chiavi non sicuri.
Tuttavia, se ho aggiunto la mia chiave normale a ssh-agent
, sembra che la mia chiave si spera, più sicura, venga comunque inviata tramite lo scambio di chiavi potenzialmente insicuro.
C'è un modo per proteggere ulteriormente la mia configurazione, in modo che possa impedire che una chiave che tengo sicura e privata venga trasmessa con un algoritmo di scambio di chiavi che perde?
Se no, dovrebbe esserci ? Sembra che una parte del contratto dell'agente sia "tutti questi algoritmi di scambio di chiavi sono assolutamente sicuri al 100%, quindi è ok di inviare qualsiasi chiave". Poiché gli algoritmi di scambio delle chiavi sono non tutti sicuri, questo è (è?) Un problema.
Mentre gli algoritmi di scambio delle chiavi possono essere bloccati a livello di macchina, questo non sempre funziona nella pratica, ed è piuttosto facile sovrascriverlo accidentalmente / intenzionalmente nella configurazione per utente. C'è (o ancora, dovrebbe esserci) un modo per configurare "identità XYZ può solo essere usato con KexAlgorithms / Ciphers / MACs?"
Dettagli Gori:
Ho un'identità rsa id_insecure
che voglio usare con il server non sicuro e un'identità ed25519 id_secure
che uso per impostazione predefinita.
Per evitare alcuni algoritmi di scambio di chiavi potenzialmente deboli, il mio /etc/ssh_config
contiene:
Host *
KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256
Per consentire l'accesso al server non sicuro, poiché non possono concordare un algoritmo di scambio delle chiavi con l'impostazione precedente, my ~/.ssh/config
contiene:
Host insecure_server
IdentityFile path_to/id_insecure
KexAlgorithms diffie-helmann-group14-sha1,and-some-other-icky-sha1-algorithms
Tuttavia, se carico id_secure
nel mio agente SSH e ssh -vvv insecure_server
, l'output conterrà
debug1: Offering ED25519 public key: path_to/id_secure
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: ...
La mia comprensione è che ho appena inviato la mia identità id_secure
usando l'algoritmo di scambio di chiavi diffie-helmann-group14-sha1, che non è sicuro come una volta pensato. Se mi sbaglio su ciò che viene passato in giro ... troverei anche quella informazione preziosa.