Używam OpenSSL do weryfikacji certyfikatu serwera. Ponieważ OpenSSL jest wysyłany bez żadnych wbudowanych głównych CA, musimy dystrybuować certyfikat głównego CA sami z naszym oprogramowaniem (statycznie łączymy OpenSSL). Zazwyczaj sposobem na to jest rozpowszechnianie pliku certyfikatu w formacie PEM i wywoływanie SSL_CTX_load_verify_locations.C++/OpenSSL: Użyj głównego CA z bufora zamiast pliku (SSL_CTX_load_verify_locations)
Jednak ta funkcja pobiera ścieżkę do pliku/katalogu i odczytuje plik (pliki) certyfikatu głównego bezpośrednio z systemu plików. Naprawdę chcielibyśmy mieć możliwość zakodowania certyfikatu w naszym pliku binarnym zamiast zapisywania go w systemie plików.
Innymi słowy, chcielibyśmy mieć funkcję taką jak SSL_CTX_load_verify_locations, która pobiera X509 * zamiast ścieżki pliku.
Czy coś takiego istnieje? lub czy istnieje prosty sposób na zhackowanie tego razem? Nie możemy znaleźć wielu informacji na ten temat.
Dziękuję bardzo za wszelkie sugestie!
Co uniemożliwia zapisanie twardego certyfikatu głównego na dysku przed wywołaniem SSL_CTX_load_verify_locations? –
Nic nie stoi na przeszkodzie: jesteśmy jednak aplikacją zabezpieczającą i obawiamy się złośliwych zakłóceń. W szczególności, jeśli łatwo jest zlokalizować i zastąpić nasz plik certyfikatu głównego, możesz zablokować dowolne z naszych transakcji SSL. W razie potrzeby przejdziemy tę trasę, ale byłoby wspaniale móc skompilować certyfikat główny do samego binarnego. – DSII
Nie ma większego bezpieczeństwa, aby mieć zainstalowany główny urząd certyfikacji na twardym dysku, niż przechowywać go w pliku. –