Come HTTPS e crittografia dei dati (a livello di applicazione / crittografati dallo sviluppatore) differiscono?

2

HTTPS rende sicura la trasmissione dei dati crittografando il traffico tra il client e il server. Supponiamo che un'applicazione abbia la propria tecnica di crittografia incorporata che crittografa i dati ad es .: (Login username e password).

  1. È ancora necessario HTTPS se il nome utente / password sono crittografati a livello di applicazione?
  2. In che modo HTTPS rende i miei dati più sicuri anche se ho implementato la crittografia a livello di software?
  3. In che cosa differiscono entrambi i concetti? E come può essere una scappatoia di sicurezza se uno di essi non è implementato in un ambiente molto critico?
posta LUHAR 13.11.2017 - 16:07
fonte

2 risposte

2

HTTPS make your data transmission secure by encrypting the traffic between the client and the server.

La crittografia è solo una parte della sicurezza durante il trasferimento dei dati. La seconda e simile parte importante è l'autenticazione, cioè assicurandoti di parlare con il server corretto. Inoltre, TLS rileva la modifica dei dati al di sopra della crittografia. Ciò è necessario poiché molti metodi di crittografia non si rendono conto se i dati crittografati sono stati modificati, ma invece semplicemente decodificano questi dati in qualcosa di diverso. Inoltre, TLS ti consente di generare in modo sicuro una chiave di crittografia unica per la connessione in modo da non dover scambiare in qualche modo una chiave segreta comune a tutte le parti in anticipo.

Is HTTPS still needed if the username/password is encrypted at the application level?

Se tutto ciò che devi proteggere sono nome utente e password e la tua protezione è strong come quella di TLS (cioè crittografia strong con chiave unica e non pre-condivisa, autenticazione strong, rilevamento di modifiche) allora non hai bisogno anche per usare TLS. Ma in molti scenari non solo il nome utente e la password sono sensibili e devono essere protetti, ma anche i contenuti del sito Web potrebbero essere protetti (come estratti conto bancari, rapporti sulla salute o simili) o persino l'URL che visiti. E anche la protezione dalle modifiche è necessaria, ad esempio nel settore bancario online. Inoltre, spesso non hai infrastrutture per scambiare in modo sicuro la chiave di crittografia e affidarti a una chiave codificata all'interno dell'applicazione potrebbe essere troppo insicuro.

How HTTPS make my data more secure even if I have encryption implemented at the software level?

Se tutto è già crittografato con la stessa forza di TLS (vedi ultimo punto), TLS non aggiunge più sicurezza.

How do both concepts differ? And how it can be security loophole if one of them is not implemented in a very critical environment?

TLS fornisce la crittografia end-to-end tra l'applicazione client e server. Con la crittografia a livello di applicazione è possibile aggiungere ulteriore sicurezza, se necessario, ad esempio crittografando le informazioni sensibili non solo durante il trasferimento ma anche a riposo (file, database ..).

Un esempio tipico per vedere queste differenze è il recapito della posta. TLS può essere utilizzato quando si consegna la posta tra ciascuno degli agenti di trasferimento della posta (MTA). Ma su ogni MTA la posta è visibile in chiaro poiché la connessione TLS protegge solo il trasferimento tra il MTA. Se si desidera aggiungere più sicurezza, è possibile utilizzare S / MIME di PGP che aggiunge la crittografia a livello di applicazione. In questo modo il MTA può vedere solo la posta crittografata e può essere decifrato dal destinatario finale solo chi ha la chiave di crittografia (o può calcolarla).

    
risposta data 13.11.2017 - 16:22
fonte
1

HTTPS fa più di "crittografare" i tuoi dati.

Oltre alla crittografia, espone anche le informazioni di autenticità (e.a. è il server che penso sia?)

Inoltre, viene gestito in modo diverso dai browser / API rispetto alle connessioni HTTP. (come non condividere i dettagli su ciò che viene inviato).

Anche proxy / cache tra client e server gestiscono HTTPS in modo difforme da HTTP, come non inviare la persona B al contenuto crittografato di Person A.

In breve, HTTPS riguarda la protezione dei dati in transito. Crittografando il nome utente / password / qualsiasi dato si tratta più di proteggerlo a riposo che in transito. questi obiettivi si sovrappongono, ma hanno sottili differenze che fanno la differenza.

Come esempio di una delle differenze quando si effettua una richiesta HTTP come " link " tutti gli utenti della catena possono vedere quell'URL ( e potrebbe cambiarlo / manipolarlo).

Mentre utilizziamo HTTPS per fare una richiesta a  " link " tutto ciò che chiunque può vedere in chiaro è l'IP coinvolto e " link " il resto del messaggio è crittografato e il messaggio completo è protetto da manomissioni.

    
risposta data 13.11.2017 - 16:17
fonte

Leggi altre domande sui tag