Ho bisogno di una crittografia aggiuntiva su HTTPS per un'API REST?

3

Configuriamo l'ambiente prima di venire alla mia domanda.

  • Abbiamo un'applicazione web che sarà accessibile dai browser / client su HTTPS.
  • Monstly accessibile solo nella intranet (raramente su Internet)
  • Frontend utilizzando Angolare
  • Backend utilizzando Java-EE

Ora sono venuto a discutere con i miei colleghi per una mia preoccupazione.

La comunicazione tra il frontend e il backend è completamente non criptata, con il risultato che le credenziali di un utente che effettua l'accesso inviano tramite il testo completamente trasparente della intranet / internet. Inoltre inseriranno dati sensibili che sono un segreto dell'azienda (ingredienti, proporzioni, ecc.).

Aggiungendo il fatto che abbiamo integrato la possibilità di accesso LDAP alla nostra applicazione, questo fatto mi sembra molto rischioso, probabilmente risultante in un punto di accesso per ottenere maggiori informazioni dall'intranet (ottenere credenziali LDAP e accedere a più servizi e macchine).

I miei colleghi hanno detto che non c'è nulla di cui preoccuparsi poiché la comunicazione tra client e server è stabilita su HTTPS.

Tuttavia, non sono riusciti a convincermi di aver fornito un solo argomento, soprattutto perché ci sono problemi noti come Stripping SSL, MITM o persino analisi del traffico. So che dovrei preoccuparmi solo di quelli se non configuriamo tutto correttamente, ma questo è anche un mio problema.

Sono sul punto che dovremmo criptare la comunicazione tra client e server in aggiunta a qualcosa come Jose4J . Ciò garantirebbe che anche in caso di violazione della Intranet o di problema HTTPS i dati sensibili sarebbero ancora segreti. Sarebbe anche più difficile analizzare il traffico.

Ora volevo ottenere una risposta che fornisse più fatti e una conclusione migliore rispetto a "ma stiamo usando https".

L'utilizzo di HTTPS solo per un'applicazione web che si occupa di dati sensibili è "sicuro" sufficiente?

    
posta Nico 24.01.2018 - 14:43
fonte

1 risposta

8

The communication between the Frontend and Backend is completely unencrypted, resulting in the credentials of a user logging in send over the intranet/internet completely clear text.

...the communication between client and server is established over HTTPS.

Stai contraddittando te stesso. Se utilizzi HTTPS, i tuoi dati non sono crittografati.

...especially since there are known problems like SSL Stripping, MITM, or even traffic analysis.

SSL stripping è risolto da HSTS. Usalo. Un MITM è esattamente ciò contro cui TLS protegge, quindi non riesco a vedere come sia un "problema noto". Non sei sicuro di cosa intendi per "analisi del traffico", ma implementare la tua crittografia a livello di applicazione non la risolverà.

Penso che tu stia sottovalutando ciò che ti offre HTTPS.

Is only using HTTPS for an Web application dealing with sensitive data "secure" enough?

In sostanza, la tua domanda si riduce a questa domanda: è sufficiente crittografare transport o ho bisogno anche della crittografia di livello application ?

Per un'applicazione Web progettata per essere eseguita nel browser, il valore di sicurezza della crittografia del livello applicazione è praticamente zero. Perché? Perché il codice che esegue la crittografia del livello applicazione dovrà prima essere trasportato al client. Se la crittografia del livello di trasporto è interrotta, tale codice può essere manomesso al vantaggio degli autori degli attacchi.

E comunque: non ti fidi di te stesso per configurare il tuo TLS. Perché dovresti fidarti di te stesso con il compito molto più complesso di configurare una crittografia a livello di applicazione sicura? Prometto, sarà molto più facile leggere semplicemente su TLS e farlo bene.

I tuoi colleghi ti hanno fornito un solo argomento, perché è l'argomento giusto. Utilizza HTTPS.

    
risposta data 28.01.2018 - 18:19
fonte

Leggi altre domande sui tag