Diese Updates habe ich signiert, mit schönem teurem Zertifikat.
Meine Software soll ein Update nur installieren, wenn es sicherstellen kann, dass das von mir kommt.
Wie macht man sowas?
Meine Überlegungen:
Ich habe keine Probleme, das Zertifikat aus der Datei zu extrahieren. Ich kriege dann natürlich alle Angaben, die dazugehören – Namen, Adresse, Handelsregistereintrag, usw. Aber natürlich wäre es idiotisch, das Zertifikat einfach nach „Krishty“ zu durchsuchen – dann würde ich auch Updates der pakistanischen Rapampamumbra Krishty Software Co. installieren statt nur meine.
Eine Unique ID für das Zertifikat – sofern es sie gibt (Public Key?) – wäre ebenso blöd, denn wenn das Zertifikat ausläuft und ich ein Neues beantrage, würde meine veraltete Software die ganzen neuen Updates von mir ablehnen, weil die UID sich geändert hat. Weil das alte Zertifikat weg ist, hätte ich keine Möglichkeit mehr, irgendein Update auszuliefern.
Durchsuche ich die Zertifikatsbeschreibung sowohl nach meinem Namen als auch nach Handelsregistereintrag (der ändert sich ja nicht so schnell)? Packt der Zertifikats-Provider eine persönliche ID ein, die sich auch bei weiteren Zertifikaten auf meinen Namen nicht ändert? Oder wie macht man das üblicherweise? Ich bin total verwirrt.
Nachtrag: Dieser Artikel hier vergleicht tatsächlich den Firmennamen:
Code: Alles auswählen
If codeSignature.Certificates(1).GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) <> "Concept Software Inc." Then
isValid = False
End If
Code: Alles auswählen
if (!cert.Subject.StartsWith("CN=Concept Software Inc.") {
isValid = false;
}