diff --git a/configure.ac b/configure.ac
index 28e04cbf..7c1b68bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,440 +1,440 @@
# configure.ac for GPG4Win
# Copyright (C) 2005, 2006, 2007, 2008, 2010 g10 Code GmbH
#
# This file is part of GPG4Win
#
# GPG4Win is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GPG4Win is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see .
# (Process this file with autoconf to produce a configure script.)
AC_PREREQ(2.59)
min_automake_version="1.9.3"
# To build a release you need to create a tag with the version number
# (git tag -s gpg4win-2.x.y) and run "./autogen.sh --force". Please
# bump the version number immediately after the release and do another
# commit and push so that the git magic is able to work.
m4_define([my_version], [3.0.3])
# Below is m4 magic to extract and compute the git revision number,
# the decimalized short revision number, a beta version string and a
# flag indicating a development version (my_isgit). The latter works
# by requiring the final tag in the repository.
m4_define([git_revision],
m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
m4_define([git_revision_dec],
m4_esyscmd_s([echo $((0x$(echo ]git_revision[|head -c 4)))]))
m4_define([git_betastring],
m4_esyscmd_s([git describe --tags --match 'gpg4win-[0-9].*.*[0-9]' \
--long | awk -F- '$3!=0{print"-beta"$3}']))
m4_define([my_isgit],m4_if(git_betastring,[],[no],[yes]))
m4_define([my_full_version],[my_version[]git_betastring])
AC_INIT([gpg4win],[my_full_version],[gpg4win-devel@wald.intevation.org])
# Remember to update these version numbers also in the NEWS file.
MANUALVERSION_EINSTEIGER="2.0.2"
MANUALDATE_EINSTEIGER="30. Mai 2006"
MANUALVERSION_DURCHBLICKER="2.0.2"
MANUALDATE_DURCHBLICKER="30. Mai 2006"
MANUALVERSION_NOVICES="1.0.0"
MANUALDATE_NOVICES="Nov. 30, 2006"
MANUALVERSION_ADVANCED="0.0.0"
MANUALDATE_ADVANCED="Nov. 30, 2006"
COMPENDIUM_VERSION_DE="4.0.0"
COMPENDIUM_DATE_DE="23. Juni 2017"
-COMPENDIUMINPROGRESS_DE="zuletzt geringfügig korrigiert am 05. Juli 2017"
+COMPENDIUMINPROGRESS_DE="zuletzt geringfügig korrigiert am 10. Januar 2018"
COMPENDIUM_VERSION_EN="3.0.0"
COMPENDIUM_DATE_EN="30th November 2016"
COMPENDIUMINPROGRESS_EN="last minor changes from 30th November 2016"
MANUALINPROGRESS_DE=m4_if(my_isgit,[yes],["~und evtl. seitdem weiter bearbeitet"])
MANUALINPROGRESS_EN=m4_if(my_isgit,[yes],["~and may have been further edited"])
PACKAGE=$PACKAGE_NAME
VERSION=$PACKAGE_VERSION
GIT_REVISION=git_revision
GIT_REVISION_DEC=git_revision_dec
AC_CONFIG_SRCDIR(src/config.nsi.in)
AC_CONFIG_MACRO_DIR(m4)
AM_INIT_AUTOMAKE([tar-ustar])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
AM_CONFIG_HEADER(config.h)
# Language support
AM_PO_SUBDIRS
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(MANUALVERSION_EINSTEIGER)
AC_SUBST(MANUALDATE_EINSTEIGER)
AC_SUBST(MANUALVERSION_DURCHBLICKER)
AC_SUBST(MANUALDATE_DURCHBLICKER)
AC_SUBST(MANUALINPROGRESS_DE)
AC_SUBST(MANUALVERSION_NOVICES)
AC_SUBST(MANUALDATE_NOVICES)
AC_SUBST(MANUALVERSION_ADVANCED)
AC_SUBST(MANUALDATE_ADVANCED)
AC_SUBST(MANUALINPROGRESS_EN)
AC_SUBST(COMPENDIUM_VERSION_DE)
AC_SUBST(COMPENDIUM_DATE_DE)
AC_SUBST(COMPENDIUMINPROGRESS_DE)
AC_SUBST(COMPENDIUM_VERSION_EN)
AC_SUBST(COMPENDIUM_DATE_EN)
AC_SUBST(COMPENDIUMINPROGRESS_EN)
if echo "${PACKAGE_VERSION}" | egrep 'svn|rc|beta|git' >/dev/null ; then
IS_BETA_BUILD=yes
else
IS_BETA_BUILD=no
fi
AC_SUBST(IS_BETA_BUILD)
# Generate extended version information. Note, that for NSIS use we
# must not translate the dots to commas in the BUILD_FILEVERSION.
BUILD_TIMESTAMP=`date --iso-8601=minutes`
BUILD_ISODATE=`date --iso-8601`
changequote(,)dnl
BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./'`
changequote([,])dnl
BUILD_FILEVERSION="${BUILD_FILEVERSION}${GIT_REVISION_DEC}"
AC_SUBST(BUILD_TIMESTAMP)
AC_SUBST(BUILD_ISODATE)
AC_SUBST(BUILD_FILEVERSION)
# To test the manuals using an actual web server, the preview target
# may be used in doc/manuals. The default is my (wk) test environment
# but may be overriden using another preview variable. PREVIEWHOST is
# expected to be the target for an rsync command.
if test -z "$PREVIEWHOST" ; then
PREVIEWHOST="vigenere:/var/www/all/preview.gpg4win.org/htdocs/"
fi
AC_SUBST(PREVIEWHOST)
# The final release is copied to an archive server. The default
# location may be changed by setting the RELEASEHOST envvar.
if test -z "$RELEASEHOST" ; then
RELEASEHOST="vigenere:tarballs/gpg4win"
if test "${IS_BETA_BUILD}" = yes ; then
RELEASEHOST="${RELEASEHOST}/Beta"
fi
fi
AC_SUBST(RELEASEHOST)
# Substitutions to set generated files in a Emacs buffer to read-only.
AC_SUBST(emacs_local_vars_begin, ['Local Variables:'])
AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
AC_SUBST(emacs_local_vars_end, ['End:'])
# For development of this package it is useful to build without
# creating the source installer (takes a long time). This option may
# be used to suppress creation of the source installer.
AC_ARG_ENABLE(source-installer,
AC_HELP_STRING([--disable-source-installer],
[Do not create the Source installer]),
build_source_installer=$enableval,
build_source_installer=yes)
AM_CONDITIONAL(BUILD_SOURCE_INSTALLER, test "$build_source_installer" = yes)
# You can build a light version of the installer in addition to the
# regular version. This one does not contain the manuals.
AC_ARG_ENABLE(light-installer,
AC_HELP_STRING([--disable-light-installer],
[Do not create the light version of the installer]),
build_light_installer=$enableval,
build_light_installer=no)
AM_CONDITIONAL(BUILD_LIGHT_INSTALLER, test "$build_light_installer" = yes)
# You can build a vanilla version of the installer, featuring only
# GnuPG, a pinentry and GPGME, in addition to the regular version.
# This one does not contain the manuals.
AC_ARG_ENABLE(vanilla-installer,
AC_HELP_STRING([--disable-vanilla-installer],
[Do not create the vanilla version of the installer]),
build_vanilla_installer=$enableval,
build_vanilla_installer=no)
AM_CONDITIONAL(BUILD_VANILLA_INSTALLER, test "$build_vanilla_installer" = yes)
# If you want to build only the light or vanilla installer, you may
# disable building of the full installer.
AC_ARG_ENABLE(full-installer,
AC_HELP_STRING([--disable-full-installer],
[Do not create the full version of the installer]),
build_full_installer=$enableval,
build_full_installer=yes)
AM_CONDITIONAL(BUILD_FULL_INSTALLER, test "$build_full_installer" = yes)
# For development it is often faster to build without manuals.
AC_ARG_ENABLE(manuals,
AC_HELP_STRING([--disable-manuals],
[Do not build the manuals (for debugging)]),
build_manuals=$enableval,
build_manuals=yes)
AM_CONDITIONAL(BUILD_MANUALS, test "$build_manuals" = yes)
# Additionaly enable building gpgex for another host
AC_ARG_WITH([additional-gpgex-host],
AC_HELP_STRING([--with-additional-gpgex-host=HOST],
[Additionaly build gpgex for this host]),
[if test "$withval" = yes; then
AC_MSG_FAILURE(
[--with-additional-gpgex-host was given,
but no host specified])
else
gpgex_host=$withval
fi
],
gpgex_host=no)
if test "$gpgex_host" != no; then
GPGEX_ADD_HOST="$gpgex_host"
fi
AC_SUBST(GPGEX_ADD_HOST)
AC_ARG_ENABLE(fast-makensis,
AC_HELP_STRING([--enable-fast-makensis],
[Use a less efficient compressor to speed up building]),
use_fast_makensis=$enableval,
use_fast_makensis=no)
if test "$use_fast_makensis" = yes; then
EXTRA_MAKENSIS_FLAGS="${EXTRA_MAKENSIS_FLAGS} -DDISABLE_LZMA=1"
fi
AC_SUBST(EXTRA_MAKENSIS_FLAGS)
# Required tools.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_RANLIB
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOLS(STRIP, strip)
AC_CHECK_TOOLS(DLLTOOL, dlltool)
AC_CHECK_PROGS(MAKE, make)
AC_CHECK_PROGS(UNZIP, unzip)
AC_CHECK_PROGS(TAR, tar)
AC_CHECK_PROGS(MKDIR, mkdir)
AC_CHECK_PROGS(CP, cp)
AC_CHECK_PROGS(RM, rm)
AC_CHECK_PROGS(STOW, stow)
AC_CHECK_PROGS(MAKENSIS, makensis)
AC_CHECK_PROGS(ZCAT, zcat)
AC_CHECK_PROGS(TEXI2DVI, texi2dvi)
AC_CHECK_PROGS(DVIPDF, dvipdf)
AC_CHECK_PROGS(CONVERT, convert)
AC_CHECK_PROGS(SHA1SUM, sha1sum)
AC_CHECK_PROGS(MSGFMT, msgfmt)
AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog,
[build-aux/gitlog-to-changelog])
AC_CHECK_PROGS(BUILD_CC, gcc cc)
AC_PROG_INSTALL
if test -n "$GPGEX_ADD_HOST"; then
AC_CHECK_TOOLS(STRIP_EX, ${GPGEX_ADD_HOST}-strip)
fi
if test -z "$GPG4WIN_PARALLEL"; then
JOBS=$(nproc 2>/dev/null || echo 1)
GPG4WIN_PARALLEL=-j$JOBS
AC_MSG_NOTICE([Using autodetected $JOBS make jobs. You can override this by setting GPG4WIN_PARALLEL.])
fi
AC_SUBST(GPG4WIN_PARALLEL)
missing_tools=
for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS ZCAT TEXI2DVI \
DVIPDF CONVERT SHA1SUM MSGFMT BUILD_CC; do
eval tmp='$'$i
if test -z "$tmp"; then
missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`"
fi
done
# Additional runtime libraries from mingw.
GPG4WIN_RUNTIME_LIBRARY(libgcc_s_sjlj-1)
GPG4WIN_RUNTIME_LIBRARY(libstdc++-6)
GPG4WIN_RUNTIME_LIBRARY(libwinpthread-1)
AC_CHECK_PROGS(GLIB_GENMARSHAL, glib-genmarshal)
AC_CHECK_PROGS(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
AC_CHECK_PROGS(GLIB_COMPILE_RESOURCES, glib-compile-resources)
AC_CHECK_PROGS(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource)
missing_opt_tools=
for i in GLIB_GENMARSHAL GLIB_COMPILE_SCHEMAS GLIB_COMPILE_RESOURCES \
GDK_PIXBUF_CSOURCE; do
eval tmp='$'$i
if test -z "$tmp"; then
missing_opt_tools="$missing_opt_tools `echo $i | tr 'A-Z' 'a-z'`"
fi
done
# Optional tools.
AC_CHECK_PROGS(WGET, wget)
# Packages.
gpg4win_dup_sources=""
GPG4WIN_SPKG([zlib])
GPG4WIN_BPKG_GTK([pkgconfig])
GPG4WIN_SPKG([libffi], [pkgconfig])
GPG4WIN_SPKG([glib], [libiconv gettext pkgconfig libffi zlib])
GPG4WIN_BPKG_GTK_DEV([atk], [glib pkgconfig])
GPG4WIN_BPKG_GTK_DEV([pango], [glib pkgconfig])
GPG4WIN_BPKG_GTK_DEV([cairo], [glib pkgconfig])
GPG4WIN_BPKG_GTK_DEV([expat])
GPG4WIN_BPKG_GTK_DEV([freetype], [pkgconfig zlib])
GPG4WIN_BPKG_GTK_DEV([fontconfig], [pkgconfig zlib expat])
GPG4WIN_SPKG([gdk-pixbuf], [glib])
GPG4WIN_SPKG([gtk+], [libiconv gettext pkgconfig atk pango dnl
glib gdk-pixbuf cairo])
GPG4WIN_SPKG([libpng], [pkgconfig])
GPG4WIN_SPKG([bzip2])
GPG4WIN_SPKG([libgpg-error], [libiconv gettext])
GPG4WIN_SPKG([libassuan], [libgpg-error w32pth])
GPG4WIN_SPKG([pinentry], [qtbase libiconv gtk+])
GPG4WIN_SPKG([gpgme], [libgpg-error glib qtbase])
GPG4WIN_SPKG([gpgol], [gpgme libassuan])
GPG4WIN_SPKG([gpgex], [libassuan])
GPG4WIN_SPKG([paperkey])
GPG4WIN_SPKG([gpa], [libiconv gettext zlib gtk+ libpng glib gpgme])
GPG4WIN_SPKG([w32pth])
GPG4WIN_SPKG([libiconv])
GPG4WIN_SPKG([gettext], [libiconv])
# Packages needed for gpgex
GPG4WIN_SPKGEX([libgpg-error])
GPG4WIN_SPKGEX([libassuan], [libgpg-error])
GPG4WIN_SPKGEX([gpgex], [libassuan])
GPG4WIN_SPKGEX([gpgme], [libgpg-error libassuan])
GPG4WIN_SPKGEX([gpgol], [gpgme])
GPG4WIN_IPKG([compendium])
# The GnuPG Package.
GPG4WIN_BPKG_BINSRC([gnupg-w32])
# See the script kde-l10n.sh how this package is created.
GPG4WIN_BPKG_BINSRC([kde-l10n])
# Qt related stuff.
GPG4WIN_SPKG([qtbase], [libpng])
GPG4WIN_SPKG([qttools], [qtbase])
GPG4WIN_SPKG([qttranslations], [qtsvg qttools qtwinextras])
GPG4WIN_SPKG([qtwinextras], [qtbase])
GPG4WIN_SPKG([qtsvg], [qtbase])
GPG4WIN_SPKG([boost], [expat zlib bzip2])
GPG4WIN_KDEPKG([breeze-icons], [extra-cmake-modules qtbase])
GPG4WIN_KDEPKG([kleopatra], [gnupg-w32 breeze-icons kxmlgui libkleo kde-l10n kitemmodels qttranslations])
GPG4WIN_KDEPKG([extra-cmake-modules])
GPG4WIN_KDEPKG([kconfig], [qtbase qttools extra-cmake-modules])
GPG4WIN_KDEPKG([ki18n], [qtbase gettext qttools extra-cmake-modules])
GPG4WIN_KDEPKG([kwidgetsaddons], [kconfig qttools qtbase])
GPG4WIN_KDEPKG([kcompletion], [kwidgetsaddons])
GPG4WIN_KDEPKG([kwindowsystem], [qtbase qtwinextras])
GPG4WIN_KDEPKG([kcoreaddons], [qtbase qttools])
GPG4WIN_KDEPKG([kcodecs], [qtbase qttools])
GPG4WIN_KDEPKG([kguiaddons], [qtbase qttools])
GPG4WIN_KDEPKG([kmime], [kcodecs])
GPG4WIN_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig])
GPG4WIN_KDEPKG([kitemviews], [qtbase qttools])
GPG4WIN_KDEPKG([kitemmodels], [qtbase qttools])
GPG4WIN_KDEPKG([karchive], [qtbase qttools extra-cmake-modules])
GPG4WIN_KDEPKG([kiconthemes], [qtsvg kconfigwidgets karchive])
GPG4WIN_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews])
GPG4WIN_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme])
GPG4WIN_FINALIZE
# Throw an error if required tools are missing
if test -n "$missing_tools"; then
for i in $missing_tools; do
AC_MSG_NOTICE([$i is missing])
done
AC_MSG_ERROR([[
***
*** Required tools not found. Please consult the above messages
*** and install them before running configure again.
***]])
fi
# Throw an error if any duplicate source packages have been found
if test -n "$gpg4win_dup_sources"; then
tmp=
for i in $gpg4win_dup_sources; do
tmp="$tmp
$i"
done
tmp2="
You might remove them with:"
for i in $gpg4win_rm_candidates; do
if ! grep -q $(basename $i) packages/packages.current; then
tmp2="$tmp2
rm $i"
fi
done
AC_MSG_ERROR([Packages with more that one source version:$tmp$tmp2])
fi
# Finalize.
AC_CONFIG_FILES(Makefile)
AC_CONFIG_FILES(packages/Makefile src/Makefile po/Makefile.in)
AC_CONFIG_FILES(po/build-cc)
AC_CONFIG_FILES(src/config.nsi src/gpg4win.mk)
AC_CONFIG_FILES(doc/Makefile)
AC_CONFIG_FILES(doc/logo/Makefile)
AC_CONFIG_FILES(doc/manual/Makefile doc/manual/version.tex)
AC_CONFIG_FILES(src/toolchain.cmake)
AC_OUTPUT
# Throw a warning if optional tools are missing
if test -n "$missing_opt_tools"; then
AC_MSG_WARN([[
***
*** Some tools not found. They may or may not be needed depending on
*** the packages you want to include. For example GLIB and GTK+
*** require certain tools; you may need to install a recent version of
*** GLIB and GTK+ on the build machine to allow for cross-compiling.
***]])
for i in $missing_opt_tools; do
AC_MSG_NOTICE([$i is missing])
done
fi
echo -n "
$PACKAGE_NAME-$PACKAGE_VERSION prepared for make
Revision: ${GIT_REVISION} (${GIT_REVISION_DEC})
32bit platform: $host
64bit platform: ${GPGEX_ADD_HOST}
"
if test -n "$JOBS"; then
echo " make jobs: ${JOBS}"
else
echo ""
fi
diff --git a/doc/manual/gpg4win-compendium-de.tex b/doc/manual/gpg4win-compendium-de.tex
index 4ce80209..5e6c20c8 100644
--- a/doc/manual/gpg4win-compendium-de.tex
+++ b/doc/manual/gpg4win-compendium-de.tex
@@ -1,5658 +1,5658 @@
% 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}
\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:
+Was ist Gpg4win?\index{Gpg4win} Die deutsche Wikipedia beantwortet diese Frage
+so:
\begin{quote}
- \textit{Gpg4win ist ein Installationspaket für Windows (2000/XP/2003/Vista)
-mit Computer-Programmen und Handbüchern zur \Email{}- und
-Dateiverschlüsselung. Dazu gehören die Verschlüsselungs-Soft\-ware
-GnuPG sowie mehrere Anwendungen und die Dokumentation. Gpg4win selbst
-und die in Gpg4win enthaltenen Programme sind Freie
-Software.}
+ \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.
\item \textbf{Claws Mail}\index{Claws Mail}\\ ist ein vollständiges
\Email{}-Programm mit sehr guter Unterstützung für GnuPG.
\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.de]{http://www.bsi.de} und
+\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 der
-Wikipedia über das
+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äutern.
+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
+ö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. Weitere Details finden Sie im
- Abschnitt~\ref{sec_publishPerEmail}.
+ 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 an Ihren eigenen
+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.
+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 ein OpenPGP-Schlüssel erhält, das durch eine solche
+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.de]{http://www.bsi.de}
+ \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:\\
+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 es aber ein anderes Verfahren, um mit Ihrem geheimen Schlüssel
+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 ein 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.
+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, das
+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
+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 die nicht Urheberschaft der
+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 signierte \Email{} zu prüfen, gehen Sie wie folgt
+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 Sie nie haben ...
+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.
+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, an welchen Schlüssel verschlüsselt werden soll.
+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.
+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 und erfüllt denselben
- Zweck wie dieser. Die wesentlich geringere Länge macht die
- Schlüsselkennung einfacher handhabbar,
+ 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 es zu
+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 es ggf.
+aber inzwischen weitere Beglaubigungen haben kann, sollten Sie ihn ggf.
erneut sichern.
-Öffnen Sie Kleopatra, selektieren Sie Ihren eigenen Schlüssen und
+Ö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$Geheimes Zertifikat exportieren}.
+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$Zertifikat importieren...} und
+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 auf analoge so können Sie ihn z.B.
-in einem Bankschließfach hinterlegen und von diesem auch wieder herstellen.
+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 genuzt werden können.
+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 den privaten Schlüssel
-selbst nicht mehr auf dem Computer mit dem Sie arbeiten nicht mehr
+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 Sie eine Sicherheitskopie des
-Schlüssel behalten werden soll, oder ob der Schlüssel ausschließlich auf
+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 es nachträglich nicht mehr von der Karte kopiert werden. Dies bringt
+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
+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
+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}
\section{Nutzung von NetKey-Cards mit X.509}
\label{X509Smartcard}
-Ebenso wie OpenPGP SmartCards können auch X.509 NetKey-Cards verwendet werden.
+Ebenso wie OpenPGP-SmartCards können auch X.509 NetKey-Cards verwendet werden.
Hierbei müssen Sie allerdings keine eigenen Einstellungen übernehmen, Sie wird
von der Zertifizierungsstelle vorkonfiguriert und kann danach in Kleopatra
genutzt werden.
\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 Umgebungen, in denen
-viele Anwender auf einem Rechner arbeiten, ist es sinnvoll, einige
+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} (nach RFC2560) unterstützt. OSCP bringt
- zeitnähere Informationen, hat aber den Nachteil, dass Netzverkehr
- bis zum OSCP-Dienst erfolgt und daran auch
+ 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 Ben Adleman, die diesen Algorithmus im Jahr 1978 entdeckt
+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 ist so klein, dass der RSA-Algorithmus davon in keiner Weise
+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 wird im Gpg4win-Paket
mitgeliefert 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_claws_mail = false
inst_compendium = true
; Die Stellen, an denen Verknüpfungen erzeugt werden sollen.
inst_start_menu = true
inst_desktop = false
inst_quick_launch_bar = false
; Im Gegensatz zu den anderen Optionen überschreibt diese Option
; die Einstellung des Benutzers im Installationsassistenten.
inst_start_menu_folder = Gpg4win
; Standard-Konfigurationsdateien.
gpg.conf = D:\config\gpg-site.conf
gpg-agent.conf = D:\config\gpg-agent-site.conf
trustlist.txt = D:\config\trustlist-site.txt
dirmngr.conf = D:\config\dirmngr-site.conf
dirmngr_ldapserver.conf = D:\config\dirmngr_ldapserver-site.conf
scdaemon.conf = D:\config\scdaemon-site.txt
gpa.conf = D:\config\gpa-site.conf
\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}