dane.txt
changeset 7 2834a7825e8e
parent 5 17f7caecfb5e
equal deleted inserted replaced
6:98879feeb993 7:2834a7825e8e
       
     1 Sichere E-Mail
       
     2 ==============
       
     3 :Author: Heiko Schlittermann
       
     4 :Email:  hs@schlittermann.de
       
     5 :toc:
       
     6 
       
     7 Übersicht
       
     8 ---------
       
     9 
       
    10 Verschiedene Mythen existieren über die Sicherheit/Vertraulichkeit von
       
    11 E-Mail.  In diesem kurzen Paper möchte ich aufklären über das derzeit
       
    12 technisch Umsetzbare.
       
    13 
       
    14 == E-Mail-Übertragung
       
    15 
       
    16 Die E-Mail-Übertragung beginnt beim MUA des Absenders. Dieser sendet die
       
    17 Mail per SMTP zum ersten MTA (Submission-Server). Häufig ist dafür eine
       
    18 Anmeldung am Server notwendig. Dieser Server befindet sich entweder beim
       
    19 Internet-Provider oder, meistens bei größeren Firmen, in einer internen
       
    20 Infrastruktur.  Die Adresse bzw. der Name des Submission-Servers sind im
       
    21 MUA per Konfiguration fest hinterlegt.
       
    22 
       
    23 Vom Submission-Server geht die Mail dann über mehrere weitere MTAs bis
       
    24 zum letzten MTA, der dann die Nachricht über den MDA in die Mailbox des Nutzers legt.
       
    25 Die Adresse des jeweils nächsten MTA wird mit Hilfe des DNS ermittelt.
       
    26 
       
    27 Diese Mailbox liegt meistens auf einem Server im Internet. Auf diesen
       
    28 greift dann der MUA des Empfängers per IMAP oder POP3 oder über einen
       
    29 Webmail-Client zu.
       
    30 
       
    31 image::dia/transport.png[Transport der Mail]
       
    32 
       
    33 == Angriffspunkte
       
    34 
       
    35 Alle Übertragungskanäle sollten als unsicher betrachtet werden. Das gilt
       
    36 für die Anmeldung am Submission-Server, für den Transport der Mails, für
       
    37 die DNS-Information und auch für das Abrufen der Nachrichten.
       
    38 
       
    39 Für Angriffe ist nicht zwingend ein krimineller Hintergrund notwendig,
       
    40 auch Überwachungsmaßnahmen werden schnell zu Angriffen.
       
    41 
       
    42 === Übertragung der Mails
       
    43 
       
    44 Um an den Inhalt der übertragenen Nachrichten zu kommen, müsste der
       
    45 Angreifer auf die Verbindungen zwischen den einzelnen Servern zugreifen
       
    46 können.  
       
    47 
       
    48 Werden verschlüsselte (TLS/SSL) Verbindungen verwendet, gelingt das
       
    49 Mitschneiden auf den Verbindungen nicht mehr. Aber es ist möglich, die
       
    50 Verbindung zu entführen und sich für das Zielsystem auszugeben.
       
    51 
       
    52 === Namensauflösung
       
    53 
       
    54 Die Entführung der Verbindung ist möglich durch einen Eingriff ins IP-Routing,
       
    55 oder durch die Manipulation der DNS-Daten, aus denen der Client die
       
    56 IP-Adresse des Zielsystems erfährt.  
       
    57 
       
    58 
       
    59 == Stand der Technik
       
    60 
       
    61 Aktuell werden etwa 80% der Mails auf dem Transportweg verschlüsselt
       
    62 übertragen.
       
    63 
       
    64 === Übertragung der Mails
       
    65 
       
    66 TLS ist schon sehr lange Stand der Technik für verschlüsselte
       
    67 Datenübertragung. Die Authentizität der Kommunikationspartner wird über
       
    68 X509-Zertifikate (SSL-Zertifikate) festgestellt.  Üblicherweise weist
       
    69 sich der Server in einer Verbindung mit seinem Zertifikat aus. Der
       
    70 Client prüft dises Zertifikat, um sicher zu sein, dass er mit dem
       
    71 richtigen Server verbunden ist.
       
    72 
       
    73 Bei HTTPS geht der Browser davon aus, dass der Name des Zertifikats mit
       
    74 dem Hostnamen aus der URL übereinstimmt. Um die Echtheit des Zertifikats
       
    75 zu bestimmen, prüft der Browser, ob das Zertifikat von einer ihm
       
    76 bekannten und vertrauenswürdigen CA unterschrieben ist.
       
    77 
       
    78 Auch die Mailprotokolle SMTP, IMAP, POP3 können eine Verschlüsselung des
       
    79 Übertragungsweges aushandeln. Jeoch werden hier sehr oft
       
    80 Server-Zertifikate verwendet, die sich nicht verifizieren lassen. Diese
       
    81 Zertifikate sind entweder selbst signiert oder von lokalen CAs
       
    82 bestätigt. 
       
    83 
       
    84 Dort wo ein Client immer mit dem selben Server kommuniziert (z.B. MUA
       
    85 mit Smarthost) ist es möglich, die Information über das
       
    86 Server-Zertifikat auf dem Client als vertrauenswürdig zu hinterlegen.
       
    87 Dieses Verfahren skaliert aber nicht, wenn die Menge der Zielhosts groß
       
    88 ist.
       
    89 
       
    90 === Namensauflösung
       
    91 
       
    92 DNS verwendet für die meisten Anfragen das UDP-Prokoll. Diese Protokoll
       
    93 ist sehr anfällig für Angriffe. 
       
    94 
       
    95 Bei DNS-Informationen geht es *immer* um öffentlich verfügbare
       
    96 Information, hier geht es also nicht die Vertraulichkeit, sondern die
       
    97 Authentizität der Daten. 
       
    98 
       
    99 Wenn zwei DNS-Server miteinander kommunizieren (Abgleich der
       
   100 Domaindaten), können die Daten mit TSIG geschützt werden. Dieses
       
   101 Verfahren beruhg auf einem von beiden Seiten gemeinsam genutzten
       
   102 Schlüssel. Es skaliert nicht für eine große Zahl von DNS-Clients die
       
   103 eine große Zahl von DNS-Servern fragen.
       
   104 
       
   105 Seit gut 15 Jahren gibt es DNSSec, eine Erweiterung des DNS-Protokolls
       
   106 und der DNS-Datensätze um die Möglichkeit, die Antworten zu signieren.
       
   107 Damit kann der Client die erhaltene Antwort validieren. 
       
   108 
       
   109 == Das technisch Machbare - Absicherung
       
   110 
       
   111 Der oben beschriebene Stand der Technik ist gut, aber nicht ausreichend.
       
   112 Verbindungen können entführt werden, DNS-Antworten sind nur selten mit
       
   113 DNSSec geschützt.
       
   114 
       
   115 === Übertragung der Mails
       
   116 
       
   117 Jeder sendender MTA bzw. Client muss das Server-Zertifikat seines
       
   118 Kommunikationspartners prüfen!  Jedoch ist die Konvention von HTTPS
       
   119 (Zertifikatsname == Hostname der URL) nicht auf die Mail-Kommunikation
       
   120 übertragbar.
       
   121 
       
   122 Der Client benötigt also einen zweiten Kanal, über den er die
       
   123 Information erhält, die er zum Validieren des Server-Zertifikats
       
   124 benötigt.  DNS bietet sich dafür an. Aber es muss gesichert sein, also DNSSec.
       
   125 
       
   126 === Namensauflösung
       
   127 
       
   128 Seit ca. 2010 können die größen DNS-Domains über DNSSec gesichert
       
   129 werden. Das bedeutet, dass die Nameserver die Antworten signieren. Das
       
   130 gibt dem DNS-Client die Möglichkeit, die Antwort auf seine Frage zu
       
   131 validieren. Wenn die DNS-Antworten validierbar sind, dann ist damit
       
   132 auch die Informationen über die Adresse des nächsten Mailhosts
       
   133 validierbar und auch die Information zum Überprüfen des
       
   134 Server-Zertifikats des nächsten Mailhosts.
       
   135 
       
   136 == Umsetzung
       
   137 
       
   138 Die beschriebenen Maßnahmen zum Schutz der Mailübertragung müssen
       
   139 kombiniert werden - TLS, Zertifikate und Überprüfung von
       
   140 DNS-Informationen.
       
   141 
       
   142 Mit DANE ist ein Standard entwickelt worden, der beschreibt, wie
       
   143 Zertifikatsinformation unabhängig von einer vertrauenswürdigen Instanz
       
   144 (CA) geprüft werden kann: die notwendige Information wird im DNS
       
   145 (gesichert über DNSSec) abgelegt.
       
   146 
       
   147 Die Initiative liegt in erster Linie beim Empfänger der Mail, *er* muss 
       
   148 Zertifikate bereitstellen, DNSSec für seind Domain implementieren. Erst
       
   149 dann *kann* der Client die beschriebenen Mechanismen nutzen. 
       
   150 
       
   151 Aktuelle MTAs unter Linux sind in der Lage, diesen Standard zu
       
   152 unterstützen, sowohl auf der Server- als auch auf der Clientseite.
       
   153 
       
   154 === Übertragung
       
   155 
       
   156 ==== Client
       
   157 
       
   158 Mailclients müssen versuchen, verschlüsselte Verbindungen aufzubauen.
       
   159 Mailclients *müssen* Zertifate der Server prüfen. MTA können das am 
       
   160 einfachsten mit DANE.
       
   161 
       
   162 ==== Server
       
   163 
       
   164 Für alle Serverdienste, die mit Mail im Zusammenhang stehen, müssen
       
   165 Zertifikate erzeugt werden, dabei spielt es keine Rolle, ob diese
       
   166 Zertifikate von einer zentralen CA unterzeichnet werden, oder ob sie
       
   167 selbstsigniert sind. Die Serverdienste müssen den Clients die
       
   168 Möglichkeit der Verschlüsselung anzeigen.
       
   169 
       
   170 === Namensauflösung
       
   171 
       
   172 ==== Client
       
   173 
       
   174 Auf der Clientseite müssen validierende Resolver verwendet werden, als
       
   175 Software, die in der Lage ist, neben der eigentlichen Namensauflösung
       
   176 auch die Gültigkeit der Antwort zu überprüfen. 
       
   177 
       
   178 ==== Server
       
   179 
       
   180 Der Nameserver für die Zieldomain muss DNSSec unterstützen, die DNS-Zone
       
   181 muss signiert sein und die Schlüssel müssen an die Elternzone
       
   182 weitergegeben werden. Normalerweise ist dafür der Registrar der Domain
       
   183 verantwortlich. Nur eine kleine Zahl der Domain-Registrare verfügt
       
   184 bisher über die erforderlichen Schnittstellen.
       
   185 
       
   186 Im DNS muss für die Zielserver ein Datensatz eingetragen sein,
       
   187 dieser enthält die Information über das Server-Zertifikat.
       
   188 
       
   189 == Schlussfolgerung
       
   190 
       
   191 Eine sichere Mailübertragung wird es nur geben, wenn beide Maßnamen (TLS
       
   192 *und* DNSSec) gemeinsam verwendet werden. Zum aktuellen Zeitpunkt ist
       
   193 bei den jeweils Verantwortlichen leider relativ wenig Problembewußtseind
       
   194 und Fachwissen über diese Bereiche vorhanden.
       
   195 
       
   196 Wirklich sichere Mailübertragung ist nur mit End-To-End-Verschlüsselung
       
   197 (S/MIME, GPG, PGP) möglich. TLS und DANE können nur die Sicherheit
       
   198 zwischen den einzelnen Mailhosts gewährleisten.
       
   199 
       
   200 
       
   201 
       
   202 [glossary]
       
   203 == Glossary
       
   204 
       
   205 [glossary]
       
   206 
       
   207 CA::
       
   208    Certificate Authority - eine vertrauenswürdige Organisation, die
       
   209    sicherstellt, dass nur authorisierte Zertifikate ausgesetllt werden.
       
   210    Dazu überprüft sie die Identität des Antragsstellers.
       
   211 
       
   212 DNS::
       
   213    Domain Name System - eine verteilte Datenbank, die Informationen über
       
   214    Domains, IP-Adressen, verantwortliche Mailserver bereitstellt.
       
   215 
       
   216 IMAP::
       
   217     Internet Message Access Protocol - mit diesem Protokoll können MUAs auf
       
   218     Mails zugreifen. Die Mails bleiben dabei auf dem Server. (RFC 3501
       
   219     u.a.)
       
   220 
       
   221 MDA::
       
   222     Mail Delivery Agent heisst die Software, die die Mail vom letzten MTA übernimmt und
       
   223     in die Mailbox des Nutzers legt. (Protokolle: LMTP, Pipeline)
       
   224 
       
   225 MTA::
       
   226     Der Mail Transfer Agent ist das, was wir normalerweise „Mailserver“
       
   227     nennen, also Exim, Postfix, Qmail, Sendmail, …. (Protokolle: SMTP)
       
   228 
       
   229 MUA::
       
   230     Der Mail User Agent ist das, was wir normalerweise „Mailprogramm“ nennen, das
       
   231     ist also für viele das Outlook, der Thunderbird, Mutt, Evolution,…
       
   232     Es ist im strengen Sinne nicht der Webbrowser, auch wenn wir Webmail
       
   233     damit machen können. (Protokolle: SMTP, IMAP, POP3)
       
   234 
       
   235 POP3::
       
   236     Post Office Protocol - mit diesem Protokoll können MUAs auf Mails
       
   237     zugreifen. Die Mails werden lokal auf dem Client gespeichert. (RFC
       
   238     1939)
       
   239 
       
   240 SMTP::
       
   241     Simple Mail Transfer Protocol - mit diesem Protokoll werden Mails
       
   242     übertragen, vom MUA zum Submission Server und von MTA zu MTA. (RFC
       
   243     5321)
       
   244 
       
   245 TLS/SSL::
       
   246     Transport Layer Security, Secure Socket Layer - ein Protokoll, mit
       
   247     dessen Hilfe es möglich ist, den Übetragungskanal zwischen zwei
       
   248     Endpunkten gegen Dritte zu schützen. Neuere Versionen heissen TLS,
       
   249     ältere Versionen heißen SSL. (SSLv3.1 entpricht TLSv1.0)
       
   250 
       
   251 TSIG::
       
   252     Transaction Signature - bei der Übertragung von DNS-Information ein
       
   253     Verfahren zur Authentifizierung und Integritätsprüfung
       
   254 
       
   255 Zertifikat | X509-Zertifikat::
       
   256     Ein elektronisches Dokument, das den Besitz z.B. eines bestimmten
       
   257     Domainnamens bestätigt. Dieses Dokument ist in der Regel von einer
       
   258     CA unterzeichnet, die damit bestätigt, die im Zertifikat
       
   259     festgehaltenen Eigenschaften überprüft zu haben.
       
   260 
       
   261 
       
   262 == Disclaimer
       
   263 
       
   264 Einige Dinge wurden nur vereinfacht dargestellt. Ich habe versucht,
       
   265 nur unwesentliche Details zu übergehen, bin mir jedoch im Klaran
       
   266 darüber, dass jeder eine andere Sichtweise auf _unwichtig_ hat.
       
   267