Wir können schon rechnen
"Dongle bauen", also mit Kombizange einen billigen USB-Speicher aus dem Alugehäuse herausziehen, das 4pol. Kabel der USB-SIO kurz abschneiden und 4x abisolieren & verzinnen und mit 4 Lötstellen an 4 der 8 Pins vom IC anlöten und alles mit etwas Heißkleber im leerem Alugehäuse fixieren, das macht einer unserer Techniker für ~6 Stück in 10 Minuten.
Warum nix fertiges als Kopierschutz?
- weil wir eben keine kryptobasierten Kopierschutz wollen! Wir wollen wollen Kopierschutz nach dem Prinzip der verteilten Funktionalität in absolut getrennter typverschiedener Hardware
- damit wir echte Daten, Keys und Programmfunktion in der USB-Hardware realisieren können... sensible Daten verlassen niemals die Hardware, weil sie nur dort völlig intern verarbeitet werden... das kann kein käuflicher Dongle
- in der
GUI nehmen wir auch soviel wie möglich Komponenten, wir halt alles von TMS statt DevExpress.
Warum halte ich nicht viel von
WMI oder
OS-
API's zur ID Erzeugung:
- Lassen sich entweder per Hook oder per LOW-Levelvirtualisierung zuleicht aushebeln.
- ich mag aus Prinzip keine Software durch Software auf der gleichen Hardware schützen
- Beispiel: sichere PIN eingaben für Ausweise usw sind nur IN speziellen Geräten mit eigener Tastatur möglich, sodass der PIN pysikalisch niemals für PC-Software erreichbar ist
Ich will mich eben NICHT mit aufwendiger sicherer Implementierung von Kopierschutz beschäftigen, denn mit einer (überspringbaren) "If not DongleOK then exit" Zeile ist es ja nicht getan.
Mir ist da die Zeit und die Mühe zu schade, per RunTime Krypto(
API) einzelne Programmteile dynamisch im Speicher zu entpacken und dort was auszuführen und anschließend wieder sicher zu löschen, und die nächsten sicheren Funktion irgendwo/irgendwann an anderer Stelle im Quelltext zu platzieren. Nur ganz wenige Dongleanbieter arbeiten mit einer eigenen VM und eigenem ByteCode als Sicherheit auf simulierter OpCode-Ebene.
Nebeneffekt: wir umgehen mit unserer Lösung auch eventuelle Exportbestimmungen bezüglich "starker" Kryptografie... egal ob CCC, Bundestrojaner oder NSA wer an die Daten und die Codes will, muss den HardwareLock des "ExecuteOnly-Mode" vom Microcontroler knacken. Da ist es eventuell einfacher das Zeug bei mir zu "organisieren".
---
Hier im Thread geht es ja um Offline (Kopier)Schutz...
...und da gibt es eben neben HardwareID, USB-CryptoDongles eben auch das recht wenig verbreitete und oft unbekannte Sicherheitskonzept der auf (USB)Hardware ausgelagerten Programmfunktionalität... Wir nutzen wann immer möglich soviel wie möglich eigene Hardware. Software kopieren kann heute "jeder", Hardware analysieren und kopieren ist (arbeits)aufwendiger.