<table style="border: 20px solid #eee;" cellspacing="0" cellpadding="0">
<tr>
  <td style="padding: 10px 10px; background-color: #ffffff;">
    <a href="https://forum.hacksaar.de" style="text-decoration: none; font-weight: bold; color: #006699;; color: #0088cc">
      <img src="https://www.hacksaar.de/logo.png" style="max-height: 35px; min-height: 35px; height: 35px;"></a>
  </td>
</tr>
<tr>
  <td style="background-color: #fff; padding: 10px 10px; font-family: Arial, Helvetica, sans-serif; font-size: 14px;">
    Eine kurze Zusammenfassung von <a href="https://forum.hacksaar.de" style="text-decoration: none; font-weight: bold; color: #006699;; color: #0088cc">Hacksaar-Forum</a> seit deinem letzten Besuch am 27. Februar

      <hr style="background-color: #ddd; height: 1px; border: 1px;">
      <h3 style="margin: 15px 0 20px 0;">Beliebte Beiträge</h3>


        <div>
          <a href="https://forum.hacksaar.de/t/unser-server-kann-jetzt-dkim/51" style="text-decoration: none; font-weight: bold; color: #006699; line-height:1.5em;; text-decoration: none; font-weight: bold; color: #006699;; color: #0088cc">Unser Server kann jetzt DKIM</a>
          <br>
          <a href="https://forum.hacksaar.de/c/infrastruktur" style="text-decoration: none; font-weight: bold; color: #006699; line-height:1.5em;; text-decoration: none; font-weight: bold; color: #006699;; font-size: 0.857em; white-space: nowrap; display: inline-block; position: relative; line-height: 1; margin-right: 10px;"><span style="background-color: #808281;display: inline-block; width: 10px; height: 10px;"> </span><span style="color: #FFFFFF;color: #222222 !important; vertical-align: text-top; line-height: 1; margin-left: 4px; padding-left: 2px; display: inline;max-width: 150px; overflow: hidden; text-overflow: ellipsis;" data-drop-close="true" title="Hier geht es um die Infrastruktur des Vereins: Dieses Forum, unser GitlLab, all unsere Dienste und Server uns was da sonst noch so anfällt.">Infrastruktur</span></a>
        </div>

          <div style="margin-left: 15px; margin-top: -5px; max-width: 694px;">
            <p>Ich habe gerade DKIM auf unserem Server eingerichtet. Ich dachte mir, ich gebe dazu mal ein bisschen Hintergrundinformationen.</p>

<h2>Was ist DKIM?</h2>

<p><a href="https://de.wikipedia.org/wiki/DomainKeys" style="text-decoration: none; font-weight: bold; color: #006699;">DKIM</a> ist ein Ansatz, eine Antwort auf die folgende Frage zu bekommen: Ich habe hier eine Mail, die behauptet, von <code style="background-color: #f1f1ff; padding: 2px 5px;">sonstwie AT hacksaar DOT de</code> zu sein. Ist sie das wirklich?</p>

<p>Was DKIM dafür konkret tut, ist folgendes: Der Mailserver signiert die Mails. Wenn ich also eine Mail verschicke, kommt da ein die Header eine Signatur, die bestätigt "diese Mail wurde wirklich von ralfj.de verarbeitet". Damit Dritte diese Signatur prüfen können, wird der dazugehörige öffentliche Schlüssel im DNS veröffentlicht.</p>

<p>So ein DKIM-Header in der Mail sieht z.B. so aus:<br></p>

<p></p>
<pre style="word-wrap: break-word; max-width: 694px;"><code style="display: block; background-color: #f1f1ff; padding: 5px;; background-color: #f1f1ff; padding: 2px 5px;">DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hacksaar.de; s=mail;
        t=1457202526; bh=0nLVVXLwOLbC9inyoGwFCTTHs5+Kc/F/uvToZ4sZEsQ=;
        h=To:Date:From:From;
        b=YDwRW3U/sPlB2uHKtoHw0mMkvYe8wvKQ9Yv9OUVTuvV5V/i8I0Jw/H01chMsNMr+A
         hEs+qTbXhLa9KUMWvsIuezbWHZ2GG9D+/btUUqivzvCkouBLzWDpYAkFbkxaVcjPZU
         TIPgR9cCEc7TFNXN7ictGLS005Md4NvVTQTxRPh9LJ9+mxtieRso6BXdMCsRFhjC2N
         7MH0/sPUFegRoypwnJouZ9/sBPbBE+AywxkUz/LNOmDEHGlHDWNIUuo8SQooGIQQXA
         SWDOZ52Web50azf/obw6asHv+m7l2oi8WQPIJQpJPr70rlm6zAncorhg9Rwi9NN7iH
         kKV/P7rZPH+Mw==</code></pre>

<p>und der empfangende Mailserver schaut dann nach dem key <code style="background-color: #f1f1ff; padding: 2px 5px;">mail</code> (das steht unter <code style="background-color: #f1f1ff; padding: 2px 5px;">s=</code>) der Domain <code style="background-color: #f1f1ff; padding: 2px 5px;">hacksaar.de</code> (<code style="background-color: #f1f1ff; padding: 2px 5px;">d=</code>), den man auch von Hand wie folgt abholen kann:<br></p>

<p></p>
<pre style="word-wrap: break-word; max-width: 694px;"><code style="display: block; background-color: #f1f1ff; padding: 5px;; background-color: #f1f1ff; padding: 2px 5px;">$ dig TXT mail._domainkey.hacksaar.de +short
"v=DKIM1\; k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5wF6La0c0Qdtx+XaKx7NSaU2gkg6aXJGtcv9iGCsYPam0eTxAuv9rD+caSyCJpshy+WA2rwQtwg8hFCfnwGPGBFkHp8qE/u4g3FhBnWZHMj4MtTgizw4N53DHZNO2fGreZsBSeeJWTD5GKbYTI02UN8wz/JV8ifVdm/Hoe7lNpCY8csbwQqJwGUqBFfLfFuNs" "PsPrEnuQRKneZFiK4SnVujWr37vWlijYwHEbOumgXenuMOq7bCbY4offHfjp2HE3stZ9ZjW0hkL2TStLxBmdi8tbNEatTSaToWDbgl0jvl/45xGIWvZ8S6k9Cz+Gh8y5ojDBCgZACupHfynj17TlwIDAQAB"</code></pre>

<p>Dann wird geschaut, ob (a) die Signatur gültig ist, also zum tatsächlichen Inhalt sowie den <code style="background-color: #f1f1ff; padding: 2px 5px;">To</code>, <code style="background-color: #f1f1ff; padding: 2px 5px;">Date</code> und <code style="background-color: #f1f1ff; padding: 2px 5px;">From</code>-Headern passt (<code style="background-color: #f1f1ff; padding: 2px 5px;">h=</code> im Header, die Mail hatte keinen Betreff), und (b) die Signatur zum Schlüssel passt. So ist dann klar, dass wirklich <code style="background-color: #f1f1ff; padding: 2px 5px;">hacksaar.de</code> diese Mail versenden wollte.</p>

<p>Das schöne ist: Selbst, wenn die Mail jetzt über drei Relays weitergeleitet wurde (weil sie z.B. an <code style="background-color: #f1f1ff; padding: 2px 5px;">xx@gmail.com</code> ging, was aber nur eine Weiterleitung ist auf <code style="background-color: #f1f1ff; padding: 2px 5px;">yy@freenet.de</code>, oder was auch immer), dann kann man trotzdem am Ende der Kette feststellen, ob die Mail so von <code style="background-color: #f1f1ff; padding: 2px 5px;">hacksaar.de</code> versendet wurde -- ganz ohne dass man jemals direkt mit dem hacksaar-Mail-Server kommuniziert hätte. Das ist der entscheidende Vorteil gegenüber <a href="https://de.wikipedia.org/wiki/Sender_Policy_Framework" style="text-decoration: none; font-weight: bold; color: #006699;">SPF</a>.</p>

<h2>Was ändert das jetzt konkret?</h2>

<p>DKIM geht in den Spam-Score auf vielen Systemen ein. Wenn man also seine Mails mit einer korrekten DKIM-Signatur versieht, wird es weniger wahrscheinlich, dass sie als Spam angesehen werden.</p>

<p>Umgekehrt jedoch ist es kaum möglich, aus einer fehlenden oder falschen DKIM-Signatur irgend etwas zu schließen. Einerseits weiß man nicht, ob ein Header hätte da sein sollen. Der Standard sagt sogar explizit, dass ein ungültiger DKIM-Header genau so zu behandeln ist, als ob kein Header da wäre.</p>

<h2>Wie sieht die technische Umsetzung aus?</h2>

<p>Wir nutzen postfix auf unserem Server. Dazu kam jetzt OpenDKIM, und eine kleine Änderung an der postfix-Config, die OpenDKIM als "milter" einrichtet. Das heißt, dass alle eingehenden und ausgehenden Mails einmal durch OpenDKIM durchgeschickt werden, und der fügt dann da seine Header hinzu. Was der Rest des Systems damit macht, ist OpenDKIM egal -- bisher macht der Rest damit gar nichts^^ aber die <code style="background-color: #f1f1ff; padding: 2px 5px;">DKIM-Signature</code> Header gehen halt mit raus und verbessern unsere Reputation bei anderen Mail-Servern.</p>

<p>Falls jemand Interesse an der postfix/OpenDKIM-Config hat, kann ich die auch gerne mal posten.</p>

<h2>Sonst noch was?</h2>

<p>Dinge, die ich heute gelernt habe: Bind hat eine maximale Größe für TXT-Records; wenn man die überschreitet, muss man den Record in mehrere Teile zerlegen. Daher kommt auch diese Unterbrechung in dem DNS-Record, den ich oben zitiert habe:<br></p>

<p></p>
<pre style="word-wrap: break-word; max-width: 694px;"><code style="display: block; background-color: #f1f1ff; padding: 5px;; background-color: #f1f1ff; padding: 2px 5px;">"v=DKIM1\; k=rsa\; p=MIIBIjANBg ... fLfFuNs" "PsPrEnuQR ... DAQAB"</code></pre>

<p>Diese Aufteilen in Stücke macht mein Zonengenerator <a href="https://github.com/RalfJung/zonemaker/commit/53f825fef45e8d09bd04ab44fd4a5e9e6e0c7626" style="text-decoration: none; font-weight: bold; color: #006699;">jetzt automatisch</a>. Auf ralfj.de ist mir das nicht aufgefallen, weil die DKIM-Schlüssel da nur 1024 bit haben; für hacksaar.de habe ich 2048 bit verwendet.<br>Ob das jetzt eine Einschränkung von Bind oder vom DNS-Protokoll ist, weiß ich nicht.</p>
          </div>

        



  </td>
</tr>
</table>

<div style="color:#666; font-size:95%; text-align:center; padding-top:15px;">
  Diese Zusammenfassung wurde von <a href="https://forum.hacksaar.de" style="text-decoration: none; font-weight: bold; color: #006699;; color: #0088cc">Hacksaar-Forum</a> gesendet, da wir dich eine Weile nicht mehr gesehen haben. Zum Abmelden <a style="text-decoration: none; font-weight: bold; color: #006699;; color: #0088cc" href="https://forum.hacksaar.de/email/unsubscribe/dbf1e98896c61165ffdfb87e6d94ee518faacd63b916b7146a80359e88de2505">klicke hier</a>.
</div>