Qual è il modo più consigliato per esporre un file a un computer in una rete esterna in modo sicuro?

3

Ho due macchine in una rete interna. Uno è un server di sviluppo, isolato dalle comunicazioni esterne (né tramite HTTP, HTTPS, SSH, ecc.). L'ultimo è un server di produzione (su cui è già installato un server Web e gestisce un'applicazione Web sviluppata da un'altra persona) raggiungibile da reti esterne tramite SSH e HTTP / HTTPS.

Ho una routine che richiede un database ogni giorno e genera automaticamente un report Excel (file .xlsx). Le informazioni contenute in questo rapporto non sono né critiche né sensibili, ma sono private, quindi desidero mantenere la riservatezza se possibile (in modo che nessun agente esterno possa accedervi).

Ho la necessità di esporre questo file Excel in modo che possa essere scaricato da una macchina in una rete esterna.

Ho preso in considerazione lo sviluppo di una piccola applicazione web in modo che la macchina esterna possa connettersi a una rotta fissa attraverso un browser (diciamo ip_address / hash_salt) per scaricare il nuovo file ogni giorno (utilizzando un nome utente e una password).

Faccio questa domanda per chiedere se esiste una soluzione alternativa (magari usando SSH o SFTP o un altro protocollo) che mi consentirebbe di ottenere lo stesso in un modo sicuro (non considero la condivisione di un file attraverso HTTP / HTTPS sicuro da solo, ma potrei sbagliarmi, ovviamente).

Esiste un modo consigliato per raggiungere questa condivisione di file? Per favore, fammi sapere.

    
posta addictedtohaskell 18.09.2017 - 18:44
fonte

1 risposta

1

HTTPS con autenticazione

Mentre HTTPS si basa sull'infrastruttura PKI, rendendolo potenzialmente vulnerabile alle CA canaglia, è perfettamente adeguato per il materiale "riservato ma non estremamente sensibile". L'utilizzo dell'autenticazione di base HTTP invia la password al server e, quando viene utilizzato TLS, viene ulteriormente crittografato. Questo ti fornirà alcune garanzie di cui avrai bisogno quando gestirai informazioni riservate:

  • L'entità che richiede l'accesso ha il permesso di accedere a questo materiale?
  • Può un'entità autorizzata assicurarsi che il materiale inviato non sia stato manomesso sul filo?
  • Può un intercettatore attivo / passivo visualizzare il materiale mentre viene inviato a un'entità autorizzata?

Qualsiasi buona forma di autenticazione risolve la prima domanda e TLS risolve i secondi due. Non è necessario utilizzare in modo specifico l'autenticazione di base (in quanto ha i suoi limiti, essendo piuttosto semplice e non ideale per archiviare password sensibili create dall'utente e potenzialmente riutilizzate), purché sia presente un semplice sistema di autenticazione per garantire che solo quelli che dovrebbero scaricarlo possono farlo.

Certificati client

A seconda di quanto sia importante la riservatezza di questo materiale e in parte esattamente sulla scarsa conoscenza di "zero conoscenze IT", è possibile utilizzare anche certificati client crittografati. Questi sono certificati generati dall'utente o dal cliente e memorizzati nel browser del cliente. Non è difficile per un utente finale configurarli e usarli, ma richiede uno sforzo leggermente maggiore rispetto a quello a cui il normale utente di Internet è abituato. Richiede l'apertura delle impostazioni per il browser e l'importazione del file del certificato client, che aprirà un prompt per la creazione di una nuova password per crittografarlo. Quando successivamente accedono al tuo sito tramite HTTPS, il browser chiederà loro la password del certificato e, se è corretto, userà il certificato per autenticarlo sul tuo sito web. Questo è di gran lunga il metodo di autenticazione più sicuro basato su browser, poiché il client si autentica da solo sul server e il server si autentica da sé sul client.

Protezione di una connessione TLS

Se si finisce con l'utilizzo di HTTPS, è necessario seguire le le migliori pratiche di sicurezza per la distribuzione di TLS:

  • Utilizza una chiave privata strong (2048 bit o più grande RSA), firmata da una CA affidabile (ad esempio LetsEncrypt).
  • Disabilita le suite di crittografia non protette (come quelle delle modalità SSLv2-3 e non PFS).
  • Evita di utilizzare moduli piccoli o predefiniti se utilizzi DHE, o semplicemente usa ECDHE.
  • Attacca lo stato HTTPS utilizzando HSTS, idealmente con il preloading HSTS.
  • Usa HPKP per appuntare l'esatta chiave pubblica che usi. Questo è sicuro finché usi una chiave di backup.
  • Utilizzare la pinzatura OSCP per verificare la presenza di certificati revocati.
  • Apporta una politica CSP rigida e altre misure anti-XSS per ridurre il rischio di attacchi XSS.
  • Se pratico e fattibile, chiedi agli utenti del sito di utilizzare un browser aggiornato.
  • Verifica regolarmente il tuo sito con Test SSL di Qualys . Sul serio. È un servizio straordinario.

Sebbene ciò non sia assolutamente necessario, migliora significativamente la sicurezza dell'intera situazione più vicino a quella di SSH, pur mantenendo l'accessibilità per gli handicappati tecnologicamente. Ad un minimo assoluto , devono essere seguiti i primi quattro punti elenco e l'ultimo punto elenco.

    
risposta data 30.12.2017 - 12:18
fonte

Leggi altre domande sui tag