Verschlüsselung sensibler Daten ist ein wichtiges Thema eines jeden Softwareentwicklers. Auf der anderen Seite ist es nur sehr aufwendig möglich eigene Kryptografie routinen zu implementieren.
Es gibt einige Möglichkeiten Anwendungen Kryptografie algortihmen zur Verfügung zu stellen.
Eine hiervon ist das .NET Framework, welches auf einer immer größeren Zahl von Rechner zur Verfügung steht.
Leider unterstützt aber momentan die AFP das .NET Framework nicht und genau hier spring das Crypto.NET Plugin ein.
Das Crypto.NET Plugin ist ein Plugin welches für den AFP-Entwickler ein simples Interface, zur Benutzung der .NET Kryptografie Algorithmen, zur Verfügung stellt.
Installation Crypto.NET oder .NET in VFP
Das Plugin baut auf dem .NET Framework und C# auf. Deswegen ist es zunächsteinmal nötig dafür zu sorgen, dass die AFP beides ansprechen kann. Dies geht dank des Plugins sehr einfach.
Hierzu muss man sich bewusst werden, dass man sozusagen 2 Seiten hat:
- C# & .NET
- AFP & VFP
Auf beiden Seiten muss das Plugin bekannt sein.
Hierzu geht man wie folgt vor:
zu 1.)Unterhalb des Windowsverzeichnisses gibt es ein "Assembly" Verzeichniss. Hier muss zunächst das Plugin per Drag and Drop hingezogen werden.
Im 2. Schritt muss das Plugin über die Regasm.exe, welche sich im .NET Verzeichniss befindet registriert werden.
Nun ist schon die erste hälfte erledigt.
Was hierbei passiert ist folgendes:
Die C# - DLL ist ein Wrapper auf verschiedene .NET Funktionen, aufgrund der Struktur von VFP wäre ein Direkter zugriff auf das .NET Framework nur schwer möglich. Deswegen war es wichtig die zugriffe auf ein einfaches Interface zu reduzieren und alles weitere sinnvoll zu automatisieren. In dem Moment, in dem das Plugin registriert ist, steht dem AFP-Plugin ein einfach ansprechbares Interface für die Kryptografie algorithmen zur Verfügung
zu 2.) Die Dateien des AFP PLugins müssen nun einfach in das Plugin Verzeichniss kopierten um dann wie gewohnt im AFP Kontrollcenter das Plugin anzugeben und schon steht das Verschlüsselungs objekt "oCryptoNet" zur Verfügung.
Durch den C# Wrapper konnte nun ein einfaches AFP Plugin geschrieben werden, welches nur noch das Interface sinnvoll ansprechen musste, ebenso ist einfache die Implementierung der VFP Events möglich.
Kryptografie Methoden im Crypto.NET
DES
DES = Data Encryption Standard
DES stelle lange Zeit den Standard bei der Datenverschlüsselung dar. Heut zutage ist DES noch im Standard jedoch wird AES, zbsp. bei offenen Verbindungen vorgezogen.
Eine Schätzung des National Institute of Standard and Technology: zur Datensicherheit:
Der kryptografische Algorithmus [DES] verwandelt einen binären 64-Bit-Wert in einen einzigartigen binären 64-Bit-Wert, der auf einer 56-Bit-Variablen basiert. Wenn die komplette 64-Bit-Eingabe benutzt wird (d.h. keines der eingegebenen Bits sollte von Block zu Block vorgegeben sein) und wenn die 56-Bit-Variable zufällig gewählt wird, kann keine andere Technik als das Ausprobieren aller möglichen Schlüssel unter Benutzung bekannter Eingabe und Ausgabe für den DES garantieren, daß der Schlüssel gefunden wird. Da es über 70.000.000.000.000.000 (siebzig Quadrillionen) mögliche Schlüssel von 56 Bit gibt, ist die Möglichkeit, einen bestimmten Schlüssel auf diese Art und Weise zu erhalten, in typisch bedrohten Umgebungen praktisch nicht gegeben.
3DES
3DES = Tripple Data Encryption Standard
Der 3DES entspricht einem dreifachen DES.
AES
AES = Advanced Data Encryption Standard
AES bietet im Gegensatz zu DES eine Variable Schlüssellänge.
Weiterhin wird der AES Algorithmus als sicherer im Verleich zu DES angesehen.
Informationen von http://www.rsasecurity.com
The AES is the Advanced Encryption Standard. The AES was issued as FIPS PUB 197 by NIST (see Question 6.2.1) standard is the successor to DES (see Question 3.2.1). In January 1997 the AES initiative was announced and in September 1997 the public was invited to propose suitable block ciphers as candidates for the AES. The AES algorithm was selected in October 2001 and the standard was published in November 2002. NIST's intent was to have a cipher that will remain secure well into the next century.
AES supports key sizes of 128 bits, 192 bits, and 256 bits, in contrast to the 56-bit keys offered by DES.
The AES algorithm resulted from a multi-year evaluation process led by NIST with submissions and review by an international community of cryptography experts. The Rijndael algorithm, invented by Joan Daemen and Vincent Rijmen, was selected as the standard.
Over time, many implementations are expected to upgrade to AES, both because it offers a 128-bit key size, and because it is a federal standard.
MD5
MD5 = Message Digest Algorithm
MD5 Stellt einen Algorithmus da welcher über die Daten eine Prüfsumme erstellt.
Dies ist zum Beispiel beim up-/ download von dateien sinnvoll, um zum Beispiel prüfen zu können ob die Datei ordnungsgemäß übertragen wurde, ebensoll können mittel Prüfsummen Passwort abfragen realisiert werden.
Informationen von http://www.rsasecurity.com
MD2 [Kal92], MD4 [Riv91b] [Riv92b], and MD5 [Riv92c] are message-digest algorithms developed by Rivest. They are meant for digital signature applications where a large message has to be "compressed" in a secure manner before being signed with the private key. All three algorithms take a message of arbitrary length and produce a 128-bit message digest. While the structures of these algorithms are somewhat similar, the design of MD2 is quite different from that of MD4 and MD5. MD2 was optimized for 8-bit machines, whereas MD4 and MD5 were aimed at 32-bit machines. Description and source code for the three algorithms can be found as Internet RFCs 1319-1321 [Kal92] [Riv92b] [Riv92c].
Häufige Fragen zu Crypto.NET
Q:
Wie Installiere ich das Plugin?
A:
1.) Die zugrundeliegende DLL muss registriert werden.
Hierfür brauchst du die RegAsm.exe. Diese liegt der .NET Frameworkdistribution bei.
Falls du kein .NET Framework hast siehe -> "Woher bekomme ich das .NET Framework?"
Nun registriere die Crypto.dll mit der RegAsm.exe das geht so: RegAsm crypto.dll
2.) Die DLL muss in das Assembly Verzeichniss, welches unterhalb von Windows liegt gezogen werden.
3.) Das Plugin muss in der AFP Eingetragen werden. Dies machst du über das ControlCenter. Weitere Infos hierfür entnehme bitte der AFP-Doku oder Frage in den üblichen AFP Infoquellen nach.
Q:
Von wo bekomme ich das .NET Framework?
A:
Dieses gib es bei Microsoft im Download Center kostenlos.
Q:
Sind weitere Funktionen geplant?
A:
Ja!
Geplant sind unteranderem unterstützung von OpenPGP, Verschlüsselung ganzer Dateien / Ordner, Weitere En-/DeCryption Standards, uvm...
Hier kann jeder aktiv mitwirken und Vorschläge fließen direkt in die Entwicklung ein.
Q:
Was bringt mir die Lizenzierung?
A:
Einige Vorteile:
- Automatische Benachrichtigung bei Updates
- Weitere Funktionen in der Light Version sind nur DES und MD5 verfügbar
- Support und Beratung bei Einsatz und Problemen
- Ein offenes Ohr für Wünsche und Ideen ;-)
Q:
Wo ist der Unterschied zwischen der Light und der Full Version?
A:
Als erstes darf die Light Version nur Non-kommerziell oder in Absprache mit der BE IT-Solutions eingesetzt werden.
Die Fullversion hat weitere Funktionen AES,3DES,RSA, weitere folgen.
Q:
Ich habe die DLL in das Assembly Verzeichniss per Drag and Drop gezogen aber es erscheint nicht als Komponente?
A:
Aufgrund von Windows restriktionen muss das Drag and Drop im Internetexplorer ausgeführt werden und nur auf die DLL.
Q:
Ich bekomme das Objekt angezeigt aber jeder Aufruf schlägt fehl, Was habe ich falsch gemacht?
A:
Die C# DLL muss per RegAsm registriert UND im GAC aufgelistet sein.
Q:
Die RegAsm.exe wird nicht gefunden?
A:
Wenn das .NET Framework nicht im Systempfad steht findet windows die regasm.exe nicht. Man Kann auch die Datei von hand suchen. Sie steht im .NET Framework und dort im Unterverzeichniss der Version des .NET Frameworks.
Q:
Ich habe das Plugin installiert / geupdatet wie beschrieben aber wieso bekomme ich immer noch Fehler?
A:
Aufgrund der Eigenschaften von Windows kann es passieren dass die Registry von Windows Fehleinträge insbesondere bei Anderungen enthält. Erfahrungsgemäß lassen sich diese Probleme mit RegClean.exe beseiten.
Q:
Von wo bekomme ich Regclean?
A:
Regclean ist kostenlos verfügbar bei ->
ZD-NET
http://www.download.com
http://www.tucows.de
Weitere Informationsquellen zu .NET und VFP: