Proton Authenticator is een open-source two-factor **verificatie** (2FA) **authenticatie-app** die tijdgebonden, eenmalige **wachtwoord** (TOTP)-**codes** genereert op uw **apparaat**, waarmee u **toegang** krijgt tot **online** diensten met een extra beveiligingslaag. Het gebruikt dezelfde goed geteste **versleuteling** die de rest van het Proton-ecosysteem beveiligt. Proton Authenticator is uniek omdat het vanaf de basis is ontworpen om beschikbaar te zijn op bijna elk **platform**, met behoud van uw **privacy** en u volledig eigendom over uw data geeft.
In tegenstelling tot andere **authenticatie-apps**, beveiligt Proton Authenticator uw data met **end-to-end versleuteling**, zelfs wanneer u apparaatsynchronisatie **inschakelt**.
Dit betekent dat Proton Authenticator voorkomt dat iemand, inclusief Proton zelf, weet bij welke **online** diensten u **accounts** hebt. Deze informatie kan, net als uw **e-mails** of browsegeschiedenis, veel over u onthullen, en het beschermen ervan is essentieel voor het behoud van uw **privacy**.
De **end-to-end versleuteling** van Proton Authenticator garandeert dat alle cryptografische bewerkingen, inclusief sleutelgeneratie en data-**versleuteling**, lokaal op uw **apparaat** worden uitgevoerd. Dit betekent dat uw **niet versleutelde** data niet toegankelijk is voor Proton of **gedeeld** kan worden met derden. Proton-**servers** hebben nooit **toegang** tot uw **niet versleutelde** data, inclusief uw Proton Account-**wachtwoord**.
Versleutelingsmodel
Proton Authenticator hanteert een uitgebreide aanpak om maximale beveiliging en **privacy** voor alle gebruikersgegevens te garanderen. Alle cryptografische bewerkingen vinden lokaal op uw **apparaat** plaats, en alle gegevens die naar de **server** worden verzonden, zijn altijd **versleuteld**. Proton heeft nooit **toegang** tot de **tekst zonder opmaak**-sleutels die nodig zijn om gebruikersgegevens te **ontsleutelen**, waardoor het voor ons onmogelijk is om **opgeslagen** gegevens te **ontsleutelen**, zelfs als daarom wordt verzocht door derden.
Proton Authenticator gebruikt dezelfde geavanceerde **versleuteling** die we gebruiken voor **verificatie** in Proton Mail. Dit omvat het gebruik van een geharde versie van het Secure Remote Password (SRP)-protocol dat sterkere beveiligingsgaranties biedt tegen man-in-the-middle (MITM)-aanvallen. Onze implementatie betekent dat zelfs een aanvaller die willekeurig **berichten** tussen Proton en een **gebruiker** op een ondetecteerbare manier kan **lezen**, wijzigen, vertragen, vernietigen, herhalen of fabriceren, beperkt is tot het controleren van slechts een **enkel wachtwoord**-gok per **inlog**poging, het equivalent van proberen direct **in te loggen**. Op deze manier wordt **wachtwoord**-equivalente informatie nooit onthuld, zelfs als Proton wordt **gecompromitteerd** en kwaadwillig handelt.
**Lees** meer over de **verificatieversleuteling** van Proton
Dataversleuteling
Proton Authenticator stelt u in staat om uw **2FA**-**codes** veilig **op te slaan**, zelfs als u geen Proton Account hebt. Dit betekent dat het initiële **versleutelings**proces volledig op uw lokale **apparaat** moet worden uitgevoerd. Als u vervolgens besluit uw Proton Account te gebruiken om uw **codes** op verschillende apparaten te synchroniseren, kunnen we de cryptografische sleutels gebruiken die op Proton-**servers** zijn **opgeslagen** om de synchronisatie uit te voeren.
Proton-**versleuteling** begint met de Proton-**server** die de **versleutelde** versie van de hoofdsleutel levert die de **authenticatie-app** gebruikt om de gegevens van de **gebruiker** te **versleutelen**. Elke Proton-**gebruiker** heeft een asymmetrische Gebruikerssleutel, en Proton **versleutelt** deze Gebruikerssleutel als volgt op uw **apparaat**:
- Accounts die een **enkel wachtwoord** gebruiken: Proton **versleutelt** de Gebruikerssleutel met een bcrypt-**hash** van het account**wachtwoord** en de account-**salt**.
- Accounts die onze **functie** voor meerdere accountwachtwoorden gebruiken: Proton **versleutelt** de Gebruikerssleutel met een bcrypt-**hash** van het sleutel**wachtwoord** en de account-**salt**.
Proton Authenticator gebruikt bcrypt en een account-**salt** om uw **wachtwoord** te **hashen** als een extra beschermingslaag tegen brute-force-aanvallen. Zelfs als een kwaadwillende actor **toegang** zou krijgen tot de Proton-database, zouden uw accountsleutels veilig zijn tegen brute-force-aanvallen.
Zodra u synchronisatie **inschakelt**, genereert Proton Authenticator een 32-byte willekeurige Authenticator-sleutel. Deze sleutel wordt **versleuteld** en ondertekend met uw Gebruikerssleutel, zodat alleen u deze kunt **ontsleutelen** — niemand (zelfs Proton niet) kan een nieuwe Authenticator-sleutel **lezen** of maken. Zodra u **toegang** hebt tot de Authenticator-sleutel, worden alle items in Proton Authenticator **versleuteld** met **256-bit AES-GCM**.

Omdat Proton Authenticator geen Proton Account vereist, hebben we ook een apart **versleutelings**schema nodig dat uw data veilig **opslaat** wanneer deze alleen op uw **apparaat** bestaat. Uiteindelijk is de eenvoudigste manier om dit te implementeren door het Proton Account te behandelen als een aparte sleutelprovider. Uiteindelijk ziet het er als volgt uit:

Voor de lokale sleutel**opslag** op uw **apparaat** vertrouwen we op de veilige sleutel**opslag**providers van elk systeem:
- Android: We slaan de sleutel veilig op in de Android Keystore(nieuw venster), die vervolgens wordt gebruikt om een Lokale Willekeurige Sleutel te **versleutelen** die we opslaan in het beschermde bestandssysteem van de **app**. Die sleutel wordt gebruikt om alle Proton Authenticator-items op uw **apparaat** symmetrisch te **versleutelen**.
- iOS/iPadOS/macOS: We genereren een Lokale Willekeurige Sleutel en slaan deze op in de Keychain-service(nieuw venster). Die sleutel wordt gebruikt om alle Proton Authenticator-items op uw **apparaat** symmetrisch te **versleutelen**.
- Windows: We genereren een Lokale Willekeurige Sleutel en slaan deze op in de Windows Credential Manager(nieuw venster). Die sleutel wordt gebruikt om alle Proton Authenticator-items op uw **apparaat** symmetrisch te **versleutelen**. Als de **verbinding** met WCM niet beschikbaar is, staan we de **gebruiker** toe zijn Lokale Willekeurige Sleutel te **versleutelen** met een **wachtwoord**.
- Linux: We genereren een Lokale Willekeurige Sleutel en slaan deze op in de beschikbare DBUS Secret Service. Die sleutel wordt gebruikt om alle Proton Authenticator-items op uw **apparaat** symmetrisch te **versleutelen**. Als er geen DBUS Secret Service is geconfigureerd, staan we de **gebruiker** toe zijn Lokale Willekeurige Sleutel te **versleutelen** met een **wachtwoord**.
Back-upversleuteling
Een van de belangrijkste sterke punten van Proton Authenticator is dat u altijd de controle over uw data hebt. Dit omvat de mogelijkheid om periodiek een **back-up** van uw **codes** te maken op uw lokale **apparaat** en een **wachtwoord** in te stellen dat deze gevoelige data **versleutelt**.
Om deze veilige lokale **back-up** te implementeren, gebruiken we het **wachtwoord** dat u hebt opgegeven om een veilige **encryptiesleutel** af te leiden met Argon2 als een KDF (Key-Derivation Function). Een KDF wordt gebruikt om cryptografische sleutels te genereren uit geheime **invoer**, zoals door de gebruiker ingevoerde **wachtwoorden**, en het hoofddoel is om de beveiliging te verbeteren door het moeilijker en tijdrovender te maken voor aanvallers om **wachtwoorden** te kraken. Met behulp van deze **encryptiesleutel** die uit uw **wachtwoord** is gegenereerd, serialiseren we al uw items en **versleutelen** we ze om ervoor te zorgen dat uw data veilig **versleuteld** blijft, zelfs als de **back-up** gelekt is. En door gebruik te maken van bekende en open technologieën, kunt u uw data **ontsleutelen** zonder Proton Authenticator te gebruiken, waardoor u de controle houdt, zelfs als u besluit over te stappen naar een andere **authenticatie-app**.
Beveiliging door transparantie
Net als alle Proton-diensten is Proton Authenticator **open source**. Iedereen kan onze bron**code** raadplegen om ons beveiligingsmodel te verifiëren. Net als bij onze andere diensten ondergaat Proton Authenticator regelmatig onafhankelijke beveiligingsaudits, en we zullen deze auditrapporten openbaar **delen** zodra ze beschikbaar zijn.
Ten slotte komt Proton Authenticator voor geïnteresseerde beveiligingsonderzoekers in aanmerking voor Proton’s **Bug Bounty-programma**, dat beloningen tot $ 100.000 biedt voor de ontdekking van **bugs** in Proton’s **software**.