È sicuro usare i file .netrc per memorizzare le credenziali per strumenti come curl o ftp?

3

Il file .netrc può contenere credenziali di nome utente e password per vari siti, per consentire una più semplice invocazione di strumenti. Ad esempio, arricciare con l'opzione -n leggerà le credenziali dal file, per il sito di destinazione specificato. Oppure FTP fa lo stesso.

Anche gli strumenti e gli script da riga di comando personalizzati possono essere progettati per leggere le credenziali dallo stesso file.

Supponendo che il file stesso abbia le autorizzazioni 0400, questo è generalmente considerato sicuro? persone diverse sembrano avere opinioni diverse.

    
posta Cheeso 21.07.2015 - 23:41
fonte

2 risposte

4

L'archiviazione delle credenziali in testo non crittografato sul tuo computer è un'attività rischiosa in quanto qualsiasi applicazione in esecuzione sul tuo computer ha accesso a queste credenziali. Le credenziali sono anche esposte in backup, zip, ecc ...

I file .netrc sono un obiettivo primario per gli attaccanti che cercano di espandersi verso altri computer.

    
risposta data 21.07.2015 - 23:54
fonte
1

C'è molto dibattito su questo. Mentre la risposta di Neil è corretta, la memorizzazione di credenziali sul tuo computer è intrinsecamente rischiosa. Anche se li si cripta e li si archivia in una posizione unica, il software che si esegue deve accedere alle chiavi di crittografia. Se inserisci le chiavi di crittografia ogni volta (o una password per sbloccarle o simili), potrebbe essere altrettanto semplice inserire le credenziali.

Questo problema non è unico per le password. Un * x tende a fare molto affidamento sui permessi dei file (controllo degli accessi), ma non possono differenziare un processo in esecuzione come utente da un altro. Ad esempio, anche le chiavi private SSH memorizzate in ~/.ssh rappresentano un rischio.

Il vantaggio principale di una posizione standard per credenziali come .netrc è tenerli separati dagli script o da altri programmi che li utilizzano. Ad esempio, se si scrive uno script di shell che automatizza una sessione FTP, incorporando il nome utente e la password nello script anziché un file .netrc , le credenziali vengono inavvertitamente condivise poiché lo script è archiviato nel controllo sorgente o copiato in altri sistemi.

L'utilizzo di una posizione centrale come .netrc consente anche alle persone di avere le proprie credenziali per accedere ai sistemi. Gli account condivisi sono disapprovati perché le attività non possono essere attribuite a un individuo. Altrimenti, gli individui hanno bisogno delle proprie copie di script.

Il secondo vantaggio è avere una sola posizione per aggiornare le credenziali modificate. Se più script o programmi utilizzano le stesse ma vecchie credenziali, è possibile bloccare gli account. La modifica del file .netrc può aggiornare più script o programmi contemporaneamente.

Detto questo, la crittografia delle password a riposo impedisce l'accesso involontario alle password, ad esempio tramite backup, spalline o simili. Se è necessario memorizzare le credenziali su un sistema, considerare qualcosa come un archivio crittografato sul file .netrc di testo normale se disponibile. Ad esempio, git ora supporta file .netrc crittografati .

    
risposta data 28.05.2016 - 03:46
fonte

Leggi altre domande sui tag