Ich habe eine XML-Datei, die den Namen des Unternehmens beschreibt, für das das Produkt lizenziert ist, die Version und einige zusätzliche Informationen.Wäre es mit dieser Art der Überprüfung einer Lizenz in Ordnung?
Blick so etwas wie dieses
<Licence>
<Name>sdfsdf</Name>
<Version>1.2.1.1</Version>
<NumberOfServer>4</NumberOfServer>
</Licence>
ich dann dieses fiel unterzeichnen einen privaten Schlüssel und
<Licence>
<Name>sdfsdf</Name>
<Version>1.2.1.1</Version>
<NumberOfServer>4</NumberOfServer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>M368eFB9ydifttSxX26sB6XiPV4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>TTYP6d+zESn6/2PtL5ikN+7E9u8Njm32vYVyVANC5U0EGLBwS//3yPjUoBx3glJXHClzPQBQEUi0LJNauTFvo1IBYwLjAuaYGtleti4IXpjrQCVaIudETSv5Z7oB8+C/+nsqsC26fXf9vWxvaKXJJzcep88r0wIfVe31HSd18FU=</SignatureValue>
</Signature>
</Licence>
bekomme ich dann in der Anwendung mit dem öffentlichen Schlüssel versenden und die Datei lesen, um sicherzustellen, dass sie haben Sie die richtige Version und "NumberOfServers" wie der Lizenzschlüssel ist.
Was sind die Nachteile dieses Ansatzes?
Dank
Hmm ... OK ... Aber das musst du irgendwie "verdächtigen"? Sie können wirklich zur Laufzeit herausfinden, für welche Version etc die Lizenz eigentlich ist? Alles was Sie wirklich tun können, ist zu überprüfen, dass der hased-Wert der selbe ist, den Sie bekommen, wenn Sie dieselben Eingaben zur Laufzeit haben? Wenn ich Sie richtig verstehe, denke ich nicht, dass das wirklich das ist, was ich tun möchte. – Riri
Ich signiere immer noch die Daten mit einem Schlüsselpaar, aber anstatt die XML-Datei selbst zu signieren, unterzeichne ich den Hash der Daten auf meine eigene Art und Weise. Dann verschleiere ich es mit Base64 oder etwas und schreibe es auf ein einzelnes Tag. Die Rohdaten (Kundennummer, Version, usw.) sind immer noch in der XML-Datei, aber ich habe jetzt eine Signatur, die nicht einfach verifiziert werden kann, indem man sich die Struktur der XML-Datei anschaut (wie bei der SignedXml-Klasse)). –
Aha ich sehe! Das ist eine gute Idee. – Riri