Un server SSH malevolo può * fingere * di conoscere la chiave pubblica di un cliente?

0

Sì, so che dopo aver dato una chiave pubblica SSH a qualcun altro, si dovrebbe sempre presumere che potrebbe essere stato rapidamente pubblicato da qualche parte. (Ad esempio, fornisci la tua chiave pubblica SSH a GitHub e GitHub lo pubblicherà. Ad esempio presumibilmente questo appartiene a @Jeff Atwood , alias Coding Horror.) Questa domanda riguarda un'eccezione a questa regola generale.

Supponiamo che:

  • Il client SSH C sta tentando di accedere a un server SSH S per la prima volta , come utente u , tramite autenticazione a chiave pubblica;
  • C non conosce S l'impronta digitale della chiave pubblica SSH (ovvero l'impronta digitale della chiave host);
  • S ha una copia della chiave pubblica C in /home/u/.ssh/authorized_keys ;
  • nessuno ma C e S conosci la chiave pubblica di ;
  • M è un server malevolo identico a S sotto tutti gli aspetti (ad esempio, ugualmente capace di S è di presentarsi a C all'indirizzo IP dove C si aspetta di trovare S ), ad eccezione del fatto che M non conosce C ' s chiave pubblica.

Domanda: Può C distinguere tra M e S ?

    
posta sampablokuper 26.01.2018 - 23:37
fonte

3 risposte

-1

Nel caso più semplice, C sarebbe in grado di distinguere tra S e M inviando una firma non valida durante il pubblico sfida chiave. S sarebbe in grado di calcolare che la firma non è valida perché ha la chiave pubblica corretta.

Alcuni schemi di firma a chiave pubblica può fornire a un osservatore la chiave pubblica se può visualizzare più firme corrette create dalla chiave privata.

    
risposta data 27.01.2018 - 00:36
fonte
1

Quindi, se il client non ha conoscenza della chiave pubblica del server e non ha autorità per verificare nulla, non c'è modo di distinguere tra il server autentico e un server malevolo. Poiché il server dannoso genererebbe solo una nuova coppia di chiavi pubbliche private e fornirà la chiave pubblica corrispondente al client e tutte le corrispondenze verrebbero verificate.

Tuttavia, la premessa dell'attacco "altrettanto capace di S è di presentarsi a C all'indirizzo IP in cui C si aspetta di trovare S" è irragionevole perché ogni speranza avrebbe bisogno di lavorare insieme per instradare erroneamente l'ipaddress sbagliato così il server malevolo potrebbe manipolare i pacchetti senza rompere il tunnel. Non impossibile ma sicuramente un caso limite.

    
risposta data 27.01.2018 - 01:02
fonte
0

Se non si è mai connesso in precedenza al server e non si conosce la chiave host (o l'impronta digitale dell'host) del server a cui si sta tentando di connettersi, un server ssh dannoso potrebbe consentire a un utente di basarsi su una chiave pubblica autenticazione (o autenticazione tramite password).

In effetti, il server malevolo può fare un man-in-the-middle tra il vero server ssh e te, per autenticarti con la tua connessione in tempo reale.

Ma questo può essere prevenuto aggiungendo la chiave pubblica dell'host del vero server al tuo /etc/ssh/known_hosts o al file ~/.ssh/known_hosts per utente, e non accettando ciecamente certificati host sconosciuti OPPURE ignorare errori quando la chiave dell'host non corrisponde.

    
risposta data 27.01.2018 - 01:52
fonte

Leggi altre domande sui tag