L'autenticazione è altrettanto importante per la crittografia?

-2

Sto pensando a come implementare l'accesso di una nuova applicazione Web e mentre eseguo ricerche nella rete, la maggior parte dei risultati di ricerca riguarda l'autenticazione anziché la crittografia.

Presupposto: l'applicazione Web è progettata per scopi aziendali. L'applicazione web utilizzerà REST api per comunicare con il back-end.

I primi due risultati di ricerca da una ricerca su google con "rest api spring https" riguardano l'autenticazione anziché la crittografia, anche se ho aggiunto la parola chiave https. L'API REST non è basata su HTTP e HTTP non è crittografato?

Abbiamo alcuni dati aziendali che non sono molto sensibili, come il numero di conto. Se non utilizzo la crittografia sul valore di ritorno dell'API, non tutto dovrebbe essere in chiaro e disponibile su Internet?

    
posta lamwaiman1988 06.10.2017 - 11:14
fonte

3 risposte

4

"Sicurezza IT" consiste in obiettivi molto diversi. La crittografia descrive le tecnologie che possono essere utilizzate per raggiungere questi obiettivi, ma non è un obiettivo in sé.

Un modo per guardare IT-Sec è la triade C-I-A: riservatezza, integrità e disponibilità delle informazioni. La riservatezza descrive che le informazioni sono limitate ai destinatari previsti. Per un'API, questo di solito significa:

  • Gli utenti devono autenticarsi quando contattano l'API, cioè dimostrare che si tratta di un utente autorizzato ad accedere a tali informazioni. Gli schemi di autenticazione di solito implicano crittografia (ad esempio password in chiaro su una connessione crittografata o uno schema di autenticazione asimmetrico).

  • La comunicazione tra utente e API è confidenziale, cioè crittografata. L'utilizzo di una connessione HTTPS è un modo semplice per farlo.

La crittografia del trasporto senza autenticazione non garantisce la riservatezza, perché potresti avere una connessione crittografata con un utente non autorizzato. E la comunicazione in chiaro con un utente autorizzato non garantisce la riservatezza poiché i contenuti della comunicazione sarebbero visibili ad altri utenti della stessa rete e ai provider di rete stessi. Quindi generalmente hai bisogno di entrambi.

Non tutti i dati richiedono lo stesso tipo di protezione. La sensibilità dei dati non è sempre ovvia (ad esempio vedere il problema del serbatoio tedesco). Tuttavia, l'uso della crittografia con HTTPS è diventato così facile ed economico che non ci sono buoni motivi per evitare la crittografia del trasporto. L'HTTPS dovrebbe quindi essere considerato come una base minima per la sicurezza.

    
risposta data 06.10.2017 - 11:46
fonte
3

Sì, sono ugualmente importanti perché entrambi sono fondamentali per la sicurezza delle applicazioni. Eppure la loro implementazione dovrebbe essere rigorosamente separata.

Autenticazione e controllo degli accessi appartiene alla logica dell'applicazione e potrebbe essere implementato utilizzando Spring Security. Tuttavia per una API REST è abbastanza comune utilizzare OAuth e un server SSO (single sign-on) come Keycloak .

HTTPS o Transport layer security (TLS) è parte del protocollo di comunicazione tra server e client e deve essere gestito dal server delle applicazioni, o meglio da un server proxy inverso tra client e server delle applicazioni. Nginx o Apache sono spesso usati per questo scopo.

Per una corretta configurazione HTTPS, tieni presente quanto segue:

  • Ottenere un certificato TLS / SSL da un emittente comunemente considerato affidabile, ad es. link
  • Il server proxy inverso deve reindirizzare tutte le richieste HTTP a HTTPS e passare tutto il traffico HTTPS al server delle applicazioni
  • Il server delle applicazioni deve rifiutare tutto il traffico HTTP (può essere configurato in Spring Security)
risposta data 09.10.2017 - 12:18
fonte
1

La crittografia è uno strumento utile per la sicurezza dei dati. Tuttavia è di scarso valore pratico se si visualizzano i dati precedentemente crittografati alla persona sbagliata.

Ecco perché l'autenticazione è [più] importante.

Qualsiasi sistema di accesso deve utilizzare HTTPS.
In caso contrario, l'applicazione si troverà in una brutta sorpresa nel futuro non troppo lontano, se i tuoi utenti utilizzano Google Chrome. link

Se si dispone di dati "sensibili", allora, di nuovo, si dovrebbe usare HTTPS per proteggerlo "in transito", ma finirà, in chiaro, sullo schermo di qualcuno.

    
risposta data 06.10.2017 - 13:09
fonte

Leggi altre domande sui tag