È OK (dal punto di vista della sicurezza) aggiungere solo il certificato del server al negozio fidato del cliente senza aggiungere il certificato radice in SSL?

5

Va bene (dal punto di vista della sicurezza) aggiungere solo il certificato del server al negozio fidato del cliente senza aggiungere il certificato radice in SSL? In questo caso, se l'handshake viene completato correttamente?

    
posta Manoj 11.08.2016 - 11:59
fonte

2 risposte

2

Sì. Quello che stai chiedendo è spesso chiamato "pinning del certificato".

Quando aggiungi un certificato di firma o un certificato di base al tuo negozio di fiducia, stai dicendo "Mi fido di tutti i certificati firmati da questo certificato". Aggiungendo il certificato al fiduciario del cliente, stai dicendo: "Mi fido esplicitamente e direttamente di questo certificato". Nel primo caso, ci si fidava implicitamente di molti certificati, nel secondo si fidava esplicitamente di un solo certificato.

Ci sono alcune cose da sapere.

  • Alcuni client potrebbero non supportare questo modello. Se si tratta di software di terze parti, ti consigliamo di testare prima di distribuire in questo modo
  • avrai bisogno di un modo sicuro per consegnare il certificato al tuo cliente. Questo meccanismo deve essere considerato affidabile e deve impedire ad altri certificati non affidabili di accedere al client. I browser Web ottengono i certificati predefiniti dal produttore del browser, dal produttore del sistema operativo o dal reparto IT. Se stai andando con i browser web ed è per gli utenti esterni alla tua azienda, questo sarà molto più difficile - non possono semplicemente connettersi al tuo sito non root-root ottenere un avviso di certificato e aggiungere il certificato al loro negozio, poiché non avrà modo di sapere se sono connessi a un sito dannoso.
  • avrai bisogno di un meccanismo sicuro per ruotare il certificato quando scade o è compromesso.
  • testare la tua app client potrebbe essere una sfida. Dovrai connettere l'app client a un server di test, il che significa che avrai bisogno di un modo per impostare l'app client per utilizzare il certificato del server di test.

Hai anche alcuni vantaggi rispetto all'uso dei certificati root o di firma nel tuo negozio di fiducia

  • se si tratta della tua app personalizzata e i certificati di nessun altro sono presenti nello store, si ottiene la garanzia che i client comunicano solo con i server (fino a quando qualcuno sostituisce l'archivio fidato del cliente)
  • i certificati di root / firma utilizzano gli elenchi di revoche di certificati per la revoca di certificati, ma nessuno li monitora. Il tuo approccio sostituirà semplicemente il certificato nei negozi fiduciari del cliente per revocare efficacemente un certificato compromesso.
  • c'è una superficie di attacco più piccola. Nel modello standard del browser Web, un utente malintenzionato può seguire qualsiasi radice affidabile, qualsiasi certificato intermedio esplicitamente o implicitamente attendibile o il certificato foglia. Con il pin cert, solo il certificato foglia è un bersaglio *

* Ignoro intenzionalmente gli attacchi contro il software, contro la crittografia debole e contro gli archivi fiduciari dei clienti, poiché è comune a entrambi gli scenari.

    
risposta data 14.08.2016 - 15:37
fonte
-1

No, non funzionerà, perché l'archivio sicuro accetta solo certificati root (autofirmati) e l'intera catena deve essere convalidata. E la convalida avrà esito negativo se il certificato di origine non è presentato nel truststore.

    
risposta data 11.08.2016 - 12:50
fonte

Leggi altre domande sui tag