PROTECTION
Sicherheit von CodeMeter
Der Raum war zwar nicht dunkel , aber dennoch hatte das Meeting den Charakter eines Verhörs . Ich allein auf der einen Seite des Tisches und zwei Geschäftsführer eines potenziellen Kunden auf der anderen Seite . Nach zwei Stunden dann das erlösende Fazit meines Gegenübers : „ Herr Kügler , ich weiß , dass nichts 100 % sicher sein kann , aber CodeMeter ist die beste verfügbare Lösung .“
Rückblick , zwei Stunden früher .
Herr X : Herr Kügler , können Sie mir erklären , wie der AxProtector unsere Software verschlüsselt ?
Meine Antwort : Wir haben mit der Code-
Meter Protection Suite ein Optimum aus Performance und Sicherheit erreicht . Daher werden beim Verschlüsseln ein bzw . mehrere Software-Schlüssel pseudozufällig erzeugt . Diese werden dann verwendet , um Ihre Software bzw . einzelne Teile Ihrer Software mit AES 256-Bit zu verschlüsseln . Diese Schlüssel selbst werden dann mittels mehrerer Code- Meter-Schlüssel , die sich in der CodeMeter-Lizenz befinden , verschlüsselt und in der Software hinterlegt .
Beim Starten oder wenn ein verschlüsselter Teil der Software verwendet wird , wird aus den verschiedenen möglichen CodeMeter-Schlüsseln einer gewählt . Der Software-Schlüssel wird damit entschlüsselt und mit diesem dann Ihre Software . Ist die passende Lizenz nicht vorhanden , wird der benötigte Software-Schlüssel nicht bereit- gestellt und Ihre Software kann nicht entschlüsselt und somit auch nicht ausgeführt werden .
Herr X : Ist die CmActLicense nicht sicherer als der Dongle ? Beim Dongle hat man doch ein wohl bekanntes Interface auf USB- Ebene , während man bei der CmActLicense ja asymmetrische Verfahren verwenden kann .
Meine Antwort : Um große Datenmengen wie bspw . eine Anwendung zu entschlüsseln , benötigt man immer ein symmetrisches Verschlüsselungsverfahren wie AES 256-Bit . Wenn man außerdem das gleiche Installationspaket für jeden Kunden bereitstellen möchte , muss dieser Schlüssel zwangsläufig für alle Lizenzen identisch sein . In beiden Fällen ( CmDongle und CmActLicense ), aber auch im Fall eines CmCloudContainers , werden die symmetrischen Schlüssel über asymmetrische Verfahren in den CmContainer übertragen und dort sicher gespeichert : im CmDongle in einem Smartcard-Chip , in einer CmActLicense verschlüsselt über Eigenschaften des Rechners in einer Lizenzdatei und im Fall des CmCloudContainers sicher in der Cloud .
Bei einem CmDongle und einem CmCloud Container sind die CodeMeter-Schlüssel nie im Hauptspeicher des Rechners des Anwenders . Im Fall einer CmActLicense sind diese zwangsläufig für eine kurze Zeit im Speicher verfügbar . CodeMeter verwendet verschiedene Anti- Reverse-Engineering-Mechanismen , um das Auslesen zu erschweren . Aber dennoch gilt : Etwas , das gar nicht erst da ist , kann auch nicht ausgelesen werden .
Herr X : Aber wenn jemand die USB-Kommunikation abhört . Dann kann er doch einen CmDongle simulieren .
Meine Antwort : Auch hier gilt , dass
CodeMeter auf verschiedene Mechanismen setzt . Zum einen ist die Kommunikation der CodeMeter Runtime mit dem CmDongle verschlüsselt . Zum anderen beinhaltet eine Lizenz neben den symmetrischen Schlüsseln auch immer asymmetrische Schlüssel . Die geschützte Software erzeugt eine zufällige Challenge , der CmDongle muss diese mit dem privaten Schlüssel beantworten und die Software prüft diese mit dem öffentlichen Schlüssel .
10