Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen...

4
Vol. 16 Ausgabe 4.08 www.eclipse - magazin.de >>Ganymede: Eclipse Classic 3.4 >> Spring Dynamic Modules (DM) >> JCrypTool >> BIRT 2.3.0 >> EMF 2.4.0 >> GMF 2.1.0 Eclipse Tools & Plug-ins Mit CD Alle Infos S. 3 >> CDT 5.0.0 >> ECF 2.0.0 >> GEF 3.4.0 >> WTP 3.0.0 Enterprise Eclipse Ganymede ist da! >> 13 2008 – Odyssee im Weltraum? Spring trifft OSGi und RCP >> 74 Die Stärke der Drei Lotus Notes goes Eclipse >> 66 Vom Messaging- und Anwendungsclient zur Lösungsplattform Quo vadis Eclipse? >> 20 Wie sieht das Eclipse der Zukunft aus? >> MDT 2.2.0 >> Equinox >> Riena >> Mylyn Alle Infos ab Seite 31 Neues Projekt: Eclipse Riena bringt RCP und Equinox zusammen >> 47, 53 Herausforderung: Zugriff auf Java Enterprise mit Eclipse RCP >> 59 Sonderdruck der Firma TRIVADIS

Transcript of Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen...

Page 1: Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen Jahren, dieses Vorurteil zu beheben. Das Open-Source-Projekt JCrypTool ist nun angetreten,

SonderdruckVol. 16Ausgabe 4.08

www.eclipse-magazin.de

>>Ganymede: Eclipse Classic 3.4

>> Spring Dynamic Modules (DM)

>> JCrypTool

>> BIRT 2.3.0

>> EMF 2.4.0

>> GMF 2.1.0

Eclipse Tools & Plug-insMitCDAlle Infos S. 3

Eclipse Tools & Plug-insEclipse Tools & Plug-insMit>> CDT 5.0.0

>> ECF 2.0.0

>> GEF 3.4.0

>> WTP 3.0.0

Enterprise Eclipse

Ganymede ist da! >> 13

2008 – Odyssee im Weltraum?

Spring trifft OSGi und RCP >> 74

Die Stärke der Drei

Lotus Notes goes Eclipse >> 66

Vom Messaging- und Anwendungsclient zur Lösungsplattform

Quo vadis Eclipse? >> 20

Wie sieht das Eclipse der Zukunft aus?

>> MDT 2.2.0

>> Equinox

>> Riena

>> Mylyn>> GMF 2.1.0Alle Infos S. 3 >> WTP 3.0.0 >> MylynAlle Infos ab Seite 31

Ganymede ist da!

Neues Projekt: Eclipse Rienabringt RCP und Equinox zusammen >> 47, 53

Herausforderung: Zugriff auf Java Enterprise mit Eclipse RCP >> 59

Sonderdruck

der Firma TRIVADIS

Page 2: Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen Jahren, dieses Vorurteil zu beheben. Das Open-Source-Projekt JCrypTool ist nun angetreten,

2 www.eclipse-magazin.deeclipse magazin Vol. 16

Sonderdruck

© Software & Support Verlag GmbH

Das Cryptography-Awareness-Pro-gramm CrypTool [1], das ursprüng-

lich von der Deutschen Bank an die Open Source Community übergeben wurde, ist sicherlich den meisten an der Kryptogra-� e interessierten Anwendern ein Begriff. Das auf der Eclipse Rich Client Platform (RCP) basierte JCrypTool [2] soll nun mit der Unterstützung der Deutschen Bank und deren CrypTool-Entwicklern die Nachfolge des bekannten E-Lear-ning-Programms übernehmen. Wie im Original können sich Benutzer mit der anwendungsorientierten E-Learning-Software Kenntnisse im Bereich der Ver-schlüsselung und der digitalen Signaturen erarbeiten. Auch der Kryptoanalyse wird breiter Raum eingeräumt. Neu ist neben Kryptofunktionen wie Entropy und S/MIME-PGP-Vergleichen auch die XML-Sicherheit.

Neben kryptogra� scher Theorie und Praxis bietet JCrypTool nun zudem die Möglichkeit für Entwickler, die Software selbstständig zu erweitern und so die JCrypTool-Plattform um eigene Plug-ins zu ergänzen. Das JCrypTool-Core-Team [3] stellt dazu eine stabile Plattform zur Verfügung (Abb. 1), mit allen dazugehöri-gen Editoren (für Hex, Text und (geplant) XML) und zahlreichen Views (derzeit Algorithm und Navigator). Logging und weitere grundsätzliche Features wie Wel-come Page und Hilfe sowie grundlegende kryptogra� sche Funktionen sind eben-falls enthalten. Plug-in-Entwickler kön-

nen sich so auf ihr spezielles Interessens-gebiet konzentrieren und ausschließlich ihren domänenspezi� schen Code entwi-ckeln. Of� zielle JCrypTool Plug-ins � n-den sich bereits im Plug-ins-Projekt [4].

Das „J“ in JCrypTool deutet es be-reits an, JCrypTool verwendet die Pro-grammiersprache Java und basiert auf der Eclipse Rich Client Platform (RCP). Derzeit wird Java 1.5 sowie das Eclipse-Europa-Release verwendet. Geplant ist in Zukunft die Umstellung auf Gany-mede sowie der Wechsel auf Java 1.6. Li-zenziert ist JCrypTool unter der Eclipse Public License 1.0, eine Ausnahme da-von bilden die enthaltenen externen APIs

oder Plug-ins wie BouncyCastle [5] oder Flexible [6], die unter anderen Open-Source-Lizenzen stehen.

JCrypTool besteht derzeit aus über 30 Plug-ins, davon gehören sieben zum engen Core, die restlichen Plug-ins sind Editoren, Provider oder Crypto Plug-ins (Abb.2). Das JCrypTool-Core-Team entwickelt ausschließlich die JCrypTool-Plattform und stellt über das JCrypTool-Plug-ins-Projekt beispielhafte Implementierungen von Crypto Plug-ins für Verschlüsselung, Hashes etc. zur Verfügung. Alle weiterge-henden Implementierungen werden von freiwilligen Plug-in-Entwicklern pro-grammiert und dem Projekt beigesteuert. Als Plug-in-Entwickler sind bereits die Universität Marburg und die Technische Universität Darmstadt sowie verschie-dene einzelne Plug-in-Entwickler dabei. Auch die FH Hagenberg aus Österreich wurde Ende 2007 Teil der JCrypTool Community und unterstützt mit einigen Studenten die Arbeit am JCrypTool.

Aufgrund der umfangreichen Integ-rations- und Anpassungsmöglichkeiten hat das JCrypTool den Crypto-Provider der TU Darmstadt, genannt FlexiProvi-

Ein Einblick in die Entwicklung der E-Learning-Software JCrypTool

Kryptisch gesagt …

Kryptografi e und deren Anwendung wird häufi g mit Mathematik und schwer verständlichen Vorgängen in Verbindung gebracht. Die E-Learning-Software CrypTool versucht bereits seit einigen Jahren, dieses Vorurteil zu beheben. Das Open-Source-Projekt JCrypTool ist nun angetreten, dieses Tool mit Java plattformunabhängig und mit der Eclipse RCP erweiterbar umzusetzen und so neue Anwender für die Kryptografi e zu interessieren.

>> DOMINIK SCHADOW

Abb. 1: JCrypTool-

Hauptdialog

Page 3: Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen Jahren, dieses Vorurteil zu beheben. Das Open-Source-Projekt JCrypTool ist nun angetreten,

3www.eclipse-magazin.de eclipse magazin Vol. 16

Sonderdruck

© Software & Support Verlag GmbH

der [6], als Standardprovider ins JCryp-Tool integriert. Da kaum ein Provider alle möglichen Algorithmen unterstützt, steht zudem BouncyCastle zur Verfügung. Wei-tere Provider können jederzeit integriert und durch einen Fall-Through-Mecha-nismus verwendet werden. Dabei werden die installierten Crypto-Provider so lange durchsucht, bis eine passende Implemen-tierung gefunden wird. Der Standardpro-vider kann von jedem Anwender indivi-duell ausgewählt werden (Abb. 3).

Die Auswahlmöglichkeiten beim Crypto-Provider zeigen dabei das wich-tigste JCrypTool-Konzept auf: Der An-wender kann viele Optionen und Para-meter selbst bestimmen und anpassen. Kryptogra� sche Operationen sollen so weit wie möglich vom Anwender selbst kon� guriert werden können. Bei (noch) fehlenden Kenntnissen können die Stan-dardeinstellungen verwendet und die kryptogra� sche Funktion ohne weitere Angaben direkt ausprobiert werden.

Die PlattformBeim ersten Start von JCrypTool begrüßt die Welcome Page neue Anwender. Chea t Sheets werden später praxisorientierte Schritt-für-Schritt-Anleitungen zur Ver-fügung stellen. Die JCrypTool-Hilfe selbst wird tiefer gehende Anleitungen und In-formationen rund um die Kryptogra� e enthalten. Auch für Plug-in-Entwickler soll die Onlinehilfe die erste Anlaufstelle vor dem Schreiben eigener Plug-ins wer-den und den Einstieg in die Plug-in-Ent-wicklung erleichtern.

JCrypTool arbeitet derzeit rein edi-torbasiert. So öffnet der Anwender die ge-wünschte Datei im Hex- oder Texteditor und führt dann die gewünschten Opera-tionen aus. Dabei kann die Dateizuord-nung zu einem Editor angepasst werden. Ebenso kann der Inhalt vom Hex-Editor per Mausklick an den Texteditor über-geben werden und umgekehrt. In einer späteren Version ist das Bearbeiten von Dateien ohne explizites Öffnen über die bereits rudimentär integrierte Navigator View geplant. Hiermit soll z.B. ein per-formantes Signieren, Verschlüsseln oder Hashen von großen und/oder mehreren Dateien ermöglicht werden.

Features und Plug-ins von Dritten sind nicht Teil der JCrypTool-Basisins-tallation, sondern werden separat her-untergeladen. Neben dem Core enthält das Basispaket nur die notwendigen Fea-

tures wie Hex- und Texteditor sowie die beiden Crypto-Provider FlexiProvider und BouncyCastle. Der EHEP-Hex-Edi-tor ist dabei keine Eigenentwicklung des JCrypTool-Teams, sondern als Eclipse Plug-in [7] verfügbar.

Mit über 30 MB ist bereits der JCryp-Tool Core recht mächtig geraten. Das Team hat sich entschlossen, alle „ge-bräuchlichen“ Eclipse-Plug-ins in der Basisinstallation mit auszuliefern und so Plug-in-Entwickler von dieser Aufgabe zu befreien. Damit können Plug-in-Ent-wickler, sofern keine exotischen Plug-ins in den Abhängigkeiten vorhanden sind, davon ausgehen, dass ihr Plug-in oh-ne weitere Anpassungen im JCrypTool funktionsfähig ist.

Die Plug-insPlug-ins werden im JCrypTool nach Typ getrennt und gruppiert, d.h. bei-spielsweise in Features zur klassischen und zur modernen Kryptogra� e zusam-mengefasst. Damit die Algorithmen in der Algorithms View angezeigt werden, müssen sich diese an die de� nierten und dokumentierten Extension Points (im org.jcryptool.core.operations-Plug-in) halten und diese korrekt erweitern.

Die vom Anwender durchgeführten Operationen wie das Verschlüsseln per RSA-Algorithmus werden über die Me-nüleiste oder schneller über die Algorithm View aufgerufen (Abb. 1, rechte Seite). Vor allem die intuitivere Möglichkeit über die View soll noch ausgebaut werden. Hier liegen die Anforderungen für kryp-togra� sche Einsteiger noch zu hoch, eine Unterscheidung zwischen symmetrischen und asymmetrischen Algorithmen kann und will nicht jeder ohne Weiteres treffen. Nach der Auswahl öffnet sich ein Wizard,

der den Anwender durch die notwendigen Aktionen führt und per kontextsensitiver Hilfe weitere Unterstützung bietet. Hier sind den einzelnen Crypto Plug-ins nahe-zu keine Grenzen gesetzt.

ArchitekturViele architektonische Entscheidungen wie die Verwendung von Extensions und Extension Points werden durch die RCP-Architektur bereits fest vorgegeben. Um den Einstieg und die Mitarbeit möglichst einfach zu gestalten, werden diese Vor-gaben natürlich eingehalten. (Eclipse-)Standards werden, wenn sie vorhanden und dokumentiert sind, grundsätzlich immer angewendet.

Der gesamte JCrypTool Core (in den Plug-ins und Packages org.jcryptool.core genannt) ist streng nach Funktio-nalität getrennt und besteht aus insge-samt acht Plug-ins, zusammengefasst im Feature org.jcryptool.core.feature. Im JCrypTool-Kern ist alles enthalten, was die JCrypTool-Plattform grundsätzlich zum Arbeiten benötigt. Der Kern ist da-mit zwar allein lauffähig, enthält aber außer einem „nackten“ JCrypTool kei-nerlei weitergehende Kryptofunktiona-lität. Erst mit dem „erweiterten“ Core erhält JCrypTool Editoren, Crypto-Pro-vider und einige weitere kryptogra� sche Funktionalitäten (Abb. 2).

Stand der DingeMilestone 1 ist seit August 2007 verfüg-bar (dessen Entwicklung basierte noch auf Eclipse 3.2), im Sommer dieses Jahres folgte Milestone 2. Während Milestone 1 noch erste zaghafte Schritte in Richtung Eclipse RCP machte und mehr einen Pro-totypen darstellte, geht es mit Milestone 2 einen großen Schritt in Richtung Final

Abb. 2: JCrypTool-Core-Übersicht

Page 4: Sonderdruck Trivadis EMVol.16 · PDF fileSoftware CrypTool versucht bereits seit einigen Jahren, dieses Vorurteil zu beheben. Das Open-Source-Projekt JCrypTool ist nun angetreten,

4 www.eclipse-magazin.deeclipse magazin Vol. 16

Sonderdruck

© Software & Support Verlag GmbH

Release. Mit Milestone 2 folgte die Um-stellung von reinen Plug-ins auf Features und damit einhergehend die Verwen-dung einer Update Site.

Gerade signierte Plug-ins waren ein wichtiges Anliegen, um als Kryptogra� e-E-Learning-Software mit gutem Beispiel voranzugehen. Das Branding, die Wel-come Page und weitere GUI-Gimmicks gehören ebenso zum Milestone 2, wie Verbesserungen und Erweiterungen im Core. Dazu zählen die begonnene In-ternationalisierung der Plug-ins und ei-ne in Entstehung be� ndliche Test-Suite für den Core. Die Internationalisierung greift auf die Eclipse-Standards zurück, JCrypTool steht damit (fast) komplett auf Deutsch und Englisch zur Verfügung. Ebenso stehen mit Milestone 2 neben Windows erstmals auch herunterladba-re Binaries für Mac und Linux bereit.

SchwierigkeitenAuch wenn die Eclipse Rich Client Plat-form nun schon geraume Zeit verfügbar ist, mangelt es in einigen fortgeschritte-nen Bereichen noch an tiefer gehender Dokumentation. Gleichzeitig schreckt die steile Lernkurve viele Entwickler ab und fordert von den Verbleibenden an-fangs einen hohen Einsatz.

Größere Probleme bereitete u.a. die Umstellung von Plug-ins auf Features. Hier dauerte es viele Stunden, bis eine mit Plug-ins lauffähige Rich Client Platform auch mit Features verwendet werden konnte. Der in der Literatur oft gegebene Hinweis, man möge zunächst der Ein-fachheit halber nur Plug-ins verwenden, half nicht wirklich weiter (vor allem da die Umstellung auf Features anschließend oft nicht mehr erwähnt wurde). Ohne Features gibt es schlicht keine Update Site. Und diese muss für eine erweiterbare Eclipse-RCP-basierte Anwendung ein-

fach sein. Auch die Plattformunabhängig-keit durch Verwendung der Target Plat-form samt Eclipse Delta Packs gestaltete sich schwieriger als zunächst erwartet. Das Ganymede-Release deutet aber be-reits an vielen Stellen Verbesserungen an.

Um neuen Entwicklern alle bereits aufgetretenen Probleme zu ersparen, verfügt JCrypTool über ein stetig wach-sendes Wiki [8] auf der SourceForge-Projektseite und eine Mailing-Liste für registrierte Entwickler, eine offene Mailing-Liste für Anwender ist ebenfalls verfügbar.

Fazit und AusblickEnde des Jahres soll der dritte Meilenstein von JCrypTool erscheinen. Der Fokus soll sich dabei von Entwicklern und Plug-in-Committern in Richtung Endanwender und E-Learning-Plattform bewegen. Etw a Mitte 2009 ist die Veröffentlichung der finalen Version 1.0 geplant. Wel-che Features bis dahin noch integriert werden, hängt nicht zuletzt auch von den Wünschen und Anforderungen der JCrypTool Community ab. Von Seiten des Core-Teams selbst sind ebenfalls noch viele Wünsche offen. Neben kleineren Verbesserungen und Erweiterungen ge-hören auch eine Kommandozeilenunter-stützung für Poweruser und weitere un-terstützende Views dazu. Die vollständige und laufend aktualisierte Liste � ndet sich auf der SourceForge-Projektseite im Fea-ture Tracker und in verkürzter Form auch im Releaseplan im Projekt-Wiki.

JCrypTool betritt mit seinem Kon-zept der anwendungsorientierten und gleichzeitig umfangreich erweiterbaren Lernsoftware Neuland und ermöglicht Entwicklern so erstmals, neben dem Lernen und Ausprobieren auch eigene kryptografische Software zu entwi-ckeln. Durch die Verwendung von Java

und Eclipse (RCP) zeigt JCrypTool seine Aktualität – sowohl bei der Softwarear-chitektur als auch der Entwicklungsum-gebung. Derzeit liegt der Fokus noch auf der Entwicklung des eigentlichen JCryp-Tools und zugehöriger Plug-ins, rein Ler-nende sind mit dem bisherigen CrypTool 1.4.xx noch besser beraten.

Aber warum nicht die graue Theorie durch etwas Farbe, genauer dem Entwi-ckeln und Dokumentieren eines eigenen Kryptografie-Plug-ins, interessanter und vielseitiger gestalten? Interessierte am spannenden Feld der Kryptografie, die gerne in einem Open-Source-Projekt mitarbeiten und/oder eigene Plug-ins zur Verfügung stellen möchten, wenden sich an den Autor dieses Artikels oder eines der anderen Mitglieder des JCrypTool-Core-Teams. Um die ersten Schritte mit JCrypTool so angenehm und einfach wie möglich zu gestalten, stehen neben dem Sourcecode umfangreiche Informationen auf der Homepage – Forum, Mailing List und Wiki – zur Verfügung.

Abb. 4: JCrypTool Welcome Page

>> Links & Literatur[1] www.cryptool.org

[2] jcryptool.sourceforge.net

[3] sourceforge.net/projects/jcryptool

[4] sourceforge.net/projects/jctplugins

[5] www.bouncycastle.org

[6] www.fl exible.de

[7] projects.sourceforge.net/ehep

[8] jcryptool.wiki.sourceforge.net

Dominik Schadow ist JCrypTool-Pro-jektleiter und arbeitet als Consultant bei der Trivadis GmbH in Stuttgart. Neben dem JCrypTool beschäftigt er sich mit XML-Sicherheit und ist

Autor des XML Security Plug-ins. Kontakt: [email protected]

Abb. 3: Auswahl des StandardKryptografi e-Providers