Sto sviluppando una libreria distribuita come una DLL di Windows per essere chiamata da eseguibili di terze parti. Mi aspetto che l'EXE chiamante sia firmato digitalmente e che sia necessario verificarlo.
Non ho il controllo del computer su cui verrà eseguito il mio codice. Come convalidare se l'eseguibile chiamante è firmato da una CA nota e attendibile come Verisign o Symantec nella parte superiore della catena di certificati? Devo farlo offline.
Ho preso in considerazione quanto segue:
- Cerca le stringhe "Verisign" e "Symantec" nel certificato soggetto.
- Confronta i numeri seriali dei certificati. contro una lista di numeri seriali. conosciuto essere valido.
- Confronta l'identificazione personale del certificato con un elenco di thumbprint noti.
Tuttavia, so che 1 e 2 possono essere falsificati. Circa 3, non sono sicuro dello spoofing ma quanto è affidabile quando si considerano la scadenza e la revoca?