📄 digitalsignatures.tex
字号:
Beide Signaturverfahren, RSA und DSA, werden in den folgenden beiden
Abschnitten n"aher beleuchtet. Anschlie"send gehen wir einen Schritt weiter
und zeigen, wie basierend auf der elektronischen Unterschrift das digitale
Pendant zum Personalausweis entwickelt wurde. Dieses Verfahren nennt man
Public Key-Zertifizierung.
% --------------------------------------------------------------------------
\vskip + 15pt
\subsection{RSA-Signatur}
\index{Signatur!digitale}
\index{Signatur!RSA}
\index{RSA!Signatur}
\def\Mod#1{\ (\mbox{mod }#1)}
Wie im Kommentar am Ende von \hyperlink{RSAproof}{Abschnitt
\ref{RSAproof}} bemerkt, ist es m"oglich, die RSA-Operationen mit dem
privaten und "offentlichen Schl"ussel in umgekehrter Reihenfolge auszuf"uhren,
d.~h.\ $M$ hoch $d$ hoch $e \Mod{N}$ ergibt wieder $M$. Wegen dieser
simplen Tatsache ist es m"oglich, RSA als Signaturverfahren zu
verwenden.
Eine RSA-Signatur $S$ zur die Nachricht $M$ wird durch folgende Operation
mit dem privaten Schl"ussel erzeugt:
$$ S \equiv M^d \Mod{N} $$
Zur Verifikation wird die korrespondierende Public Key-Operation auf der
Signatur $S$ ausgef"uhrt und das Ergebnis mit der Nachricht $M$ verglichen:
$$
S^e \equiv (M^d)^e \equiv (M^e)^d \equiv M \Mod{N}$$
Wenn das Ergebnis
$S^e$ mit der Nachricht $M$ "ubereinstimmt, dann akzeptiert der Pr"ufer die
Sig"-natur, andernfalls ist die Nachricht entweder ver"andert worden, oder
sie wurde nicht vom Inhaber von $d$ unterschrieben.
Wie weiter oben erkl"art, werden Signaturen in der Praxis nie direkt auf der
Nachricht ausf"uhrt, sondern auf einem kryptographischen Hashwert davon. Um
verschiedene Attacken auf das Sig"-naturverfahren (und seine Kombination mit
Verschl"usselung) auszuschlie"sen, ist es n"otig, den Hashwert vor der
Exponentiation auf spezielle Weise zu formatieren, wie in PKCS\#1 (Public
Key Cryptography Standard \#1 \cite{PKCS1})\index{PKCS\#1} beschrieben.
Der Tatsache, dass
dieser Standard nach mehreren Jahren Einsatz revidiert werden musste, kann
als Beispiel daf"ur dienen, wie schwer es ist, kryptographische Details
richtig zu definieren.
% --------------------------------------------------------------------------
\vskip + 15pt
\subsection{DSA-Signatur}
\index{Signatur!digitale}
\index{Signatur!DSA}
\index{DSA-Signatur}
Im August 1991 hat das U.S. National Institute of Standards and Technology
(NIST)\index{NIST} einen digitalen Signaturalgorithmus (DSA, Digital Signature
Algorithm) vorgestellt, der sp"ater zum U.S. Federal Information Processing
Standard (FIPS 186 \cite{FIPS186}) wurde.
Der Algorithmus ist eine Variante des ElGamal-Verfahrens. Seine Sicherheit
beruht auf dem Diskreten Logarithmus
Problem\index{Logarithmusproblem!diskret}. Die Bestandteile des privaten
und "offentlichen DSA-Schl"ussels, sowie die Verfahren zur Signatur und
Verifikation sind im Folgenden zusammengefasst.
\paragraph{"Offentlicher Schl"ussel}\strut\\
\begin{tabular}{l@{ }l}
$p$ & prim \\
$q$ & 160-Bit Primfaktor von $p - 1$ \\
$g$ & $ = h^{(p-1)/q} \mbox{ mod } p$, wobei $h < p - 1$ und
$h^{(p-1)/q} > 1 \Mod{p}$ \\
$y$ & $\strut \equiv g^x \mbox{ mod } p$
\end{tabular}
\emph{Bemerkung:} Die Parameter $p,q$ und $g$ k"onnen von einer Gruppe von
Benutzern gemeinsam genutzt werden.
\paragraph{Privater Schl"ussel}\strut\\
\begin{tabular}{l@{ }l}
$x < q$ (160-Bit Zahl)
\end{tabular}
\paragraph{Signatur}\strut\\
\begin{tabular}{l@{ }l}
$m$ & zu signierende Nachricht\\
$k$ & zuf"allig\index{Zufall} gew"ahlte Primzahl, kleiner als $q$\\
$r$ & $= (g^k \; \mbox{ mod } p) \mbox{ mod } q$\\
$s$ & $= (k^{-1}(\mbox{SHA-1}(m) + xr)) \mbox{ mod } q$
\end{tabular}
\emph{Bemerkung:}
\begin{itemize}
\item $(s,r)$ ist die Signatur.
\item Die Sicherheit der Signatur h"angt nicht nur von der Mathematik ab,
sondern auch von der Verf"ugbarkeit einer guten Zufallsquelle\index{Zufall}
f"ur $k$.
\item SHA-1 \index{SHA-1} ist eine 160-Bit Hashfunktion.
\end{itemize}
\paragraph{Verifikation}\strut\\
\begin{tabular}{l@{ }l}
$w$ & $= s^{-1} \; \mbox{ mod } q$\\
$u_1$ & $= (\mbox{SHA-1}(m)w) \mbox{ mod } q$\\
$u_2$ & $= (rw) \mbox{ mod } q$\\
$v$ & $= (g^{u_1}y^{u_2}) \mbox{ mod } p) \mbox{ mod } q$\\
\end{tabular}
\emph{Bemerkung:} Wenn $v = r$, dann ist die Signatur g"ultig.
Obwohl DSA unabh"angig von einem Verschl"usselungsverfahren so spezifiziert
wurde, dass es aus L"ander exportiert werden kann, die den Export von
kryptographischer Hard- und Software einschr"anken (wie die USA zum
Zeitpunkt der Spezifikation), wurde festgestellt
\cite[S.~490]{5Schneier1996ds}, dass die Operationen des DSA dazu geeignet
sind, nach RSA bzw. ElGamal zu verschl"usseln.
% --------------------------------------------------------------------------
\vskip + 15pt
\subsection{Public Key-Zertifizierung}
\index{Zertifizierung!Public Key}
\index{PKI}
Ziel der Public Key-Zertifizierung ist es, die Bindung eines
"offentlichen Schl"ussels an einen Benutzers zu garantieren und nach au"sen
nachvollziehbar zu machen. In F"allen, in denen nicht sichergestellt werden
kann, dass ein "offentlicher Schl"ussel auch wirklich zu einer bestimmten
Person geh"ort, sind viele Protokolle nicht mehr sicher, selbst wenn die
einzelnen kryptographischen Bausteine nicht geknackt werden k"onnen.
% --------------------------------------------------------------------------
\vskip + 15pt
\subsubsection{Die Impersonalisierungsattacke}
\index{Impersonalisierungsattacke} \label{Impersonalisierungsattacke}
Angenommen Charlie hat zwei Schl"usselpaare (PK1, SK1) und (PK2, SK2).
Hierbei bezeichnet SK den geheimen Schl"ussel (secret key) und PK den
"offentlichen Schl"ussel (public key). Weiter angenommen, es gelingt ihm,
Alice PK1 als "offentlichen Schl"ussel von Bob und Bob PK2 als
"offentlichen Schl"ussel von Alice \glqq unterzujubeln\grqq (etwa indem
er ein "offentliches Schl"usselverzeichnis f"alscht).
Dann ist folgender Angriff m"oglich:
\begin{itemize}
\item Alice m"ochte eine Nachricht an Bob senden. Sie verschl"usselt diese mit
PK1, da sie denkt, dies sei Bobs "offentlicher Schl"ussel. Anschlie"send signiert sie die
Nachricht mit ihrem geheimen Schl"ussel und schickt sie ab.
\item Charlie f"angt die Nachricht ab, entfernt die Signatur und entschl"usselt
die Nachricht mit SK1. Wenn er m"ochte, kann er die Nachricht anschlie"send nach Belieben
ver"andern. Dann verschl"usselt er sie wieder, aber diesmal mit dem echten "offentlichen
Schl"ussel von Bob, den er sich aus einem "offentlichen Schl"usselverzeichnis geholt
hat, signiert sie mit SK2 und schickt die Nachricht weiter an Bob.
\item Bob "uberpr"uft die Signatur mit PK2 und wird zu dem Ergebnis kommen, dass die Signatur in
Ordnung ist. Dann entschl"usselt er die Nachricht mit seinem geheimen Schl"ussel.
\end{itemize}
Charlie ist so in der Lage, die Kommunikation zwischen Alice und Bob abzuh"oren und die ausgetauschten
Nachrichten zu ver"andern, ohne dass dies von den beteiligten Personen bemerkt wird. Der Angriff funktioniert
auch, wenn Charlie nur ein Schl"usselpaar hat.
Ein anderer Name f"ur diese Art von Angriffen ist
\index{Angriff!Man-in-the-middle-attack}
% \index{Man-in-the-middle-attack}
\glqq man-in-the-middle-attack\grqq. Hilfe gegen diese Art
von Angriffen verspricht die Public Key-Zertifizierung, die die \index{Authentizit""at} Authentizit"at "offentlicher Schl"ussel
garantieren soll. Die am weitesten verbreitete Zertifizierungsmethode ist der X.509-Standard.
% --------------------------------------------------------------------------
\vskip + 15pt
\subsubsection{X.509-Zertifikat}
\index{X.509}
Jeder Teilnehmer, der sich per X.509-Zertifikat \cite{X.509}
die Zugeh"origkeit seines "offentlichen Schl"ussels zu seiner realen Person
best"atigen lassen m"ochte, wendet sich an eine sogenannte
\index{Certification Authority (CA)} Certification Authority (CA)\footnote{%
Oft auch Trustcenter oder im deutschen Signaturgesetz
\glqq Zertifizierungsdiensteanbieter\grqq\ genannt, wenn die Zertifikate nicht
nur einer geschlossenen Benutzergruppe angeboten werden.
}.
Dieser beweist er seine Identit"at (etwa durch Vorlage seines
Personalausweises). Anschlie"send stellt die CA ihm ein elektronisches
Dokument (Zertifikat) aus, in dem im wesentlichen der Name des
Zertifikatnehmers und der Name der CA, der "offentliche Schl"ussel des
Zertifikatnehmers und der G"ultigkeitszeitraum des Zertifikats vermerkt
sind. Die CA unterzeichnet das Zertifikat anschlie"send mit ihrem geheimen
Schl"ussel.
Jeder kann nun anhand des "offentlichen Schl"ussels der CA "uberpr"ufen, ob das Zertifikat unverf"alscht ist. Die
CA garantiert also die Zugeh"origkeit von Benutzer und "offentlichem Schl"ussel.
Dieses Verfahren ist nur so lange sicher, wie die Richtigkeit des "offentlichen Schl"ussels der CA
sichergestellt ist. Aus diesem Grund l"asst jede CA ihren "offentlichen Schl"ussel bei einer anderen CA
zertifizieren, die in der Hierarchie "uber ihr steht. In der obersten
Hierarchieebene (Wurzelinstanz) gibt es in der Regel
nur eine CA, die dann nat"urlich keine M"oglichkeit mehr hat, sich ihren Schl"ussel bei einer anderen CA
zertifizieren zu lassen. Sie ist also darauf angewiesen, ihren Schl"ussel auf andere Art und Weise gesichert
zu "ubermitteln. Bei vielen Software-Produkten, die mit Zertifikaten arbeiten (zum Beispiel den Webbrowsern
von Microsoft und Netscape) sind die Zertifikate dieser Wurzel-CAs schon von Anfang an fest in das Programm
eingebettet und k"onnen auch vom Benutzer nachtr"aglich nicht mehr ge"andert werden. Aber auch durch
"offentliche Bekanntgabe in Zeitungen k"onnen ("offentliche) CA-Schl"ussel
gesichert "ubermittelt werden.
\begin{thebibliography}{99999}
\addcontentsline{toc}{subsection}{Literaturverzeichnis}
\bibitem[Schneier1996]{5Schneier1996ds} \index{Schneier 1996}
Bruce Schneier, \\
{\em Applied Cryptography, Protocols, Algorithms, and Source Code in C}, \\
Wiley, 2nd edition, 1996.
\bibitem[PKCS1]{PKCS1} RSA Laboratories, \\
\index{PKCS\#1} \index{RSA Laboratories}
{\em PKCS \#1 v2.1 Draft 3: RSA Cryptography Standard}, \\
April 19, 2002.
\bibitem[X.509]{X.509} ITU-T, \\
\index{X.509}
{\em ITU-T Recommendation X.509 (1997 E): Information Technology --
Open Systems Interconnection -- The Directory: Authentication Framework},\\
June 1997.
\bibitem[X.509v3]{X.509v3} ITU-T, \\
\index{X.509} \index{ITU-T} \index{ISO/IEC 9594-8}
{\em X.509 (1993) Amendment 1: Certificate Extensions, The Directory
Authentication Framework},\\
International Telecommunication Union, Geneva, Switzerland, July 1995\\
(equivalent to amendment 1 to ISO/IEC 9594-8).
\bibitem[FIPS180-2]{FIPS180-2} U.S. Department of Commerce/N.I.S.T. ,
\index{FIPS180-2} \\
{\em Secure Hash Standard (SHS)}, \\
August 1, 2002.\\
(FIPS 180-2 will supersede FIPS 180-1 beginning February 1, 2003.)
\bibitem[FIPS186]{FIPS186} U.S. Department of Commerce/N.I.S.T. ,
\index{FIPS186} \\
{\em Entity authentication using public key cryptography}, \\
February 18, 1997.\\
Nicht mehr g"ultig.
\bibitem[FIPS186-2]{FIPS186-2} U.S. Department of Commerce/N.I.S.T. ,
\index{FIPS186-2} \\
{\em Digital Signature Standard (DSS)}, \\
January 27, 2000. Change Note: October 5, 2001.\\
http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf
\end{thebibliography}
% Local Variables:
% TeX-master: "../script-de.tex"
% End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -