I certificati autofirmati nelle applicazioni mobili e desktop sono sufficienti? [duplicare]

2

Desidero proteggere il trasferimento dei dati utilizzando TLS tra le mie applicazioni client mobili e desktop e il mio server. Al momento non sono interessato alle applicazioni basate sul Web, quindi non mi interessa che il mio browser ritenga che il mio certificato autofirmato sia dannoso e visualizzi un messaggio errato in tal senso, perché non esiste un browser per farlo in le mie applicazioni client.

Mi piacerebbe auto-firmare i miei certificati se possibile puramente per convenienza e costi, anche se so che i certificati non sono poi così costosi.

La mia domanda è, per le applicazioni basate su client mobili e desktop, sono sufficienti certificati autofirmati? Sono sicuri?

    
posta Antinous 25.04.2018 - 11:29
fonte

2 risposte

1

Per la sicurezza dei dati, la tua chiave conta. Poiché la maggior parte delle persone non sa che i tuoi certificati di chiave (pubblici) sono un modo in cui alcune istanze affidabili possono verificare la tua chiave e firmare un certificato "la chiave appartiene effettivamente al dominio X".

Per quando non è necessaria una CA pubblica, è costosa o non disponibile per altri motivi, è possibile creare un certificato autofirmato firmato con la chiave stessa. Gli utenti non hanno un modo diretto per verificarlo poiché non conoscono la chiave e non hanno alcuna indicazione se si tratta del tuo certificato autofirmato o di un qualche falso.

Ma c'è un modo per fidarsi del certificato e questo è la convalida in un altro modo. Guarda i dettagli del certificato: c'è un'impronta digitale che può essere confrontata con l'impronta digitale del certificato giusto. Se corrispondono, tutto va bene.

Quando utilizzi i certificati autofirmati solo per te stesso, è facile fare questa verifica poiché conosci entrambi i lati della connessione. Durante la scrittura di un'app, è possibile utilizzare un'impronta digitale codificata per verificare il certificato, che potrebbe anche essere più sicuro rispetto alla verifica di una CA (perché è sufficiente avere fiducia in se stessi).

Ciò che perdi è la flessibilità. Quando si desidera modificare la chiave, è necessario modificare l'impronta digitale del certificato nell'applicazione. Usando il sistema CA, lasci una CA attendibile dalla tua applicazione per firmare la nuova chiave e l'applicazione la accetterà.

Per rispondere alla tua domanda: sono sicuri fintanto che li verifichi in qualche altro modo che funziona senza CA. Quando disabiliti il controllo dei certificati, sei molto meno sicuro.

    
risposta data 25.04.2018 - 11:40
fonte
1

TL; DR: Possono essere sicuri, se usati correttamente.

Una cosa importante che anche le grandi aziende hanno sbagliato in modo orribile è che, in realtà, è ancora necessario controllare il certificato autofirmato rispetto a qualche elenco di root. Chiunque può fare un certificato autofirmato. Devi includere il tuo nella tua applicazione (hardcode in), in modo che possa distinguerlo dagli altri (l'impronta digitale dovrebbe essere sufficiente).

In secondo luogo, probabilmente non si desidera utilizzare direttamente il certificato di base. Firma un altro certificato usando la radice e usa quello. Includere una scadenza ragionevole (3 mesi sembrano ideali). Mantieni la root offline, idealmente in alcuni token hardware. Se è necessario firmare i certificati di routine, creare un certificato CA intermedio, in modo da poter mantenere la root offline.

È necessario fornire un modo per revocare in sicurezza i certificati, incluse le radici, all'applicazione diversa dagli aggiornamenti delle app. Molti utenti non si aggiornano regolarmente, quindi assicurati di disporre di un meccanismo indipendente per ottenere l'elenco dei certificati revocati. Si dovrebbe generare un errore di sicurezza se non è possibile verificare le revoche dei certificati. Ricorda che non puoi fare affidamento sui tuoi certificati per questo, in quanto potrebbero essere compromessi.

Se la root è stata revocata, probabilmente vorrai mostrare un messaggio agli utenti, dicendo che devono essere aggiornati.

    
risposta data 25.04.2018 - 11:40
fonte

Leggi altre domande sui tag