-\chapter{Data Encryption}
+\chapter{Daten-Versch\"{u}sselung}
\label{DataEncryption}
-\index[general]{Data Encryption}
-\index[general]{Encryption!Data}
-\index[general]{Data Encryption}
+\index[general]{Daten-Versch\"{u}sselung}
+\index[general]{Versch\"{u}sselung!Daten-}
-Bacula permits file data encryption and signing within the File Daemon (or
-Client) prior to sending data to the Storage Daemon. Upon restoration,
-file signatures are validated and any mismatches are reported. At no time
-does the Director or the Storage Daemon have access to unencrypted file
-contents.
+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.
-
-It is very important to specify what this implementation does NOT
-do:
+Dabei gibt es zwei sehr wichtige Punkte zu beachten:
\begin{itemize}
-\item There is one important restore problem to be aware of, namely, it's
- possible for the director to restore new keys or a Bacula configuration
- file to the client, and thus force later backups to be made with a
- compromised key and/or with no encryption at all. You can avoid this by
- not not changing the location of the keys in your Bacula File daemon
- configuration file, and not changing your File daemon keys. If you do
- change either one, you must ensure that no restore is done that restores
- the old configuration or the old keys. In general, the worst effect of
- this will be that you can no longer connect the File daemon.
-
-\item The implementation does not encrypt file metadata such as file path
- names, permissions, and ownership. Extended attributes are also currently
- not encrypted. However, Mac OS X resource forks are encrypted.
+\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}
-Encryption and signing are implemented using RSA private keys coupled with
-self-signed x509 public certificates. This is also sometimes known as PKI
-or Public Key Infrastructure.
-
-Each File Daemon should be given its own unique private/public key pair.
-In addition to this key pair, any number of "Master Keys" may be specified
--- these are key pairs that may be used to decrypt any backups should the
-File Daemon key be lost. Only the Master Key's public certificate should
-be made available to the File Daemon. Under no circumstances should the
-Master Private Key be shared or stored on the Client machine.
-
-The Master Keys should be backed up to a secure location, such as a CD
-placed in a in a fire-proof safe or bank safety deposit box. The Master
-Keys should never be kept on the same machine as the Storage Daemon or
-Director if you are worried about an unauthorized party compromising either
-machine and accessing your encrypted backups.
-
-While less critical than the Master Keys, File Daemon Keys are also a prime
-candidate for off-site backups; burn the key pair to a CD and send the CD
-home with the owner of the machine.
-
-NOTE!!! If you lose your encryption keys, backups will be unrecoverable.
-{\bf ALWAYS} store a copy of your master keys in a secure, off-site location.
-
-The basic algorithm used for each backup session (Job) is:
+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 The File daemon generates a session key.
-\item The FD encrypts that session key via PKE for all recipients (the file
-daemon, any master keys).
-\item The FD uses that session key to perform symmetric encryption on the data.
+\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{Building Bacula with Encryption Support}
-\index[general]{Building Bacula with Encryption Support}
+\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}
-The configuration option for enabling OpenSSL encryption support has not changed
-since Bacula 1.38. To build Bacula with encryption support, you will need
-the OpenSSL libraries and headers installed. When configuring Bacula, use:
+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{Encryption Technical Details}
-\index[general]{Encryption Technical Details}
+\section{Technische Einzelheiten der Verschl\"{u}sselung}
+\index[general]{Technische Einzelheiten der Verschl\"{u}sselung}
-The implementation uses 128bit AES-CBC, with RSA encrypted symmetric
-session keys. The RSA key is user supplied.
-If you are running OpenSSL 0.9.8 or later, the signed file hash uses
-SHA-256 -- otherwise, SHA-1 is used.
+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.
-End-user configuration settings for the algorithms are not currently
-exposed -- only the algorithms listed above are used. However, the
-data written to Volume supports arbitrary symmetric, asymmetric, and
-digest algorithms for future extensibility, and the back-end
-implementation currently supports:
+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.
-\begin{verbatim}
-Symmetric Encryption:
- - 128, 192, and 256-bit AES-CBC
+Director-seitig wird unterst\"{u}tzt:
+
+\begin{alltt}
+Symmetrische Verschl\"{u}sselung:
+ - 128, 192 und 256-bit AES-CBC
- Blowfish-CBC
-Asymmetric Encryption (used to encrypt symmetric session keys):
+Asymmetrische Verschl\"{u}sselung (zum verschl\"{u}sseln der symmetrischen Session-Keys):
- RSA
-Digest Algorithms:
+Digest Algorithmen:
- MD5
- SHA1
- SHA256
- SHA512
-\end{verbatim}
-
-The various algorithms are exposed via an entirely re-usable,
-OpenSSL-agnostic API (ie, it is possible to drop in a new encryption
-backend). The Volume format is DER-encoded ASN.1, modeled after the
-Cryptographic Message Syntax from RFC 3852. Unfortunately, using CMS
-directly was not possible, as at the time of coding a free software
-streaming DER decoder/encoder was not available.
-
-
-\section{Decrypting with a Master Key}
-\index[general]{Decrypting with a Master Key}
-
-It is preferable to retain a secure, non-encrypted copy of the
-client's own encryption keypair. However, should you lose the
-client's keypair, recovery with the master keypair is possible.
-
-You must:
+\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 Concatenate the master private and public key into a single
- keypair file, ie:
- cat master.key master.cert >master.keypair
+\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 2) Set the PKI Keypair statement in your bacula configuration file:
+\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 Start the restore. The master keypair will be used to decrypt
- the file data.
-
+\item Starten Sie die Wiederherstellung, und das Master-Key-Paar
+ wird zum entschl\"{u}sseln der Daten verwendet.
\end{itemize}
-\section{Generating Private/Public Encryption Keys}
-\index[general]{Generating Private/Public Encryption Keypairs}
+\section{Erstellung privater/\"{o}ffentlicher Schl\"{u}ssel}
+\index[general]{Erstellung privater/\"{o}ffentlicher Schl\"{u}ssel}
-Generate a Master Key Pair with:
+Mit den folgenden Kommandos generieren Sie ein Master-Key-Paar:
\footnotesize
\begin{verbatim}
\end{verbatim}
\normalsize
-Generate a File Daemon Key Pair for each FD:
+Die folgenden Kommandos erstellen das Schl\"{u}ssel-Paar f\"{u}r
+den Client-Dienst:
\footnotesize
\begin{verbatim}
\end{verbatim}
\normalsize
-Note, there seems to be a lot of confusion around the file extensions given
-to these keys. For example, a .pem file can contain all the following:
-private keys (RSA and DSA), public keys (RSA and DSA) and (x509) certificates.
-It is the default format for OpenSSL. It stores data Base64 encoded DER format,
-surrounded by ASCII headers, so is suitable for text mode transfers between
-systems. A .pem file may contain any number of keys either public or
-private. We use it in cases where there is both a public and a private
-key.
-
-Typically, above we have used the .cert extension to refer to X509
-certificate encoding that contains only a single public key.
-
-
-\section{Example Data Encryption Configuration}
-\index[general]{Example!File Daemon Configuration File}
-\index[general]{Example!Data Encryption Configuration File}
-\index[general]{Example Data Encryption Configuration}
+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{verbatim}
+\begin{alltt}
FileDaemon {
Name = example-fd
- FDport = 9102 # where we listen for the director
+ FDport = 9102
WorkingDirectory = /var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
- PKI Signatures = Yes # Enable Data Signing
- PKI Encryption = Yes # Enable Data Encryption
- PKI Keypair = "/etc/bacula/fd-example.pem" # Public and Private Keys
- PKI Master Key = "/etc/bacula/master.cert" # ONLY the Public Key
+ 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{verbatim}
+\end{alltt}
\normalsize