Ho un protocollo di sicurezza la cui implementazione verrà eseguita da molti sviluppatori di terze parti (chiamiamoli come "produttori") che a loro volta verranno programmati nell'hardware incorporato progettato da loro.
Vi sono alcune linee guida obbligatorie (ad esempio, una particolare operazione di crittografia deve essere eseguita utilizzando il criptoprocessore ma non la libreria del software) che devono essere seguite da loro.
Ora c'è un modo per verificare se hanno seguito tutte le linee guida del protocollo e certificare la loro implementazione se si ha accesso al file sorgente e binario dell'implementazione?
Come posso garantire che il produttore abbia programmato solo l'implementazione certificata in tutti i campioni hardware?
Modifica 1:
Per quanto ne so, una soluzione per la certificazione: il codice sorgente può essere ispezionato manualmente per verificare la conformità con ciascuna raccomandazione. Quindi il codice sorgente e il codice binario ottenuto possono essere certificati utilizzando la firma dell'autorità di certificazione sul checksum di entrambi i file.
Correggimi se c'è qualche scappatoia in questo processo di certificazione che può essere sfruttato da un produttore.
Ora, se il binario del protocollo implementato è programmato separatamente, possiamo controllare il file system e individuare questo binario, calcolare il suo checksum e verificarlo rispetto al binario certificato. Ma se il protocollo è implementato all'interno di un'altra applicazione, allora non possiamo avere questa certificazione, invece l'applicazione finale che include l'implementazione del protocollo deve essere certificata. Ma questo potrebbe complicare il processo di certificazione.