Software-Kopierschutzsystem - SG-Lock® USB Copy ... · PDF file6.1.2 Delphi ... mit einem für jedes Modul individuellen 128-Bit-Schlüssel verschlüsselt ... Kapitel 2: Installation

Embed Size (px)

Citation preview

  • Software-Kopierschutzsystem

    Entwicklerhandbuchfr Microsoft Windows XP bis 10 (alle 32/64-Bit),

    CE, Linux X86/A64/ARM und Mac OS X

  • Software-Kopierschutzsystem

    Entwicklerhandbuchfr Microsoft Windows XP bis 10 (alle 32/64-Bit),

    CE, Linux X86/A64/ARM und Mac OS X

  • Stand: Februar 2016SG Intec Ltd & Co. KG, Schauenburgerstr. 116, D-24118 Kiel

    Fon ++49 431 97993-00 Fax ++49 431 97993-50web: www.sg-lock.de email: [email protected]

    SG-Lock unterliegt der EU-Elektrogerte-Richtlinie. Die entsprechenden Ent-sorgungsgebhren wurden entrichtet. WEEE-ID:DE 43502119

    Alle in diesem Handbuch genannten gesetzlich geschtzten Warenzeichen sind Eigentum der ent-sprechenden Eigentmer. Technische nderungen vorbehalten. Vervielfltigungen dieses Handbu-ches auch nur auszugsweise sind nur mit schriftlicher Genehmigung von SG Intec Ltd & Co. KGerlaubt.

    http://www.sg-lock.demailto:[email protected]

  • Inhaltsverzeichnis

    1 Einleitung 1

    2 Installation und Hilfsprogramme 32.1 32/64-Bit Betriebssystem-Versionen . . . . . . . . . . . . . . . 32.2 Windows XP bis 10 . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Linux und Mac OS X . . . . . . . . . . . . . . . . . . . . . . . 32.4 Windows CE 4, 5 und 6 . . . . . . . . . . . . . . . . . . . . . . 52.5 Deinstallation fr alle Systeme . . . . . . . . . . . . . . . . . . 52.6 SG-Lock bearbeiten mit dem SG-Lock Manager . . . . . . . . . 6

    3 Software mit SG-Lock schtzen 113.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Schutzstrategien . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Die SG-Lock Product ID - wofr brauche ich sie? . . . . . . . . 123.4 Verschlsselung und Challenge-Response-Authentifizierung . . 143.5 Einbindung in verschiedene Programmiersprachen . . . . . . . 16

    4 SG-Lock API 194.1 Funktionsbersicht . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Basisfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.2.1 Funktion: SglAuthent . . . . . . . . . . . . . . . . . . 214.2.2 Funktion: SglSearchLock . . . . . . . . . . . . . . . . 224.2.3 Funktion: SglReadSerialNumber . . . . . . . . . . . . . 23

    4.3 Speicherfunktionen . . . . . . . . . . . . . . . . . . . . . . . . 244.3.1 Funktion: SglReadData . . . . . . . . . . . . . . . . . . 244.3.2 Funktion: SglWriteData . . . . . . . . . . . . . . . . . 264.3.3 Funktion: SglReadCounter . . . . . . . . . . . . . . . . 274.3.4 Funktion: SglWriteCounter . . . . . . . . . . . . . . . 28

    4.4 Verschlsselungs- und Signierungsfunktionen . . . . . . . . . . 294.4.1 Funktion: SglCryptLock . . . . . . . . . . . . . . . . . 294.4.2 Funktion: SglSignData . . . . . . . . . . . . . . . . . . 31

    v

  • vi Inhaltsverzeichnis

    4.5 Administrative Funktionen . . . . . . . . . . . . . . . . . . . . 344.5.1 Funktion: SglReadProductId . . . . . . . . . . . . . . . 344.5.2 Funktion: SglWriteProductId . . . . . . . . . . . . . . 354.5.3 Funktion: SglWriteKey . . . . . . . . . . . . . . . . . . 364.5.4 Funktion: SglReadConfig . . . . . . . . . . . . . . . . 37

    4.6 Fehlerrckgaben . . . . . . . . . . . . . . . . . . . . . . . . . 39

    5 Verschlsselung, Signierung und Schlsselverwaltung 41

    6 Programmierbeispiele 436.1 Funktion SglAuthent . . . . . . . . . . . . . . . . . . . . . . . 43

    6.1.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.1.2 Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.1.3 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . 44

    6.2 Funktion SglSearchLock . . . . . . . . . . . . . . . . . . . . . 466.2.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.2.2 Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.2.3 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . 47

    6.3 Funktion SglReadSerialNumber . . . . . . . . . . . . . . . . . 486.3.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.3.2 Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.3.3 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . 49

    6.4 Funktion SglReadData . . . . . . . . . . . . . . . . . . . . . . 506.4.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.4.2 Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.4.3 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . 51

    6.5 Funktion SglWriteData . . . . . . . . . . . . . . . . . . . . . . 536.5.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.5.2 Delphi . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.5.3 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . 54

    6.6 Challenge-Response-Authentifizierung eines SG-Lock Moduls . 566.6.1 C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    7 Technische Daten 597.1 SG-Lock U2/U3/U4 . . . . . . . . . . . . . . . . . . . . . . . . 59

  • 1 Einleitung

    SG-Lock ist ein modernes, flexibles Hardware-basiertes Kopierschutzsystem,das auf allen 32-Bit und 64-Bit Microsoft Windows-, Linux und Mac OS X Be-triebssystemen zur Anwendung kommen kann. Zudem wird Windows CE unter-sttzt.

    Herausragende Eigenschaften sind:

    SG-Lock ist einfach zu installieren. Es kann ohne Treiberinstallation undAdmin-Rechte auf dem Zielsystem installiert werden (Windows XP bis10).

    SG-Lock ist einfach in die zu schtzende Anwendung zu integrieren.

    Jedes SG-Lock besitzt eine individuelle Seriennummer.

    Bis zu 1024 Byte frei nutzbarer SG-Lock-interner Speicher.

    128-Bit-Verschlsselung mit bis zu 16 frei whlbaren Schlsseln.

    Bis zu 64 frei programmierbare Zhlerzellen zur einfachen Erfassung zhl-barer Ereignisse.

    Besondere Sicherheitsmerkmale:

    Der gesamte Modul-interne Speicher ist fr den Nutzer transparent undmit einem fr jedes Modul individuellen 128-Bit-Schlssel verschlsseltund zustzlich signiert. Hardwareangriffe wie mgliche Manipulation ein-zelner Datenwerte oder Austausch des Speicherbausteins werden vom Mo-dulprozessor erkannt und abgewehrt.

    Einfacher und effektiver Authentifizierungs-Mechanismus zwischen ge-schtzter Anwendung und SG-Lock API. Das SG-Lock API ist nicht, wie

    1

  • 2 Kapitel 1: Einleitung

    Abbildung 1.1: SG-Lock U-Serie

    vielfach implementiert, sofort in voller Funktionalitt von jeder Anwen-dung nutzbar. Grundstzlich muss sich jede Anwendung gegenber demSG-Lock API authentifizieren, um Zugriff auf SG-Lock-Module zu be-kommen. Dies verhindert Angriffe von nicht authorisierten Programmenber die API-Schnittstelle auf SG-Lock Kopierschutzmodule. Zustzlichhat das geschtzte Programm die Mglichkeit, das SG-Lock API selbst zuverifizieren und eine geflschte Bibliothek zu erkennen und abzuwehren.Der gesamte Authentifizierungsmechanismus wird einfach durch den Auf-ruf einer einzelnen Funktion mit einem einzelnen Parameter durchgefhrt.

    Das SG-Lock API arbeitet mit einer sowohl Modul- als auch Applikations-internen TEA- (Tiny Encryption Algorithm) Verschlsselungs-Engine.Dieser symmetrische (Schlssel fr Ver- und Entschlsselung sind inden-tisch) und allgemein als sicher anerkannte Verschlsselungs-Algorithmusbildet die Basis fr die Implementierung vielfltiger Daten- und Code-schutz sowie Authentifizierungs-Strategien.

    Die einzelnen SG-Lock Modelle werden in zwei unterschiedlichen Bau-formen angeboten, die aber funktional identisch und deshalb beliebig ge-geneinander austauschbar sind. Die kleine S-Serie ist aufgrund Ihrer ge-ringen Gre besonders fr Notebook- und Tabletcomputer geeignet. DieU-Serie bewhrt sich durch Ihre grere und damit ergonomischere Forman Desktopcomputern.

  • 2 Installation und Hilfsprogramme

    Die Installation von SG-Lock ist einfach und transparent gestaltet, um die Inte-gration in die Installation der geschtzten Anwendung zu erleichtern.

    2.1 32/64-Bit Betriebssystem-Versionen

    Verwenden Sie grundstzlich fr eine geschtzte 32-Bit Anwendung die 32-BitSG-Lock Bibliothek - auch wenn diese unter einer 64-Bit Version eines Betriebs-systems zum Ablauf kommt.

    Eine 64-Bit SG-Lock Bibliothek wird nur bentigt, wenn auch eine 64-BitVersion des geschtzten Programms benutzt wird.

    2.2 Windows XP bis 10

    Fhren Sie die zwei folgenden Schritte fr alle SG-Lock Typen durch:

    1. Kopieren Sie die SG-Lock Bibliothek SGLW32.DLL (32- oder 64-Bit Ver-sion) in das Installationsverzeichnis der geschtzten Anwendung oder dasWindows-Systemverzeichnis - z. B. C:\WINDOWS\SYSTEM32 (dabeiSchreibrechte bercksichtigen).

    2. Stecken Sie das SG-Lock USB in die USB-Schnittstelle. Die Erkennungder Hardware wird automatisch vollzogen und angezeigt - damit ist dieInstallation abgeschlossen.

    2.3 Linux und Mac OS X

    Die Installationshinweise fr Linux und Mac OS X befinden sich auf der mitge-lieferten CD-ROM.

    3

  • 4 Kapitel 2: Installation und Hilfsprogramme

    SG-Lock

    Application Space

    Operating System

    USB Sub-System

    SG-Lock API

    0101110001100101010110101

    Abbildung 2.1: Das SG-Lock API (die Datei SGLW32.DLL) stellt die Verbin-dung zwischen geschtzter Anwendung und der SG-Lock Hard-ware bereit.

  • Kapitel 2: Installation und Hilfsprogramme 5

    2.4 Windows CE 4, 5 und 6

    Hinweis: Nur das SG-Lock U4 untersttzt Windows CE.

    1. Kopieren Sie die Datei SGLWCE.DLL in Ihr Anwendungs- oder in dasSystemverzeichnis (z. B. \Windows). Dies kann durch ein Skript beim Sys-temstart geschehen.

    2. Kopieren Sie die Datei SGLUSB.DLL in ein beim Systemstart existieren-des Verzeichnis (z. B. \STORAGE)

    3. Passen Sie die beiden Keys mit Namen DLL im RegistrierungsskriptSGLUSB.REG entsprechend dem Pfad von SGLUSB.DLL an (wenn z.B. Ihre SGLUSB.DLL in \STORAGE liegt, mssen die Werte der beidenKeys STORAGE\SGLUSB.DLL lauten). Benutzen Sie dab