]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/de/old/concepts/dataencryption.tex
Reset everything to English
[bacula/docs] / docs / manuals / de / old / concepts / dataencryption.tex
diff --git a/docs/manuals/de/old/concepts/dataencryption.tex b/docs/manuals/de/old/concepts/dataencryption.tex
new file mode 100644 (file)
index 0000000..e5f56d7
--- /dev/null
@@ -0,0 +1,206 @@
+
+\chapter{Daten-Verschl\"{u}sselung}
+\label{DataEncryption}
+\index[general]{Daten-Versch\"{u}sselung}
+\index[general]{Versch\"{u}sselung!Daten-}
+
+Bacula erm\"{o}glicht Ihnen die Backup-Daten Clientseitig zu verschl\"{u}sseln
+und zu signieren, bevor sie zum Storage-Dienst gesendet werden. W\"{a}hrend
+der Wiederherstellung werden die Signaturen \"{u}berpr\"{u}ft und Abweichungen
+gemeldet. Director- und Storage-Dienst haben dabei zu keinem Zeitpunkt Zugriff
+auf unverschl\"{u}sselte Daten.
+
+Dabei gibt es zwei sehr wichtige Punkte zu beachten:
+\begin{itemize}
+\item zum einen gilt es bei der Wiederherstellung zu bedenken,
+  dass es f\"{u}r den Director-Dienst m\"{o}glich ist neue Schl\"{u}ssel
+  oder eine andere Konfigurations-Datei auf dem Client zu erstellen.
+  Dadurch kann die Verschl\"{u}sselung abgeschaltet oder mit ungewollten
+  Schl\"{u}sseln durchgef\"{u}hrt werden. Damit das nicht unbeabsichtigt
+  passieren kann, sollten Sie nie den Speicherortder Schl\"{u}ssel, noch
+  die Schl\"{u}ssel selbst \"{a}ndern. Falls solche \"{A}nderungen jemals
+  notwendig sind, sollten Sie sicherstellen, dass niemals aus versehen
+  die alte Konfiguration wiederhergestellt wird. Im schlimmsten Fall
+  sind Sie sp\"{a}ter nicht mehr in der Lage sich mit dem Client-Dienst
+  zu verbinden.
+\item Die Verschl\"{u}sselung wird nicht bei den Metadaten, wie
+  Verzeichnisname, Rechte und Eigent\"{u}mer der Dateien durchgef\"{u}hrt.
+  Ebensowenig werden erweiterte Datei-Attribute verschl\"{u}sselt.
+  Mac OS X \elink{resource forks}{http://en.wikipedia.org/wiki/Resource_fork}
+  werden allerdings verschl\"{u}sselt.
+\end{itemize}
+
+Die Verschl\"{u}sselung und Signierung wird mittels RSA privaten Schl\"{u}ssel
+in Verbindung mit selbstsignierten X509 \"{o}ffentlichen Zertifikate durchgef\"{u}hrt.
+Dieses Verfahren ist auch als \elink{PKI}{http://de.wikipedia.org/wiki/Public-Key-Infrastruktur}
+(Public-Key-Infrastruktur) bekannt.
+
+Jeder Client-Dienst sollte sein eigenes einzigartiges privates/\"{o}ffentliches
+Schl\"{u}ssel-paar besitzen. Zus\"{a}tzlich, zu diesem Schl\"{u}ssel-Paar,
+k\"{o}nnen beliebig viele "`Master Keys"' angegeben werden. Das sind
+Schl\"{u}ssel-Paare die zum entschl\"{u}sseln benutzt werden k\"{o}nnen,
+falls der Schl\"{u}ssel des Client-Dienstes verloren geht. Nur die \"{o}ffentlichen
+Schl\"{u}ssel der Master-Keys sollten auf dem Client zur Verf\"{u}gung stehen
+und {\bf niemals} die privaten.
+
+Die Master-Keys sollten zudem an einem sicheren Ort aufbewart werden,
+zum Beispiel in einem feuerfesten Stahlschrank oder einem Bankdepot.
+Diese Schl\"{u}ssel sollten nie auf den Systemen auf denen der Director-
+und der Storage-Dienst l\"{a}uft aufbewart werden. Ansonsten ist es eventuell
+unautorisierten Benutzer m\"{o}glich auf die verschl\"{u}sselten Daten zuzugreifen.
+
+Obwohl weniger kritisch, sind es auch die Client-Schl\"{u}ssel Wert,
+an einem sicheren Ort gespeichert zu werden.
+
+WARNUNG: Wenn Sie jemals die zur Entschl\"{u}sselung ben\"{o}tigten
+Schl\"{u}ssel verlieren, k\"{o}nnen Sie keine Daten mehr aus Ihrem Backups
+wiederherstellen! Heben Sie {\bf IMMER} eine Kopie der Schl\"{u}ssel
+an einem sicheren Ort au{\ss}erhalb Ihres Standortes auf.
+
+Der wesentliche Ablauf eines jeden Backup-Jobs mit Verschl\"{u}sselung ist:
+\begin{enumerate}
+\item Der Client-Dienst generiert einen Session-Schl\"{u}ssel.
+\item Der Client-Dienst verschl\"{u}sselt diesen Session-Schl\"{u}ssel mittels PKI
+  f\"{u}r alle \"{o}ffentlichen Schl\"{u}ssel die konfiguriert sind
+  (Client- und Master-Schl\"{u}ssel).
+\item Der Client-Dienst benutzt den Session-Schl\"{u}ssel zum symetrischen
+  Verschl\"{u}sseln der Daten.
+\end{enumerate}
+
+
+\section{Bacula mit Unterst\"{u}tzung f\"{u}r Verschl\"{u}sselung kompilieren}
+\index[general]{Bacula mit Unterst\"{u}tzung f\"{u}r Verschl\"{u}sselung kompilieren}
+
+Um die Unterst\"{u}tzung der Daten-Verschl\"{u}sselung aktivieren zu k\"{o}nnen,
+m\"{u}ssen die OpenSSL Header und Bibliotheken installiert sein. Bei der Konfiguration
+des Bacula-Quelltextes muss folgende Option angegeben werden:
+
+\begin{verbatim}
+   ./configure --with-openssl ...
+\end{verbatim}
+
+\section{Technische Einzelheiten der Verschl\"{u}sselung}
+\index[general]{Technische Einzelheiten der Verschl\"{u}sselung}
+
+Diese Verschl"`{u}sselung benutzt 128-Bit AES-CBC mit RSA verschl\"{u}sselten
+symetrischen Session-Schl\"{u}sseln. Diese RSA-Schl\"{u}sseln werden vom
+Benutzer erstellt. Wenn Sie OpenSSL in Version 0.9.8 (oder gr\"{o}{\ss}er)
+benutzen, wird f\"{u}r die Signierung der Datei-Hashes SHA-256 verwendet,
+ansonsten SHA-1.
+
+Eine Konfigurations-M\"{o}glichkeit des End-Benutzers f\"{u}r den Algorithmus
+ist momentan nicht vorgesehen, nur die oben genannten werden verwendet.
+Allerdings unterst\"{u}tzen die auf die Volumes geschriebenen Daten auch
+frei w\"{a}hlbare symetrische, asymetrische und Digest Algorithmen.
+Es sind also noch viele M\"{o}glichkeiten zur Erweiterung
+der Verschl\"{u}sselung vorhanden.
+
+Director-seitig wird unterst\"{u}tzt:
+
+\begin{alltt}
+Symmetrische Verschl\"{u}sselung:
+    - 128, 192 und 256-bit AES-CBC
+    - Blowfish-CBC
+
+Asymmetrische Verschl\"{u}sselung (zum verschl\"{u}sseln der symmetrischen Session-Keys):
+    - RSA
+
+Digest Algorithmen:
+    - MD5
+    - SHA1
+    - SHA256
+    - SHA512
+\end{alltt}
+
+Die verschiedenen Algorithmen werden durch eine wiederverwendbare
+OpenSSL-Schnittstelle bereitgestellt. Dadurch ist es jederzeit
+M\"{o}glich neue Verschl\"{u}sselungs-Methoden zu implementieren.
+Das Volume-Format ist DER-verschl\"{u}sseltes ASN.1, entwickelt nach
+der "'Cryptographic Message Syntax"` des RFC 3852. Leider war die
+direkte Verwendung von CMS nicht m\"{o}glich, da zu dem Zeitpunkt der
+Entwicklung kein freier DER-Decoder/Encoder f\"{u}r Datenstr\"{o}me zur
+Verf\"{u}gung stand.
+
+\section{Entschl\"{u}sselung mit einem Master Key}
+\index[general]{Entschl\"{u}sselung mit einem Master Key}
+
+Bevorzugter Weise sollten Sie immer eine unverschl\"{u }sselte Kopie
+der Client-Schl\"{u}ssel an einem sicheren Ort aufbewahren.
+Falls sie trotzdem verloren gehen, k\"{o}nnen Sie die gesicherten Daten
+noch mittels der Master-Keys entsch\"{u}sseln.
+
+Dazu m\"{u}ssen folgende Voraussetzungen erf\"{u}llt sein:
+\begin{itemize}
+\item  verketten Sie den privaten und \"{o}ffentlichen Master-Schl\"{u}ssel
+  in einer einzelnen Schl\"{u}ssel-Paar-Datei, zum Beispiel mit:
+   [user@host]\$ cat master.key master.cert \gt master.keypair
+
+\item Setzen Sie den Eintrag "'PKI Keypair"` in der Client-Konfiguration auf
+   die eben erzeugte Datei:
+
+\begin{verbatim}
+   PKI Keypair = master.keypair
+\end{verbatim}
+
+\item Starten Sie die Wiederherstellung, und das Master-Key-Paar
+   wird zum entschl\"{u}sseln der Daten verwendet.
+\end{itemize}
+
+
+\section{Erstellung privater/\"{o}ffentlicher Schl\"{u}ssel}
+\index[general]{Erstellung privater/\"{o}ffentlicher Schl\"{u}ssel}
+
+Mit den folgenden Kommandos generieren Sie ein Master-Key-Paar:
+
+\footnotesize
+\begin{verbatim}
+  openssl genrsa -out master.key 2048
+  openssl req -new -key master.key -x509 -out master.cert
+\end{verbatim}
+\normalsize
+
+Die folgenden Kommandos erstellen das Schl\"{u}ssel-Paar f\"{u}r
+den Client-Dienst:
+
+\footnotesize
+\begin{verbatim}
+  openssl genrsa -out fd-example.key 2048
+  openssl req -new -key fd-example.key -x509 -out fd-example.cert
+  cat fd-example.key fd-example.cert >fd-example.pem
+\end{verbatim}
+\normalsize
+
+Bez\"{u}glich der verwendeten Datei-Erweiterung f\"{u}r die Schl\"{u}ssel
+gibt es eine Menge Verwirrung. Zum Beispiel kann eine .pem-Datei folgendes
+enthalten: private Schl\"{u}ssel (RSA und DSA), \"{o}ffentliche Schl\"{u}ssel
+(RSA und DSA) und Zertifikate (x509). Das ist das von OpenSSLstandardm\"{a}{\ss}ig
+verwendete Format. Es speichert die Daten im Base64 codiertem DER-Format,
+das von ASCII-Header umgeben wird. So kann es als Text-Datei zwischen verschiedenen
+Computer \"{u}bertragen werden. Eine .pem-Datei kann eine beliebige Anzahl von
+entweder privaten und/oder \"{o}ffentlichen Schl\"{u}sseln enthalten.
+In der Bacula-Konfiguration wird diese Datei-Erweiterung nur f\"{u}r
+Dateien verwendet die jeweils einen privaten und einen \"{o}ffentlichen
+Schl\"{u}ssel enthalten. Zudem wird, wie oben zu sehen, f\"{u}r
+Dateien die nur einen einzigen \"{o}ffentlichen Schl\"{u}ssel enthalten
+die Erweiterung .cert verwendet (als Verweis auf die x509 Zertifikats-Kodierung).
+
+\section{Beispiel-Konfiguration mit Verschl\"{u}sselung}
+\index[general]{Beispiel!Client-Konfiguration mit Verschl\"{u}sselung}
+
+{\bf bacula-fd.conf}
+\footnotesize
+\begin{alltt}
+FileDaemon {
+   Name = example-fd
+   FDport = 9102
+   WorkingDirectory = /var/bacula/working
+   Pid Directory = /var/run
+   Maximum Concurrent Jobs = 20
+   PKI Signatures = Yes            # aktiviert die Daten-Signierung
+   PKI Encryption = Yes            # aktiviert die Daten-Verschl\"{u}sselung
+   PKI Keypair = "/etc/bacula/fd-example.pem"    # private und \"{o}ffentliche Schl\"{u}ssel
+   PKI Master Key = "/etc/bacula/master.cert"    # NUR der \"{o}ffentliche Schl\"{u}ssel
+}
+\end{alltt}
+\normalsize