In che modo Matrix SSL esegue la convalida del certificato?

0

Utilizziamo un'app personalizzata che utilizza Matrix SSL (lato client) per eseguire la convalida dei certificati su sistemi MAC e Linux. La mia domanda è, Matrix SSL mantiene una cache di cert store di root intermedie e affidabili in modo che possa eseguire i suoi controlli su ciò che il server invia? O richiama qualcosa come OCSP o usa estensioni AIA come fanno i browser per convalidare la catena? Oppure è possibile sviluppare Matrix SSL per utilizzare entrambi i metodi?

    
posta user53029 01.08.2014 - 12:14
fonte

2 risposte

1

Dopo aver dato un'occhiata alla documentazione di MatrixSSL suppongo che:

  • Poiché è indipendente dal livello di trasporto, non (e non può) recuperare autonomamente i certificati intermedi mancanti. Per fare ciò dovrebbe avere un qualche tipo di client HTTP (magari con supporto proxy) e non riesco a vedere nulla di simile documentato.
  • Inoltre non controllerà da solo, che il nome host corrisponda al certificato. È necessario aggiungere il proprio certValidator per farlo. Se non si verifica il nome host nel certificato, si accetterà qualsiasi certificato firmato da una CA attendibile per un host arbitrario, che lascerà effettivamente aperti attacchi man-in-the-middle. Ciò significa che l'implementazione di questo è un must, a meno che non sia necessario controllare solo rispetto ad alcuni certificati fissi (cioè il blocco dei certificati).
  • L'API contiene funzioni per la gestione CRL, ma richiede allo sviluppatore di fornire lo stesso CRL. Ha la funzione di ottenere l'URL per il CRL ma lo sviluppatore deve recuperare da solo i dati dell'URL.
  • Non ci sono API documentate per OCSP. Poiché OCSP richiede l'accesso HTTP e poiché MatrixSSL stesso è indipendente dal trasporto, si può presumere che non eseguirà ricerche OCSP da solo e non fornirà allo sviluppatore le informazioni necessarie per effettuare ricerche OCSP.

Alla fine si tratta della sicurezza che si ottiene da OpenSSL, ovvero nessun controllo dell'hostname, solo CRL manuale, nessuna API documentata per OCSP (sebbene in OpenSSL ci sia un'API non documentata ma abbastanza complessa).

Dato che stai utilizzando MatrixSSL solo per la tua app personalizzata, ti consiglio di mantenerlo semplice e sicuro accettando solo alcuni certificati specifici che sono controllati da te e che sono codificati all'interno dell'applicazione. In questo caso non avresti bisogno delle cose più complesse come il controllo dell'hostname o della revoca.

    
risposta data 01.10.2014 - 03:34
fonte
0

Penso che tu stia confondendo due cose. Per i brower, come per qualsiasi altro stack TLS a cui posso pensare, la convalida della catena di certificati verrà eseguita controllando le firme dei certificati fino a quando non troverà un certificato già nel suo trust store. (Puoi andare nelle Preferenze / Opzioni del tuo browser e controllare le CA di fiducia predefinite).

Quindi, per verificare lo stato della revoca, verrà utilizzato CRL, OCSP o semplicemente non si preoccuperà nemmeno di revocare la revoca.

    
risposta data 01.08.2014 - 16:34
fonte

Leggi altre domande sui tag