diff --git a/doc/manual/gpg4win-compendium-de.tex b/doc/manual/gpg4win-compendium-de.tex
index a0368e9c..6a77f1c5 100644
--- a/doc/manual/gpg4win-compendium-de.tex
+++ b/doc/manual/gpg4win-compendium-de.tex
@@ -1,5676 +1,5677 @@
% gpg4win-compendium-de.tex
% Note, that this a HyperLaTeX source and not plain LaTeX!
% DIN A4
\documentclass[a4paper,11pt,oneside,openright,titlepage]{scrbook}
% DIN A5
%\documentclass[a5paper,10pt,twoside,openright,titlepage,DIV11,normalheadings]{scrbook}
\usepackage{ifthen}
\usepackage{hyperlatex}
% Switch between papersize DIN A4 and A5
% Note: please comment in/out one of the related documentclass lines above
\T\newboolean{DIN-A5}
%\T\setboolean{DIN-A5}{true}
% define packages
\usepackage{times}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\T\usepackage[ngerman]{babel}
\W\usepackage[german]{babel}
\usepackage{ifpdf}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{moreverb}
\T\ifthenelse{\boolean{DIN-A5}}{}{\usepackage{a4wide}}
\usepackage{microtype}
\W\usepackage{rhxpanel}
\W\usepackage{sequential}
\usepackage[table]{xcolor}
\usepackage{color}
\usepackage{fancyhdr}
\usepackage{makeidx}
% write any html files directly into this directory
% XXX: This is currently deactivated, but sooner or later
% we need this to not let smae filenames overwrite each other
% when we have more than one compendium. The Makefile.am needs
% to be updated for this as well - not a trivial change.
\W\htmldirectory{compendium-html/de}
% Hyperref should be among the last packages loaded
\usepackage[breaklinks,
bookmarks,
bookmarksnumbered,
pdftitle={Das Gpg4win-Kompendium},
pdfauthor={Jochen Saalfeld, Emanuel Schütze, Werner Koch, Florian v. Samson, Dr.
Jan-Oliver Wagner, Ute Bahn, Karl Bihlmeier, Manfred J. Heinze,
Isabel Kramer, Dr. Francis Wray},
pdfsubject={Sichere E-Mail- und Datei-Verschlüsselung mit GnuPG für Windows},
pdfkeywords={Gpg4win, E-Mail, Datei, verschlüsseln, entschlüsseln,
signieren, OpenPGP, S/MIME, X.509, Zertifikat, Kleopatra, GpgOL,
GpgEX, GnuPG, sicher, E-Mail-Sicherheit, Kryptografie, Public-Key,
Freie Software, Signatur, prüfen, FLOSS, Open Source Software, PKI, Ordner}
]{hyperref}
% set graphic extension
\begin{latexonly}
\ifpdf
\DeclareGraphicsExtensions{.png}
\else
\DeclareGraphicsExtensions{.eps}
\fi
\end{latexonly}
% set page header/footer
\T\ifthenelse{\boolean{DIN-A5}}
{% DIN A5
\T\fancyhead{} % clear all fields
\T\fancyhead[LO,RE]{\itshape\nouppercase{\leftmark}}
\T\fancyhead[RO,LE]{\large\thepage}
\T\fancyfoot[CE]{www.bomots.de}
\T\fancyfoot[CO]{Sichere E-Mail}
\T\pagestyle{fancy}
\renewcommand\chaptermark[1]{\markboth{\thechapter. \ #1}{}}
\renewcommand{\footrulewidth}{0.2pt}
}
{% DIN A4
\T\fancyhead{} % clear all fields
\T\fancyhead[LO,RE]{Das Gpg4win-Kompendium \compendiumVersionDE
\T\\
\T\itshape\nouppercase{\leftmark}}
\T\fancyhead[RO,LE]{\includegraphics[height=0.7cm]{images-compendium/gpg4win-logo}}
\T\fancyfoot[C]{\thepage}
\T\pagestyle{fancy}
}
\makeindex
% define custom commands
\newcommand{\Button}[1]{[\,\textit{#1}\,]}
\newcommand{\Menu}[1]{\textit{#1}}
\newcommand{\Filename}[1]{\small{\texttt{#1}}\normalsize}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\textbf}
\renewcommand{\back}{\textbackslash}
\newcommand{\Email}{E-Mail}
\newcommand{\EchelonUrl}{http://www.heise.de/tp/r4/artikel/6/6928/1.html}
\newcommand\margin[1]{\marginline {\sffamily\scriptsize #1}}
\newcommand{\marginOpenpgp}{\marginline{\vspace{10pt}\includegraphics[width=1.5cm]{images-compendium/openpgp-icon}}}
\newcommand{\marginSmime}{\marginline{\vspace{10pt}\includegraphics[width=1.5cm]{images-compendium/smime-icon}}}
\newcommand{\IncludeImage}[2][]{
\begin{center}
\texorhtml{%
\includegraphics[#1]{images-compendium/#2}%
}{%
\htmlimg{../images-compendium/#2.png}%
}
\end{center}
}
% custom colors
\definecolor{gray}{rgb}{0.4,0.4,0.4}
\definecolor{lightgray}{rgb}{0.7,0.7,0.7}
\T\parindent 0cm
\T\parskip\medskipamount
% Get the version information from another file.
% That file is created by the configure script.
\input{version.tex}
% Define universal url command.
% Used for latex _and_ hyperlatex (redefine see below).
% 1. parameter = link text (optional);
% 2. parameter = url
% e.g.: \uniurl[example link]{http:\\example.com}
\newcommand{\uniurl}[2][]{%
\ifthenelse{\equal{#1}{}}
{\texorhtml{\href{#2}{\Filename{#2}}}{\xlink{#2}{#2}}}
{\texorhtml{\href{#2}{\Filename{#1}}}{\xlink{#1}{#2}}}}
%%% HYPERLATEX %%%
\begin{ifhtml}
% HTML title
\htmltitle{Gpg4win-Kompendium}
% TOC link in panel
\htmlpanelfield{Inhalt}{hlxcontents}
% link to EN version
\htmlpanelfield{\htmlattributes*{img}{style=border:none title=English}
\htmlimg{../images-hyperlatex/english.png}{English}}{../en/\HlxThisUrl}
% name of the html files
\htmlname{gpg4win-compendium}
% redefine bmod
\newcommand{\bmod}{mod}
% use hlx icons (default path)
\newcommand{\HlxIcons}{../images-hyperlatex}
% Footer
\htmladdress{$\copyright$ \compendiumDateDE, v\compendiumVersionDE~\compendiuminprogressDE
\html{br/}
\html{small}
Das Gpg4win-Kompendium ist unter der
\link{GNU Free Documentation License v1.2}{fdl} lizensiert.
\html{/small}}
% Changing the formatting of footnotes
\renewenvironment{thefootnotes}{\chapter*{Fußnoten}\begin{description}}{\end{description}}
% redefine universal url for hyperlatex (details see above)
\newcommand{\linktext}{0}
\renewcommand{\uniurl}[2][]{%
\renewcommand{\linktext}{1}%
% link text is not set
\begin{ifequal}{#1}{}%
\xlink{#2}{#2}%
\renewcommand{linktext}{0}%
\end{ifequal}
% link text is set
\begin{ifset}{linktext}%
\xlink{#1}{#2}%
\end{ifset}}
% german style
\htmlpanelgerman
\extrasgerman
\dategerman
\captionsgerman
% SECTIONING:
%
% on _startpage_: show short(!) toc (only part+chapter)
\setcounter {htmlautomenu}{1}
% chapters should be
, Sections
etc.
% (see hyperlatex package book.hlx)
\setcounter{HlxSecNumBase}{-1}
% show _numbers_ of parts, chapters and sections in toc
\setcounter {secnumdepth}{1}
% show parts, chapters and sections in toc (no subsections, etc.)
\setcounter {tocdepth}{2}
% show every chapter (with its sections) in _one_ html file
\setcounter{htmldepth}{2}
% set counters and numberstyles
\newcounter{part}
\renewcommand{\thepart}{\arabic{part}}
\newcounter{chapter}
\renewcommand{\thecapter}{\arabic{chapter}}
\newcounter{section}[chapter]
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\end{ifhtml}
%%% TITLEPAGE %%%
\title{
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{gpg4win-logo}%
\T~\newline
\T\ifthenelse{\boolean{DIN-A5}}%
% DIN A5:
{\begin{latexonly}
\LARGE Das Gpg4win-Kompendium \\[0.3cm]
\large \textmd{Sichere E-Mail- und Datei-Verschlüsselung
\\[-0.3cm] mit GnuPG für Windows}
\end{latexonly}
}%
% DIN A4:
{Das Gpg4win-Kompendium \\
\texorhtml{\Large \textmd}{\large}
{Sichere E-Mail- und Datei-Verschlüsselung mit GnuPG für
Windows}
}
}
\author{
% Hyperlatex: Add links to pdf versions and Homepage
\htmlonly{
\xml{p}\small
\xlink{PDF-Version zum Download}{http://wald.intevation.org/frs/?group_id=11}
\xml{br}
\xlink{\htmlattributes*{img}{style=border:none title=English}
\htmlimg{../images-hyperlatex/english.png}{}
English Version}{../en/\HlxThisUrl}
\xml{br}
Zur \xlink{Gpg4win-Homepage}{http://www.gpg4win.de/}
\xml{p}
}
% Authors
\T\\[-1cm]
\small Basierend auf einer Fassung von
\T\\[-0.2cm]
\small Ute Bahn, Karl Bihlmeier, Manfred J. Heinze,
\small Isabel Kramer und Dr. Francis Wray.
\texorhtml{\\[0.2cm]}{\\}
\small Grundlegend überarbeitet von
\T\\[-0.2cm]
\small Werner Koch, Jochen Saalfeld, Florian v. Samson, Emanuel Schütze
und Dr. Jan-Oliver Wagner.
\T\\[0.4cm]
}
\date{
\T\ifthenelse{\boolean{DIN-A5}}%
% DIN A5:
{\begin{latexonly}
\large Eine Veröffentlichung der Gpg4win-Initiative
\\[0.2cm]
Version \compendiumVersionDE~vom \compendiumDateDE
\end{latexonly}
}%
% DIN A4:
{Eine Veröffentlichung der Gpg4win-Initiative
\\[0.2cm]
Version \compendiumVersionDE~vom \compendiumDateDE\\
\small\compendiuminprogressDE%
}
}
%%% BEGIN DOCUMENT %%%
\begin{document}
+\setlength{\headheight}{25.10403pt}.
\T\pdfbookmark[0]{Titelseite}{titel}
% set title page
\texorhtml{
\ifthenelse{\boolean{DIN-A5}}
{\noindent\hspace*{7mm}\parbox{\textwidth}{\centering\maketitle}\cleardoublepage}
{\maketitle}
}
{\maketitle}
% improved handling of long (outstanding) lines
\T\setlength\emergencystretch{3em} \tolerance=1000
\T\section*{Impressum}
\W\chapter*{Impressum}\\
\thispagestyle{empty}
Copyright \copyright{} 2002 Bundesministerium für Wirtschaft und
Technologie\footnote{Wenn dieses Dokument kopiert, verteilt und/oder
verändert wird, soll außer dieser Copyright-Notiz in keiner Form der
Eindruck eines Zusammenhanges
mit dem Bundesministerium für Wirtschaft und Technologie erweckt
werden.}\\
Copyright \copyright{} 2005 g10 Code GmbH\\
Copyright \copyright{} 2009, 2010, 2017 Intevation GmbH
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled "`GNU Free
Documentation License"'.
{\small [Dieser Absatz ist eine unverbindliche Übersetzung des
oben stehenden Hinweises.]}\\
Es wird die Erlaubnis gegeben, dieses Dokument zu kopieren, zu
verteilen und/oder zu verändern unter den Bedingungen der GNU Free
Documentation License, Version 1.2 oder einer späteren, von der Free
Software Foundation veröffentlichten Version. Es gibt keine
unveränderlichen Abschnitte, keinen vorderen Umschlagtext und keinen
hinteren Umschlagtext. Eine Kopie der "`GNU Free Documentation
License"' findet sich im Anhang mit dem gleichnamigen Titel.
Inoffizielle Übersetzungen dieser Lizenz finden Sie unter
http://www.gnu.org/licenses/translations.html.
\clearpage
\chapter*{Über dieses Kompendium}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
Das Gpg4win-Kompendium besteht aus drei Teilen:
\begin{itemize}
\item \textbf{Teil~\link*{1}[\ref{part:Einsteiger}]{part:Einsteiger} "`Für Einsteiger"'}: Der
Schnelleinstieg in Gpg4win.
\item \textbf{Teil~\link*{2}[\ref{part:Fortgeschrittene}]{part:Fortgeschrittene} "`Für
Fortgeschrittene"'}:
Das Hintergrundwissen zu Gpg4win.
\item \textbf{Anhang}: Weiterführende technische Informationen zu
Gpg4win.\\
\end{itemize}
\textbf{Teil~\link*{1}[\ref{part:Einsteiger}]{part:Einsteiger} "`Für Einsteiger"'} führt Sie kurz
und knapp durch die Installation und die alltägliche Benutzung der
Gpg4win-Programmkomponenten. Der Übungsroboter \textbf{Adele} wird
Ihnen dabei behilflich sein und ermöglicht Ihnen, die \Email{}-Ver-
und Entschlüsselung (mit OpenPGP) so lange zu üben, bis Sie sich
vertraut im Umgang mit Gpg4win gemacht haben.
Der Zeitbedarf für das Durcharbeiten des Schnelleinstiegs hängt unter
anderem davon ab, wie gut Sie sich mit Ihrem PC und Windows auskennen.
Sie sollten sich in etwa eine Stunde Zeit nehmen.\\
\textbf{Teil~\link*{2}[\ref{part:Fortgeschrittene}]{part:Fortgeschrittene} "`Für Fortgeschrittene"'}
liefert Hintergrundwissen, das Ihnen die grundlegenden Mechanismen von
Gpg4win verdeutlicht und die etwas seltener benutzten Fähigkeiten
erläutert.
Teil I und II können unabhängig voneinander benutzt werden. Zu Ihrem
besseren Ver\-ständnis sollten Sie aber möglichst beide Teile in der
angegebenen Reihenfolge lesen.\\
Im \textbf{Anhang} finden Sie Details zu spezifischen technischen
Themen rund um Gpg4win, unter anderem zur Outlook-Programmerweiterung
GpgOL.\\
Genau wie das Kryptografie-Programmpaket Gpg4win, wurde dieses
Kompendium nicht für Mathematiker, Geheimdienstler und Kryptografen
geschrieben, sondern \textbf{für jedermann.}\\
Das Programmpaket Gpg4win und das Gpg4win-Kompendium sind
verfügbar unter: \\
\uniurl{http://www.gpg4win.de}
\clearpage
\chapter*{Legende \htmlonly{\html{br}\html{br}}}
In diesem Kompendium werden folgende Textauszeichnungen benutzt:
\begin{itemize} \item \textit{Kursiv} wird dann verwendet, wenn etwas
auf dem Bildschirm erscheint (z.B. in Menüs oder Dialogen).
Zum Kennzeichnen von \Button{Schaltflächen} werden zusätzlich
eckige Klammern benutzt.
Kursiv werden vereinzelt auch einzelne Wörter im Text gesetzt,
wenn deren Bedeutung in einem Satz betont, das
Schriftbild aber nicht durch die Auszeichnung \textbf{fett} gestört
werden soll (z.B.: \textit{nur} OpenPGP).
\item \textbf{Fett} werden einzelne Wörter oder Sätze gesetzt,
die besonders wichtig und damit hervorzuheben sind. Diese
Auszeichnung unterstützt den Leser bei der schnelleren
Erfassung hervorgehobener Schlüsselbegriffe und wichtiger
Passagen.
\item \texttt{Feste Laufweite} wird für alle Dateinamen,
Pfadangaben, URLs, Quellcode sowie Ein- und Ausgaben (z.B.
von Kommandozeilen) verwendet.
\end{itemize}
Im folgenden werden die Ausdrücke und Kennzeichnungen verwendet:
\begin{itemize}
%TODO: Dieser Punkt muss noch überarbeitet und agepasst werden
\item Sie werden im folgenden immer wieder von
\glqq{}Schlüsseln\grqq{} und \glqq{}Zertifikaten\grqq{} lesen.
In der OpenPGP-Welt hat sich der Begriff
\glqq{}Schlüssel\grqq{} durchgesetzt. Für die Nutzung von
S/MIME wird der Begriff \glqq{}Zertifikat\grqq{} verwendet.
In diesem Kompendium wird primär Schlüssel verwendet. Nur wenn
es explizit um S/MIME geht, wird Zertifikat genutzt.
Die Software \textit{Kleopatra} war einst ein reines Verwaltungsprogramm
für S/MIME-Zertifikate. Erst nachträglich wurde es um die Verwaltung für
OpenPGP-Schlüssel erweitert.
\item Wenn in einem Kapitel explizit auf die Nutzung mit S/MIME eingegangen wird,
wird darauf am Rand mit diesem Symbol hingewiesen:
\begin{latexonly} %no hyperlatex
\begin{center}
%\includegraphics[width=2.5cm]{images-compendium/openpgp-icon}
%\hspace{1cm}
\includegraphics[width=2.5cm]{images-compendium/smime-icon}
\end{center}
\end{latexonly}
\end{itemize}
\cleardoublepage
\T\pdfbookmark[0]{\contentsname}{toc}
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Part I
\clearpage
\T\part{Für Einsteiger}
\W\part*{\textbf{I Für Einsteiger}}
\label{part:Einsteiger}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\chapter{Gpg4win -- Kryptografie für alle}
\index{Kryptografie}
Was ist Gpg4win?\index{Gpg4win} Die deutsche Wikipedia beantwortet diese Frage
so:
\begin{quote}
\textit{Gpg4win (GNU Privacy Guard for Windows) ist ein Installationspaket
für Windows zur E-Mail- und Datei-Verschlüsselung. Gpg4win ermöglicht
das einfache und kostenfreie Ver- und Entschlüsseln von E-Mails,
Dateien und Datei-Ordnern. Ebenso kann mittels digitaler Signaturen die
Integrität und die Authentizität der verschlüsselten E-Mails und
Dateien überprüft werden. Das Paket besteht aus verschiedenen
Programmkomponenten und einem Handbuch. }
\end{quote}
Die Handbücher "`Einsteiger"' und "`Durchblicker"' wurden für die vorliegende
zweite Version unter der Bezeichnung "`Kompendium"' zusammengeführt.
Gpg4win umfasst in Version 2 die folgenden Programme:
\begin{itemize}
\item \textbf{GnuPG}\index{GnuPG}\\ GnuPG ist das Kernstück von
Gpg4win -- die eigentliche Verschlüsselungs-Software.
\item \textbf{Kleopatra}\index{Kleopatra}\\ Die zentrale
Zertifikatsverwaltung\index{Zertifikatsverwaltung} von
Gpg4win, die für eine einheitliche Benutzerführung bei allen
kryptografischen Operationen sorgt.
\item \textbf{GNU Privacy Assistent (GPA)}\index{GNU Privacy
Assistent|see{GPA}}\index{GPA}\\ ist ein alternatives Programm zum Verwalten
von Zertifikaten neben Kleopatra.
\item \textbf{GnuPG für Outlook (GpgOL)}\index{GnuPG für
Outlook|see{GpgOL}}\index{GpgOL}\\ ist eine Erweiterung für Microsoft Outlook 2003 und
2007, die verwendet wird, um Nachrichten zu signieren bzw. zu
verschlüsseln.
\item \textbf{GPG Explorer eXtension (GpgEX)}\index{GPG Explorer
eXtension|see{GpgEX}}\index{GpgEX}\\ ist eine Erweiterung für den
Windows-Explorer\index{Windows-Explorer}, mit der man Dateien
über das Kontextmenü signieren bzw. verschlüsseln kann.
\end{itemize}
Mit dem Verschlüsselungsprogramm GnuPG (GNU Privacy Guard) kann
jedermann \Email{}s sicher, einfach und kostenlos verschlüsseln.
GnuPG kann ohne jede Restriktion privat oder kommerziell benutzt
werden. Die von GnuPG eingesetzte Verschlüsselungstechnologie ist
sicher und kann nach dem heutigen Stand von Forschung und Technik
nicht gebrochen werden.
GnuPG ist \textbf{Freie Software}\footnote{Oft auch als Open Source
Software (OSS) bezeichnet.}.\index{Freie Software} Das bedeutet, dass jedermann das Recht
hat, sie nach Belieben kommerziell oder privat zu nutzen. Jeder
kann und darf den Quellcode der Programme untersuchen und -- sofern er
das notwendige Fachwissen dazu hat -- Änderungen daran durchführen und
diese weitergeben.
Für eine Sicherheits-Software ist diese Transparenz -- der garantierte
Einblick in den Quellcode -- eine unverzichtbare Grundlage. Nur so
lässt sich die Vertrauenswürdigkeit der Programmierung und des
Programmes wirklich prüfen.
GnuPG basiert auf dem internationalen Standard
\textbf{OpenPGP}\index{OpenPGP} (RFC 4880), ist vollständig kompatibel
zu PGP und benutzt auch die gleiche Infrastruktur (Schlüsselserver
etc.) wie dieser. Seit Version 2 von GnuPG wird auch der
kryptografische Standard \textbf{S/MIME}\index{S/MIME} (IETF RFC 3851,
ITU-T X.509\index{X.509} und ISIS-MTT/Common PKI) unterstützt.
PGP ("`Pretty Good Privacy"')\index{PGP} ist keine Freie Software, sie war
lediglich vor vielen Jahren kurzzeitig zu ähnlichen Bedingungen wie
GnuPG erhältlich. Diese Version entspricht aber schon lange nicht
mehr dem Stand der Technik.
Die Vorläufer von Gpg4win wurden durch das Bundesministerium für
Wirtschaft und Technologie \index{Bundesministerium für
Wirtschaft und Technologie} im Rahmen der Aktion "`Sicherheit im
Internet"' unterstützt. Gpg4win und Gpg4win2 wurden durch das
Bundesamt für Sicherheit in der Informationstechnik (BSI)
\index{Bundesamt für Sicherheit in der Informationstechnik}
unterstützt.
Weitere Informationen zu GnuPG und weiteren Projekten der
Bundesregierung zum Schutz im Internet finden Sie auf den Webseiten
\uniurl[www.bsi.bund.de]{http://www.bsi.bund.de} und
\uniurl[www.bsi-fuer-buerger.de]{http://www.bsi-fuer-buerger.de} des
Bundesamtes für Sicherheit in der Informationstechnik.
\clearpage
\chapter{\Email{}s verschlüsseln: weil der Briefumschlag fehlt}
\label{ch:why}
\index{Briefumschlag}
Die Verschlüsselung von Nachrichten wird manchmal als das zweitälteste
Gewerbe der Welt bezeichnet. Verschlüsselungstechniken benutzten schon
der Pharao Khnumhotep II, Herodot und Cäsar. Dank Gpg4win ist
Verschlüsselung nunmehr nicht mehr nur für Könige, sondern für
jedermann frei und kostenlos zugänglich.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.9\textwidth]{egyptian-stone}
Die Computertechnik hat uns phantastische Mittel in die Hand gegeben,
um rund um den Globus miteinander zu kommunizieren und uns zu
informieren. Aber Rechte und Freiheiten, die in anderen
Kommunikationsformen längst selbstverständlich sind, muss man sich in
den neuen Technologien erst sichern. Das Internet ist so schnell und
massiv über uns hereingebrochen, dass man mit der Wahrung unserer
Rechte noch nicht so recht nachgekommen ist.
Beim altmodischen Briefschreiben schützen Sie die Inhalte von
Mitteilungen ganz selbstverständlich mit einem Briefumschlag. Der
Umschlag schützt die Nachrichten vor fremden Blicken, eine
Manipulation am Umschlag kann man leicht bemerken. Nur wenn etwas
nicht so wichtig ist, schreibt man es auf eine ungeschützte
Postkarte, die auch der Briefträger oder andere lesen können.
\clearpage
Ob die Nachricht wichtig, vertraulich oder geheim ist, das bestimmen
Sie selbst und niemand sonst.
Diese Entscheidungsfreiheit haben Sie bei \Email{}s nicht. Eine normale
\Email{} ist immer offen wie eine Postkarte, und der elektronische
"`Briefträger"' -- und andere -- können sie jederzeit lesen. Die Sache ist
sogar noch schlimmer: Die Computertechnik bietet nicht nur die
Möglichkeiten, die vielen Millionen \Email{}s täglich zu befördern und
zu verteilen, sondern sie auch zu kontrollieren.
Niemand hätte je ernsthaft daran gedacht, alle Briefe und Postkarten
zu sammeln, ihren Inhalt auszuwerten oder Absender und Empfänger zu
protokollieren. Das wäre einfach nicht machbar gewesen oder es hätte
zu lange gedauert. Mit der modernen Computertechnik ist es jedoch technisch
möglich. Es gibt mehr als einen Hinweis darauf, dass dies genau heute
schon im großen Stil mit \Email{} geschieht. Ein Artikel über das
Echelon-System\footnote{\uniurl[\EchelonUrl]{\EchelonUrl}}
\index{Echelon-System}
liefert dazu interessantes Hintergrundwissen.
Denn: der Umschlag fehlt.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{sealed-envelope}
\clearpage
Was Ihnen hier vorgeschlagen wird, ist ein "`Umschlag"' für Ihre
elektronischen Briefe. Ob Sie ihn benutzen, wann, für wen und wie oft,
ist ganz allein Ihre Sache. Software wie Gpg4win gibt Ihnen lediglich
die Wahlfreiheit zurück. Die Wahl, ob Sie persönlich eine Nachricht
für wichtig und schützenswert halten oder nicht.
Das ist der Kern des Rechts auf Brief-, Post- und
Fernmeldegeheimnis\index{Fernmeldegeheimnis}\index{Postgeheimnis}\index{Briefgeheimnis}
im Grundgesetz, und dieses Recht können Sie mit Hilfe des
Programmpakets Gpg4win wahrnehmen. Sie müssen diese Software nicht
benutzen -- Sie müssen ja auch keinen Briefumschlag benutzen. Aber es
ist Ihr gutes Recht.
Um dieses Recht zu sichern, bietet Gpg4win Ihnen eine sogenannte
"`starke Verschlüsselungstechnik"'. "`Stark"' bedeutet hier: mit keinem
bekannten Mittel zu knacken. In vielen Ländern waren starke
Verschlüsselungsmethoden bis vor ein paar Jahren den Militärs und
Regierungsbehörden vorbehalten. Das Recht, sie für jeden Bürger
nutzbar zu machen, haben sich die Internetnutzer mühsam erobert;
manchmal auch mit der Hilfe von klugen und weitsichtigen Menschen in
Regierungsinstitutionen, wie im Falle der Unterstützung von Freier
Software für die Verschlüsselung. GnuPG wird von Sicherheitsexperten
in aller Welt als eine praktikable und sichere Software angesehen.
\textbf{Wie wertvoll diese Sicherheit für Sie ist, liegt ganz in Ihrer
Hand.}
Sie allein bestimmen das Verhältnis zwischen Bequemlichkeit bei der
Verschlüsselung und größtmöglicher Sicherheit. Dazu gehören die
wenigen, aber umso wichtigeren Vorkehrungen, die Sie treffen müssen,
um Gpg4win richtig zu nutzen. In diesem Kompendium wird Ihnen
dieses Vorgehen Schritt für Schritt erläutert.
\clearpage
\chapter{So funktioniert Gpg4win}
\label{ch:FunctionOfGpg4win}
Das Besondere an Gpg4win und der zugrundeliegenden
\textbf{"`Public-Key"'"=Methode}\index{Public-Key-Methode@""`Public-Key""'-Methode}
ist, dass sie jeder verstehen kann und soll. Nichts daran ist
Geheimwissen -- es ist nicht einmal besonders schwer zu begreifen.
Die Benutzung der einzelnen Programmkomponenten von Gpg4win ist sehr
einfach, seine Wirkungsweise dagegen ziemlich kompliziert. Sie werden
in diesem Kapitel erklärt bekommen, wie Gpg4win funktioniert -- nicht
in allen Details, aber so, dass die Prinzipien dahinter deutlicher
werden. Wenn Sie diese Prinzipien kennen, werden Sie ein hohes
Vertrauen in die Sicherheit von Gpg4win gewinnen.
Am Ende dieses Buches, in Kapitel \ref{ch:themath}, können Sie --
wenn Sie wollen -- auch noch die letzten Geheimnisse um die
"`Public-Key"'-Kryptografie lüften und entdecken, warum mit Gpg4win
verschlüsselte Nachrichten nach heutigem Stand der Technik nicht zu
knacken sind.
\clearpage
\subsubsection{Der Herr der Schlüsselringe}
Wenn man etwas sehr Wertvolles sichern will, schließt man es am besten
ein -- mit einem Schlüssel. Noch besser mit einem Schlüssel, den es
nur einmal gibt und den man ganz sicher aufbewahrt.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{schlapphut-with-key}
Denn wenn dieser Schlüssel in die falschen Hände fällt, ist es um die
Sicherheit des wertvollen Gutes geschehen. Dessen Sicherheit steht und
fällt mit der Sicherheit und Einmaligkeit des Schlüssels. Also muss
man den Schlüssel mindestens genauso gut absichern, wie das zu
sichernde Gut selbst. Damit er nicht kopiert werden kann, muss auch
die genaue Beschaffenheit des Schlüssels völlig geheim gehalten
werden.
\clearpage
Geheime Schlüssel sind in der Kryptografie ein alter Hut: Schon immer
hat man Botschaften geheim zu halten versucht, indem man den Schlüssel
verbarg. Dies wirklich sicher zu machen, ist sehr umständlich und
dazu auch sehr fehleranfällig.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{tangled-schlapphut}
Das Grundproblem bei der "`gewöhnlichen"' geheimen
Nachrichtenübermittlung ist, dass für Ver- und Entschlüsselung
derselbe Schlüssel benutzt wird und dass sowohl der Absender als auch
der Em\-pfänger diesen geheimen Schlüssel kennen müssen. Aus diesem
Grund nennt man solche Verschlüsselungssysteme auch \textbf{"`symmetrische
Verschlüsselung"'}.\index{Symmetrische Verschlüsselung}
Dies führt zu einer ziemlich paradoxen Situation: Bevor man mit einer
solchen Methode ein Geheimnis (eine verschlüsselte Nachricht)
mitteilen kann, muss man schon vorher ein anderes Geheimnis mitgeteilt
haben: den Schlüssel. Und da liegt der Hase im Pfeffer: Man muss sich
ständig mit dem Problem herumärgern, dass der Schlüssel unbedingt
ausgetauscht werden muss, aber auf keinen Fall von einem Dritten
abgefangen werden darf.
\clearpage
Gpg4win dagegen arbeitet -- außer mit dem geheimen Schlüssel -- mit
einem weiteren Schlüssel (engl. "`key"'), der vollkommen frei und
öffentlich (engl. "`public"') zugänglich ist. Man spricht daher auch
von einem "`Public-Key"'-Verschlüsselungssystem.
Das klingt widersinnig, ist es aber nicht. Der Witz an der Sache: Es
muss kein geheimer Schlüssel mehr ausgetauscht werden. Im Gegenteil:
Der geheime Schlüssel darf auf keinen Fall ausgetauscht werden!
Weitergegeben wird nur der öffentliche Schlüssel~-- und den darf sowieso jeder
kennen.
Mit Gpg4win benutzen Sie also ein Schlüsselpaar\index{Schlüsselpaar}
-- einen geheimen und einen zweiten öffentlichen Schlüssel. Beide
Schlüsselteile sind durch eine komplexe mathematische Formel
untrennbar miteinander verbunden. Nach heutiger wissenschaftlicher
und technischer Kenntnis ist es unmöglich, einen Schlüsselteil aus dem
anderen zu berechnen und damit das Verfahren zu knacken.
In Kapitel \ref{ch:themath} bekommen Sie erklärt, warum das so ist.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{verleihnix}
\clearpage
Das Prinzip der Public-Key-Verschlüsselung\index{Public-Key-Methode@""`Public-Key""'-Methode}
ist recht einfach:
Der \textbf{geheime} oder \textbf{private Schlüssel} (engl. ,,secret
key'' oder ,,private key'') muss geheim gehalten werden.
Der \textbf{öffentliche Schlüssel} (engl. "`public key"') soll so
öffentlich wie möglich gemacht werden.
Beide Schlüsselteile haben ganz und gar unterschiedliche Aufgaben:
\bigskip
\begin{quote}
Der geheime Schlüsselteil \textbf{entschlüsselt} Nachrichten.
\end{quote}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{key-with-shadow-bit}
\begin{quote}
Der öffentliche Schlüsselteil \textbf{verschlüsselt} Nachrichten.
\end{quote}
\clearpage
\subsubsection{Der öffentliche Brieftresor}
\index{Brieftresor}
In einem kleinen Gedankenspiel wird die Methode des
"`Public-Key"'-Verschlüsselungssystems und ihr Unterschied zur symmetrischen
Verschlüsselung\index{Symmetrische Verschlüsselung}
("`Geheimschlüssel-Methode"' oder engl. "`Non-Public-Key"'-Methode)
\index{Non-Public-Key-Methode@""`Non-Public-Key""'-Methode|see{Symmetrische Verschlüsselung}} deutlicher ...
\bigskip
\textbf{Die "`Geheimschlüssel-Methode"' geht so:}
Stellen Sie sich vor, Sie stellen einen Brieftresor vor Ihrem Haus
auf, über den Sie geheime Nachrichten übermitteln wollen.
Der Brieftresor ist mit einem Schloss verschlossen, zu dem es nur
einen einzigen Schlüssel gibt. Niemand kann ohne diesen Schlüssel
etwas hineinlegen oder herausnehmen. Damit sind Ihre geheimen
Nachrichten zunächst einmal gut gesichert -- so sicher wie in einem
Tresor.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{letter-into-safe}
Da es nur einen Schlüssel gibt, muss Ihr Korrespondenzpartner
denselben Schlüssel wie Sie haben, um den Brieftresor damit auf- und
zuschließen und eine geheime Nachricht deponieren zu können.
\clearpage
Diesen Schlüssel müssen Sie Ihrem Korrespondenzpartner auf geheimem
Wege übergeben.
\bigskip
\bigskip
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{secret-key-exchange}
\clearpage
Erst wenn der andere den geheimen Schlüssel hat, kann er den
Brieftresor öffnen und die geheime Nachricht lesen.
Alles dreht sich also um diesen Schlüssel: Wenn ein Dritter ihn kennt,
ist es sofort aus mit den geheimen Botschaften. Sie und Ihr
Korrespondenzpartner müssen ihn also \textbf{genauso} geheim
austauschen wie die Botschaft selbst.
Aber -- eigentlich könnten Sie ihm bei dieser Gelegenheit ja auch
gleich die geheime Mitteilung übergeben ...
\textbf{Übertragen auf die \Email{}-Verschlüsselung:} Weltweit müssten
alle \Email{}-Teilnehmer geheime Schlüssel besitzen und auf geheimem
Wege austauschen, bevor sie geheime Nachrichten per \Email{} versenden
könnten.
Vergessen Sie diese Möglichkeit am besten sofort wieder ...
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{letter-out-of-safe}
\clearpage
\textbf{Nun zur "`Public-Key"'-Methode:}
Sie installieren wieder einen Brieftresor \index{Brieftresor} vor
Ihrem Haus. Aber: Dieser Brieftresor ist -- ganz im Gegensatz zu dem
ersten Beispiel -- stets offen. Direkt daneben hängt -- weithin
öffentlich sichtbar -- ein Schlüssel, mit dem jedermann den
Brieftresor zuschließen kann (asymmetrisches Verschlüsselungsverfahren).
\index{Asymmetrische Verschlüsselung}
\textbf{Zuschließen, aber nicht aufschließen:} das ist der Trick!
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.7\textwidth]{pk-safe-open}
Dieser Schlüssel gehört Ihnen und -- Sie ahnen es: Es ist Ihr
öffentlicher Schlüssel.
Wenn jemand Ihnen eine geheime Nachricht hinterlassen will, legt er
sie in den Brieftresor und schließt mit Ihrem öffentlichen Schlüssel
ab. Jedermann kann das tun, denn der Schlüssel dazu ist ja völlig
frei zugänglich.
Kein anderer kann den Brieftresor nun öffnen und die Nachricht lesen.
Selbst derjenige, der die Nachricht in dem Brieftresor eingeschlossen
hat, kann ihn nicht wieder aufschließen, z.B. um die Botschaft
nachträglich zu verändern.
Denn die öffentliche Schlüsselhälfte taugt ja nur zum Abschließen.
Aufschließen kann man den Brieftresor nur mit einem einzigen
Schlüssel: Ihrem eigenen geheimen, privaten Schlüsselteil.
\clearpage
\textbf{Wieder übertragen auf die \Email{}-Verschlüsselung:} Jedermann
kann eine \Email{} an Sie verschlüsseln.
Er benötigt dazu keineswegs einen geheimen, sondern ganz im Gegenteil
einen vollkommen öffentlichen\index{Schlüssel!öffentlicher}, "`ungeheimen"' Schlüssel. Nur ein
einziger Schlüssel entschlüsselt die \Email{} wieder: Ihr privater,
geheimer Schlüssel\index{Schlüssel!geheimer}\index{Schlüssel!privater}.
Spielen Sie das Gedankenspiel noch einmal anders herum durch:
Wenn Sie einem anderen eine geheime Nachricht zukommen lassen wollen,
benutzen Sie dessen Brieftresor mit seinem öffentlichen, frei
verfügbaren Schlüssel.
Sie müssen Ihren Briefpartner dazu nicht persönlich kennen, ihn
getroffen oder je mit ihm gesprochen haben, denn sein öffentlicher
Schlüssel ist überall und jederzeit zugänglich. Wenn Sie Ihre
Nachricht hinterlegt und den Brieftresor des Empfängers mit seinem
öffentlichen Schlüssel wieder verschlossen haben, ist sie völlig
unzugänglich für jeden anderen, auch für Sie selbst. Nur der
Empfänger kann den Brieftresor mit seinem privaten Schlüssel öffnen
und die Nachricht lesen.
\T\enlargethispage{2\baselineskip}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{pk-safe-opened-with-sk}
\clearpage
\textbf{Aber was ist nun eigentlich gewonnen:} Es gibt doch immer noch
einen geheimen Schlüssel!?
Der Unterschied gegenüber der "`Non-Public-Key"'-Methode ist
allerdings ein gewaltiger:
Ihren privater Schlüssel kennen und benutzen nur Sie selbst. Er wird
niemals einem Dritten mitgeteilt -- die Notwendigkeit einer geheimen
Übergabe entfällt, sie verbietet sich sogar.
Es muss überhaupt nichts Geheimes mehr zwischen Absender und Empfänger
ausgetauscht werden -- weder eine geheime Vereinbarung noch ein
geheimes Codewort.
Das ist -- im wahrsten Sinne des Wortes -- der Knackpunkt: Alle
symmetrischen Verschlüsselungsverfahren können geknackt werden, weil
ein Dritter sich beim Schlüsselaustausch in den Besitz des Schlüssels
bringen kann.
Dieses Risiko entfällt, weil ein geheimer Schlüssel nicht ausgetauscht
wird und sich nur an einem einzigen, sehr sicheren Ort befindet: dem
eigenen Schlüsselbund\index{Schlüsselbund} -- letztendlich Ihrem
eigenen Gedächtnis.
Diese moderne Methode der Verschlüsselung mit einem nicht geheimen und
öffentlichen sowie einem geheimen und privaten Schlüsselteil nennt man auch
"`asymmetrische Verschlüsselung"'. \index{Asymmetrische Verschlüsselung}
\clearpage
\chapter{Die Passphrase}
\label{ch:passphrase}
\index{Passphrase}
Wie Sie im letzten Kapitel gelesen haben, ist der private Schlüssel
eine der wichtigsten Komponenten beim "`Public-Key"'- oder
asymmetrischen Verschlüsselungsverfahren. Man muss ihn zwar nicht mehr
auf geheimem Wege mit seinen Korrespondenzpartnern austauschen, aber
nach wie vor ist seine Sicherheit der Schlüssel zur Sicherheit des
"`ganzen"' Kryptografieverfahrens.
Technisch gesehen ist der private Schlüssel einfach eine Datei, die
auf dem eigenen Rechner gespeichert wird. Um unbefugte Zugriffe auf
diese Datei auszuschließen, wird sie zweifach gesichert:
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{think-passphrase}
Zunächst darf kein anderer Benutzer des Rechners die Datei lesen oder
in sie schreiben können -- was kaum zu garantieren ist, da zum einen
der Administrator des Computers immer auf alle Dateien zugreifen kann,
zum anderen der Rechner verloren oder durch Viren\index{Viren},
Würmer\index{Würmer} oder Trojaner\index{Trojaner} ausspioniert werden kann.
Daher ist ein weiterer Schutz notwendig: eine Passphrase. Kein
Passwort -- die Passphrase sollte nicht nur aus einem Wort bestehen,
sondern z.B. aus einem Satz. Sie sollten diese Passphrase wirklich
"`im Kopf"' behalten und niemals aufschreiben müssen.
Trotzdem darf sie nicht erraten werden können. Das klingt vielleicht
widersprüchlich, ist es aber nicht. Es gibt einige erprobte Tricks,
mit deren Hilfe Sie sich eine völlig individuelle, leicht zu merkende
und nur sehr schwer zu erratende Passphrase ausdenken können.
\clearpage
Denken Sie an einen Ihnen gut bekannten Satz, z.B.:
$\qquad$\verb-Ein blindes Huhn findet auch einmal ein Korn.-
Aus diesem Satz nehmen Sie beispielsweise jeden dritten Buchstaben:
$\qquad$\verb-nieufdahnlnr-
\texttt{\scriptsize{(Ei\textbf{n}
bl\textbf{i}nd\textbf{e}s H\textbf{u}hn \textbf{f}in\textbf{d}et
\textbf{a}uc\textbf{h} ei\textbf{n}ma\textbf{l} ei\textbf{n}
Ko\textbf{r}n.)}}
Diesen Buchstabensalat können Sie sich zunächst sicher nicht gut
merken, aber Sie werden ihn eigentlich nie vergessen, solange Sie den
ursprünglichen Satz im Kopf haben. Im Laufe der Zeit und je öfter Sie
ihn benutzen, prägt sich so eine Passphrase in Ihr Gedächtnis. Erraten
kann diese Passphrase niemand.
Denken Sie an ein Ereignis, das sich bereits fest in Ihrem
persönlichen Langzeitgedächtnis verankert hat. Vielleicht gibt es
einen Satz, mit dem sich Ihr Kind oder Ihr Partner "`unvergesslich"'
gemacht hat. Oder eine Ferienerinnerung oder eine Textzeile aus
einem für Sie wichtigen Lied.
Verwenden Sie kleine und große Buchstaben, Nummern, Sonder- und
Leerzeichen durcheinander. Im Prinzip ist alles erlaubt, auch Umlaute,
Sonderzeichen, Ziffern usw. Aber Vorsicht -- falls Sie Ihren geheimen
Schlüssel im Ausland an einem fremden Rechner benutzen wollen,
bedenken Sie, dass fremdsprachige Tastaturen diese Sonderzeichen oft
nicht haben. Beispielsweise werden Sie Umlaute (ä, ö, ü usw.) nur auf
einer deutschen Tastatur finden.
Machen Sie Rechtschreibfehler, z.B. "`feLer"' statt "`Fehler"'.
Natürlich müssen Sie sich diese "`feLer"' gut merken können. Oder
wechseln Sie mittendrin die Sprache. Aus dem schönen Satz:
$\qquad$\verb-In München steht ein Hofbräuhaus.-
könnte man beispielsweise diese Passphrase machen:
$\qquad$\verb-inMinschen stet 1h0f breuhome-
Denken Sie sich einen Satz aus, der möglichst unsinnig ist, den Sie
sich aber doch merken können, wie z.B.:
$\qquad$\verb-Es blaut so garstig beim Walfang, neben-
$\qquad$\verb-Taschengeld, auch im Winter.-
Eine Passphrase in dieser Länge ist ein sicherer Schutz für Ihren
geheimen Schlüssel.
Sie darf auch kürzer sein, wenn Sie einige Buchstaben groß schreiben,
z.B. so:
$\qquad$\verb-Es blAut nEBen TaschengeLd auch im WiNter.-
Das ist nun kürzer, aber nicht mehr so leicht zu merken. Wenn Sie
eine noch kürzere Passphrase verwenden, indem Sie hier und da
Sonderzeichen benutzen, haben Sie zwar bei der Eingabe weniger zu
tippen, aber die Wahrscheinlichkeit, dass Sie Ihre Passphrase
vergessen, wird dabei größer.
Ein extremes Beispiel für eine möglichst kurze, aber dennoch sehr
sichere Passphrase ist dieses hier:
$\qquad$\verb-R!Qw"s,UIb *7\$-
In der Praxis haben sich solche Zeichenfolgen allerdings als recht
wenig brauchbar herausgestellt, da man einfach zu wenig Anhaltspunkte
für die Erinnerung hat.
\clearpage
Eine \textbf{schlechte Passphrase} ist blitzschnell "`geknackt"', wenn
sie ...
\begin{itemize}
\item ... schon für einen anderen Zweck benutzt wird (z.B. für
einen \Email{}-Account oder Ihr Handy). Die gleiche Passphrase
wäre damit bereits einer anderen, möglicherweise unsicheren
Software bekannt. Falls hier ein Hacker erfolgreich
zuschlägt, ist Ihre Passphrase so gut wie nichts mehr wert.
\item ... aus einem Wörterbuch stammt. Passphrase-Knackprogramme
können in Minutenschnelle komplette digitale Wörterbücher über
ein Passwort laufen lassen -- bis eines der Wörter passt.
\item ... aus einem Geburtsdatum, einem Namen oder anderen
öffentlichen Informationen besteht. Wer vorhat, Ihre \Email{}
zu entschlüsseln, wird sich diese Daten beschaffen.
\item ... ein landläufiges Zitat ist; wie z.B. "`das wird böse
enden"' oder "`to be or not to be"'. Auch mit derartigen
gängigen Zitaten testen Passphrase-Knackprogramme eine
Passphrase.
\item ... aus nur einem Wort oder aus weniger als 8 Zeichen
besteht. Denken Sie sich unbedingt eine längere Passphrase
aus.
\end{itemize}
Wenn Sie nun Ihre Passphrase zusammenstellen, nehmen Sie
\textbf{auf gar keinen Fall} eines der oben angeführten Beispiele.
Denn es liegt auf der Hand: Wenn sich jemand ernsthaft darum bemüht,
Ihre Passphrase herauszubekommen, würde er zuerst ausprobieren, ob Sie
nicht eines dieser Beispiele genommen haben.
\bigskip
\textbf{Seien Sie kreativ!} Denken Sie sich jetzt eine Passphrase aus!
Unvergesslich und unknackbar.
In Kapitel~\ref{ch:CreateKeyPair} werden Sie diese Passphrase bei der
Erzeugung Ihres Schlüsselpaars benötigen.
Vorher müssen Sie aber noch ein weiteres Problem aus dem Weg räumen:
Irgendjemand muss beglaubigen, dass die Person, die Ihnen geheime
Nachrichten schicken will, auch tatsächlich echt ist.
\clearpage
\chapter{Zwei Wege, ein Ziel: OpenPGP \& S/MIME}
\label{ch:openpgpsmime}
\index{OpenPGP} \index{S/MIME}
Sie haben gesehen, wie wichtig der "`Umschlag"' um Ihre \Email{} ist und
wie man ihn mit den Mitteln der modernen Informationstechnologie
bereitstellt: ein Brieftresor, \index{Brieftresor} in den jedermann verschlüsselte Mails
legen kann, die nur Sie als Besitzer des Brieftresors entschlüsseln
können. Es ist unmöglich, die Verschlüsselung zu knacken, solange der
private Schlüssel zum "`Tresor"' Ihr Geheimnis bleibt.
Allerdings: Wenn man genauer darüber nachdenkt, gibt es noch ein
zweites Problem. Weiter oben haben Sie gelesen, dass man -- im
Gegensatz zur Geheimschlüssel-Methode -- den Briefpartner nicht
persönlich treffen muss, damit er eine geheime Nachricht übermitteln
kann. Wie kann man dann aber sicher sein, dass er auch tatsächlich
derjenige ist, für den er sich ausgibt? Beim \Email{}-Verkehr kennen
Sie in den seltensten Fällen alle Ihre Briefpartner persönlich -- und
wer sich wirklich hinter einer \Email{}-Adresse verbirgt, kann man nicht
ohne Weiteres feststellen. Also muss nicht nur die Geheimhaltung der
Nachricht gewährleistet sein, sondern auch die Identität des Absenders
-- die \textbf{Authentizität}. \index{Authentizität}
Irgendjemand muss also beglaubigen, dass die Person, die Ihnen
geheime Nachrichten schicken will, auch tatsächlich echt ist. Im
Alltagsleben dient zu dieser
"`Authentisierung"'\index{Authentisierung} ein Ausweis, eine
Unterschrift oder eine Urkunde, die von einer Behörde oder einem Notar
beglaubigt wurde. Die Berechtigung zur Beglaubigung bezieht diese
Institution von einer übergeordneten Behörde und letztendlich vom
Gesetzgeber. Anders betrachtet, handelt es sich um eine
Vertrauenskette\index{Vertrauenskette}, die sich von "`oben"' nach
"`unten"' verzweigt: man spricht von einem \textbf{"`hierarchischen
Vertrauenskonzept"'}. \index{Hierarchisches Vertrauenskonzept}
Dieses Konzept findet sich bei Gpg4win oder anderen
\Email{}-Verschlüsselungsprogrammen fast spiegelbildlich in
\textbf{S/MIME} wieder. Dazu kommt \textbf{OpenPGP}, ein weiteres
Konzept, das so nur im Internet funktioniert. S/MIME und OpenPGP
haben beide die gleiche Aufgabe: das Verschlüsseln und Signieren von
Daten. Beide benutzen die bereits bekannte Public-Key-Methode. Es
gibt zwar einige wichtige Unterschiede, aber letztlich bietet keiner
der Standards einen allgemeinen Vorteil gegenüber dem anderen. Deshalb
können Sie mit Gpg4win beide Verfahren einsetzen.
\clearpage
Die Entsprechung des hierarchischen Vertrauenskonzepts hat den schönen
Namen "`Secure / Multipurpose Internet Mail Extension"' oder
\textbf{S/MIME}. Mit S/MIME müssen Sie Ihren öffentlichen Schlüssel
von einer dazu berechtigten Organisation beglaubigen lassen, bevor er
wirklich nutzbar wird. Das Zertifikat dieser Organisation wurde
wiederum mit dem Zertifikat einer höher stehenden Organisation
beglaubigt, usw. -- bis man zu einem sogenannten Wurzelzertifikat
kommt. Diese hierarchische Vertrauenskette hat meist drei Glieder: das
Wurzelzertifikat, das Zertifikat des Zertifikatsausstellers
\index{Zertifikatsaussteller} (auch CA\index{Certificate Authority
(CA)} für Certificate Authority genannt) und schließlich Ihr eigenes,
das Anwenderzertifikat.
Als zweite, alternative, nicht kompatible Methode der Beglaubigung
dient der Standard \textbf{OpenPGP}, der keine Vertrauenshierarchie
aufbaut, sondern ein \textbf{"`Netz des Vertrauens"'} (Web of Trust).
\index{Web of Trust}
Das Web of Trust bildet die Grundstruktur des nicht hierarchischen
Internets und seiner Nutzer nach. Vertraut zum Beispiel der
Teilnehmer B dem Teilnehmer A, könnte B auch dem öffentlichen
Schlüssel des ihm selbst unbekannten Teilnehmers C vertrauen, wenn
dieser Schlüssel durch A beglaubigt wurde.
Mit OpenPGP besteht also die Möglichkeit, ohne die Beglaubigung einer
höheren Stelle verschlüsselte Daten und \Email{}s auszutauschen. Es
reicht aus, wenn Sie der \Email{}-Adresse und dem dazugehörigen
Schlüssel Ihres Kommunikationspartners vertrauen.
Ob nun mit einer Vertrauenshierarchie oder einem Web of Trust -- die
Authentisierung des Absenders ist mindestens ebenso wichtig wie der
Schutz der Nachricht. Im weiteren Verlauf dieses Kompendiums kommen
wir auf diese wichtige Sicherheitsmaßnahme noch einmal zurück. Im
Moment sollte Ihnen dieser Kenntnisstand ausreichen, um Gpg4win zu
installieren und die folgenden Kapitel zu verstehen:
\begin{itemize}
\item Beide Verfahren -- \textbf{OpenPGP} und \textbf{S/MIME} --
bieten die notwendige Sicherheit.
\item Die Verfahren sind \textbf{nicht kompatibel} miteinander.
Sie bieten zwei alternative Methoden zur Authentisierung Ihrer
geheimen Kommunikation. Man sagt somit, sie sind nicht
interoperabel.
\item Gpg4win ermöglicht die bequeme \textbf{parallele} Nutzung
beider Verfahren -- Sie müssen sich aber bei jeder
Verschlüsselung/Signierung für eines der beiden entscheiden.
\end{itemize}
\clearpage
\chapter{Installation von Gpg4win}
\index{Installation}
In den Kapiteln 1 bis 5 haben Sie einiges über die Hintergründe der
Verschlüsselung erfahren. Gpg4win funktioniert zwar auch, ohne dass
Sie verstehen warum, aber im Gegensatz zu anderen Programmen wollen
Sie Gpg4win schließlich Ihre geheime Korrespondenz anvertrauen. Da
sollten Sie schon wissen, was vor sich geht.
Mit diesem Wissen sind Sie nun bereit, Gpg4win zu installieren und Ihr
Schlüsselpaar einzurichten.
Sollte bereits eine GnuPG-basierte Anwendung auf Ihrem Rechner
installiert sein,
dann lesen bitte im Anhang \ref{ch:migration} nach, wie Sie Ihre
vorhandenen Schlüssel übernehmen können.
Sie benötigen für die Installation auf Ihrem Windows 32 oder 64-bit
System Administratorrechte.
Wenn Sie Gpg4win aus dem Internet laden, achten Sie unbedingt darauf,
dass Sie die Datei von einer vertrauenswürdigen Seite erhalten, z.B.:
\uniurl[https://www.gpg4win.de]{https://www.gpg4win.de}. Zum Start der
Installation klicken Sie nach dem Download auf die Datei:
\Filename{gpg4win-3.0.0.exe} (oder mit einer höheren Versionsnummer).
% screenshot: UAT Abfrage beim starten des Installers
\IncludeImage[width=0.85\textwidth]{sc-inst-uat_de}
Die Frage, ob Sie das Programm installieren wollen, beantworten Sie
mit \Button{Ja}.
\clearpage
Der Installationsassistent startet und befragt Sie zuerst nach der
Sprache für den Installationsvorgang:
% screenshot: Installer Sprachenauswahl
\IncludeImage[width=0.5\textwidth]{sc-inst-language_de}
Bestätigen Sie Ihre Sprachauswahl mit \Button{OK}.
Anschließend begrüßt Sie dieser Willkommensdialog:
% screenshot: Installer Willkommensseite
\IncludeImage[width=0.85\textwidth]{sc-inst-welcome_de}
Beenden Sie alle auf Ihrem Rechner laufenden Programme und klicken
Sie dann auf \Button{Weiter}.
\clearpage
Auf der Seite mit der \textbf{Komponentenauswahl} können Sie
entscheiden, welche Programme Sie installieren möchten.
Eine Vorauswahl ist bereits getroffen. Sie können bei Bedarf einzelne
Komponenten auch später installieren.
Wenn Sie die Maus über eine Komponente ziehen, erscheint eine
Kurzbeschreibung.
% screenshot: Auswahl zu installierender Komponenten
\IncludeImage[width=0.85\textwidth]{sc-inst-components_de}
Klicken Sie auf \Button{Weiter}.
\clearpage
Nun wird Ihnen ein Ordner zur Installation vorgeschlagen, z.B.:
\Filename{C:$\backslash$Programm Files(x86)$\backslash$Gpg4win}
Übernehmen Sie den Vorschlag oder suchen Sie einen anderen Ordner aus,
in dem Sie Gpg4win installieren wollen.
% screenshot: Auswahl des Installationsverzeichnis.
\IncludeImage[width=0.85\textwidth]{sc-inst-directory_de}
Klicken Sie anschließend auf \Button{Installieren}.
\clearpage
Während der nun folgenden \textbf{Installation} sehen Sie einen
Fortschrittsbalken und Informationen, welche Datei momentan
installiert wird.
% screenshot: Ready page Installer
\IncludeImage[width=0.85\textwidth]{sc-inst-progress_de}
Nachdem die Installation abgeschlossen ist, drücken Sie bitte auf
\Button{Weiter}.
\clearpage
Nach erfolgreicher Installation wird Ihnen diese letzte Seite des
Installationsvorgangs angezeigt:
% screenshot: Finish page Installer
\IncludeImage[width=0.85\textwidth]{sc-inst-finished_de}
Es wird Ihnen angeboten Kleopatra direkt zu starten.
Zudem haben Sie die Möglochkeit sich die README-Datei anzeigen zu lassen, die
wichtige Informationen zu der soeben installierten Gpg4win-Version
enthält. Sofern Sie die README-Datei ansehen wollen,
aktivieren Sie diese Option.
Klicken Sie schließlich auf \Button{Fertig stellen}.
\textbf{Das war's schon!}
Sie haben Gpg4win erfolgreich installiert und können nun loslegen.
Für Informationen zur \textbf{automatischen Installation} von Gpg4win,
wie sie z.B. für Soft\-ware\-verteilungs-Systeme interessant ist,
lesen Sie bitte im Anhang \ref{ch:auto} "`Automatische Installation
von Gpg4win"' weiter.
\clearpage
\chapter{Erstellung eines Schlüsselpaars}
\label{ch:CreateKeyPair}
\index{Zertifikat!erstellen}
\index{Schlüssel!erzeugen}
%TODO : Vllt. Erklärung Zertifikat vs. Keypair erklären und woher das Wording
% kommt
Nachdem Sie gelesen haben, warum GnuPG eigentlich so sicher ist
(Kapitel~\ref{ch:FunctionOfGpg4win}) und wie eine gute Passphrase als
Schutz Ihres geheimen Schlüssels entsteht
(Kapitel~\ref{ch:passphrase}), können Sie nun Ihr persönliches
Schlüsselpaar\index{Schlüsselpaar} erzeugen.
Wie Sie im Kapitel~\ref{ch:FunctionOfGpg4win} gesehen haben, besteht
ein Schlüsselpaar aus einem öffentlichen und einem geheimen Schlüssel.
Ergänzt durch \Email{}-Adresse, Benutzerkennung etc., die Sie bei der
Erstellung angeben (den sogenannten Metadaten), erhalten Sie Ihr
Schlüsselpaar mit dem öffentlichen \textit{und} dem geheimen
Schlüssel.
Diese Definition gilt sowohl für OpenPGP-Schlüssel wie auch für
S/MIME-Zertifikate (S/MIME-Zertifikate entsprechen einem Standard mit der Bezeichnung
"`X.509"'\index{X.509}).
~\\ \textbf{Eigentlich müsste man diesen wichtigen Schritt der
Schlüsselpaar-Erzeugung ein paar Mal üben können ...}
Genau das können Sie tun -- allerdings nur für OpenPGP:
Ihr Vertrauen in Gpg4win wird sich durch diese "`Trockenübung"'
festigen, und die "`heiße Phase"' der OpenPGP-Schlüsselpaar-Erzeugung
wird danach kein Problem mehr sein.
\clearpage
\textbf{Los geht's!}
Rufen Sie das Programm Kleopatra über das Windows-Startmenü auf.
Daraufhin sehen Sie das Hauptfenster von Kleopatra\index{Kleopatra}:
\index{Zertifikatsverwaltung}
% screenshot: Kleopatra main window
\htmlattributes*{img}{width=508}
\IncludeImage[width=\textwidth]{sc-kleopatra-mainwindow-empty_de}
Zu Beginn ist diese Übersicht leer, da Sie noch keine
Schlüssel erstellt (oder importiert) haben.
Klicken Sie auf \Button{Schlüsselpaar erstellen} (oder alternativ
\Menu{Datei$\rightarrow$Neues~Schlüsselpaar}).
Im folgenden Dialog entscheiden Sie sich für ein Format, in dem
anschließend ein Schlüsselpaar erstellt werden soll. Sie haben die Wahl
zwischen \textbf{OpenPGP} (PGP/MIME) oder \textbf{X.509} (S/MIME).
Die Unterschiede und Gemeinsamkeiten beider Verfahren wurden bereits in
Kapitel~\ref{ch:openpgpsmime} erläutert.
\label{chooseCertificateFormat}
% screenshot: Kleopatra - New certificate - Choose format
%TODO: Zertifikat steht drüber, aber alles heißt Schlüsselpaar? Konsistenz
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-ChooseCertificateFormat_de}
\clearpage
Je nachdem, ob Sie sich für OpenPGP oder X.509 (S/MIME) entschieden
haben, lesen Sie nun also bitte entweder:
\begin{itemize}
\item Abschnitt \ref{createKeyPairOpenpgp}:
\textbf{OpenPGP-Schlüsselpaar erstellen} oder
\item Abschnitt \ref{createKeyPairX509}:
\textbf{X.509-Zertifikat erstellen} \T (siehe Seite
\pageref{createKeyPairX509}).
\end{itemize}
\section{OpenPGP-Schlüsselpaar erstellen}
\label{createKeyPairOpenpgp}
\index{OpenPGP!Zertifikat erstellen}
%TODO: "Zertifikat" im Kleo-Dialog ändern in "Schlüsselpaar"
%TODO: Neuer Screenshot (Next/Cancel)
Klicken Sie im Auswahldialog auf \Button{Persönliches
OpenPGP-Schlüsselpaar erzeugen}.
Geben Sie im nun folgenden Dialog Ihren Namen und Ihre
\Email{}-Adresse an. Name und \Email{}-Adresse sind später öffentlich
sichtbar.
Optional können Sie einen Kommentar zum Schlüsselpaar eingeben.
Normalerweise bleibt dieses Feld leer; wenn Sie aber einen Schlüssel
zu Testzwecken erzeugen, sollten Sie dort als Erinnerung "`Test"'
eingeben. Dieser Kommentar ist Teil Ihrer Benutzerkennung und genau wie der
Name und die \Email{}-Adresse später öffentlich sichtbar.
% screenshot: Creating OpenPGP Certificate - Personal details\\
%TODO: Neuer Screenshot (Next/Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-personalDetails_de}
Wenn Sie die OpenPGP-Schlüsselpaar-Erzeugung zunächst einmal
\textbf{testen} wollen, dann können Sie einfach einen beliebigen Namen
und irgendeine ausgedachte \Email{}-Adresse eingeben, z.B.:\\
\Filename{Alice} und \Filename{alice@gpg4win.de}
Die \textbf{erweiterten Einstellungen} benötigen Sie nur in
Ausnahmefällen. Sie können sich im Kleopatra-Handbuch (über
\Menu{Hilfe$\rightarrow$Handbuch zu Kleopatra}) über die Details
informieren.
Klicken Sie auf \Button{Weiter}.
\clearpage
Es werden abschließend noch einmal alle wesentlichen Eingaben und Einstellungen
zur \textbf{Kontrolle} aufgelistet. Falls Sie sich für die
(vorbelegten) Experten-Einstellungen interessieren, können Sie diese
über die Option \Menu{Alle Details} einsehen.
% screenshot: Creating OpenPGP Certificate - Review Parameters
%TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-reviewParameters_de}
Wenn alles korrekt ist, klicken Sie anschließend auf \Button{Schlüssel
erzeugen}.
\clearpage
Jetzt folgt der wichtigste Teil: die Eingabe Ihrer
\textbf{Passphrase}!
Für die Schlüsselpaarerzeugung müssen Sie Ihre persönliche
Passphrase eingeben:
% screenshot: New certificate - pinentry
%TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.45\textwidth]{sc-kleopatra-openpgp-pinentry_de}
Wenn Sie Kapitel~\ref{ch:passphrase} gelesen haben, dann sollten Sie
jetzt eine einfach zu merkende und schwer zu knackende geheime
Passphrase parat haben. Geben Sie diese in den oben gezeigten Dialog
ein!
Beachten Sie bitte, dass dieses Fenster unter Umständen im Hintergrund
geöffnet wurde und damit auf den ersten Blick nicht sichtbar ist.
Wenn die Passphrase nicht sicher genug ist, weil sie zu kurz ist oder
keine Zahlen oder Sonderzeichen enthält, werden Sie darauf
hingewiesen.
Auch an dieser Stelle können Sie -- wenn Sie wollen -- zunächst eine
\textbf{Test-Passphrase} eingeben oder auch gleich "`Ernst machen"'.
Um sicherzugehen, dass Sie sich nicht vertippt haben, müssen Sie Ihre geheime
Passphrase zweimal eingeben. Bestätigen Sie Ihre Eingabe jeweils mit
\Button{OK}.
\clearpage
Nun wird Ihr OpenPGP-Schlüsselpaar erzeugt:
% screenshot: Creating OpenPGP Certificate - Create Key
%TODO: Neuer Screenshot (Next/Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-createKey_de}
Dies kann u.U. einige Minuten dauern. Sie können die Erzeugung der
benötigten Zufallszahlen unterstützen, indem Sie im unteren Eingabefeld
irgendetwas eingeben. Was Sie dort tippen, spielt keine Rolle: was
Sie schreiben, wird nicht verwendet, nur die Zeitspannen zwischen den
einzelnen Tastendrücken. Sie können auch mit einer anderen Anwendung
Ihres Rechner weiterarbeiten und erhöhen damit ebenfalls leicht die
Qualität des erzeugten Schlüsselpaars.
\clearpage
Sobald die \textbf{Schlüsselpaarerzeugung erfolgreich} abgeschlossen ist,
erhalten Sie folgenden Dialog:
% screenshot: Creating OpenPGP certificate - key successfully created
%TODO: Neuer Screenshot (Next/Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-keyPairCreated_de}
Im Ergebnis-Textfeld wird der 40-stellige
"`Fingerabdruck"'\index{Fingerabdruck} Ihres neu
generierten OpenPGP-Schlüssels angezeigt. Dieser Fingerabdruck (engl.
"`Fingerprint"') ist weltweit eindeutig, d.h. keine andere Person
besitzt einen Schlüssel mit identischem Fingerabdruck. Es ist sogar
vielmehr so, dass es schon mit 8 Zeichen ein außerordentlicher Zufall
wäre, wenn diese weltweit ein zweites Mal vorkämen. Daher werden oft
nur die letzten 8 Zeichen des Fingerabdrucks verwendet bzw. angezeigt
und als Schlüsselkennung\index{Schlüsselkennung} (oder
Schlüssel-ID)\index{Schlüssel!-ID} bezeichnet.
Dieser Fingerabdruck identifiziert die Identität des Schlüssels wie
der Fingerabdruck einer Person.
Sie brauchen sich den Fingerabdruck nicht zu merken oder
%TODO: Zertifikatdetails in Kleo zu "Details" ändern
abzuschreiben. In den Details von Kleopatra können Sie
sich ihn jederzeit später anzeigen lassen.
\clearpage
Als Nächstes können Sie eine oder auch (hintereinander) mehrere der
folgenden drei Schaltflächen betätigen:
\begin{description}
\item[Sicherheitskopie Ihres (geheimen) Schlüssels erstellen...]~\\
Geben Sie hier den Pfad an, unter dem Ihr vollständiges Schlüsselpaars
(also der geheime \textit{und} öffentliche Schlüssel) exportiert werden
soll:
% screenshot: New OpenPGP certificate - export key
%TODO: Neuer Screenshot
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-openpgp-exportSecretKey_de}
Kleopatra wählt automatisch den Dateityp und speichert Ihren
Schlüssel als \Filename{.asc} bzw. \Filename{.gpg} Datei ab --
abhängig davon, ob Sie die Option \textbf{ASCII-geschützt} (engl.
"`ASCII armor"') ein- bzw. ausschalten.
Klicken Sie anschließend zum Exportieren auf \Button{OK}.
\textbf{Wichtig:} Falls Sie die Datei auf der Festplatte
abspeichern, so sollten Sie diese Datei schnellstens auf einen
anderen Datenträger (USB-Stick, Diskette oder CD-ROM) kopieren und
die Originaldatei rückstandslos löschen, d.h. nicht im Papierkorb
belassen! Bewahren Sie diesen Datenträger mit der
Sicherheitskopie sicher auf.
Sie können eine Sicherheitskopie auch noch später anlegen; wählen
Sie hierzu aus dem Kleopa\-tra-Hauptmenü:
%TODO: In Kleo evtl. anpassen?
\Menu{Datei$\rightarrow$Geheimes Zertifikat exportieren...} (vgl.
Kapitel \ref{ch:ImExport}).
\item[Schlüssel per \Email{} versenden...]~\\ Nach dem Klick auf
diese Schaltfläche sollte eine neue \Email{} erstellt werden --
mit Ihrem neuen öffentlichen Schlüssel im Anhang. Ihr geheimer
OpenPGP-Schlüssel wird selbstverständlich \textit{nicht}
versendet. Geben Sie eine Empfänger-\Email{}-Adresse an und
ergänzen Sie ggf. den vorbereiteten Text dieser \Email{}.
\textbf{Beachten Sie:} Nicht alle \Email{}-Programme unterstützen
diese Funktion. Es geht aber natürlich auch manuell: Sollte sich
kein neues \Email{}-Fenster öffnen, so beenden Sie den
%TODO: Oder heißt es Schlüsselpaar-erstellungs-Assistent?
Assistenten, speichern Ihren öffentlichen
%TODO: In Kleo evtl auf Schlüssel exportieren ändern?
Schlüssel durch \Menu{Datei$\rightarrow$Zertifikat exportieren}
und versenden diese Datei per \Email{} an Ihre
Korrespondenzpartner.
\item[Zertifikate zu Zertifikatsserver senden...]~\\ Wie Sie einen
weltweit verfügbaren OpenPGP-Zertifikatsserver in Kleopatra
einrichten und wie Sie anschließend Ihr öffentliches Zertifikat
auf diesem Server veröffentlichen, erfahren Sie in
Kapitel~\ref{ch:keyserver}.
\end{description}
Ihr OpenPGP-Schlüsselpaar ist damit fertig erstellt. Beenden Sie
anschließend den Kleopatra-Assistenten mit \Button{Fertigstellen}.
\clearpage
\textbf{Damit ist die Erzeugung Ihres OpenPGP-Schlüsselpaares abgeschlossen. Sie besitzen nun einen
einzigartigen elektronischen Schlüssel.}
Sie befinden sich nun wieder im Hauptfenster von Kleopatra.
Den soeben erzeugten OpenPGP-Schlüssel finden Sie in der Übericht:
% screenshot: Kleopatra with new openpgp certificate
\htmlattributes*{img}{width=508}
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-withOpenpgpTestkey_de}
Doppelklicken Sie auf Ihren neuen Schlüssel, um alle Details
sehen zu können:
% screenshot: details of openpgp certificate
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-certificateDetails_de}
Was bedeuten die einzelnen Details?
Ihr Schlüssel ist unbegrenzt gültig, d.h. es hat kein "`eingebautes
Verfallsdatum"'. Um die Gültigkeit nachträglich zu verändern, klicken
Sie auf \Button{Ablaufdatum ändern}.
\textbf{Weitere Details zum Schlüssel finden Sie im
Kapitel~\ref{ch:CertificateDetails}.}
\clearpage
\section{X.509-Zertifikat erstellen}
\label{createKeyPairX509}
\index{X.509!Zertifikat erstellen}
\T\marginSmime
Klicken Sie im Schlüsselpaar-Auswahldialog von
Seite~\pageref{chooseCertificateFormat} auf die Schaltfläche\\
\Button{Persönliches X.509-Schlüsselpaar und Beglaubigungs-Anfrage
erstellen}.
Geben Sie im nun folgenden Fenster Ihren Namen (CN = common name),
Ihre \Email{}-Adresse (EMAIL), Ihre Organisation (O = organization)
und Ihren Ländercode (C = country) an. Optional können Sie noch Ort (L
= locality) und Abteilung (OU = organizational unit) ergänzen.
Wenn Sie die X.509-Schlüsselpaar-Erzeugung zunächst einmal
\textbf{testen} wollen, dann machen Sie beliebige Angaben für Name,
Organisation sowie Ländercode und geben irgendeine ausgedachte
\Email{}-Adresse ein, z.B.: \Filename{CN=Bob,O=Test,C=DE,EMAIL=bob@gpg4win.de}
% screenshot: New X.509 Certificate - Personal details
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-personalDetails_de}
Die \textbf{erweiterten Einstellungen} benötigen Sie nur in
Ausnahmefällen. Sie können sich im Kleopatra-Handbuch (über
\Menu{Hilfe$\rightarrow$Handbuch zu Kleopatra}) über die Details
informieren.
Klicken Sie auf \Button{Weiter}.
\clearpage
Es werden nun noch einmal alle wesentlichen Eingaben und Einstellungen
zur \textbf{Kontrolle} aufgelistet. Falls Sie sich für die
(vorbelegten) Experten-Einstellungen interessieren, können Sie diese
über die Option \Menu{Alle Details} einsehen.
% screenshot: New X.509 Certificate - Review Parameters
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-reviewParameters_de}
Wenn alles korrekt ist, klicken Sie auf \Button{Schlüssel erzeugen}.
Jetzt folgt der wichtigste Teil: die Eingabe Ihrer \textbf{Passphrase}!
Das Vorgehen ist analog zu OpenPGP aus dem vorherigen Abschnitt
\ref{createKeyPairOpenpgp}.
\clearpage
%Jetzt folgt der wichtigste Teil: die Eingabe Ihrer \textbf{Passphrase}!
%Für die Schlüsselpaarerzeugung werden Sie aufgefordert, Ihre
%Passphrase einzugeben:
% screenshot: New X.509 certificate - pinentry
%\IncludeImage[width=0.45\textwidth]{sc-kleopatra-x509-pinentry_de}
%Wenn Sie Kapitel~\ref{ch:passphrase} gelesen haben, dann sollten Sie
%jetzt eine einfach zu merkende und schwer zu knackende geheime
%Passphrase parat haben. Geben Sie sie in den oben gezeigten Dialog
%ein!
%Beachten Sie bitte, dass dieses Fenster unter Umständen im Hintergrund
%geöffnet wurde und damit auf den ersten Blick nicht sichtbar ist.
%Wenn die Passphrase nicht sicher genug ist, weil sie zu kurz ist oder
%keine Zahlen oder Sonderzeichen enthält, werden Sie darauf
%hingewiesen.
%Auch an dieser Stelle können Sie -- wenn Sie wollen -- zunächst eine
%\textbf{Test-Passphrase} eingeben oder auch gleich "`Ernst machen"'.
%Um sicherzugehen, dass Sie sich nicht vertippt haben, müssen Sie Ihre geheime
%Passphrase zweimal eingeben. Abschließend werden Sie noch ein drittes
%Mal aufgefordert, Ihre Passphrase einzugeben: Sie signieren dabei Ihre
%Zertifikatsanfrage\index{Zertifikatsanfrage} an die zuständige
%Beglaubigungsinstanz. Bestätigen Sie Ihre Eingaben jeweils mit
%\Button{OK}.
%\clearpage
%Nun wird Ihr X.509-Schlüsselpaar angelegt:
% screenshot: New X.509 Certificate - Create Key
%\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-createKey_de}
%Dies kann u.U. einige Minuten dauern. Sie können die Erzeugung der
%benötigten Zufallszahlen unterstützen, indem Sie im unteren Eingabefeld
%irgendetwas eingeben. Was Sie dort tippen, spielt keine Rolle: was
%Sie schreiben, wird nicht verwendet, nur die Zeitspannen zwischen den
%einzelnen Tastendrücken. Sie können auch mit einer anderen Anwendung
%Ihres Rechner weiterarbeiten und erhöhen damit ebenfalls leicht die
%Qualität des erzeugten Schlüsselpaars.
%\clearpage
Sobald die \textbf{Schlüsselpaarerzeugung erfolgreich} abgeschlossen ist,
erhalten Sie folgenden Dialog:
% screenshot: New X.509 certificate - key successfully created
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-keyPairCreated_de}
Die nächsten Schritte werden durch die beiden folgenden Schaltflächen ausgelöst:
\begin{description}
\item[Anfrage in Datei speichern...]~\\ Geben Sie hier den Pfad an,
unter dem Ihre X.509-Zertifikatsanfrage gesichert werden soll, und
bestätigen Sie Ihre Eingabe. Kleopatra fügt beim Speichern
automatisch die Dateiendung \Filename{.p10} hinzu. Diese Datei
kann später an eine Beglaubigungsinstanz (kurz CA für Certificate
Authority\index{Certificate Authority (CA)}) gesendet werden. Etwas weiter unten weisen wir Sie auf
cacert.org hin, eine nicht kommerzielle Beglaubigungsinstanz (CA),
die kostenlos X.509-Zertifikate ausstellt.
\item[Anfrage per \Email{} versenden...]~\\ Es wird eine neue \Email{}
erstellt -- mit der soeben erstellten Zertifikatsanfrage im Anhang.
Geben Sie eine Empfänger-\Email{}-Adresse an -- in der Regel die
Ihrer zuständigen Beglaubigungsinstanz -- und ergänzen Sie ggf.
den vorbereiteten Text dieser \Email{}.
\textbf{Beachten Sie:} Nicht alle \Email{}-Programme unterstützen
diese Funktion. Es geht aber natürlich auch manuell: Sollte sich
kein neues \Email{}-Fenster öffnen, dann speichern Sie Ihre
Anfrage zunächst in eine Datei (siehe oben) und versenden diese
Datei per \Email{} an Ihre Beglaubigungsinstanz (Certificate
Authority, CA).
Sobald die Anfrage von der CA bearbeitet wurde, erhalten Sie von
Ihrem zuständigen CA-Systemadministrator das fertige und von der
CA unterzeichnete X.509-Zertifikat. Dieses müssen Sie dann nur
noch in Kleopatra importieren (vgl. Kapitel \ref{ch:ImExport}).
\end{description}
Beenden Sie anschließend den Kleopatra-Assistenten mit
\Button{Fertigstellen}.
\clearpage
\subsubsection{Erstellung eines X.509-Zertifikats mit www.cacert.org}
CAcert\index{CAcert} ist eine nicht kommerzielle Beglaubigungsinstanz (CA), die
kostenlos X.509-Zertifikate ausstellt. Damit wird eine Alternative zu
den kommerziellen Root-CAs geboten, die zum Teil recht hohe Gebühren
für ihre Zertifikate erheben.
Damit Sie sich ein (Client-)Zertifikat bei CAcert erstellen können,
müssen Sie sich zunächst bei
\uniurl[www.cacert.org]{http://www.cacert.org} registrieren.
Sofort anschließend können Sie ein oder mehrere Client-Zertifikat(e)
auf cacert.org erstellen: Sie sollten dabei auf eine ausreichende
Schlüssellänge (z.B. 2048 Bit) achten. Im dortigen Web-Assistenten legen Sie Ihre
sichere Pass\-phrase für Ihr Zertifikat fest.
Ihr Client-Zertifikat wird nun erstellt.
Im Anschluss daran erhalten Sie eine \Email{} mit zwei Links zu Ihrem
neu erstellten X.509-Zertifikat und dem dazugehörigen
CAcert-Root-Zertifikat. Laden Sie sich beide Zertifikate herunter.
Folgen Sie den Anweisungen und installieren Sie Ihr Zertifikat in Ihrem
Browser. Bei Firefox können Sie danach z.B. über
\Menu{Bearbeiten$\rightarrow$Einstellungen$\rightarrow$Erweitert$\rightarrow$Zertifikate}
Ihr installiertes Zertifikat unter dem ersten Reiter "`Ihre
Zertifikate"' mit dem Namen (CN) \textbf{CAcert WoT User} finden.
Sie können nun ein persönliches X.509-Zertifikat ausstellen, das Ihren
Namen im CN-Feld trägt. Dazu müssen Sie Ihren CAcert-Account von
anderen Mitgliedern des CACert-Web-of-Trust beglaubigen lassen. Wie Sie
eine derartige Bestätigung in die Wege leiten, erfahren Sie auf den
Internetseiten von CAcert.
Speichern Sie abschließend eine Sicherungskopie Ihres
persönlichen X.509-Zerti\-fikats. Die Sicherungskopie
erhält automatisch die Endung \Filename{.p12}.
\textbf{Achtung:} Diese \Filename{.p12} Datei enthält Ihren
öffentlichen \textit{und} Ihren geheimen Schlüssel. Achten Sie
daher unbedingt darauf, dass diese Datei nicht in fremde Hände
gelangt.
Wie Sie Ihr persönliches X.509-Zertifikat in Kleopatra importieren,
erfahren Sie in Kapitel \ref{ch:ImExport}.
\clearpage
\chapter{Schnellstart mit Übungen für OpenPGP}
\label{ch:quickstart}
\label{ch:decrypt}
In den folgenden zwei Unterkapiteln werden Ihnen zwei Anleitungen für
einen Schnelleinstieg in die wichtigsten Funktionen gegeben. Sie werden
lernen, wie man Dateien und \Email{}s ver- und entschlüsselt.
\section{Dateiverschlüsselung}
\label{sec:quickfileencryption}
\index{Datei!verschlüsseln}
Dateien lassen sich, wie \Email{}s, signieren und verschlüsseln. Das sollten
Sie im folgenden Abschnitt mit GpgEX und Kleopatra einmal durchspielen.
Selektieren Sie eine (oder mehrere) Datei(en), öffnen Sie mit der
rechten Maustaste das Kontextmenü und wählen Sie hier \Menu{Signieren
und verschlüsseln} aus:
% screenshot GpgEX contextmenu sign/encrypt
\IncludeImage[width=0.5\textwidth]{sc-gpgex-contextmenu-signEncrypt_de}
\clearpage
Sie erhalten diesen Dialog zum Signieren/Verschlüsseln einer Datei:
%TODO: neuer Screenshot (cancel)
% screenshot kleopatra encrypt file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryptFile1_de}
Für wen soll die Datei verschlüsselt werden? Wählen Sie im folgenden
Dialog einen oder mehrere Empfänger-Schlüssel aus. Lassen Sie aber
unbedingt die Option \Menu{Für mich verschlüsseln} aktiv.
Wie sie weitere Einstellungen ändern, können Sie unter Abschnitt
\ref{sec_signFile} nachschlagen.
Klicken Sie abschließend auf \Button{Signieren / Verschlüsseln}.
Geben Sie nun Ihre geheime Passphrase ein.
\clearpage
Nach erfolgreicher Verschlüsselung sollte Ihr Ergebnisfenster etwa so
aussehen:
%TODO: Neuer Screenshot (Cancel/Finish)
% screenshot kleopatra encrypt file, step 3: successful
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryptFile3_de}
Das war's! Sie haben Ihre Datei erfolgreich verschlüsselt!
\clearpage
\subsubsection{Datei entschlüsseln}
\index{Datei!entschlüsseln}
Nun kann die zuvor verschlüsselte Datei zum Testen einmal
entschlüsselt werden.
Dazu sollten Sie vorher beim Verschlüsseln auch mit Ihrem eigenen
Schlüssel verschlüsselt haben -- andernfalls können Sie die Datei
nicht mit Ihrem geheimen Schlüssel entschlüsseln.
Selektieren Sie die verschlüsselte Datei und wählen Sie im Kontextmenü des
Windows-Explorers den Eintrag \Menu{Entschlüsseln und prüfen}:
% screenshot contextmenu verifiy/decrypt
\IncludeImage[width=0.5\textwidth]{sc-gpgex-contextmenu-verifyDecrypt_de}
\clearpage
Im folgenden Entschlüsselungsdialog können Sie bei Bedarf noch den
Ausgabe-Ordner verändern.
% screenshot kleopatra decrypt file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-decryptFile1_de}
Klicken Sie abschließend auf \Button{Entschlüsseln/Prüfen}.
Geben Sie anschließend Ihre Passphrase ein.
Sie sollten nun die entschlüsselte Datei problemlos lesen oder mit
einem entsprechenden Programm verwenden können.
\clearpage
\section{\Email{}-Verschlüsselung}
\label{sec:mailEncryption}
Ihr Partner bei diesen Übungen wird \textbf{Edward} sein. Edward ist ein
Testservice, der von der Free Software Foundation betrieben wird.
Wir bedanken uns bei der Free Software Foundation für den Betrieb von Edward.
Der Vorgänger von Edward baut auf dem Projekt GnuPP\index{GnuPP} auf und
hörte auf dem Namen \textbf{Adele}. Dieser Name wird in diesem
Abschnitt weiterhin verwendet.
Das Gpg4win-Team hat keinen Einfluss auf den Betrieb von Adele/Edward und
kann nicht gewährleisten, dass der Testservice antwortet. Sollte es
Probleme mit Adele geben, schauen Sie bitte unter
\url{https://wiki.gnupg.org/EmailExercisesRobot} nach.
Mit Hilfe von Adele können Sie Ihr erzeugtes OpenPGP-Schlüsselpaar
ausprobieren und testen.
Nachdem Sie Ihren Schlüssel erstellt haben, wollen Sie direkt
loslegen. Sie können das Prozedere zunächst mit einem freundlichen
\Email{}-Roboter üben. Adele soll Ihnen dabei behilflich sein. Die folgenden
Übungen gelten nur für OpenPGP. Anmerkungen zum Veröffentlichen von
öffentlichen X.509-Zertifikaten finden Sie auf
Seite~\pageref{publishPerEmailx509}.
\textbf{Adele} ist ein sehr netter \Email{}-Roboter, mit dem Sie
zwanglos korrespondieren können. Bitte beachten Sie, dass Adele
eventuell nicht immer antwortet. Falls Sie nicht antwortet, üben Sie lieber
mit einem Menschen. Weil man gewöhnlich mit einer klugen
und netten jungen Frau lieber korrespondiert als mit einem Stück
Software (was er in Wirklichkeit natürlich ist), können Sie sich
Adele so vorstellen:
% Cartoon: Adele mit Buch in der Hand vor Rechner ``you have mail"'
\IncludeImage[width=0.5\textwidth]{adele01}
Um mit Adele zu kommunizieren, müssen Sie ihr Ihren öffentlichen Schlüssel
per \Email{} schicken. Außerdem müssen Sie Adeles Schlüssel
importieren, um Adele eine verschlüsselte \Email{} zu senden.
\textbf{Um sichere \Email{}s austauschen zu können, müssen beide Partner
jeweils den öffentlichen Schlüssel des anderen besitzen und benutzen.}
\index{Zertifikat!exportieren}
Um Ihren Schlüssel zu exportieren selektieren Sie in Kleopatra den öffentlichen
Schlüssel (durch Klicken auf die entsprechende Zeile in der Liste der
Schlüssel) und klicken Sie dann auf
\Menu{Datei$\rightarrow$Schlüssel exportieren...} im Menü. Wählen
Sie einen geeigneten Dateiort\index{Signatur!prüfen mit GpgOL}
Um Adeles Schlüssel zu erhalten, müssen Sie zunächst Adeles Schlüssel
importieren, denn ohne Adeles öffentlichen Schlüssel, können Sie ihr keine
verschlüsselten \Email{}s senden.
Wählen Sie im Kleopatra-Fenster die Schaltfläche \Button{Auf Server Suchen}.
Geben Sie in die Suchfläche die \Email{}-Adresse von Adele ein
(\texttt{edward-de@fsf.org}) und bestätigen Sie Ihre Suche. Unter den
Suchergebnissen wählen Sie nun den Schlüssel mit den Schlüssel-ID
\texttt{C09A61E8}. Abschließend wählen Sie unten im Fenster die
Schaltfläche \Button{Importieren}.
%TODO: Neuer Screenshot (Close)
\IncludeImage[width=0.7\textwidth]{sc-kleopatra-searchKeyEdward_de}
Den Anschließenden Dialog zur Schlüsselverfikation verlassen Sie mit
\Menu{Nein}. Mehr zu diesem Thema finden Sie in Abschnitt \ref{ch:checkkey}.
Öffnen Sie eine neue \Email{} und füllen Sie etwas in die Betreffzeile, wie
\glqq{}Verschlüsselungstest\grqq{}. Fügen Sie als Anhang den gerade
exportierten Schlüssel hinzu und achten Sie darauf, dass das
Verschlüsseln-Symbol aktiv ist. Geben Sie als Zieladresse
\texttt{edward-de@fsf.org} an und senden Sie die \Email{} ab.
Nach einigen Minuten sollten Sie eine verschlüsselte Antwort von Adele
erhalten. Diese Antwort von Adele entschlüsseln Sie mit Ihrem eigenen geheimen
Schlüssel.
Adele verhält sich also genau wie ein richtiger Korrespondenzpartner.
Allerdings sind Adeles \Email{}s leider bei weitem nicht so
interessant, wie die Ihrer echten Korrespondenzpartner. Andererseits
können Sie mit Adele so oft üben, wie Sie wollen -- was Ihnen ein
menschlicher Adressat wahrscheinlich irgendwann ziemlich übel nehmen würde.
Herzlichen Glückwunsch! Sie haben erfolgreich verschlüsselt kommuniziert!
\T\enlargethispage{\baselineskip}
\clearpage
\chapter{Öffentliche Schlüssel importieren}
In Kapitel \ref{ch:decrypt} wurde bereits kurz erläutert, wie man einen
öffentlichen Schlüssel von einem Schlüsselserver importiert. Wenn Sie nun mit
einer Person
kommunizieren wollen, die ihren öffentlichen Schlüssel nicht auf einem
Schlüsselserver hat,
so müssen Sie diesen Schlüssel auf anderen Wegen importieren. In
diesem Kapitel werden die beiden Möglichkeiten beschrieben, wie Sie
einen Schlüssel importieren können.
Falls Sie sich im speziellen für das Importieren eines geheimen
Schlüssels interessieren, springen Sie direkt zu Kapitel \ref{ch:ImExport}.
Nach einem Schlüsselimport werden Sie immer gefragt ob und wie sie diesem
Schlüssel vertrauen wollen. Diesen Dialog können Sie für Zunächst ignorieren
und mit \Menu{Nein} verlassen. Auf Dieses Thema gehen wir näher im kommenden
Abschnitt \ref{ch:checkkey} ein.
\section{Importieren aus Datei}
\label{sec_importfromfile}
Zum Importieren eines zuvor exportierten oder als \Email{}-Anhang
zugesendeten öffentlichen Schlüssels, klicken Sie auf
%TODO: Oder Schlüssel importieren? Oder generell "importieren" - Dann in Kleo ändern
\Menu{Datei $\to$ Zertifikat importieren...} und
wählen Sie die zu importierende Datei aus. Anschließend erhalten Sie einen
Ergebnisdialog über den erfolgten Schlüsselimport.
%TODO: Bild machen
%TODO: Kören von Was ein Bild zu machen ist
%Ein Beispiel für ein solches
%Informationsfenster finden Sie nach dem folgenden Absatz.
%Handelt es sich um eine PKCS12-Datei (z.B. vom Typ \texttt{.p12}), so werden
%Sie
%zunächst nach der Passphrase zum Entsperren des geheimen Schlüssels gefragt.
%\IncludeImage[width=0.4\textwidth]{sc-pinentry-p12-import-a_de}
%Setzen Sie nun eine Passphrase, gegebenenfalls auch eine neue, mit der nach dem
%Importvorgang Ihr geheimer Schlüssel geschützt werden soll.
%\IncludeImage[width=0.4\textwidth]{sc-pinentry-p12-import-b_de}
%Wiederholen Sie Ihre Passphrase-Eingabe.
%\newpage
%Nach dem importieren sehen Sie ein Informationsfenster, dass Ihnen die
%Ergebnisse des Importvorgangs auflistet; hier am Beispiel eines geheimen
%OpenPGP-Schlüssels.
%\IncludeImage[width=0.4\textwidth]{sc-kleopatra-import-openpgp-secret-key_de}
%Kleopatra hat damit den Schlüssel exportiert. Wenn es ein geheimer Schlüssel
%TODO: oder Schlüssel? - Dann auch in Kleo ändern
%war, finden Sie Ihn unter dem Reiter \glqq{}Meine Zertifikate\grqq{} in der
%TODO: Oder Schlüsselverwaltung? - Dann auch in Kleo ändern
%Zertifikatsverwaltung.
\clearpage
\section{Importieren vom Schlüsselserver}
\label{sec_importfromkeyserver}
%Um einen Schlüssel von einem Schlüsselserver zu importieren, müssen wir
%zunächst einen Schlüsselserver hinzufügen. Dies richten wir zunächst für
%OpenPGP-Schlüssel ein. Im kommenden Abschnitt wird näher auf S/MIME %eingegangen.
%TODO: Screenhot machen udn die beiden Fenster erklären
%TODO: keys.gnupg.net ist per Default nach Installation eingerichtet!
%Bitte testen und beschreiben.
Es gibt viele öffentliche Schlüsselserver,
die alle untereinander synchronisiert sind. Diese sind zu einem Kollektiv unter
der Adresse \texttt{keys.gnupg.net} erreichbar. Nach der Installation ist
dieses bereits ein Schlüsselserver hinterlegt.
Um einen anderen Server als
Schlüsselserver hinzuzufügen, öffnen Sie das Schlüsselserver-Menü
\Menu{Einstellungen $\to$ Kleopatra einrichten ...} und wählen Sie dort
\Menu{Schlüsselserver}. Fügen Sie über die Schaltfläche \Menu{Neu} einen neuen
Eintrag in die Liste hinzu. Dort erscheint nun ein vorkonfigurierter Eintrag
für \texttt{keys.gnupg.net}. Diese Einstellung kann mit \Menu{OK} bestätigt
werden.
%TODO: erst Schlüsselserver hinzufügen, dann suche. Bei Schlüsselserver auf OPenPGP und SMIME unterscheiden.
Weitere Informationen zu diesem Thema finden Sie unter Kapitel
\ref{ch:keyserver}.
\textbf{Herzlichen Glückwunsch!} - Sie haben erfolgreich einen Schlüsselserver
eingerichtet und können nun über die Schaltfläche \Button{Auf Server suchen} nach
Namen oder \Email{}-Adressen von Kommunikationspartnern suchen.
%\clearpage
\chapter{Öffentliche Schlüssel prüfen}
\label{ch:checkkey}
\label{ch:trust}
Woher wissen Sie eigentlich, dass der fremde (öffentliche) Schlüssel wirklich vom
genannten Absender stammt? Und umgekehrt -- warum sollte Ihr
Korrespondenzpartner glauben, dass der öffentliche Schlüssel, den Sie ihm
geschickt haben, auch wirklich von Ihnen stammt? Die Absenderangabe
auf einer \Email{} besagt eigentlich gar nichts, genauso wie die
Absenderangabe auf einem Briefumschlag.
Wenn Ihre Bank z.B. eine \Email{} mit Ihrem Namen und der Anweisung
erhält, Ihr sämtliches Guthaben auf ein Nummernkonto auf den Bahamas
zu überweisen, wird sie sich hoffentlich weigern -- \Email{}-Adresse
hin oder her. Eine \Email{}-Adresse besagt überhaupt nichts über die
Identität des Absenders.
\subsubsection{Der Fingerabdruck}
\index{Fingerabdruck}
Wenn Sie nur einen kleinen Kreis von Korrespondenzpartnern haben, ist
die Sache mit der Identität schnell geregelt: Sie prüfen den
Fingerabdruck des anderen Schlüssels.
Jeder Schlüssel trägt eine einmalige Kennzeichnung, die es
zweifelsfrei identifiziert; besser noch als ein Fingerabdruck eines
Menschen. Deshalb bezeichnet man diese Kennzeichnung ebenfalls als
"`Fingerabdruck"'.
Wenn Sie sich die Details eines Schlüssels in Kleopatra anzeigen
lassen, z.B. durch Doppelklick auf den Schlüssel, sehen Sie u.a.
dessen 40-stelligen Fingerabdruck:
% screenshot: Kleopatra key details with fingerprint
%TODO: neuer Screenshot (Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-certificateDetails_de}
~\\ Wie gesagt -- der Fingerabdruck identifiziert den Schlüssel und
seinen Besitzer eindeutig.
Rufen Sie Ihren Korrespondenzpartner einfach an und lassen Sie sich
von ihm den Fingerabdruck seines Schlüssels vorlesen. Wenn die
Angaben mit dem Ihnen vorliegenden Schlüssel übereinstimmen, haben
Sie eindeutig den richtigen Schlüssel.
Natürlich können Sie sich auch persönlich mit dem Eigentümer des
Schlüssels treffen oder auf einem anderen Wege sicherstellen, dass
Schlüssel und Eigentümer zusammen gehören. Häufig ist der
Fingerabdruck auch auf Visitenkarten abgedruckt; wenn Sie also eine
garantiert authentische Visitenkarte haben, so können Sie sich den
Anruf ersparen.
\subsubsection{OpenPGP-Schlüssel beglaubigen}
\index{Zertifikat!beglaubigen}
%\T\marginOpenpgp
Nachdem Sie sich "`per Fingerabdruck"' von der Echtheit des
Schlüssels überzeugt haben, können Sie ihn beglaubigen -- allerdings
nur in OpenPGP. Bei X.509 können Benutzer keine Schlüssel
beglaubigen -- das bleibt den Beglaubigungsinstanzen (CAs)
vorbehalten.
Durch das Beglaubigen eines Schlüssels teilen Sie anderen
(Gpg4win-)Benutzern mit, dass Sie diesen Schlüssel für echt -- also
authentisch -- halten:
Sie übernehmen so etwas wie die "`Patenschaft"' für diesen Schlüssel
und erhöhen das allgemeine Vertrauen in seine Echtheit.
~\\
\textbf{Wie funktioniert das Beglaubigen nun genau?}\\
Selektieren Sie in Kleopatra den OpenPGP-Schlüssel, den Sie für echt
halten und beglaubigen möchten. Wählen Sie anschließend im Menü:
\Menu{Zertifikate$\rightarrow$Schlüssel beglaubigen...}
\clearpage
Im nachfolgenden Dialog bestätigen Sie nun noch einmal den zu
beglaubigenden OpenPGP-Schlüssel und den Fingerabdruck mit \Button{Weiter}:
% screenshot: Kleopatra certify certificate 1
% TODO: Neuer Screenshot (Cancel Next)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate1_de}
Im nächsten Schritt wählen Sie Ihren eigenen OpenPGP-Schlüssel aus, mit dem Sie
den im letzten Schritt ausgewählten Schlüssel beglaubigen wollen:
% screenshot: Kleopatra certify certificate 2
% TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate2_de}
Entscheiden Sie hier, ob Sie \Button{Nur für mich selbst beglaubigen}
oder \Button{Für alle sichtbar beglaubigen} wollen. Bei letzterer
Variante haben Sie die Option, den beglaubigten Schlüssel anschließend
auf einen OpenPGP-Schlüsselserver hochzuladen und damit der Welt
einen mit Ihrer Beglaubigung versehenen, aktualisierten Schlüssel zur
Verfügung zu stellen.
Bestätigen Sie Ihre Auswahl mit \Button{Beglaubigen}.
Wie beim Signieren einer \Email{} müssen Sie auch beim Beglaubigen
eines Schlüssel (mit Ihrem privaten Schlüssel) Ihre Passphrase
eingeben. Erst nach korrekter Eingabe ist die Beglaubigung
abgeschlossen.
Nach erfolgreicher Beglaubigung erhalten Sie folgendes Fenster:
% screenshot: Kleopatra certify certificate 3
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate3_de}
%~\\ Wollen Sie die erfolgte Beglaubigung nun einmal prüfen?\\ Dann
%öffnen Sie die Schlüsseldetails des eben beglaubigten Schlüssels.
% TODO: Dieses Feature mit 3.0 entfallen??
%Wählen Sie den Reiter
%\Menu{Benutzer-Kennungen und
% Beglaubigungen} und klicken Sie auf die Schaltfläche \Button{Hole
% Beglaubigungen ein}.
%Sortiert nach den Benutzerkennungen sehen Sie alle Beglaubigungen,
%die in diesem Schlüssel enthalten sind. Hier sollten Sie auch Ihren Schlüssel
%wiederfinden, mit dem Sie soeben beglaubigt haben.
\clearpage
\subsubsection{Das Netz des Vertrauens in OpenPGP}
\index{Netz des Vertrauens|see{Web of Trust}}
\index{Web of Trust}
%\T\marginOpenpgp
Durch das Beglaubigen von Schlüsseln entsteht -- auch über den Kreis
von Gpg4win-Benutzern und Ihre täglichen Korrespondenz hinaus -- ein
"`Netz des Vertrauens"' ("`Web of Trust"', WoT), bei dem Sie nicht
mehr zwangsläufig darauf angewiesen sind, ein OpenPGP-Schlüssel
direkt auf Echtheit (Autentizität) zu prüfen.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.85\textwidth]{key-with-sigs}
Natürlich steigt das Vertrauen in einen Schlüssel, wenn mehrere Leute
es beglaubigen. Ihren eigenen OpenPGP-Schlüssel wird im Laufe der Zeit
die Beglaubigungen vieler anderer GnuPG-Benutzer tragen. Damit können
immer mehr Menschen darauf vertrauen, dass dieser Schlüssel wirklich
Ihnen und niemandem sonst gehört.
Wenn man dieses "`Web of Trust"' weiterspinnt, entsteht eine flexible
Beglaubigungs-Infra\-struktur.
Eine einzige Möglichkeit ist denkbar, mit der man diese
Schlüsselprüfung aushebeln kann: Jemand schiebt Ihnen einen falschen
Schlüssel unter. Also einen öffentlichen OpenPGP-Schlüssel, der
vorgibt, von X zu stammen, in Wirklichkeit aber von Y ausgetauscht
wurde. Wenn ein solcher gefälschter Schlüssel beglaubigt wird, hat
das "`Netz des Vertrauens"' natürlich ein Loch. Deshalb ist es so
wichtig, sich zu vergewissern, ob ein Schlüssel wirklich zu der
Person gehört, der es zu gehören vorgibt, bevor man es beglaubigt.
Was aber, wenn eine Bank oder Behörde prüfen möchte, ob die
Schlüssel ihrer Kunden echt sind? Alle anzurufen kann hier sicher
nicht die Lösung sein~...
\clearpage
\subsubsection{Beglaubigungsinstanzen bei X.509}
\index{Beglaubigungsinstanzen}
\index{Certificate Authority (CA)}
Hier braucht man eine "`übergeordnete"' Instanz, der alle Benutzer
vertrauen können. Sie prüfen ja auch nicht persönlich den
Personalausweis eines Unbekannten durch einen Anruf beim
Ein\-wohner\-melde\-amt, sondern vertrauen darauf, dass die
ausstellende Behörde diese Überprüfung korrekt durchgeführt und
beglaubigt hat.
%\T\marginOpenpgp
Solche Beglaubigungsinstanzen gibt es auch für OpenPGP-Schlüssel.
In Deutschland bietet unter anderem z.B. die Zeitschrift c't schon
lange einen solchen Dienst kostenlos an, ebenso wie viele
Universitäten.
Wenn man also einen OpenPGP-Schlüssel erhält, der durch eine solche
Beglaubigungsinstanz per Beglaubigung seine Echtheit bestätigt, sollte
man sich darauf verlassen können.
\T\marginSmime
Derartige Beglaubigungsinstanzen oder "`Trust Center"' sind auch bei
anderen Verschlüsselungsverfahren -- wie z.B. S/MIME -- vorgesehen.
Im Gegensatz zum ,,Web of Trust'' sind sie hierarchisch strukturiert:
Es gibt eine "`Oberste Beglaubigungsinstanz"', die weitere
"`Unterinstanzen"' beglaubigt und ihnen das Recht gibt,
Benutzerzertifikate zu beglaubigen (vgl.
Kapitel~\ref{ch:openpgpsmime}).
Am besten ist diese Infrastruktur mit einem Siegel vergleichbar: Die
Plakette auf Ihrem Autonummernschild kann Ihnen nur eine dazu
berechtigte Institution geben, die die Befugnis dazu wiederum von
einer übergeordneten Stelle erhalten hat. Technisch ist eine
Beglaubigung \index{Beglaubigung} nichts anderes als eine Signatur
eines Schlüssels durch den Beglaubigenden.
Die hierarchischen Beglaubigungs-Infrastrukturen entsprechen natürlich
wesentlich besser den Bedürfnissen staatlicher und behördlicher
Instanzen als das lose, auf gegenseitigem Vertrauen beruhende "`Web of
Trust"' von GnuPG. Der Kern der Beglaubigung selbst ist allerdings
völlig identisch: Gpg4win unterstützt neben dem "`Web of Trust"'
(OpenPGP) zusätzlich auch eine hierarchische Beglaubigungsstruktur
(S/MIME). Demnach bietet Gpg4win eine Grundlage, um dem
Signaturgesetz\index{Signaturgesetz} der Bundesrepublik Deutschland zu
entsprechen.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Wenn Sie sich weiter für dieses Thema interessieren, dann können Sie
sich z.B. bei folgenden Webadressen über dieses und viele andere
IT-Sicherheits-Themen informieren:
\begin{itemize}
\item \uniurl[www.bsi.bund.de]{http://www.bsi.bund.de}
\item \uniurl[www.bsi-fuer-buerger.de]{http://www.bsi-fuer-buerger.de}
\item \uniurl[www.gpg4win.de]{http://www.gpg4win.de}
\end{itemize}
Eine weitere, eher technische Informationsquelle zum Thema
der Beglaubigungsinfrastrukturen bietet das
GnuPG-Handbuch, das Sie ebenfalls im Internet finden unter:\\
\uniurl[www.gnupg.org/gph/de/manual]{http://www.gnupg.org/gph/de/manual}
\clearpage
\chapter{\Email{}s signieren und verschlüsseln}
\label{ch:emailsignandencrypt}
\label{sec_encsig}
Sie wissen: Normalerweise verschlüsseln Sie eine Nachricht mit Hilfe
des öffentlichen Schlüssels Ihres Korrespondenzpartners, der dann mit
seinem geheimen Schlüssel die \Email{} entschlüsselt.
Die umgekehrte Möglichkeit -- Verschlüsselung mit dem geheimen
Schlüssel -- macht keinen Sinn, weil alle Welt den dazugehörigen
öffentlichen Schlüssel kennt und die Nachricht damit entschlüsseln
könnte.
Es gibt aber ein anderes Verfahren, um mit Ihrem geheimen Schlüssel
eine Datei zu erzeugen: die Signatur.
Solch eine digitale Signatur bestätigt eindeutig die
Urheberschaft -- denn wenn jemand Ihren öffentlichen Schlüssel auf
diese Datei (die Signatur) anwendet und diese Prüfung erfolgreich ist,
so kann diese Datei nur von Ihrem privaten Schlüssel kodiert worden
sein. Und zu dem dürfen ja nur Sie selbst Zugang haben.
Sie können beide Möglichkeiten kombinieren, also eine \Email{}
signieren und verschlüsseln:
\begin{enumerate}
\item Sie \textbf{signieren} die Botschaft mit Ihrem eigenen
geheimen Schlüssel. Damit ist die Urheberschaft nachweisbar.
\item Dann \textbf{verschlüsseln} Sie den Text mit dem
öffentlichen Schlüssel des Korrespondenzpartners.
\end{enumerate}
Damit hat die Botschaft sozusagen zwei Sicherheitsmerkmale:
\begin{enumerate}
\item Ihr Siegel auf der Nachricht: die Signatur mit Ihrem
geheimen Schlüssel.
\item Einen soliden äußeren Umschlag: die
Verschlüsselung mit dem öffentlichem Schlüssel des
Korrespondenzpartners.
\end{enumerate}
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Ihr Korrespondenzpartner öffnet die äußere, starke Hülle mit seinem
eigenen geheimen Schlüssel. Hiermit ist die Geheimhaltung
gewährleistet, denn nur dieser Schlüssel kann den Text dekodieren. Das
Siegel liest er mit Ihrem öffentlichem Schlüssel und hat den Beweis
Ihrer Urheberschaft, denn wenn Ihr öffentlicher Schlüssel passt, kann
das Siegel (die digitale Signatur) nur mit Ihrem geheimen
Schlüssel kodiert worden sein.
Sehr trickreich und~-- wenn man ein wenig darüber nachdenkt -- auch
ganz einfach.
Dieses Kapitel beschäftigt sich mit dem Signieren und
Verschlüsseln von \Email{}s mit dem Outlook-Plugin GpgOL.
\clearpage
\section{\Email{}s signieren und verschlüsseln mit GpgOL}
%Tatsächlich ist die Signierung einer \Email{} noch einfacher als die
%Verschlüsselung (vgl. Kapitel~\ref{ch:encrypt}). Nachdem Sie eine neue
%\Email{} verfasst haben, gehen Sie -- analog zur Verschlüsselung --
%folgende Schritte durch:
%\begin{itemize}
% \item Nachricht signiert versenden
% \item Schlüssel auswählen
% \item Signierung abschließen
%\end{itemize}
Das Signieren und Verschlüsseln einer \Email{} ist sehr einfach. Nachdem
Sie eine neue \Email{} verfasst haben, gehen sie folgende Schritte durch:
\begin{itemize}
\item Nachricht signiert und verschlüsselt senden
\item Schlüssel auswählen
\item Signierung und Verschlüsselung abschließen
\end{itemize}
Auf den nächsten Seiten werden diese Schritte im Detail beschrieben.
~\\
Verfassen Sie zunächst in Outlook eine neue \Email{} und adressieren
Sie diese an Ihren Korrespondenzpartner.
Die Standardauswahl zum Signieren und Verschlüsseln ist bereits für Sie
markiert.
%Bevor Sie Ihre Nachricht abschicken, geben Sie noch an, dass Ihre
%Nachricht signiert versendet werden soll: Dazu aktivieren Sie die
%Schaltfläche mit dem signierenden Stift oder alternativ den
%Menüeintrag \Menu{Format$\rightarrow$Nachricht signieren}.
%Wenn Sie den Schlüssel ihrer Korrespondenzpartner bereits in Kleopatra
%importiert haben, wählen Sie die
%GpgOL-Schaltfläche zum Signieren/Verschlüsseln aus.
Ihr \Email{}-Fenster sollte anschließend etwa so aussehen:
% screenshot: OL composer with example address and body text
%TODO: Screenshot neu machen
\IncludeImage[width=0.85\textwidth]{sc-ol-sendSignedMail_de}
Klicken Sie nun auf \Button{Senden}.
\clearpage
\subsubsection{Schlüsselauswahl}
GpgOL erkennt automatisch, für welches Protokoll -- OpenPGP oder
S/MIME -- Ihr eigner privater Schlüssel zum Signieren und Verschlüsseln
vorliegt.
Sollten Sie gleichzeitig einen eigenen OpenPGP-Schlüssel \textit{und} ein
S/MIME-Zertifikat mit der gleichen \Email{}-Adresse besitzen, fragt Sie
Kleopatra vor dem Signieren nach dem gewünschten Protokollverfahren, oder haben
Sie vom gewählten Verfahren mehrere eigene Schlüssel (z.B.
zwei OpenPGP-Schlüssel zu der gleichen \Email{}-Adresse), dann
öffnet Kleopatra ein Fenster, in dem Ihre eigenen Schlüssel
angezeigt werden, zu denen Ihnen jeweils ein geheimer
Schlüssel vorliegt:
% screenshot: kleopatra format choice dialog
\IncludeImage[width=0.45\textwidth]{sc-kleopatra-format-choice_de}
Bestätigen Sie Ihre Auswahl anschließend mit \Button{OK}.
\clearpage
\subsubsection{Signierung und Verschlüsselung abschließen}
Um die Signierung und Verschlüsselung Ihrer \Email{} abzuschließen, werden Sie
aufgefordert, im folgenden Pinentry-Fenster\index{Pinentry} Ihre geheime Passphrase einzugeben:
% screenshot: kleopatra sign dialog 2 - choose certificate
%TODO: Neuer Screenhot!
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-sign-OpenpgpPinentry_de}
Dies ist notwendig, denn Sie wissen:
\begin{quote}
\textbf{Signieren können Sie nur mit Ihrem eigenen geheimen Schlüssel.}
\end{quote}
Logisch, denn nur Ihr geheimer Schlüssel bestätigt Ihre Identität. Der
Kor\-res\-pon\-denz\-partner kann dann mit Ihrem öffentlichen Schlüssel, den
er bereits hat oder sich besorgen kann, Ihre Identität prüfen und die \Email{}
entschlüsseln. Denn nur Ihr geheimer Schlüssel passt zu Ihrem öffentlichem
Schlüssel.
Bestätigen Sie Ihre Passphrase-Eingabe mit \Button{OK}. Ihre
Nachricht wird nun signiert, verschlüsselt und versendet.
%TODO: Passwort-Caching erklären
Ihnen wird vielleicht schon aufgefallen sein, dass Sie nicht jedes mal
Ihre Passphrase erneut eingeben müssen. Sie wird im Hintergrund für einige
Zeit gespeichert.
\textbf{Herzlichen Glückwunsch! Sie haben Ihre erste \Email{}
signiert und verschlüsselt!}
\textit{Übrigens}: Sie können eine Nachricht auch nur signieren oder nur
verschlüsseln. Klicken Sie dazu auf das GpgOL Symbol in der Nachricht. Der
Ablauf ist analog zu dem hier beschriebenen. Es wird aber davon abgeraten, eine
Nachricht nur zu verschlüsseln, da hierbei nicht die Urheberschaft der
Nachricht geschützt wird.
\clearpage
\subsection{Signatur prüfen mit GpgOL}
\index{Signatur!prüfen mit GpgOL}
Angenommen, Sie erhalten eine signierte \Email{} Ihres
Korrespondenzpartners.
Die Überprüfung dieser digitalen Signatur ist sehr einfach.
Alles, was Sie dazu brauchen, ist der öffentliche Schlüssel
Ihres Korrespondenzpartners, den Sie vor der Überprüfung in Ihre
Schlüsselverwaltung importiert haben sollten (vgl.
Kapitel~\ref{sec_importfromfile}).
Um eine signierte \Email{} zu prüfen, gehen Sie wie folgt
vor:
Starten Sie Outlook und öffnen Sie eine signierte \Email{}.
GpgOL übergibt die \Email{} automatisch an Kleopatra zur Prüfung der
Signatur. Kleopatra meldet das Ergebnis in einem Statusdialog, z.B.:
% screenshot: Kleopatra - successfully verify dialog
% TODO: Screenshot erneuern
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifySignedMail_de}
Die Signaturprüfung war erfolgreich!
%TODO: prüfen und ggf. anpassen
Möchten Sie die Überprüfung noch einmal manuell aufrufen, so wählen
Sie im Menü der geöffneten \Email{} \Menu{Extras$\rightarrow$GpgOL
Entschlüsseln/Prüfen}.
Sollte die Signaturprüfung fehlschlagen, ist das ein Warnsignal, dass
Ihre \Email{} manipuliert sein könnte! D.h., jemand hat vielleicht den
Inhalt oder den Betreff der \Email{} verändert.
Allerdings muss eine gebrochene Signatur nicht zwangsläufig bedeuten,
dass die \Email{} manipuliert wurde. Es ist ebenfalls nicht
auszuschließen, dass die \Email{} durch eine fehlerhafte
Übertragung verändert wurde.
Nehmen Sie in jedem Fall eine gebrochene Signatur ernst und fordern
Sie immer die \Email{} erneut beim Absender an!
\clearpage
\section{E-Mails signieren}
\label{sec_emailsignonly}
\label{ch:sign}
\index{E-Mail!signieren}
Sie haben in Kapitel~\ref{ch:trust} gelesen, wie Sie sich von der
Echtheit eines öffentlichen Schlüssels überzeugen und es dann
mit Ihrem eigenen geheimen Schlüssel signieren können.
Dieser Abschnitt beschäftigt sich damit, wie Sie nicht nur einen
Schlüssel, sondern auch eine komplette \textbf{\Email{}
signieren} können. Das bedeutet, dass Sie die \Email{} mit einer
digitalen Signatur versehen -- einer Art elektronischem Siegel.
So "`versiegelt"' ist der Text dann zwar noch für jeden lesbar, aber
der Empfänger kann feststellen, ob die \Email{} unterwegs manipuliert
oder verändert wurde.
Die Signatur garantiert Ihrem Empfänger, dass die Nachricht
tatsächlich von Ihnen stammt. Und: Wenn Sie mit jemandem
korrespondieren, dessen öffentlichen Schlüssel Sie nicht haben (aus
welchem Grund auch immer), können Sie so die Nachricht wenigstens mit
Ihrem eigenen privaten Schlüssel "`versiegeln"'.
Sie haben sicher bemerkt, dass diese digitale
Signatur\index{Signatur!digitale} nicht mit der
\Email{}-"`Signatur"' identisch ist, die man manchmal unter eine
\Email{} setzt und die z.B. Telefonnummer, Adresse und Webseite
nennt. Während diese \Email{}-Signaturen einfach nur als eine Art
Visitenkarte fungieren, schützt die digitale Signatur Ihre
\Email{} vor Manipulationen und bestätigt den Absender eindeutig.
Übrigens ist die digitale Signatur auch nicht mit der
qualifizierten elektronischen Signatur\index{Signatur!qualifizierte
elektronische} gleichzusetzen, wie sie im Signaturgesetz
\index{Signaturgesetz} vom 22.~Mai 2001 in Kraft getreten ist. Für
die private oder berufliche \Email{}-Kommunikation erfüllt sie
allerdings genau denselben Zweck.
% cartoon: Müller mit Schlüssel
\htmlattributes*{img}{width=300}
\T\ifthenelse{\boolean{DIN-A5}}{
\T\IncludeImage[width=0.5\textwidth]{man-with-signed-key}
\T}
\T{
\IncludeImage[width=0.35\textwidth]{man-with-signed-key}
\T}
\clearpage
\section{\Email{}s verschlüsselt archivieren \htmlonly{\html{br}\html{br}}}
\label{ch:archive}
\index{E-Mail!verschlüsselt archivieren}
Ihre wichtigen -- und daher möglicherweise verschlüsselten --
\Email{}s sollten Sie auch so archivieren: verschlüsselt.
Natürlich können Sie einfach eine Klartext-Fassung Ihrer Texte
aufbewahren, aber das wäre eigentlich nicht angebracht. Wenn Ihre
Mitteilung geheimhaltungsbedürftig war, sollte sie auch nicht im
Klartext auf Ihrem Rechner gespeichert sein. Sie sollten also stets
Ihre verschlüsselt gesendeten \Email{}s auch \textit{verschlüsselt}
aufbewahren!
Sie ahnen das Problem: Zum Entschlüsseln Ihrer archivierten
(versendeten) \Email{}s brauchen Sie aber den geheimen Schlüssel des
Empfängers -- und den haben Sie nicht und werden ihn nie haben ...
Also was tun?
Ganz einfach: \textbf{Sie verschlüsseln zusätzlich auch an sich
selbst!}
Die Nachricht wird einmal für Ihren eigentlichen Korrespondenzpartner
verschlüsselt und ein zweites Mal auch für Sie selbst (mit Hilfe Ihres
öffentlichen Schlüssels).
So können Sie die \Email{} später einfach mit Ihrem eigenen geheimen Schlüssel
wieder lesbar machen.
Jede verschlüsselte Nachricht wird von GpgOL automatisch auch an Ihren
eigenen öffentlichen Schlüssel verschlüsselt. Dazu nutzt GpgOL Ihre
Absender-\Email{}-Adresse. Sollten Sie mehrere Schlüssel zu einer
Adresse besitzen, so müssen Sie sich beim Verschlüsselungsvorgang
entscheiden, mit welchem Schlüssel verschlüsselt werden soll.
\clearpage
\subsubsection{Kurz zusammengefasst}
Sie haben gelernt, wie Sie eine \Email{} mit Ihrem geheimen Schlüssel
\textbf{signieren} -- und mit dem öffentlichen Schlüssel
Ihres Korrespondenzpartners \textbf{verschlüsseln}.
Damit beherrschen Sie nun die beiden wichtigsten Techniken für einen
sicheren \Email{}-Versand: signieren und verschlüsseln.
Sie sollten beide Techniken stets kombinieren. Sie können aber bei
jeder neuen \Email{} entscheiden, wie Sie Ihre Nachricht versenden
wollen -- je nachdem, wie wichtig und schutzbedürftig der Inhalt Ihrer
\Email{} ist.
Zusätzlich sollte jede verschlüsselte \Email{} auch zusätzlich an Sie
selbst verschlüsselt sein. Dafür sorgt GpgOL automatisch.
\clearpage
\chapter{Dateien signieren und verschlüsseln}
\label{ch:EncFiles}
\index{GpgEX}
Nicht nur \Email{}s, sondern auch einzelne Dateien können Sie mit
Gpg4win signieren und verschlüsseln. Das Prinzip ist das gleiche:
\begin{itemize}
\item Sie \textbf{signieren} eine Datei mit Hilfe Ihres geheimen
Schlüssels, um sicherzugehen, dass die Datei unverändert
bleibt.
\item Sie \textbf{verschlüsseln} eine Datei mit Hilfe eines
öffentlichen Schlüssels, um die Datei vor unbefugten Personen
geheim zu halten.
\end{itemize}
Mit der Gpg4win-Programmkomponente \textbf{GpgEX} können Sie Dateien ganz einfach aus
dem Windows-Explorer heraus signieren oder verschlüsseln -- egal, ob
mit OpenPGP oder S/MIME. Dieses Kapitel erläutert Ihnen, wie das
genau funktioniert.
Sollten Sie eine Datei als \Email{}-Anhang verschicken, übernimmt z.B.
GpgOL automatisch die Signierung bzw. Verschlüsselung der Datei
zusammen mit Ihrer \Email{}. Sie brauchen sich in diesem Fall nicht
gesondert darum zu kümmern.
\clearpage
\section{Dateien signieren, verschlüsseln und prüfen}
\label{sec_signFile}
\index{Datei!signieren}
Beim Signieren einer Datei kommt es vorrangig nicht auf die
Geheimhaltung, sondern auf die Unverändertheit\index{Unverändertheit}
(Integrität)\index{Integrität|see{Unverändertheit}} der Datei an.
Die Signierung können Sie bequem mit \textbf{GpgEX} aus dem
Kontextmenü des Windows-Explorers ausführen. Selektieren Sie eine (oder
mehrere) Datei(en) oder Ordner und öffnen Sie mit der rechten Maustaste das
Kontextmenü:
% screenshot GpgEX contextmenu sign/encrypt
% TODO: Neuer Screenshot (Sign and Encrypt)
\IncludeImage[width=0.5\textwidth]{sc-gpgex-contextmenu-signEncrypt_de}
Dort wählen Sie \Menu{Signieren} und \Menu{Für mich verschlüsseln} aus.
In beiden Menüpunkten sollte ihr eigener Schlüssel ausgewählt sein. Unter dem
Punkt \Menu{Für andere verschlüsseln} können Sie auch andere Schlüssel angeben.
\clearpage
Selektieren Sie im erscheinenden Fenster die Option \Menu{Signieren}:
% screenshot sign file, step 1
% TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile1_de}
%Bei Bedarf können Sie die Option \Menu{Ausgabe als Text (ASCII
% armor\index{ASCII armor})}
%aktivieren. Die Signaturdatei erhält damit eine Dateiendung
%\Filename{.asc} (OpenPGP) bzw. \Filename{.pem} (S/MIME). Diese
%Dateitypen können mit jedem Texteditor geöffnet werden -- Sie sehen
%dort allerdings nur den Buchstaben- und Ziffernsalat, den Sie schon
%kennen.
%Ist diese Option nicht ausgewählt, so wird eine Signaturdatei mit
%einer Endung \Filename{.sig} (OpenPGP) bzw. \Filename{.p7s} (S/MIME) erstellt.
%Diese Dateien sind Binärdateien, sie können also nicht mit einem Texteditor
%angesehen werden.
Klicken Sie anschließend auf \Button{Weiter}.
%\clearpage
%Im folgenden Dialog wählen Sie -- sofern nicht schon vorausgewählt --
%Ihren geheimen (OpenPGP oder S/MIME) Schlüssel aus, mit dem Sie die
%Datei signieren möchten.
% screenshot sign file, step 2: choose sign certificates
%\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile2_de}
%Bestätigen Sie Ihre Auswahl mit \Button{Signieren}.
Geben Sie nun Ihre Passphrase in den Pinentry-Dialog ein.
\clearpage
Nach erfolgreicher Signierung und Verschlüsselung erhalten Sie folgendes Fenster:
% screenshot sign file, step 3: finish
% TODO: Neuer Screenshot (Finish/Cancel)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile3_de}
Sie haben damit Ihre Datei erfolgreich signiert und verschlüsselt.
Beim Signieren einer Datei wird stets eine "`abgetrennte"' (separate)
Signatur verwendet. Dies bedeutet, dass Ihre zu signierende Datei
unverändert bleibt und eine zweite Datei mit der eigentlichen Signatur
erzeugt wird. Um die Signatur später zu prüfen, sind beide Dateien
notwendig.
%Folgendes Beispiel zeigt noch einmal, welche neue Datei Sie erhalten,
%wenn Sie Ihre ausgewählte Datei (hier \Filename{.txt}) mit
%OpenPGP bzw. S/MIME signieren. Es sind insgesamt vier Dateitypen als
%Ergebnis möglich:
%\begin{description}
% \item[OpenPGP:]~\\
% \Filename{.txt $\rightarrow$ .txt\textbf{.sig}}\\
% \Filename{.txt $\rightarrow$ .txt\textbf{.asc}}
% ~ \small (bei Ausgabe als Text/ASCII-armor)
% \normalsize
% \item[S/MIME:]~\\
% \Filename{.txt $\rightarrow$ .txt\textbf{.p7s}}\\
% \Filename{.txt $\rightarrow$ .txt\textbf{.pem}}
% ~ \small{ (bei Ausgabe als Text/ASCII-armor)}
% \normalsize
%\end{description}
\clearpage
\subsubsection{Signatur prüfen}
\index{Datei!Signatur prüfen}
Prüfen Sie nun, ob die eben signierte Datei integer
-- d.h. korrekt -- ist!
Zum Überprüfen der Unverändertheit (Integrität) und der Authentizität
müssen die Signatur-Datei -- also die mit der Endung \Filename{.sig},
\Filename{.asc}, \Filename{.p7s} oder \Filename{.pem} -- und die signierte Originaldatei
(Originaldatei) in demselben Dateiordner liegen. Selektieren Sie die
Signatur-Datei und wählen Sie aus dem Kontextmenü des Windows-Explorers
den Eintrag \Menu{Entschlüsseln und prüfen}:
% screenshot GpgEX contextmenu verifiy/decrypt
% TODO: Neuer Screenshot (Decrypt and Verify)
\IncludeImage[width=0.5\textwidth]{sc-gpgex-contextmenu-verifyDecrypt_de}
\clearpage
Daraufhin erhalten Sie folgendes Fenster:
% screenshot kleopatra verify file, step 1
% TODO: Neuer Screenshot (Save All/Cancel und Fensterüberschrift)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile1_de}
Kleopatra zeigt unter \Menu{Ausgabe-Ordner} den vollständigen Pfad zur
ausgewählten Signatur-Datei an. Dieser kann angepasst werden.
Das Ergebnis zeigt, dass die Signatur korrekt ist -- also die Datei
integer ist und somit \textbf{nicht} verändert wurde.
%Die Option \Menu{Eingabe-Datei ist eine abgetrennte Signatur} ist
%aktiviert, da Sie ja Ihre Originaldatei (hier: \Menu{Signierte Datei})
%mit der Eingabe-Datei signiert haben. Kleopatra findet automatisch
%die zugehörige signierte Originaldatei in demselben Datei-Ordner.
Automatisch ist auch für den \Menu{Ausgabe-Ordner} der gleichen Pfad
ausgewählt. Dieser wird aber erst relevant, wenn Sie mehr als eine Datei
gleichzeitig verarbeiten.
Die Signaturprüfung wird schon angezeigt und über \Button{Speichern} können Sie
die entschlüsselte und geprüfte Datei sichern.
%Bestätigen Sie die gegebenen Operationen mit
%\Button{Entschlüsseln/Prüfen}.
%\clearpage
%Nach erfolgreicher Überprüfung der Signatur erhalten Sie folgendes
%Fenster:
% screenshot kleopatra verify file, step 2
%\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile2_de}
\clearpage
Selbst wenn nur ein Zeichen in der Originaldatei hinzugefügt, gelöscht
oder geändert wurde, wird die Signatur als gebrochen angezeigt
(Kleopatra stellt das Ergebnis als rote Warnung dar):
% screenshot kleopatra verify file, step 2a (bad signature)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile2a-badSignature_de}
\subsubsection{Kurz zusammengefasst}
Sie haben gelernt, wie Sie mit GpgEX:
\begin{itemize}
\item Dateien signieren
\item signierte Dateien prüfen
\item Dateien verschlüsseln
\item verschlüsselte Dateien entschlüsseln
\end{itemize}
\subsubsection{Gleichzeitig signieren und verschlüsseln}
Diese Option ist Ihnen sicher schon in den entsprechenden Dialogen
aufgefallen. Wählen Sie sie aus, dann kombiniert GpgEX beide
Krypto-Operationen in einem Schritt.
Beachten Sie, dass immer {\em zuerst signiert}, erst danach
verschlüsselt wird.
Die Signatur wird also immer als geheim mitverschlüsselt. Sie kann
nur von denjenigen gesehen und geprüft werden, die die Datei
erfolgreich entschlüsseln konnten.
%Möchten Sie Dateien signieren \textit{und} verschlüsseln, ist das
%derzeit nur mit OpenPGP möglich.
\clearpage
\chapter{Öffentliche Schlüssel veröffentlichen}
%TODO: Die Möglichkeiten aufzählen (Mail, eigene Website etc.) und auf Keyserver weiter eingehen
\label{ch:publishCertificate}
\index{Zertifikat!verbreiten}
Um Ihren Schlüssel anderen Korrespondenzpartnern zur Verfügung zu stellen,
müssen Sie Ihren öffentlichen Schlüssel verbreiten. Sie haben in Kapitel
\ref{sec:mailEncryption} bereits gelesen, wie man einen öffentlichen Schlüssel
exportiert und ihn versendet, in diesem Abschnitt gehen wir nun auf die
Veröffentlichung Ihres öffentlichen Schlüssels auf einem Schlüsselserver ein.
Mehr zu diesem Thema finden Sie unter Abschnitt \ref{ch:keyserver}.
\section{Veröffentlichen auf OpenPGP-Schlüsselservern}
\label{sec_publishPerKeyserver}
Wählen Sie in der Schlüsselübersicht in Kleopatra Ihren Schlüssel aus. Über \Menu{Datei $\to$ Auf Server veröffentlichen..} öffnet sich folgender Dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-publishKey_de}
Lesen Sie die Meldung aufmerksam und bestätigen Sie den Dialog. Wenn der
Schlüssel erfolgreich auf den Schlüsselserver exportiert wurde. Erhalten Sie
folgende Nachricht:
\IncludeImage[width=0.3\textwidth]{sc-kleopatra-publishKey1_de}
Ihr Schlüssel ist nun erfolgreich auf dem Schlüsselserver veröffentlicht und
Korrespondenzpartner können ihn einfach über die Schlüsselsuche finden.
\section{Veröffentlichen von X.509-Zertifikaten}
\label{publishPerEmailx509}
Für das Veröffentlichen von X.509-Zertifikaten ist der Anbieter zuständig. Wenn
Sie Ihre Zertifikatsanfrage zum Anbieter geschickt haben und ein gültiges
Zertifikat erhalten haben, ist dies im Normalfall über den Schlüsselserver des
Anbieters verfügbar. Dies ist jedoch von Anbieter zu Anbieter unterschiedlich.
Wie man einen Schlüsselsever für X.509 Zertifikate hinzufügt, wird in Abschnitt
\ref{ch:keyserver} besprochen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Part II
% page break in toc
\addtocontents{toc}{\protect\newpage}
\clearpage
\T\part{Für Fortgeschrittene}
\W\part*{\textbf{II Für Fortgeschrittene}}
\label{part:Fortgeschrittene}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\clearpage
\chapter{Schlüssel im Detail}
\label{ch:CertificateDetails}
\index{Zertifikatsdetails}
In Kapitel \ref{ch:CreateKeyPair} haben Sie sich schon den
Detaildialog Ihres erzeugten Schlüsselpaares angesehen. Viele Angaben zu
Ihrem Schlüsselpaar sind dort aufgelistet. Nachfolgend die Wichtigsten,
mit kurzen Hinweisen auf die Unterschiede zwischen OpenPGP-Schlüsseln und
X.509-Zertifikaten:
% TODO: Screenshot vom Detaildialog OpenPGP + ggf. zusätzlich X.509 wäre sehr hilfreich zur
% Veranschaulichung
\begin{description}
\item[Die Benutzerkennung\index{Zertifikat!Benutzerkennung}] besteht aus dem Namen und der
\Email{}-Adresse, die Sie während der Schlüsselpaarerzeugung
eingegeben haben, also z.B.: \Filename{Alice
}
Für OpenPGP-Schlüssel können Sie mit Kleopatra über den
%TODO: Oder Schlüssel? - Dann in Kleo anpassen
Menüpunkt \Menu{Zertifikate$\rightarrow$%
\T\ifthenelse{\boolean{DIN-A5}}{}{ }%
Benutzerkennung hinzufügen...}
Ihr Schlüsselpaar um weitere Benutzerkennungen
erweitern. Das ist dann sinnvoll, wenn Sie z.B. für eine weitere
\Email{}-Adresse den Schlüssel nutzen möchten.
Beachten Sie: Hinzufügen neuer Benutzerkennungen ist in Kleopatra
nur für OpenPGP-Schlüssel möglich, nicht aber für X.509-Zertifikate.
\item[Der Fingerabdruck] wird verwendet, um mehrere Schlüssel
voneinander zu unterscheiden. Mit dieser Kennung können Sie nach
(öffentlichen) Schlüsseln suchen, die z.B. auf einem weltweit
verfügbaren OpenPGP-Schlüsselserver (engl. "`key server"')
oder auf einem X.509-Zertifikats\-server liegen. Was
Schlüsselserver sind, erfahren Sie im folgenden Kapitel.
\item[Die Schlüssel-ID\index{Schlüsselkennung}\index{Schlüssel!-ID}] (auch Schlüsselkennung genannt) besteht aus
den letzten acht Stellen des Fingerabdrucks. Die wesentlich geringere Länge
macht die Schlüsselkennung einfacher handhabbar,
erhöht aber das Risiko von Mehrdeutigkeiten (unterschiedliche
Schlüssel mit derselben Kennung).
\item[Die Gültigkeit\index{Zertifikat!Gültigkeit}] von Schlüsseln bezeichnet die Dauer ihrer
Gültigkeit und ggf. ihr Verfallsdatum.\index{Verfallsdatum}
Für OpenPGP-Schlüssel ist die Gültigkeit normalerweise auf
\Menu{Unbegrenzt} gesetzt. Sie können dies mit Kleopatra ändern,
indem Sie auf die Schaltfläche \Button{Ablaufdatum ändern} in den
Details klicken -- oder das Menü
%TODO: Menü in Schlüssel ändern? - Dann in Kleo ändern
\Menu{Zertifikate$\rightarrow$Ablaufdatum ändern} auswählen -- und
ein neues Datum eintragen. Damit können Sie Schlüssel für eine
begrenzte Zeit gültig erklären, z.B. um sie an externe Mitarbeiter
auszugeben.
Die Gültigkeitsdauer von X.509-Zertifikaten wird bei der
Ausstellung von der Beglaubigungsinstanz (CA)
festgelegt und kann nicht vom Nutzer geändert werden.
\item[Das Vertrauen in den Schlüsselinhaber (nur OpenPGP)] %\T\marginOpenpgp
beziffert Ihre eigene, subjektive Zuversicht, dass der Besitzer
des OpenPGP-Schlüssels echt (authentisch) ist und auch andere
OpenPGP-Schlüssel korrekt beglaubigen wird. Sie können das
Vertrauen über die Schaltfläche \Button{Vertrauen in den
Schlüsselinhaber ändern} in den Details oder über das
%TODO: Menü in Schlüssel ändern? - Dann in Kleo ändern
Menü \Menu{Zertifikate$\rightarrow$Vertrauens\-status ändern}
einstellen.
Der Vertrauensstatus ist nur für OpenPGP-Schlüssel relevant.
Für X.509-Zerti\-fikate gibt es diese Methode der
Vertrauensstellung nicht.
\item[Die Beglaubigungen (nur OpenPGP)] %\T\marginOpenpgp
Ihres OpenPGP-Schlüssels beinhalten die
Benutzerkennungen derjenigen Schlüsselinhaber, die
sich von der Echtheit Ihres Schlüssels überzeugt und es dann auch
beglaubigt haben. Das Vertrauen in die Echtheit Ihres Schlüssels
steigt mit der Anzahl an Beglaubigungen, die Sie von anderen
Nutzern erhalten.
Beglaubigungen sind nur für OpenPGP-Schlüssel relevant. Für
X.509-Zertifi\-kate gibt es diese Methode der Vertrauensstellung
nicht.
\end{description}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
~\\
Diese Details müssen Sie für die tagtägliche Benutzung von
Gpg4win nicht unbedingt kennen, aber sie werden relevant, wenn Sie
neue Schlüssel erhalten oder ändern wollen.
\clearpage
\chapter{Die Schlüsselserver}
\label{ch:keyserver}
\index{Zertifikatsserver}
Die Nutzung eines Schlüsselservers zum Verbreiten Ihres öffentlichen
(OpenPGP- oder X.509-) Schlüssel wurde bereits im
Abschnitt~\ref{sec_publishPerKeyserver} einführend erläutert. Dieses
Kapitel beschäftigt sich mit den Details von Schlüsselservern und
zeigt Ihnen, wie Sie diese mit Kleopatra nutzen können.
Schlüsselserver können von allen Programmen benutzt werden, die die
Standards OpenPGP bzw. X.509 unterstützen. Kleopatra unterstützt
beide Arten, also sowohl OpenPGP-Schlüsselserver als auch
X.509-Zerti\-fi\-katsserver.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\begin{description}
\item[OpenPGP-Schlüsselserver]%\T\marginOpenpgp
\index{Zertifikatsserver!OpenPGP}
(im Englischen auch "`key server"' genannt) sind dezentral
organisiert und synchronisieren sich weltweit miteinander.
Aktuelle Statistiken über ihre Zahl oder die Anzahl der dort
liegenden OpenPGP-Schlüssel gibt es nicht. Dieses verteilte
Netz von OpenPGP-Schlüsselserver sorgt für eine bessere
Verfügbarkeit und verhindert, dass einzelne Systemadministratoren
Schlüssel löschen, um so die sichere Kommunikation unmöglich zu
machen ("`Denial of Service"'-Angriff).\index{Denial of Service}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{keyserver-world}
\item[X.509-Zertifikatsserver] \T\marginSmime
\index{Zertifikatsserver!X.509}
werden in der Regel von den Beglaubigungsinstanzen (CAs) über
LDAP\index{LDAP} bereitgestellt und manchmal auch als
Verzeichnisdienste für X.509-Zertifikate bezeichnet.
\end{description}
\clearpage
\section{Schlüsselserver einrichten}
\label{configureCertificateServer}
\index{Zertifikatsserver!einrichten}
Öffnen Sie den Konfigurationsdialog von Kleopatra:\\
\Menu{Einstellungen $\rightarrow$ Kleopatra einrichten...}
%TODO: Heißt es in Kleo wirklich überall Schlüsselserver?
Legen Sie unter der Gruppe \Menu{Schlüsselserver} einen neuen
Schlüsselserver an, indem Sie auf die Schaltfläche \Menu{Neu}
klicken. Wählen Sie zwischen \Menu{OpenPGP} oder \Menu{X.509}.
Bei \Menu{OpenPGP} wird in die Liste ein voreingestellter
OpenPGP-Schlüsselserver mit der Serveradresse
\Filename{hkp://keys.gnupg.net} (Port: 11371, Protokoll: hkp)
hinzugefügt. Sie können diesen ohne Änderung direkt verwenden -- oder
Sie nutzen eine der vorgeschlagenen OpenPGP-Serveradressen von der
nächsten Seite.
Bei \Menu{X.509} erhalten Sie folgende Vorbelegungen für einen
X.509-Zertifikatsserver: (Protokoll: ldap, Servername: server,
Server-Port: 389). Vervollständigen Sie die Angaben zu Servername und
Basis-DN Ihres X.509-Zertifikatsservers und prüfen Sie den
Server-Port.
Sollte Ihr Schlüsselserver Benutzername und Passwort fordern, so
aktivieren Sie die Option \Menu{Benutzerauthentisierung notwendig} und
tragen Ihre gewünschten Angaben ein.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Der folgende Screenshot zeigt einen konfigurierten
OpenPGP"=Schlüsselserver:
% screenshot: Kleopatra OpenPGP certificate server config dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-configureKeyserver_de}
Bestätigen Sie abschließend Ihre Konfiguration mit \Button{OK}. Ihr
Schlüsselserver ist nun erfolgreich eingerichtet.
Um sicherzugehen, dass Sie den Schlüsselserver korrekt konfiguriert
haben, ist es hilfreich, z.B. eine Schlüsselserver auf dem Server zu
starten (Anleitung siehe
Abschnitt~\ref{searchAndImportCertificateFromServer}).
\textbf{Proxy-Einstellung:}\index{Proxy} Falls Sie einen Proxy in Ihrem Netzwerk
nutzen, müssen Sie die Schlüsselserver-Adresse in der Datei:\\
\Filename{\%APPDATA\%\back{}gnupg\back{}gpg.conf}\\
ergänzen.
Fügen Sie dazu in der Datei eine weitere Zeile ein, mit dem Inhalt: \\
\Filename{keyserver-options http-proxy=}
Erläuterungen zur systemweiten Konfiguration von X.509-Zertifikatsservern
finden Sie im Abschnitt~\ref{x509CertificateServers}.
\subsubsection{OpenPGP-Schlüsselserver-Adressen}
%TODO: Eventuell Outdated
%\T\marginOpenpgp
Es wird empfohlen, nur moderne OpenPGP-Schlüsselserver zu verwenden,
da nur diese mit den neueren Merkmalen von OpenPGP umgehen können.
Hier eine Auswahl von gut funktionierenden Schlüsselserver:
\begin{itemize}
\item hkp://blackhole.pca.dfn.de
\item hkp://pks.gpg.cz
\item hkp://pgp.cns.ualberta.ca
\item hkp://minsky.surfnet.nl
\item hkp://keyserver.ubuntu.com
\item hkp://keyserver.pramberger.at
\item http://keyserver.pramberger.at
\item http://gpg-keyserver.de
\end{itemize}
Sollten Sie Probleme mit einer Firewall haben, so versuchen Sie es am
besten mit Schlüsselserver, deren URL mit \Filename{http://}
beginnen.
Die Schlüsselserver unter den Adressen
\begin{itemize}
\item hkp://keys.gnupg.net (Vorauswahl von Kleopatra,
siehe Bildschirmfoto auf vorheriger Seite)
\item hkp://subkeys.pgp.net
\end{itemize}
sind ein Sammelpunkt für ein ganzes Netz dieser Server; es wird
dann zufällig ein konkreter Server ausgewählt.
\textbf{Achtung:} Nicht \Filename{ldap://keyserver.pgp.com} als
Schlüsselserver benutzen, weil dieser sich nicht mit den anderen Servern
synchronisiert (Stand: Mai 2010).
\clearpage
\section{X.509 Schlüsselserver einrichten}
\label{sec:x509Keyserver}
Wenn Sie einen S/MIME Schlüssel importieren wollen, müssen Sie sich zunächst
über die Adresse des Schlüsselservers und der Basis-DN (Basis Domain-Name)
Informieren. Diese erhalten Sie von Ihrem System-Administrator oder
Kommunikations-Partner. Sobald Sie diese Informationen haben, öffnen Sie unter
\Menu{Einstellungen $\to$ Kleopatra einrichten ...} das
\Menu{Schlüsselserver}-Menü. Dort fügen Sie mit der Schaltfläche \Menu{Neu}
einen neuen Eintrag der Liste hinzu. Sie können die vorausgwählten
Informationen durch Ihre ersetzen. Wenn Sie z.B. Die Informationen erhalten
haben, dass der Schlüsselserver die URL \texttt{ldap://ca.gnupg.org:389/} und
die Basis-DN \texttt{o="GnuPG", C=DE} besitzt, dann wählen Sie als
\Menu{Protokoll} \glqq{}\texttt{ldap}\grqq{} aus, tragen unter \Menu{Server}
\glqq{}ca.gnupg.org\grqq{} ein, unter \Menu{Port} tragen
Sie\glqq{}\texttt{389}\grqq{} ein, bei \Menu{Basis-DN} tragen Sie
\glqq{}\texttt{o="GnuPG", C=DE}\grqq{} ein und setzen am Ende einen Haken unter
der \Menu{X.509}-Option. Bestätigen Sie abschließend Ihren Eintrag mit
\Menu{OK}.
\section{Schlüssel auf Schlüsselservern suchen und importieren}
\label{searchAndImportCertificateFromServer}
\index{Zertifikatsserver!Suche nach Zertifikaten}
\index{Zertifikat!importieren}
Nachdem Sie mindestens einen Schlüsselserver eingerichtet haben,
können Sie nun dort nach Schlüsseln suchen und diese anschließend
importieren.
Klicken Sie dazu in Kleopatra auf \Menu{Datei$\rightarrow$Auf Server suchen...}.
Sie erhalten einen Suchdialog, in dessen Eingabefeld Sie den Namen des
Schlüsselbesitzers -- oder eindeutiger und daher besser geeignet --
seine \Email{}-Adresse seines Schlüssels eingeben können.
% screenshot: Kleopatra certification search dialog
%TODO: Neuer Screenshot (Close)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certificateSearchOnKeyserver_de}
Um die Details eines ausgewählten Zertifikats zu sehen, klicken Sie
auf die Schaltfläche \Button{Details...}.
Wenn Sie nun eines der gefundenen Schlüssel in Ihre lokale
Schlüsselsammlung einfügen möchten, selektieren Sie das
Schlüssel aus der Liste der Suchergebnisse und klicken Sie auf
\Button{Importieren}.
Kleopatra zeigt Ihnen anschließend einen Dialog mit den Ergebnissen
des Importvorgangs an. Bestätigen Sie diesen mit \Button{OK}.
War der Import erfolgreich, finden Sie nun das ausgewählte Schlüssel
%TODO: Schlüsselverwaltung vs. Zertifikatsverwaltung?
in der Zertifikatsverwaltung von Kleopatra.
% Section Doppelt zu Kapitel 13
%\section{Schlüssel auf OpenPGP-Schlüsselserver exportieren}
%\index{Zertifikat!exportieren}
%\T\marginOpenpgp
%Wenn Sie einen OpenPGP-Schlüsselserver wie im Abschnitt
%\ref{configureCertificateServer} beschrieben eingerichtet haben,
%genügt ein Maus\-klick, und Ihr öffentlicher OpenPGP-Schlüssel ist
%unterwegs rund um die Welt.
%Wählen Sie Ihren OpenPGP-Schlüssel in Kleopatra aus und klicken Sie
%TODO: Müsste nun anders heißen
%anschließend auf den Menüeintrag: \Menu{Datei$\rightarrow$Zertifikate
%nach Server exportieren...}.
%Sie brauchen Ihren Schlüssel nur an irgendeinen der verfügbaren
%OpenPGP-Schlüsselserver zu senden, denn fast alle synchronisieren
%sich weltweit miteinander. Es kann ein, zwei Tage dauern, bis Ihr
%OpenPGP-Schlüssel wirklich überall verfügbar ist, aber dann haben Sie
%einen "`globales"' Schlüssel.
%Sollten Sie Ihren Schlüssel exportieren, ohne zuvor einen
%OpenPGP-Schlüsselserver eingerichtet zu haben, so schlägt Ihnen
%Kleopatra den bereits voreingestellten Server
%\Filename{hkp://keys.gnupg.net} zur Verwendung vor.
\clearpage
\chapter{Dateianhänge verschlüsseln}
\index{Dateianhänge verschlüsseln}
Wenn Sie eine verschlüsselte \Email{} versenden und Dateien anhängen,
so wollen Sie in der Regel sicherlich auch, dass diese Anhänge
verschlüsselt werden.
Bei einer komfortablen Integration von GnuPG in Ihr \Email{}-Programm
sollten Anhänge genauso behandelt werden wie der eigentliche Text
Ihrer \Email{}, also signiert, verschlüsselt oder beides zusammen.
\textbf{GpgOL übernimmt die Verschlüsselung und Signierung von
Anhängen automatisch.}
Bei weniger komfortabel in einem \Email{}-Programm integriertem
Verschlüsselungswerkzeugen müssen Sie aufpassen: Die Anhänge werden oft
unverschlüsselt mitgesendet.
Was kann man in so einem Fall tun? Ganz einfach: Sie verschlüsseln
den Anhang getrennt und hängen ihn dann in verschlüsseltem Zustand an
die \Email{} an. Dies läuft also auf ein ganz gewöhnliches
Verschlüsseln von Dateien hinaus, das in Kapitel~\ref{ch:EncFiles}
beschrieben ist.
\clearpage
\chapter{Im- und Export eines geheimen Schlüssels}
\label{ch:ImExport}
In den Kapiteln \ref{ch:publishCertificate} und
\ref{sec_importfromfile} wurde der Im- und Export von Schlüsseln
erläutert. Sie haben Ihren eigenen Schlüssel exportiert, um ihn zu
veröffentlichen, und den Schlüssel Ihres Korrespondenzpartners
importiert und so "`an Ihrem Schlüsselbund\index{Schlüsselbund}
%TODO: Schlüsselverwaltung vs. Zertifikatsverwaltung
befestigt"' (d.h. in Ihre Schlüsselverwaltung aufgenommen).
Dabei ging es stets um \textbf{öffentliche} Schlüssel. Es gibt
aber auch hin und wieder die Notwendigkeit, einen \textbf{geheimen}
Schlüssel zu im- oder exportieren. Wenn Sie z.B. ein bereits
vorhandenes (OpenPGP oder S/MIME) Schlüsselpaar mit Gpg4win
weiterbenutzen wollen, müssen Sie es importieren. Oder wenn Sie
Gpg4win von einem anderen Rechner aus benutzen wollen, muss ebenfalls
zunächst das gesamte Schlüsselpaar dorthin transferiert werden --~der
öffentliche und der geheime Schlüssel.
\clearpage
\section{Export}
\index{Zertifikat!exportieren}
Immer, wenn Sie einen geheimen Schlüssel auf einen anderen Rechner
transferieren oder auf einer anderen Festplattenpartition bzw. einem
Sicherungsmedium speichern wollen, müssen Sie mit Kleopatra eine
Sicherungskopie erstellen.
Eine solche Sicherungskopie haben Sie evtl. schon einmal am Ende Ihrer
OpenPGP-Schlüsselpaar\-erzeu\-gung angelegt. Da Ihr OpenPGP-Schlüssel
aber inzwischen weitere Beglaubigungen haben kann, sollten Sie ihn ggf.
erneut sichern.
Öffnen Sie Kleopatra, selektieren Sie Ihren eigenen Schlüsseln und
%TODO: Auf Schlüssel ändern? - dann in Kleo anpassen
klicken Sie auf \Menu{Datei$\rightarrow$Geheimen Schlüssel exportieren}.
% screenshot kleopatra export secret key
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-openpgp-exportSecretKey_de}
Wählen Sie den Pfad und den Dateinamen der Ausgabedatei. Der Dateityp
wird automatisch gesetzt. Abhängig davon, ob Sie einen geheimen
OpenPGP- oder S/MIME-Schlüssel exportieren wollen, ist standardmäßig
die Dateiendung \Filename{.gpg} (OpenPGP) oder \Filename{.p12}
(S/MIME) ausgewählt. Bei diesen Dateien handelt es sich um
Binärdateien, die Ihr Schlüsselpaar (inkl. geheimem Schlüssel)
verschlüsselt enthalten.
Bei Aktivierung der Option \Menu{ASCII-geschützt (ASCII armor\index{ASCII armor})}
erhalten Sie die Dateiendung \Filename{.asc} (OpenPGP) bzw.
\Filename{.pem} (S/MIME). Diese Dateitypen können mit jedem
Texteditor geöffnet werden -- Sie sehen dort allerdings nur den
Buchstaben- und Ziffernsalat, den Sie schon kennen.
Ist diese Option nicht ausgewählt, so wird eine verschlüsselte Datei
mit der Endung \Filename{.gpg} (OpenPGP) oder \Filename{.p12} (S/MIME)
angelegt. Diese Dateien sind Binärdateien, sie können also nicht mit
einem Texteditor angesehen werden.
Beide Schlüsselteile -- der öffentliche und der geheime -- werden von
Kleopatra in \textbf{einem} einzigen geheimen Schlüsselpaar
abgespeichert.
\textbf{Achtung:} Behandeln Sie diese Datei sehr sorgfältig. Sie
enthält Ihren geheimen Schlüssel und damit sehr sicherheitskritische
Informationen!
\clearpage
\section{Import}
\index{Zertifikat!importieren}
Zum Importieren Ihres zuvor exportierten geheimen Schlüssels in
Kleopatra gehen Sie so vor, wie Sie es vom Import fremder
öffentlicher Schlüssel gewohnt sind (vgl.
Kapitel~\ref{ch:importCertificate}):
%TODO: Menü anpassen in Kleo?
Klicken Sie auf \Menu{Datei$\rightarrow$Schlüssel importieren...} und
wählen Sie die zu importierende Datei aus. Handelt es sich um eine
PKCS12-Datei (z.B. vom Typ \Filename{.p12}), so werden Sie zunächst
nach der Passphrase zum Entsperren des geheimen Schlüssels gefragt:
% screenshot pinentry p12 import (I)
% TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.5\textwidth]{sc-pinentry-p12-import-a_de}
Setzen Sie nun eine Passphrase, gegebenenfalls auch eine neue, mit der
nach dem Importvorgang Ihr geheimer Schlüssel geschützt werden soll:
% screenshot pinentry p12 import (II)
% TODO: Neuer Screenshot - alles Englisch
\IncludeImage[width=0.5\textwidth]{sc-pinentry-p12-import-b_de}
Wiederholen Sie Ihre Passphrase-Eingabe. Sollte Ihre Passphrase zu
kurz sein oder nur aus Buchstaben bestehen, werden Sie entsprechend
gewarnt.
%\clearpage
%Nach dem erfolgreichen Importieren sehen Sie ein Informationsfenster,
%das Ihnen die Ergebnisse des Importvorgangs auflistet; hier am
%Beispiel eines geheimen OpenPGP-Schlüssels:
% screenshot kleopatra import secret key - status
%\IncludeImage[width=0.6\textwidth]{sc-kleopatra-import-openpgp-secret-key_de}
Kleopatra hat damit sowohl den geheimen als auch den öffentlichen
Schlüssel aus der Sicherungsdatei importiert. Ihr Schlüssel ist damit
%TODO: Die Reiter heißen immernoch komisch - evtl in Kleo ändern
%TODO: Schlüsselverwaltung vs. Zertifikatsverwaltung
unter "`Meine Zertifikate"' in der Zertifikatsverwaltung von Kleopatra
sichtbar.
Sichern Sie die Sicherungskopie Ihres
geheimen Schlüssels -- möglichst auf einem physikalisch gesicherten
(z.B. in einem Tresor) externen Medium. Löschen Sie
sie danach von Ihrer Festplatte und denken Sie auch daran, die
gelöschte Datei aus Ihrem "`Papierkorb"' zu entfernen. Andernfalls
stellt diese Datei ein großes Sicherheitsrisiko für Ihre geheime
\Email{}-Verschlüsselung dar.\\
\clearpage
%TODO: Eventuell outdated
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
%\T\marginOpenpgp
Es kann in einigen Fällen vorkommen, dass Sie ein mit PGP ("`Pretty
Good Privacy"') exportierten Schlüssel nicht importieren können: Sie
geben zwar die richtige Passphrase ein, diese wird aber nicht
akzeptiert. Der Grund ist, dass bestimmte Versionen von PGP intern
einen Algorithmus (IDEA) verwenden, den GnuPG aus rechtlichen Gründen
nicht unterstützen kann.
Um das Problem zu beheben, ändern Sie in PGP einfach die Passphrase
und exportieren/importieren Sie das OpenPGP-Schlüssel erneut. Sollte dies
auch nicht funktionieren, so setzen Sie die Passphrase in PGP auf
"`leer"'; d.h. auf keinen Schutz und exportieren/importieren Sie
wieder -- in diesem Fall müssen Sie unbedingt sicherstellen, dass Sie sowohl
die \textbf{Datei sicher löschen} als auch in PGP und in
Gpg4win danach wieder eine echte \textbf{Passphrase setzen.}
~\\ \textbf{Herzlichen Glückwunsch! Sie haben damit erfolgreich Ihr
Schlüsselpaar exportiert und wieder importiert.}
\clearpage
\section{Paperkey} \label{paperkey}
Mit Paperkey haben Sie die Möglichkeit Ihren privaten Schlüssel nicht nur
auf digitale Medien zu sichern, sondern auf analoge, so können Sie ihn z.B.
in einem Bankschließfach hinterlegen und von diesem analogen Medium auch wieder
herstellen.
\textbf{Wichtig:} Dies ist nur für OpenPGP-Schlüssel möglich.
\subsection{Export mit Paperkey}
Wählen Sie dazu das zu exportierende Schlüsselpaar in der Übersicht aus. Über
\Menu{Datei $\to$ Geheimen Schlüssel drucken...} öffnen Sie den Dialog zum
drucken Ihres Schlüssels. Geben Sie zunächst die Passphrase Ihres
Schlüssels ein.
% TODO: Neuer Screenshot (Cancel)
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-paperkey1_de}
Anschließend öffnet sich ein Druck-Dialog. Über diesen wählen Sie Ihren Drucker
aus und drucken Ihren privaten Schlüssel.
Heften Sie dieses Dokument an einen sicheren Ort zur Verwahrung. Es sollte nicht
in fremde Hände gelangen!
\subsection{Import mit Paperkey}
Um den zuvor exportierten Schlüssel wieder zu importieren, müssen Sie zunächst
sicherstellen, dass Ihr öffentlicher Schlüssel bereits in Kleopatra
vorhanden ist.
Anschließend öffnen Sie ein Textdokument und tippen den Paperkey ab.
Machen Sie einen Rechtsklick auf Ihren öffentlichen Schlüssel und klicken
Sie auf \Menu{Details}. Wählen Sie im nun auftauchenden Schlüsseldialog
den Knopf \Button{Weitere Details...}.
Abschließend tätigen Sie einen Rechtsklick auf einen der angezeigten Einträge.
Nun wählen sie die Option zum importieren aus und navigieren im Dateidialog
zu ihrem abgetippten Paperkey.
\clearpage
\chapter{Konfiguration von Smartcards \label{Smartcards}}
Smartcards oder auch Chipkarten sind kleine Plastikkarten mit Chips auf ihnen,
die einen kleinen Mikroprozessor enthalten. Sie kennen wahrscheinlich bereits
einige Smartcards, wie zum Beispiel Simkarten in Handys oder
Krankenkassenkarten. Zur Verwendung mit OpenPGP oder X.509 gibt es spezielle
Karten, die mit GnuPG genutzt werden können.
Ähnlich wie Krankenkassenkarten oder Simkarten haben die Smartcards, die mit
GnuPG verwendet werden können, bestimmte Eigenschaften. Die Smartcards
fungieren dabei als Speicher für den privaten Schlüssel und führen alle
kryptografischen Operationen auf der Karte selbst durch. Dies kann für
einige Szenarien sehr spannend sein, denn so muss der private Schlüssel
selbst nicht mehr auf dem Computer, mit dem Sie arbeiten, nicht mehr
vorhanden sein.
\section{Nutzung von Smartcards mit OpenPGP
\label{OpenPGPSmartcard}}
Zunächst muss die Frage beantwortet werden, ob eine Sicherheitskopie des
Schlüssel behalten werden soll oder ob der Schlüssel ausschließlich auf
der Smartcard existieren soll. Beide Möglichkeiten haben Ihre Vor- und
Nachteile. Wenn der Schlüssel ausschließlich auf der Karte existieren soll,
kann er nachträglich nicht mehr von der Karte kopiert werden. Dies bringt
zusätzliche Sicherheit, sobald die Karte jedoch defekt ist oder abhanden
kommt, haben Sie keinen Zugriff mehr auf den Schlüssel. Für die meisten
Fälle bietet es sich an, den Schlüssel auf einem Rechner zu erstellen, mit
Hilfe von Paperkey\ref{paperkey} zu exportieren und den erstellten
Schlüssel auf die Smartcard zu übertragen. Im Folgenden werden wir auf
beide Fälle eingehen.
\subsection{Erstellen des OpenPGP-Schlüssels auf der SmartCard}
Schließen Sie das Smartcard-Lesegerät an Ihren Computer an. In Kleopatra
finden Sie unter dem Punkt \Menu{Extras $\to$ SmartCards verwalten} die
Einstellungen für Ihre Smartcard. Stecken Sie die zu benutzende SmartCard
in das Lesegerät und drücken Sie \Button{F5} und warten Sie, dass die
SmartCard erkannt wird.
%TODO: Eventuell Screenshot einfügen - Habe aber keine Leere Karte
Klicken Sie in SmartCard-Übersicht auf die Schaltfläche
\Button{Neue Schlüssel erzeugen}. Anschließend geben Sie die Informationen
für die Schlüsselerzeugung ein.
% screenshot kleopatra user information for smartcard
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-smartCard1_de}
Achten Sie dabei auf das Feld \Menu{Verschlüsselungs Schlüssel extern sichern}.
Dieses Feld sollte aktiv bleiben, damit Sie abschließend eine Sicherheitskopie
Ihres Schlüssels machen können.
Anschließend werden die Schlüssel auf der Karte erzeugt.
% screenshot kleopatra loading card screen
\IncludeImage[width=0.3\textwidth]{sc-kleopatra-smartCard2_de}
Je nach verwendetem SmartCard-Leser kann es während der Erzeugung zu
einer Abfrage des Administrations-PINs der Karte kommen. Dieser liegt der
Kartenanleitung bei.
Während der Schlüsselerzeugung werden Sie gebeten eine Passphrase einzugeben,
hierbei gelten die gleichen Richtlinien wie auch bei der Erstellung des
herkömmlichen Schlüssels.
% screenshot kleopatra passphrase
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-smartCard3_de}
Abschließend können Sie Ihren erstellen Schlüssel sichern. Beachten Sie dabei:
Wenn der Schlüssel nicht gesichert wird und sie den Zugang zu Ihrer SmartCard
verlieren, gibt es keine andere Möglichkeit mehr an Ihr Schlüsselpaar zu
gelangen!
\clearpage
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-smartCard4_de}
\textbf{Herzlichen Glückwunsch!} Sie haben erfolgreich einen Schlüssel auf Ihrer
SmartCard erstellen.
Bei zukünftigen kryptografischen Operationen werden Sie nun immer gebeten Ihre
Smartcard in das Lesegerät einzuführen und ggf. eine PIN oder Passphrase darüber
einzugeben.
%TODO: Option gibt es noch nicht
%\subsection{Kopieren eines vorhandenen Schlüssels auf die SmartCard}
\clearpage
\section{Nutzung von NetKey-Cards mit X.509}
\label{X509Smartcard}
X.509 Smartcards kommen im Unterschied zu OpenPGP Karten üblicherweise
mit vorkonfigurierten Zertifikaten, welche von der Zertifizierungstelle
eingerichtet wurden. Kleopatra unterstützt die NetKey Karten
der Telekom.
Bei der ersten Verwendung einer X.509 Smartcard muss eine PIN für
die jeweiligen Zertifikate gesetzt werden. Zudem müssen die Zertifikate
der Karte im Gpg4win-System registriert werden damit diese für Kryptographie-
Aktionen zur Auswahl stehen.
Legt man eine, unbekannte, unterstützte X.509 Smartcard in einen Kartenleser ein
blinkt das Systemtray Icon von Kleopatra. Nach einem Linksklick öffnet sich der
Einrichtungsdialog um eine anfängliche PIN zu setzen:
\IncludeImage[width=0.8\textwidth]{sc-kleopatra-smartCard_netkey_1_de}
Dabei ist ein Spezialfall bei NetKey Karten das diese zwei Zertifikate
unterstützen. Ein gewöhnliches und ein weiteres für qualifizierte Signaturen.\footnote{
\url{https://de.wikipedia.org/wiki/Signaturgesetz_(Deutschland)}}
Nachdem die anfänglichen PINs eingerichtet sind können die Zertifikate registriert
werden. Dazu kann man erneut auf das blinkende Symbol klicken. Es folgen
einige Diagnoseausgaben. Diese können ignoriert werden. Anschließend sind die
Zertifikate im System registriert.
Alternativ zum Tray Icon können beide Aktionen auch über die SmartCard-Verwaltung
angestoßen werden. Das Menü erreichen Sie über \Menu{Extras $\to$ SmartCards verwalten}.
Ansicht einer nicht initialisierten NetKey Karte:
\IncludeImage[width=0.7\textwidth]{sc-kleopatra-smartCard_netkey_2_de}
Mit ``Zertifikate neu Laden" werden die Zertifikate der SmartCard registriert:
\IncludeImage[width=0.7\textwidth]{sc-kleopatra-smartCard_netkey_4_de}
Ist alles eingerichtet werden die auf der Karte vorhandenen Zertifikate in
der SmartCard-Verwaltung angezeigt.
\IncludeImage[width=0.7\textwidth]{sc-kleopatra-smartCard_netkey_3_de}
\clearpage
\chapter{Systemweite Konfiguration und Vorbelegung für
\protect{S/MIME}}
\label{ch:smime-configuration}
\T\enlargethispage{\baselineskip}
\T\marginSmime
Im Rahmen einer zentralen Softwareverteilung oder in Umgebungen, in denen
viele Anwender auf einem gemeinsamen Rechner arbeiten, ist es sinnvoll, einige
systemweite Vorgaben und Vorbelegungen für Gpg4win einzurichten.
Das betrifft vor allem S/MIME, denn bei vorgegebenen Vertrauensketten
ist es sinnvoll, dass die Anwender die Informationen dazu miteinander
teilen.
Einige typische systemweite Einstellungen sind:
\begin{description}
\item[Vertrauenswürdige Wurzelzertifikate:]
\index{Vertrauenswürdige Wurzelzertifikate}
\index{Wurzelzertifikat}
Um zu vermeiden, dass jeder Anwender selbst die notwendigen
Wurzelzertifikate suchen und installieren sowie deren
Vertrauenswürdigkeit prüfen und beglaubigen muss (vgl.
Abschnitt \ref{sec_allow-mark-trusted}), ist eine systemweite
Vorbelegung der wichtigsten Wurzelzertifikate sinnvoll.
Dazu sollten die Wurzelzertifikate abgelegt -- wie in Abschnitt
\ref{trustedrootcertsdirmngr} beschrieben -- und die
vertrauenswürdigen Wurzelzertifikate definiert werden -- wie in
Abschnitt \ref{sec_systemtrustedrootcerts} beschrieben.
\item[Direkt verfügbare CA-Zertifikate:] \index{CA-Zertifikat}
Um den Anwendern zusätzlich die Mühe zu ersparen, die Zertifikate
der Beglaubigungsinstanzen (Certificate Authorities, CAs) zu
suchen und zu importieren, ist auch hier eine systemweite
Vorbelegung der wichtigsten CA-Zertifikate sinnvoll. Eine
Beschreibung hierzu finden Sie im Abschnitt
\ref{extracertsdirmngr}.
\item[Proxy für Zertifikatsserver- und Sperrlisten-Suche:]
\index{Proxy}
Für die Gültigkeitsinformationen bieten die X.509-Protokolle
verschiedene Möglichkeiten an. Von den meisten
Zertifizierungsstellen werden Sperrlisten\index{Sperrlisten} (auch
CRLs \index{CRLs|see{Sperrlisten}} genannt, nach RFC5280) und
OSCP\index{OSCP} (Online Certificate Status Protocol, nach RFC2560)
unterstützt. OSCP bringt zeitnähere Informationen, hat aber den Nachteil,
dass Netzverkehr bis zum OSCP-Dienst erfolgt und daran auch
gut erkannt werden kann, mit welchen Partnern gerade Nachrichten
ausgetauscht werden. GnuPG kann mit beiden Möglichkeiten umgehen, es
ist die Komponente "`DirMngr"' \index{Directory Manager|see{DirMngr}}
\index{DirMngr}, welche als systemweiter Dienst läuft.
Es können interne Netzwerke keine direkten Verbindungen der
einzelnen Rechner nach außen zulassen (zentrale Firewall), sondern
einen Stellvertreterdienst (einen sogenannten "`Proxy"') vorsehen.
Der DirMngr kann ebenfalls mit HTTP- und LDAP-Proxies
\index{LDAP} \index{HTTP} umgehen.
S/MIME-Zertifikate enthalten meist die Angabe, wo Ihre Sperrliste
extern abgeholt werden kann. Oft kommt dabei HTTP vor, aber auch
Verzeichnisdienste über LDAP\index{LDAP}. Anders als bei OpenPGP kann sich der
Klient nicht aussuchen, wo er die Sperrliste abholen kann, er muss den
verfügbaren Angaben folgen. Da manche Zertifikate ausschließlich
Sperrlisten per LDAP zur Verfügung stellen, ist es erforderlich
sowohl HTTP- als auch LDAP-Abfragen nach außen zuzulassen. Sofern
möglich, kann ein Stellvertreterdienst auf Inhaltsebene sicherstellen,
dass X.509-Sperrlisten ausschließlich mit korrekten Informationen
übermittelt werden.
\clearpage
Ist in Ihrem Netzwerk für die bei OpenPGP bzw. S/MIME wichtigen
HTTP- und HKP- oder LDAP-Abfragen ein Proxy nötig, so führen Sie
folgende Schritte durch:
\begin{enumerate}
\item Stellen Sie X.509-Zertifikatsserver-Suche auf einen
Proxy ein, wie in Abschnitt~\ref{x509CertificateServers}
beschrieben.
\item Stellen Sie Sperrlisten-Suche auf einen Proxy ein,
wie ebenfalls in Abschnitt~\ref{x509CertificateServers}
beschrieben.
\item Starten Sie den DirMngr neu (siehe
Abschnitt~\ref{dirmngr-restart}).
\end{enumerate}
\end{description}
\clearpage
\chapter{Bekannte Probleme und Abhilfen}
\index{Problembehebungen}
\section{GpgOL-Menüs und -Dialoge nicht mehr in Outlook zu finden}
\index{Outlook}
Es kann vorkommen, dass die von GpgOL zu Outlook hinzugefügten Menüs
und Dialoge nicht mehr zu finden sind.
Das kann dann passieren, wenn ein technisches Problem auftrat und
Outlook aus diesem Grund die GpgOL-Komponente deaktiviert hat.
Reaktivieren Sie GpgOL über das Outlook-Menü:\\ Outlook2007:
\Menu{?$\rightarrow$Deaktivierte Elemente}\\ Outlook2003:
\Menu{?$\rightarrow$Info$\rightarrow$Deaktivierte Elemente}
Um GpgOL manuell zu (de-)aktivieren, nutzen Sie den Add-In-Manager von
Outlook:
\begin{itemize}
\item \textbf{Outlook2003:}
\Menu{Extras$\rightarrow$Optionen$\rightarrow$Weitere$\rightarrow$Erweiterte
Optionen... $\rightarrow$ Add-In-Manager...}
\item \textbf{Outlook2007:}
\Menu{Extras$\rightarrow$Vertrauensstellungscenter$\rightarrow$Add-Ins}
-- dann unter \Menu{Verwalten} die \Menu{Exchange-Clienterweiterungen} auswählen
und auf \Button{Gehe zu...} klicken.
\end{itemize}
\section{GpgOL-Schaltflächen sind in Outlook2003 nicht in der Symbolleiste}
Wenn bereits viele Schaltflächen in der Symbolleiste des
Nachrichtenfensters vorhanden sind, so stellt Outlook2003 die
Signieren-/Verschlüsseln-Icons von GpgOL nicht unbedingt sofort
sichtbar dar.
Sie können diese Schaltflächen aber anzeigen lassen, indem Sie in der
Symbolleiste auf das kleine Icon mit dem Pfeil nach unten klicken
(\Menu{Optionen für Symbolleiste}): Sie erhalten eine Übersicht aller
nicht angezeigten Schaltflächen. Ein Klick auf einen dieser Einträge
verschiebt ihn in den sichtbaren Teil der Symbolleiste.
\section{GpgOL-Schaltflächen sind in Outlook2007 unter "`Add-Ins"'}
Mit Outlook2007 wurde die sogenannte "`Ribbon"'-Oberfläche eingeführt.
Diese Multifunktionsleis\-te im Outlook-Nachrichtenfenster besitzt
verschiedene Registerkarten. Die GpgOL-Schaltflächen (für
Verschlüsseln, Signieren etc.) sind unter der Registerkarte
"`Add-Ins"' eingeordnet; so wie alle Schaltflächen von Erweiterungen
durch Outlook dort angelegt werden. Eine Integration der
GpgOL-Schalt\-flächen z.B. unter "`Nachrichten"' ist nicht möglich.
Sie können Ihre \Menu{Symbolleiste für den Schnellzugriff} anpassen
und dort die Symbolleistenbefehle der Add-In-Registerkarte aufnehmen.
\section{Fehler beim Start von GpgOL}
Haben Sie Gpg4win (und damit die Programmkomponente GpgOL) erst auf einem
Laufwerk installiert, anschließend wieder deinstalliert und auf
einem anderen Laufwerk erneut installiert? Dann kann es sein, dass
Outlook weiterhin den GpgOL-Pfad auf dem ersten (alten) Laufwerk
sucht.
Dabei wird beim Start von Outlook die Programmerweiterung GpgOL nicht
mehr gestartet und folgende Fehlermeldung erscheint:
\Menu{Die Erweiterung '\Filename{}' konnte
nicht installiert oder geladen werden. Das Problem kann u.U. durch das
Benutzen von 'Erkennen und Reparieren' in der Hilfe behoben werden.}
Lösen können Sie dieses Problem, in dem Sie den Outlook-internen
(zwischengespeicherten) Programmerweiterungs-Pfad
zurücksetzen. Löschen Sie dazu bitte folgende Datei:\\
\Filename{\%APPDATA\%\back{}Lokale
Einstellungen\back{}Anwendungsdaten\back{}Microsoft\back{}\T\\
Outlook\back{}extend.dat}
\textbf{Dabei sollte Outlook nicht laufen.} Anschließend starten Sie
Outlook erneut. Outlook mit GpgOL sollten nun problemlos funktionieren.
\section{Installation von Gpg4win auf einem virtuellen Laufwerk}
Beachten Sie bitte, dass eine Installation von Gpg4win auf einem
(mit dem Befehl \Filename{subst} simulierten) \textbf{virtuellen
Laufwerk} nicht möglich ist. Diese virtuellen Laufwerke sind nur lokal
für den aktuellen Benutzer nutzbar. Systemdienste (wie der DirMngr)
sehen diese Laufwerke nicht. Der Installationspfad ist damit ungültig
-- die Installation stoppt mit einem Fehler in der Art \linebreak
\Filename{error:StartService: ec=3}. Installieren Sie bitte Gpg4win
auf einem systemweit verfügbaren Laufwerk.
\section{GpgOL überprüft keine InlinePGP"=\Email{}s von "`CryptoEx"'}
\index{CryptoEx}
Um signierte bzw. verschlüsselte InlinePGP-\Email{}s zu prüfen bzw. zu
entschlüsseln, die von der Outlook-Programmerweiterung "`CryptoEx"'
versendet wurden, muss in den GpgOL-Optionen die
S/MIME-Unterstützung eingeschaltet sein.
Versichern Sie sich, dass die folgende Option in Outlook unter
\Menu{Extras$\rightarrow$Optionen$\rightarrow$GpgOL} aktiv ist:\\
\Menu{S/MIME Unterstützung einschalten}.
\clearpage
\section{Keine S/MIME-Operationen möglich (Systemdienst
"`DirMngr"' läuft nicht)}
\label{dirmngr-restart}
\index{DirMngr}
\T\marginSmime
Der "`Directory Manager"' (DirMngr) ist ein durch Gpg4win installierter
%TODO: Oder Schlüsselserver? Kontext.
Dienst, der die Zugriffe auf Zertifikatsserver verwaltet. Eine Aufgabe
des DirMngr ist das Laden von Sperrlisten (CRLs) für
S/MIME-Zertifikate.
Es kann vorkommen, dass die S/MIME-Operationen (Signaturerstellung und
-prüfung, Ver- oder Entschlüsselung) nicht durchgeführt werden können,
weil DirMngr nicht verfügbar ist. In der Voreinstellung von Gpg4win
ist es zwingend notwendig, dass DirMngr die Sperrlisten prüft --
geschieht das nicht, darf die jeweilige Operation nicht ausgeführt
werden, da möglicherweise ein kompromittiertes Zertifikat genutzt
wird.
Abhilfe schafft ein Neustart des DirMngr durch den
Systemadministrator. Dies erfolgt über
\Menu{Systemsteuerung$\rightarrow$Verwaltung$\rightarrow$Dienste}. In
der Liste finden Sie DirMngr -- über das Kontextmenü kann der Dienst
neu gestartet werden.
%\clearpage
\section{Keine S/MIME-Operationen möglich (CRLs nicht verfügbar)}
\label{smime-problem-crl}
\T\marginSmime
Es kann vorkommen, dass die S/MIME-Operationen (Signaturerstellung und
-prüfung, Ver- oder Entschlüsselung) nicht durchgeführt werden können, weil
CRLs nicht verfügbar sind. In der Voreinstellung von
\T\ifthenelse{\boolean{DIN-A5}}{\linebreak}{}
Gpg4win ist es zwingend notwendig, dass Sperrlisten\index{Sperrlisten} geprüft werden
-- geschieht das nicht, darf die jeweilige Operation nicht
ausgeführt werden, da möglicherweise ein kompromittiertes Zertifikat
genutzt wird.
Abhilfe schafft das Einrichten eines Stellvertreterdienstes
("`Proxies"') für das Abholen der Sperrlisten (vgl.
Abschnitt~\ref{x509CertificateServers}).
Im Notfall (oder zum Testen) lassen sich die CRL-Prüfungen auch
abschalten. Öffnen Sie dafür das Kleopatra-Menü
\Menu{Einstellungen$\rightarrow$Kleopatra einrichten} und anschließend
die Gruppe \Menu{S/MIME-Prüfung}. Aktivieren Sie hier die Option
\Menu{Nie Sperrlisten zu Rate ziehen}.\\
\textbf{Achtung:} Machen Sie sich bewusst, dass in diesem Fall ein
wesentlich höheres Risiko besteht, ein kompromittiertes Zertifikat zu
nutzen. Das Abschalten der Sperrlisten-Prüfung ist niemals einer Alternative
zur Einrichtung eines Proxies.
\T\ifthenelse{\boolean{DIN-A5}}{}{\clearpage}
\section{Keine S/MIME-Operationen möglich (Wurzelzertifikat
nicht vertrauenswürdig)}
\label{smime-problem-rootcertificate}
\index{Wurzelzertifikate}
\T\marginSmime
Für eine vollständige Prüfung von X.509-Zertifikatsketten
\index{Zertifikatskette} muss dem jeweiligen Wurzelzertifikat vertraut
werden.
Andernfalls kann keine S/MIME-Operationen (Signaturerstellung und
-prüfung, Ver- oder Entschlüsselung) durchgeführt werden.
Um einem Wurzelzertifikat das Vertrauen auszusprechen, haben Sie zwei
Möglichkeiten:
\begin{itemize}
\item Den Fingerabdruck des entsprechenden Wurzelzertifikats
in eine \textit{systemweite} Konfigurationsdatei schreiben.
Damit ist die Wurzel für alle Nutzer vertrauenswürdig.
Sie müssen hierfür Windows-Administratorrechte besitzen.
Eine genaue Erläuterung finden Sie im
Abschnitt~\ref{sec_systemtrustedrootcerts}.
\item Das Wurzelzertifikat durch den Benutzer setzen (keine
systemweite Anpassung nötig).
Dazu müssen Sie einmalig die Option
\Menu{Erlauben, Wurzelzertifikate als vertrauenswürdig zu
markieren} in Kleopatras Einstellung aktivieren.
Anschließend werden Sie nach jedem Importieren neuer
Wurzelzertifikate gefragt, ob Sie diesem vertrauen wollen.
Genaueres dazu im Abschnitt~\ref{sec_allow-mark-trusted}.
\end{itemize}
\clearpage
\chapter{Dateien und Einstellungen von Gpg4win}
\section{Persönliche Einstellungen der Anwender}
Die persönlichen Einstellungen für jeden Anwender befinden sich im
Dateiordner:\\ \Filename{\%APPDATA\%\back{}gnupg}\\
Oft entspricht das dem Dateiordner: \\
\Filename{C:\back{}Dokumente und
Einstellungen\back{}\back{}Anwendungsdaten\back{}%
\T\ifthenelse{\boolean{DIN-A5}}{\\}{}%
gnupg\back{}}
Beachten Sie, dass es sich um einen versteckten Dateiordner handelt.
Um ihn sichtbar zu schalten, müssen Sie im Explorer über das Menü
\Menu{Extras$\rightarrow$Ordneroptionen} im Reiter \Menu{Ansicht} die
Option \Menu{Alle Dateien und Ordner anzeigen} unter der Gruppe
\Menu{Versteckte Dateien und Ordner} aktivieren.
In diesem Dateiordner befinden sich sämtliche persönlichen
GnuPG-Daten, also die privaten Schlüssel, Schlüsselpaare,
Vertrauensstellungen und Konfigurationen. Bei einer Deinstallation von
Gpg4win wird dieser Ordner \textit{nicht} gelöscht. Denken Sie daran,
regelmäßig Sicherheitskopien dieses Ordners anzulegen.
\section{Zwischengespeicherte Sperrlisten}
\index{Sperrlisten}
\T\marginSmime
Der systemweite Dienst DirMngr (Directory Manager) \index{DirMngr}
prüft unter anderem, ob ein X.509-Zertifikat gesperrt ist und daher
nicht verwendet werden darf. Dafür werden Sperrlisten (CRLs) von den
Ausgabestellen der Zertifikate (CAs) abgeholt und für die Dauer ihrer
Gültigkeit zwischengespeichert.
Abgelegt werden diese Sperrlisten unter:\newline
\Filename{C:\back{}Dokumente und
Einstellungen\back{}LocalService\back{}Lokale\T\newline
Einstellungen\back{}Anwendungsdaten\back{}GNU\back{}cache\back{}dirmngr\back{}crls.d\back{}}
Hierbei handelt es sich um \textit{geschützte} Dateien, die
standardmäßig vom Explorer nicht angezeigt werden. Sollten Sie dennoch
die Anzeige dieser Dateien wünschen, deaktivieren Sie die Option
\Menu{Geschützte Systemdateien ausblenden} in den
\Menu{Ansicht}-Einstellungen des Windows-Explorers.
In diesem Dateiordner sollten keine Änderungen vorgenommen werden.
\T\ifthenelse{\boolean{DIN-A5}}{}{\clearpage}
\section{Vertrauenswürdige Wurzelzertifikate von DirMngr}
\label{trustedrootcertsdirmngr}
\index{DirMngr}
\index{Vertrauenswürdige Wurzelzertifikate}
\index{Wurzelzertifikate}
\T\marginSmime
Für eine vollständige Prüfung von X.509-Zertifikaten muss den
Wurzelzertifikaten vertraut werden, mit deren Hilfe die Sperrlisten
signiert wurden.
Die Wurzelzertifikate, denen der DirMngr systemweit bei den Prüfungen vertrauen
soll, werden im folgenden Dateiordner abgelegt:
\Filename{C:\back{}Dokumente und Einstellungen\back{}All
Users\back{}Anwendungsdaten\back{}\T\newline
GNU\back{}etc\back{}dirmngr\back{}trusted-certs\back{}}
\W~\\\\
\textbf{Wichtig:} Die entsprechenden Wurzelzertifikate müssen als
Dateien im Dateiformat DER mit der Dateinamens"=Erweiterung
\Filename{.crt} oder \Filename{.der} im o.g. Dateiordner vorliegen.
Der DirMngr läuft als systemweiter Dienst und muss nach Änderungen im
"`trusted-certs"'-Dateiordner neu gestartet werden. Anschließend sind
die dort abgelegten Wurzelzertifikate für alle Anwender als
\textbf{vertrauenswürdig} gesetzt.
Beachten Sie auch Abschnitt \ref{sec_systemtrustedrootcerts}, um den
Wurzelzertifikaten vollständig (systemweit) zu vertrauen.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\section{Weitere Zertifikate von DirMngr}
\label{extracertsdirmngr}
\T\marginSmime
Da vor einer Krypto-Operation die X.509-Zertifikatskette geprüft
werden soll, muss somit auch das jeweilige Zertifikat der
Beglaubigungsinstanz ("`Certificate Authority"', CA) geprüft werden.
Für eine direkte Verfügbarkeit können
CA-Zertifikate\index{CA-Zertifikat} in diesem
(systemweiten) Dateiordner abgelegt werden:\newline
\Filename{C:\back{}Dokumente und Einstellungen\back{}All
Users\back{}Anwendungsdaten\back{}\T\newline
GNU\back{}lib\back{}dirmngr\back{}extra-certs\back{}}
Zertifikate, die nicht hier oder bei den Anwendern vorliegen, müssen
automatisch von X.509-Zer\-ti\-fi\-kats\-servern geladen werden.\\
Diese CA-Zertifikate können aber auch immer manuell vom Anwender
importiert werden.
Es ist sinnvoll, im Rahmen von systemweiten Vorgaben hier die
wichtigsten CA-Zertifikate abzulegen.
\clearpage
\section{Systemweite Konfiguration zur Verwendung externer
X.509-Zertifikatsserver \label{x509CertificateServers}}
\T\marginSmime
GnuPG kann so konfiguriert werden, dass bei Bedarf fehlende
X.509-Zertifikate oder Sperrlisten auf externen
X.509-Zertifikatsservern gesucht werden (vgl. auch
Kapitel~\ref{ch:smime-configuration}).\\
Für die \textbf{X.509-Zertifikatssuche} verwendet der Systemdienst DirMngr eine Liste
von Zertifikatsservern, die in der Datei\newline
\Filename{C:\back{}Dokumente und Einstellungen\back{}All
Users\back{}Anwendungsdaten\back{}\T\\
GNU\back{}etc\back{}dirmngr\back{}ldapservers.conf}\\
angegeben werden können. Diese Zertifikatsserver werden für alle
Nutzer (systemweit) verwendet. Jeder Nutzer kann darüber hinaus noch
weitere, benutzerspezifische Zertifikatsserver für die
Zertifikatssuche einrichten -- z.B. direkt über Kleopatra (vgl.
Kapitel~\ref{configureCertificateServer}).
Die genaue Syntax für die Zertifikatsserver-Einträge in der o.g.
Konfigurationsdatei lautet:
\Filename{HOSTNAME:PORT:USERNAME:PASSWORD:BASE\_DN}
Sind im internen Netz die Zugänge zu externen X.509-Zertifikatsservern
mittels Firewall gesperrt, so kann man in der
\Filename{ldapservers.conf} einen Proxy-Dienst\index{Proxy} für
die entsprechende Durchleitung der Zertifikatssuche konfigurieren, wie
folgende Zeile im Beispiel illustriert:
\Filename{proxy.mydomain.example:389:::O=myorg,C=de}\\
Für die Suche von \textbf{Sperrlisten}\index{Sperrlisten} (CRLs) gibt
es im gleichen Verzeichnis eine Konfigurationsdatei von DirMngr:
\Filename{C:\back{}Dokumente und Einstellungen\back{}All
Users\back{}Anwendungsdaten\back{}\T\\
GNU\back{}etc\back{}dirmngr\back{}dirmngr.conf}
Beachten Sie, dass nur Administratoren diese Datei schreiben dürfen.
Folgende Proxy-Optionen können Sie nach Bedarf in dieser
Konfigurationsdatei ergänzen (jede Option in einer Zeile):
%TODO: Gilt das auch für Schlüsselserver?
\begin{itemize}
\item \Filename{http-proxy HOST[:PORT]}
\index{HTTP}
Diese Option verwendet \Filename{HOST} und
\Filename{PORT} für den Zugang zum Zertifikatsserver. Die
Umgebungsvariable \Filename{http\_proxy} wird bei Verwendung
dieser Option überschrieben.
Ein Beispiel:\\
\Filename{http-proxy http://proxy.mydomain.example:8080}
\item \Filename{ldap-proxy HOST[:PORT]}
\index{LDAP}
Diese Option verwendet \Filename{HOST} und
\Filename{PORT} für den Zugang zum Zertifikatsserver.
Ist keine Portnummer angegeben, wird der Standard LDAP-Port
389 benutzt.
Diese Option überschreibt die im Zertifikat enthaltene
LDAP-URL bzw. nutzt \Filename{HOST} und \Filename{PORT}, wenn
keine LDAP-URL angegeben ist.
\item \Filename{only-ldap-proxy}
Diese Option sorgt dafür, dass DirMngr
niemals irgendetwas anderes nutzt als den unter
\Filename{ldap-proxy} konfigurierten Proxy. Denn normalerweise
versucht DirMngr andere konfigurierte Zertifikatsserver zu
verwenden, wenn die Verbindung über \Filename{ldap-proxy} fehl schlägt.
\end{itemize}
\clearpage
\section{Systemweite vertrauenswürdige Wurzelzertifikate}
\label{sec_systemtrustedrootcerts}
\index{Wurzelzertifikate}
\T\marginSmime
Die systemweit als vertrauenswürdig vorbelegten Wurzelzertifikate
werden definiert in der Datei\\ \Filename{C:\back{}Dokumente und
Einstellungen\back{}All Users\back{}Anwendungsdaten\T\\
\back{}GNU\back{}etc\back{}gnupg\back{}trustlist.txt} \index{trustlist.txt}
Um ein Wurzelzertifikat als vertrauenswürdig zu markieren, muss der
entsprechende Fingerabdruck des Zertifikats, gefolgt von einem
Leerzeichen und einem großen \Filename{S}, in die o.g. Datei
eingetragen werden. Ein Zertifikat wird explizit als nicht
vertrauenswürdig markiert, wenn die Zeile mit dem Präfix
"`\Filename{!}"' beginnt. Sie können hier auch mehrere
Wurzelzertifikate eintragen. Zu beachten ist dann, dass jeder
Fingerabdruck in einer neuen Zeile steht. Eine Zeile, die mit einem
\texttt{\#} beginnt wird als Kommentar behandelt und ignoriert.
Wichtig: Abschließend (am Ende der Datei) muss eine Leerzeile
erfolgen.
Ein Beispiel:
\T\ifthenelse{\boolean{DIN-A5}}{\scriptsize}{}
\begin{verbatim}
# CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
A6935DD34EF3087973C706FC311AA2CCF733765B S
# CN=PCA-1-Verwaltung-02/O=PKI-1-Verwaltung/C=DE
DC:BD:69:25:48:BD:BB:7E:31:6E:BB:80:D3:00:80:35:D4:F8:A6:CD S
# CN=Root-CA/O=Schlapphuete/L=Pullach/C=DE
!14:56:98:D3:FE:9C:CA:5A:31:6E:BC:81:D3:11:4E:00:90:A3:44:C2 S
\end{verbatim}
\T\ifthenelse{\boolean{DIN-A5}}{\normalsize}{}
Es kann in einigen Fällen sinnvoll sein, die Kriterien bei der
Überprüfung der Wurzelzertifikate zu verringern.
Sie können dazu hinter \Filename{S} eine weitere Flagge \Filename{relax}
setzen: \Filename{ S relax}
\textbf{Wichtig:} Die Verwendung von \Filename{relax} setzt die
Sicherheit herab, muss daher individuell entschieden werden und sollte nur bei Problemen
verwendet werden.
Genauere Details finden Sie in der aktuellen GnuPG-Dokumentation
(Punkt "`trustlist.txt"'):\\
\T\ifthenelse{\boolean{DIN-A5}}{
\T\scriptsize
\T\texttt{http://www.gnupg.org/documentation/manuals/gnupg/Agent-Configuration.html}
\T\normalsize
\T}
\T{
\uniurl{http://www.gnupg.org/documentation/manuals/gnupg/Agent-Configuration.html}
\T}
Die genaue Syntax für die Einträge in die trustlist.txt lautet also:\\
\Filename{[!] S [relax]}\\
wobei \Filename{!} und \Filename{relax} optional sind.
Anstelle der Flagge \Filename{S} sind noch die Werte \Filename{P} und
\Filename{*} vorgesehen, die für zukünftigen Gebrauch reserviert sind.
\textbf{Wichtig:} Damit Wurzelzertifikate in Kleopatra vollständig als
vertrauenswürdig markiert werden (Zertifikat wird blau hinterlegt),
müssen die Wurzelzertifikate zusätzlich für den DirMngr abgelegt
werden, wie unter Abschnitt \ref{trustedrootcertsdirmngr} beschrieben.
\clearpage
\section{Vertrauenswürdigkeit der Wurzelzertifikate durch Benutzer markieren}
\label{sec_allow-mark-trusted}
\index{Vertrauenswürdige Wurzelzertifikate}
\index{Wurzelzertifikate}
\T\marginSmime
Wurzelzertifikate können auch jeweils von den einzelnen Benutzern als
vertrauenswürdig markiert werden -- eine systemweite Konfiguration
(siehe Abschnitt \ref{trustedrootcertsdirmngr} und
\ref{sec_systemtrustedrootcerts}) ist dann nicht erforderlich.
Öffnen Sie das Kleopatra-Menü
\Menu{Einstellungen$\rightarrow$Kleopatra einrichten} und anschließend
die Gruppe \Menu{S/MIME-Prüfung}. Aktivieren Sie hier die Option
\Menu{Erlauben, Wurzelzertifikate als vertrauenswürdig zu markieren}.
Dadurch werden Sie beim Gebrauch eines bisher nicht als vertrauenswürdig
eingestuften Wurzelzertifikats gefragt, ob Sie es nun als
vertrauenswürdig einstufen wollen. Beachten Sie, dass der gpg-agent
ggf. einmalig neu gestartet werden muss, bevor die Änderung wirksam
wird (z.B. durch ausloggen und wieder einloggen).
Die von Ihnen als vertrauenswürdig (oder wahlweise explizit als nicht
vertrauenswürdig) gekennzeichneten Wurzelzertifikate werden
automatisch in folgender Datei gespeichert:\\
\Filename{C:\back{}Dokumente und
Einstellungen\back{}\back{}\T\\
Anwendungsdaten\back{}gnupg\back{}trustlist.txt}
\index{trustlist.txt}
Für die trustlist.txt gilt die gleiche Syntax wie im
Abschnitt~\ref{sec_systemtrustedrootcerts} beschrieben.
\clearpage
\chapter{Probleme in den Gpg4win-Programmen aufspüren (Logdateien)}
\index{Logdatei}
Es kann vorkommen, dass eine der Gpg4win-Programmkomponenten nicht wie
erwartet zu funktionieren scheint.
Nicht selten ist dabei eine Besonderheit der Arbeitsumgebung
verantwortlich, sodass die Softwareentwickler von Gpg4win das
beobachtete Problem gar nicht selbst nachvollziehen können.
Um die Softwareentwickler bei der Problemsuche zu unterstützen oder
auch, damit der Anwender selbst einmal in die technischen
Detail-Abläufe hineinschnuppern kann, bieten die Gpg4win-Programme
Unterstützung an.
In der Regel muss diese Unterstützung aber erst einmal eingeschaltet
werden. Eine der wichtigsten Hilfsmittel sind Logdateien: Dort werden
detaillierte Diagnose-Informationen zu den internen technischen
Vorgängen festgehalten. Ein Softwareentwickler kann ein Problem und
die mögliche Lösung oft leicht anhand dieser Logdatei erkennen, auch
wenn das Problem auf den ersten Blick unverständlich wirken mag.
Wenn Sie einen Fehler-Bericht an die Softwareentwickler senden wollen,
so finden Sie auf dieser Web-Seite einige Hinweise:
\uniurl{http://www.gpg4win.de/reporting-bugs-de.html}
Logdateien -- unter o.g. URL als ,,Debug-Informationen'' bezeichnet --
bieten oft wertvolle Hinweise und sollten daher einem Fehlerbericht
beigefügt werden.
In diesem Kapitel wird beschrieben, wie Sie
Programmablauf-Informationen (darum handelt es sich letztlich bei den
Logdateien) zu den einzelnen Gpg4win-Programmen einschalten können.
\clearpage
\section{Logdateien von Kleopatra einschalten}
\index{Logdatei!von Kleopatra}
Die Logdaten von Kleopatra bestehen aus vielen Dateien, daher besteht
der erste Schritt darin, zunächst einen Dateiordner für die Logdateien
zu erstellen. Denkbar ist z.B.:
\Filename{C:\back{}TEMP\back{}kleologdir}
Bitte beachten Sie hierbei, dass es hier um Einstellungen des
Anwenders, nicht des Systemadministrators geht. Die Einstellungen
müssen also für jeden Anwender, der Logdaten von Kleopatra erstellen möchte,
separat vorgenommen werden und es muss darauf geachtet werden, dass
unterschiedliche \Filename{kleologdir}-Dateiordner verwendet werden.
Der Pfad zu diesem Ordner muss nun in der neuen Umgebungsvariablen
\Filename{KLEOPATRA\_LOGDIR} vermerkt werden:
Öffnen Sie dazu die Systemsteuerung, wählen Sie dort \Menu{System}, dann
den Reiter \Menu{Erweitert} und schließlich den Knopf
\Button{Umgebungsvariablen}.
Fügen Sie dort folgende neue \textbf{Benutzervariable} ein:
\begin{quote}
Name der Variable: \Filename{KLEOPATRA\_LOGDIR}
Wert der Variable: ~~\Filename{C:\back{}TEMP\back{}kleologdir}
\end{quote}
Beachten Sie, dass der angegebene Dateiordner existieren muss. Sie
können ihn auch nachträglich erstellen.
Um die Logfunktion wirksam werden zu lassen, muss Kleopatra beendet
und neu gestartet werden und der Dateiordner der Logdaten existieren
sowie für Kleopatra beschreibbar sein.
Während Kleopatra verwendet wird, zeichnet es Ablauf-Informationen in
der Datei \Filename{kleo-log} (Haupt-Logdatei) auf sowie
möglicherweise viele Dateien mit einem Namen nach dem Schema:\\
\Filename{pipe-input--}
Möglicherweise reichen diese Informationen einem Softwareentwickler
nicht, um den Fehler zu erkennen. Er wird Sie dann bitten, eine
weitere Umgebungsvariable anzulegen -- so wie Sie es schon oben getan
haben:
\begin{quote}
Name der Variable: \Filename{KLEOPATRA\_LOGOPTIONS}
Wert der Variable: ~~\Filename{all}
\end{quote}
Möglicherweise werden die Logdateien sehr schnell sehr groß. Sie
sollten diese Logdaten\--Auf\-zeich\-nung nur einschalten, um ein
bestimmtes Fehlverhalten zu provozieren und dabei aufzuzeichnen.
Anschließend schalten Sie die Aufzeichnung wieder aus, indem Sie die
Umgebungsvariable löschen oder ihren Namen leicht variieren (für
späteres leichtes Reaktivieren). Vergessen Sie nicht, die Logdateien
zu löschen oder zu verschieben, gerade wenn sie sehr umfangreich geworden sind oder es sich
um sehr viele Dateien handelt. Bevor Sie eine neue Aufzeichnung
beginnen, ist es ebenfalls sinnvoll, die Logdateien zu entfernen.
\clearpage
\section{Logdatei von GpgOL einschalten}
\index{Logdatei!von GpgOL}
Um die Logdatei von GpgOL einzuschalten, müssen Sie einen
"`Registry-Editor"' starten. Geben Sie dazu das Kommando
\Filename{regedit} unter \Menu{Start$\rightarrow$Ausführen} oder in
einer Eingabeaufforderung ein.
Wählen Sie nun aus der Baumstruktur auf der linken Seite den folgenden
GpgOL-Schlüssel aus:\\
\Filename{HKEY\_CURRENT\_USER\back{}Software\back{}GNU\back{}GpgOL}
Auf der rechten Seite sehen Sie nun eine Liste von Einträgen
(sogenannte Zeichenfolgen) mit teilweise bereits vordefinierten
Werten. Diese Einträge werden nach dem ersten Start von Outlook mit
GpgOL angelegt.
Zum Aktivieren der GpgOL-Logdatei führen Sie einen Doppelklick auf den
Eintrag \Filename{enableDebug} aus und setzen Sie dessen Wert auf
\Filename{1}.
Als Wert für \Filename{logFile} geben Sie nun einen Namen für die Datei an,
in die die Logdatei geschrieben werden soll, z.B.:
\Filename{C:\back{}TEMP\back{}gpgol.log}
Starten Sie Outlook neu, um die Aufzeichnung zu starten.
Bedenken Sie, dass diese Datei sehr umfangreich werden kann. Stellen
Sie \Filename{enableDebug} auf \Filename{0}, sobald Sie die
GpgOL-Logdatenaufzeichnung nicht mehr benötigen.
Vergessen Sie auch hier nicht, die Logdatei zu löschen oder zu
verschieben, gerade wenn sie umfangreich geworden ist. Bevor Sie eine
neue Aufzeichnung beginnen, ist es ebenfalls sinnvoll die Logdatei zu
entfernen.
Fortgeschrittene technische Informationen zu GpgOL -- wie z.B. weitere
mögliche Werte für \Filename{enableDebug} -- finden Sie im technischen
(englischsprachigen) Handbuch von GpgOL. Es befindet sich in Ihrem
Gpg4win-Installations\-verzeichnis, in der Regel:\newline
\Filename{C:\back{}Programme\back{}GNU\back{}GnuPG\back{}share\back{}doc\back{}gpgol\back{}gpgol.pdf}
\clearpage
\section{Logdatei von DirMngr einschalten}
\index{DirMngr}
\index{Logdatei!von DirMngr}
Bei DirMngr handelt es sich um einen systemweiten Dienst und daher ist
das Einschalten der Logdatei nur mit Administratorrechten möglich.
Um die Logdatei einzuschalten, öffnen Sie zunächst folgende
Konfigurationsdatei:\\ \Filename{C:\back{}Dokumente und
Einstellungen\back{}All Users\back{}Anwendungsdaten\back{}\T\\
GNU\back{}etc\back{}dirmngr\back{}dirmngr.conf}
Fügen Sie die folgenden zwei Zeilen in die Konfigurationsdatei ein
(den Pfad zur Logdatei können Sie natürlich anpassen):
\begin{quote}
\Filename{debug-all} \\
\Filename{log-file C:\back{}TEMP\back{}dirmngr.log}
\end{quote}
Starten Sie anschließend den Dienst DirMngr unter
\Menu{Systemsteuerung$\rightarrow$Ver\-waltung$\rightarrow$Dienste} neu,
sodass die geänderte Konfigurationsdatei neu eingelesen wird und die
vorgenommenen Einstellungen wirksam werden.
Kommentieren Sie Ihre Anpassung in o.g. Konfigurationsdatei aus (also
\texttt{\#~debug-all}), sobald Sie die DirMngr-Logdtenaufzeichnung
nicht mehr benötigen.
Vergessen Sie auch hier nicht, die Logdatei zu löschen oder zu
verschieben, gerade wenn sie umfangreich geworden ist. Bevor Sie eine
neue Aufzeichnung beginnen, ist es ebenfalls sinnvoll die Logdatei zu
entfernen.
\clearpage
\section{Logdatei von GnuPG einschalten}
\index{Logdatei!von GnuPG}
Für folgende GnuPG-Komponenten können Sie jeweils einzeln das Anlegen
einer Logdatei einschalten:
\begin{itemize}
\item GPG Agent
\item GPG für S/MIME
\item GPG für OpenPGP
\item Smartcard Daemon
\end{itemize}
Für diese Programme können Anwender persönliche Konfigurationen
vornehmen. Dazu gehört auch das Einstellen einer Protokolldatei für
den Programmablauf.
Eingeschaltet wird die jeweilige Logdatei im GnuPG Backend --
erreichbar über das Kleopatra-Menü \Menu{Einstellungen$\rightarrow$Kleopatra
einrichten...$\rightarrow$GnuPG-System}. Für jedes der o.g. vier
Programme existieren in diesem Konfigurationsfenster zwei
Debug-Optionen:
\begin{itemize}
\item Option \Menu{Setze die Debug-Stufe auf}\\ Hier definieren
Sie die Ausführlichkeit der aufzuzeichnenden Informationen.
Die Debug-Stufe \Menu{4 - Guru} ist die höchste Stufe und erzeugt
dementsprechend große Dateien. Schalten Sie daher die
Logdateien wieder aus (Debug-Stufe \Menu{0 - Keine}), wenn Sie
diese nicht mehr benötigen.
\item Option \Menu{Schreibe im Servermodus Logs auf DATEI}\\ Geben
Sie hier die Logdatei an, in der alle Debug-Informationen
gespeichert werden sollen, z.B.:
\Filename{C:\back{}TEMP\back{}gpg-agent.log}
\end{itemize}
Starten Sie anschließend Kleopatra neu (ggf. müssen Sie zuvor einen
noch laufenden gpg-agent über den Task-Manager beenden), oder aber
Sie loggen sich aus und melden sich neu an Ihrem Windows-System an.
Vergessen Sie auch hier nicht, die Logdatei zu löschen oder zu
verschieben, gerade wenn sie umfangreich geworden ist. Bevor Sie eine
neue Aufzeichnung beginnen, ist es ebenfalls sinnvoll die Logdatei zu
entfernen.
\clearpage
\section{Logdatei von GpgME einschalten}
\index{Logdatei!von GpgME}
Die Logdatei-Einstellungen für GpgME ("`GnuPG Made Easy"')
müssen -- ebenso wie bei Kleopatra -- für jeden Anwender separat
vorgenommen werden.
Öffnen Sie die Windows-Systemsteuerung, wählen Sie dort \Menu{System}, dann
den Reiter \Menu{Erweitert} und schließlich den Knopf
\Button{Umgebungsvariablen}.
Fügen Sie dort folgende neue \textbf{Benutzervariable} ein:
\begin{quote}
Name der Variable: \Filename{GPGME\_DEBUG}
Wert der Variable: ~\Filename{}, also z.B.:
\T\ifthenelse{\boolean{DIN-A5}}{\newline}{}
\Filename{5;c:\back{}TEMP\back{}gpgme.log}
\end{quote}
Beachten Sie, dass der angegebene Dateiordner existieren muss. Sie
können ihn auch nachträglich erstellen.
Als Diagnosestufe\index{Diagnosestufe} wird hier der Wert \Filename{5} empfohlen. In den
meisten Fällen liefert diese Stufe ausreichend Informationen. Falls
nicht, können fortgeschrittene Nutzer diesen Wert schrittweise
erhöhen.
Zum Ausschalten der Logdatenaufzeichnung setzen Sie die Diagnosestufe
auf den Wert \Filename{0} oder entfernen Sie die Benutzervariable.
Vergessen Sie auch hier nicht, die Logdatei zu löschen oder zu
verschieben, gerade wenn sie umfangreich geworden ist. Bevor Sie eine
neue Aufzeichnung beginnen, ist es ebenfalls sinnvoll die Logdatei zu
entfernen.
\clearpage
\chapter{Warum Gpg4win nicht zu knacken ist ...}
\label{ch:themath}
..., jedenfalls nicht mit heute bekannten Methoden, und falls die
Software frei von Fehlern ist.
In der Realität liefern allerdings genau diese Fehler in den
Programmen, bei ihrer Benutzung oder im Betriebssystem die
Möglichkeiten, um doch noch an die geheimen Informationen zu gelangen.
Freie Software bietet allerdings die denkbar besten Voraussetzungen,
um diese Fehler zu vermeiden.
In jedem Beispiel dieses Kompendiums haben Sie gesehen, dass zwischen
dem geheimen und dem öffentlichen Schlüssel eine Verbindung besteht.
Nur wenn beide zueinander passen, können geheime Botschaften
entschlüsselt werden.
Das Geheimnis dieser mathematischen Verbindung müssen Sie nicht
unbedingt kennen -- Gpg4win funktioniert für Sie auch so. Man kann
diese komplexe mathematische Methode aber auch als Nichtmathematiker
verstehen, da nur die Grundrechenarten (Addition, Subtraktion,
Multiplikation, Division) benötigt werden, um eine spezielle Art der
Addition und Multiplikation zu definieren. Es gehört sowohl zur
Sicherheitsphilosophie\index{Sicherheitsphilosophie} der Kryptografie
wie auch zum Prinzip der Freien Software, dass es keine geheim
gehaltenen Methoden und Algorithmen gibt. Letztendlich versteht man
auch erst dadurch wirklich, warum GnuPG (die eigentliche Maschinerie
hinter Gpg4win) sicher ist.
Hier beginnt also sozusagen die Kür nach dem Pflichtteil.
% page break in toc
%\addtocontents{toc}{\protect\newpage}
\clearpage
\chapter{GnuPG und das Geheimnis der großen Zahlen \htmlonly{\html{p}} }
\label{ch:secretGnupg}
{\Large Kryptografie für Nicht-Mathematiker}\\
Es ist schon versucht worden, den
RSA-Algorithmus\index{RSA-Algorithmus|(}, auf dem GnuPG
basiert\footnote{Es wird hier RSA als Beispiel verwendet, da RSA als
Voreinstellung von GnuPG verwendet wird und einfacher zu verstehen ist
als der Elgamal-Algorithmus.}, zu "`knacken"', also einen privaten
Schlüssel zu berechnen, wenn man lediglich den öffentlichen Schlüssel
kennt. Diese Berechnung ist aber noch nie für Schlüssellängen von
1.024 Bit und mehr gelungen, wie sie in GnuPG verwendet werden. Es
ist zwar theoretisch möglich, aber praktisch nicht durchführbar. Denn
selbst bei vielen Jahren Rechenzeit und Abertausenden von vernetzten
Rechnern würde nicht genügend Speicher zur Verfügung stehen, um den
letzten Schritt dieser Berechnung
durchführen zu können.
Es kann allerdings durchaus möglich sein, dass eines Tages eine
geniale Idee die Mathematik revolutioniert und eine schnelle Lösung
des mathematischen Problems liefert, welches hinter RSA steckt --
allerdings wohl nicht sehr bald.
Das Bundesamt für Sicherheit in der Informationstechnik (BSI)
veröffentlicht von Zeit zu Zeit Prognosen und Einschätzungen, welche
Schlüssellängen noch wie viele Jahre für absolute Geheimhaltung benutzt
werden sollen. GnuPG erfüllt mit seinen Standardeinstellungen
diese Mindestanforderungen. Wie im vorigen Kapitel schon angerissen,
ist die Mathematik der mit Abstand sicherste Teil der praktisch
angewandten Kryptografie.
\clearpage
Im Folgenden erfahren Sie, wie diese mathematische Methode
funktioniert. Nicht in allen Einzelheiten (das würde den Rahmen dieser
Anleitung bei Weitem sprengen), aber doch so, dass Sie bei etwas
Mitrechnen selbst mathematisch korrekt ver- und entschlüsseln können
und dabei das "`Geheimnis der großen Zahlen"' entdecken.
Man kann diese komplexe mathematische Methode auch als
Nichtmathematiker verstehen, da nur die Grundrechenarten benötigt
werden. Wie gesagt: Hier
beginnt der Kürteil, und bei der Kür geht es immer etwas mehr zur
Sache als im Pflichtprogramm. Letztendlich versteht man dann aber,
warum GnuPG sicher ist.
Zwei Begriffsklärungen vorneweg:
\begin{quote}
Ein \textbf{Algorithmus} ist eine mathematische Prozedur zur
Veränderung oder Transformation von Daten oder Informationen.
\textbf{Arithmetik} ist die Methode, nach der Sie Zahlen addieren
und multiplizieren.
\end{quote}
Die Verschlüsselung mit GnuPG basiert auf dem sogenannten
RSA-Algorithmus\footnote{RSA ist eigentlich optional, da aus
Patentgründen der Elgamal-Algorithmus, beruhend auf dem schwieriger zu
erklärenden Problem des diskreten Logarithmus, als Standard in GnuPG
verwendet wird.}. RSA steht für die Nachnamen von Ron Rivest, Ami
Shamir und Leonard Adleman, die diesen Algorithmus im Jahr 1978 entdeckt
haben. Dieser Algorithmus verwendet einen Typ der Arithmetik, die
Rechnen mit Restklassen oder "`Modulo-Arithmetik"'
\index{Modulo-Arithmetik} heißt.
\clearpage
\section{Das Rechnen mit Restklassen}
\index{Restklassen}
Wenn man mit Restklassen rechnet, so bedeutet dies, dass man nur mit
dem "`Rest"' rechnet, der nach einer ganzzahligen Teilung durch eine
bestimmte Zahl übrigbleibt. Diese Zahl, durch die geteilt wird, nennt
man den "`Modul"' oder die "`Modulzahl"'. Wenn Sie beispielsweise mit
dem Teiler oder der Modulzahl 5 rechnen, sagt man auch, "`ich rechne
modulo 5"'.
Wie das Rechnen mit Restklassen -- auch Modulo-Arithmetik oder
Kongruenzrechnung genannt -- funktioniert, kann man sich gut
klarmachen, wenn man sich das Zifferblattes einer Uhr vorstellt:
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{clock-face}
Diese Uhr ist ein Beispiel für das Rechnen mit modulo 12 (die
Modulzahl ist also 12) -- eine Uhr mit einem normalen Zifferblatt,
allerdings mit einer 0 anstelle der 12. Sie können damit
Modulo-Arithmetik betreiben, indem Sie einfach den gedachten Zeiger
bewegen.
Um beispielsweise $3 + 2$ zu rechnen, beginnen Sie bei der Ziffer 2
und drehen den Zeiger um 3 Striche weiter (oder Sie starten bei der 3
und drehen 2 Striche weiter, was natürlich auf dasselbe hinausläuft).
Das Ergebnis ist 5.
Zählt man auf diese Weise $7 + 8$ zusammen, erhält man 3. Denn 3 ist
der Rest, wenn man 15 (also $7 + 8$) durch 12 teilt. Um 5 mit 7 zu
multiplizieren, beginnt man bei 0 und dreht 7 mal jeweils um 5 Striche
weiter (oder auch bei 0 beginnend 5 mal um 7 Striche). In beiden
Fällen bleibt der Zeiger bei 11 stehen. Denn 11 ist der Rest, wenn 35
(also $7 * 5$) durch 12 geteilt wird.
\clearpage
Beim Rechnen mit Restklassen addieren und teilen Sie Zahlen also nach
den normalen Regeln der Alltagsarithmetik, verwenden dabei jedoch
immer nur den Rest nach der Teilung. Um anzuzeigen, dass Sie nach den
Regeln der Modulo-Arithmetik und nicht nach denen der üblichen
Arithmetik rechnen, schreibt man den Modul (Sie wissen schon -- den
Teiler) dazu. Man sagt dann z.B. "`4 modulo 5"', schreibt aber kurz
"`$4 \bmod 5$"'.
Bei Modulo-5 z.B. hat man dann eine Uhr, auf deren Zifferblatt es nur
die 0, 1, 2, 3 und 4 gibt. Also:
\[ 4 \bmod 5 + 3 \bmod 5 = 7 \bmod 5 = 2 \bmod 5 \]
Anders ausgedrückt, ist in der Modulo-5-Arithmetik das Ergebnis
aus 4 plus 3 gleich 2. \\
Ein weiteres Beispiel in Modulo-5-Arithmetik:
\[ 8 \bmod 5 + 6 \bmod 5 = 14 \bmod 5 = 4 \bmod 5 \]
Sie sehen auch, dass es egal ist, in welcher Reihenfolge Sie
vorgehen, weil Sie nämlich auch schreiben können:
\[ 8 \bmod 5 + 6 \bmod 5 = 3 \bmod 5 + 1 \bmod 5 = 4 \bmod 5 \]
Denn 3 ist dasselbe wie 8, und 1 dasselbe wie 6, da Sie sich ja nur
für den jeweiligen Rest nach der Teilung durch 5 interessieren.
An den letzten Beispielen wird deutlich, dass bei der
Modulo-Arithmetik jederzeit ein ganzzahliges Vielfaches der Modulzahl
(hier 5) addiert werden kann, das Rechenergebnis aber stets dasselbe
bleibt.
\clearpage
Dieses Schema funktioniert auch beim Multiplizieren.
Ein Beispiel:
\[ 4 \bmod 5 * 2 \bmod 5 = 8 \bmod 5 = 3 \bmod 5 \]
Ebenso können Sie schreiben:
\[ 9 \bmod 5 * 7 \bmod 5 = 63 \bmod 5 = 3 \bmod 5 \]
da Sie einfach 60, also $5 * 12$, abziehen können.
Man könnte aber auch schreiben:
\[ 9 \bmod 5 * 7 \bmod 5 = 4 \bmod 5 * 2 \bmod 5 = 8 \bmod 5 = 3 \bmod
5 \]
denn 4 entspricht 9, und 2 entspricht 7, wenn Sie nur den Rest
nach Teilung durch 5 betrachten.
Wiederum können Sie feststellen, dass es egal ist, wenn Sie das
Vielfache von 5 einfach weglassen.
Da dadurch alles einfacher wird, machen Sie das, bevor Sie Zahlen
addieren oder multiplizieren. Das bedeutet, dass Sie sich lediglich um
die Zahlen 0, 1, 2, 3 und 4 kümmern müssen, wenn Sie mit der
Modulo-5-Arithmetik rechnen. Denn Sie können ja alles, was durch 5
teilbar ist, weglassen.
Noch drei Beispiele mit anderen Modulzahlen:
\begin{enumerate}
\item[I.] $ 5 \bmod 11 * 3 \bmod 11 = 15 \bmod 11 = 4 \bmod 11 $
\item[II.] $ 2 \bmod 7 * 4 \bmod 7 = 1 \bmod 7 $
\item[III.] $ 13 \bmod 17 * 11 \bmod 17 = 7 \bmod 17 $\\ Das letzte
Beispiel wird klar, wenn man bedenkt, dass in normaler
Arithmetik gerechnet $ 13 * 11 = 143 $ und $ 143 = 8 * 17 + 7
$ ist.
\end{enumerate}
\clearpage
\section{RSA-Algorithmus und Rechnen mit Restklassen}
Computer speichern Buchstaben als Zahlen. Alle Buchstaben und Symbole
auf der Computertastatur werden in Wirklichkeit als Zahlen
gespeichert, die typisch zwischen 0 und 255 liegen.
Sie können also eine Nachricht auch in eine Zahlenfolge umwandeln.
Nach welcher Methode (oder welchem Algorithmus) dies geschieht, wird im
nächsten Abschnitt beschrieben. Darin wird die Methode
vorgestellt, nach der die Verschlüsselung mit GnuPG funktioniert: den
RSA-Algorithmus. Dieser Algorithmus wandelt eine Zahlenfolge (die ja
eine Nachricht darstellen kann) so in eine andere Zahlenfolge um
(also eine Transformation), dass die Nachricht dabei verschlüsselt wird.
Wenn man dabei nach dem richtigen Verfahren vorgeht, wird die Nachricht
sicher kodiert und kann nur noch vom rechtmäßigen Empfänger dekodiert
werden.
Das sind die Grundlagen des RSA-Algorithmus:
Sie selbst haben bei der Erzeugung eines Schlüsselpaares während der Eingabe
Ihrer Passphrase zwei große Primzahlen\index{Primzahlen|(} erzeugt, ohne es zu bemerken
(dieser werden mit $p$ und $q$ bezeichnet). Nur Sie -- oder in der
Praxis Ihr Rechner -- kennen diese beiden Primzahlen und Sie müssen
für deren Geheimhaltung sorgen.
Es werden daraus nun drei weitere Zahlen erzeugt:
\begin{description}
\item [Die erste Zahl] ist das Ergebnis der Multiplikation der beiden
Primzahlen, also ihr Produkt. Dieses Produkt wird als
\textit{Modulus} und mit dem Buchstaben $n$ bezeichnet. Dies ist
die Modulzahl, mit der Sie später immer rechnen werden.
\item [Die zweite Zahl] ist der sogenannte \textit{öffentliche
Exponent} $e$ und eine Zahl, an die bestimmte Anforderungen
gestellt werden: teilerfremd zu $(p-1)(q-1)$. Häufig wird hier 41
oder 65537 benutzt.
\item [Die dritte Zahl] wird errechnet aus dem öffentlichen Exponent
(der zweiten Zahl) und den beiden Primzahlen. Diese Zahl ist der
\textit{geheime Exponent} und wird mit $d$ bezeichnet. Die
Formel zur Berechnung lautet:
\[ d = e^{-1} \bmod (p - 1)(q -1) \]
\end{description}
Die erste und die zweite Zahl werden veröffentlicht -- das ist Ihr
öffentlicher Schlüssel. Beide werden dazu benutzt, Nachrichten zu
verschlüsseln. Die dritte Zahl muss von Ihnen geheim gehalten werden
-- es ist Ihr geheimer Schlüssel. Die beiden Primzahlen ($p$ und $q$)
werden danach nicht mehr benötigt.
Wenn eine verschlüsselte Nachricht empfangen wird, kann sie
entschlüsselt werden mit Hilfe der ersten ($n$) und der dritten Zahl
($d$). Nur der Empfänger kennt beide Schlüsselteile -- seinen
öffentlichen und seinen geheimen Schlüssel. Der Rest der Welt kennt
nur den öffentlichen Schlüssel ($n$ und $e$).
Die Trick des RSA-Algorithmus liegt nun darin, dass es unmöglich ist,
aus dem öffentlichen Schlüsselteil ($n$ und $e$) den geheimen
Schlüsselteil ($d$) zu errechnen und damit die Botschaft zu
entschlüsseln -- denn: Nur wer im Besitz von $d$ ist, kann die
Botschaft entschlüsseln.
\clearpage
\section{RSA-Verschlüsselung mit kleinen Zahlen}
Sie verwenden hier erst einmal kleine Zahlen, um deutlich zu machen,
wie die Methode funktioniert. In der Praxis verwendet man jedoch viel
größere Primzahlen, die aus vielen Ziffern bestehen.
Nehmen Sie die Primzahlen 7 und 11. Damit verschlüsseln Sie Zahlen --
oder Buchstaben, was für den Rechner dasselbe ist -- nach dem
RSA-Algorithmus.
Und zwar erzeugen Sie zunächst den öffentlichen Schlüssel.
\begin{description}
\item [Die erste Zahl] ist 77, nämlich das Ergebnis der Multiplikation
der beiden Primzahlen, 7 und 11. 77 dient Ihnen im weiteren
Verlauf als Modulus zur Ver- und Entschlüsselung.
\item [Die zweite Zahl] ist der öffentliche Exponent. Sie wählen hier
13.
\item [Die dritte Zahl] ist der geheime Schlüssel. Diese Zahl wird wie
folgt errechnet:
Zunächst ziehen Sie von Ihren Primzahlen 7 und 11 jeweils die Zahl
1 ab (also $7 - 1$ und $11 - 1$) und multiplizieren die beiden
resultierenden Zahlen miteinander. In dem Beispiel ergibt das 60:
$( 7 - 1 ) * ( 11 - 1) = 60$. 60 ist Ihre Modulzahl für die
weiterführende Berechnung des geheimen Schlüssels (sie ist aber
nicht mit dem eigentlichen Modulus 77 zu verwechseln).
Sie suchen jetzt eine Zahl, die multipliziert mit dem öffentlichen
Schlüssel die Zahl 1 ergibt, wenn man mit dem Modul 60 rechnet:
\[ 13 \bmod 60 *~?~\bmod 60 = 1 \bmod 60 \]
Die einzige Zahl, die diese Bedingung erfüllt, ist 37, denn
\[ 13 \bmod 60 * 37 \bmod 60 = 481 \bmod 60 = 1 \bmod 60 \]
37 ist die einzige Zahl, die multipliziert mit 13 die Zahl 1
ergibt, wenn man mit dem Modul 60 rechnet.
\end{description}
\clearpage
\subsubsection{Sie verschlüsseln mit dem öffentlichen Schlüssel eine Nachricht}
Nun zerlegen Sie die Nachricht in eine Folge von Zahlen zwischen 0 und
76, also 77 Zahlen, denn sowohl Verschlüsselung als auch
Entschlüsselung verwenden den Modul 77 (das Produkt aus den Primzahlen
7 und 11).
Jede einzelne dieser Zahlen wird nun nach der Modulo-77-Arithmetik 13
mal mit sich selbst multipliziert. Sie erinnern sich: Die 13 ist
Ihr öffentlicher Schlüssel.
Nehmen Sie ein Beispiel mit der Zahl 2: Sie wird in die Zahl 30
umgewandelt, weil
$ 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
= 2^{13} = 8192 = 30 \bmod 77 $ sind.
Ein weiteres Beispiel: 75 wird in die Zahl 47 umgewandelt, denn 75
wird 13 mal mit sich selbst multipliziert und durch 77 geteilt, so
dass der Rest 47 entsteht.
Wenn man eine solche Rechnung für alle Zahlen zwischen 0 und 76
durchführt und die Ergebnisse in eine Tabelle einsetzt, sieht diese so
aus:
\W\xmlattributes*{table}{BORDER}
\htmlattributes*{td}{BGCOLOR="gray"}
\begin{table}[htbp]
\begin{center}
\begin{Label}{table1}
\begin{tabular}{|r||r|r|r|r|r|r|r|r|r|r|}
\hline
\bf \T\cellcolor{gray}
&\bf 0&\bf 1&\bf 2&\bf 3&\bf 4&\bf 5&\bf 6&\bf 7& \bf 8&\bf 9\\
\hline
\hline
\bf 0& 0& 1& 30& 38& 53& 26& 62& 35& 50& 58\\
\hline
\bf 10& 10& 11& 12& 41& 49& 64& 37& 73& 46& 61\\
\hline
\bf 20& 69& 21& 22& 23& 52& 60& 75& 48& 7& 57\\
\hline
\bf 30& 72& 3& 32& 33& 34& 63& 71& 9& 59& 18\\
\hline
\bf 40& 68& 6& 14& 43& 44& 45& 74& 5& 20& 70\\
\hline
\bf 50& 29& 2& 17& 25& 54& 55& 56& 8& 16& 31\\
\hline
\bf 60& 4& 40& 13& 28& 36& 65& 66& 67& 19& 27\\
\hline
\bf 70& 42& 15& 51& 24& 39& 47& 76\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\T\\
\hline
\end{tabular}
\texorhtml{\caption}{\htmlcaption}{~}
\end{Label}\end{center}
\end{table}
\W\textit{Tabelle 1}\\\\\\
In der linken Spalte stehen die 10er-Stellen, in der oberen Zeile die
1er-Stellen.
\clearpage
\subsubsection{Entschlüsseln Sie eine Nachricht mit dem privaten Schlüssel}
Um das Beispiel mit der 2 von oben umzukehren, also die Nachricht zu
dekodieren, multiplizieren Sie 30 (die umgewandelte 2) 37 mal mit sich
selbst ($30^{37}$). Das Ergebnis wird modulo der Modulzahl 77
gerechnet. Sie erinnern sich: 37 ist der geheime Schlüssel.
Diese wiederholte Multiplikation ergibt eine Zahl, die $2 \bmod 77$
ist.
Das andere Beispiel: Die Zahl $47 \bmod 77$ wird zur Zahl $75
\bmod 77$ dekodiert.
Tabelle \link*{2}[\ref{table2}]{table2} zeigt die genaue Zuordnung der 77 Zahlen zwischen 0 und 76.
\W\xmlattributes*{table}{BORDER}
\htmlattributes*{td}{BGCOLOR="gray"}
\begin{table}[htbp]
\begin{center}
\begin{Label}{table2}
\begin{tabular}{|r||r|r|r|r|r|r|r|r|r|r|}
\hline
\bf \T\cellcolor{gray}
&\bf 0&\bf 1&\bf 2&\bf 3&\bf 4&\bf 5&\bf 6&\bf 7& \bf 8&\bf 9\\
\hline
\hline
\bf 0& 0& 1& 51& 31& 60& 47& 41& 28& 57& 37\\
\hline
\bf 10& 10& 11& 12& 62& 42& 71& 58& 52& 39& 68\\
\hline
\bf 20& 48& 21& 22& 23& 73& 53& 5& 69& 63& 50\\
\hline
\bf 30& 2& 59& 32& 33& 34& 7& 64& 16& 3& 74\\
\hline
\bf 40& 61& 13& 70& 43& 44& 45& 18& 75& 27& 14\\
\hline
\bf 50& 8& 72& 24& 4& 54& 55& 56& 29& 9& 38\\
\hline
\bf 60& 25& 19& 6& 35& 15& 65& 66& 67& 40& 20\\
\hline
\bf 70& 49& 36& 30& 17& 46& 26& 76\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\T\\
\hline
\end{tabular}
%TODO: Hyperlatex's htmlcaption generates wrong html code -> so set caption
%part for tex only; and set htmlcaption as normal text below the table
%\texorhtml{\caption}{\htmlcaption}{Zahlentransformation modulo 77, unter Verwendung
%des geheimen Schlüssels 37}
\T\caption{Zahlentransformation modulo 77, unter Verwendung des geheimen Schlüssels 37}
\end{Label}\end{center}
\end{table}
\W\textit{Tabelle 2: Zahlentransformation modulo 77, unter Verwendung des geheimen Schlüssels 37}\\\\\\
Um eine Zahl mit Tabelle \link*{2}[\ref{table2}]{table2} zu transformieren, gehen Sie
nach der gleichen Methode vor wie bei Tabelle~\link*{1}[\ref{table1}]{table1}. Ein
Beispiel: 60 wird transformiert in die Zahl in Zeile 60 und Spalte 0.
Also wird 60 zu 25 transformiert.
Das überrascht nicht, denn wenn man davon ausgeht, dass Sie bei der
Umwandlung von 25 mit Hilfe von Tabelle~\link*{1}[\ref{table1}]{table1} als Ergebnis 60
erhalten, dann sollten Sie auch bei der Transformation von 60 mit
Hilfe von Tabelle \link*{2}[\ref{table2}]{table2} zum Ergebnis 25 gelangen. Dabei haben
Sie den öffentlichen Schlüssel, hier die 13, zur Umwandlung bzw. Kodierung
einer Zahl verwendet und den geheimen Schlüssel 37, um sie
zurückzuwandeln bzw. zu dekodieren. Sowohl für die Verschlüsselung als
auch für die Entschlüsselung haben Sie sich der Modulo-77-Arithmetik
bedient.
\clearpage
\subsubsection{Zusammenfassung}
Sie haben ...
\begin{itemize}
\item durch den Rechner zwei zufällige Primzahlen erzeugen lassen;
\item daraus das Produkt und den öffentlichen und den geheimen
Schlüssel gebildet;
\item mit dem öffentlichen Schlüssel eine Nachricht verschlüsselt;
\item mit dem geheimen Schlüssel eine Nachricht entschlüsselt.
\end{itemize}
Diese beiden Primzahlen können so groß gewählt werden, dass es
unmöglich ist, sie einzig aus dem öffentlich bekannt gemachten Produkt
zu ermitteln. Das begründet die Sicherheit des RSA-Algorithmus.
Sie haben gesehen, dass die Rechnerei sogar in diesem einfachen
Beispiel recht aufwändig geworden ist. In diesem Fall hat die
Person, die den Schlüssel öffentlich gemacht hat, die Zahlen 77 und 13
als öffentlichen Schlüssel bekanntgegeben. Damit kann jedermann
dieser Person mit der oben beschriebenen Methode -- wie im Beispiel
der Tabelle~\link*{1}[\ref{table1}]{table1} -- eine verschlüsselte Zahl oder Zahlenfolge
schicken. Der rechtmäßige Empfänger der verschlüsselten Zahlenfolge
kann diese dann mit Hilfe der Zahl 77 und dem geheimen Schlüssel 37
dekodieren.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
In diesem einfachen Beispiel ist die Verschlüsselung natürlich nicht
sonderlich sicher. Es ist klar, dass 77 das Produkt aus 7 und 11 ist.
Folglich kann man den Code in diesem einfachen Beispiel leicht
knacken. Ein aufmerksamer Leser wird auch bemerkt haben, dass etliche
Zahlen, z.B. die Zahl 11 und ihr Vielfaches (also 22, 33 etc.) und die
benachbarten Zahlen sich in sich selbst umwandeln.
\W\xmlattributes*{table}{BORDER}
\htmlattributes*{td}{BGCOLOR="gray"}
\begin{table}[htbp]
\begin{center}
\begin{Label}{table3}
\begin{tabular}{|r||r|r|r|r|r|r|r|r|r|r|}
\hline
\bf \T\cellcolor{gray}
&\bf 0&\bf 1&\bf 2&\bf 3&\bf 4&\bf 5&\bf 6&\bf 7& \bf 8&\bf 9\\
\hline
\hline
\bf 0& 0& 1& 51& 31& 60& 47& 41& 28& 57& 37\\
\hline
\bf 10\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
10\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
11\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
12& 62& 42& 71& 58& 52& 39& 68\\
\hline
\bf 20& 48\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
21\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
22\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
23& 73& 53& 5& 69& 63& 50\\
\hline
\bf 30& 2& 59\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
32\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
33\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
34& 7& 64& 16& 3& 74\\
\hline
\bf 40& 61& 13& 70\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
43\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
44\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
45& 18& 75& 27& 14\\
\hline
\bf 50& 8& 72& 24& 4\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
54\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
55\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
56& 29& 9& 38\\
\hline
\bf 60& 25& 19& 6& 35& 15\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
65\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
66\htmlattributes*{td}{BGCOLOR="lightgray"} & \T\cellcolor{lightgray}
67& 40& 20\\
\hline
\bf 70& 49& 36& 30& 17& 46& 26& 76\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\htmlattributes*{td}{BGCOLOR="gray"} & \T\cellcolor{gray}
\T\\
\hline
\end{tabular}
%TODO:
%\texorhtml{\caption}{\htmlcaption}{~}
\T\caption{~}
\end{Label}\end{center}
\end{table}
\W\textit{Tabelle 3}\\\\\\
\clearpage
Das erscheint als ein weiterer Schwachpunkt dieser
Verschlüsselungsmethode: Man könnte annehmen, dass die Sicherheit des
Algorithmus dadurch beeinträchtigt würde. Doch stellen Sie sich nun
vor, das Produkt zweier großer Primzahlen, die auf absolut
willkürliche Art und Weise gewählt werden, ergäbe:
\begin{verbatim}
114,381,625,757,888,867,669,235,779,976,146,612,010,
218,296,721,242,362,562,561,842,935,706,935,245,733,
897,830,597,123,563,958,705,058,989,075,147,599,290,
026,879,543,541
\end{verbatim}
Hier ist überhaupt nicht mehr ersichtlich, welche die beiden zugrunde
liegenden Primzahlen sind. Folglich ist es extrem aufwändig, aufgrund
des öffentlichen Schlüssels den geheimen Schlüssel zu ermitteln.
Selbst die schnellsten Rechnern der Welt würden sehr lange benötigen,
die beiden Primzahlen zu errechnen.
Man muss die Primzahlen also nur groß genug wählen, damit ihre
Berechnung aus dem Produkt so lange dauert, dass alle bekannten
Methoden daran in der Praxis scheitern. Außerdem nimmt der Anteil der
Zahlen, die in sich selbst transformiert werden -- wie man sie oben
in den Tabellen~\link*{1}[\ref{table1}]{table1} und \link*{2}[\ref{table2}]{table2}
findet -- stetig ab, je
größer die Primzahlen werden. Von Primzahlen in der Größenordnung,
die Sie in der Praxis bei der Verschlüsselung verwenden, ist dieser
Teil so klein, dass der RSA-Algorithmus davon in keiner Weise
beeinträchtigt wird.
Je größer die Primzahlen, desto sicherer die Verschlüsselung.
Trotzdem kann ein normaler PC ohne weiteres das Produkt aus zwei
großen Primzahlen bilden. Kein Rechner der Welt dagegen kann aus
diesem Produkt wieder die ursprünglichen Primzahlen herausrechnen --
jedenfalls nicht in vertretbarer Zeit.
\clearpage
\section{Die Darstellung mit verschiedenen Basiszahlen}
Um zu verstehen, wie Nachrichten verschlüsselt werden, sollte man
wissen, wie ein Rechner Zahlen speichert, und vor allem, wie sie in
unterschiedlichen Zahlenbasen dargestellt werden können.
Dazu machen Sie sich zunächst mit den Zahlenpotenzen vertraut.
Zwei hoch eins, dargestellt als $2^1 = 2$; \\
zwei hoch drei, dargestellt als $2^3 = 2 * 2 * 2 = 8$;\\
zwei hoch zehn, dargestellt als $2^{10} = 2*2*2*2*2*2*2*2*2*2 = 1024$.
Jede Zahl hoch 0 ist gleich 1, z.B. $2^0 = 1$ und $5^0 = 1$.
Verallgemeinert bedeutet dies, dass eine potenzierte Zahl so oft mit
sich selbst multipliziert wird, wie es die Hochzahl (Potenz) angibt.
Das Konzept einer Zahlenbasis veranschaulicht z.B. ein Kilometerzähler
im Auto: Das rechte Rad zählt nach jedem Kilometer eine Stelle weiter
und zwar nach der vertrauten Abfolge der Zahlen:\\
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, ...
Jedesmal, wenn das rechte Rad wieder 0 erreicht, zählt
das Rad links davon eine Stelle hoch. Und jedesmal, wenn dieses zweite
Rad die 0 erreicht, erhöht das Rad links davon um eins ... und so
weiter.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.4\textwidth]{mileage-indicator}
Das rechte Rad zählt die einzelnen Kilometer. Wenn es eine 8
angezeigt, dann sind dies 8 Kilometer. Das Rad links davon zeigt
jeweils die vollen zehn Kilometer an: Eine 5 bedeutet 50 Kilometer.
Dann folgen die Hunderter: Steht dort 7, dann bedeutet dies 700
Kilometer.
Nach dem gleichen Prinzip stellen Sie ja auch Ihre normale Zahlen mit
den Ziffern 0 bis 9 dar.
"`578"', z.B., bedeutet $5 * 10^2 + 7 * 10^1 + 8 * 10^0 = 500 + 70 + 8$, und dies
entspricht 578.
Hier haben Sie die "`5"' stellvertretend für fünfhundert, "`7"' für
siebzig und "`8"' für acht. In diesem Fall ist die Basis 10, eine für
Sie vertraute Basis.
Also steht die rechte Ziffer für die Einer der betreffenden Zahl
(d.h., sie wird mit 1 multipliziert), die Ziffer links davon steht für die
Zehner (d.h., wird mit 10 multipliziert), die nächste Ziffer wiederum
für die Hunderter (d.h., sie wird mit 100 multipliziert) und so weiter.
Da man Zahlen normalerweise zur Basis 10 darstellt, machen Sie sich
nicht die Mühe, die Basis extra anzugeben. Formal würde man dies bei
der Zahl 55 mit der Schreibweise $55_{10}$ anzeigen, wobei die
tiefgestellte Zahl die Basis anzeigt.
Wenn Sie Zahlen nicht zur Basis 10 darstellen, so müssen Sie dies mit
Hilfe einer solchen tiefgestellten Basiszahl anzeigen.
Angenommen, die Anzeige des Kilometerzählers hätte statt der Ziffern 0
bis 9 nur noch 0 bis 7. Das rechte Rädchen würde nach jedem Kilometer
um eine Ziffer höher zählen, wobei die Zahlenfolge so aussehen würde:
\[ 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, ... \]
Ihr dreistelliger Tacho zur Basis 8 stellt z.B. folgende Zahl dar:
\[ 356 \]
Die 6 auf dem rechten Rädchen zählt einzelne Kilometer, also $6*8^0=6$
Kilometer.\\
Die 5 auf dem Rädchen in der Mitte für $5 * 8^1$, also 40 Kilometer.\\
Die 3 links steht für je 64 Kilometer pro Umdrehung, also hier
$3 * 8^2$ Kilometer.
So rechnet man also mit Zahlen zur Basis 8. Ein Beispiel: $72_8$ bedeutet
$7 * 8^1 + 2 * 8^0 = 58$. \\
Bei dieser Art der Darstellung steht die "`2"' aus der 72 für 2, aber
die "`7"' steht für $7 * 8$.
Größere Zahlen werden schrittweise genauso aufgebaut, sodass
$453_8$ eigentlich $4 * 64 + 5 * 8 + 3$ bedeutet, was $299_{10}$
ergibt.\\
Bei $453_8$ steht die "`3"' für 3, die "`5"' für $5 * 8$ und die "`4"'
für $4 * 64$, wobei sich die "`64"' wiederum aus $8 * 8$ herleitet.
Im angeführten Beispiel werden die Ziffern, von rechts nach links
gehend, mit aufsteigenden Potenzen von 8 multipliziert. Die rechte
Ziffer wird mit $8^0$ (das ist 1) multipliziert, die links daneben
mit $8^1$ (das ist 8), die nächste links davon mit $8^2$ (das
ist 64) und so weiter.
Wenn man Zahlen zur Basis 10 darstellt, gibt es keine höhere Ziffer
als 9 (also 10 minus 1). Sie verfügen also über keine Ziffer, die 10
oder eine größere Zahl darstellt. Um 10 darzustellen, brauchen Sie
zwei Ziffern, mit denen Sie dann die "`10"' schreiben können.\\
Sie haben also nur die Ziffern 0 bis 9.\\
So ähnlich ist es, wenn Sie mit der Basiszahl 8 rechnen: Dann haben
Sie nur die Ziffern 0 bis 7 zur Verfügung. Wollen Sie zu dieser Basis
eine höhere Zahl als sieben darstellen, müssen Sie wieder zwei Ziffern
verwenden -- z.B. $9_{10}$ ist $11_8$, $73_{10}$ ist $111_8$.
\clearpage
Rechner speichern Zahlen als eine Folge von Nullen und Einsen. Man
nennt dies Binärsystem oder Rechnen mit der Basiszahl 2, weil Sie nur
die Ziffern 0 und 1 verwenden. Stellen Sie sich vor, Sie würden die
Kilometer mit einem Tachometer zählen, auf dessen Rädchen sich nur
zwei Ziffern befinden: 0 und 1. Die Zahl $10101_2$ z.B. bedeutet im
Binärsystem:
\[ 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0 = 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 = 21 \]
In der Informatik verwendet man auch Gruppen von acht Binärziffern,
genannt "`Byte"'. Ein Byte kann Werte zwischen 0 -- dargestellt
als Byte $00000000_2$ -- und 255 -- dargestellt als Byte $11111111_2$
-- annehmen. Ein Byte stellt also Zahlen zur Basis $2^8 = 256$ dar.
Zwei weitere Beispiele:
$ 10101010_2 = 170 $
$ 00000101_2 = 5 $
Da ein Rechner die Buchstaben, Ziffern und Satzzeichen als Bytes
speichert, schauen Sie sich an, welche Rolle dabei die Darstellung zur
Basis 256 spielt.
\clearpage
Nehmen Sie die Silbe "`un"'. Das "`u"' wird im Rechner als 117
gespeichert und das "`n"' als 110.
Diese Zahlenwerte sind für Rechner standardisiert und werden
ASCII-Code genannt.
Sie können also die Silbe "`un"' darstellen durch die Zahl:
$117 * 2^{8*1} + 110 * 2^{8*0} = 117 * 256 + 110 = 30062$
Entsprechend würde man die Buchstabenfolge "`und"' mit der Zahl
$117 * 2^{8*2} + 110 * 2^{8*1} + 100 * 2^{8*0} = 117 * 65536 + 110 *
256 + 100 = 7695972$
darstellen, denn das "`d"' wird durch 100 repräsentiert.
Sie haben hier also Zahlen und Symbole, die auf der Computertastatur
als normale Zahlen zur Basis 10 stehen, intern durch Zahlen zur Basis
$2^8 = 256$ repräsentiert.
Entsprechend können Sie aus jeder Nachricht eine große Zahl machen.
Aus einer langen Nachricht wird also eine gewaltig große Zahl. Und
diese sehr große Zahl wollen Sie nun nach dem RSA-Algorithmus
verschlüsseln.
Sie dürfen allerdings dabei die Zahl, zu der die Nachricht
verschlüsselt wird, nicht größer werden lassen als das Produkt der
Primzahlen (Modulus). Ansonsten bekommen Sie Probleme, wie Sie gleich
noch sehen werden.\\
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Die folgende Prozedur umfasst mehrere Schritte, die hier zunächst
zusammengefasst und anschließend in Einzelschritten dargestellt
werden:
\begin{enumerate}
\item Die Nachricht \emph{aba, cad, aca} wandeln Sie -- wie
beschrieben -- in Zahlen um.
\item Diese Darstellung, beispielhaft zur Basis $2^2=4$ (statt
$2^8=256$), wandeln Sie in eine Darstellung
zur Basis 10 um, damit Sie zur Verschlüsselung die
Tabelle~\link*{1}[\ref{table1}]{table1}
benutzen können, in der die Zahlen ja auch auf 10er-Basis
dargestellt werden. Dabei entsteht eine kodierte Nachricht zur
Basis 10.
\item Um die Kodierung im Vergleich zum "`Klartext"' zu erkennen,
rechnen Sie die zur Basis 10 kodierte Nachricht auf die Basis 4
zurück und wandeln sie dann wieder in eine Buchstabensequenz.
\item So entsteht aus der Nachricht \emph{aba, cad, aca} die
verschlüsselte Nachricht \emph{dbb, ddd, dac}.
\end{enumerate}
\clearpage
Und nun ausführlich:
\begin{enumerate}
\item Die Nachricht \emph{aba, cad, aca} wandeln Sie in Zahlen um.
Angenommen, Sie beschränken sich bei den Nachrichten auf die 4
Buchstaben a, b, c und d. In diesem -- wirklich sehr einfachen --
Beispiel können Sie die vier Buchstaben durch die Zahlenwerte 0,
1, 2 und 3 darstellen und haben dann:
\[ a = 0, b = 1, c = 2 ~\mbox{und}~ d = 3 \]
Verschlüsseln Sie nun die Nachricht \emph{aba, cad, aca}. Sie kodieren
diese Nachricht mit Hilfe der Primzahlen\index{Primzahlen|)} 7 und 11, mit dem
öffentlichen Schlüssel 77 und 13 und dem dazugehörenden geheimen
Schlüssel 37. Dieses Beispiel kennen Sie bereits aus dem früheren
Kapitel: Sie haben damit die Tabellen~\link*{1}[\ref{table1}]{table1} und
\link*{2}[\ref{table2}]{table2} konstruiert.\\
\item Diese Darstellung zur Basis 4 wandeln Sie in eine Darstellung
zur Basis 10 um. Damit können Sie zur Verschlüsselung die
Tabelle~\link*{1}[\ref{table1}]{table1} benutzen, in denen die Zahlen ja auch auf
10er-Basis dargestellt werden.
Weil Sie vier Buchstaben für die Nachricht verwenden, rechnen Sie
zur Basis 4. Für die Rechnung modulo 77 müssen Sie die Nachricht
in Stücke von je drei Zeichen Länge zerlegen, weil die größte
dreiziffrige Zahl zur Basis 4 die $333_4$ ist. Zur Basis 10 hat
diese Zahl den Wert 63.
Würden Sie stattdessen die Nachricht in vier Zeichen lange Stücke
zerlegen, würde $3333_4$ den Wert $76_{10}$ übersteigen und es
würden unerwünschte Doppeldeutigkeiten entstehen.
Folglich würde die Nachricht in dreiziffrigen Stücken nun
\[ aba, cad, aca \]
ergeben. Geben Sie den Zeichen nun ihre Zahlenwerte und vergessen
dabei nicht, dass die Stücke dreiziffrige Zahlen zur Basis 4
darstellen.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Da Sie die Buchstaben durch die Zahlen a = 0, b = 1, c = 2, d = 3
darstellen, wird die Nachricht zu:
\[ 010_4, 203_4, 020_4 \]
Zur Basis 10 wird diese Nachricht durch die Zahlenfolge 4, 35, 8
dargestellt. Warum? Nehmen Sie z.B. das mittlere Stück $203_4$:
\T\begin{eqnarray*}
\W\begin{tabular}{rrr}
3 * 4^0, & ~\mbox{also}~ 3 * 1, & ~\mbox{also}~ 3. \\
0 * 4^1, & ~\mbox{also}~ 0 * 4, & ~\mbox{also}~ 0. \\
2 * 4^2, & ~\mbox{also}~ 2 * 16, & ~\mbox{also}~ 32.\\
\W\end{tabular}
\T\end{eqnarray*}
\T\ifthenelse{\boolean{DIN-A5}}{}{\clearpage}
\item Jetzt können Sie zur Verschlüsselung die Tabelle~\link*{1}[\ref{table1}]{table1}
von Seite \pageref{table1} benutzen, die ja zur Basis 10 berechnet
wurde. Diese Tabelle benutzen wir, weil Sie mit dem schon
bekannten Schlüsselpaar arbeiten wollen. Dabei entsteht eine
kodierte Nachricht zur Basis 10.
Zum Verschlüsseln der Nachricht nehmen Sie jetzt die o.g.
Tabelle~\link*{1}[\ref{table1}]{table1} zur Hilfe. Die Nachricht wird nun zu der
Zahlenfolge 53, 63, 50 (zur Basis 10).\\
\item Wird sie nun wieder zur Basis 4 konvertiert, ergibt die Nachricht
nun $311_4, 333_4, 302_4$. Konvertiert man diese zu einer
Buchstabensequenz, erhält man \emph{dbb, ddd, dac}, was sich nun
erheblich von der ursprünglichen Nachricht unterscheidet.
Man kehrt nun also den Prozess um und transformiert die
Zahlenfolge 53, 63, 50 mit Tabelle~\link*{2}[\ref{table2}]{table2} und erhält die
Sequenz 4, 35, 8. Und das entspricht als Zahlenfolge genau der
ursprünglichen Nachricht.
Anhand der Tabellen \link*{1}[\ref{table1}]{table1} und \link*{2}[\ref{table2}]{table2} können Sie
ebenso gut Nachrichten unter Verwendung des geheimen Schlüssels
(d.h., erst Tabelle~\link*{2}[\ref{table2}]{table2} benutzen) verschlüsseln, dann mit
dem öffentlichen Schlüssel (d.h., Tabelle~\link*{1}[\ref{table1}]{table1} als zweites
benutzen) dekodieren und damit Ihre ursprüngliche Zahl wieder
herstellen. Das bedeutet, dass der Inhaber des geheimen Schlüssels
damit Nachrichten unter Verwendung des RSA-Algorithmus
verschlüsseln kann, die daher eindeutig nur von ihm stammen können.
\end{enumerate}
\clearpage
\subsubsection{Fazit:}
Wie Sie gesehen haben, ist die ganze Angelegenheit zwar im Detail
kompliziert, im Prinzip aber durchaus nachvollziehbar. Sie sollen
schließlich nicht einer Methode einfach nur vertrauen, sondern --
zumindest ansatzweise -- ihre Funktionsweise durchschauen. Sehr
viele tiefergehende Details sind leicht in anderen Büchern (z.B.:
R.~Wobst, "`Abenteuer Kryptologie"') oder im Internet zu finden.
\index{RSA-Algorithmus|)}
\vfill
\textbf{Immerhin wissen Sie nun:} Wenn jemand sich an Ihren
verschlüsselten \Email{}s zu schaffen macht, ist er durchaus so lange
damit beschäftigt, dass er nicht mehr erleben dürfte, diese
dann noch lesen zu können...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Appendix
% page break in toc (for A5 paper only)
\T\ifthenelse{\boolean{DIN-A5}}{addtocontents{toc}{\protect\newpage}}{}
\appendix
\T\part{Anhang}
\W\part*{\textbf{III Anhang}}
\addtocontents{toc}{\protect\vspace{0.3cm}}
%\T\chapter{Glossar}
%\W\chapter*{A Glossar}
%\label{glossar}
%[Dieses Glossar ist noch in Arbeit.]
%\begin{description}
% \item[OpenPGP] ...
% \item[X.509] ...
%\end{description}
\T\chapter{Hinweise zur Outlook"=Programmerweiterung GpgOL}
\W\chapter*{A Hinweise zur Outlook-Programmerweiterung GpgOL}
\label{appendix:gpgol}
\index{Outlook!Programmerweiterung}
GpgOL ist eine Programmerweiterung für Microsoft Outlook, es
integriert dort die Bedienung von GnuPG.
GpgOL wird durch den Gpg4win-Installationsassistenten installiert.
Beim nächsten Start von Outlook finden Sie in Ihrer Adressleiste einen
Eintrag für GpgOL. Wenn Sie auf den Pfeil neben dem Schriftzug klicken
kommen Sie in das Einstellungsmenü:
% screenshot: GpgOL options
% TODO: Neuer Screenshot - English und Beta
\IncludeImage[width=0.65\textwidth]{sc-gpgol-options_de}
\clearpage
Die Karteikarte \Menu{GpgOL} unterteilt sich in zwei Bereiche:
\begin{enumerate}
\item \textbf{Allgemein}
\begin{itemize}
\item \Menu{S/MIME Unterstützung einschalten}
Nach der Installation von Gpg4win ist die
S/MIME-Funktionalität in GpgOL deaktiviert. Damit ist die
S/MIME-Unterstützung von GnuPG gemeint. Outlook selbst
unterstützt ebenfalls X.509 und S/MIME, arbeitet aber
natürlich nicht mit der Gpg4win-Komponente GnuPG. Konkret
%TODO: Schlüsselmanagement
heißt das, dass alle Einstellungen, das Schlüsselmanagement
und die Benutzerdialoge unterschiedlich sind. Es ist zu
beachten, dass Outlook von sich aus OpenPGP-Unterstützung anbietet.
Wenn Sie S/MIME in Outlook mit Gpg4win nutzen möchten,
aktivieren Sie die GpgOL-Option\index{GpgOL-Optionen}
\Menu{S/MIME Unterstützung
einschalten}. Sollten Sie das von Outlook
unterstützte S/MIME nutzen wollen, lassen Sie diese
GpgOL-S/MIME-Option deaktiviert.
\end{itemize}
\item \textbf{Nachrichten Versenden}
\begin{itemize}
\item \Menu{Neue Nachrichten per Voreinstellungen verschlüsseln}
\item \Menu{Neue Nachrichten per Voreinstellungen signieren}
Diese beiden Optionen in diesem Bereich steuern, ob per
Voreinstellung neue Nachrichten verschlüsselt und/oder
signiert werden sollen. Sie können dies aber immer noch bei
der Erstellung einer Nachricht individuell verändern.
Lediglich die Schaltflächen sind schon entsprechend
aktiviert.
\item \Menu{Sende OpenPGP Nachrichten ohne Anhänge als PGP/Inline}
Es gibt zwei verschieden Wege eine \Email{} verschlüsselt oder
signiert zu senden. Zum einen PGP/MIME und zum anderen PGP/Inline.
Diese unterscheiden Sich darin, wie Ihre Nachricht signiert wird.
Mit PGP/Inline wird der reine Textblock signiert und verschlüsselt
und mit PGP/MIME wird der Komplette E-Mail Inhalt signiert und
verschlüsselt. Deswegen steht die PGP/Inline Methode auch nur bei
Nachrichten ohne Anhängen zur Verfügung. Wir raten davon ab diese
Methode dauerhaft zu aktivieren.
\item \Menu{Wähle Verschlüsselungseinstellungen automatisch bei Antwort oder
Weiterleitung}
Wenn Sie eine verschlüsselte oder signierte Nachricht erhalten, wird
eine sinnvollen kryptografischen Voreinstellung für die Weiterleitung
oder Antwort vorgenommen. Dies Option ist standardmäßig aktiviert.
\item \Menu{Suche automatisch nach OpenPGP Schlüsseln bei Verschlüsselung}
Wenn Sie eine Nachricht an einen bislang unbekannten Empfänger senden
und die Option zum verschlüsseln aktiviert haben, so wird automatisch
auf dem Schlüsselserver (siehe Kapitel \ref{ch:keyserver}) nach einem
passenden Schlüssel für den Empfänger gesucht.
\end{itemize}
\end{enumerate}
Alle Optionen sind nach einer Neuinstallation bereits sinnvoll
vorbelegt.
\clearpage
%\label{OLandWord}
%Um verschlüsselte Nachrichten mit Outlook versenden zu können, müssen
%Sie sicherstellen, dass Sie \textbf{nicht} Microsoft Word zum
%Verfassen der Nachrichten benutzen.
%Des Weiteren ist anzuraten auf HTML-Nachrichten zu verzichten.\\
%Sie können dies im Menüpunkt \Menu{Extras$\rightarrow$Optionen} auf der
%Karteikarte \Menu{E-Mail-Format} kontrollieren. Das Nachrichtenformat
%sollte auf \Menu{Nur-Text} eingestellt sein (siehe markierter
%Bereich). Sollten Sie dennoch HTML für signierte oder verschlüsselte
%\Email{}s verwenden, können dabei beim Empfänger die
%Formatierungsinformationen verloren gehen.
% screenshot: Outlook E-Mail-Format options
%\IncludeImage[width=0.6\textwidth]{sc-gpgol-options-textformat_de}
%\textbf{Beachten Sie:}
%Mit der Programmerweiterung GpgOL von Gpg4win wird Outlook 2003/2007
%um die Möglichkeit erweitert, mit \Email{}s nach dem OpenPGP-Standard
%umzugehen. \\
%Gpg4win befähigt Outlook 2007 unter WindowsXP und Outlook 2003 auch,
%AES-verschlüsselte S/MIME-\Email{}s zu entschlüsseln und
%zu erzeugen, da Gpg4win mit GnuPG eine eigene, von Outlook und Windows
%unabhängige Kryptokomponente mitbringt. Nur Outlook 2007 unter Windows
%Vista beherrscht AES-verschlüsselte S/MIME-\Email{}s auch ohne Gpg4win.
%\clearpage
\T\chapter{GnuPG mit anderen \Email{}-Programmen nutzen}
\W\chapter*{B GnuPG mit anderen \Email{}-Programmen nutzen}
\label{ch:plugins}
Das Gpg4win-Kompendium geht vor allem auf das \Email{}-Programm
Outlook ein. GnuPG ist jedoch mit allen anderen \Email{}-Programmen
auch verwendbar. Große Unterschiede gibt es jedoch im Bedienkomfort:
Je besser GnuPG in ein \Email{}-Programm integriert ist, desto
einfacher die Verwendung.
Die einfachste Methode, z.B. wenn ein \Email{}-Programm überhaupt
nichts über GnuPG weiß, ist die Verschlüsselung via Zwischenablage
mit Hilfe von Kleopatra. Dies funktioniert nur für OpenPGP, für S/MIME
und komplexe PGP/MIME-\Email{}s werden Sie über eine
Zwischenspeicherung als Datei gehen müssen. Beide Methoden werden im
ersten Teil dieses Kompendiums beschrieben.
Eine Integration von GnuPG wird derzeit für folgende
\Email{}-Programme unter Windows angeboten:
\begin{description}
\item[Thunderbird] mit
\textbf{Enigmail}\footnote{\uniurl{http://www.thunderbird-mail.de/wiki/Enigmail\_OpenPGP}}.
\index{Thunderbird} \index{Enigmail}
\item[Outlook ab Version 2003] mit GpgOL. GpgOL ist Bestandteil des
Gpg4win-Pakets. \index{Outlook}
\item[Claws Mail:]\index{Claws Mail} Dieses \Email{}-Programm ist
verwandt mit dem Gpg4win-Paket und kann optional installiert werden.
Eine solche Installation konfiguriert bereits die Programmerweiterung für die
Verwendung von PGP/MIME und S/MIME. Diese Erweiterung verwendet
jedoch nicht Kleopatra und bietet daher derzeit nicht denselben
Komfort, wie die Outlook-Erweiterung GpgOL.
\item[KMail/Kontact:]\index{KMail}\index{Kontact} Eine komfortable und
erprobte Integration von GnuPG bieten KMail und Kontact. Sie sind
für nahezu jedes GNU/Linux-System und neuerdings auch für Windows
und MacOS X verfügbar.
\end{description}
\clearpage
\T\chapter{Automatische Installation von Gpg4win}
\W\chapter*{C Automatische Installation von Gpg4win}
\label{ch:auto}
\index{Automatische Installation}
In diesem Kapitel wird die automatisierte Installation (ohne
Benutzerdialoge) erläutert.
In einigen Fällen, wie z.B. für Software-Verteilungssysteme, ist es
notwendig, dass die Installation von Gpg4win ohne die Interaktion über
Dialoge funktioniert. Um aber trotzdem vorab alle
Installationseinstellungen bestimmen zu können, unterstützt Gpg4win
das Setzen des Installationspfads und weiterer Optionen auf der
Kommandozeile wie auch in einer Steuerungsdatei.
Der Installationspfad kann mit der Option \Filename{/D=}
angegeben werden, welche als letzte Option auf der Kommandozeile
übergeben werden muss. Der Dateiname (hier: \Filename{gpg4win.exe})
kann je nach Version variieren. Die Groß-/Kleinschreibung bei der
Eingabe in der Kommandozeile ist hierbei wichtig. Eventuell sind noch
Zugriffsrechte (z.B. lesen und schreiben) auf den Installationsordner
zu setzen. Ein Beispiel:\\
\Filename{gpg4win.exe /D=D:\back{}Programme\back{}Gpg4win}
~\\Mit der Option \Filename{/S} läuft die Installation "`still"' (also
ohne Dialog) ab. Ohne Angabe von weiteren Parametern werden alle
Voreinstellungen übernommen.
Gpg4win unterstützt auch eine sogenannte Steuerungsdatei. Mit der
Option \Filename{/C=} kann eine Steuerungsdatei (Name endet
üblicherweise auf \Filename{.ini}) angegeben werden.
Ein weiteres Beispiel:\\
\Filename{gpg4win.exe /S /C=C:\back{}TEMP\back{}gpg4win.ini}
~\\
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Diese \Filename{.ini} Datei sollte genau einen Abschnitt
\Filename{[gpg4win]} enthalten. Dort können diverse Einstellungen
vorgenommen werden, darunter absolute Pfadangaben für die zu
installierenden Konfigura\-tionsdateien. Relative Pfade, also abhängig
vom aktuellen Arbeitsverzeichnis, dürfen hier nicht angegeben werden.
Absolute Pfade enthalten den vollständigen Pfad inklusive der
Laufwerksangabe. In der Regel sind die Einstellungen dann anzugeben,
wenn nicht die Voreinstellung verwendet werden soll. Ausnahmen davon
sind im Beispiel auf der nächsten Seite dokumentiert.
\clearpage
Hier ist ein Beispiel für den Inhalt einer Steuerungsdatei, das
\textbf{alle} erlaubten Schlüsselworte zeigt:
\T\ifthenelse{\boolean{DIN-A5}}{\scriptsize}{}
\begin{verbatim}
[gpg4win]
; Installationseinstellungen. Weg- oder leer lassen für
; Voreinstellung
inst_gpgol = true
inst_gpgex = true
inst_kleopatra = true
inst_gpa = true
inst_compendium = true
; Die Stellen, an denen Verknüpfungen erzeugt werden sollen.
inst_start_menu = true
inst_desktop = true
\end{verbatim}
\T\ifthenelse{\boolean{DIN-A5}}{\normalsize}{}
Ein entsprechender Aufruf zur automatischen Installation mit einer
Steuerungsdatei \Filename{gpg4win.ini} und einem Installationspfad
\Filename{D:\back{}Programme\back{}Gpg4win} könnte also wie folgt
aussehen:\\
\Filename{
\T\ifthenelse{\boolean{DIN-A5}}{\scriptsize}{}
gpg4win.exe /S /C=C:\back{}TEMP\back{}gpg4win.ini /D=D:\back{}Programme\back{}Gpg4win
\T\ifthenelse{\boolean{DIN-A5}}{\normalsize}{}
}
\clearpage
\T\chapter{Umstieg von anderen Programmen}
\W\chapter*{D Umstieg von anderen Programmen}
\label{ch:migration}
Dieser Abschnitt erläutert Ihnen, wie Sie von anderen GnuPG-basierten
Programmen auf Gpg4win umsteigen können. Das Installationsprogramm
erkennt einige dieser Programme und warnt Sie in diesem Fall.
Generell ist es ratsam, eine vorhandene Installation eines anderen
GnuPG-basierten Programms zu entfernen, bevor Gpg4win installiert
wird. Es ist hier wichtig, die vorhandenen Schlüssel vorher zu
sichern.
Der einzige sinnvolle Weg, dies zu tun, vollzieht sich unter Verwendung der im
alten Programm vorhandenen Möglichkeiten. Suchen Sie sowohl nach einem
Menüpunkt, um Ihre privaten (geheimen) Schlüssel zu sichern, als auch
nach einem Menüpunkt, um alle vorhandenen öffentlichen Schlüssel zu
sichern. Sichern Sie diese dann in einer oder mehreren Dateien.
Sobald Sie Gpg4win installiert haben, prüfen Sie, ob Ihre alten
Schlüssel bereits vorhanden sind. Sie können dies mit den
%TODO: Zertifikatsmanager vs. Schlüsselmanager
Zertifikatsmanagern Kleopatra oder GPA machen. Sind die Schlüssel
schon vorhanden, so entsprach das alte Verschlüsselungssystem bereits
den neuen Konventionen zum
Speicherort für die Schlüssel und Sie müssen nichts weiter
unternehmen.
Wenn die alten Schlüssel nicht erscheinen, so importieren Sie diese
einfach aus den erstellten Sicherungsdateien. Lesen Sie hierzu das
Kapitel~\ref{ch:ImExport}.
%TODO: Schlüsselmanager vs. Zertifikatsmanager
Falls Ihr altes Kryptografiesystem den Zertifikatsmanager GPA
verwendet, so können Sie die dort vorhandene Backupmöglichkeit
benutzen. Diese sollte sehr ähnlich zu dieser Funktion der GPA-Version
aus Gpg4win sein.
Falls Sie keinen anderen Weg finden, Ihre alten Schlüssel
wiederzufinden, so suchen Sie bitte mit den Bordmitteln von Windows
nach Dateien mit den Namen \Filename{secring.gpg} und
\Filename{pubring.gpg} und importieren diese beiden Dateien mittels
Kleopatra\footnote{Dies ist nicht der offizielle Weg, funktioniert
aber noch mit allen aktuellen GnuPG-Versionen.}.
\clearpage
\T\section*{Migration von Gpg4win-1.1.x nach Gpg4win-2.x}
\W\section*{D.1 Migration von Gpg4win-1.1.x nach Gpg4win-2.x}
\index{Migration von Gpg4win}
Es wird dringend empfohlen, zunächst Gpg4win-1.1.x zu deinstallieren,
bevor anschließend Gpg4win-2.x installiert wird.
\subsubsection{Technischer Hintergrund}
Das Problem bei einer Migration \textit{ohne} Deinstallation von
Gpg4win-1.1.x ist folgende Sequenz:
1. Installation von Gpg4win in der Version X, inkl. Komponente K.
2. Installation von Gpg4win in der Version X+1, aber Komponente K wird
diesmal deselektiert.\\
Effekt: Die alte Komponente von K bleibt installiert in der Version X.
3. Deinstallation von Gpg4win in der Version X+1.\\
Effekt: Die Komponente K der Version X bleibt verwaist zurück.\\
Dies ist eine Beschränkung von Gpg4win seit der ersten Version.
\textbf{Anmerkung 1}: Beim Sprung von 1.1.x auf 2.x tritt dieser Fall
\textit{immer} ein, da bestimmte Komponenten K nicht mehr existieren
(z.B. GpgEE), also auf jeden Fall (automatisch) als deselektiert zu
betrachten sind.
\textbf{Anmerkung 2}: Im Falle von MSI übernimmt Windows die Aufgabe,
nicht mehr verwendete Komponenten zu entfernen. Das bedeutet, dass
der MSI-Installationsassistent in dem obigen Szenario korrekt handelt
(alte Komponente K in Version X ist nach Schritt 2 nicht mehr auf dem
Betriebssystem vorhanden).
\clearpage
\T\chapter{Deinstallation von Gpg4win}
\W\chapter*{E Deinstallation von Gpg4win}
\index{Deinstallation}
%TODO: Verweise zum Sichern von Schlüssel einfügen
%TODO: Brauchen wir das noch? Kann das Weg? Verweis zur Webseite?
Soll Gpg4win deinstalliert werden, dann sollten Sie zunächst alle
nicht notwendigen Anwendungen beenden und alle Schlüssel sichern.
Falls Sie auf Ihrem Rechner mit eingeschränkten Rechten arbeiten
sollten, ist es für die Deinstallation außerdem notwendig, mit
\textbf{Administratorrechten} angemeldet zu sein. Wurde die
Installation bereits über Ihr Benutzerkonto durchgeführt, so verfügt
es über Administratorrechte.
~\\
\textbf{Wichtig:}\\
Bevor Sie die Deinstallation durchführen, sollten Sie unbedingt Ihre
mit GpgOL bearbeiteten \Email{}s in Outlook von den
GpgOL-Informationen "`bereinigen"'. Denn: Gpg4win/GpgOL setzt für
jede Krypto-\Email{} in Outlook eine bestimmte Markierung. Sie
müssen vor der Deinstallation diese Markierung zurücksetzen, damit
andere Kryptografiesoftware Ihre \Email{}s später korrekt lesen und
z.B. entschlüsseln kann.
GpgOL stellt Ihnen für diese \textbf{Re-Migration}\index{Re-Migration
von GpgOL} direkt in Outlook folgende Funktion bereit:\\
Wählen Sie einen Outlook-\Email{}-Ordner aus, dessen \Email{}s Sie
zurücksetzen möchten, und klicken Sie im Menü von Outlook auf
\Menu{Extras $\rightarrow$ GpgOL Eigenschaften aus diesem Ordner
entfernen}.
Sie werden darauf hingewiesen, dass GpgOL (für die anschließende
Deinstallation) ausgeschaltet wird. Bestätigen Sie die Frage, ob Sie
die \Email{}s der jeweiligen Ordner von den Markierungen durch GpgOL
reinigen wollen, mit \Menu{Ja}.\\
Führen Sie dieses Kommando nun für alle Outlook-Ordner durch.
Nachdem Sie alle Ordner zurückgesetzt haben, beginnen Sie mit der
Deinstallation von Gpg4win.\\
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Es gibt drei Möglichkeiten die Deinstallation auszuführen:
\begin{itemize}
\item Einmal mit den Bordmitteln von Microsoft Windows:
Öffnen Sie
\Menu{Start$\rightarrow$Einstellungen$\rightarrow$Systemsteuerung$\rightarrow$Software}
und wählen Sie dann \Menu{GnuPG for Windows} aus.
Mit dem Knopf \Button{Entfernen} deinstallieren Sie alle
Gpg4win-Programmkomponenten von Ihrem Betriebssystem.
\item Die zweite Möglichkeit zur Deinstallation von Gpg4win bietet
Ihnen die ausführbare Datei \Filename{gpg4win-uninstall.exe}. Sie
wird mit Gpg4win mitgeliefert und liegt im Installationsordner (in
der Regel
\Filename{C:$\backslash$Programme$\backslash$GNU$\backslash$GnuPG$\backslash$}).
Falls Sie bei der Installation einen anderen als den
voreingestellten Pfad gewählt hatten, werden Sie das
Deinstallationsprogramm an entsprechender Stelle finden.
\item Diese ausführbare Datei ist auch im Startmenü unter Gpg4win
vorhanden.
\end{itemize}
\newpage
In allen drei Fällen werden alle Dateien von Gpg4win aus dem
Installationsordner sowie die Verknüpfungen in Startmenü, Desktop und
Schnellstartleiste entfernt.
\textbf{Nicht} gelöscht werden die benutzerspezifischen und
systemweiten Anwendungs-Dateiordner mit den
Konfigurationseinstellungen:
\begin{itemize}
\item Benutzerspezifische GnuPG-Anwendungsdaten\\
in \Filename{\%APPDATA\%\back{}gnupg}, das entspricht in der
Regel dem Dateiordner: \\ \Filename{C:\back{}Dokumente und
Einstellungen\back{}\back{}\T\\
Anwendungsdaten\back{}gnupg\back{}}
In diesem \Filename{gnupg}-Dateiordner befinden sich sämtliche
persönlichen GnuPG-Daten, also die persönlichen Schlüssel,
Vertrauensstellungen und Programmkonfigurationen.
\item Systemweite GnuPG-Anwendungsdaten\\ in
\Filename{\%COMMON\_APPDATA\%\back{}GNU}, das entspricht in
der Regel dem Dateiordner: \\ \Filename{C:\back{}Dokumente und
Einstellungen\back{}All
Users\back{}\T\\
Anwendungsdaten\back{}GNU\back{}}
\end{itemize}
\T\section*{Deinstallation von Gpg4win-1.1.3}
\W\section*{F.1 Deinstallation von Gpg4win-1.1.3}
Nach der Deinstallation von Gpg4win-1.1.3 bleiben folgende
Dateiordner bzw. Registryschlüssel zurück:
\begin{itemize}
\item Dateinamen:\\
\Filename{\%APPDATA\%$\backslash$gnupg} (Wird von einer
Gpg4win2-Installation \textit{weiter} verwendet.)\\
Wichtig: Hier sind Ihre persönlichen privaten und
öffentlichen Schlüssel sowie GnuPG-Ein\-stellungen enthalten.
\item Registryschlüssel:\\
\Filename{HKLM$\backslash$Software$\backslash$GNU$\backslash$GnuPG}
(Wird von einer Gpg4win2"=Installation \textit{nicht} mehr verwendet.)\\
\Filename{HKCU$\backslash$Software$\backslash$GNU$\backslash$GPG4Win}
(Wird von einer Gpg4win2"=Installation \textit{nicht} mehr verwendet.)\\
\Filename{HKCU$\backslash$Software$\backslash$GNU$\backslash$GpgOL}
(Wird von einer Gpg4win2"=Installation \textit{weiter} verwendet.)\\
\Filename{HKCU$\backslash$Software$\backslash$GPGee}
(Wird von einer Gpg4win2"=Installation \textit{nicht} mehr verwendet.)
\end{itemize}
\clearpage
\T\chapter{Historie}
\W\chapter*{F Historie}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
\begin{itemize}
\item "`GnuPP\index{GnuPP} für Einsteiger"', 1. Auflage März 2002 und\\
"`GnuPP für Durchblicker"', 1. Auflage März 2002,\\
Autoren: Manfred J. Heinze, TextLab text+media\\
Beratung: Lutz Zolondz, G-N-U GmbH\\
Illustrationen: Karl Bihlmeier, Bihlmeier \& Kramer GbR\\
Layout: Isabel Kramer, Bihlmeier \& Kramer GbR\\
Fachtext: Dr. Francis Wray, e-mediate Ltd.\\
Redaktion: Ute Bahn, TextLab text+media\\
Herausgeber: Bundesministerium für Wirtschaft und Technologie (BMWi)\\
Verfügbar unter
\uniurl{http://www.gnupp.de/pdf/einsteiger.pdf}
\T\ifthenelse{\boolean{DIN-A5}}{\\}{}
und
\T\ifthenelse{\boolean{DIN-A5}}{}{\\}
\uniurl{http://www.gnupp.de/pdf/durchblicker.pdf}.
% Der Abschnitt "`History"' ist im Originaldokument nicht vorhanden
% und wurde von Werner Koch beigefügt.
\item Revidierte nicht-veröffentlichte Version von TextLab text+media.
\item "`Gpg4win für Einsteiger"' und "`Gpg4win für Durchblicker"', Dezember 2005 \\
\"Uberarbeitung: Werner Koch, g10 Code GmbH\\
Herausgeber: die Gpg4win-Initiative
\item Dank der Erlaubnis des BMWi vom 14. November 2007 wurde
der unveränderbare Abschnitt "`Impressum"' entfernt und an die aktuelle
Version angepasst.
\item Das "`Gpg4win-Kompendium"' fasst "`Gpg4win für Einsteiger"' und
"`Gpg4win für Durchblicker"' zusammen und ist in den Jahren 2009/2010
umfassend für Gpg4win2 aktualisiert und ergänzt worden.\\
Grundlegende \"Uberarbeitung:\\
Werner Koch, g10 Code GmbH\\
Florian v. Samson, Bundesamt f\"ur Sicherheit in der
Informationstechnik (BSI)\\
Emanuel Sch\"utze, Intevation GmbH\\
Dr. Jan-Oliver Wagner, Intevation GmbH
\item Im Rahmen von des BSI Auftrages "`Gpg4all"' im Jahre 2017 umfassend
überarbeitet, ergänzt und aktualisiert worden.\\
Grundlegende \"Uberarbeitung:\\
Jochen Saalfeld, Intevation GmbH\\
Emanuel Schütze, Intevation GmbH
Das Programmpaket Gpg4win und das Gpg4win-Kompendium sind
verfügbar unter:
\T\ifthenelse{\boolean{DIN-A5}}{}{\\}
\uniurl{http://www.gpg4win.de}
\end{itemize}
\clearpage
%GNU Free Documentation License
\input{fdl-book.tex}
\clearpage
% in Inhaltsverzeichnis aufnehmen
\T\pdfbookmark[-1]{Index}{Index}
\T\begingroup
\T\let\WriteBookmarks\relax
\T\phantomsection
\T\addcontentsline{toc}{chapter}{Index}
\T\endgroup
% Index ausgeben
\T\printindex
\end{document}
diff --git a/doc/manual/gpg4win-compendium-en.tex b/doc/manual/gpg4win-compendium-en.tex
index 12f56e74..c687f091 100644
--- a/doc/manual/gpg4win-compendium-en.tex
+++ b/doc/manual/gpg4win-compendium-en.tex
@@ -1,5841 +1,5842 @@
% gpg4win-compendium-en.tex
% Note, that this a HyperLaTeX source and not plain LaTeX!
% DIN A4
\documentclass[a4paper,11pt,oneside,openright,titlepage]{scrbook}
% DIN A5
%\documentclass[a5paper,10pt,twoside,openright,titlepage,DIV11,normalheadings]{scrbook}
\usepackage{ifthen}
\usepackage{hyperlatex}
% Switch between papersize DIN A4 and A5
% Note: please comment in/out one of the related documentclass lines above
\T\newboolean{DIN-A5}
%\T\setboolean{DIN-A5}{true}
% define packages
\usepackage{times}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\T\usepackage[english]{babel}
\W\usepackage[english]{babel}
\usepackage[babel]{csquotes}
\T\defineshorthand{``}{\openautoquote}
\T\defineshorthand{''}{\closeautoquote}
\usepackage{ifpdf}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{moreverb}
\T\ifthenelse{\boolean{DIN-A5}}{}{\usepackage{a4wide}}
\usepackage{microtype}
\W\usepackage{rhxpanel}
\W\usepackage{sequential}
\usepackage[table]{xcolor}
\usepackage{color}
\usepackage{fancyhdr}
\usepackage{imakeidx}
% write any html files directly into this directory
% XXX: This is currently deactivated, but sooner or later
% we need this to not let smae filenames overwrite each other
% when we have more than one compendium. The Makefile.am needs
% to be updated for this as well - not a trivial change.
\W\htmldirectory{compendium-html/en}
% Hyperref should be among the last packages loaded
\usepackage[breaklinks,
bookmarks,
bookmarksnumbered,
pdftitle={The Gpg4win Compendium},
pdfauthor={Emanuel Schütze; Werner Koch; Florian v. Samson; Dr.
Jan-Oliver Wagner; Ute Bahn; Karl Bihlmeier; Manfred J. Heinze;
Isabel Kramer; Dr. Francis Wray},
pdfsubject={Secure e-mail and file encryption using GnuPG for Windows},
pdfkeywords={Gpg4win; e-mail; file; encrypt; decrypt; sign;
OpenPGP; S/MIME; X.509; certificate; Kleopatra; GpgOL; GpgEX;
GnuPG; secure; email security; cryptography; public key;
Free Software; signature; verify; FLOSS; Open Source Software;
PKI; folder}
]{hyperref}
%\IfFileExists{hyperxmp.sty}{
% \usepackage{hyperxmp}
% \hypersetup{
% pdfcopyright={GNU Free Documentation License (GFDL)},
% pdflicenseurl={http://www.gnu.org/copyleft/fdl.html}
% }
%}
% set graphic extension
\begin{latexonly}
\ifpdf
\DeclareGraphicsExtensions{.png}
\else
\DeclareGraphicsExtensions{.eps}
\fi
\end{latexonly}
% set page header/footer
\T\ifthenelse{\boolean{DIN-A5}}
{% DIN A5
\T\fancyhead{} % clear all fields
\T\fancyhead[LO,RE]{\itshape\nouppercase{\leftmark}}
\T\fancyhead[RO,LE]{\large\thepage}
\T\fancyfoot[CE]{www.bomots.de}
\T\fancyfoot[CO]{Sichere }
\T\pagestyle{fancy}
\renewcommand\chaptermark[1]{\markboth{\thechapter. \ #1}{}}
\renewcommand{\footrulewidth}{0.2pt}
}
{% DIN A4
\T\fancyhead{} % clear all fields
\T\fancyhead[LO,RE]{The Gpg4win Compendium \compendiumVersionEN
\T\\
\T\itshape\nouppercase{\leftmark}}
\T\fancyhead[RO,LE]{\includegraphics[height=0.7cm]{images-compendium/gpg4win-logo}}
\T\fancyfoot[C]{\thepage}
\T\pagestyle{fancy}
}
\makeindex
% define custom commands
\newcommand{\Button}[1]{[\,\textit{#1}\,]}
\newcommand{\Menu}[1]{\textit{#1}}
\newcommand{\Filename}[1]{\small{\texttt{#1}}\normalsize}
\newcommand{\Email}{e-mail}
\newcommand{\EchelonUrl}{http://www.heise.de/tp/r4/artikel/6/6928/1.html}
\newcommand\margin[1]{\marginline {\sffamily\scriptsize #1}}
\newcommand{\marginOpenpgp}{\marginline{\vspace{10pt}\includegraphics[width=1.5cm]{images-compendium/openpgp-icon}}}
\newcommand{\marginSmime}{\marginline{\vspace{10pt}\includegraphics[width=1.5cm]{images-compendium/smime-icon}}}
\newcommand{\IncludeImage}[2][]{
\begin{center}
\texorhtml{%
\includegraphics[#1]{images-compendium/#2}%
}{%
\htmlimg{../images-compendium/#2.png}%
}
\end{center}
}
% custom colors
\definecolor{gray}{rgb}{0.4,0.4,0.4}
\definecolor{lightgray}{rgb}{0.7,0.7,0.7}
\T\parindent 0cm
\T\parskip\medskipamount
% Get the version information from another file.
% That file is created by the configure script.
\input{version.tex}
% Define universal url command.
% Used for latex _and_ hyperlatex (redefine see below).
% 1. parameter = link text (optional);
% 2. parameter = url
% e.g.: \uniurl[example link]{http:\\example.com}
\newcommand{\uniurl}[2][]{%
\ifthenelse{\equal{#1}{}}
{\texorhtml{\href{#2}{\Filename{#2}}}{\xlink{#2}{#2}}}
{\texorhtml{\href{#2}{\Filename{#1}}}{\xlink{#1}{#2}}}}
%%% HYPERLATEX %%%
\begin{ifhtml}
% HTML title
\htmltitle{Gpg4win Compendium}
% TOC link in panel
\htmlpanelfield{Contents}{hlxcontents}
% link to DE version
\htmlpanelfield{\htmlattributes*{img}{style=border:none title=German}
\htmlimg{../images-hyperlatex/german.png}{German}}{../de/\HlxThisUrl}
% name of the html files
\htmlname{gpg4win-compendium}
% redefine bmod
\newcommand{\bmod}{mod}
% use hlx icons (default path)
\newcommand{\HlxIcons}{../images-hyperlatex}
% Footer
\htmladdress{$\copyright$ \compendiumDateEN, v\compendiumVersionEN%~\compendiuminprogressEN
\html{br/}
\html{small}
The Gpg4win Compendium is filed under the
\link{GNU Free Documentation License v1.2}{fdl}.
\html{/small}}
% Changing the formatting of footnotes
\renewenvironment{thefootnotes}{\chapter*{Footnotes}\begin{description}}{\end{description}}
% redefine universal url for hyperlatex (details see above)
\newcommand{\linktext}{0}
\renewcommand{\uniurl}[2][]{%
\renewcommand{\linktext}{1}%
% link text is not set
\begin{ifequal}{#1}{}%
\xlink{#2}{#2}%
\renewcommand{linktext}{0}%
\end{ifequal}
% link text is set
\begin{ifset}{linktext}%
\xlink{#1}{#2}%
\end{ifset}}
% SECTIONING:
%
% on _startpage_: show short(!) toc (only part+chapter)
\setcounter {htmlautomenu}{1}
% chapters should be
, Sections
etc.
% (see hyperlatex package book.hlx)
\setcounter{HlxSecNumBase}{-1}
% show _numbers_ of parts, chapters and sections in toc
\setcounter {secnumdepth}{1}
% show parts, chapters and sections in toc (no subsections, etc.)
\setcounter {tocdepth}{2}
% show every chapter (with its sections) in _one_ html file
\setcounter{htmldepth}{2}
% set counters and numberstyles
\newcounter{part}
\renewcommand{\thepart}{\arabic{part}}
\newcounter{chapter}
\renewcommand{\thecapter}{\arabic{chapter}}
\newcounter{section}[chapter]
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\end{ifhtml}
%%% TITLEPAGE %%%
\title{
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{gpg4win-logo}%
\T~\newline
\T\ifthenelse{\boolean{DIN-A5}}%
% DIN A5:
{\begin{latexonly}
\LARGE The Gpg4win Compendium\\[0.3cm]
\large \textmd{Secure e-mail and file encryption
\\[-0.3cm] using GnuPG for Windows}
\end{latexonly}
}%
% DIN A4:
{The Gpg4win Compendium \\
\texorhtml{\Large \textmd}{\large}
{Secure e-mail and file encryption using GnuPG for
Windows}
}
}
\author{
% Hyperlatex: Add links to pdf versions and Homepage
\htmlonly{
\xml{p}\small
\xlink{PDF version as a download}{http://wald.intevation.org/frs/?group_id=11}
\xml{br}
\xlink{\htmlattributes*{img}{style=border:none title=German}
\htmlimg{../images-hyperlatex/german.png}{}
German Version}{../de/\HlxThisUrl}
\xml{br}
To the \xlink{Gpg4win homepage}{http://www.gpg4win.org/}
\xml{p}
}
% Authors
\T\\[-1cm]
\small Based on a version by
\T\\[-0.2cm]
\small Ute Bahn, Karl Bihlmeier, Manfred J. Heinze,
\small Isabel Kramer und Dr. Francis Wray.
\texorhtml{\\[0.2cm]}{\\}
\small Extensively revised by
\T\\[-0.2cm]
\small Werner Koch, Florian v. Samson, Emanuel Schütze and Dr. Jan-Oliver Wagner.
\texorhtml{\\[0.2cm]}{\\}
\small Translated from the German original by
\T\\[-0.2cm]
\small Brigitte Hamilton
\T\\[0.4cm]
}
\date{
\T\ifthenelse{\boolean{DIN-A5}}%
% DIN A5:
{\begin{latexonly}
\large A publication of the Gpg4win Initiative
\\[0.2cm]
Version \compendiumVersionEN~from \compendiumDateEN
\end{latexonly}
}%
% DIN A4:
{A publication of the Gpg4win Initiative
\\[0.2cm]
Version \compendiumVersionEN~from \compendiumDateEN\\
% \small\compendiuminprogressDE%
}
}
% BEGIN DOCUMENT %%%
\begin{document}
+\setlength{\headheight}{25.10403pt}.
\T\pdfbookmark[0]{Title page}{titel}
% set title page
\texorhtml{
\ifthenelse{\boolean{DIN-A5}}
{\noindent\hspace*{7mm}\parbox{\textwidth}{\centering\maketitle}\cleardoublepage}
{\maketitle}
}
{\maketitle}
% improved handling of long (outstanding) lines
\T\setlength\emergencystretch{3em} \tolerance=1000
\T\section*{Publisher's details}
\W\chapter*{Publisher's details}\\
\thispagestyle{empty}
Copyright \copyright{} 2002 Bundesministerium für Wirtschaft und
Technologie\footnote{Any copying, distribution and/or modification to
this document may not create any impression of an association with the
Bundesministerium für Wirtschaft und Technologie
(Federal Ministry for
Economics and Technology)}\\
Copyright \copyright{} 2005 g10 Code GmbH\\
Copyright \copyright{} 2009, 2010 Intevation GmbH
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled ``GNU Free
Documentation License''.
\clearpage
\chapter*{About this compendium}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
The Gpg4win Compendium consists of three parts:
\begin{itemize}
\item \textbf{Part~\link*{1}[\ref{part:Novices}]{part:Novices}
``For Novices''}: A quick course in Gpg4win.
\item \textbf{Part~\link*{2}[\ref{part:AdvancedUsers}]{part:AdvancedUsers}
``For Advanced Users''}: Background information for Gpg4win.
\item \textbf{Annex}: Additional technical information about Gpg4win.\\
\end{itemize}
\textbf{Part~\link*{1}[\ref{part:Novices}]{part:Novices} ``For
Novices''} provides a brief guide for the installation and daily use
of Gpg4win program components. The practice robot \textbf{Adele}
will help you with this process and allow you to practice
the de- and encryption process (using OpenPGP) until you
have become familiar with Gpg4win.
The amount of time required to work through this brief guide will
depend on your knowledge of your computer and Windows.
It should take about one hour.\\
\textbf{Part~\link*{2}[\ref{part:AdvancedUsers}]{part:AdvancedUsers}
``For Advanced Users''} provides background information which
illustrates the basic mechanisms on which Gpg4win is based, and also
explains some of its less commonly used capabilities. Part I and II can be
used independently of each other. However, to achieve an optimum
understanding, you should read both parts in the indicated sequence,
if possible.\\
The \textbf{Annex} contains details regarding the specific technical
issues surrounding Gpg4win, including the GpgOL Outlook program
extension.\\
Just like the cryptography program package Gpg4win, this compendium was
not written for mathematicians, secret service agents or
cryptographers, but rather was written to be read and
understood \textbf{by anyone.}\\
The Gpg4win program package and compendium can be obtained at: \\
\uniurl{http://www.gpg4win.org}
\clearpage
\chapter*{Legend\htmlonly{\html{br}\html{br}}}
This compendium uses the following text markers:
\begin{itemize}
\item \textit{Italics} are used for text that appears on a screen
(e.g. in menus or dialogs). In addition, square
brackets are used to mark \Button{buttons}.
Sometimes italics will also be used for individual words in
the text, if their meaning in a sentence is to be highlighted
without disrupting the text flow, by using \textbf{bold} fond
(e.g.\textit{only } OpenPGP).
\item \textbf{Bold} is used for individual words or sentences
which are deemed particularly important and hence must be
highlighted. These characteristics make it easier for readers
to quickly pick up highlighted key terms and important
phrases.
\item \texttt{Typewriter font} is used for all file names, paths,
URLs, source codes, as well as inputs and outputs (e.g. for
command lines).
\end{itemize}
\cleardoublepage
\T\pdfbookmark[0]{\contentsname}{toc}
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Part I
\clearpage
\T\part{For Novices}
\W\part*{\textbf{I For Novices}}
\label{part:Novices}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\chapter{Gpg4win -- Cryptography for Everyone}
\index{Cryptography}
What is Gpg4win? Wikipedia answers this question as follows:
\begin{quote}
\textit{Gpg4win is an installation package for Windows
(2000/XP/2003/Vista) with computer programs and
handbooks for \Email{}and file encryption. It includes the
GnuPG encryption software, as well as several applications and
documentation. Gpg4win itself and the programs contained in
Gpg4win are Free Software.}
\end{quote}
The ``Novices'' and ``Advanced Users'' handbooks have been combined for
this second version under the name ``Compendium''. In Version 2,
Gpg4win includes the following programs:
\begin{itemize}
\item \textbf{GnuPG}\index{GnuPG}\\ GnuPG forms the heart of
Gpg4win -- the actual encryption software.
\item \textbf{Kleopatra}\index{Kleopatra}\\ The central
certificate administration\index{Certificate Administration} of
Gpg4win, which ensures uniform user navigation for all
cryptographic operations.
\item \textbf{GNU Privacy Assistant (GPA)}\index{GNU Privacy
Assistent|see{GPA}}\index{GPA}\\ is an alternative program for
managing certificates, in addition to Kleopatra.
\item \textbf{GnuPG for Outlook (GpgOL)}\index{GnuPG für
Outlook|see{GpgOL}}\index{GpgOL}\\ is an extension for
Microsoft Outlook 2003 and 2007, which is used to sign and
encrypt messages.
\item \textbf{GPG Explorer eXtension (GpgEX)}\index{GPG Explorer
eXtension|see{GpgEX}}\index{GpgEX}\\ is an extension for
Windows Explorer\index{Windows-Explorer} which can be used to
sign and encrypt files using the context menu.
\end{itemize}
Using the GnuPG (GNU Privacy Guard) encryption program,
anyone can encrypt \Email{}s securely, easily and at no cost. GnuPG can be
used privately or commercially without any restrictions. The
encryption technology used by GnuPG is secure, and cannot be broken
based on today's state of technology and research.
GnuPG is \textbf{Free Software}\footnote{Often also referred to as
Open Source Software (OSS).}.\index{Free Software} That means that
each person has the right to use this software for private or
commercial use. Each person may and can study the source code of the
programs and -- if they have the required technical knowledge -- make
modifications and forward these to others.
With regard to security software, this level of transparency --
guaranteed access to the source code -- forms an indispensable
foundation. It is the only way of actually checking the
trustworthiness of the programming and the program itself.
GnuPG is based on the international standard
\textbf{OpenPGP}\index{OpenPGP} (RFC 4880), which is fully compatible with
PGP and also uses the same infrastructure (certificate server etc.) as the
latter. Since Version 2 of GnuPG, the cryptographic
standard\textbf{S/MIME}\index{S/MIME} (IETF RFC 3851, ITU-T
X.509\index{X.509} and ISIS-MTT/Common PKI) are also supported.
PGP (``Pretty Good Privacy'')\index{PGP} is not Free Software; many
years ago, it was briefly available at the same conditions as GnuPG.
However, this version has not corresponded with the latest state of
technology for some time.
Gpg4win's predecessors were supported by the Bundesministerium für
Wirtschaft und Technologie \index{Bundesministerium für Wirtschaft und
Technologie} as part of the Security on the Internet initiative.
Gpg4win and Gpg4win2 were supported by the Bundesamt für Sicherheit in
der Informationstechnik (BSI). \index{Bundesamt für Sicherheit in der
Informationstechnik}
Additional information on GnuPG and other projects undertaken by the Federal Government for security on the Internet can be found on the webpages
\uniurl[www.bsi.de]{http://www.bsi.de} and
\uniurl[www.bsi-fuer-buerger.de]{http://www.bsi-fuer-buerger.de} of the Bundesamt für Sicherheit in der Informationstechnik.
\clearpage
\chapter{Encrypting \Email{}s: because the envelope is missing}
\label{ch:why}
\index{Envelope}
The encryption of messages is sometimes described as the second-oldest
profession in the world. Encryption techniques were used as far back
as Egypt's pharaoh Khnumhotep II, and during Herodot's and Cesar's time. Thanks
to Gpg4win, encryption is no longer the reserve of kings, but is
accessible to everyone, for free.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.9\textwidth]{egyptian-stone}
Computer technology has provided us with some excellent tools to
communicate around the globe and obtain information. However, rights
and freedoms which are taken for granted with other forms of
communication must still be secured when it comes to new technologies.
The Internet has developed with such speed and at such a scale that it
has been difficult to keep up with maintaining our rights.
With the old-fashioned way of writing a letter, written contents are
protected by an envelope. The envelope protects messages from prying
eyes, and it is easy to see if an envelope has been manipulated. Only
if the information is not important, do we write it on an unprotected
post card, which can also be read by the mail carrier and others.
\clearpage
You and no one else decides whether the message is important,
confidential or secret.
\Email{}s do not provide this kind of freedom. An \Email{} is like a
post card - always open, and always accessible to the electronic
mailman and others. It gets even worse: while computer technology
offers the option of transporting and distributing millions of
\Email{}s, it also provides people with the option of checking them.
Previously, no one would have seriously thought about collecting all
letters and postcards, analyse their contents or monitor senders and
recipients. It would not only have been unfeasiable, it would have
also taken too long. However, modern computer technology has made this
a technical possibility. There are indications that this is already
being done on a large scale. A Wikipedia article on the Echelon
system\footnote{\uniurl[\EchelonUrl]{\EchelonUrl}} \index{Echelon
system} provides interesting background information on this topic.
Why is this an issue -- because the envelope is missing.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{sealed-envelope}
\clearpage
What we are suggesting here is essentially an ``envelope'' for your
electronic mail. Whether you use it, when or for whom and how often -
that is entirely up to you. Software such as Gpg4win merely returns
the right to choose to you. The right to choose whether you think a message
is important and requires protection.
This is the key aspect of the right to privacy of correspondence, post
and telecommunications in \index{Telecommunication secrecy}
\index{Mail secrecy}\index{Correspondence secrecy} the Basic Law, and
the Gpg4win program package allows you to exercise this right. You do
not have to use this software, just as you are not required to use an
envelope. But you have the right.
To secure this right, Gpg4win offers a so-called ``strong encryption
technology''. ``Strong'' in this sense means that it cannot be broken
with known tools. Until recently, strong encryption methods used to be
reserved for military and government circles in many countries. The
right to make them accessible to all citizens was championed by
Internet users, and sometimes also with the help of visionary people
in government institutions, as was the case with support for Free
Software for encryption purposes. Security experts around the world
now view GnuPG as a practical and secure software.
\textbf{It is up to you how you want to value this type of security.}
You alone decide the relationship between the convenience of encryption
and the highest possible level of security. These include the few but
important precautions you must make to implement to ensure that
Gpg4win can be used properly. This compendium will explain this
process on a step-by-step basis.
\clearpage
\chapter{How Gpg4win works}
\label{ch:FunctionOfGpg4win}
The special feature of Gpg4win and its underlying
\textbf{``Public Key'' method}\index{public key method@``Public Key'' Method}
is that anyone can and should understand it. There is nothing
secretive about it -- it is not even very difficult to understand.
The use of individual Gpg4win program components is very simple, even
though the way it works is actually quite complicated. This section
will explain how Gpg4win works -- not in all details, but enough to
explain the principles behind this software. Once you are familiar
with the principles, you will have considerable trust in the security
offered by Gpg4win.
At the end of this book, in Chapter~\ref{ch:themath}, you can also open
the remaining secrets surrounding ``Public Key'' cryptography and
discover why it is not possible to break messages encrypted with
Gpg4win using current state of technology.
\clearpage
\subsubsection{Lord of the keyrings}
Anyone wishing to secure something valuable locks it away -- with a
key. Even better is a key that is unique and is kept in a safe
location.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{schlapphut-with-key}
If the key should ever fall into the wrong hands, the valuables are no
longer secure. Their security stands and falls with the security and
uniqueness of the key. Therefore the key must be at least as well
protected as the valuables themselves. To ensure that it cannot be
copied, the exact characteristics of the key must also be kept secret.
\clearpage
Secret keys are nothing new in cryptography: it has always been that
keys were hidden to protect the secrecy of the messages. Making this
process very secure is very cumbersome and also prone to errors.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{tangled-schlapphut}
The basic problem with the ``ordinary'' secret transmission of messages
is that the same key is used for both encryption and decryption, and
that both the sender as well as recipient must be familiar with this
secret key. For this reason, these types of encryption systems are
also called \textbf{``symmetric encryption''}.\index{Symmetric encryption}
This results in a fairly paradoxical situation: Before we can use this
method to communicate a secret (an encrypted message), we must have
also communicated another secret in advance: the key. And that is
exactly the problem, namely the constantly occuring issue of
always having to exchange keys while ensuring that they are not
intercepted by third parties.
\clearpage
In contrast -- and not including the secret key -- Gpg4win works with
another key that is fully accessible and public. It is also described
as a ``public key'' encryption system.
This may sound contradictory, but it is not. The clue: It is no longer
necessary to exchange a secret key. To the contrary: The secret key
can never be exchanged! The only key that can be passed on is the
public key (in the public certificate)~-- which anyone can know.
That means that when you use Gpg4win, you are actually using a pair of
keys\index{Key!pair} -- a secret and a second public key. Both key
components are inextricably connected with a complex mathematical
formula. Based on current scientific and technical knowledge, it is
not possible to calculate one key component using the other, and it is
therefore impossible to break the method.
Section \ref{ch:themath} explains why that is.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{verleihnix}
\clearpage
The principle behind public key encryption\index{public key method@``Public Key'' Method}
The \textbf{secret} or \textbf{private key} must be kept secret.
The \textbf{public key} should be as accessible to the general public as much as
possible.
Both key components have very different functions:
\bigskip
\begin{quote}
The secret key component \textbf{decrypts} messages.
\end{quote}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{key-with-shadow-bit}
\begin{quote}
The public key component \textbf{encrypts} messages.
\end{quote}
\clearpage
\subsubsection{The public mail strongbox}
\index{Mail strongbox}
This small exercise is used to explain the difference between the
``public key'' encryption system and symmetric
encryption\index{Symmetric encryption} (``non-public key''
method)
\index{non-public key mehtod@``Non-Public Key'' Method|see{Symmetric encryption}} ...
\bigskip
\textbf{The ``secret key method'' works like this:}
Imagine that you have installed a mail strongbox in front of your
house, which you want to use to send secret messages.
The strongbox has a lock for which there is only one single key. No
one can put anything into or take it out of the box without this key.
This way, your secret messages are pretty secure.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{letter-into-safe}
Since there is only one key, the person you are corresponding with
must have the same key that you have in order to open and lock the mail
strongbox, and to deposit a secret message.
\clearpage
You have to give this key to that person via a secret route.
\bigskip
\bigskip
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{secret-key-exchange}
\clearpage
They can only open the strongbox and read the secret message once they
have the secret key.
Therefore everything hinges on this one key: If a third party knows
the key, it is the end of the secret messages. Therefore you and the
person you are corresponding with \textbf{must exchange the key in a
manner that is as secret} as the message itself.
But actually -- you might just as well give them the secret message
when you are giving them the key...
\textbf{How this applies to \Email{} encryption:} Around the world,
all participants would have to have secret keys and exchange
these keys in secret before they can send secret messages
per \Email{}.
So we might as well forget about this option ...
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{letter-out-of-safe}
\clearpage
\textbf{Now the ``public key'' method}
You once again install a mail strongbox\index{Mail strongbox} in front of
your house. But unlike the strongbox in the first example, this one
is always open. On the box hangs a key -- which is visible to
everyone -- and which can be used by anyone to lock the strongbox
(asymetric encryption method).
\index{Asymmetric encryption}
\textbf{Locking, but not opening:} that is the difference!
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.7\textwidth]{pk-safe-open}
This key is yours and -- as you might have guessed -- it is your public key.
If someone wants to leave you a secret message, they put it in the
strongbox and lock it with your public key. Anyone can do this, since
the key is available to everyone.
No one else can open the strongbox
and read the message. Even the person that has locked the message in
the strongbox cannot unlock it again, e.g. in order to change the
message.
This is because the public half of the key can only be used for locking purposes.
The strongbox can only be opened with one single key: your own secret
and private part of the key.
\clearpage
\textbf{Getting back to how this applies to \Email{} encryption:}
Anyone can encrypt an \Email{} for you.
To do this, they do not need a secret key; quite the opposite, they
only need a totally non-secret \index{Key!public}, ``public'' key.
Only one key can be used to decrypt the \Email{}, namely your private
and secret key\index{Key!private}.
You can also play this scenario another way:
If you want to send someone a secret message, you use their mail
strongbox with their own public and freely available key.
To do this, you do not need to personally know the person you are
writing to, or have to speak to them, because their public key is
always accessible, everywhere. One you have placed your message in the
strongbox and locked it with the recipient's key, the message is not
accessible to anyone, including you. Only the recipient can open the
strongbox with his private key and read the message.
\T\enlargethispage{2\baselineskip}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.75\textwidth]{pk-safe-opened-with-sk}
\clearpage
\textbf{But what did we really gain:} There is still a secret
key!
However, this is quite different from the ``non-public key'' method:
You are the only one who knows and uses your secret key. The key is
never forwarded to a third party -- it is not necessary to transfer
keys in secret, nor is it advised.
Nothing must be passed between sender and recipient in secret --
whether a secret agreement or a secret code.
And that is exactly the crux of the matter: All symmetric encryption
methods can be broken because a third party has the opportunity to
obtain the key while the key is being exchanged.
This risk does not apply here, because there is no exchange of secret
keys; rather, it can only be found in one and very secure location:
your own keyring\index{Key!pair} -- your own memory.
This modern encryption method which uses a non-secret and public key,
as well as a secret and private key part is also described as
``asymmetric encryption''. \index{Asymmetric encryption}
\clearpage
\chapter{The passphrase}
\label{ch:passphrase}
\index{Passphrase}
As we have seen in the last chapter, the private key is one of the
most important components of the ``public key'' or asymmetric
encryption method. While one no longer needs to exchange the key with
another party in secret, the security of this key is nevertheless the
"key" to the security of the ``entire'' encryption process.
On a technical level, a private key is nothing more than a file which
is stored on your computer. To prevent unauthorised access of this
file, it is secured in two ways:
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{think-passphrase}
First, no other user may read or write in the file -- which is
difficult to warrant, since computer administrators always have access
to all files, and the computer may be lost or attacked
by viruses\index{Viruses}, worms\index{Worms} or
Trojans\index{Trojans} .
For this reason we need another layer of protection: the passphrase.
This is not a password -- a passphrase should not consist of only one
word, but a sentence, for example. You really should keep this
passphrase ``in your head'' and never have to write it down.
At the same time, it cannot be possible to guess it. This may sound
contradictory, but it is not. There are several proven methods of
finding very unique and easy to remember passphrases, which cannot be
easily guessed.
\clearpage
Think of a phrase that is very familiar to you, e.g.:
$\qquad$\verb-People in glass houses should not be throwing stones.-
Now, take every third letter of this sentence:
$\qquad$\verb-oegsoehloerisn-
\texttt{\scriptsize{(Pe\textbf{o}pl\textbf{e} in
\textbf{g}la\textbf{s}s h\textbf{o}us\textbf{e}s
s\textbf{h}ou\textbf{l}d n\textbf{o}t b\textbf{e}
th\textbf{r}ow\textbf{i}ng \textbf{s}to\textbf{n}es.)}}
While it may not be easy to remember
this sequence of letters, it is also unlikely that you will forget how
to arrive at the passphrase as long as you remember the original
sentence. Over time, and the more often you use the phrase, you will
commit it to memory. No one else can guess the passphrase.
Think of an event that you know you will never forget about. Maybe
it's a phrase that you will always associate with your child or
partner, i.e. it has become ``unforgettable''. Or a holiday memory or
a line of text of a song that is personally important to you.
Use capital and small letters, numbers, special characters and spaces,
in any order. In principle, anything goes, including umlaute, special
characters, digits etc. But remember -- if you want to use your secret
key abroad at a different computer, please remember that not all
keyboards may have such special characters. For example, you will
likely only find umlaute (ä, ö, ü usw.) on German keyboards.
You can also make intentional grammar mistakes, e.g. ``mustake''
instead of ``mistake''. Of course you also have to be able to remember
these ``mustakes''. Or, change languages in the middle of the phrase.
You can change the sentence:
$\qquad$\verb-In München steht ein Hofbräuhaus.-
into this passphrase:
$\qquad$\verb-inMinschen stet 1h0f breuhome-
Think of a sentence that does not make sense, but you can still remember
e.g.:
$\qquad$\verb-The expert lamenting nuclear homes-
$\qquad$\verb-Knitting an accordeon, even during storms.-
A passphrase of this length provides good protection for your
secret key.
It can also be shorter if you use capital letters,
for example:
$\qquad$\verb-THe ExPERt laMenTIng NuclEAr hoMES.-
While the passphrase is now shorter, it is also more difficult to
remember. If you make your passphrase even shorter by using special
characters, you will save some time entering the passphrase, but it is
also morr likely that you will forget your passphrase.
Here is an extreme example of a very short but also very secure
passphrase:
$\qquad$\verb-R!Qw"s,UIb *7\$-
However, in practice, such sequences of characters have not proven
themselves to be very useful, since there are simply too few clues by
which to remember them.
\clearpage
A \textbf{bad passphrase} can be ``broken'' very quickly, if it ...
\begin{itemize}
\item ... is already used for another purpose (e.g. for an \Email{} account or your mobile phone). The
same passphrase would therefore already be known to another,
possibly not secure, software. If the hacker is successful,
your passphrase becomes virtually worthless.
\item ... comes from a dictionary. Passphrase finder programs can
run a password through complete digital dictionaries in a
matter of minutes -- until it matches one of the words.
\item ... consists of a birth date, a name or other public
information. Anyone planning to decrypt your
\Email{} will obtain this type of
information.
\item ... is a very common quote, such as ``to be or not to be''.
Passphrase finder programs also use quotes like these to break
passphrases.
\item ... consists of only one word or less than 8 characters. It
is very important that you think of a longer passphrase.
\end{itemize}
When composing your passphrase, please \textbf{do not use} any of the
aforementioned examples. Because anyone seriously interested in
getting his hands on your passphrase will naturally see if you used
one of these examples.
\bigskip
\textbf{Be creative!} Think of a passphrase now! Unforgettable and unbreakable.
In Chapter~\ref{ch:CreateKeyPair} you will need this passphrase to create your key pair.
But until then, you have to address another problem: Someone has to
verify that the person that wants to send you a secret message is
real.
\clearpage
\chapter{Two methods, one goal: OpenPGP \& S/MIME}
\label{ch:openpgpsmime}
\index{OpenPGP} \index{S/MIME}
You have seen the importance of the ``envelope'' for your
\Email{} and how to provide one
using tools of modern information technology: a mail
strongbox,\index{Mail strongbox} in which anyone can deposit encrypted
mails which only you, the owner of the strongbox, can decrypt. It is
not possible to break the encryption as long as the private key to
your ``strongbox'' remains your secret.
Still: If you think about it, there is still another problem. A little
further up you read about how -- in contrast to the secret key method
-- you do not need to personally meet the person you are corresponding
with in order to enable them to send a secret message. But how can you
be sure that this person is actually who they say they
are? In the case of \Email{}s, you
only rarely know all of the people you are corresponding with on a
personal level -- and it is not usually easy to find out who is really
behind an \Email{} address. Hence, we not only
need to warrant the secrecy of the message, but also the identity of
the sender -- specifically \textbf{authenticity}. \index{Authenticity}
Hence someone must authenticate that the person who wants to send you
a secret message is real. In everyday life, we use ID, signatures or
certificates authenticated by authorities or notaries for
\index{Authentication} ``authentication'' purposes. These
institutions derive their right to issue notarisations from a
higher-ranking authority and finally from legislators. Seen another
way, it describes a chain of trust which
runs \index{Chain of trust} from ``the top'' to ``the bottom'', and is
described as a \textbf{``hierarchical trust concept''}.
\index{Hierarchical trust concept}
In the case of Gpg4win or other \Email{} encryption programs,
this concept is found in almost mirror-like fashion in
\textbf{S/MIME}. Added to this is\textbf{OpenPGP}, another concept
that only works this way on the Internet. S/MIME and OpenPGP have the
same task: the encryption and signing of data. Both use the already
familiar public key method. While there are some important
differences, in the end, none of these standards offer any general
advantage over another. For this reason you can use Gpg4win to use
both methods.
\clearpage
The equivalent of the hierarchical trust concept is called ``Secure /
Multipurpose Internet Mail Extension'' or \textbf{S/MIME}. If you use
S/MIME, your key must be authenticated by an accredited
organisation before it can be used. The certificate of this
organisation in turn was authenticated by a higher-ranking
organisation etc. -- until we arrive at a so-called root certificate.
This hierarchical chain of trust usually has three links: the root
certificate, the certificate of the issuer of the
certificate\index{Certificate issuer} (also CA\index{Certificate
Authority (CA)} for Certificate Authority), and finally your own user
certificate.
A second alternative and non-compatible notarisation method is the
\textbf{OpenPGP} standard, does not build a trust hierarchy but rather
assembles a \textbf{``Web of trust''}.\index{Web of Trust}
The Web of Trust represents the basic structure of the
non-hierarchical Internet and its users. For example, if User B trusts
User A, then User B could also trust the public key of User C, whom he
does not know, if this key has been authenticated by User A.
Therefore OpenPGP offers the option of exchanging encrypted data and
\Email{}s without authentication by a higher-ranking agency. It is
sufficient if you trust the \Email{} address and
associated certificate of the person you are communicating with.
Whether with a trust hierarchy or Web of Trust -- the authentication
of the sender is at least as important as protecting the message. We
will return to this important protection feature later in the
compendium. For now, this information should be sufficient to install
Gpg4win and understand the following chapters:
\begin{itemize}
\item Both methods -- \textbf{OpenPGP} and\textbf{S/MIME} --
offer the required security.
\item The methods are \textbf{not compatible} with each other.
They offer two alternate methods for authenticating your
secret communication. Therefore they are not deemed to be
interoperable.
\item Gpg4win allows for the convenient \textbf{and parallel} use
of both methods -- you do not have to choose one or the other
for encryption/signing purposes.
\end{itemize}
Chapter~\ref{ch:CreateKeyPair} of this compendium, which discusses the
creation of the key pair, therefore branches off to discuss both methods. At
the end of Chapter~\ref{ch:CreateKeyPair} the information is combined
again.
\begin{latexonly} %no hyperlatex
In this compendium, these two symbols will be used to refer to the two
alternative methods:
\begin{center}
\includegraphics[width=2.5cm]{images-compendium/openpgp-icon}
\hspace{1cm}
\includegraphics[width=2.5cm]{images-compendium/smime-icon}
\end{center}
\end{latexonly}
\clearpage
\chapter{Installing Gpg4win}
\index{Installation}
Chapters 1 to 5 provided you with information on the background
related to encryption. While Gpg4win also works if you do not
understand the logic behind it, it is also different from other
programs in that you are entrusting your secret correspondence to this
program. Therefore it is good to know how it works.
With this knowledge you are now ready to install Gpg4win and set up
your key pair.
If you already have a GnuPG-based application installed on your
computer (e.g. GnuPP, GnuPT, WinPT or GnuPG Basics), please refer to
the Annex~\ref{ch:migration} for information on transferring your
existing certificates.
You can load and install Gpg4win from the Internet or a CD. To do
this, you will need administrator rights to your Windows operating
system.
If you are downloading Gpg4win from the Internet, please ensure that
you obtain the file from a trustworthy site, e.g.:
\uniurl[www.gpg4win.org]{http://www.gpg4win.org}. To start the
installation, click on the following file after the download:
\Filename{gpg4win-2.0.0.exe} (or higher version number).
If you received Gpg4win on a CD ROM, please open it and click on the
``Gpg4win'' installation icon. All other installation steps are the
same.
The response to the question of whether you want to install the
program is \Button{Yes}.
\clearpage
The installation assistant will start and ask you for the language to
be used with the installation process:
% screenshot: Installer Sprachenauswahl
\IncludeImage[width=0.5\textwidth]{sc-inst-language_en}
Confirm your language selection with \Button{OK}.
Afterwards you will see this welcome dialog:
% screenshot: Installer Willkommensseite
\IncludeImage[width=0.85\textwidth]{sc-inst-welcome_en}
Close all programs that are running on your computer and click
on \Button{Next}.
\clearpage
The next page displays the \textbf{licensing agreement} -- it is only
important if you wish to modify or forward Gpg4win. If you only want
to use the software, you can do this right away -- without reading the
license.
% screenshot: Lizenzseite des Installers
\IncludeImage[width=0.85\textwidth]{sc-inst-license_en}
Click on \Button{Next}.
\clearpage
On the page that contains \textbf{the selection of components} you can
decide which programs you want to install.
A default selection has already been made for you. Yo can also install
individual components at a later time.
Moving your mouse cursor over a component will display a brief
description. Another useful feature is the display of required hard
drive space for all selected components.
% screenshot: Auswahl zu installierender Komponenten
\IncludeImage[width=0.85\textwidth]{sc-inst-components_en}
Click on \Button{Next}.
\clearpage
The system will suggest a folder for the installation, e.g.:
\Filename{C:$\backslash$Programme$\backslash$GNU$\backslash$GnuPG}
You can accept the suggestion or select a different folder for installing
Gpg4win.
% screenshot: Auswahl des Installationsverzeichnis.
\IncludeImage[width=0.85\textwidth]{sc-inst-directory_en}
Then click on \Button{Next}.
\clearpage
Now you can decide which \textbf{links} should be installed -- the
system will automatically create a link with the start menu. You can
change this link later on using the Windows dashboard settings.
% screenshot: Auswahl der Startlinks
\IncludeImage[width=0.85\textwidth]{sc-inst-options_en}
Then click on \Button{Next}.
\clearpage
If you have selected the default setting -- \textbf{link with start
menu} -- you can define the name of this start menu on the next page
or simply accept the name.
% screenshot: Startmenu auswählen
\IncludeImage[width=0.85\textwidth]{sc-inst-startmenu_en}
Then click on \Button{Install}.
\clearpage
During the \textbf{installation} process that follows, you will see a progress bar and information on which file is currently being installed. You can press \Button{Show~details}
at any time to show the installation log.
% screenshot: Ready page Installer
\IncludeImage[width=0.85\textwidth]{sc-inst-progress_en}
Once you have completed the installation, please click on
\Button{Next}.
\clearpage
The last page of the installation process is shown once the
installation has been successfully completed:
% screenshot: Finish page Installer
\IncludeImage[width=0.85\textwidth]{sc-inst-finished_en}
You have the option of displaying the README file, which contains
important information on the Gpg4win version you have just installed.
If you do not wish to view this file, deactivate this option.
Then click on \Button{Finish}.
\clearpage
In some cases you may have to restart Windows. In this case, you will
see the following page:
% screenshot: Finish page Installer with reboot
\IncludeImage[width=0.85\textwidth]{sc-inst-finished2_en}
Now you can decide whether Windows should be restarted immediately or
manually at a later time.
Click on \Button{Finish}.
%TODO: NSIS-Installer anpassen, dass vor diesem
%Reboot-Installationsdialog auch ein Hinweis auf die README-Datei
%erscheint.
Please read the README file which contains up-to-date information on
the Gpg4win version that has just been installed. You can find this
file e.g. via the start menu:\\
\Menu{Start$\rightarrow$Programs$\rightarrow$Gpg4win$\rightarrow$Documentation$\rightarrow$Gpg4win README}
\clearpage
\textbf{And that's it!}
You have successfully installed Gpg4win and are ready to work with the
program.
For information on \textbf{automatically installing} Gpg4win, as may
be of interest for software distribution systems, please see the
Annex~\ref{ch:auto} ``Automatic installation of Gpg4win''.
\clearpage
\chapter{Creating a certificate}
\label{ch:CreateKeyPair}
\index{Certificate!create}
\index{Key!create}
Now that you have found out why GnuPG is so secure
(Chapter~\ref{ch:FunctionOfGpg4win}), and how a good passphrase
provides protection for your private key (Chapter~\ref{ch:passphrase}),
you are now ready to create your own key pair\index{Key!pair} .
As we saw in Chapter~\ref{ch:FunctionOfGpg4win}, a key pair consists of
a public and a private key. With the addition of an
\Email{} address, login name etc., which you
enter when creating the pair (so-called meta data), you can obtain
your private certificate with the public \textit{and } private key.
This definition applies to both OpenPGP as well as S/MIME (S/MIME
certificates correspond with a standard described as
``X.509''\index{X.509}).
~\\ \textbf{It would be nice if I could practice this important
step of creating a key pair ....}
\T\marginOpenpgp
Not to worry, you can do just that -- but only with OpenPGP:
If you decide for the OpenPGP method of authentication,
\index{Authentication} the ``Web of Trust'', then you can practice the
entire process for creating a key pair, encryption and decryption as
often as you like, until you feel very comfortable.
This ``dry run'' will strengtthen your trust in Gpg4win, and the ``hot
phase'' of OpenPGP key pair creation will no longer be a problem for
you.
Your partner in this exercise is \textbf{Adele} . Adele is a test
service which is still derived from the GnuPP predecessor
project\index{GnuPP} and is still in operation. In this compendium we
continue to recommend the use of this practice robot. We would also
like to thank the owners of gnupp.de for operating this practice
robot. Unfortunately, we cannot ensure, that Adele is working. We know
that Adele has some problems. Please inform yourself under
\url{https://wiki.gnupg.org/EmailExercisesRobot} about any issues you
may encounter.
Using Adele, you can practice and test the OpenPGP key pair
which you will be creating shortly, before you start using it in earnest.
But more on that later.
\clearpage
\textbf{Let's go!}
Open Kleopatra using the Windows start menu:
% screenshot Startmenu with Kleopatra highlighted
\htmlattributes*{img}{width=400}
\IncludeImage[width=0.7\textwidth]{sc-kleopatra-startmenu_en}
You will see the main Kleopatra screen\index{Kleopatra} --
the certificate administration:
\index{Certificate administration}
% screenshot: Kleopatra main window
\htmlattributes*{img}{width=508}
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-mainwindow-empty_en}
At the beginning, this overview will be empty, since you have not
created or imported any certificates yet.
\clearpage
Click on \Menu{File$\rightarrow$New~Certificate}.
In the following dialog you select the format for the certificate. You
can choose from the following: \textbf{OpenPGP} (PGP/MIME)
or \textbf{X.509} (S/MIME).
The differences and common features of the two formats have already been
discussed in Chapter~\ref{ch:openpgpsmime}.
\label{chooseCertificateFormat}
% screenshot: Kleopatra - New certificate - Choose format
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-ChooseCertificateFormat_en}
~\\ This chapter of the compendium breaks off into two
sections for each method at this point. Information is then combined
at the end of the Chapter.
Depending on whether you chose OpenPGP or X.509 (S/MIME), you can now
read either:
\begin{itemize}
\item Section~\ref{createKeyPairOpenpgp}:
\textbf{Creating an OpenPGP certificate} \T(see next
page) or
\item Section~\ref{createKeyPairX509}:
\textbf{Creating an X.509 certificate} \T (see page
\pageref{createKeyPairX509}).
\end{itemize}
\clearpage
\section{Creating an OpenPGP certificate}
\label{createKeyPairOpenpgp}
\index{OpenPGP!create certificate}
\T\marginOpenpgp
In the certificate option dialog, click on \Button{Create
personal OpenPGP key pair}.
Now enter your \Email{} address and your name in
the following window. Name and \Email{} address
will be made publicly visible later.
You also have the option of adding a comment for the key pair. Usually
this field stays empty, but if you are creating a key for test
purposes, you should enter "test" so you do not forget it is a test
key. This comment becomes part of your login name, and will become
public just like your name and \Email{} address.
% screenshot: Creating OpenPGP Certificate - Personal details
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-personalDetails_en}
If you first wish to \textbf{test} your OpenPGP key pair, you can
simply enter any name and fictional
\Email{} address, e.g.:\\ \Filename{Heinrich Heine}
and \Filename{heinrich@gpg4win.de}
The \textbf{Advanced settings are only be required in exceptional}
cases. For details, see the Kleopatra handbook (via
\Menu{Help$\rightarrow$Kleopatra handbook}).
Click on \Button{Next}.
\clearpage You will see a list of all of the main entries and settings
for \textbf{review purposes}. If you are interested in the (default)
expert settings, you can view these via the \Menu{All details}
option.
% screenshot: Creating OpenPGP Certificate - Review Parameters
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-reviewParameters_en}
If everything is correct, click on \Button{Create key}.
\clearpage Now to the most important part: entering your
\textbf{passphrase}!
To create a key pair, you must enter your personal passphrase:
% screenshot: New certificate - pinentry
\IncludeImage[width=0.45\textwidth]{sc-kleopatra-openpgp-pinentry_en}
If you have read Chapter~\ref{ch:passphrase} you should now have an
easy-to-remember but hard to break secret passphrase. Enter it in the
dialog displayed at the top.
Please note that this window may have been opened in the background
and is not visible at first.
If the passphrase is not secure enough because it is too short or does
not contain any numbers or special characters, the system will tell
you.
At this point you can also enter a \textbf{test passphrase} or start
in earnest; it's up to you.
To make sure that you did not make any typing errors, the system will
prompt you to enter your passphrase twice. Always confirm your entry
with \Button{OK}.
\clearpage
Now your OpenPGP key pair is being created:
% screenshot: Creating OpenPGP Certificate - Create Key
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-createKey_en}
This may take a couple of minutes. You can assist the creation of the
required random numbers by entering information in the lower input
field. It does not matter what you type, as the characters will
not be used, only the time period between each key stroke. You can also
continue working with another application on your computer, which will
also slightly increase the quality of the new key pair.
\clearpage
As soon as \textbf{the key pair creation has been successful}, you
will see the following dialog:
% screenshot: Creating OpenPGP certificate - key successfully created
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-keyPairCreated_en}
The 40-digit ``fingerprint'' of your newly\index{Fingerprint}
generated OpenPGP certificate is displayed in the results text field.
This fingerprint is unique anywhere in the world, i.e. no other person
will have a certificate with the same fingerprint. Actually, even at
8 digits it would already be quite unlikely that the same sequence would
occur twice anywhere in world. For this reason, it is often only the
last 8 digits of a
fingerprint which are used or shown, and which are described as the
key ID.\index{Key!ID} This fingerprint
identifies the identity of the certificate as well as the fingerprint
of a person.
However, you do not need to remember or write down the fingerprint.
You can also display it later in Kleopatra's certificate details.
\clearpage
Next, you can activate one or more of the following three buttons:
\begin{description}
\item[Creating a backup copy of your (private) certificate...]~\\
Enter the path under which your full certificate (which contains
your new key pair, hence the private \textit{and } public key) should be exported:
% screenshot: New OpenPGP certificate - export key
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-openpgp-exportSecretKey_en}
Kleopatra will automatically select the file type and store your
certificate as an \Filename{.asc} or\Filename{.gpg} file --
depending on whether you activate or deactivate the \textbf{ASCII
armor} option.
For export, click on \Button{OK}.
\textbf{Important:} If you save the file on the hard drive, you
should copy the file to another data carrier (USB stick, diskette
or CD-ROM) as soon as possible, and delete the original file
without a trace, i.e. do not leave it in the Recycle bin! Keep
this data carrier and back-up copy in a safe place.
You can also create a back-up copy later; to do this, select the
following from the Kleopatra main menu:
\Menu{File$\rightarrow$Export private certificate...} (see Chapter
\ref{ch:ImExport}).
\item[Sending a certificate via \Email{} ...]~\\
Clicking on this button should create a new one\Email{} --
with your new public certificate in the attachment. Your secret
Open PGP key will of course \textit{not} be sent. Enter a
recipient \Email{} address; you can also add
more text to the prepared text for this \Email{}.
\textbf{Please note:} Not all
\Email{} programs support this function. Of course you can also do
this manually: If you do not see a
new\Email{} window, shut down the
certificate creation assistant, save your public certificate via
\Menu{File$\rightarrow$Export certificate} and sent this file
via \Email{} to
the people you are corresponding with. For more details see
Section~\ref{sec_publishPerEmail}.
\item[Sending certificates to certificate servers...]~\\Chapter~ explains how
to set up a globally available OpenPGP certificate server in Kleopatra,
and how you can publish your public certificate on this
server \ref{ch:keyserver}.
\end{description}
This completes the creation of your OpenPGP certificate. End the
Kleopatra assistant with \Button{Finish}.
Now let's go to Section~\ref{sec_finishKeyPairGeneration} on
page~\pageref{sec_finishKeyPairGeneration}. Starting at that point,
the explanations for OpenPGP and X.509 will again be identical.
\clearpage
\section{Creating an X.509 certificate}
\label{createKeyPairX509}
\index{X.509!create certificate}
\T\marginSmime
In the certificate format selection dialog on page~,
\pageref{chooseCertificateFormat} click on the button\\
\Button{Create personal X.509 key pair and authentication
request}.
In the following window, enter your name (CN = common name), your
\Email{} address (EMAIL), organisation (O) and
your country code (C). Optionally, you can also add your location (L =
Locality) and department (OU = Organizational Unit).
If you first wish to \textbf{test} the X.509 key pair creation
process, you can enter any information for name, organization and
country code, and can also enter a fictional
\Email{} address, e.g.:\Filename{CN=Heinrich
Heine,O=Test,C=DE,EMAIL=heinrich@gpg4win.de}
% screenshot: New X.509 Certificate - Personal details
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-personalDetails_en}
The \textbf{Advanced settings will only be required in exceptional}
cases. For details, see the Kleopatra handbook (via
\Menu{Help$\rightarrow$Kleopatra handbook}).
Click on \Button{Next}.
\clearpage
You will see a list of all main entries and settings for \textbf{review
purposes}. If you are interested in the (default) expert settings,
you can view these via the \Menu{All details} option.
% screenshot: New X.509 Certificate - Review Parameters
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-reviewParameters_en}
Once everything is correct, click on \Button{Creat key}.
\clearpage
Now to the most important part: Entering your \textbf{passphrase}!
In order to create a key pair, you will be asked to enter your
passphrase:
% screenshot: New X.509 certificate - pinentry
\IncludeImage[width=0.45\textwidth]{sc-kleopatra-x509-pinentry_en}
If you have read Chapter~\ref{ch:passphrase} you should now have an
easy-to-remember but hard to break secret passphrase. Enter it in the
dialog displayed at the top!
Please note that this window may have been opened in the background,
so it may not be visible at first.
If the passphrase is not secure enough because it is too short or does
not contain any numbers or special characters, the system will let you
know.
At this point you can also enter a \textbf{test passphrase} or start
in earnest; it's up to you.
To make sure that you did not make any typing errors, the system will
prompt you to enter your passphrase twice. Finally, you will be asked
to enter your passphrase a third time: By doing that, you are sending
your certificate request \index{Certificate!request} to the
authenticating instance in charge. Always confirm your entries with
\Button{OK}.
\clearpage
Now your X.509 key pair is being created:
% screenshot: New X.509 Certificate - Create Key
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-createKey_en}
This may take a couple of minutes. You can assist the creation of the
required random numbers by entering information in the lower input
field. It does not matter what you type, as the characters will
not be used, only the time period between each key stroke. You can also
continue working with other applications on your computer, which will
slightly increase the quality of the key pair that is being created.
\clearpage
As soon as \textbf{the key pair has been successfully} created, you
will see the following dialog:
% screenshot: New X.509 certificate - key successfully created
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-x509-keyPairCreated_en}
The next steps are triggered with the following buttons:
\begin{description}
\item[Save request in file...]~\\Here, you enter the path under which
your X.509 certificate request should be backed up, and confirm
your entry. Kleopatra will automatically add the file ending \Filename{.p10}
during the saving process. This file can then be
sent to an authentication instance (in short CA for Certificate
Authority\index{Certificate Authority (CA)}). Further below, we
will refer you to cacert.org, which is a non-commercial
authentication instance (CA) that issues X.509 certificates free
of charge.
\item[Sending an request by \Email{}
...]~\\This
creates a new \Email{} with the certificate request
which has just been created in the attachment. Enter a recippient
\Email{} address -- usually that of your
certificate authority in charge; you can also add more text
to the prepared text of this \Email{}.
\textbf{Please note:} Not all \Email{} programs support this
function. Of course you can also do this manually: If you do not
see a new \Email{}window, save your request in a file (see above)
and send it by \Email{} to your certificate authority (CA).
As soon as the CA has processed your request, the CA system
administrator will send you the completed X.509 certificate, which
has been signed by the CA. You only need to import the file into
Kleopatra (see Chapter~\ref{ch:ImExport}).
\end{description}
End the Kleopatra assistant with \Button{Finish}.
\clearpage
\subsubsection{Creating an X509 certificate using www.cacert.org}
\T\marginSmime
CAcert\index{CAcert} is a non-commercial certificate authority which
issues X.509 certificates free of charge. It offers an alternative to
commercial root CAs, some of which charge very high fees for their
certificates.
To create a (client) certificate at CAcert, you first have to register
at \uniurl[www.cacert.org]{http://www.cacert.org}.
Immediately following registration, you can create one or more client
certificates on cacert.org: please make sure you have sufficient key
length (e.g. 2048 bits). Use the web assistant to define a secure
passphrase for your certificate.
Your client certificate is now created.
Afterwards you will receive an \Email{} with two
links to your new X.509 certificate and associated CAcert root
certificate. Download both certificates.
Follow the instructions to install the certificate on your browser. In
Firefox, you can use e.g.
\Menu{Edit$\rightarrow$Settings$\rightarrow$Advanced$\rightarrow$Certificates}
to find your installed certificate under the first tab ``Your
certificates" with the name (CN) \textbf{CAcert WoT User}.
You can now issue a personal X.509 certificate which has your name in
the CN field. To do this, you must have your CAcert account
authenticated by other members of the CACert Web of Trust. Information
on obtaining such a confirmation can be found on the Internet pages of
CAcert.
Then save a backup copy of your personal X.509 certificate. The
ending \Filename{.p12} will automatically be applied
to the backup copy.
\textbf{Attention:} This \Filename{.p12} file contains your
public \textit{and } your private key. Please ensure that this file is
protected againt unauthorised access.
To find out how to import your personal X.509 certificate in
Kleopatra, see Chapter~\ref{ch:ImExport}.
~\\ Let's now look at Section \ref{sec_finishKeyPairGeneration} on the
next page. This is where explanations for OpenPGP and X.509 are
identical again.
\clearpage
\section{Certificate creation process complete}
\label{sec_finishKeyPairGeneration}
\textbf{This completes the creation of your OpenPGP or X.509 key pair.
You now have a unique electronic key.}
During the course of this compendium, we will always use an OpenPGP
certificate for sample purposes -- however, all information will also
apply accordingly to X509 certificates.
%TODO: X.509-Zertifikat noch nicht in Kleopatra sichtbar!
You are now back in the Kleopatra main window. The OpenPGP certificate
which was just created can be found in the certificate administration
under the tab \Menu{My certificates}:
% screenshot: Kleopatra with new openpgp certificate
\htmlattributes*{img}{width=508}
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-withOpenpgpTestkey_en}
\clearpage
Double-click on your new certificate to view all details related to
the certificate:
% screenshot: details of openpgp certificate
\htmlattributes*{img}{width=508}
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-certificateDetails_en}
What do the certificate details mean?
Your certificate is valid indefinitely, i.e. it has no ``built-in
expiry date''. To change its validity at a later point, click
on \Button{Change expiry date}.
\textbf{For more details about the certificate, see
Chapter~\ref{ch:CertificateDetails}.}
\clearpage
\chapter{Distribution of public certificates}
\label{ch:publishCertificate}
\index{Certificate!public}
When using Gpg4win on a daily basis, it is very practical that for the
purpose of encrypting and checking signatures you are always dealing
with ``public'' certificates which only contain public keys. As long
as your own secret key and the passphrase which protects it are
secure, you have already gone a long way towards ensuring secrecy.
Everyone can and should have your public certificate, and you can and
should have the public certificates of your correspondence partners --
the more, the better.
Because:
\textbf{To exchange secure \Email{}s, both partners must have and
use the public certificate of the other person. Of course the
recipient will also require a program capable of handling certificates
-- such as the Gpg4win software package with Kleopatra certification
administration.}
Therefore, if you want to send encrypted \Email{}s to someone,
you must have their public certificate to encrypt the \Email{}.
In turn, if someone wants to send you encrypted \Email{}s, he
must have your public certificate and use it for encryption purposes.
For this reason you should now allow access to your public
certificate.
Depending on how many people you corespond with, and which certificate
format you are using, you have several options. For example, you can
distribute your public certificate ...
\begin{itemize}
\item ... directly via \textbf{\Email{}} to specific correspondence
partners -- see Section~ \ref{sec_publishPerEmail}.
\item ... on an \textbf{OpenPGP certificate server} (applies \textit{only }
to OpenPGP) -- See Section~\ref{sec_publishPerKeyserver}.
\item ... via your own homepage.
\item ... in person, e.g. with a USB stick.
\end{itemize}
Let's look at the first two variants on the following pages.
\clearpage
\section{Publishing per \Email{}, with practice for OpenPGP}
\label{sec_publishPerEmail}
Do you wish to make your public certificate accessible to the person
you are corresponding with? Simply send them your exported public
certificate per \Email{}. This section will show you how this
works.\\
\T\marginOpenpgp
Practice this process with your public OpenPGP certificate! Adele can
assist you. The following exercises only apply to OpenPGP; for
information on publishing public X.509 certificates, please see
page~\pageref{publishPerEmailx509}.
\textbf{Adele} is a very nice \Email{} robot which you can use
to practice correspondence. Please note, that Adele may not be
working. Don't be concerned if Adele is not answering, you may better
practice with a human being, because it is usually more pleasant to
correspond with a smart human being rather than a piece of software
(which is what Adele is, after all), you can imagine Adele this way:
% Cartoon: Adele mit Buch in der Hand vor Rechner ``you have mail''
\IncludeImage[width=0.5\textwidth]{adele01}
First, send Adele your public OpenPGP certificate. Using the public
key in this certificate, Adele will send an encrypted \Email{}
back to you.
You then use your own secret key to decrypt Adele's response. To be
able to respond to Adele with an encrypted \Email{}, Adele has
attached her own public certificate.
Adele acts just like a real person you are corresponding with. Of
course, Adele's \Email{}s are not nearly as interesting as those from
the people you are actually corresponding with. On the other hand, you
can use Adele to practice as much as you like -- which a real person
might find bothersome after a while.
So, now you export your public OpenPGP certificate and send it via
\Email{} to Adele. The following pages how how this works.
\clearpage
\subsubsection{Exporting your public OpenPGP certificate}
\index{Certificate!export}
Select the public certificate to be exported in Kleopatra (by clicking
on the corresponding line in the list of certificates) and then click
on \Menu{File$\rightarrow$Export certificates...} in the menu.
Select a suitable file folder on your PC and save the public
certificate with the file type\Filename{.asc} e.g.:
\Filename{mein-OpenPGP-Zertifikat.asc}. The other file types, which
can be selected, \Filename{.gpg} or\Filename{.pgp}, will save your
certificate in binary format. That means that in contrast to an
\Filename{.asc}file, they cannot be read in the text editor.
When you select the menu item, please make sure that you are only
exporting your public certificate -- and \textit{not } the certificate
of your entire key pair with the associated private key by mistake.
Review the file once more by selecting Windows Explorer and selecting
the same folder that you indicated for the export.
Now \textbf{open} the exported certificate file with a text
editor, e.g. WordPad. The text editor will display your public OpenPGP
certificate as it really looks -- a fairly confusing block of text and
numbers:
\T\enlargethispage{\baselineskip}
% screenshot: Editor mit ascii armored key
\IncludeImage[width=0.85\textwidth]{sc-wordpad-editOpenpgpKey_en}
\clearpage
When publishing your OpenPGP certificate by \Email{}, there are
two variants which can take into account whether an
\Email{} program can send attachments.
\subsubsection{Variant 1: Send public OpenPGP certificate as an
\Email{} text}
This option always works, even if you are not able to attach files --
as may be the case with some \Email{} services on the Web.\\ Also,
it is a way of seeing your public certificate for the first time,
knowing exactly what is behind it, and what the certificate actually
consists of.
\textbf{Highlight} the entire public certificate in the text editor from
\Filename{-----BEGIN PGP PUBLIC KEY BLOCK-----}\\
up to\\
\Filename{-----END PGP PUBLIC KEY BLOCK-----}
and \textbf{copy} it with the menu command or the key shortcut
\Filename{Ctrl+C}. Now you have copied the certificate in the memory
of your computer (Clipboard in a Windows context).
Now you can start your \Email{} program -- it does not matter which
one you use -- and add your public certificate into an empty \Email{}.
In Windows, the key command for adding (``Paste'') is
\Filename{Ctrl+V}. You may know this process -- copying and pasting
-- as ``Copy \& Paste''.
The \Email{} program should be set up in such a way that it is
possible to send only text messages and not HTML formated messages
(see Section~\ref{sec_brokenSignature} and Annex
\ref{appendix:gpgol}).
\textbf{Now address this} \Email{} to
\Filename{adele@gnupp.de} and write something in the subject line e.g.
\Menu{My public OpenPGP certificate}.
\clearpage
This is approximately what your \Email{} will look like:
% screenshot: Outlook composer fenster mit openpgp zertifikat.
\IncludeImage[width=0.85\textwidth]{sc-ol-adele-sendOpenpgpKey-inline_en}
Now send the \Email{} to Adele. Make sure to include your
\textit{own} \Email{} address as the sender. Otherwise you will never receive Adele's response ...
\clearpage
\subsubsection{Variant 2: Send public OpenPGP certificate as an \Email{} attachment}
As an alternate to Variant 1, you can also send your exported public
OpenPGP certificate directly as an \textbf{\Email{} file
attachment}. This is often the simpler and more commonly used method.
Above, you learnt about the ``Copy \& Paste'' method,
because it is more transparent and easier to understand.
Now write another \Email{} to Adele -- this time with the certificate
file in the attachment:
Add the previously exported certificate file as an attachment to your
new \Email{} -- just as you would for any other file (e.g. pulling the
file into the emtpy \Email window). Add the recipient
(\Filename{adele@gnupp.de}) and a subject, e.g.: \Menu{My public
OpenPGP certificate - as a file attachment}.
Of course you can also add a few explanatory sentences. However,
Adele does not need this explanations, because her only purpose is to
help you practice this process.
Your finished \Email{} should look something like this:
\T\enlargethispage{2\baselineskip}
% screenshot: Outlook composer window with attached openpgp certificate
\IncludeImage[width=0.85\textwidth]{sc-ol-adele-sendOpenpgpKey-attachment_en}
Now send the \Email{} and attachment to Adele.
\clearpage
\subsubsection{In short:}
You have exported your public OpenPGP certificate in Kleopatra into a
file. Subsequently, you have also copied the content of the file
directly into an \Email{} and attached the complete file as an
\Email{}attachment. Both \Email{}s have been sent to someone else
-- in this case, to Adele.
The same process applies if you are sending your public certificate to
a real \Email{} address. Usually, you should send public certificates
as a file attachment, as described in Variant 2. This is the easiest
way to do it, both for you and the recipient. And it also has the
advantage that your recipient can import your certificate file
directly into his own certificate administration (e.g. Kleopatra).
\clearpage
\section{Publish via OpenPGP certificate server}
\label{sec_publishPerKeyserver}
\T\marginOpenpgp
\textbf{Please note: You can only distribute your OpenPGP certificate
via an OpenPGP certificate server.}
Publishing your public OpenPGP certificate on a public certificate server is
always a good idea, even if you are only exchanging encrypted \Email{}s
with just a few people. This way, your public certificate is
accessible to everyone on an Internet server. This saves you time in
having to send your certificate \Email{} to all of the people
you are corresponding with.
At the same time, publishing your \Email{} address on a certificate server can
also make your \Email{} address more susceptible to spam. This can
only be addressed with good spam protection.
~\\ \textbf{This is how it works:} Select your public OpenPGP certificate in Kleopatra
and click on \Menu{File$\rightarrow$Export certificate to server...}.
If you have not defined a certificate server, you will see a warning:
% screenshot: Kleopatra keyserver export warning
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-exportCertificateToServer_en}
The public OpenPGP certificate server already contains
\Filename{keys.gnupg.net} default settings. Click on
\Button{Continue} to send your selected public certificate to this
server. There, your public certificate is distributed to all globally
connected certificate servers. Anyone can download your public certificate
from one of these OpenPGP certificate servers and use it send you a secure
\Email{}.
If you are only testing this process, please do \textit{not} send the
practice certificate: In the top dialog, click on \Button{Cancel}. The
test certificate is worthless and cannot be removed by the certificate server.
You would not believe how many test certificates with names like
``Julius Caesar'', ``Helmut Kohl'' or ``Bill Clinton'' are already
floating around on these servers ...
\clearpage
\subsubsection{In short:}
Now you know how to publish your public OpenPGP certificate on an
OpenPGP certificate server on the Internet.
\textbf{For information on how to search for the public OpenPGP
certificate of people you are corresponding with on a certificate server, see
Chapter~\ref{ch:keyserver}. You can read this chapter now or later when
you need this function.}
\clearpage
\section{Publishing X.509 certificates}
\label{publishPerEmailx509}
\T\marginSmime
In the case of public X.509 certificates, this process is even easier:
all you need to do is to send a signed S/MIME \Email{} to the person
you are corresponding with. Your public X.509 certificate is contained
in this signature, and can be imported into the recipient's
certificate administration.
Unfortunately, you cannot use Adele to practice X.509 certificates
since the robot only supports OpenPGP. Therefore you should pick
another person to write you, or alternately write to yourself.
Some public X.509 certificates are distributed by the certificate
authority. This is usually done using X.509 certificate servers, which however
do not synchronize on a global basis, as is the case with OpenPGP key
servers.
When you export your public X.509 certificate, you can highlight the
entire public certificate chain\index{Certificate!chain} and save it
in a file -- generally the root certificate, CA
certificate\index{Certificate!CA} and personal certificate -- or only
your public certificate.
The first is recommended since the person you are corresponding with
may be missing some parts of the chain, which he otherwise would have
to find. To do this, click on all elements of the certificate chain in
Kleopatra while holding the Shift key, and export the highlighted
certificate into a file.
If the person you are corresponding with does not have the root
certificate, he must indicate that he trusts it, or have an
administrator do so, in order to finally also trust you. If this has
already been done (e.g. because they are both part of the same
``root''), then this shiop is already in place.
\clearpage
\chapter{Decrypting \Email{}s, practicing for OpenPGP}
\label{ch:decrypt}
\index{E-mail!decrypt}
Gpg4win, the certificate of your key pair and of course your
passphrase are all you need to decrypt \Email{}s.
This Chapter shows you step for step how to decrypt \Email{}s in
Microsoft Outlook using the Gpg4win program component GpgOL.
\index{Outlook}
\T\marginOpenpgp
Initially, you can practice this process with Adele and your public
OpenPGP certificate. The following exercises again only apply to
OpenPGP -- explanations regarding the decryption of S/MIME
\Email{}s can be found at the end of this chapter on page
\pageref{encrypt-smime}.
In Section~\ref{sec_publishPerEmail} you sent your public
OpenPGP certificate to Adele. Using this certificate, Adele will now
encrypt an \Email{} and send a message back to you. You should
receive Adele's response after a short time period.
\T\enlargethispage{\baselineskip}
% cartoon: Adele typing and sending a mail
\IncludeImage[width=0.5\textwidth]{adele02}
\clearpage
\subsubsection{Decrypting a message with MS Outlook and GpgOL}
Most \Email{} programs also have special program extensions
(``plugins''), which can be used to perform the encryption and
decryption process directly in the \Email{} program.
\textbf{GpgOL} is such a program extension for MS Outlook, which is
used here to decrypt Adele's\Email{}s. For more information on
other software solutions, please see Annex~\ref{ch:plugins}. You can
read this section now, or later when you need this function.
~\\Start MS Outlook and open Adele's response \Email{}. Until
now, you have only known Kleopatra as a certificate administration
program. However, the program can do much more than that: It can
control the actual GnuPG encryption software and hence not just manage
your certificates but also take care of all cryptographic tasks (with
GnuPG's assistance). Kleopatra provides the visual user interface,
hence the dialogs which you as the user see while you encrypt or
decrypt \Email{}s.
Hence Kleopatra processes Adele's encrypted
\Email{}s. These \Email{}s have been encrypted by Adele using
\textit{your} public OpenPGP key.
To decrypt the message, Kleopatra
will now ask for your passphrase that protects your private key. Enter
your passphrase.
The decryption is successful if you do not see an
error dialog! You can now read the decrypted \Email{}.
You can retrieve the exact results dialog of the decryption by
clicking on \Menu{Extras$\rightarrow$GpgOL decryption/check} in the
menu of the opened \Email{}.
However, surely you also want to see the result, namely the decrypted
message ...
\clearpage
\subsubsection{The decrypted message}
Adele's decrypted response will look something like
this\footnote{Depending on the software version of Adele, it may look
differently. It's translated from German.}:
%TODO: besser ein Screenshot von einer Adele-Mail in OL.
%TODO: Schlüssel -> Zertifikat
\begin{verbatim}
Hello Heinrich Heine,
here is an encrypted response to your e-mail.
I received your public key with the key ID
FE7EEC85C93D94BA and the name
`Heinrich Heine '.
Attached is the public key of adele@gnupp.de,
the friendly e-mail robot.
Regards,
adele@gnupp.de
\end{verbatim}
The text block that follows is Adele's public certificate.
In the next chapter, you will import this certificate and add it to
your certificate administration. You can use imported public
certificates at any time to encrypt messages to the people you are
corresponding with, or to check their signed \Email{}s.
\clearpage
\subsubsection{In short:}
\begin{enumerate}
\item You have decrypted and encrypted an \Email{} using your
private key.
\item Your correspondence partner has attached his own public
certificate, so that you can answer him in encrypted form.
\end{enumerate}
\subsubsection{\Email{} decryption using S/MIME}
\label{encrypt-smime}
\T\marginSmime
So this is how \Email{}s are decrypted using the private OpenPGP
key -- but how does it work with S/MIME?
The answer: The same!
To decrypt an encrypted S/MIME \Email{}, simply open the
message in Outlook and enter your passphrase in the pin entry
dialog. You will see a status dialog that is similar to that shown for
OpenPGP. After closing this dialog, you will see the decrypted S/MIME
\Email{}.
Differently from OpenPGP decryption, however, when
using S/MIME you cannot use Adele to practice, since Adele only
supports OpenPGP.
\clearpage
\chapter{Importing a public certificate}
\label{ch:importCertificate}
\index{Certificate!import}
The person you are corresponding with does not always have to send
their public certificate when they send signed \Email{}s to you. You can
simply store their public certificate in your certificate
administrator -- e.g. Kleopatra.
\subsubsection{Storing a public certificate}
Before you import a public certificate into Kleopatra, you must save
it in a file. Depending on whether you received the certificate as an
\Email{}file attachment or as a block of text contained in your \Email{},
please proceed as follows:
\begin{itemize}
\item If the public certificate was included as an \Email{} \textbf{file
attachment}, save it on your hard drive -- just as you would
normally do.
\item If the public certificate was mailed as a block of text
that \textbf{was included in the} \Email{}, you have to
highlighte the entire certificate:
In the case of (public)
OpenPGP certificates, please highlight the area from
\Filename{-----BEGIN PGP PUBLIC KEY BLOCK-----}\\ up to\\
\Filename{-----END PGP PUBLIC KEY BLOCK-----}
just as we have seen in Section~\ref{sec_publishPerEmail}.
Now use Copy \& Paste to
insert the highlighted section into a text editor and save the
public certificate. For file endings, you should use
\Filename{.asc} or \Filename{.gpg} for
OpenPGP certificates and \Filename{.pem} or \Filename{.der}
for X.509 certificates.
\end{itemize}
\clearpage
\subsubsection{Importing public certificates into Kleopatra}
Whether you have saved the public certificate as an \Email{}
attachment or text block -- in both cases, you will be importing it
into your Kleopatra certificate administration. To do this, start
Kleopatra if the program is not running already. In the menu, click
on \Menu{File$\rightarrow$Import certificate...}, search for
the public certificate you have just saved and import it. You will
receive an information dialog showing the result of the import
process:
% screenshot: Kleopatra - certificate import dialog
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-import-certificate_en}
It displays the imported public certificate in Kleopatra, in a
separate tab \Menu{Imported certificates} with the title
\Menu{}'':
% screenshot Kleopatra with new certificate
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-withAdeleKey_en}
This tab is used for checking purposes, since a file can contain more
than one certificate. You can close the tab using the
\Menu{Fenster$\rightarrow$Close tab} command or via the
``Close tab'' button on the right side of the window).
Now change over to the tab ``Other certificates''. You should also be
able to see the public certificate you have imported.
Now you have imported someone else's certificate~-- in this case
Adele's public OpenPGP certificate -- into your certificate
administration. You can use this certificate at any time to send
encrypted messages to the owner of the certificate, and to check his
signatures.
As soon as you are exchanging encrypted \Email{} more
frequently and with a larger number of persons, you will likely want
to search and import for certificates on globally available key
servers. To see how this works, please see Chapter~\ref{ch:keyserver}
.\\
\subsubsection{Before continuing, an important question:}
How do you know that the public OpenPGP certificate really came from
Adele? It is possible to send \Email{}s under someone else's
name -- in this respect, merely having the sender's name does not mean
anything.
So how can you ensure that a public certificate actually
belongs to the sender?
\textbf{This key question related to certificate inspections is
explained in the next Chapter~\ref{ch:trust}}.
\clearpage
\chapter{Certificate inspection}
\label{ch:trust}
How do you know if a certificate actually belongs to the sender? And
vice versa -- why should the person you are writing to believe that
the certificate you sent to him is really yours? The sender's name on
an \Email{} means nothing, just like putting a sender's name on
an envelope.
If your bank, receives an \Email{} with your name,
with a request to transfer your entire bank balance to a numbered
account in the Bahamas, we should hope that it will refuse to do so --
no matter what the \Email{} address is. On its own, an \Email{} address
itself does not really say anything about the sender's identity.
\clearpage
\subsubsection{Fingerprints}
\index{Fingerprint}
If you are only corresponding with a very small circle of people, it
is easy to check their identity: You check the fingerprint of the
other certificate.
Each certificate features a unique identification, which is even
better than someone's fingerprint. For this reason this identification
is also referred to as a ``fingerprint''.
If you display the details of a certificate in Kleopatra, e.g. by
double-clicking on the certificate, you will see its 40-character
fingerprint, among other things:
% screenshot: Kleopatra certificate details with fingerprint
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-openpgp-certificateDetails_en}
The fingerprint of the above OpenPGP certificate is therefore as
follows:\\ \Filename{7EDC0D141A82250847448E91FE7EEC85C93D94BA}
~\\In short - the fingerprint clearly identifies the certificate and
its owner.
Simply call the person you are corresponding with and let them read
the fingerprint of their certificate to you. If the information
matches the certificate you have on hand, you clearly have the right
certificate.
Of course you can also meet the owner of the certificate in person, or
use another method to ensure that certificate and owner can be
matched. Frequently, the fingerprint is also printed on business
cards; therefore, if you have a business card whose authenticity is
guaranteed, you can save yourself a phone call.
\clearpage
\subsubsection{Authenticating an OpenPGP certificate}
\index{Certificate!authenticate}
\T\marginOpenpgp
Once you have obtained confirmation of the authenticity of the
certificate ``via a fingerprint'', you can authenticate it -- but only
in OpenPGP. With X.509, users cannot authenticate certificates -- this
can only be done by the certificate authorities (CA).
By authenticating a certificate, you are letting other (Gpg4win) users
know that you are of the opinion that this certificate is real --
hence authentic: You are acting as a kind of ``godfather'' for this
certificate, and help to increase the general level of trust in its
authenticity.
~\\
\textbf{So how does the authentication process work?}\\
In Kleopatra, select an OpenPGP certificate that you think is real and
would like to authenticate. In the menu, select:
\Menu{Certificates$\rightarrow$Authenticate certificates...}
Reconfirm the OpenPGP certificate to be authenticated in the following
dialog, using \Button{Next}:
% screenshot: Kleopatra certify certificate 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate1_en}
\clearpage
In the next step, select your own OpenPGP certificate, which you will
use to authenticate the certificate selected in the last step:
% screenshot: Kleopatra certify certificate 2
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate2_en}
Here you decide whether to \Button{Authenticate for private use only}
or or \Button{Authenticate and make visible to all}. With the last
variant, you have the option of subsequently uploading the
authenticated certificate to an OpenPGP certificate server, and hence make an
updated and authenticated certificate available to the entire world.
Now confirm your selection with \Button{Authenticate}.
Similar to the process of signing an \Email{}, you also have to enter
your passphrase when authenticating a certificate (with your private
key). The authentication proccess is only complete once this
information is entered correctly.
\clearpage
Following a successful authentication, the following window appears:
% screenshot: Kleopatra certify certificate 3
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certifyCertificate3_en}
~\\Do you want to check the authentication one more? To do this, open
the certificate details of the certificate you have just
authenticated.Select the tab \Menu{User ID and authentications} and
click on the button \Button{Obtain authentications}.
You will now see all authentications contained in this certificate,
sorted by user ID. You should also be able to see your certificate in
this list, if you have just authenticated it.
\clearpage
\subsubsection{Web of trust}
\index{Web of Trust}
\T\marginOpenpgp
The process of authenticating certificates creates a ``Web of Trust''
(WoT), which extends beyond the group of Gpg4win users and their
correspondence, and it means that you are not always required to
verify an OpenPGP certificate for its authenticity.
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.85\textwidth]{key-with-sigs}
Naturally, trust in a certificate will increase if it has been
authenticated by a lot of people. Your own OpenPGP certificate will
receive authentications from other GnuPG users over time. This enables
more and more people to trust that this certificate is really yours
and not someone else's.
The continued weaving of this ``Web of Trust'' creates a flexible
authentication structure.
There is one theoretical possibility of making this certificate test
null and void: Someone plants a wrong certificate on you. In other
words, you have a public OpenPGP key that pretends to be from X but in
reality was replaced?? by Y. If this falsified certificate is
authenticated, it clearly creates a problem for the ``Web of Trust''.
For this reason it is very important to make sure that prior to
authenticating a certifidate, you make absolutely sure the certificate
really belongs to the person that purports to own it.
But what if a bank or government authority wants to check whether the
certificates of their customers are real? Surely, they cannot call
them all~...
\clearpage
\subsubsection{Authentication instances}
\index{Authentication instances}
\index{Certificate Authority (CA)}
In this case, we need a ``superordinate'' instance that all users can
trust. After all, you do not personally check the ID of a person not
known to you by phoning the municipal office, but rather trust that
the office that issued the ID will have already checked and
authenticated these details.
\T\marginOpenpgp
These types of authentication instances also exist in the case of
OpenPGP certificates. In Germany, for example, the magazine c't has
long been offering such a service free of charge, as have many
universities.
Therefore, if you have received an OpenPGP certificate
whose authenticity has been confirmed by such an authentication
instance, you should be able to rely on it.
\T\marginSmime
Such authentication instances or ``Trust Centers'' are also provided
for in other encryption methods -- such as S/MIME. However, in
contrast to the "Web of Trust", these feature a hierarchical
structure, with a ``top authentication instance'' that authenticates
additional ``sub-instances'' and entitles them to authenticate user
certificates (see Chapter~\ref{ch:openpgpsmime}).
The best way to describe this infrastructure is to use the example of
a seal: The sticker on your license plate can only be provided by an
institution that is authorised to issue such stickers, and they have
received that right from another superordinate body. On a technical
level, an authentication is \index{Authentication} nothing more than
an authenticating party signing a certificate.
Of course, hierarchical authentication infrastructures are much better
suited to the requirements of government and official instances than
the loose ``Web ofTrust'' of GnuPG, which is based on mutual trust. At
the same time, the key aspect of the authentication is the same for
both: Gpg4win also supports a hierarchical authentication (S/MIME) in
addition to the ``Web of Trust'' (OpenPGP). Accordingly, Gpg4win
offers a basis that corresponds with the Signature Act of the Federal
Republic\index{Signature law} of Germany.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
If you would like to learn more about this topic, the following websites provide more information on this and other IT security topics:
\begin{itemize}
\item \uniurl[www.bsi.de]{http://www.bsi.de}
\item \uniurl[www.bsi-fuer-buerger.de]{http://www.bsi-fuer-buerger.de}
\item \uniurl[www.gpg4win.org]{http://www.gpg4win.org}
\end{itemize}
Another, rather technical, information source on the issue of
authentication infrastructure is the GnuPG handbook, which can also be
found at:\\
\uniurl[www.gnupg.org/gph/en/manual.html]{http://www.gnupg.org/gph/en/manual.html}
\clearpage
\chapter{Encrypting \Email{}s}
\label{ch:encrypt}
\index{E-mail!encrypt}
Now it is getting exciting again: You are sending an encrypted
\Email{}.
In this case, you will need Outlook (or another \Email{} program that
supports cryptography), Kleopatra and of course the public certificate
of the person you are correspondign with.
\textbf{Note for OpenPGP:}
\T\marginOpenpgp
You can use Adele to practice the encryption process with OpenPGP; on
the other hand, Adele does not support S/MIME. You can send the
\Email{} to be encrypted to \Filename{adele@gnupp.de}. It does not
matter what your write in your message, since Adele cannot read it.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\textbf{Note for S/MIMIE:}
\T\marginSmime
Following the installation of Gpg4win, the S/MIME functionality is
already activated in GpgOL. If you want to turn off S/MIME (with
GnuPG), for example to use Outlook's own S/MIME function, you have to
deactivate the option \Menu{Activate S/MIME support} in the following
GpgOL option dialog under
\Menu{Extras$\rightarrow$Options$\rightarrow$GpgOL}:
% screenshot: GpgOL options
\T\ifthenelse{\boolean{DIN-A5}}{
\T\IncludeImage[width=0.75\textwidth]{sc-gpgol-options_en}
\T}
\T{
\IncludeImage[width=0.55\textwidth]{sc-gpgol-options_en}
\T}
\clearpage
\subsubsection{Send an encrypted message}
First, compose a new in Outlook and address it to the person you are
writing to.
To send your message as in an encrypted form, select the item
\Menu{Extras$\rightarrow$Encrypt message} in the menu of the message
window. The button with the lock icon in the tool bar is activated --
you can also click right on the lock.
Your Outlook message windows should look something like this:
% screenshot: OL composer with Adele's address and body text
\IncludeImage[width=0.85\textwidth]{sc-ol-sendEncryptedMail_en}
Now click \Button{Send}.
\label{encryptProtocol} ~\\Gpg4win will automatically detect the
protocol -- OpenPGP or S/MIME -- of the public certificate provided by
the person you are corresponding with.
As long as there is only one certificate that matches the recipient's
\Email{} address, your message will be encrypted and sent.
\clearpage
\subsubsection{Selecting certificates}
\index{Certificate!selection}
If Kleopatra is not able to clearly determine a recipient certificate
using the l\Email{} address, e.g. if you have an OpenPGP
\textit{and} S/MIME certificate from the person you are corresponding
with, a selection dialog which allows you to select the right
certificate will be displayed.
% screenshot: kleopatra encryption dialog - certificate selection
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encrypt-selectCertificate_en}
If Kleopatra is not able to find the public certificate of the person
you are corresponding with, you probably have not imported it into
your certificate administration yet (see
Chapter~\ref{ch:importCertificate}) or perhaps have not authenticated
it yet (for OpenPGP; see Chapter~\ref{ch:trust}), or have not
expressed your trust in the root certificate of the certification
chain (for S/MIME, see Chapter~\ref{sec_allow-mark-trusted}).
You need the correct public certificate of your correspondence partner
to encrypt your messages.
Remember the principle in Chapter~\ref{ch:FunctionOfGpg4win}:
\begin{quote}
\textbf{You have to use someone's public certificate to send them an an encrypted \Email{}.}
\end{quote}
\clearpage
\subsubsection{Completing the encryption process}
Once your message was successfully encrypted and sent, you will
receive a confirmation message:
% screenshot: kleopatra encryption successfully
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryption-successful_de}
\textbf{Congratulations! You have encrypted your first \Email{}!}
\chapter{Signing \Email{}s}
\label{ch:sign}
\index{E-mail!sign}
In Chapter~\ref{ch:trust} you learnt more about verifying the
authenticity of a public OpenPGP certificate, and signing it with your
own private OpenPGP key.
This chapter also explains how to \textbf{sign} a complete
\textbf{\Email{}} rather than only the certificate. That means
applying a digital signature to the \Email{} -- which is a form of an
electronic seal.
``Sealed'' in this way, the text can still be read by everyone, but it
allows the recipient to find out whether the \Email{} was manipulated
or modified during delivery. The signature tells the recipient that
the message is really from you. And: If you are corresponding with
someone whose public certificate you do not have (for whatever
reason), you can at least ``seal'' the message with your own private
key.
You have probably noticed that this digital
signature\index{Signature!digital} is not identical to an
\Email{} ``signature'', which is sometimes included at the end of an
\Email{} and includes such items as telephone number, address and
website. While these \Email{} signatures simply function as a type of
business card, a digital signature will protect your \Email{} from
manipulation and clearly confirms the sender.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Besides, a digital signature cannot be compared with a qualified
electronic signature, \index{Signature!qualified electronic} as it
went into effect as part of the Signature Act\index{Signature Act}
(22~May 2001). However, it serves exactly the same purpose for private
or professional \Email{} communication.
% cartoon: Müller mit Schlüssel
\htmlattributes*{img}{width=300}
\T\ifthenelse{\boolean{DIN-A5}}{
\T\IncludeImage[width=0.5\textwidth]{man-with-signed-key}
\T}
\T{
\IncludeImage[width=0.35\textwidth]{man-with-signed-key}
\T}
\clearpage
\section{Signing with GpgOL}
\T\enlargethispage{\baselineskip}
In fact, signing an \Email{} is even easier than encrypting it (see
Chapter~\ref{ch:encrypt}). Once you have composed a new \Email{}, go
through the following steps -- similar to the encryption process:
\begin{itemize}
\item Send message with signature
\item Select certificate
\item Completing the signing process
\end{itemize}
These steps are described in detail on the following pages.
\subsubsection{Sending a signed message}
First, compose a new \Email{} in Outlook and address it to the person
you are writing to.
Before you send your message, tell the system that your message should
be sent with a signature: To do this, activate the button with the
signature pen or the menu item \Menu{Format$\rightarrow$Sign message}.
Your \Email{} window would then look something like this:
% screenshot: OL composer with Adele's address and body text
\IncludeImage[width=0.85\textwidth]{sc-ol-sendSignedMail_en}
Now click on \Button{Send}.
\clearpage
\subsubsection{Selecting certificates}
Just as is the case for encrypting \Email{}s, Gpg4win automatically
detects the protocol -- OpenPGP or S/MIME -- for which your own
certificate (with the private key for signing) is available.
If you have your own OpenPGP \textit{and} S/MIME certificate with the
same \Email{} address, Kleopatra will ask you to select a protocol
before the \Email{} is signed:
% screenshot: kleopatra format choice dialog
\IncludeImage[width=0.45\textwidth]{sc-kleopatra-format-choice_de}
If you have several certificates (e.g. two OpenPGP certificates for
the same \Email{} address) for the selected method,Kleopatra will open
a window which displays your certificates (here: OpenPGP), each with
its own private key:
% screenshot: kleopatra format choice dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-sign-selectCertificate_en}
Confirm your selection with \Button{OK}.
\clearpage
\subsubsection{Completing the signing process}
In order to complete the signing process for your \Email{}, you will be asked to enter your secret passphrase in the following pin entry\index{Pinentry} window:
% screenshot: kleopatra sign dialog 2 - choose certificate
\IncludeImage[width=0.5\textwidth]{sc-kleopatra-sign-OpenpgpPinentry_en}
This is required because:
\begin{quote}
\textbf{You can only sign with your own private key.}
\end{quote}
It makes sense, because only your own private key confirms your identity. The person you are corresponding with can then check your identity using your public certificate, which he already has or can obtain. Because only your private key matches your public certificate.
Confirm your passphrase entry with \Button{OK}. Your message is now signed and sent.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Once your message has been signed successfully, the following dialog appears:
% screenshot: kleopatra sign successful
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-sign-successful_de}
\textbf{Congratulations! You have encrypted your first \Email{}!}
\clearpage
\subsubsection{In short:}
You have learnt how to \textbf{sign} an \Email{} using your own
certificate -- which contains your private key.
You know how to \textbf{encrypt} an \Email{} using the public
certificate of the person you are writing to.
Now you are familiar with the two most important techniques for
sending secure \Email{}s: encryption and signatures.
Of course you can also combine the two techniques. From now on, eacht
time you send an \Email{}, think about how you want to send it --
depending on the importance and required level of protection for your
\Email{}:
\begin{itemize}
\item non-encrypted
\item encrypted
\item signed
\item signed and encrypted (more on this in Section~\ref{sec_encsig})
\end{itemize}
You can use these four combinations with either OpenPGP or S/MIME.
\clearpage
\section{Checking signatures with GpgOL}
\index{Check!signature with GpgOL}
Let's assume you have received a signed \Email{} from the person you
are corresponding with.
It is very easy to check this digital signature. All you need is the
public OpenPGP or X.509 certificate of your correspondence partner.
You should have already imported his public certificate into your
certificate administration prior to performing this check (see
Chapter~\ref{ch:importCertificate}).
To check a signed OpenPGP or S/MIME \Email{}, proceed as you would for
decrypting an \Email{} (see Chapter~\ref{ch:decrypt}):
Start Outlook and open a signed \Email{}.
GpgOL will automatically transfer the \Email{} to Kleopatra for a
signature check. Kleopatra will report the result in a status dialog,
e.g.:
% screenshot: Kleopatra - successfully verify dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifySignedMail_en}
The signature check was successful! Now close to the dialog in order
to read the signed \Email{}.
If you want to perform the check again manually, select
\Menu{Extras$\rightarrow$Decrypt/Check GpgOL} in the menu of the
open \Email{}.
If the signature check is not successful, it means that the message
was changed during the delivery process. Because of the technical
nature of the Internet, it is possible that the \Email{} was
unintentionally modified because of a defective transmission. That is
probably the most likely cause. However, it can also mean that the
text was changed intentionally.
Section~\ref{sec_brokenSignature} has information on how to proceed in
such a case.
\clearpage
\section{Reasons for a broken signature}
\label{sec_brokenSignature}
\index{Signature!broken}
There are several reasons for a broken signature:
If you receive the message ``Bad signature'' or ``Check failed'', it
is a warning that your \Email{} may have been manipulated! That means
that it is possible that someone changed the \Email{}'s contents or
the subject line.
At the same time, a broken signature does not necessarily mean that
the \Email{} was manipulated. It is also possible that the \Email{}
was modified due to a defective transmission.
In any case, you should always take a broken signature seriously and
ask the sender to resend the \Email{}!\\
It is recommended that you set your program to only send \Email{}s in
``text'' format and \textbf{not} in ``HTML'' format. However, if you
decide to use HTML for signed or encrypted \Email{}s, it is possible
that formatting information will be lost by the time it reaches the
recipient, which can result in a broken signature.
In Outlook 2003 and 2007, you can set the message format to \Menu{Text
only} in
%TODO correct english menu?
\Menu{Extras$\rightarrow$Options$\rightarrow$E-Mail Format}.
\clearpage
\section{Encryption and signature}
\label{sec_encsig}
\index{E-mail!encrypt and sign}
You know: A message is usually encrypted using the public certificate
of your correspondence partner, who then decrypts the \Email{} using
his private key.
The reverse possibility -- encryption with a private key -- does not
make sense, since the whole world knows the associated public
certificate and could then decrypt the message.
However, as you have already seen in this chapter, there is still
another method to create a file using your private key -- namely the
signature.
A digital signature confirms the author -- because if someone
successfully applies your public certificate to this file (the
signature), this file could only have been encoded by your private
key. And only you can have access to this key.
You can combine both options, namely encrypting and signing the
\Email{}:
\begin{enumerate}
\item You \textbf{sign} the message with your own private key.
This proves that you are the author.
\item You then \textbf{encrypt} the text using the public
certificate of the person you are correpsonding with.
\end{enumerate}
This means that the message has two security characteristics:
\begin{enumerate}
\item Your seal on the message: the signature with your private
key.
\item A solid outer envelope: encryption using the public
certificate of the person you are corresponding with.
\end{enumerate}
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Your correspondence partner opens the outer strong envelope with his
own private key. This ensures secrecy, because only this key can be
used to decode the text. He reads the seal with your public
certificate, which proves that you were the author, because if your
public certificate matches, the seal (digital signature) can only have
been encoded with your private key.
It is pretty tricky when you think about it, but also very simple.
\clearpage
\chapter{Archiving \Email{}s in an encrypted form\htmlonly{\html{br}\html{br}}}
\label{ch:archive}
\index{E-mail!archive in encrypted form}
You should also archive your important -- and hence possibly encrypted
-- \Email{}s in only one way: encrypted.
Of course you can simply save a clear text version of your texts, but
that is actually not required. If your message was supposed to be
secret, it should not be stored on your computer in clear text.
Therefore you should always store your encrypted sent \Email{}s in an
\textit{encrypted} form!
You can probably already guess the problem: To decrypt your archived
(sent) \Email{}s, you will need the private key of the recipient --
and you don't or will ever have it ...
So what to do?
Very easy: \textbf{You also encrypt to yourself!}
The message is encrypted once for the actual person you are writing to
-- e.g. Adele -- and once more for you, using your own public
certificate. This way, you can later make the \Email{} legible using
your own private key.
Gpg4win will automatically encrypt each encrypted message to your own
certificate. To do this, Gpg4win uses your sender \Email{} address. If
you have multiple certificates for an \Email{} address, you have to
select the certificate to encrypt to during the encryption process.
\clearpage
\subsubsection{In short:}
\begin{enumerate}
\item You have encrypted an \Email{} using the public certificate
of the person you are corresponding with, and used it to
answer him.
\item Kleopatra additionally encrypts your sent encrypted
\Email{}s using your own public certificate, so that the
messages remain legible for you.
\end{enumerate}
\vspace{1cm}
\textbf{And that's it! At the end of the first part of this
compendium, you have gained a lot of introductory knowledge about
Gpg4win.}
\textbf{Welcome to the world of free and secure \Email{} encryption!}
For an even better understanding of how Gpg4win really works in the
background, we recommend that you read the second part of the Gpg4win
compendium. It contains even more interesting stuff!
%
% Part II
% page break in toc
\addtocontents{toc}{\protect\newpage}
\clearpage
\T\part{For Advanced Users}
\W\part*{\textbf{II For Advanced Users}}
\label{part:AdvancedUsers}
\addtocontents{toc}{\protect\vspace{0.3cm}}
\clearpage
\chapter{Certificate details}
\label{ch:CertificateDetails}
\index{Certificate!details}
In Chapter~\ref{sec_finishKeyPairGeneration}, you have already seen
the detailed dialog for the certificate you generated. It contains a
lot of information about your certificate. The following section
provides a more detailed overview of the most important points, with
brief information on the differences between OpenPGP and X.509
certificates, including:
\begin{itemize}
\item user ID\index{Certificate!User ID}
\item fingerprints
\item key ID\index{Key!ID}
\item validity\index{Certificate!validity}
\item trust in certificate holders \textbf{(OpenPGP only)}
\item authentications \textbf{(OpenPGP only)}
\end{itemize}
\begin{description}
\item[The user ID ] consists of the name and \Email{} address which
you entered during the certificate creation process, e.g. \\
\Filename{Heinrich Heine }
For OpenPGP certificates, you can use Kleopatra to add additional
user IDs to your certificate using the
menu \Menu{Certificates$\rightarrow$Add user ID...} menu item.
This makes sense if, for example, you wish to use the same
certificate for another \Email{} address.
Please note: Kleopatra only allows you to add user IDs for OpenPGP
certificates, but not X.509.
\item[Fingerprints] are used to differentiate multiple certificates
from each other. You can use fingerprints to look for (public)
certificates, which are stored on a globally available OpenPGP
certificate server (key server) or an X.509 certificate server. You can read more
about certificate servers in the next chapter.
\item[The key ID] consists of the last eight characters of the
fingerprint and fulfils the same function. While less characters
make it easier to handle key IDs, they also increase the risk of
multiple hits (different certificates with the same ID).
\item[The validity] of certificates describes the duration of their
validity and their expiry date, if applicable.\index{Expiry date}
In the case of OpenPGP certificates, the validity is usually set
to \Menu{Indefinite} . You can change this in Kleopatra by
clicking on \Button{Change expiry date} in the certificate details
-- or select the \Menu{Certificates$\rightarrow$Change expiry
date} and enter a new date. This means that you can declare the
certificate valid for a limited time period, e.g. in order to
issue it to outside employees.
The validity of X.509 certificates is defined by the certificate
authority when the certificate is issued, and cannot be changed by
the user.
\clearpage
\item[Trust in the certificate holder] \T\marginOpenpgp quantifies
your own subjective confidence that the owner of the OpenPGP
certificate is real (authentic) and that he will also correctly
authenticate other OpenPGP certifictes. You set the trust with
\Button{Change trust in certificate holder} in the certificate
details, or via the menu\Menu{Certificates$\rightarrow$Change
trust status} menu item.
The trust status is only relevant for OpenPGP certificates. No
such method exists for X.509 certificates.
\item[Authentications] \T\marginOpenpgp of your OpenPGP certificate
include the user IDs of those certificate holders who are
convinced of the authenticity of your certificate and have thus
authenticated it. Trust in the authenticity of your certificate
increases with the number of authentications you receive from
other users.
Authentications are only relevant to OpenPGP certificates. This
type of trust mechanism does not exist for X.509 certificates.
\end{description}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
You do not necessarily have to know the certificate details to use
Gpg4win on a daily basis, but they do become relevant when you want to
receive or change new certificates.
You already learnt how to inspect and authenticate someone else's
certificate and about the ``Web of Trust'' in Chapter~\ref{ch:trust}.
\clearpage
\chapter{The certificate server}
\label{ch:keyserver}
\index{Certificate server}
\index{Key server|see{Certificate server}}
Section~\ref{sec_publishPerKeyserver} already provided a lot of information on how to use a certificate server to publish your public (OpenPGP or X.509) certificate. This section will take a closer look at certificate servers, and will show you how to use them with Kleopatra.
Key servers can be used by all programs that support the standards OpenPGP or X.509. Kleopatra supports both types, hence both OpenPGP as well as X.509 certificate servers.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\begin{description}
\item[OpenPGP certificate servers]\T\marginOpenpgp
\index{Certificate server!OpenPGP} (also called ``key server'')
are organized on a decentralised basis and synchronize each other
on a global basis. There are no current statistics about their
number of how many OpenPGP certificates they contain. This shared
network of OpenPGP certificate servers provides better
availability and prevents individual system administrators from
deleting certificates which would make secure communication
impossible (``Denial of Service'' attack).\index{Denial of
Service}
\htmlattributes*{img}{width=300}
\IncludeImage[width=0.5\textwidth]{keyserver-world}
\item[X.509 certificate servers] \T\marginSmime
\index{Certificate server!X.509} are generally made available by
the certificate authorities via LDAP\index{LDAP} and are sometimes
also described as directory services for X.509 certificates.
\end{description}
\clearpage
\section{Key server configuration}
\label{configureCertificateServer}
\index{Certificate server!set up}
Open the configuration dialog in Kleopatra:\\
\Menu{Settings $\rightarrow$ Configure Kleopatra...}
Now set up a new certificate server under the group \Menu{Directory Services}
by clicking on the \Menu{New} button. Select between \Menu{OpenPGP} or
\Menu{X.509}.
In \Menu{OpenPGP}, a default OpenPGP certificate server with the server
address \Filename{hkp://keys.gnupg.net} (Port: 11371, Protokoll: hkp)
will be added to the list. You can use this server without making any
changes -- or you can use one of the suggested OpenPGP server
addresses on the next page.
For \Menu{X.509} you will see the following default settings for an
X.509 certificate server: (Protokoll: ldap, Servername: server, Server-Port:
389). Complete the information on the server name and basic DN of
your X.509 certificate server and check the server port.
If your certificate server requires a user name and password, activate
the option \Menu{Requires user authentication} and enter the required
information.
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
The screenshot below shows a configured OpenPGP certificate server:
% screenshot: Kleopatra OpenPGP certificate server config dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-configureKeyserver_en}
Confirm the configuration by pressing \Button{OK}. You have
successfully configured your certificate server.
To ensure that you have correctly configured the certificate server, it is
helpful to start e.g. a certificate search on the server (for
instructions, see
Section~\ref{searchAndImportCertificateFromServer}).
\newpage
\textbf{Proxy setting:}\index{Proxy}
If you use a proxy in your network, you need to configure it
in the file:\\
\Filename{\%APPDATA\%\back{}gnupg\back{}gpg.conf}\\
To enable the proxy add a new line with the content:\\
\Filename{keyserver-options http-proxy=}
Explanations regarding the system-wide configuration of X.509 key
servers can be found in Section~\ref{x509CertificateServers}.
\subsubsection{OpenPGP certificate server addresses}
\T\marginOpenpgp
We recommend that you only use up-to-date OpenPGP certificate servers,
since only they can handle the newer OpenPGP characteristics.
Here is a selection of well-functioning certificate servers:
\begin{itemize}
\item hkp://blackhole.pca.dfn.de
\item hkp://pks.gpg.cz
\item hkp://pgp.cns.ualberta.ca
\item hkp://minsky.surfnet.nl
\item hkp://keyserver.ubuntu.com
\item hkp://keyserver.pramberger.at
\item http://keyserver.pramberger.at
\item http://gpg-keyserver.de
\end{itemize}
If you have problems with your firewall, it is best to try certificate
servers whose URL begins with: \Filename{http://}
The certificate servers under the addresses
\begin{itemize}
\item hkp://keys.gnupg.net (Kleopatra pre-selection, see screenshot on previous page)
\item hkp://subkeys.pgp.net
\end{itemize}
are a collection point for an entire network of these servers; a
concrete server will be selected randomly.
\textbf{Attention:} Do not use \Filename{ldap://keyserver.pgp.com} as
a certificate server, since it does synchronize with other servers (Status:
May 2010).
\clearpage
\section{Search and import certificates from certificate servers}
\label{searchAndImportCertificateFromServer}
\index{Certificate server!search for certificates}
\index{Certificate!import}
Once you have configured at least one certificate server, you can now look for
and import certificates.
To do this, in Kleopatra click on \Menu{File$\rightarrow$Search for
certificates on server...}.
You will see a search dialog with an input field into which you can
enter the name of the certificate holder -- or ideally -- the \Email{}
address of his certificate.
% screenshot: Kleopatra certification search dialog
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-certificateSearchOnKeyserver_en}
To view the details of a selected certificate, click on the button
\Button{Details...}.
If you wish to add one of the certificates you have found into your
local certificate collection, select the certificate from a list of
search results and click on \Button{Import}.
Kleopatra will subsequently display a dialog with the import results.
Confirm with \Button{OK}.
If the import was successful, you will see the selected certificate in
Kleopatra's certificate administration.
\section{Export certificates to OpenPGP certificate servers}
\index{Certificate!export}
\T\marginOpenpgp
If you have configured an OpenPGP certificate server as described in
Section \ref{configureCertificateServer}, a click of your mouse will
send your public OpenPGP certificate around the world.
Select your OpenPGP certificate in Kleopatra and then click on the
menu item \Menu{File$\rightarrow$Export certificate to server...}.
You only need to send your certificate to any of the available OpenPGP
certificate servers, since almost all of these will synchronize on a
global level. It may take one to two days until your OpenPGP
certificate is actually available worldwide, but then you will have a
``global" certificate.
If you export your certificate without first having configured an
OpenPGP certificate server, Kleopatra will suggest the default server
\Filename{hkp://keys.gnupg.net}.
\clearpage
\chapter{Encrypting file attachments}
\index{Encrypting file attachments}
If you want to send an encrypted \Email{} and attach files, you
generally also want your attachments to be encrypted.
Where GnuPG is well integrated into your \Email{} program, attachments
should be treated just like the actual text of your \Email{}, hence
they should be signed, encrypted or both.
\textbf{GpgOL automatically assumes the encryption and signing of
attachments.}
In the case of encryption tools that are not as well integrated into
an \Email{} program, you have to be careful: Attachments are often
sent along in uncrypted form.
What to do in such a case? Easy: you encrypt the attachment
separately and then attach it to the \Email{}. Therefore this is no
different from simply encrypting files, as described in
Chapter~\ref{ch:EncFiles}.
\clearpage
\chapter{Signing and encrypting files}
\label{ch:EncFiles}
\index{GpgEX}
You can use Gpg4win for signing and encrypting not just \Email{}s, but
also individual files. The principle is the same:
\begin{itemize}
\item You \textbf{sign} a file using your private certificate, to
ensure that the file cannot be modified.
\item Then \textbf{encrypt} the file using a public certificate, to
prevent unauthorized persons from seeing it.
\end{itemize}
Using the application \textbf{GpgEX}, you can sign or encrypt files
out of Windows Explorer -- with both OpenPGP or S/MIME. This chapter
shows you exactly how this works.
If you are sending a file as an \Email{} attachment, e.g. GpgOL will
automatically look after signing and encrypting your file together
with your \Email{}. You do not have to do anything else.
\clearpage
\section{Signing and checking files}
\label{sec_signFile}
\index{File!sign}
When signing a file, you are mainly concerned about making sure it is
not changed, rather than keeping it secret (Integrity).
\index{Integrity}
Signing is very easy using \textbf{GpgEX} from the Windows Explorer
context menu. Select one or more files or folders and use the right
mouse key to select the context menu:
% screenshot GpgEX contextmenu sign/encrypt
\IncludeImage[width=0.3\textwidth]{sc-gpgex-contextmenu-signEncrypt_en}
You will see the \Menu{Sign and encrypt} menu.
\clearpage
In the following window, select the option \Menu{Sign}:
% screenshot sign file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile1_en}
If required, you can also use the option \Menu{Output as text (ASCII
armor\index{ASCII armor})}. The signature file will receive the file
ending \Filename{.asc} (OpenPGP) or \Filename{.pem} (S/MIME). These
file types can be opened with any text editor -- you will however only
see the numbers and letters you have already seen before.
If this option is not selected, the signature will be created with the
ending \Filename{.sig} (OpenPGP) or \Filename{.p7s} (S/MIME). These
files are binary files, and they cannot be viewed in a text editor.
Then click on \Button{Next}.
\clearpage
In the following dialog -- if not already selected by default --
select your private (OpenPGP or S/MIME) certificate with which you
want to sign the file.
% screenshot sign file, step 2: choose sign certificates
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile2_en}
Now confirm your selection with \Button{Sign}.
Enter your passphrase in the pin entry dialog.
\clearpage
Once the signing process has completed successfully, the following
window appears:
% screenshot sign file, step 3: finish
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-signFile3_en}
You have now successfully signed the file.
A ``separate'' signature is always used to sign a file. That means
that your file that is to be signed will remain unchanged and a second
file with the actual signature will be created. To verify the
signature later on, you will need both files.
The example below shows which new file you will receive if you sign
your selected file (here \Filename{.txt}) using OpenPGP or
S/MIME. There are four possible resulting file types:
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
\begin{description}
\item[OpenPGP:]~\\
\Filename{.txt $\rightarrow$ .txt\textbf{.sig}}\\
\Filename{.txt $\rightarrow$ .txt\textbf{.asc}}
~ \small (output as text/ASCII-armor)
\normalsize
\item[S/MIME:]~\\
\Filename{.txt $\rightarrow$ .txt\textbf{.p7s}}\\
\Filename{.txt $\rightarrow$ .txt\textbf{.pem}}
~ \small{ (output as text/ASCII-armor)}
\normalsize
\end{description}
\clearpage
\subsubsection{Checking a signature}
\index{File!check signature}
Now check the integrity of the file that has just been signed, i.e.
check that it is correct!
To check for integrity and authenticity, the signature file -- hence
the file with the ending \Filename{.sig}, \Filename{.asc},
\Filename{.p7s} or \Filename{.pem} -- and the signed original file
(original file) must be in the same file folder. Select the signature
file and select the entry \Menu{Decrypt and check} from the Windows
Explorer context menu:
% screenshot GpgEX contextmenu verifiy/decrypt
\IncludeImage[width=0.3\textwidth]{sc-gpgex-contextmenu-verifyDecrypt_en}
\clearpage
You will see the following window:
% screenshot kleopatra verify file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile1_en}
Under \Menu{Enter file}, Kleopatra shows the full path to your
selected signature file.
The option \Menu{Input file is a separate signature} is activated
since you have signed your original file (here: \Menu{Signed file})
with the input file. Kleopatra will automatically find the associated
signed original file in the same file folder.
The same path is also automatically selected for the \Menu{Ouput
folder}. It only becomes relevant however once you are processing more
than one file simultaneously.
Confirm the operations with \Button{Decrypt/Check}.
\clearpage
Following a successful check of the signature, the following window appears:
% screenshot kleopatra verify file, step 2
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile2_en}
The result shows that the signature is correct -- therefore you can be
sure that the file's integrity has been preserved and therefore the
file has \textbf{not} been modified.
\clearpage
Even if only one character is added to the original file, or is deleted or modified, the signature will be shown as having been broken
(Kleopatra displays the result as a red warning):
% screenshot kleopatra verify file, step 2a (bad signature)
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-verifyFile2a-badSignature_en}
\clearpage
\section{Encrypting and decrypting files}
\index{File!encrypt}
Files can be signed and encrypted just like \Email{}s. You should
practice it once more in the following section using GpgEX and
Kleopatra.
Select one (or more) file(s) and open the context menu using your
right mouse key:
% screenshot GpgEX contextmenu sign/encrypt
\IncludeImage[width=0.3\textwidth]{sc-gpgex-contextmenu-signEncrypt_en}
Select \Menu{Sign and encrypt} again.
\clearpage
You will see the already familiar dialog from signing a file (see also
section~\ref{sec_signFile}).
In the top field, select the option \Menu{Encrypt}:
% screenshot kleopatra encrypt file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryptFile1_en}
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{2\baselineskip}}{}
You should only change the encryption settings if this is required:
\begin{description}
\item[Output as text (ASCII armor\index{ASCII armor}):] When you
activate this option, you will obtain the encrypted file with
the file ending \Filename{.asc} (OpenPGP) or \Filename{.pem}
(S/MIME). These file types can be opened with any text editor
-- but you will only see the mixture of letters and characters
you have already seen before.
If this option is not selected, the system will create an
encrypted file with the ending \Filename{.gpg} (OpenPGP) or
\Filename{.p7m} (S/MIME). These files are binary files, so
they cannot be viewed with a text editor.
\item[Delete unencrypted original:] If this option is activated,
the selected original file will be deleted after encryption.
\end{description}
Click on \Button{Next}.
\clearpage
Who should the file be encrypted for? Select one or more recipient
certificates in the next dialog:
% screenshot kleopatra encrypt file, step 2
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryptFile2_en}
To make your selection, choose the required certificates in the top
portion and press \Button{Add}. You will see all selected certificates
in the lower dialog portion for review purposes.
Depending on the selected recipient certificate and its type (OpenPGP
or S/MIME), your file is then encrypted using OpenPGP and/or S/MIME.
So if you selected an OpenPGP certificate \textit{and } an S/MIME
certificate, you will receive two encrypted files. The possible file
types for the encrypted files are found on the next page.
\T\ifthenelse{\boolean{DIN-A5}}{\enlargethispage{\baselineskip}}{}
Now click on \Button{Encrypt}: The file is encrypted.
\clearpage
After a successful encryption, the results window should look
something like this:
% screenshot kleopatra encrypt file, step 3: successful
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-encryptFile3_en}
That's it! You have successfully encrypted your file!
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
Similar to signing a file, the result will depend on the selected
encryption method (OpenPGP or S/MIME). An encryption of your original
file (here \Filename{.txt}) can result in four possible file
types:
\begin{description}
\item[OpenPGP:]~\\
\Filename{.txt $\rightarrow$ .txt\textbf{.gpg}}\\
\Filename{.txt $\rightarrow$ .txt\textbf{.asc}}
~ \small (for output as text/ASCII-armor)
\normalsize
\item[S/MIME:]~\\
\Filename{.txt $\rightarrow$ .txt\textbf{.p7m}}\\
\Filename{.txt $\rightarrow$ .txt\textbf{.pem}}
~ \small{ (for output as text/ASCII-armor)}
\normalsize
\end{description}
You now forward one of these four possible encrypted files to your selected recipient. In contrast to signing a file, the unencrypted original file is of course \textbf{not} forwarded.
\clearpage
\subsubsection{Decrypting a file}
\index{File!decrypt}
Now you can decrypt the previously encrypted file for test purposes.
To this end, you should also have encrypted to your own certificate
during the previous encryption process -- otherwise you cannot decrypt
the file with your private key (see Chapter~\ref{ch:archive}).
Select the encrypted file -- hence one that ends with \Filename{.gpg},
\Filename{.asc}, \Filename{.p7m} or \Filename{.pem} -- and select
the entry \Menu{Decrypt and check} in the Windows Explorer context
menu:
% screenshot contextmenu verifiy/decrypt
\IncludeImage[width=0.3\textwidth]{sc-gpgex-contextmenu-verifyDecrypt_en}
\clearpage
If you like, you can still change the output folder in the following
decryption dialog.
% screenshot kleopatra decrypt file, step 1
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-decryptFile1_en}
Click on \Button{Decrypt/Check}.
Then enter your passphrase.
\clearpage
The result shows that the decryption was successful:
% screenshot kleopatra decrypt file, step 2
\IncludeImage[width=0.85\textwidth]{sc-kleopatra-decryptFile2_en}
You should now be able to easily read the decrypted file or use it
with a corresponding program.
\clearpage
\subsubsection{In short}
You have learnt how to do the following using GpgEX:
\begin{itemize}
\item sign files
\item check signed files
\item encrypt files
\item decrypt files
\end{itemize}
\subsubsection{Simultaneous encryption and signature}
You have probably already noticed this option in the corresponding
dialogs. If you select it, GpgEX will combine both tasks in one step.
Please ensure that {\em signatures are applied first}, before the
encryption process.
The signature is therefore always encrypted at the same time. It can
only be viewed and checked by those who have successfully decrypted
the file.
If you want to sign \textit{and} encrypt the file, you can only do it
with OpenPGP at this time.
\clearpage
\chapter{Importing and exporting a private certificate}
\label{ch:ImExport}
Chapters \ref{ch:publishCertificate} and \ref{ch:importCertificate}
explained the import and export of certificates. You exported your own
certificate in order to publish it, and you have imported the
certificate of your correspondence partner and thus attached it to
your ``key ring\index{Key!pair}'' (i.e. accepted it into your
certificate administration).
This process always referred to \textbf{public} keys. However,
sometimes it is also necessary to import or export a \textbf{private}
key. For example, if you wish to continue to use an already existing
(OpenPGP or S/MIME) key pair with Gpg4win, you have to import it. Or,
if you want to use Gpg4win from another computer, the entire key pair
has to be transferred to that computer --~the public and private
key.
\clearpage
\section{Export}
\index{Certificate!export}
You must make up a backup copy using Kleopatra anytime you transfer a
private certificate to another computer or want to save it to another
hard drive partition or backup medium.
You may have already set up such a backup copy at the end of your
OpenPGP certificate creation process. Since your OpenPGP certificate
may have received additional authentications in the meantinme, you
should back it up again if applicable.
Open Kleopatra, select your own certificate click on
\Menu{File$\rightarrow$Export private certificate}.
% screenshot kleopatra export secret key
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-openpgp-exportSecretKey_en}
Select the path and the file name of the output file. The file type is
set automatically. Depending on whether you want to export a private
OpenPGP or S/MIME key, the file ending \Filename{.gpg} (OpenPGP) or
\Filename{.p12} (S/MIME)will be selected by default. These are binary
files which contain your encrypted certificate (including the private
key).
When you activate the option \Menu{ASCII-protected (ASCII
armor\index{ASCII armor})}, the file ending \Filename{.asc} (OpenPGP)
or \Filename{.pem} (S/MIME) will be selected. These file types can be
opened with any text editor -- but you will only see the "mess" of
numbers and characters that we have already seen before.
If this option is not selected, an encrypted file with the ending
\Filename{.gpg} (OpenPGP) or \Filename{.p12} (S/MIME) will be created.
These files are binary files, so they cannot be viewed with a text
editor.
Kleopatra stores both key parts -- private and public -- in
\textbf{one} private certificate.
\textbf{Attention:} Please handle this file very carefully. It
contains your private key and therefore information that is critical
to security!
\clearpage
\section{Import}
\index{Certificate!import}
To import your previously exported private certificate into Kleopatra,
proceed as you would for importing other public certificates (see
Chapter~\ref{ch:importCertificate}):
Click on \Menu{File$\rightarrow$Import certificate...} and select the
file to be imported. If it concerns a PKCS12 file (e.g. type
\Filename{.p12}), the system will first ask you for a passphrase to
unlock the private key:
% screenshot pinentry p12 import (I)
\IncludeImage[width=0.5\textwidth]{sc-pinentry-p12-import-a_en}
Now enter the prassphrase -- which could also be a new one -- that is
used to protect your private key after the import is complete:
% screenshot pinentry p12 import (II)
\IncludeImage[width=0.5\textwidth]{sc-pinentry-p12-import-b_en}
Repeat the passphrase entry. If your passphrase is too short or
consist only of letters, the system will give you a corresponding
warning.
\clearpage
Following a successful import, an information window displaying the
results of the import process will appear; here is an example of a
private OpenPGP certificate:
% screenshot kleopatra import secret key - status
\IncludeImage[width=0.6\textwidth]{sc-kleopatra-import-openpgp-secret-key_en}
Kleopatra has imported both the private as well as the public key from
the backup file. Your certificate can be found in ``My certificates''
in Kleoatra's certificate administration.
Please also save the backup copy of your private certificate -- if
possible on a physically secured (e.g. in a vault) external medium.
Then delete it from your hard drive and also remember to remove the
deleted file from your ``recycling bin''. Otherwise this file poses a
great security risk for your secret \Email{} encryption.\\
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\T\marginOpenpgp
There may be cases when you are not able to import a certificate
exported with PGP (``Pretty Good Privacy''). This is because some PGP
versions use an algorithm (IDEA) which cannot be supported by GnuPG
for legal reasons.
To take care of this problem, simply change the passphrase in PGP and
export/import the OpenPGP certificate again. If this also does not
work, set the passphrase in PGP to ``empty'', that is, no protection,
and export/import again -- in this case you must ensure that you have
\textbf{securely deleted the file} and then \textbf{set up a new real
passphrase} in PGP and Gpg4win.
~\\ \textbf{Congratulations! You have successfully exported and reimported your key pair.}
\clearpage
\chapter{System-wide configuration and pre-population for
\protect{S/MIME}}
\label{ch:smime-configuration}
\T\enlargethispage{\baselineskip}
\T\marginSmime
As part of a central software distribution or environments in which
many users are working on one computer, it makes sense to set up some
system-wide specifications and pre-populations for Gpg4win.
This relates particularly to S/MIME, because in the case of specified
chains of trust it makes sense that users share the information.
Some typical system-wide settings include:
\begin{description}
\item[Trustworthy root certificates:]
\index{Trustworthy root certificates}
\index{Root certificates}
To avoid a situation where each user must search and install the
required root certificates, and check and authenticate the
trustworthiness of the same (see Section
\ref{sec_allow-mark-trusted}), it is useful to install a
system-wide pre-population of the most important root
certificates.
To this end, the root certificates should be saved
-- as described in Section \ref{trustedrootcertsdirmngr} -- and
the trustworthy root certificates should be defined -- as
described in Section \ref{sec_systemtrustedrootcerts}.
\item[Directly available CA certificates:] \index{Certificate!CA}
To save users from searching and importing the certificates of
certificate authorities, it also makes sense to pre-populate the
system with the most important CA certificates. For a description,
see Section \ref{extracertsdirmngr}.
\item[Proxy for certificate server and certificate revocation list searches:]
\index{Proxy}
With respect to validity information, X.509 protocols offer
different options. Most certification agencies publish certificate
revocation lists\index{Certificate Revocation Lists} (also
described as CRLs \index{CRLs|see{Certificate Revocation Lists}},
supported as per RFC5280) and OSCP\index{OSCP} (as per RFC2560).
OSCP has more recent information, but with the disadvantage that
network traffic occurs all the way to the OSCP service, and it is
therefore possible to see with whom messages are being exchanged.
GnuPG can work with both options; component ``DirMngr''
\index{Directory Manager|see{DirMngr}} \index{DirMngr} that
runs as the system-wide service.
Internal networks cannot permit individual computers to directly
connect to the outside (central firewall), but can provide an
acting service, a so-called ``proxy''. DirMngr can also handle
HTTP and LDAP proxies \index{LDAP} \index{HTTP}.
S/MIME certificates usually contain information on where your
certificate revocation list can be picked up externally.
Oftentimes it includes HTTP, but also directory services via
LDAP\index{LDAP}. In contrast to OpenPGP, the client cannot pick
where to pick up the certificate revocation list, but has to
follow the available information. Since some certificates only
provide certificate revocation lists via LDAP, it is necessary to
allow both HTTP as well as LDAP queries to the outside. If
possible, an acting service can ensure, at the content level, that
only X.509 certificate revocation lists with correct information
are transmitted.
If your network requires a proxy for the HTTP and HKP or LDAP
queries required for OpenPGP or S/MIME, please follow these
steps:
\begin{enumerate}
\item Set the X.509 certificate server search to a proxy, as
described in Section~\ref{x509CertificateServers}.
\item Set the certificate revocation list search to a proxy,
also described in Section~\ref{x509CertificateServers}.
\item Restart the DirMngr (see Section~\ref{dirmngr-restart}).
\end{enumerate}
\end{description}
\clearpage
\chapter{Known problems and help}
\index{Troubleshooting}
\section{GpgOL menus and dialogs no longer found in Outlook}
\index{Outlook}
It may happen that the menus and dialogs added to Outlook by GpgOL can
no longer be found.
This may be due to a technical problem that caused Outlook to
deactivate the GpgOL component.
Reactivate GpgOL via the Outlook menu:\\
Outlook2007: \Menu{?$\rightarrow$Deactivated components}\\
Outlook2003: \Menu{?$\rightarrow$Info$\rightarrow$Deactivated components}
To (de)activate GpgOL manually, use Outlook's add-in manager:
\begin{itemize}
\item \textbf{Outlook2003:}
\Menu{Extras$\rightarrow$Options$\rightarrow$Other$\rightarrow$Advanced
options... $\rightarrow$ Add-In manager...}
\item \textbf{Outlook2007:}
\Menu{Extras$\rightarrow$Trust relations
Center$\rightarrow$Add-Ins} -- then select \Menu{Exchange -
Client extensions} under \Menu{Manage} and click on \Button{Go
to...}.
\end{itemize}
\section{GpgOL buttons are not on the Outlook 2003 toolbar}
If there are already a lot of buttons on the toolbar of the message
window, Outlook 2003 will not necessarily display GpgOL's
signature/encryption icons.
You can display these buttons by clicking on the small icon with the
arrow pointing downwards on the tool bar (\Menu{Options for toolbar}):
You will see an overview of all non-displayed buttons. Clicking on an
entry will move it into the visible area of the toolbar.
\section{GpgOL button are listed unter ``Add-Ins'' (Outlook 2007)}
Outlook 2007 introduced the so-called ``ribbon'' interface. This
multi-functional bar in the Outlook message window has different tabs.
The GpgOL buttons (for encryption, signatures etc.) are organised
under the ``Add-Ins'' tab; Outlook saves all buttons of extensions in
that location. It is not possible to integrate the GpgOL buttons under
``Messages'', for example.
You can adjust your \Menu{tool bar for quick access} and add the
toolbar commands of the Add-Ins tab.
\section{Errors when starting GpgOL}
If you have first installed Gpg4win (and hence the GpgOL program
component) on a drive, then uninstalled it and re-installed it on
another drive? If yes, it is possible that Outlook will continue to
search for the GpgOL path on the first (old) drive.
This means that the GpgOL program extension is no longer started when
Outlook starts, and the following error message appears:
\Menu{The extension '\Filename{}' could not be
installed or loaded. The problem can be solved by using 'Detect and
repair' in Help, among other things.}
You can solve this problem by resetting the internal Outlook (cached)
program extension path. To do this, please delete the following
file:\\
\Filename{\%APPDATA\%\back{}Lokale
Einstellungen\back{}Application data\back{}Microsoft\back{}\T\\
Outlook\back{}extend.dat}
\textbf{Outlook should not be running during this process.} Then
restart Outlook, and it should work fine with GpgOL.
\section{Installation of Gpg4win on a virtual drive}
Please note that it is not possible to install Gpg4win on a
\textbf{virtual drive} simulated with the command \Filename{subst}.
These virtual drives can only be used locally by the current user.
System services, such as DirMngr, do not see these drives. Therefore
the installation path is not valid -- the installation will stop with
error type \Filename{error:StartService: ec=3}. Please
install Gpg4win on a drive that is available across the system.
\section{GpgOL does not check ``CryptoEx'' InlinePGP \Email{}s}
\index{CryptoEx}
To check or decrypt signed or encrypted InlinePGP \Email{}(s) sent by
the Outlook program extension ``CryptoEx'', S/MIME support must be
activated in the GpgOL options.
Make sure that the following option is active in Outlook under
\Menu{Extras$\rightarrow$Options$\rightarrow$GpgOL}:\\ \Menu{Activate
S/MIME support}.
\clearpage
\section{Does not allow S/MIME operations (system service
``DirMngr'' not running)}
\label{dirmngr-restart}
\index{DirMngr}
\T\marginSmime
The ``Directory Manager'' (DirMngr) is a service installed by Gpg4win,
which manages access to certificate servers. One task of the DirMngr
is to load certificate revocation lists (CRLs) for S/MIME
certificates.
It is possible that S/MIME operations (signature creation and check,
encryption and decryption) cannot be performed because DirMngr is not
available. Therefore Gpg4win default settings must ensure that DirMngr
checks the revocation lists -- if this is not done, the operation
cannot be performed, since it means the potential use of a compromised
certificate.
To address this problem, the system administrator restarts DirMngr.
This is done via \Menu{System
control$\rightarrow$Administration$\rightarrow$Services}. You will see
DirMngr in the list -- and the service can be restarted via the
context menu.
%\clearpage
\section{S/MIME operations not allowed (CRLs not available)}
\label{smime-problem-crl}
\T\marginSmime
It is possible that S/MIME operations (signature creation and check,
encryption and decryption) cannot be performed because the CRLs are
not available. Therefore Gpg4win default settings must ensure that
revocation lists are checked -- if this is not done, the operation
cannot be performed, since it means the potential use of a compromised
certificate.
Help is provided by setting up an acting service (``proxies'')for
picking up revocation lists (see Section
~\ref{x509CertificateServers}).
In an emergency (or for testing purposes, CRL checks can also be
turned off. To do this, open the Kleopatra menu
\Menu{Settings$\rightarrow$Set up Kleopatra} and then the group
\Menu{S/MIME check}. Activate the option \Menu{Never consult
recovation lists}.\\ \textbf{Attention:} Be aware that this also means
that you run a higher risk of using a compromised certificate. Turning
off the revocation list check is never a substitute for setting up a
proxy.
\T\ifthenelse{\boolean{DIN-A5}}{}{\clearpage}
\section{S/MIME operations not allowed (root certificate is not trustworthy)}
\label{smime-problem-rootcertificate}
\index{Root certificates}
\T\marginSmime
The respective root certificate must be trusted for a full review of
X.509 certificate chains\index{Certificate!chain}. Otherwise it is
not possible to perform S/MIME operations (signature creation and
check, encryption and decryption).
To express your trust in a root certificate, you have two options.
\begin{itemize}
\item Write the fingerprint of the corresponding root certificate
in a \textit{system-wide} configuration file. Now the
root is trustworthy for all users. To do this, you must
have Windows administrator rights. For a detailed description,
see Section~\ref{sec_systemtrustedrootcerts}.
\item Root certificate set by user (no system-wide adjustment
required). To do this, you must mark the option \Menu{Allow
marking of root certificates as trustworthy} in Kleopatra's
settings. After that, every time you import a new root
certificate, you will be asked whether you trust it. For more
details, see Section~\ref{sec_allow-mark-trusted}.
\end{itemize}
\clearpage
\chapter{Files and settings in Gpg4win}
\section{Personal user settings}
The personal settings for each user are found in the file folder:\\ \Filename{\%APPDATA\%\back{}gnupg}\\
Often, this is the following folder: \\
\Filename{C:\back{}Documents and
settings\back{}\back{}Application data\back{}%
\T\ifthenelse{\boolean{DIN-A5}}{\\}{}%
gnupg\back{}}
Please note that this is a hidden file folder. To make it visible, you
have to activate the option \Menu{Show all files and folders} under
the group \Menu{Hidden files and folders} in the tab \Menu{View} of
the Explorer \Menu{Extras$\rightarrow$Folder options} menu
This file folder contains all personal GnuPG data, hence private keys,
certificates, trust settings and configurations. This folder is \textit{not} deleted
when Gpg4win is uninstalled. Please ensure that
you make regular backup copies of this folder.
\section{Cached certificate revocation lists}
\index{Certificate Revocation Lists}
\T\marginSmime
The system-wide service Mngr (Directory Manager) \index{DirMngr} also
checks whether an X.509 certificate is blocked and can therefore not
be used. To this end, certificate revocation lists (CRLs) are picked
up from the issuing offices for the certificates (CAs) and cached for
the duration of the validity period.
The lists are saved under:
\newline
\Filename{C:\back{}Documents and
Settings\back{}LocalService\back{}Lokale Settings\back{}Application
data\back{}\T\newline
GNU\back{}cache\back{}dirmngr\back{}crls.d\back{}}
These are \textit{protected} files, which Explorer does not display by
default. However, if you wish to show these files, deactivate the
option \Menu{Hide protected system files} in the Window Explorer
\Menu{View} settings.
No changes should be made to this file folder.
\T\ifthenelse{\boolean{DIN-A5}}{}{\clearpage}
\section{Trustworthy root certificates from DirMngr}
\label{trustedrootcertsdirmngr}
\index{DirMngr}
\index{Trustworthy root certificates}
\index{Root certificates}
\T\marginSmime
For a full review of X.509 certificates, you must trust the root
certificates which were used to sign the revocation lists.
The root certificates which the DirMngr should trust across the entire
system when performing its checks are stored in the following file
folder:
\Filename{C:\back{}Documents and settings\back{}All
Users\back{}Application data\back{}\T\newline
GNU\back{}etc\back{}dirmngr\back{}trusted-certs\back{}}
\W~\\\\
\textbf{Important:} The corresponding root certificates must be
available as files in DER format in the above file folder, with the
file name \Filename{.crt} or \Filename{.der}.
The DirMngr runs as a system-wide service and must be restarted if
changes have been made to the ``trusted certs'' file folder.
Afterwards, the root certificates saved in this folder are set to
\textbf{trustworthy} for all users.
Please also see Section \ref{sec_systemtrustedrootcerts} in order to
completely trust root certificates (system-wide).
\T\ifthenelse{\boolean{DIN-A5}}{\newpage}{}
\section{Other certificates from DirMngr}
\label{extracertsdirmngr}
\T\marginSmime
Since the X.509 certificate chain must be checked prior to a
cryptography operation, the corresponding certificate of the
authentication instance (``Certificate Authority'', CA) must also be
checked.
For immediate availability, CA certificates can be saved in this
(system-wide) file folder:
\newline
\Filename{C:\back{}Documents and settings\back{}All
Users\back{}Application data\back{}\T\newline
GNU\back{}lib\back{}dirmngr\back{}extra-certs\back{}}
Certificates that are not available here and/or not available from
users must automatically be loaded by X.509 certificate servers.\\
These CA certificates can also be imported manually by a user however.
It makes sense to store the most important CA certificates in this
folder as part of system-wide specifications.
\clearpage
\section{System-wide configuration for use of external
X.509 certificate servers \label{x509CertificateServers}}
\T\marginSmime
GnuPG can be configured in such a way that allows the system to search
for missing X.509 certificates or certificate revocation lists on
external X.509 certificate servers (see also Chapter
~\ref{ch:smime-configuration}).\\
To conduct a \textbf{X.509 certificate search}, the system service
DirMngr uses a list of certificate servers which can be entered in the
file \newline
\Filename{C:\back{}Documents and settings\back{}All
Users\back{}Application data\back{}\T\\
GNU\back{}etc\back{}dirmngr\back{}ldapservers.conf}\\
These certificate servers are used for all users (system-wide). In
addition, users can also set up additional user-specific certificate
servers for certificate searches -- e.g. directly via Kleopatra (see
Chapter~\ref{configureCertificateServer}).
The exact syntax for certificate server entries in the aforementioned
configuration file is as follows:
\Filename{HOSTNAME:PORT:USERNAME:PASSWORD:BASE\_DN}
If access to external X.509 certificate servers is blocked by
firewalls in the internal network, it is also possible to configure a
proxy service\index{Proxy} in \Filename{ldapservers.conf} for
transmitting the certificate search, as illustrated in the following
sample line:
\Filename{proxy.mydomain.example:389:::O=myorg,C=de}\\
With respect to a search of \textbf{Certificate Revocation
Lists}\index{Certificate Revocation Lists} (CRLs), the same directory
contains a configuration file from:
\Filename{C:\back{}Documents and settings\back{}All
Users\back{}Application data\back{}\T\\
GNU\back{}etc\back{}dirmngr\back{}dirmngr.conf}
Please note that only administrators can write in this file.
You can add the following proxy options to this configuration file
(each option in a row):
\begin{itemize}
\item \Filename{http-proxy HOST[:PORT]}
\index{HTTP}
This option uses \Filename{HOST} und \Filename{PORT}
for accessing the certificate server. The environment variable
\Filename{http\_proxy} will be overwritten if this option is
activated.
Example:\\
\Filename{http-proxy http://proxy.mydomain.example:8080}
\item \Filename{ldap-proxy HOST[:PORT]}
\index{LDAP}
This option uses \Filename{HOST} und \Filename{PORT} for
accessing the certificate server. If no port number is
listed, the standard LDAP port 389 will be used. This option
will overwrite the LDAP URL contained in the certificate, or
will use \Filename{HOST} and\Filename{PORT}if no LDAP URL has
been entered.
\item \Filename{only-ldap-proxy}
This option ensures that DirMngr only uses the proxy
configured under \Filename{ldap-proxy}. Because otherwise
DirMngr will try to use other configured certificate servers,
if the connection via \Filename{ldap-proxy} is not successful.
\end{itemize}
\clearpage
\section{System-wide trustworthy root certificates}
\label{sec_systemtrustedrootcerts}
\index{Root certificates}
\T\marginSmime
The pre-populated root certificates which are deemed as trustworthy
for the entire system are defined in the \\
\Filename{C:\back{}Documents and settings\back{}All Users\back{}Application data\T\\
\back{}GNU\back{}etc\back{}gnupg\back{}trustlist.txt} \index{trustlist.txt}file.
To mark a root certificate as trustworthy, the corresponding
fingerprint of the certificate, followed by an empty space and a large
\Filename{S} must be entered into the above file. A certificate is
explicitly marked as not trustworthy if the row beings with the prefix
``\Filename{!}''. You can also enter multiple root certificates. In
that case, please ensure that each fingerprint is located in a new
row. A row that begins with \texttt{\#} will be treated as a comment
and ignored.
Important: The end of the file must be followed by an empty row.
An example:
\T\ifthenelse{\boolean{DIN-A5}}{\scriptsize}{}
\begin{verbatim}
# CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
A6935DD34EF3087973C706FC311AA2CCF733765B S
# CN=PCA-1-Verwaltung-02/O=PKI-1-Verwaltung/C=DE
DC:BD:69:25:48:BD:BB:7E:31:6E:BB:80:D3:00:80:35:D4:F8:A6:CD S
# CN=Root-CA/O=Schlapphuete/L=Pullach/C=DE
!14:56:98:D3:FE:9C:CA:5A:31:6E:BC:81:D3:11:4E:00:90:A3:44:C2 S
\end{verbatim}
\T\ifthenelse{\boolean{DIN-A5}}{\normalsize}{}
In some cases it is useful to reduce the criteria for checking the
root certificate. To do this, you can set an additional flag
\Filename{relax} after the \Filename{S}: \Filename{ S relax}
\textbf{Important:} Using \Filename{relax} reduces the level of
security, so it needs to be decided on a case-by-case basis and should
only be used in the case of problems.
For more details, see current GnuPG documentation (item ``trustlist.txt''):\\
\T\ifthenelse{\boolean{DIN-A5}}{
\T\scriptsize
\T\texttt{http://www.gnupg.org/documentation/manuals/gnupg/Agent-Configuration.html}
\T\normalsize
\T}
\T{
\uniurl{http://www.gnupg.org/documentation/manuals/gnupg/Agent-Configuration.html}
\T}
Therefore the exact syntax for entries in trustlist.txt is as follows:\\
\Filename{[!] S [relax]}\\
whereby \Filename{!} and \Filename{relax} are optional.
Instead of the flag \Filename{S}, the values \Filename{P} and
\Filename{*} are also provided, which are reserved for future use.
\textbf{Important:} To fully mark root certificates as trustworthy in
Kleopatra (certificate is highlighted in blue), the root certificates
must also be stored for the DirMngr, as described in Section
\ref{trustedrootcertsdirmngr}.
\clearpage
\section{User marking of trustworthiness of root certificates}
\label{sec_allow-mark-trusted}
\index{Trustworthy root certificates}
\index{Root certificates}
\T\marginSmime
Root certificates can also be marked as trustworthy by individual
users -- this means that a system-wide configuration (see Section
\ref{trustedrootcertsdirmngr} and \ref{sec_systemtrustedrootcerts}) is
then not required.
Open the Kleopatra menu \Menu{Settings$\rightarrow$Configure
Kleopatra} and then the groupo \Menu{S/MIME check}. Then activate the
option \Menu{Allow root certificates to be marked trustworthy}. Now,
if you are using a root certificate that has not been previously
marked as trustworthy, the system will ask you whether you wish to
classify it as trustworthy. Please ensure that the gpg-agent may have
to be restarted before a change takes effect (e.g. by logging in and
out).
The root certificates which you have marked as trustworthy (or
explicitly marked as non-trustworthy) are automatically stored in the
following file: \\
\Filename{C:\back{}Dokumente und
Einstellungen\back{}\back{}\T\\
Application data\back{}gnupg\back{}trustlist.txt}
\index{trustlist.txt}
The same syntax applies to trustlist.txt as described in Section
~\ref{sec_systemtrustedrootcerts}.
\clearpage
\chapter{Detecting problems in Gpg4win programs (log files)}
\index{Log file}
It is possible that one of the Gpg4win program components does not
work as expected.
Quite often this is due to a feature related to the work environment,
which Gpg4win software developers are not able to detect.
To assist them with finding the problem, or to allow users to see the
detailed technical processes, Gpg4win programs also offer help.
Usually though, this type of help must first be activated. One of the
most important tools are log files: This is where detailed diagnostic
information on internal technical processes is stored. By looking at a
log file, a software developer can often quickly detect a problem and
the possible solution, even if the program may seem very complex at
the beginning.
If you wish to send an error report to the software developer, you may
this information helpful:
\uniurl{http://gpg4win.org/reporting-bugs.html}
Log files -- described as ,,debug information'' in the
above-mentioned URL -- frequently offer valuable information and
should therefore be attached to an error report.
This chapter describes how to activate program process information
(which is what log files essentially are) for individual Gpg4win
programs.
\clearpage
\section{Activating Kleopatra log files}
\index{Log file!Kleopatra}
Kleopatra log data consists of many files, therefore the first step is
to create a file folder for the log files, for example:
\Filename{C:\back{}TEMP\back{}kleologdir}
Please note that these are user settings, not system administrator
settings. Therefore the settings must be made for each user who wants
to create Kleopatra log data, and you must ensure that different
\Filename{kleologdir} file folders are used.
The path to this folder must be noted in the new environment variables
\Filename{KLEOPATRA\_LOGIDR}:
To do this, open the control panel, choose \Menu{System}, then the tab
\Menu{Advanced} and finally the button \Button{Environment
variables}.
Add the following new \textbf{user variable}:
\begin{quote}
Name of variable: \Filename{KLEOPATRA\_LOGDIR}
Value of variable: ~\Filename{C:\back{}TEMP\back{}kleologdir}
\end{quote}
Make sure that the entered file folder actually exists. You can also
create it afterwards.
To ensure the log function goes into effect, Kleopatra must be shut
down and restarted, the file folder of log data must exist and must be
available for Kleopatra to write on.
While Kleopatra is used, it will record process information in the
file \Filename{kleo-log} (main log file) as well as possibly many
files with a name that following this pattern:\\
\Filename{pipe-input-