Copyright © 1999, 2001 Michael Fischer v. Mollard
Dieser Text ist freie Software, er kann gemäß der Bedingungen der GNU Public License Version 2 weiterverteilt und/oder modifiziert werden. Diese Anleitung wurde nach bestem Wissen erstellt, aber der Autor übernimmt keine Haftung für eventuelle Fehler und deren Folgen.
30. November 2001
Versionsgeschichte | |
---|---|
Version 0.1.1 | 12. Februar 1999 |
Version 0.2.0 | 30. November 2001 |
Zusammenfassung
Dieses Dokument beschreibt die Grundlagen der Benutzung von GNU Privacy Guard (GnuPG), einem freien, OpenPGP kompatiblen Verschlüsselungssystem, welches hauptsächlich für die Verschlüsselung von Email benutzt wird. Damit das Programm wirklich frei ist, wurde auf patentierte Algorithmen wie IDEA verzichtet. GnuPG gehört zu allen Standard Linux Distributionen und ist auf einer Vielzahl anderer System lauffähig.
Inhaltsverzeichnis
Klassische Methoden zur Verschlüsselung benutzen nur einen Schlüssel. Der Sender verschlüsselt seine Nachricht mit diesem Schlüssel, und der Empfänger entschlüsselt ihn mit demselben wieder. Solche Verfahren heißen symmetrische Verfahren. Damit das funktioniert, muss der Empfänger vorher den Schlüssel bekommen haben, und zwar auf einem sicheren Kommunikationskanal, da sonst Unbefugte in Kenntnis des Schlüssels gelangen könnten. Also braucht man einen sicheren Kommunikationskanal, aber wenn man den hat, braucht man auch meist nicht mehr zu verschlüsseln (wenn man von Anwendungen wie einem Codebuch für den Funkverkehr und ähnlichem absieht).
Public Key Verfahren (auch: asymmetrischen Verfahren) beseitigen dieses Problem, indem zwei Schlüssel erzeugt werden: Der öffentliche, der über beliebige Kommunikationskanäle verschickt werden kann und der private, den nur der Besitzer kennt. Idealerweise ist der private Schlüssel nicht mit dem öffentlichen rekonstruierbar. Der Sender verschlüsselt die Nachricht mit dem öffentlichen Schlüssel des Empfängers. Entschlüsselt wird die Nachricht dann mit dem privaten Schlüssel des Empfängers. Nach diesem Schema kann man demnach effektiv verschlüsseln, ohne über einen sicheren Kommunikationskanal zu verfügen.
Ein ganz wichtiger Punkt ist aber die Geheimhaltung des privaten Schlüssels. Er darf auf keinen Fall in fremde Hände geraten, auch nicht über das Netz verbreitet werden. GnuPG via telnet zu benutzen, ist zum Beispiel eine ziemlich schlechte Idee. (Eigentlich sollte man telnet sowieso durch ssh ersetzen. )
Digitale Unterschriften sollen die Authenzität einer Nachricht beweisen. Würden Nachrichten von offizieller Seite signiert, wäre es deutlich schwerer, mit gefälschten Nachrichten Unruhe oder Schaden anzurichten (Echtes Beispiel: Ein Trojaner, verschickt als Patch eines bekannten Webbrowsers).
Ein digitale Signatur wird mit Hilfe des privaten Schlüssels aus dem Text erzeugt. Diese kann dann vom Empfänger mit dem öffentlichen Schlüssel des Senders überprüft werden. Dabei wird nicht nur der Absender (nur der kennt den privaten Schlüssel) überprüft, sondern auch, ob der Text unverändert angekommen ist.
Eine Schwachstelle der Public Key Algorithmen ist die Verbreitung der öffentlichen Schlüssel. Ein Benutzer könnte einen öffentlichen Schlüssel mit falscher User ID in Umlauf bringen. Wenn dann mit diesem Schlüssel Nachrichten kodiert werden, kann der Eindringling die Nachrichten dekodieren und lesen. Wenn er sie dann noch mit einem echten öffentlichen Schlüssel kodiert an den eigentlichen Empfänger weiterleitet, fällt dieser Angriff nicht einmal auf. In der Literatur heißen solche Angriffe man-in-the-middle attacks, sie stellen auch bei vielen anderen Protokollen eine Bedrohung dar.
Die von PGP (und damit auch von GnuPG) gewählte Lösung besteht im Unterschreiben von Schlüsseln. Ein öffentlicher Schlüssel kann von anderen Leuten unterschrieben werden. Diese Unterschrift bestätigt, dass der Schlüssel zu der in der UID angegebenen Person gehört. Der Benutzer kann festlegen, welchen Unterschriften er wie weit traut. Vertrauen ist dabei zwar reflexiv, aber nicht symmetrisch und transitiv. Ein Schlüssel gilt als vertrauenswürdig, wenn er von Leuten unterzeichnet wurde, denen man vertraut. Wenn man Schlüssel unterzeichnet, sollte man sich sicher sein, dass man die Identität desjenigen, dessen Schlüssel man unterschreibt, genau kennt. Eine Möglichkeit ist es, den Schlüssel persönlich bekommen zu haben, eine andere, den Fingerprint über zuverlässige Kanäle zu vergleichen.
Wenn man Daten vertraulich halten will, sollte man sich nicht nur Gedanken über die Sicherheit des Verschlüsselungsalgorithmus machen, sondern über die Systemsicherheit allgemein. Die in GnuPG verwendeten Algorithmen gelten gemeinhin als nicht zu knacken. Daraus zu schließen, dass alle verschlüsselten Daten sicher seien, ist naiv. Es gibt auch noch andere Formen von Angriffen. Anfang Februar 1999 tauchte zum Beispiel ein Word Trojaner auf, der private PGP Schlüsselbunde auf der Festplatte suchte und via ftp verschickte (Meldung im Heise Newsticker vom 03.02.99). Ein privates Schlüsselbund lässt sich, insbesondere bei schlechtem Passwort, deutlich leichter knacken als eine einzelne Datei.
Denkbar sind auch Trojaner, die Tastatureingaben weiterleiten. Auf Slashdot wurde erst kürzlich (November 2001) berichtet, dass das FBI tatsächlich versucht, mittels bekannter Schwachstellen Backdoors zu installieren, um Verschlüsselung zu umgehen. Falls man die Nachrichten entschlüsselt auf dem Rechner lagert, können sie dort natürlich auch gelesen werden. Aufwendiger, aber technisch möglich ist es, die Abstrahlung des Monitors zu messen und sichtbar zu machen, so dass der Bildschirminhalt mitgelesen werden kann. Dann nützt es auch nichts, eine verschlüsselte Datei nur zum Lesen zu entschlüsseln. Zum Thema “Überwachung” gibt es den interessanten Artikel “Abhör-Dschungel” aus der c't 5/98, Seite 82 und “In die Röhre geguckt” c't 24/98, Seite 90. Wiederum bei Slashdot konnte man im Sommer 2001 lesen, dass das FBI im Rahmen einer Ermittlung gegen Mafiosi Wanzen in den Tastaturen angebracht hat, um deren PGP Key zu erfahren.
Die obigen Möglichkeiten sollen keine Paranoia hervorrufen, sondern nur darauf hinweisen, dass Verschlüsselung von Daten nur ein Baustein eines Sicherheitskonzeptes sein kann. Um so erstaunlicher, dass es immer wieder Versuche gibt, Verschlüsselung von Daten zu be- beziehungsweise zu verhindern.
Mittlerweile enthält wohl jede aktuelle Linux Distribution GnuPG. Die erste Wahl ist es natürlich, das mitgelieferte GnuPG mit den ‘Bordwerkzeugen’ zu installieren. Das sollte problemlos funktionieren. Das Laden des Quellcodes ist dann nur noch nötig, wenn eine neue Version installiert werden soll (zum Beispiel, wenn ein kritischer Bug entdeckt wurde)
Die offizielle Bezugsquelle ist die GnuPG Homepage. Dort gibt es auch eine Liste der Mirrors.
Aus rechtlichen Gründen darf GnuPG nicht aus Servern in den USA geladen werden, da Kryptographie in den USA als Rüstungsgut gilt. Aus diesem Grund gibt es übrigens PGP immer in nationalen und internationalen Versionen, wobei bei letzteren der Sourcecode in Buchform exportiert wird und er in Oslo wieder eingescant wird. Genaueres dazu auf der Internationalen PGP Homepage. Nichtsdestotrotz darf GnuPG in die USA eingeführt und benutzt werden, es darf dort auch auf ftp-Servern abgelegt werden. Es muss dabei nur garantiert werden, dass GnuPG nicht reexportiert wird.
Falls man schon eine lauffähige GnuPG oder PGP Version hat, sollte man die Signatur des Archivs überprüfen (siehe “Signieren und Signaturen prüfen”).
Da die Entwicklung unter Linux (x86) stattfindet, ist die Übersetzung dort meist gar kein Problem. Eine aktuelle Liste der offiziell unterstützten Betriebssysteme steht auch auf der GnuPG Homepage. Das folgende Vorgehen gilt aber betriebssystemunabhängig.
Nachdem das Archiv mit
tar xvzf gnupg-?.?.?.tar.gzentpackt ist, tippt man
./configureDabei sollte nichts verblüffendes passieren. Mit
./configure --helpkann man sich, falls nötig, die möglichen Konfigurationsparameter ansehen. Falls es Probleme mit der der Internationalisierung (gettext) geben sollte, kann man mit --with-included-gettext eine mitgelieferte Version benutzen oder sie mit --disable-NLS abschalten.
Danach sollte
makeproblemlos laufen. Falls es dabei wider Erwarten Probleme gibt, sollte man (in dieser Reihenfolge): Selbst probieren (natürlich mit Lesen der Dokumentation), jemanden in der Nähe fragen, der sich auskennt und schließlich auf der Mailingliste (siehe “Informationsquellen”) um Rat fragen. Falls es sich nur um falsche Pfade handelt, sollte man mit make clean (oder rabiater) das Verzeichnis säubern, neu konfigurieren und es dann noch einmal versuchen.
Mit
make installwerden die Programme und die Manpage in die dafür vorgesehenen Verzeichnisse kopiert. In usr/local/share/gnupg/ (oder in dem bei ./configure angegebenen Verzeichnis) liegt die Datei options.skel. Wenn man diese nach ˜/.gnupg/options kopiert, werden die entsprechenden Einstellungen als Standard benutzt. Das Kopieren sollte eigentlich beim Anlegen von ˜/.gnupg/ automatisch passieren. Jeder mögliche Eintrag ist gut dokumentiert, deshalb werden sie hier nicht beschrieben.
Man kann GnuPG als suid root laufen lassen (das heißt: das Programm läuft mit allen Rechten des Superusers), damit die Möglichkeit ausgeschlossen wird, dass Teile des Programmes ausgelagert werden und dann gelesen werden können. Wie real diese Gefahr ist, kann ich nicht beurteilen, allerdings ist auch mit suid root Vorsicht geboten, da ein trojanisches Pferd mit suid root beliebigen Schaden anrichten kann. Man kann die Warnmeldung, die ausgegeben wird, falls GnuPG nicht suid root läuft, mit no-secmem-warning in ˜/gnupg/options abschalten.
Mit
gpg --gen-keywird ein neues Schlüsselpaar erzeugt. Als Erstes wird man nach dem zu verwendenden Algorithmen gefragt. Genaueres zu den Algorithmen steht in der PGP DH vs. RSA FAQ oder in Schneier (1996) Man kann (und sollte) einfach den default Wert (DSA/ ElGamal) nehmen.
Bei der Schlüssellänge muss man zwischen Sicherheit und Rechenzeit abwägen. Je länger ein Schlüssel, desto sicherer ist er, desto länger dauern aber auch Operationen mit ihm. Bei der Rechenzeit muss man aber berücksichtigen, dass der Schlüssel möglicherweise auch noch in einigen Jahren benutzt werden soll, wenn die durchschnittliche Rechenleistung stark angewachsen sein wird. GnuPG fragt ab einer Schlüssellänge von mehr als 1536 Bits, ob ein so großer Schlüssel wirklich nötig sei, andere Leute empfehlen mindestens 2048 Bits. Für DSA ist 1024 Bits Standard.
Dann wird nach Namen, Kommentar und Email Adresse gefragt. Anhand dieser Angaben wird der Schlüssel identifiziert. Man kann die Angaben aber später noch ändern beziehungsweise ergänzen. Siehe “Schlüsselbund verwalten” Man sollte eine länger gültige Email Adresse wählen, da die komplette Benutzerkennung unterschrieben wird. Wird dann etwas geändert, gelten die Unterschriften unter die geänderten Angaben nicht mehr.
Als letztes wird nach dem Passwort (beziehungsweise Passsatz (in der deutschen Übersetzung: Mantra) denn es können Leerzeichen vorkommen) gefragt, mit dem der private Schlüssel gesichert werden soll. Verwenden Sie ein gutes Mantra. Ein gutes Mantra ist
Mit
gpg --export [UID]wird der Schlüssel mit der User ID UID exportiert. Wird keine UID angegeben, so wird der ganze Schlüsselbund exportiert. Voreingestellt ist Ausgabe auf stdout, man kann aber mit der Option -o [Datei] in eine Datei ausgeben. Es empfiehlt sich noch, mit der Option -a (--armor) zu arbeiten, da ich andernfalls Probleme hatte. Mit dieser Option werden die Schlüssel nicht im Binärformat ausgegeben, sondern als ASCII (7 Bit) Dateien.
Den exportierten Schlüssel kann man dann in der Welt verbreiten, wahlweise auf der Homepage, via finger, über Keyserver, ... .
Wenn man von irgendwoher einen öffentlichen Schlüssel bekommen hat, sollte man ihn in sein Schlüsselbund aufnehmen. Das wird mit
gpg --import [Datei]erreicht. Wenn man den Dateinamen weglässt, wird von stdin gelesen.
Es gibt verschiedene Gründe, einen alten Schlüssel zu widerrufen: Er könnte in fremde Hände geraten sein, die UID stimmt nicht mehr oder er ist einfach zu klein geworden. In all diesen Fällen ist der Befehl der Wahl
gpg --gen-revokeDamit wird ein Schlüsselwiderruf-Zertifikat erzeugt. Dafür braucht man den privaten Schlüssel, denn sonst könnten solche Zertifikate auch von Fremden erzeugt werden. Das hat aber einen Nachteil: Ein Schlüssel, dessen Mantra ich nicht weiß, ist offensichtlich nutzlos. Aber weil ich das Mantra nicht weiß, kann ich ihn nicht widerrufen. Deshalb ist es geschickt, sich gleich bei der Erzeugung des Schlüssels ein Widerruf-Zertifikat zu erzeugen. Das sollte dann aber sicher verwahrt werden, am besten auf Diskette und auf Papier, damit es nicht in falsche Hände gerät.
Der Schlüsselbund ist eine Datei, in der alle Schlüssel mit den dazugehörigen Informationen (bis auf die Ownertrust Werte, was das ist steht in “Schlüssel signieren”) gespeichert werden. Mit
gpg --list-keyskönnen alle Schlüssel des öffentlichen Schlüsselbundes angezeigt werden. Mit
gpg --list-sigswerden zusätzlich noch die Signaturen angezeigt (siehe “Schlüssel signieren”). Mit
gpg --fingerprintwerden die Schlüssel mit ihren ‘Fingerabdrücken’ aufgelistet. Das sind (verhältnismäßig) kurze Zahlenfolgen, an denen sich der Schlüssel identifizieren lässt. Das kann praktisch sein, um sich über Telefon zu vergewissern, dass ein öffentlicher Schlüssel vom Gesprächspartner stammt. Fingerabdrücke im Abspann von Email oder Usenet Artikeln zu verschicken ist übrigens nicht sinnvoll.
gpg --list-secret-keyslistet die Schlüssel des privaten Schlüsselbundes auf. Unterschriften und Fingerabdrücke von privaten Schlüsseln haben keinen Informationswert.
Mit dem Befehl
gpg --delete-key UID bzw. gpg --delete-secret-keykann man Schlüssel aus dem entsprechenden Schlüsselbund löschen.
Der letzte wichtige Befehl für den Umgang mit Schlüsseln lautet
gpg --edit-key UIDIn dem dann folgenden Menü kann man unter anderem das Mantra und das Verfallsdatum ändern, Fingerabdrücke anzeigen lassen und Schlüssel signieren, womit wir beim nächsten Abschnitt wären.
Wie in der Einleitung erwähnt, ist die Echtheit eines öffentlichen Schlüssels die Achillesferse des Systems. Deshalb gibt es die Möglichkeit, Schlüssel zu unterschreiben. Damit bestätigt der Unterzeichnende, dass der in der User ID angegeben User tatsächlich der Besitzer des Schlüssels ist.
Nachdem man mit gpg --edit-key UID den zu unterzeichnenden Schlüssel ausgewählt hat, kann man ihn mit dem Kommando sign unterschreiben.
Unterschreiben Sie nur Schlüssel von deren Echtheit sie sich überzeugt haben. Das kann geschehen, in dem man entweder den Schlüssel persönlich bekommen hat (zum Beispiel auf einer Keysigning Party), oder man über Telefon den Fingerprint vergleicht. Man sollte keinen Schlüssel nur deshalb unterschreiben, weil man den anderen Unterschriften vertraut.
Anhand der Unterschriften und des ‘ownertrusts’ ermittelt GnuPG die Gültigkeit des Schlüssels. Der Ownertrust ist ein Wert mit dem der Benutzer festlegt, in welchem Maße er dem Schlüsselinhaber zutraut, andere Schlüssel verlässlich zu unterzeichnen. Die möglichen Abstufungen sind ‘gar nicht’, ‘weiß nicht’, ‘teilweise’ und ‘vollständig’. Wenn der Benutzer also einem anderem nicht traut, kann er GnuPG über diesen Mechanismus anweisen, dessen Unterschrift zu ignorieren. Der Ownertrust wird nicht im Schlüsselbund gespeichert, sondern in einer separaten Datei.
Keyserver sind große Datenbanken mit öffentlichen Schlüsseln. GnuPG kann von Haus aus Schlüssel von Keyservern importieren und zu Keyservern exportieren. GnuPG kommuniziert mit dem Keyserver über HTTP, benutzt aber den Port 11371. Man muss darauf achten, dass eine eventuell vorhandene Firewall diesen Port nicht blockiert.
Die Adresse des Keyservers übergibt man mit der Option --keyserver beim Aufruf auf der Kommandozeile, man kann den Eintrag aber auch in Konfigurationsdatei ˜/.gnupg/options anlegen:
# Tragen Sie hier Ihren Lieblingserver ein: keyserver search.keyserver.net
Den Server gibt es übrigens wirklich. Hat man nun dafür gesorgt, dass GnuPG weiß, wo die Schlüssel zu finden sind, importiert man mittels
gpg --recv-keys UIDund exportiert mittels
gpg --send-key UID
Falls man mehrere private Schlüssel hat, kann man mit der Option -u UID oder --local-user UID einen (oder mehrere) Schlüssel nach seiner UID auswählen. Diese Auswahl ersetzt den im Konfigurationsfile mit dem Befehl default-key KeyID einen Schlüssel standardmäßig ausgewählten Schlüssel.
Mit -r UID oder --recipient UID kann man den Empfänger in der Kommandozeile auswählen.
Das Kommando zum Verschlüsseln lautet
gpg -e Empfänger [Datei]oder
gpg --encrypt Empfänger [Datei]Es ist sinnvoll, die Dateien auch zu signieren, genaueres siehe “Signieren und Signaturen prüfen”.
Mit dem Befehl
gpg -s (oder --sign)[Datei]unterschreibt man eine Datei mit seinem privaten Schlüssel. Sie wird dabei gleichzeitig komprimiert, ist dann also nicht mehr ohne weiteres lesbar. Mit
gpg --clearsign [Datei]belässt man die Datei lesbar, mit
gpg -b (oder --detach-sign) [Datei]erzeugt man eine Unterschrift in einer separaten Datei. Letzteres ist insbesondere zum signieren von Binärdateien wie Archiven zu empfehlen. Auch bei diesen Befehlen kann die Option --armor nützlich sein.
Üblicherweise wird sowohl signiert als auch verschlüsselt, der Befehl lautet dann vollständig
gpg [-u Sender] [-r Empfänger] [--armor] --sign --encrypt [Datei]
Die Optionen -u (--local) und -r (--recipient) funktionieren wie oben erläutert.
Wenn eine verschlüsselte Datei signiert ist, so wird beim Entschlüsseln die Signatur mitgeprüft. Die Signatur einer unverschlüsselten Datei prüft man mit
gpg [--verify] [Datei]immer natürlich vorausgesetzt, dass man im Besitz des entsprechenden öffentlichen Schlüssels ist.
Die GnuPG Homepage. Die zentrale Anlaufstelle für Ankündigungen, Bugfixes, Dokumentationen, Links auf Frontends und allem, was mit GnuPG zusammen hängt.
Die sehr ausführliche GnuPG FAQ.
Das GNU Privacy Handbook http://www.gnupg.org/gph/de/manual/, welches auf der Homepage in diversen Sprachen, auch in Deutsch, zu finden ist.
Die GnuPG Mailinglisten. Inklusive Archiven und Beschreibungen auf der GnuPG Homepage zu finden.
Die beiliegende Dokumentation. Nicht vergessen,
gpg --helphilft!
PGP ist das ältere und (noch) weiter verbreitete Kryptographie Programm. Deshalb gibt es dazu auch viel mehr Informationen, sie sind aber teilweise so allgemein, dass sie auch für GnuPG nützlich sein können.
Die PGP DH vs. RSA FAQ gibt Informationen über die verwendeten Algorithmen.
Keyserver.net Dort findet man auch eine Liste von anderen Keyservern.
RFCs (Abkürzung für Request for Comments: Bitte um Kommentare) sind ein Rückgrat der Internets: Dort werden unzählige Protokolle definiert. Die Lektüre von RFCs mag etwas trocken sein, aber danach weiß man wirklich Bescheid. Die folgenden RFCs beschäftigen sich im weiteren Sinne mit GnuPG:
B. Schneier, “Applied Cryptography, Second Edition”, Wiley, 1996 Deutsche Ausgabe unter dem Titel “Angewandte Kryptographie”, Addison-Wesley, 1996
Das Standardwerk zum Thema Kryptographische Algorithmen, bis auf neuere wie AES sollte man dort alle nötigen Informationen bekommen.
B. Schneier, “Secrets and Lies - Digital Security in a Networked world”, Wiley, 2000. Deutsche Ausgabe unter dem Titel “Secrets Lies: IT Sicherheit in einer vernetzten Welt”, dpunkt 2001
Dieses Buch behandelt die IT Sicherheit in einem etwas größeren Kontext. Im Vorwort schreibt er “Der Fehler in Applied Cryptography bestand darin, überhaupt nicht über den Zusammenhang zu sprechen. Kryptographie war für mich die Antwort auf alle Fragen [...] Eine Kollege sagte mir, dass die Welt voller schlechter Sicherheitssystem sei, die von Leuten entwickelt wurden, die Applied Cryptography gelesen hätten.” In Secrets Lies spricht er über die Zusammenhänge, ein wirklich lehrreiches Buch.
R. Russell, S. Cunningham, “Hack Proofing your Network”, Osborne/McGraw-Hill, 2000. Deutsche Ausgabe unter dem Titel “Maximum Protection” MITP, 2001
Hat direkt nichts mit GnuPG zu tun, macht aber auf einer anderen, eher technischen Ebene deutlich, dass GnuPG nur ein Teil einer Lösung sein kann.
Copyright © 1999, 2001 Michael Fischer v. Mollard
Dieses Dokument wird unter den Bedingungen der Gnu Public License (GPL) veröffentlicht. Alle Angaben sind nach bestem Wissen, aber natürlich ohne Gewähr (no warranty in any kind).
Version 0.1 war die erste öffentliche Version dieses Dokumentes.
Neuer Abschnitt “Grenzen der Sicherheit”
Erklärung der Signatur verbessert
kleinere Detailverbesserungen nach Hinweisen von Werner Koch (danke!)
Ich hatte mich längere Zeit nicht mehr mit der HOWTO beschäftigt und war auch unter der angegebenen Adresse nicht erreichbar, weil ich andere Dinge zu tun hatte. Mittlerweile ist es aber unvermeidlich, das Dokument wieder zu verbessern. Dabei soll aber der Charakter als Schnelleinstieg erhalten bleiben und die Beschreibung bewusst knapp sein, aber ich hoffe, dass insbesondere die neuen Links das Dokument besser machen.
Auf DocBook umgestellt. Da ich vorläufig keine Zeit habe, mich mit fop zu beschäftigen, ist im Moment nur eine HTML Ausgabe vorhanden. Längerfristig ist DocBook aber die deutlich flexiblere Lösung.
Neue Literaturangaben eingefügt und diverse Kleinigkeiten entstaubt und korregiert.
Neuer Absatz über Keyserver.
Anregungen, Kritik, Verbesserungen und Erweiterungen einfach an Michael Fischer v. Mollard (<[email protected]>) Dokument weiter verbessert werden kann. Besonders interessiert wäre ich an Bemerkungen und Anregungen zum Thema DocBook und Formatierung von DocBook Texten.