Sto utilizzando OpenSSL per verificare il certificato di un server. Poiché OpenSSL viene fornito senza CA root incorporate, dobbiamo distribuire il certificato CA root con il nostro software (colleghiamo staticamente OpenSSL). Normalmente, il modo per farlo è distribuire un file di certificato in formato PEM e chiamare SSL_CTX_load_verify_locations.C++/OpenSSL: utilizzare CA radice dal buffer anziché dal file (SSL_CTX_load_verify_locations)
Tuttavia, questa funzione accetta un percorso file/directory e legge i file del certificato radice direttamente dal filesystem. Ci piacerebbe molto poter codificare il certificato nel nostro file binario invece di salvarlo nel filesystem.
In altre parole, ci piacerebbe davvero avere una funzione come SSL_CTX_load_verify_locations che accetta un X509 * invece di un percorso file.
Esiste qualcosa del genere? o c'è un modo semplice per hackerarlo insieme? Non possiamo sembrare di trovare molte informazioni a riguardo.
Grazie mille per qualsiasi suggerimento!
Che cosa impedisce di salvare il certificato di root con hardcoded sul disco prima di chiamare SSL_CTX_load_verify_locations? –
Nulla lo impedisce: tuttavia, siamo un'applicazione di sicurezza e siamo preoccupati per le interferenze dannose. In particolare, se è facile individuare e sovrascrivere il nostro file del certificato radice, è possibile bloccare qualsiasi delle nostre transazioni SSLed. Andremo su questa rotta se necessario, ma sarebbe bello poter compilare il certificato di root nel binario stesso. – DSII
Non è più sicuro avere la CA radice codificata rispetto a conservarla in un file. –