100% Open Source

ProtonVPN: Der Code liegt offen –
und das ist echte Sicherheit

Die meisten VPN-Anbieter sagen, dass sie sicher sind. ProtonVPN kann es beweisen – mit öffentlich einsehbarem Quellcode, unabhängigen Audits und mathematisch nachweisbarer Verschlüsselung. Wir zeigen, was das konkret bedeutet.

Das Fundament

Was Open Source bei einem VPN wirklich bedeutet

Und warum der Unterschied zu Closed-Source-VPNs größer ist, als du denkst.

Das Problem mit dem Vertrauen: Ein VPN-Anbieter könnte behaupten, keine Logs zu speichern – und es trotzdem tun. Er könnte behaupten, starke Verschlüsselung zu nutzen – und eine schwache verwenden. Bei Closed-Source-Software gibt es keine Möglichkeit, das zu überprüfen. Bei ProtonVPN schon: Jede dieser Behauptungen lässt sich im öffentlichen Code nachprüfen.

Closed Source: Glaube mir

Der Anbieter sagt, er ist sicher. Du hast keine Möglichkeit, das zu überprüfen. Du musst vertrauen – blind.

Open Source: Schau selbst nach

Der Code liegt offen. Jeder Sicherheitsforscher, jeder Entwickler, jeder Nutzer kann nachsehen ob die Behauptungen stimmen.

ProtonVPN hat im Jahr 2020 alle seine Client-Apps als Open Source veröffentlicht – als eines der ersten großen VPN-Unternehmen überhaupt. Heute sind Windows, macOS, Linux, Android und iOS vollständig open source. Auch der Kern der Server-Infrastruktur ist dokumentiert und auditiert.


GitHub

Die Repositories im Überblick

Alle Apps auf einen Blick – vollständig öffentlich einsehbar.

ProtonVPN/win-app
Windows-Client · C# / .NET · WireGuard + OpenVPN
ProtonVPN/ios-mac-app
iOS & macOS · Swift · Network Extension API
ProtonVPN/android-app
Android · Kotlin · WireGuard-go + OpenVPN
ProtonVPN/linux-app
Linux CLI · Python · iptables / nftables Kill Switch
ProtonVPN/WebExtension
Browser-Extension · JavaScript · WebRTC Schutz
ProtonVPN/go-srp
Auth-Bibliothek · Go · SRP-Protokoll (Zero-Knowledge Login)

Technisch erklärt

Verschlüsselung: Was hinter AES-256 und WireGuard steckt

ProtonVPN unterstützt zwei Hauptprotokolle: WireGuard und OpenVPN. Beide verwenden unterschiedliche Verschlüsselungsalgorithmen – aber beide sind mit heutiger Rechenleistung praktisch unknackbar.

Algorithmus Protokoll Zweck Sicherheit
ChaCha20-Poly1305 WireGuard Datenverschlüsselung 256-Bit, AEAD
Curve25519 WireGuard Schlüsselaustausch (ECDH) 128-Bit Sicherheitsniveau
BLAKE2s WireGuard Hashing / Integrität Kryptografisch sicher
AES-256-GCM OpenVPN Datenverschlüsselung 256-Bit, AEAD
RSA-4096 OpenVPN Server-Authentifizierung 4096-Bit Schlüssellänge
HMAC-SHA-512 OpenVPN Nachrichtenintegrität 512-Bit Hash

WireGuard: Der Handshake im Code

WireGuard verwendet das Noise Protocol Framework – konkret das Muster Noise_IKpsk2. Beim Verbindungsaufbau zwischen deinem Gerät und dem ProtonVPN-Server läuft das so ab:

WireGuard Handshake (vereinfacht aus der ProtonVPN-Implementierung) wireguard_handshake.py
# Schritt 1: Beide Seiten erzeugen ein Curve25519-Schlüsselpaar
# Das passiert beim App-Start einmalig (statische Schlüssel)
from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey

client_private = X25519PrivateKey.generate()          # 32 zufällige Bytes
client_public  = client_private.public_key()           # daraus abgeleitet

# Schritt 2: Beim Verbindungsaufbau – ephemerer Schlüssel (einmalig)
ephemeral_private = X25519PrivateKey.generate()       # jedes Mal neu!
ephemeral_public  = ephemeral_private.public_key()

# Schritt 3: Diffie-Hellman-Austausch (kein geheimer Schlüssel über Leitung)
# Client rechnet: DH(client_private, server_public)
# Server rechnet: DH(server_private, client_public)
# Beide erhalten identischen shared_secret – ohne ihn zu übertragen!
shared_secret = ephemeral_private.exchange(server_public_key)

# Schritt 4: Aus shared_secret werden Sitzungsschlüssel abgeleitet
# ChaCha20-Poly1305 verschlüsselt dann alle Datenpakete
session_key = HKDF(algorithm=SHA256(), length=32).derive(shared_secret)
Was bedeutet das für dich? Selbst wenn jemand deinen verschlüsselten VPN-Traffic aufzeichnet und später irgendwie einen Schlüssel erbeutet – er kann alte Sitzungen nicht entschlüsseln. Jede Verbindung verwendet neue ephemere Schlüssel. Das nennt sich Perfect Forward Secrecy.

Kill Switch: So sperrt der Code deinen Traffic

Der Kill Switch blockiert dein Internet sofort, wenn die VPN-Verbindung abbricht. Auf Linux sieht das mit iptables so aus – dieser Code ist direkt aus dem öffentlichen Linux-Repository abgeleitet:

Kill Switch Implementation (Linux, aus ProtonVPN/linux-app) kill_switch.sh
#!/bin/bash
# Kill Switch aktivieren: ALLES sperren, nur VPN-Tunnel erlauben

# 1. Standard-Policy: alles blockieren
iptables -P INPUT   DROP
iptables -P OUTPUT  DROP
iptables -P FORWARD DROP

# 2. Loopback (127.0.0.1) muss immer erlaubt sein
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 3. Bereits etablierte Verbindungen beibehalten
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

# 4. Nur UDP-Traffic zum VPN-Server erlauben (WireGuard-Port 51820)
iptables -A OUTPUT -p udp --dport 51820 -j ACCEPT

# 5. Alles über das VPN-Interface (wg0) erlauben
iptables -A INPUT  -i wg0 -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT

# Ergebnis: Bricht das VPN ab, gibt es keinen Internetzugang mehr.
# Kein einziges Datenpaket verlässt das Gerät unverschlüsselt.

DNS-Leak-Schutz: Warum ProtonVPN keine DNS-Anfragen durchlässt

Ein DNS-Leak passiert, wenn dein Gerät DNS-Anfragen an deinen normalen Internetanbieter schickt, obwohl du im VPN bist. ProtonVPN verhindert das aktiv:

DNS-Leak-Schutz (Linux / WireGuard Konfiguration) protonvpn.conf
# WireGuard Konfiguration die ProtonVPN erzeugt:

[Interface]
PrivateKey = <dein privater Schlüssel>
Address    = 10.2.0.2/32
DNS        = 10.2.0.1         # ProtonVPNs eigener DNS-Server (im Tunnel)

[Peer]
PublicKey  = <Server-Public-Key>
Endpoint   = 185.159.xx.xx:51820
AllowedIPs = 0.0.0.0/0         # ALLES durch den Tunnel (kein Split für DNS)

# Die "AllowedIPs = 0.0.0.0/0" ist entscheidend:
# Jedes Paket – auch DNS-Anfragen (Port 53) – geht durch den Tunnel.
# DNS-Anfragen landen bei 10.2.0.1 (ProtonVPN-Server), nicht beim ISP.

# Zusätzlich: iptables blockiert alle DNS-Anfragen ausserhalb wg0
iptables -A OUTPUT -p udp --dport 53 ! -o wg0 -j REJECT
iptables -A OUTPUT -p tcp --dport 53 ! -o wg0 -j REJECT

No-Log-Policy: Was im Code nicht vorkommt

Proton speichert keine Verbindungslogs. Das ist keine bloße Behauptung – im öffentlichen Code gibt es schlicht keine Datenbankaufrufe, die IP-Adressen, Verbindungszeiten oder besuchte Domains speichern würden. Das wurde mehrfach von unabhängigen Prüfern bestätigt.

IP-Adressen
werden nicht gespeichert
Verbindungszeiten
werden nicht gespeichert
Besuchte Websites
werden nicht gespeichert
Bandbreitennutzung
wird nicht gespeichert
DNS-Anfragen
werden nicht geloggt
E-Mail-Adresse
für Kontozugang (verschlüsselt)

Das wurde durch ein Schweizer Gerichtsurteil bestätigt: Als Schweizer Behörden Proton aufforderten, Nutzerdaten herauszugeben, hatte das Unternehmen schlicht keine – weil die Architektur sie technisch unmöglich macht, sie zu haben.


Unabhängige Prüfung

Externe Sicherheitsaudits

Open Source allein reicht nicht – der Code muss auch aktiv geprüft werden.

Proton lässt seine Apps und Infrastruktur regelmäßig von unabhängigen Sicherheitsunternehmen prüfen und veröffentlicht die Ergebnisse – auch wenn Schwachstellen gefunden werden.

Auditiert
Cure53

Renommiertes Berliner Sicherheitsunternehmen. Hat ProtonVPN-Apps und die Browser-Extension geprüft. Alle kritischen Findings wurden behoben, Berichte öffentlich.

Auditiert
SEC Consult

Österreichisches IT-Sicherheitsunternehmen. Prüfte die ProtonVPN-Serverinfrastruktur und das Netzwerkdesign. Ergebnisse: veröffentlicht.

Auditiert
Mozilla Observatory

Automatisierte Webseiten-Sicherheitsprüfung. vpn.proton.me erhält regelmäßig Bestnoten (A+) für HTTP-Security-Header und HTTPS-Konfiguration.

Auditiert
Community Review

Durch die Open-Source-Veröffentlichung prüfen tausende Entwickler und Sicherheitsforscher weltweit kontinuierlich den Code. Issues werden öffentlich auf GitHub gemeldet.


Für Entwickler

Den Code selbst prüfen oder bauen

Du musst Proton nicht vertrauen – du kannst es nachprüfen. So geht's:

ProtonVPN Linux-Client aus Quellcode bauen terminal
# Repository klonen
git clone https://github.com/ProtonVPN/linux-app.git
cd linux-app

# Abhängigkeiten installieren
pip install -r requirements.txt

# Code nach verdächtigen Stellen durchsuchen (Beispiel)
# Gibt es irgendwo "requests.post" mit Log-Daten?
grep -rn "requests.post" protonvpn_gui/ protonvpn_cli/

# App direkt starten (ohne Installation)
python3 -m protonvpn_gui
Was du dort siehst: Kein einziger API-Call der IP-Adressen, Verbindungszeiten oder Traffic-Daten an Proton-Server schickt. Die einzigen Netzwerkaufrufe betreffen Authentifizierung, Server-Liste abrufen und VPN-Verbindungsaufbau – jeweils verschlüsselt und ohne Nutzerdaten-Logs.

Rechtlicher Rahmen

Schweizer Datenschutz: Die stärkste Rechtsgrundlage

Open Source schützt technisch. Der Schweizer Sitz schützt rechtlich. Die Schweiz ist kein EU-Mitglied und kein Teil von 5/9/14 Eyes – dem Überwachungsverbund der USA, Großbritanniens und ihrer Verbündeten.

  • Kein PATRIOT Act (USA)
  • Kein Investigatory Powers Act (UK)
  • Strenge Schweizer Datenschutzgesetze (nDSG)
  • Gerichtlicher Nachweis: Keine Logs → keine Daten herausgebbar
🇨🇭

Genf, Schweiz

Sitz von Proton AG

5 Eyes
Nicht Mitglied
EU
Nicht Mitglied
nDSG
Datenschutzgesetz
2012
Gegründet (CERN)

Überzeugt? ProtonVPN jetzt kostenlos testen

Kostenloser Tarif verfügbar · Plus 30 Tage Geld-zurück-Garantie

ProtonVPN holen

Häufige Fragen

Ja. Alle Client-Apps – Windows, macOS, Linux, Android, iOS und die Browser-Extension – sind als Open Source auf GitHub veröffentlicht. Der Code kann von jedem eingesehen, heruntergeladen und sogar selbst kompiliert werden. Das unterscheidet ProtonVPN von den meisten Wettbewerbern, deren Apps Closed Source sind.

Mit heutiger Rechenleistung: Nein. Ein Brute-Force-Angriff auf AES-256 würde mehr Energie benötigen als die Sonne in ihrer gesamten Lebenszeit abgibt. WireGuard mit Curve25519 und ChaCha20-Poly1305 gilt als noch effizienter und moderner. Selbst Quantencomputer würden AES-256 nur auf eine effektive Schlüssellänge von 128 Bit reduzieren – was immer noch unknackbar ist.

Mullvad ist ebenfalls vollständig open source und sehr sicherheitsorientiert (sogar ohne E-Mail-Adresse nutzbar). Der Hauptunterschied: ProtonVPN bietet eine kostenlose Version, ist in mehr Sprachen verfügbar, hat ARD/ZDF Mediathek-freundliche deutsche Server und ist Teil des breiteren Proton-Ökosystems (Mail, Drive, Pass). Für maximale Anonymität ist Mullvad eine valide Alternative. Für die meisten deutschen Nutzer bietet ProtonVPN das bessere Gesamtpaket.