Schlagwort: WireGuard

  • Kontroverse um WireGuard in pfSense

    WireGuard aus pfSense entfernt
    Bild: WireGuard | Quelle: XDA-Developers

    Im Januar war die moderne VPN-Tunnel-Software WireGuard für die auf FreeBSD aufsetzende Firewall-Distribution pfSense als technische Vorschau und im Februar stabil freigegeben worden. Bereits vorher wurde der bei Ansatz in den Kernel von FreeBSD aufgenommen. Nachdem WireGuard-Entwickler Jason Donenfeld die beim FreeBSD-Sponsor Netgate entwickelte Implementierung wegen schlechter Qualität und fehlender Kommunikation harsch kritisierte und die Implementierung völlig überarbeitete, gab Netgate jetzt die vorläufige Entfernung von WireGuard aus der Firewall bekannt. Liest man die Kritik in Bezug auf den Code, war die Entfernung wohl der einzig richtige Schritt.

    There were random sleeps added to “fix” race conditions, validation
    functions that just returned true, catastrophic cryptographic
    vulnerabilities, whole parts of the protocol unimplemented, kernel
    panics, security bypasses, overflows, random printf statements deep in
    crypto code, the most spectacular buffer overflows, and the whole litany
    of awful things that go wrong when people aren’t careful when they write
    C.

    Jason A. Donenfeld

    Keine Einsicht

    Dem vorausgegangen war ein Blogeintrag, in dem ein pfSense-Entwickler die Art und Weise kritisierte, wie die Community die Überholung des Codes kommuniziert und durchgeführt habe. Ließ der Titel »Painful Lessons Learned in Security and Community« noch auf Einsicht hoffen, das man hier mit Zusammenarbeit und Kommunikation ein besseres Ergebnis hätte erzielen können, ging der Text in die entgegengesetzte Richtung. Der für pfSense verantwortliche Blog-Autor Jason Long titulierte Kritiker als Angreifer und unterstellte gar unlautere Motive. Er erwähnte mit keinem Wort, dass Netgate die schlechte Qualität des Codes zu verantworten hat, was wiederum die Kritik im Netz weiter anheizte.

    Spätere Wiederaufnahme

    In der gestrigen Ankündigung zur Entfernung von WireGuard aus der Firewall-Distribution erklärte das Unternehmen, man werde die Entwicklung bei der erneuten Integration bei FreeBSD beobachten und eine Wiedereinführung in pfSense neu bewerten. Die Entwickler von FreeBSD werden den Code aufgrund der gravierenden Fehler der Vorversion vermutlich nicht in die anstehende Veröffentlichung von FreeBSD 13.0 übernehmen, sondern eher in Version 13.1. Dann kann man laut Donenfeld auch über Backports für 13.0 und 12.x nachdenken.

  • WireGuard im OpenBSD-Kernel

    WireGuard im OpenBSD-Kernel
    OpenBSD-Logo

    Mitte Mai stellte WireGuard-Entwickler Jason Donenfeld ein Patchset seines modernen VPN-Tunnels für OpenBSD vor, dass er gemeinsam mit dem Entwickler Matt Dunwoodie erstellt hatte. Zwei Monate später wurde WireGuard nun in den Kernel von OpenBSD aufgenommen.

    Auf Linux folgt OpenBSD

    Bereits im Sommer 2016 empfahl der Entwickler Jason Donenfeld seine Entwicklung erstmals für die Aufnahme in den Linux-Kernel. Aber erst Ende März 2020 wurde WireGuard in Linux 5.6 aufgenommen. Es brauchte dazu einige Anläufe und viele Revisionen, obwohl Linus Torvalds und Greg Kroah-Hartman sich bereits 2017 sehr lobend geäußert hatten und auf eine baldige Aufnahme hofften.

    Jetzt berichtet Donenfeld in seiner Ankündigung, dass die Aufnahme in den Kernel von OpenBSD »sehr angenehm« verlaufen sei und nur drei Patch-Revisionen benötigt habe. Er geht davon aus, dass WireGuard mit OpenBSD 6.8 erstmals ausgeliefert werde.

    Nur 4.000 Zeilen Code

    WireGuard ist mit rund 4.000 Zeilen Code im Vergleich mit ähnlicher freier Software wie IPsec oder Open-VPN extrem klein. Auch das Aufsetzen eines VPN-Tunnels mit WireGuard gestaltet sich vergleichsweise viel einfacher und erinnert durch die Verwendung von privaten und öffentlichen Schlüsseln an das Aufsetzen einer SSH-Verbindung.

    Weit verbreitet

    Somit verwundert es nicht, dass WireGuard in einer Art Siegeszug in Windeseile auf allen wichtigen Plattformen Fuß fassen konnte. Es gibt Anzeichen für eine baldige Aufnahme bei FreeBSD und NetBSD, die sich derzeit eines WireGuard-Go-Ports bedienen. Auch für die auf FreeBSD basierte Firewall-Distribution pfSense gibt es erste inoffizielle Pakete. Hersteller Netgate hat sich bereit erklärt, eine Portierung nach FreeBSD zu unterstützen.

    Weitere Informationen zu WireGuard vermittelt die Webseite des Projekts, der Code wird auf GitHub gepflegt.

  • WireGuard für OpenBSD

    OpenBSD-Logo

    Knapp sechs Wochen ist es her, dass der moderne VPN-Tunnel WireGuard nach mehreren Anläufen in Linux 5.6 aufgenommen wurde. Jetzt hat der Entwickler Matt Dunwoodie ein Patchset für OpenBSD vorgestellt, dass er in Abstimmung mit WireGuard-Entwickler Jason Donenfeld entwickelt hat.

    Patchset für OpenBSD

    Beide Entwickler sind sich einig, dass die Patches weit genug gediehen sind, um künftig direkt im Quellbaum von OpenBSD weiter gepflegt zu werden. Das hat Dunwoodie jetzt auf der Mailing-Liste openbsd-tech bekannt gegeben. Neben dem Kernel-Treiber enthält das Patchset auch Patches für ifconfig zur Erstellung der wg-Schnittstellen und um WireGuard-Packets in tcpdump anzuzeigen.

    Um eine gut informierte Diskussion auf der Liste zu gewährleisten, hat Dunwoodie gleich eine FAQ angehängt, in der er vermutete Fragen im Vorfeld beantwortet. So beantwortet er beispielsweise die Frage, ob dies ein Klon des Linux-Kernel-Moduls sei, mit Jein. Obwohl diese Implementation direkt auf OpenBSD zentriert sei, hätten Fehler aus der Entwicklung des Linux-Moduls vermieden werden können.

    Nur 3.000 Zeilen

    Durch das Vorhandensein einer guten Netzwerkinfrastruktur in OpenBSD konnte der Umfang mit rund 3.000 Zeilen noch unter die 4.000 Zeilen des Linux-Moduls gedrückt werden. Vergleicht man dies mit den rund 600.000 Zeilen bei den Mitbewerbern von OpenVPN oder 400.000 Zeilen, die IPsec benötigt, so wird klar, warum WireGuard so viel Furore macht. Es erklärt auch die von Dunwoodie erreichte Geschwindigkeit von 750 MBit/s zwischen zwei X230 ThinkPads.

    Ein Fan von OpenBSD

    Auch WireGuard-Entwickler Donenfeld meldet sich zu Wort und erklärt, er bewundere seit Jahren »die allgemeine Philosophie der Programmierung einfacher und sicherer Systeme« bei OpenBSD. Davon sei WireGuard von Anfang an inspiriert gewesen. Donenfeld steht voll und ganz hinter diesen Patches.

    Wird das Patchset angenommen, könnte OpenBSD die zweite Distribution werden, die WireGuard in den Kernel aufnimmt. Clients gibt es bereits für Linux, *BSD, macOS, Windows, Android und iOS.

  • WireGuard 1.0.0 ist da

    WireGuard 1.0.0
    Bild: WireGuard | Quelle: XDA-Developers

    In Zeiten von weit verbreitetem Homeoffice stehen viele Anwender vor Sicherheitsproblemen, wenn es um abgesicherte Verbindungen zu Kollegen oder zu Firmenservern geht. Gerade kleine Unternehmer müssen hier selbst tätig werden und da kommt der VPN-Tunnel WireGuard gerade recht.

    Schwierige Aufnahme

    Zeitgleich mit der Aufnahme in Kernel 5.6 ist WireGuard in einer ersten stabilen Version 1.0.0 erschienen. Der Weg in den Kernel war schwierig und ich muss gestehen, ich hatte viel früher mit einer Aufnahme gerechnet, nachdem sich bereits 2017 Greg Kroah-Hartman anlässlich eines öffentlichen Code-Reviews lobend über die Software geäußert hatte und Linus Torvalds 2018 auf eine baldige Aufnahme gehofft hatte.

    Kritik an zweiter Crypto-API

    Als es dann um die konkrete Aufnahme ging, hatten einige Entwickler des Crypto-Subsystems Einwände gegen Komponenten der mit WireGuard ausgelieferten Crypto-Engine Zinc, die ein eigenes API mitbringt. Ein weiteres Crypto-Api im Kernel lehnten sie ab. Details dazu können in einem Artikel auf LWN nachgelesen werden.

    Auf alle Fälle zeigt die Geschichte, dass Torvalds und sein Vize Kroah-Hartman auch nur »Primi inter pares« sind und das ist gut so. Jetzt ist es aber geschafft und Version 1.0.0 belegt das zusätzlich.

    Stabiles Kernel-Modul

    WireGuard war schon länger stabil einsetzbar, jedoch musste mit jedem neuen Kernel das Modul per DKMS auf jedem Rechner neu gebaut werden. Sysadmins, die große Flotten von Rechnern betreuen dürften die Aufnahme in den Kernel als große Arbeitserleichterung sehen.

    Audit bestanden

    In seiner Ankündigung betont WireGuard-Entwickler Jason Donenfeld, dass die Aufnahme in den Kernel ein wichtiger Schritt sei, der ihm einiges Unbehagen bescherte und er deswegen eine Sicherheitsfirma mit einem Audit der nur 4.000 Zeilen Code beauftragt hatte, wie aus einer Mail an David S. Miller, Entwickler im Kernel-Netz-Subsystem hervorgeht.

    Es gibt bereits Backports für Ubuntus Kernel 5.4 für die Veröffentlichung mit Ubuntu 20.04 LTS am 23. April sowie für das Backports-Archiv von Debian 10 »Buster«.

    Für die Zeitschrift LinuxUser 06/2020 werde ich einen Artikel zum einfachen Aufsetzen eines WireGuard-Servers unter Ubuntu 20.04 auf einem ansonsten ausgedienten Notebook verfassen, den ich nach dem Erscheinen hier verlinken werde. Auch auf dem Raspberry Pi macht WireGuard eine gute Figur.

  • WireGuard in Kernel 5.6

    WireGuard in Kernel 5.6
    Bild: WireGuard | Quelle: XDA-Developers

    Bereits seit rund zwei Jahren versucht Entwickler Jason Donenfeld die moderne VPN-Tunnel-Anwendung WireGuard in den Mainline-Kernel zu bekommen. Nachdem das zunächst vielversprechend verlief, störten sich im weiteren Verlauf einige Kernel-Entwickler an der von WireGuard verwendeten Krypto-Bibliothek Zinc.

    Widerstand

    Der anhaltende Widerstand, der auch durch mehrere Proof of Concept-Ansätze von Donenfeld nicht gebrochen werden konnte, führte dazu, dass er sich bereit erklärte, die Krypto-API des Linux-Kernels für WireGuard anzupassen. Der entsprechende Patch wurde Mitte November aufgenommen.

    Das erschien ihm als der einzige Weg, die Anwendung in den Kernel aufnehmen zu lassen, da Entwickler des Netzwerkzweigs nicht bereit waren, neben der bereits bestehenden Krypto-API eine weitere Krypto-Bibliothek im Kernel zuzulassen.

    Im Netzwerkzweig angekommen

    Gestern wurde der aktuelle Commit von Donenfeld eingereicht und am gleichen Tag von Netzwerk-Maintainer David Miller in den Kernel-Zweig net-next aufgenommen. Damit hat WireGuard alle Chancen, ohne weitere Verzögerungen in Linux 5.6 aufgenommen zu werden.

    Bereits weit verbreitet

    Die Aufnahme in den Kernel ist Voraussetzung für die weitere Verbreitung von WireGuard in Industrie und Unternehmen, auch wenn der VPN-Tunnel wegen seines guten Rufs und des Lobs von Linus Torvalds und seines Vize Greg Kroah-Hartman bereits Einzug in einige große Unternehmen hielt. Auch VPN-Anbieter wie Nord-VPN und Mullvad sind bereits auf den Zug aufgesprungen.

    In den Distributionen

    Unter den Paketnamen wireguard oder wireguard-tools hat die unter der GPLv2 stehende Anwendung bereits seit Längerem Einzug in die Distributionen Debian, Arch, Gentoo, Fedora, Void, OpenWRT/LEDE, NixOS, bei FreeBSD und OpenBSD sowie die für macOS entwickelte Paketverwaltung Homebrew gehalten. Für Android steht im Google Play Store und auf FDroid eine App bereit, ein nativer Client für Windows steht auch bereit.

    Ich habe WireGuard und seine Nutzung vor einem Jahr in der Zeitschrift LinuxUser beispielhaft beschrieben. War es damals bereits mit wenig Aufwand verbunden, so wird dies vermutlich ab Kernel 5.6, der ungefähr im April 2020 erscheint, nochmals einfacher.

  • VPN-Tunnel mit Mullvad und WireGuard

    Mullvad-Logo

    In den letzten Tagen waren Meldungen zu lesen, dass auf den Servern der drei VPN-Anbiete NordVPN, TorGuard und VikingVPN Einbrecher am Werk waren. Die Einbrüche, bei denen private Schlüssel entwendet wurden, sind bereits länger her und wurden erst jetzt berichtet, nachdem Sicherheitsforscher diese veröffentlicht hatten. Ob mit den mittlerweile ungültigen Schlüsseln weitere Straftaten begangen wurden, ist derzeit nicht bekannt.

    Viel unsichere Kandidaten

    So gibt es immer wieder Meldungen, die man bei einem VPN-Dienst eigentlich nicht lesen möchte. So war unlängst zu lesen, dass ein Drittel der führenden VPN-Dienste sechs chinesischen Firmen gehören, die zudem versuchen, die Besitzverhältnisse zu verschleiern. Weitere Anbieter konzentrieren sich in Pakistan, wo die Regierung ohne richterlichen Beschluss auf alle Daten zugreifen kann.

    Die Guten ins Töfchen…

    Aber auch in diesem Markt gibt es Alternativen. Eine solche ist der schwedische Anbieter Mullvad. Ich bin dort seit Jahren Kunde und möchte den Anbieter im Zusammenhang mit dem VPN-Tunnel WireGuard näher vorstellen.

    Mullvad ist mit 5 Euro im Monat nicht der billigste Anbieter. Die Leute hinter Mullvad sind Linux-Freaks, die anscheinend Debian nahestehen. Ich habe schon des Öfteren Kontakt gehabt bei Fragen. Diese wurden alle schnell und kompetent beantwortet.

    Anonymität und Transparenz

    Die Richtlinien sind strikt, detailliert und aussagekräftig. Mullvad verzichtet, wenn gewünscht, auf jegliche Kenntnis der Person. Du wirst im anonymsten Fall nur über eine Nummer identifiziert. Name und E-Mail-Adresse müssen nicht angegeben werden. Um hier anonym zu bleiben, muss allerdings das Geld per Post verschickt werden. Eine Alternative ist Bitcoin, wofür es sogar noch 10 Prozent Nachlass gibt.

    Es gibt ausreichend Server in aller Welt. Weitere Details zu Übertragungsraten und vielem mehr vermittelt ein aktueller Artikel. Wichtiger ist jedoch, dass sich Mullvad einem externen Audit eines renommierten deutschen Instituts unterzogen hat.

    Grafischer Linux Client

    Der Linux-Client von Mullvad bietet ausreichend Optionen, um Mullvad zu steuern. Lediglich das Umstellen vom Standard-OpenVPN auf WireGuard ist noch nicht inkludiert und muss manuell im Terminal absolviert werden. Dabei können ein dreifacher Multihop sowie ein Killswitch konfiguriert werden.

    Mobil per WireGuard

    Manche Anwender betrachten es als Nachteil, dass Mullvad keine Mobil-App hat. Man kann aber auch ohne App WireGuard für Android so konfigurieren, das WireGuard die Mullvad-Server verwendet. Das funktioniert einwandfrei.

    Jeder Dienst kann gehacked werden, das ist leider heute so. Es kommt aber darauf an, wie transparent damit umgegangen wird. Da Mullvad bereits auf seiner Webseite sehr transparent informiert, habe ich hier mehr Vertrauen als anderswo, wo mehr Geld in Werbung und Marketing gesteckt wird als in Sicherheit. Und um der Frage vorzubeugen: Nein, dies ist kein bezahlter Artikel, es fließen keine Mittel in meine Richtung.

  • Linus Torvalds lobt WireGuard

    Linus Torvalds lobt WireGuard
    Bild: WireGuard | Quelle: XDA-Developers

    Linus Torvalds hat sich auf der Kernel-Mailingliste in einem Nebensatz lobend über das VPN-Projekt WireGuard geäußert. Erst vor wenigen Tagen hatte dessen Entwickler Jason Donenfeld ein erstes Patchset für die Aufnahme in den Mainline-Kernel bereitgestellt. WireGuard bietet viele Vorteile gegenüber Alternativen wie IPsec oder Open-VPN.

    Simpel und schnell

    Dazu zählen einfachere Handhabung und höhere Geschwindigkeit. Ein eklatanter Unterschied herrscht auch bei den Codezeilen der VPN-Anwendungen. Während IPsec über 400.000 Zeilen aufweist und Open-VPN es immerhin noch auf 100.000 Zeilen bringt, kommt WireGuard mit gerade einmal 4.000 Zeilen aus. Damit bietet es einen wesentlich kleineren Angriffsvektor wie die Konkurrenz. Zudem ist die Bedienung in den Grundfunktionen so einfach wie das Herstellen einer SSH-Verbindung.

    Donenfeld hat den WireGuard-Port für Android jetzt auf allen Android-Geräten lauffähig bereitgestellt. Auch die macOS-, FreeBSD- und OpenBSD-Ports sind in guter Verfassung. An einem Windows-Port arbeitet Donenfeld gerade.

    Nach Greg Kroah-Hartman ist Torvalds der zweite Kernel-Entwickler, der sich lobend über WireGuard auslässt. Er schrieb in einer Mail an die Entwicklerliste:

    [su_quote style=“modern-light“ cite=“Linus Torvalds“]»Ich sehe, dass Jason es tatsächlich geschafft hat, einen Pull-Request für WireGuard zur Aufnahme in den Kernel einzureichen. Darf ich hier noch einmal meine Begeisterung für WireGuard bekunden und hoffen, dass der Code bald gemerged wird? Vielleicht ist der Code nicht perfekt, aber ich habe ihn überflogen. Im Vergleich zu den Schrecken von OpenVPN und IPSec ist er ein Kunstwerk.«[/su_quote]

    Bereits weite Kreise gezogen

    Auch auf der politischen Bühne hat WireGuard Eindruck hinterlassen. US-Senator Ron Wyden hat die Software in einem Brief der Sicherheitsbehörde NIST empfohlen. Ron Wyden ist das mit Abstand technisch versierteste Mitglied des US-Senats. Er ist seit Jahren ein führender Verfechter der Sicherheit und des Datenschutzes und insbesondere der einzige, der seit Jahren die Aufsicht über die NSA und die damit verbundenen Behörden fordert.

    Mit solch prominenter Unterstützung könnte WireGuard mit etwas Glück noch in diesem Jahr in den Kernel aufgenommen werden und damit noch weitere Verbreitung finden.

  • WireGuard auf dem Weg in den Linux-Kernel

    Logo: WireGuard

     

    Wenn Kernel-Entwickler Greg Kroah-Hartman etwas auf G+ für gut befindet, so ist das meist einen genaueren Blick wert. So geschehen vor einigen Tagen, als Hartman sich positiv über den VPN-Tunnel WireGuard geäußert hat. Das Projekt ist nicht zu verwechseln mit dem Messenger Wire. Bereits im Sommer 2016 empfahl der Entwickler Jason Donenfeld seine Entwicklung für die Aufnahme in den Linux-Kernel. Er erläuterte damals, es gebe noch einiges zu tun, aber ein Patchset zum Einzug in den Mainline-Kernel sei in greifbarer Nähe. Für Kernel 4.15 scheint es zu spät zu sein, aber wie Phoronix heute berichtet, soll es nicht mehr allzu lange dauern.

    Einfacher als IPsec und schneller als OpenVPN

    Donenfeld selbst beschreibt WireGuard als »a next-generation secure network tunnel for the Linux kernel«. Das Tool besteht aus lediglich rund 4.000 Zeilen Code und soll wesentlich unkomplizierter als IPsec und um vieles schneller als das im Userspace laufende OpenVPN sein. Das von Grund auf neu geschriebene WireGuard ist laut Donenberg kryptografisch sicher. Die beiden Gegenstellen der Kommunikation tauschen öffentliche Schlüssel über die elliptische Kurve Curve25519 aus, die auf Geschwindigkeit optimiert ist. Sie findet unter anderem auch beim Tor- und  I2P-Netzwerk, bei WhatsApp und iOS Anwendung.

    Bereits in vielen Distributionen vertreten

    Unter den Paketnamen wireguard oder wireguard-tools hat die relativ junge, unter der GPLv2 stehende Anwendung unter anderem bereits Einzug in die Distributionen Debian, Arch, Gentoo, OpenWRT/LEDE, NixOS, Exherbo und die für macOS entwickelte Paketverwaltung Homebrew gehalten. Community-Pakete gibt es für Ubuntu als PPA, bei Fedora/CentOS im Buildservice Copr, sowie im OpenSUSE-Build-Service OBS , das mittlerweile SUSE Studio Express heißt.

    Weitere technische Einzelheiten verrät der Entwickler auf der Projekt-Webseite, der Code liegt in einem Git-Archiv. Auf der Entwickler-Messe FOSDEM im Februar hat Donenfeld einen Vortrag zu WireGuard gehalten.