FAQ

FAQ - Einbindung in den Quellcode über API

Was sind die Vorteile der Implementierung mit API gegenüber AutoCrypt?

Die Implementierung über API bietet Ihnen mehr Flexibilität bei der Einbindung. 

Einige Beispiele:

  • Wenn keine CRYTPO-BOX gefunden wird, können Sie entscheiden was geschieht: z.B. die Anwendung in einem Demo Modus auszuführen oder einzelnde Features deaktiveren. Bei AutoCrypt dagegen kann die Anwendung nur dann ausgeführt werden, wenn die CRYPTO-BOX angeschlossen ist.
  • Es besteht die Möglichkeit einzelne oder systemkritische Bestandteile der Anwendung weiterhin laufen zu lassen, auch wenn beispielsweise die CRYPTO-BOX verloren gegangen oder gestohlen worden ist.
  • Verschlüsselung von wichtigen Daten oder Funktionen während der Laufzeit der Anwendung mit der hardwarebasierten AES-Verschlüsselung der CRYPTO-BOX. Dies macht es erheblich schwieriger, den Schutz Ihrer Anwendung auszuhebeln. 
  • Mit der API-Implementierung unterstützt MARX ein breiteres Spektrum von Programmierumgebungen und Betriebssystemen als mit AutoCrypt.

Was ist der beste Weg um mit der Implementierung via API zu starten? Gibt es hierzu einen Leitfaden?

Eine gute Einführung dazu bietet Ihnen das White Paper "Implementierung via API".

Welche Entwicklungsumgebungen und Betriebssystem werden durch die Einbindung via API unterstützt?

Zur Zeit werden Windows, Linux, Mac OS X, iOS (nur im Netzwerkmodus) und Android unterstützt.

Eine detaillierte Übersicht aller unterstützten Compiler und Entwicklungsumgebungen finden Sie im API White Paper, Kapitel 4.

Wie kann ich meine Anwendung über die API-Implementierung gegen alle Angriffe absichern?

 

Eine einhundertprozentige Sicherheit ist natürlich unmöglich. Aber mit vertretbarem Aufwand können Sie das Schutzniveau drastisch erhöhen, was es sehr schwierig für Cracker und Angreifer macht, Ihr Schutzkonzept auszuhebeln.

Beispiele:

  • Verwenden Sie die hardwarebasierte Verschlüsselung der CRYPTO-BOX um wichtige Informationen wie Programmparameter oder -Funktionen erst während der Laufzeit der Anwendung zu entschlüsseln. Ohne die CRYPTO-BOX und der in ihr gespeicherten AES-Schlüssel lassen sich so bestimmte Funktionen nicht entschlüsseln.
  • Verwenden Sie mehrere, unterschiedliche Schutzroutinen an verschiedenen Stellen Ihres Codes
  • Lange Test-/Prüfroutinen und Dummy-Aufrufe erschweren das Cracken
  • Legen Sie Parameter und Programmvariablen im internen Speicher der CRYPTO-BOX ab

Weitere Tipps und Informationen sind im Smarx Compendium, Kapitel 17 zu finden.

Muss ich mir bei der Einbindung über API ein eigenes Programm zur Programmierung der CRYPTO-BOX schreiben, bevor ich diese an meine Kunden ausliefere?

Das ist nicht notwendig, Sie können zur Programmierung der CRYPTO-BOX unter Windows das Smarx Application Framework nutzen, welches Bestandteil des CRYPTO-BOX Protection Kits ist. Eine detaillierte Beschreibung dazu finden Sie im Smarx Compendium, Kapitel 4.5.

Alternativ ist es mit dem Kommandozeilen-Tool SmrxProg möglich, die Programmierung der CRYPTO-BOX per Batch- oder Skriptbefehl oder aus anderen Anwendungen heraus zu steuern. SmrxProg ist für Windows, Linux und Mac OS X verfügbar. Für weitere Details siehe Smarx Compendium, Kapitel 7.

Mein Compiler ist nicht in der Liste der unterstützten Entwicklungsumgebungen, bzw. ich nutze ein exotisches bzw. älteres Betriebssystem. Kann ich die CRYPTO-BOX dennoch einbinden?

Viele Entwicklungsumgebungen unterstützen die Implementierung von C-Routinen, über diesen Umweg kann die CRYPTO-BOX in vielen Fällen eingebunden werden. 

Unter Windows kann auch COM-Technologie oder die dynamische Bibliothek cbios_dll.dll zur Abfrage der CRYTPO-BOX genutzt werden (für beide Optionen sind Beispiele im Professional Protection Kit enthalten). Weitere Details dazu erhalten Sie im Smarx Compendium, Kapitel 10.12.

Wenn Sie Unterstützung für ältere Entwicklungsumgebungen oder ältere/exotische Plattformen suchen: Wir unterstützen viele ältere Compiler, z.B. alte Visual Studio- oder Delphi-Versionen, sowie Legacy-Umgebungen, z. B. ältere Windows- oder Linux-Versionen, sowie Realtime-OS Versionen und selbst DOS (mit der CRYPTO-BOX Seriell).

Sprechen Sie mit uns - in den allermeisten Fällen finden wir eine Lösung!

Meine Anwendung ist in C#.NET geschrieben, wie kann meinen Code vor Dekompilierung schützen?

Aufgrund der Natur von .NET können ungeschützte NET-Assemblies leicht von erfahrenen Programmierern oder Cracker dekompiliert werden. Dies macht es vergleichsweise einfach, den implentierten Schutz zu analyiseren und zu entfernen. Ein Schutz des .NET-Codes ist daher sehr wichtig.

Hier sind einige Tipps: 

  • Verschleiern Sie Ihren Code (Obfuscation). Visual Studio enthält beispielsweise eine kostenlose Edition von Dotfuscator. Im ".NetProtection" Beispielcode in unserem PPK - siehe Ordner [PPK root]\SmarxOS-Samples\Security - nutzen wir den Open Source Obfuscator Confuser.
  • Verwenden Sie die Hardware-basierte Verschlüsselung der CRYPTO-BOX um wichtige Informationen während der Laufzeit der Anwendung zu entschlüsseln.
  • Setzen Sie einen Wrapper für Ihre .NET Executables ein. Die einfachste Methode ist unser AutoCrypt einzusetzen. Mehr Details hierzu finden Sie im Smarx Compendium, Kaptiel 4.5.3.

Darüber hinaus beraten wir Sie gern und bieten Ihnen Unterstützung bei der Implementierung an - kontaktieren Sie uns, um Ihre Anforderungen zu besprechen.