all-in-one privacy solution":["Proton Unlimited ist eine All-in-One-Datenschutzlösung"],"Black Friday":["Black Friday"],"No ads. Privacy by default.":["Keine Werbung. Privatsphäre als Standard."],"People before profits":["Menschen sind uns wichtiger als Gewinne"],"Security through transparency":["Sicherheit durch Transparenz"],"The best Proton Mail ${ BLACK_FRIDAY } deals":["Die besten Proton Mail-Angebote zum ${ BLACK_FRIDAY }"],"The world’s only community- supported email service":["Der weltweit einzige von der Community unterstützte E-Mail-Dienst"]},"specialoffer:limited":{"${ hours } hour":["${ hours } Stunde","${ hours } Stunden"],"${ hoursLeft }, ${ minutesLeft } and ${ secondsLeft } left":["Nur noch ${ hoursLeft }, ${ minutesLeft } und ${ secondsLeft }"],"${ minutes } minute":["${ minutes } Minute","${ minutes } Minuten"],"${ seconds } second":["${ seconds } Sekunde","${ seconds } Sekunden"],"Limited time offer":["Zeitlich befristetes Angebot"]},"specialoffer:listitem":{"Create multiple addresses":["Erstelle mehrere Adressen"],"Hide-my-email aliases":["Hide-my-email-Aliase"],"Quickly unsubscribe from newsletters":["Newsletter schnell abbestellen"],"Use your own domain name":["Verwende deine eigene Domain"]},"specialoffer:logos":{"As featured in":["Vorgestellt in"]},"specialoffer:metadescription":{"Get an encrypted email that protects your privacy":["Nutze einen verschlüsselte E-Mail-Dienst, der deine Privatsphäre schützt"]},"specialoffer:metatitle":{"Proton Mail Black Friday Sale - Up to 40% off":["Proton Mail Black Friday-Angebot – Bis zu 40 % Rabatt"]},"specialoffer:newmetadescription":{"Get up to 40% off Proton Mail subscriptions this Black Friday. Find great deals on our secure end-to-end encrypted email plans.":["Erhalte an diesem Black Friday bis zu 40 % Rabatt auf Proton Mail-Abonnements. Mache tolle Schnäppchen bei unseren sicheren, Ende-zu-Ende-verschlüsselten E-Mail-Abonnements."]},"specialoffer:newmetatitle":{"Proton Mail Black Friday sale | Up to 40% off secure email":["Proton Mail-Black-Friday-Angebot | Bis zu 40 % Rabatt auf sichere E-Mails"]},"specialoffer:note":{"* Billed at ${ TOTAL_SUM } for the first year":["* Zum Preis von ${ TOTAL_SUM } im ersten Jahr"],"*Billed at ${ TOTAL_SUM } for the first 2 years":["*Zum Preis von ${ TOTAL_SUM } in den ersten zwei Jahren"],"30-day money-back guarantee":["30-tägige Geld-zurück-Garantie"],"Billed at ${ TOTAL_SUM } for the first 2 years":["Zum Preis von ${ TOTAL_SUM } in den ersten zwei Jahren"],"Billed at ${ TOTAL_SUM } for the first year":["Zum Preis von ${ TOTAL_SUM } im ersten Jahr"],"You save ${ SAVE_SUM }":["Du sparst ${ SAVE_SUM }"]},"specialoffer:off":{"${ DISCOUNT } off":["− ${ DISCOUNT }"],"${ PERCENT_OFF } off":["− ${ PERCENT_OFF }"]},"specialoffer:testimonial":{"I love my ProtonMail":["Ich liebe mein ProtonMail"],"My favorite email service":["Mein Lieblings-E-Mail-Dienst"],"Thanks Proton for keeping us all safe in the complicated internet universe.":["Danke Proton, dass du uns alle im komplizierten Internet-Universum beschützt."],"You get what you pay for. In the case of big tech, if you pay nothing, you get used. I quit using Gmail and switched to @ProtonMail":["Du bekommst, wofür du bezahlst. Wenn du nichts bezahlst, wirst du bei der Nutzung von Big Tech ausgenutzt. Ich habe Gmail aufgegeben und bin zu @ProtonMail gewechselt"]},"specialoffer:time":{"Days":["Tage"],"Hours":["Stunden"],"Min":["Min."]},"specialoffer:title":{"And much more":["Und vieles mehr"],"Make your inbox yours":["Übernimm volle Kontrolle über deinen Posteingang"],"Safe from trackers":["Sicher vor Trackern"],"Stay organized":["Sorge für Ordnung"],"Black Friday email deals":["E-Mail-Angebote zum Black Friday"],"Don’t just take our word for it":["Verlasse dich nicht nur auf unser Wort"],"Our story":["Unsere Geschichte"],"Transfer your data from Google in one click":["Übertrage deine Daten von Google mit einem Klick"]},"specialoffer:tooltip":{"Access blocked content and browse privately. Includes ${ TOTAL_SERVERS }+ servers in ${ TOTAL_COUNTRIES }+ countries, connect up to 10 devices, access worldwide streaming services, malware and ad-blocker, and more.":["Greife auf blockierte Inhalte zu und surfe privat. Umfasst ${ TOTAL_SERVERS } Server in über ${ TOTAL_COUNTRIES } Ländern, die Verbindung \nvon bis zu 10 Geräten, weltweite Streaming-Dienste, Malware- und Werbeblocker und mehr."],"Easily share your calendar with your family, friends or colleagues, and view external calendars.":["Teile deinen Kalender ganz einfach mit Verwandten, Freunden oder Kollegen und rufe externe Kalender auf."],"Includes support for 1 custom email domain, 10 email addresses, 10 hide-my-email aliases, calendar sharing, and more.":["Beinhaltet Unterstützung für eine eigene E-Mail-Domain, 10 E-Mail-Adressen, 10 „hide-my-email“-Aliasse, Kalenderfreigabe und mehr."],"Includes support for 3 custom email domains, 15 email addresses, unlimited hide-my-email aliases, calendar sharing, and more.":["Beinhaltet Unterstützung für 3 benutzerdefinierte E-Mail-Domänen, 15 E-Mail-Adressen, unbegrenzte „hide-my-email“-Aliase, Kalenderfreigabe und mehr."],"Manage up to 25 calendars, mobile apps, secured with end-to-end encryption, 1-click calendar import from Google, and more.":["Verwalte bis zu 25 Kalender, Ende zu Ende verschlüsselte mobile Apps, 1-Klick-Kalenderimporte von Google und vieles mehr."]},"Status Banner":{"At the moment we are experiencing issues with the Proton VPN service":["Im Moment gibt es Probleme mit dem Proton VPN-Dienst"],"Learn more":["Mehr erfahren"]},"Status banner":{"Learn more":["Mehr erfahren"],"Please note that at the moment we are experiencing issues with the ${ issues[0] } service.":["Bitte beachte, dass wir im Moment Probleme mit dem Dienst ${ issues[0] } haben."],"We are experiencing issues with one or more services at the moment.":["Im Moment gibt es Probleme mit einem oder mehreren Diensten."]},"suggestions":{"Suggestions":["Vorschläge"]},"Support":{"Sub category":["Unterkategorie","Unterkategorien"]},"Support article":{"${ readingTime } min":["${ readingTime } Min.","${ readingTime } Min."],"Category":["Kategorie","Kategorien"],"Didn’t find what you were looking for?":["Hast du nicht gefunden, wonach du gesucht hast?"],"General contact":["Allgemeiner Kontakt"],"Get help":["Hilfe erhalten"],"Legal contact":["Kontakt für Rechtliches"],"Media contact":["Kontakt für Medien"],"Partnerships contact":["Kontakt für Partnerschaften"],"Reading":["Lesen"]},"Support categories":{"Browse Proton product support":["Produkt-Support von Proton durchsuchen"]},"Support category":{"There is no article in this category yet.":["In dieser Kategorie gibt es noch keinen Artikel."]},"Support troubleshooting":{"--- Select ---":["--- Auswählen ---"],"Adding and importing contacts":["Hinzufügen und Importieren von Kontakten"],"App version":["App-Version"],"Automatically save contacts":["Kontakte automatisch speichern"],"Bridge connection issues with Outlook, Apple Mail or Thunderbird":["Bridge-Verbindungsprobleme mit Outlook, Apple Mail oder Thunderbird"],"Browser":["Browser"],"Check if this helps":["Schau, ob das hilft."],"Choose a category for your question":["Wähle eine Kategorie für deine Frage aus."],"Connectivity errors on Android and iOS":["Verbindungsfehler bei Android und iOS"],"Contacts":["Kontakte"],"Custom domain":["Eigene Domain"],"Desktop notifications":["Desktop-Benachrichtigungen"],"Did this solve your issue ?":["Hat dies dein Problem gelöst?"],"Difference between Combined Addresses Mode and Split Addresses Mode":["Unterschied zwischen kombiniertem Adressmodus und geteiltem Adressmodus"],"Differences between addresses, aliases, and sub-users":["Unterschiede zwischen Adressen, Aliassen und Unterbenutzern"],"Email notifications":["E-Mail-Benachrichtigungen"],"Email tracking protection":["E-Mail-Verfolgungsschutz"],"Encryption":["Verschlüsselung"],"Encryption keys management":["Verwaltung von Verschlüsselungsschlüsseln"],"Faster assistance is just a few clicks away — please make your selections":["Schnellere Hilfe ist nur ein paar Klicks entfernt. Bitte triff deine Auswahl"],"How to avoid receiving spam messages":["Wie vermeidet man Spam-Nachrichten?"],"How to block unwanted email":["Wie blockiert man unerwünschte E-Mails?"],"How to configure your email client for Bridge":["Wie konfigurierst du deinen E-Mail-Client für Bridge?"],"How to create contact groups":["Wie erstellt man Kontaktgruppen?"],"How to create or edit CSV contacts":["Wie erstellt oder bearbeitet man CSV-Kontakte?"],"How to install Proton Mail Bridge":["Wie installiert man Proton Mail Bridge?"],"How to merge duplicate contacts":["Wie führt man doppelte Kontakte zusammen?"],"How to send encrypted messages to external users":["Wie sendet man verschlüsselte Nachrichten an externe Benutzer?"],"How to set up a custom domain":["Wie richtet man eine eigene Domain ein?"],"How to unsubscribe from Apple’s TestFlight notification emails":["Wie meldet man sich von den TestFlight-E-Mail-Benachrichtigungen von Apple ab?"],"How to use auto-reply":["Wie verwendet man automatisches Antworten?"],"How to use filters":["Wie verwendet man Filter?"],"How to use folders and labels":["Wie verwendet man Ordner und Kategorien?"],"How to use PGP encryption":["Wie verwendet man PGP-Verschlüsselung?"],"Invalid password error while setting email client for Bridge":["Fehler wegen falschen Passworts beim Festlegen des E-Mail-Clients für Bridge"],"Login security notification alerts":["Benachrichtigungen zur Anmeldesicherheit"],"Manage mailbox appearance":["Postfach-Erscheinungsbild verwalten"],"Mobile connectivity and synchronization":["Mobile Verbindungen und Synchronisierung"],"No, contact support":["Nein, Support kontaktieren"],"Notifications":["Benachrichtigungen"],"Other":["Weitere"],"Problems with deleting messages":["Probleme beim Löschen von Nachrichten"],"Problems with moving messages":["Probleme beim Verschieben von Nachrichten"],"Problems with read/unread message status":["Probleme mit dem Nachrichtenstatus gelesen/ungelesen"],"Proton Mail Bridge":["Proton Mail Bridge"],"Proton Mail settings":["Einstellungen für Proton Mail"],"Push notifications not arriving":["Keine Push-Benachrichtigungen erhalten"],"Sending and receiving messages":["Senden und Empfangen von Nachrichten"],"Sending and receiving messages limitations":["Einschränkungen für das Senden und Empfangen von Nachrichten"],"Sending and receiving troubleshooting":["Fehlerbehebung beim Senden und Empfangen"],"Spam filtering, Allow and Block lists":["Spam-Filterung, Freigabe- und Sperrlisten"],"Sub-users and organizations":["Unterbenutzer und Organisationen"],"Thank you for your feedback":["Danke für dein Feedback"],"Troubleshooting":["Fehlerbehebung"],"Verify custom domain records & anti-spoofing":["Eigene Domain-Einträge verifizieren und Anti-Spoofing"],"What can we help with ?":["Wie können wir dir helfen?"],"What if your domain records fail (TXT, MX, SPF, DKIM, DMARC)":["Was, wenn deine Domain-Einträge (TXT, MX, SPF, DKIM, DMARC) fehlschlagen?"],"What is encrypted on Proton Mail":["Was wird bei Proton Mail verschlüsselt?"],"Yes":["Ja"]},"support_modal_search_query":{"How to use a custom domain?":["Wie verwendet man eine eigene Domain?"],"Search query":["Anfrage suchen"]},"support_modal_search_result":{"Search result":["Ergebnis der Suche"]},"support_modal_title":{"Blog search":["Blog-Suche"],"Support search":["Support-Suche"]},"support_search_button":{"Search":["Suchen"]},"support_search_i_am_looking_for":{"I'm looking for":["Ich suche"]},"SupportForm":{"For a faster resolution, please report the issue from the Bridge app: Help > Report a problem.":["Damit das Problem schneller gelöst werden kann, melde es bitte über die Bridge-App: Help > Report a problem (Hilfe > Problem melden)."],"Information":["Informationen"]},"SupportForm:option":{"Account Security":["Kontosicherheit"],"Contacts":["Kontakte"],"Custom email domain":["Benutzerdefinierte E-Mail-Domain"],"Email delivery and Spam":["E-Mail-Zustellung und Spam"],"Encryption":["Verschlüsselung"],"Login and password":["Anmeldung und Passwort"],"Merge aliases and accounts":["Zusammenführung von Aliassen und Konten"],"Migrate to Proton":["Migration zu Proton"],"Notifications":["Benachrichtigungen"],"Other":["Sonstiges"],"Plans and billing":["Abonnements und Abrechnung"],"Proton for Business":["Proton for Business"],"Sign up":["Registrierung"],"Storage":["Speicher"],"Users, addresses, and identities":["Benutzer, Adressen und Identitäten"]},"SupportForm:optionIntro":{"Select a topic":["Thema auswählen"]},"swiss_baseed_feature":{"Swiss based":["In der Schweiz ansässig"]},"Testimonial":{"Awards":["Auszeichnungen"],"Customers":["Kunden"],"Featured":["Empfohlen"],"Go to testimonial source":["Zur Referenzquelle wechseln"],"Reviews":["Bewertungen"],"Videos":["Videos"]},"Text":{"Find the plan that's right for you":["Finde das passende Abonnement"],"If you need help, check out our ${ supportLink }.":["Hilfe erhältst du in unserem ${ supportLink }."],"The page you’re looking for might have been removed, or it could be an\nold link.":["Die von dir gesuchte Seite wurde möglicherweise entfernt, oder es könnte sich um einen alten Link handeln."]},"Tooltip":{"More information":["Weitere Informationen"]},"tooltip_calendar":{"Create up to 20 custom & shareable encrypted calendars. On top of that, add up to 5 calendars from friends, family, colleagues, and organizations.":["Erstelle bis zu 20 benutzerdefinierte und teilbare verschlüsselte Kalender. Darüber hinaus kannst du bis zu 5 Kalender von Freunden, Familie, Kollegen und Organisationen hinzufügen."]},"tooltip_vpn":{"Access blocked content and browse privately. Includes ${ TOTAL_SERVERS }+ servers in ${ TOTAL_COUNTRIES }+ countries, highest VPN speed, ${ TOTAL_VPN_CONNECTIONS } VPN connections, worldwide streaming services, malware and ad-blocker, and more.":["Greife auf blockierte Inhalte zu und surfe privat. Enthält über ${ TOTAL_SERVERS } Server in mehr als ${ TOTAL_COUNTRIES } Ländern, höchste VPN-Geschwindigkeiten, ${ TOTAL_VPN_CONNECTIONS } VPN-Verbindungen, weltweite Streaming-Dienste, Malware- und Werbeblocker und mehr."],"Access blocked content and browse privately. Includes ${ TOTAL_SERVERS }+ servers in ${ TOTAL_COUNTRIES }+ countries, highest VPN speed, 10 VPN connections, worldwide streaming services, malware and ad-blocker, and more.":["Greife auf blockierte Inhalte zu und surfe privat. Enthält über ${ TOTAL_SERVERS } Server in mehr als ${ TOTAL_COUNTRIES } Ländern, höchste VPN-Geschwindigkeiten, 10 VPN-Verbindungen, weltweite Streaming-Dienste, Malware- und Werbeblocker und mehr."]},"version_history_label":{"Version history":["Versionsverlauf"]},"version_history_tooltip":{"Store up to ${ versionHistoryNumber } versions of each file for up to ${ years } years":["Speichere bis zu ${ versionHistoryNumber } Versionen jeder Datei für einen Zeitraum von bis zu ${ years } Jahren"]},"VideoModal":{"Get started in 2 minutes":["In zwei Minuten loslegen"]},"videosButtonLabel":{"Get started with videos":["Mit Videos loslegen"]},"vpn_features_link":{"View VPN plans":["VPN-Abonnements anzeigen"]},"vpn_features_useCase":{"Access blocked content and browse privately":["Greife auf blockierte Inhalte zu und surfe privat"]}}},"unleashApi":"https://account.proton.me/api"};
// We need to import data (the framework context) from the server
// This Astro feature with define:vars works well but creates an inline script
// So we can't directly import the initFramework helper, we have to store the context
window.frameworkContext = frameworkContext;
})();
Introducing Gluon, a high-performance IMAP library | Proton
As the world’s largest encrypted email provider, working with IMAP (Internet Message Access Protocol) is something that we do on a daily basis. IMAP is core to the Proton Mail Bridge app, which lets you add Proton Mail encryption to standard email clients, such as Outlook, Thunderbird, or Apple Mail.
But IMAP goes beyond Proton Mail. It is one of two standard email retrieval protocols (the other being POP) that nearly every email app uses to access and manage your emails. So, in essence, it powers email globally.
Today, we’re introducing Gluon(new window), a new IMAP library written in the Go programming language designed to be high-performance, reliable, developer-friendly, and, most importantly, open-source.
Together with the launch of Gluon, we are also releasing a new version of the Proton Mail Bridge that is powered by Gluon. As a result of the innovations below, the new Proton Mail Bridge is 1000% faster, far more reliable, and also compatible with more email clients.
Why create a new IMAP library?
Email needs to be reliable, but it also needs to be high-performance, particularly as the typical inbox size has grown significantly over the past decade. Many open-source IMAP implementations tend to optimize for one and not the other, leading to pretty significant trade-offs or bugs.
Gluon seeks to bridge that gap and overcome the limitations in existing open-source IMAP libraries, which are often poorly maintained, or not entirely scalable. Gluon does this by utilizing an architecture that relies upon a “snapshot” system.
IMAP clients typically refer to messages by their “sequence number”, the message’s position in a mailbox. The first message has the sequence number “1”, the second “2”, and so on. If a client wants to mark a message as “read”, it will send a command to the server such as “mark message 5 as read”. But what if another client deleted the fourth message in the mailbox? The sequence numbers of all messages after the deleted message will be shifted down by one; the client that sent the “mark message 5 as read” command now refers to a different message than it intended.
IMAP servers (which include applications such as the Proton Mail Bridge) need to be able to handle this situation. When one client moves messages into or out of a mailbox, the server needs to notify all other clients of the changes so that they can update their own view of the mailbox. And until the clients have received the update, the server needs to remember what each client thinks the mailbox looks like to correctly interpret the client’s commands.
In the previous example, the server needs to know that the client that sent the “mark message 5 as read” command, is referring to the message that was originally in position 5, not the message that is currently in position 5.
This type of scenario can occur more frequently in modern email usage, where the user might be using Proton Mail on web on one device, using the mobile apps on the go, and then using a desktop client via Proton Mail Bridge on a desktop, all of which may not be online at the same time.
Another scenario is email apps that often utilize multiple simultaneous connections to your mailbox to speed things up, but this can then result in concurrency issues. By using a snapshot system, Gluon assigns each IMAP client its own “snapshot” of the selected mailbox. Each snapshot holds the client’s unique view of the mailbox, allowing the server to interpret exactly which message the client is referring to at any point in time, regardless of what actions have been performed by other clients. This guarantees a stable and consistent email experience for the user.
How we wrote Gluon
Our first step in writing Gluon was to generate an IMAP parser from the syntax given in RFC3501(new window). We used ANTLR4(new window), a popular parser generator, to create a parser that could parse IMAP commands and responses according to the specification. This allowed us to focus on implementing the logic of the IMAP protocol rather than parsing and validating input.
Once we had a parser, we wrote the basic server type for Gluon. The server type waits for incoming TCP connections and spawns an “IMAP session” running in a separate goroutine (a lightweight, green thread used in the Go programming language) to handle each connection.
The session has a simple job:
Read a client’s command.
Parse the command.
Call the right command handler.
Finally, send any necessary response(s) to the client.
This design also allows Gluon to handle multiple client connections concurrently, with each session managing its own state.
One of the key challenges in implementing an IMAP server is managing both the persistent states and per-session states of mailboxes. The persistent state refers to the messages that are actually in a selected mailbox while the per-session state refers to the messages each client thinks are currently in a selected mailbox.
In Gluon, we use an SQL database to store the persistent IMAP state, such as which mailboxes and messages a user has. Furthermore, the SQL database allows for faster and more efficient handling of commands thanks to intelligent pre-fetching and indexing.
Managing the per-session state was more complicated, as it depends entirely on which IMAP responses have been sent to a client at a given point in time. To model this, we defined a type that holds a list of message IDs, UIDs, and flags in memory. This list is populated from the database when a client first selects a mailbox. This approach allows us to efficiently manage the per-session state and handle many IMAP commands entirely in memory without requiring disk reads, leading to much faster performance.
To synchronize the per-session state between multiple connected clients, Gluon uses a system of “responders”. These are types that encapsulate a change of state and, when executed, are converted into IMAP responses. When a client performs an action (such as marking a message as read) that would change the state of another client, the backend creates a responder for the action and pushes it to the affected state. The affected state remains unchanged until the responder is executed, at which point it is updated, and a corresponding IMAP response is sent to the client. This approach allows Gluon to efficiently manage the per-session state while ensuring consistency across multiple clients.
While building up Gluon’s support for each IMAP command, we used test-driven development. We created a testing framework that allowed us to specify what an entire IMAP session should look like, specifying client commands and expected server responses.
We first wrote a test for each IMAP command (often copied directly from RFC3501) and then implemented the command handling to make the test pass. Furthermore, to ensure Gluon’s correctness and reliability, we used Dovecot(new window), the world’s most popular IMAP server, as a reference implementation, and we performed correctness testing using Dovecot’s own testing tool, imaptest(new window).
The last step was to integrate Gluon into the Proton Mail Bridge. We designed Gluon so that integrating it into any application would be as simple as implementing its “Connector” interface. The Connector keeps the Gluon and external states (the Proton state) in sync.
For example, when an IMAP client marks a message as read, the connector marks that same message as read on the Proton server. When the Proton server receives a message, the connector downloads and decrypts that message and puts it in the right Gluon mailbox.
This extensible design makes it possible to use Gluon with almost any application that requires IMAP.
Privacy without compromising performance
Earlier this year, we put the new version 3 of Proton Mail Bridge (powered by Gluon) into beta testing, and the user feedback was in line with our own performance testing which indicates a 1000% speed improvement. We hope that by releasing Gluon as open-source software, we can enable a new generation of modern email software better able to handle the demands of contemporary email users.
As an open-source company, we welcome others to use, review and contribute to the code, and as with other other open-source projects that Proton maintains(new window), we are committed to maintaining this library over the long term.
Our mission is to make privacy accessible and widely available online, and a better Proton Mail Bridge powered by Gluon that makes end-to-end encrypted email available on any desktop email application is an important step towards achieving that goal.
This work was conducted by James Houlahan, Leander Beernaert, Jakub Cúth, Xavier Michelon, Romain Le Jeune, Gjorgji Slamkov, Alexander Khusanov, Gabor Meszaros and Andrzej Szafranski from the Proton Mail team.
Protecting a folder with a password is a simple yet effective way of securing
files. You may wonder whether you can password-protect a folder in Google Drive.
We explain what access controls Google Drive offers and what you can do to
improve your sec
We’re excited to announce that Proton Pass supports passkeys for everyone,
allowing you to manage and use passkeys across all devices seamlessly. Passkeys
are an easy and secure alternative to traditional passwords that can help
prevent phishing atta
Passkeys are a new way to secure your online accounts using cryptographic keys
instead of passwords. They offer a high level of convenience and security, and
are a real game-changer in the way we access and secure sites. What is a
passkey, though, an
Apple’s marketing team has built a powerful association between the iPhone and
privacy. The company’s ad campaigns claim that “what happens on your iPhone,
stays on your iPhone.” And, “Privacy. That’s iPhone.”
But Apple’s lawyers are telling a diffe
A cyberattack on national public employment service France Travail has exposed
the personal data of as many as 43 million people.
The latest breach is the second major cybersecurity attack to happen in France
in the past month, raising concerns abo
Google Drive makes it easy to share files and folders, but you may have wondered
at some point whether the people you’ve shared a folder with can see your other
folders. We answer this question below and also share some tips for truly secure
link sha
In 2014, Proton Mail was introduced as a web app, revolutionizing how we think
about email privacy.
Today, we’re excited to broaden the horizons of secure communication by
launching the Proton Mail desktop app. Anyone can now use the new Proton Mail