Nachdem kurz nach der WhatsApp Übernahme die Suche nach und Diskussion über einen sicheren Messenger begann, möchte ich im Folgenden kurz auf die häufigsten Fehler aufmerksam machen, die App-Entwickler bei der Implementierung von Verschlüsselung zur Datenübertragung machen.
Schwachstelle 1: Die App nutzt einen gleichbleibenden, symmetrischen Schlüssel
Leider immer noch sehr häufig in Verwendung - gleichbleibendene, symmetrische Schlüssel.
Das Risiko liegt klar auf der Hand. Der Schlüssel muss im Client zu irgendeiner Zeit im Klartext vorliegen und kann ausgelesen werden. Ab diesem Punkt ist jede Verschlüsselung hinfällig - die Kommunikation jedes Clients kann entschlüsselt werden.
Der heutige Beitrag ist eine Fortsetzung des Beitrags "Grundlagen der Verschlüsselung", es geht etwas mehr in die technischen Details: Der Verschlüsselungsmodus. Der letzte Beitrag dieses Blogs ist etwas länger her, leider habe ich momentan relativ wenig Zeit. Aktuell schreibe ich parallel einen Beitrag über die Absicherung des ngnix Webservers, beim Verfassen des Beitrags habe ich jedoch bemerkt, dass vielen die Relevanz der Auswahl des Verschlüsselungsmodus nicht bewusst ist.
Wird beispielsweise der im folgenden erklärte Electronic Codeblock Mode gemeinsam mit der Verschlüsselung AES in bestimmten Anwendungssituationen genutzt, kann die Verschlüsselung trotz sehr gutem Passwort vollkommen unsicher und leicht zu "knacken" sein.
Die symmetrische Verschlüsselung kann in zwei Grundtypen eingeteilt werden:
Blockchiffrierungen, hierbei wird der Klar- und der Chiffretext (das verschlüsselte Gegenstück zum Klartext) blockweise verarbeitet. Ein Block hat eine typische Größe von 64, 128, 192 oder auch 256 bit.
Stromchiffrierungen, hierbei wird der Text bitweise (manchmal auch byteweise) verarbeitet.
Der kryptographische Modus ist eine Art Erweiterung der Grundchiffrierung (AES, Serpent, Blowfish, ...) mit einer Rückkopplung und einigen einfachen mathematischen Operationen.
In vielen Anwendungen kann der Modus konfiguriert werden, im Artikel "TLS (SSL) Verschlüsselung und Schwachstellen im Detail" habe ich beispielsweise gezeigt, dass zu Beginn einer verschlüsselten Sitzung eine Cipher Suite ausgehandelt werden muss. Innerhalb der Suite wird auch die Verschlüsselung, die Blockgröße und der Modus festgelegt, z.B.:
AES_128_GCM (= Grundverschlüsselung AES, Keysize 128 bit und Modus GCM), oder
AES_128_CBC.
Auch in vielen Verschlüsselungs-Anwendungen wie OpenVPN oder OpenSSL basierten Programmen kann der Nutzer einen Algorithmus frei wählen. Zur Wahl des am Besten passenden ist jedoch einiges an Hintergrundwissen notwendig, welches ich im Folgenden vermitteln möchte.
Seit wenigen Tagen überschlägt sich die Presse mit Meldungen, dass Verschlüsselungen "im Internet" geknackt worden sein. Leider wurde hierbei so oft voneinander zitiert, dass sich auch viele Übertreibungen und Vereinfachungen in den Nachrichten finden, die mit der Wahrheit wahrscheinlich nicht mehr all zu viel zu tun haben. Nachdem ich die ersten Schlagzeilen gelesen habe, dachte ich mir anfangs, dass ich es mir nicht vorstellen konnte, dass die unterschiedlichen mathematischen Probleme, auf den Verschlüsselungen beruhen, geknackt worden sind. Nach dem Lesen der Artikels bemerkte ich, dass ich recht hatte: Nicht die Verschlüsselungen wurden geknackt, sondern, im Gegenteil, es wurde getrickst und beeinflusst, um Verschlüsselungen, durch absichtlich inkorrekte Implementierung, unsicherer zu gestalten.
Wie ich bereits im Beitrag Grundlagen der Verschlüsselung auf mögliche Schwachstellen hingewiesen habe, möchte ich nun einmal kurz & leicht verständlich auswerten, was eigentlich in den Presse in den letzten Tagen bekannt geworden ist. Ich stütze mich hierbei auf die Berichte der New York Times, des Guardian und des Online-Portal ProPublica. Weiterhin habe ich mir Texte von Bruce Schneier als Quelle genommen, ein anerkannter, renommierter Kryptographieexperte, der ebenfalls Zugriff auf die geleakten Dokumente hatte.
Ist die SSL Verschlüsselung unwirksam und somit sinnlos?
Nein, nach den bisher vorliegenden Informationen nicht. Den Berichten zur Folge wurden Wege gefunden, dennoch verschlüsselte Informationen mitlesen zu können. Die Wege sind bei weitem nicht neu, nur die Größenordnung und die hohe Systematik dahinter ist neu. Um die "Schwachstellen" von SSL nachvollziehen zu können, müssen wir im im Bereich der SSL bzw. TLS Verschlüsselungen ins Detail gehen, hierbei werde ich auch auf das Thema Perfect Forward Secrecy (PFS) eingehen.
Der TLS-Handshake: Der Verbindungsaufbau
Wird eine https-verschlüsselte Webseite aufgerufen, müssen zahlreiche Nachrichten zwischen den Server und dem Browser ausgetauscht werden, bevor im Browser der Inhalt der Webseite angezeigt werden kann.
DNSCrypt ist eine interessante Möglichkeit für PCs, Server und Android-Smartphones, die Sicherheit, Integrität und Privatsphäre im Internet deutlich zu erhöhen. DNSCrypt geht auf eine Initiative von OpenDNS zurück, ein globaler, öffentlicher DNS Anbieter.
Die Relevanz der Sicherheit von DNS Anfragen wird häufig von Administratoren und sicherheitsbewussten IT Nutzern übersehen, obwohl die Manipulationen von DNS Antworten eines der häufigsten und einfachsten Möglichkeiten darstellt, ein System zu kompromittieren.
DNSSEC war ein erstes Vorhaben, die Authentizität und Integrität der DNS Daten sicherzustellen.
Was ist DNS, wie funktioniert es?
Ein kurzer Abriss zu den Funktionsweisen des DNS Systems, ich beschreibe im Folgenden die Standardfunktionsweise der Namensauflösung unter Windows, Linux und Android:
Das Diagramm ist einfach verständlich, die Schwachstellen liegen vor allem an den Punkten 1 und 2, worauf ich gleich näher eingehen werde. DNS Anfragen und Antworten werden grundsätzlich im Klartext über das Internet versendet, für jeden lesbar. Mit einem Netzwerk-Sniffer extrahiert, sieht die Anfrage (Punkt 1 in der oberen Darstellung) wie folgt aus: DNSCrypt für mehr Sicherheit und Privatsphäre weiterlesen →
Lange habe ich nach einem Plugin gesucht, welches es mir ermöglicht, E-Mails in Outlook 2010 bzw. Outlook 2013 mit OpenPGP zu verschlüsseln. Die meisten Plugins die ich gefunden habe, waren nur bis zur Version Outlook 2007 geeignet, Outlook selber unterstützt nur S/MIME.
Das Outlook Privacy Plugin zur OpenPGP Verschlüsselung in Outlook
Features
Microsoft Outlook 2010 and 2013
Support for both 32bit & 64bit versions of Office
Encrypt and decrypt email using OpenPGP standard
Supports encrypted attachments
Supports multiple recipients
Decrypts PGP-MIME
Decrypts OpenPGP blocks in HTML email
Multiple email accounts (based on sender/receiver email)
Zusammen mit der Software Gpg4win funktioniert das Outlook Privacy Plugin tadellos. Als Schlüsselmanager habe ich Kleopatra installiert, welcher im Rahmen der gpg4win Installation ausgewählt werden kann. Nach der Installation des Tools finden sich in Outlook einige neue Symbole: