Tips and tools to help you protect your data and communications.
This playlist is designed to walk Mac users through a set of tips and tools that they can use to protect their online communications and help prevent snoopers from spying.
This playlist is designed to walk Mac users through a set of tips and tools that they can use to protect their online communications and help prevent snoopers from spying.
Trying to protect all your data from everyone all the time is impractical and exhausting. But, have no fear! Security is a process, and through thoughtful planning, you can put together a plan that’s right for you. Security isn’t just about the tools you use or the software you download. It begins with understanding the unique threats you face and how you can counter those threats.
In computer security, a threat is a potential event that could undermine your efforts to defend your data. You can counter the threats you face by determining what you need to protect and from whom you need to protect it. This is the process of security planning, often referred to as “threat modeling.”
This guide will teach you how to make a security plan for your digital information and how to determine what solutions are best for you.
What does a security plan look like? Let’s say you want to keep your house and possessions safe. Here are a few questions you might ask:
What do I have inside my home that is worth protecting?
Who do I want to protect it from?
How likely is it that I will need to protect it?
How bad are the consequences if I fail?
How much trouble am I willing to go through to prevent these consequences?
Once you have asked yourself these questions, you are in a position to assess what measures to take. If your possessions are valuable, but the probability of a break-in is low, then you may not want to invest too much money in a lock. But, if the probability of a break-in is high, you’ll want to get the best lock on the market, and consider adding a security system.
Making a security plan will help you to understand the threats that are unique to you and to evaluate your assets, your adversaries, and your adversaries’ capabilities, along with the likelihood of risks you face.
Security planning helps you to identify what could happen to the things you value and determine from whom you need to protect them. When building a security plan answer these five questions:
Let’s take a closer look at each of these questions.
An “asset” is something you value and want to protect. In the context of digital security, an asset is usually some kind of information. For example, your emails, contact lists, instant messages, location, and files are all possible assets. Your devices may also be assets.
Make a list of your assets: data that you keep, where it’s kept, who has access to it, and what stops others from accessing it.
To answer this question, it’s important to identify who might want to target you or your information. A person or entity that poses a threat to your assets is an “adversary.” Examples of potential adversaries are your boss, your former partner, your business competition, your government, or a hacker on a public network.
Make a list of your adversaries, or those who might want to get ahold of your assets. Your list may include individuals, a government agency, or corporations.
Depending on who your adversaries are, under some circumstances this list might be something you want to destroy after you’re done security planning.
There are many ways that an adversary could gain access to your data. For example, an adversary can read your private communications as they pass through the network, or they can delete or corrupt your data.
The motives of adversaries differ widely, as do their tactics. A government trying to prevent the spread of a video showing police violence may be content to simply delete or reduce the availability of that video. In contrast, a political opponent may wish to gain access to secret content and publish that content without you knowing.
Security planning involves understanding how bad the consequences could be if an adversary successfully gains access to one of your assets. To determine this, you should consider the capability of your adversary. For example, your mobile phone provider has access to all your phone records. A hacker on an open Wi-Fi network can access your unencrypted communications. Your government might have stronger capabilities.
Write down what your adversary might want to do with your private data.
Risk is the likelihood that a particular threat against a particular asset will actually occur. It goes hand-in-hand with capability. While your mobile phone provider has the capability to access all of your data, the risk of them posting your private data online to harm your reputation is low.
It is important to distinguish between what might happen and the probability it may happen. For instance, there is a threat that your building might collapse, but the risk of this happening is far greater in San Francisco (where earthquakes are common) than in Stockholm (where they are not).
Assessing risks is both a personal and a subjective process. Many people find certain threats unacceptable no matter the likelihood they will occur because the mere presence of the threat at any likelihood is not worth the cost. In other cases, people disregard high risks because they don’t view the threat as a problem.
Write down which threats you are going to take seriously, and which may be too rare or too harmless (or too difficult to combat) to worry about.
There is no perfect option for security. Not everyone has the same priorities, concerns, or access to resources. Your risk assessment will allow you to plan the right strategy for you, balancing convenience, cost, and privacy.
For example, an attorney representing a client in a national security case may be willing to go to greater lengths to protect communications about that case, such as using encrypted email, than a family member who regularly emails funny cat videos.
Write down what options you have available to you to help mitigate your unique threats. Note if you have any financial constraints, technical constraints, or social constraints.
Keep in mind your security plan can change as your situation changes. Thus, revisiting your security plan frequently is good practice.
Create your own security plan based on your own unique situation. Then mark your calendar for a date in the future. This will prompt you to review your plan and check back in to determine whether it’s still relevant to your situation.
Telecommunication networks and the Internet have made communicating with people easier than ever, but have also made surveillance more prevalent. Without taking extra steps to protect your privacy, every phone call, text message, email, instant message, video and audio chat, and social media message could be vulnerable to eavesdroppers.
Often the most privacy-protective way to communicate with others is in person, without computers or phones being involved at all. Because this isn’t always possible, the next best thing is to use end-to-end encryption.
End-to-end encryption ensures that information is turned into a secret message by its original sender (the first “end”), and decoded only by its final recipient (the second “end”). This means that no one can “listen in” and eavesdrop on your activity, including wifi cafe snoops, your Internet service provider, and even the website or app you are using itself. Somewhat counter-intuitively, just because you access messages in an app on your phone or information from a website on your computer does not mean that the app company or website platform itself can see them. This is a core characteristic of good encryption: even the people who design and deploy it cannot themselves break it.
All the tools that have guides on the SSD site use end-to-end encryption. You can use end-to-end encryption for any kind of communication — including voice and video calls, messaging and chat, and email.
(Not to be confused with end-to-end encryption is transport-layer encryption. While end-to-end encryption protects messages, for example, all the way from you to your recipient, transport-layer encryption only protects them as they travel from your device to the app’s servers and from the app’s servers to your recipient’s device. In the middle, your messaging service provider—or the website you are browsing, or the app you are using—can see unencrypted copies of your messages.)
Under the hood, end-to-end encryption works like this: When two people want to communicate via end-to-end encryption (for example, Akiko and Boris) they must each generate pieces of data, called keys. These keys can be used to turn data that anyone can read into data that can be only read by someone who has a matching key. Before Akiko sends a message to Boris, she encrypts it to Boris's key so that only Boris can decrypt it. Then she sends this encrypted message across the Internet. If anyone is eavesdropping on Akiko and Boris—even if they have access to the service that Akiko is using to send this message (such as her email account)—they will only see the encrypted data and will be unable to read the message. When Boris receives it, he must use his key to decrypt it into a readable message.
Some services, like Google Hangouts, advertise “encryption,” but use keys that are created and controlled by Google, not the sender and final receiver of the message. This is not end-to-end encryption. To be truly secure, only the “ends” of the conversation should have the keys that let them encrypt and decrypt. If the service you use controls the keys, that is transport layer-encryption instead.
End-to-end encryption means that users must keep their keys secret. It can also mean doing work to make sure the keys used to encrypt and decrypt belong to the right people. Using end-to-end encryption can involve some effort—from simply choosing to download an app that offers it to proactively verifying keys—but it's the best way for users to verify the security of their communications without having to trust the platform that they're both using.
Learn more about encryption in What Should I know About Encryption?, Key Concepts in Encryption, and Different Types of Encryption. We also explain one particular kind of end-to-end encryption—called “public key encryption”—in more detail in A Deep Dive on End-to-End Encryption.
When you make a call from a landline or a mobile phone, your call is not end-to-end encrypted. When you send a text message (also known as SMS) on a phone, the text is not encrypted at all. Both allow governments or anyone else with power over the phone company to read your messages or record your calls. If your risk assessment includes government interception, you may prefer to use encrypted alternatives that operate over the Internet. As a bonus, many of these encrypted alternatives also offer video.
Some examples of services or software that offer end-to-end encrypted texting and voice and video calls include:
Some examples of services that do not offer end-to-end encryption by default include:
And some services, like Facebook Messenger and Telegram, only offer end-to-end encryption if you deliberately turn it on. Others, like iMessage, only offer end-to-end encryption when both users are using a particular device (in the case of iMessage, both users need to be using an iPhone).
End-to-end encryption can defend you against surveillance by governments, hackers, and the messaging service itself. But all of those groups might be able to make secret changes in the software you use so that even if it claims to use end-to-end encryption, it is really sending your data unencrypted or with weakened encryption.
Many groups, including EFF, spend time watching well-known providers (like WhatsApp, which is owned by Facebook, or Signal) to make sure they really are providing the end-to-end encryption they promise. But if you are concerned about these risks, you can use tools that use publicly known and reviewed encryption techniques and are designed to be independent of the transport systems they use. OTR and PGP are two examples. These systems rely on user expertise to operate, are often less user-friendly, and are older protocols that don’t use all of the modern best encryption techniques.
Off-the-Record (OTR) is an end-to-end encryption protocol for real-time text conversations that can be used on top of a variety of instant messaging services. Some tools that incorporate OTR include:
PGP (or Pretty Good Privacy) is the standard for end-to-end encryption of email. For detailed instructions on how to install and use PGP encryption for your email, see:
PGP for email is best-suited for technically experienced users communicating with other technically experienced users who are well aware of PGP’s complexities and limitations.
End-to-end encryption only protects the content of your communication, not the fact that you are communicating in the first place. It does not protect your metadata, which includes, for example, the subject line of an email, who you are communicating with, and when. If you are making a call from a cell phone, information about your location is also metadata.
Metadata can provide extremely revealing information about you even when the content of your communication remains secret.
Metadata about your phone calls can give away some very intimate and sensitive information. For example:
End-to-end encryption is only one of many features that may be important to you in secure communication. As described above, end-to-end encryption is great for preventing companies and governments from accessing your messages. But for many people, companies and governments are not the biggest threat, and therefore end-to-end encryption might not be the biggest priority.
For example, if someone is worried about a spouse, parent, or employer with physical access to their device, the ability to send ephemeral, “disappearing” messages might be their deciding factor in choosing a messenger. Someone else might be worried about giving their phone number out, and so the ability to use a non-phone-number “alias” might be important.
More generally, security and privacy features are not the only variables that matter in choosing a secure communications method. An app with great security features is worthless if none of your friends and contacts use it, and the most popular and widely used apps can vary significantly by country and community. Poor quality of service or having to pay for an app can also make a messenger unsuitable for some people.
The more clearly you understand what you want and need out of a secure communication method, the easier it will be to navigate the wealth of extensive, conflicting, and sometimes outdated information available.
Read Key Concepts in Encryption first if encryption keys are unfamiliar to you.
When you communicate online using end-to-end encryption, each person you send a message to has their own unique public key. You use this key to encrypt messages to them, so that only they can decode them.
But how do you know which public key to use?
Suppose you get an email that claims to be from your friend Esra’a. The email includes a PGP public key file to secure future messages. Or, suppose someone claiming to be Esra’a sends you a chat request on an encrypted messenger application like WhatsApp, Signal, or Wire, along with a security code that you can use to encrypt future messages.
A text message on a smartphone that says it’s from your friend, Esra’a. She says “Hello!” and sends another message with a public key file (pubkey.asc), and the emojis for “sparkles” and “key.” |
These messages might not be from Esra’a at all!
Even though you are using what you think is Esra’a’s public key, you may be encrypting your messages using a key that came from a different person entirely—which means this fake Esra’a will be able to decode all your future messages.
To make sure you are using someone’s correct encryption key (and that others know that they are using the correct encryption key for you), it’s important to perform key verification.
Different secure messaging systems have different ways to verify keys, but all of them encourage you to check those keys outside of the messaging system itself. This is called out-of-band verification. So in our case, you should find some other way to check that online Esra’a is the same as real life Esra’a. You can do this by calling Esra’a on the phone, or meeting Esra’a in person to verify the public encryption key she sent you actually belongs to her.
Why use out-of-band verification?
An illustration of a video chat with Esra’a. You ask her to verify the new key she sent you on Signal. She looks worried and confused. |
Here are a few questions you might be asking yourself:
Question: Can’t I just ask online-Esra’a some security questions to prove it’s really her? For example, what if I asked: “If you’re the real Esra’a, what was I wearing the last time we met?”
Answer: The problem is that a fake Esra’a could be talking to the real Esra’a at the same time pretending to be you. Fake Esra’a could ask the real Esra’a the questions you ask, and immediately send you her real answers! This is called a “Man-in-the-middle” or “machine-in-the-middle” attack. It’s not common, but it does happen, and that’s why out-of-band verification is important for key verification.
Two people holding smartphones. The person on the left (the sender) sends their public key fingerprint by chat. Before the person on the right (the receiver) receives the message, a bad actor (the man-in-the-middle) intercepts the sender’s message, changes a few of the fingerprint characters and numbers, and sends a similar-looking public key fingerprint to the receiver. On the right is a view of the receiver's phone. The message appears to come from the original sender, but it’s actually the corrupted, fake message from the person in the middle. |
Question: What if I’m certain I’m talking to the right person? Do I still need to verify keys?
Answer: Let’s say you got your keys from a source you think is reliable (like a mutual friend). Even if you’re absolutely positive you are talking to the right person, it’s still wise to verify keys. The process can be reassuring and it shows that you are both take the security of your messages seriously.
Question: When should I verify keys?
Answer: You should verify keys when you use a new messaging tool to communicate, or when someone’s keys you communicate with change. Below are some reasons a person’s keys might change:
When you see someone use a new key for the first time, you should verify it.
So, how might we check these keys?
Encryption keys are very long sets of numbers, which makes them hard to read aloud and check manually. To make key verification easier, communication software can show you a “fingerprint” or “safety number,” based on the key, which is shorter and easier to check. Fingerprints can be a smaller number, a set of common words, or even a graphic or image.
To verify keys your contact will most likely read or show you the fingerprint of their key, while you check it against the fingerprint of the key you have for them on your device. After you’ve verified your contact’s key, they can verify your key by asking you to read or show them your key fingerprint as they check it against the copy on their device. Once you both know you have the right keys, you can communicate more securely.
There are several ways to verify keys out-of-band. Here are the most common methods:
Verifying keys in person is the most ideal method. This is because it is easier to confirm someone is who they say they are when you’re face-to-face with them than, say, when you’re chatting with them by text, email, or social media chat (where impersonation and phishing attempts are easier).
In person, you have your public key fingerprint available and your friend double-checks that every single character from your public key fingerprint matches what they have for your public key fingerprint. It’s a little tedious, but it’s really worth doing. The in-person method might happen when people exchange business cards with their public key fingerprints, or when colleagues see each other at a meeting.
Each end-to-end encrypted messaging app is different and some provide alternative ways to check key fingerprints. Currently, there is no universal term for what the practice is called and how it is implemented. For one app you might have to read each character of the fingerprint and ensure it matches what you see on your screen versus your friend’s screen. In another, you might scan a QR code on another person’s phone in order to “verify” their key.
Let’s imagine that An Ming meets her friend, Ghassan, at an event. They decide that it’s best to communicate with each other using an end-to-end encryption app on their smartphones so they install Signal or WhatsApp. While An Ming and Ghassan are physically close in proximity of each other, they take advantage of these apps’ key verification capabilities.
Two people hold up their smartphones with QR codes and a string of random letters and numbers visible on their screens. They verify each other’s key fingerprints by scanning the other person’s QR code with their phone cameras. Locks and green checkmarks float above their phones. |
If you can’t verify keys in person, you can contact your friend using a different way of communication—a way other than the one you’re using to verify keys.
For example, if you’re trying to verify PGP keys with someone, you could use the telephone or an OTR chat to do so. Try to verify keys over a medium that is more secure than the one you’re ultimately trying to secure (e.g. through another encrypted communication ). Why? Because it would be difficult for an adversary to intercept your messages from all these different mediums simultaneously.
Let’s say that An Ming and Ghassan decide to also use PGP. An Ming sends Ghassan her PGP public key fingerprint through another medium—like Signal—making sure that each character matches her public key fingerprint. Ghassan would then cross-check that every character of An Ming’s public key fingerprint match the public key he has on file for An Ming.
A laptop open, with a PGP public key and 10 block fingerprint of four random letters and numbers in each block. It is paired with a happy face. On the right, a second method of encrypted communication: a phone open to the Signal encrypted messaging app, shown with that same happy face and the same character and number set for the 10 block fingerprint. |
Regardless of the app that you use, you will always be able to locate both your key and the key of your communication partner.
Although locating your key can vary by app, the key verification methods remain approximately the same. You can either read your key’s fingerprint aloud (if you are face-to-face or using the telephone) or you can copy and paste it into a communications program, but whichever you choose, it is important that you check every single letter and number.
Lastly, many of these end-to-end encryption apps indicate if the keys change. As we previously mentioned, it’s important to be on the lookout for when your friends’ keys change—be sure to verify that this is an expected change with them. You can do so in person or over another medium. For example, some people send their friends a message when they are about to get a new phone so that their friends are not startled by a new key notification.
Verify keys with one of your friends. To learn how to verify keys in a specific app, visit that app’s how-to guide.
Out-of-band key verification can be hard to organize, especially if you have lots of contacts. While it’s always a good idea, some tools can help give you strong hints that you’re using the right key.
PGP allows you to sign other people’s keys, which means that you officially vouch that this key really belongs to the person it says it is from. PGP users can meet each other at key-signing parties, where they check each other’s identities, and then sign their keys. Your PGP software can decide whether to trust a key based on how many people have signed it—and whether you already trust those signers. This network of PGP users, all verifying and vouching for each other, is called “the web of trust.” The web of trust helps you assess the validity of new keys, but it’s like getting a recommendation from a friend: it doesn’t beat checking out the person yourself.
Thanks to the web of trust, PGP also lets you download keys for new contacts from the PGP keyservers. Your software can upload your key, tied to your email address to a keyserver. Then any PGP users can ask the keyservers for the right key for a particular email address.
There’s nothing stopping bad actors from uploading wrong keys for an email address or identity to the keyservers—indeed, this has happened in the past—but if a key is signed as valid by a lot of people you know, it is more likely to be real. Again, if you get a key from a keyserver, it’s best to verify it directly with the user, or in person, as soon as possible.
A bad actor might create and upload a key whose fingerprint is almost, but not quite, the same as the real keys to the keyservers. This is why you should check every digit of a fingerprint carefully!
Some services, like Keybase.io, let users confirm the validity of a key by letting their users prove their identities using social media. These services demonstrate that the person who uses a certain key is also the person who runs a certain Twitter account or Facebook account. Once again, it helps make the case that a key is the right one to use, but verify in person or directly to be absolutely sure!
For more information about public keys and how key verification works, check out our Surveillance Self-Defense guides on Key Concepts in Encryption, and A Deep Dive on End-to-End Encryption.
NOTE: This guide is not being actively reviewed or updated, and is currently retired. If you would like to use Adium or another form of OTR messaging for macOS, please refer to those services’ websites and documentation for information on how to install and use them.
Adium is a free and open source instant messaging client for OS X that allows you to chat with individuals across multiple chat protocols, including Google Hangouts, Yahoo! Messenger, Windows Live Messenger, AIM, ICQ, and XMPP.
OTR (Off-the-record) is a protocol that allows people to have confidential conversations using the messaging tools they’re already familiar with. This should not be confused with Google's “Off the record,” which merely disables chat logging, and does not have encryption or verification capabilities. For Mac users, OTR comes built-in with the Adium client.
OTR employs end-to-end encryption. This means that you can use it to have conversations over services like Google Hangouts without those companies ever having access to the contents of the conversations. However, the fact that you are having a conversation is visible to the provider.
When you have a chat conversation using Google Hangouts on the Google website, that chat is encrypted using HTTPS, which means the content of your chat is protected from hackers and other third parties while it’s in transit. It is not, however, protected from Google, which have the keys to your conversations and can hand them over to authorities or use them for marketing purposes.
After you have installed Adium, you can sign in to it using multiple accounts at the same time. For example, you could use Google Hangouts and XMPP simultaneously. Adium also allows you to chat using these tools without OTR. Since OTR only works if both people are using it, this means that even if the other person does not have it installed, you can still chat with them using Adium.
Adium also allows you to do out-of-band verification to make sure that you’re talking to the person you think you’re talking to and you are not being subject to a man-in-the-middle attack. For every conversation, there is an option that will show you the key fingerprints it has for you and the person with whom you are chatting. A "key fingerprint" is a string of characters like "342e 2309 bd20 0912 ff10 6c63 2192 1928,” that’s used to verify a longer public key. Exchange your fingerprints through another communications channel, such as Twitter DM or email, to make sure that no one is interfering with your conversation. If the keys don't match, you can't be sure you're talking to the right person. In practice, people often use multiple keys, or lose and have to recreate new keys, so don't be surprised if you have to re-check your keys with your friends occasionally.
Technologists have a term to describe when a program or technology might be vulnerable to external attack: they say it has a large “attack surface.” Adium has a large attack surface. It is a complex program, which has not been written with security as a top priority. It almost certainly has bugs, some of which might be used by governments or even big companies to break into computers that are using it. Using Adium to encrypt your conversations is a great defense against the kind of untargeted dragnet surveillance that is used to spy on everyone's Internet conversations, but if you think you will be personally targeted by a well-resourced attacker (like a nation-state), you should consider stronger precautions, such as PGP-encrypted email.
First, go to https://adium.im/ in your browser. Choose “Download Adium 1.5.9.” The file will download as a .dmg, or disk image, and will probably be saved to your “downloads” folder.
Double-click on the file; that will open up a window that looks like this:
Move the Adium icon into the “Applications” folder to install the program. Once the program is installed, look for it in your Applications folder and double-click to open it.
First, you will need to decide what chat tools or protocols you want to use with Adium. The setup process is similar, but not identical, for each type of tool. You will need to know your account name for each tool or protocol, as well as your password for each account.
To set up an account, go to the Adium menu at the top of your screen and click “Adium” and then “Preferences.” This will open a window with another menu at the top. Select “Accounts,” then click the “+” sign at the bottom of the window. You will see a menu that looks like this:
Select the program that you wish to sign in to. From here, you will be prompted either to enter your username and password, or to use Adium’s authorization tool to sign in to your account. Follow Adium’s instructions carefully.
Once you have signed in to one or more of your accounts, you can start using OTR.
Remember: In order to have a conversation using OTR, both people need to be using a chat program that supports OTR.
First, identify someone who is using OTR, and initiate a conversation with them in Adium by double-clicking on their name. Once you have opened the chat window, you will see a small, open lock in the upper left-hand corner of the chat window. Click on the lock and select “Initiate Encrypted OTR Chat.”
Once you have initiated the chat and the other person has accepted the invitation, you will see the lock icon close; this is how you know that your chat is now encrypted (congratulations!) – But wait, there’s still another step!
At this time, you have initiated an unverified, encrypted chat. This means that while your communications are encrypted, you have not yet determined and verified the identity of the person you are chatting with. Unless you are in the same room and can see each other’s screens, it is important that you verify each other’s identities. For more information, read the module on Key Verification.
To verify another user’s identity using Adium, click again on the lock, and select “Verify.” You will be shown a window that displays both your key and the key of the other user. Some versions of Adium only support manual fingerprint verification. This means that, using some method, you and the person with whom you’re chatting will need to check to make sure that the keys that you are being shown by Adium match precisely.
The easiest way to do this is to read them aloud to one another in person, but that’s not always possible. There are different ways to accomplish this with varying degrees of trustworthiness. For example, you can read your keys aloud to one another on the phone if you recognize each other’s voices or send them using another verified method of communication such as PGP. Some people publicize their key on their website, Twitter account, or business card.
The most important thing is that you verify that every single letter and digit matches perfectly.
Now that you have initiated an encrypted chat and verified your chat partner’s identity, there’s one more thing you need to do. Unfortunately, Adium logs your OTR-encrypted chats by default, saving them to your hard drive. This means that, despite the fact that they’re encrypted, they are being saved in plain text on your hard drive.
To disable logging, click “Adium” in the menu at the top of your screen, then “Preferences.” In the new window, select “General” and then disable “Log messages” and “Log OTR-secured chats.” Remember, though, that you do not have control over the person with whom you are chatting—she could be logging or taking screenshots of your conversation, even if you yourself have disabled logging.
Your settings should now look like this:
Also, when Adium displays notifications of new messages, the contents of those messages may be logged by the OS X Notification Center. This means that while Adium leaves no trace of your communications on your own computer or your correspondent's, either your or their computer's version of OS X may preserve a record. To prevent this, you may want to disable notifications.
To do this, select "Events" in the Preferences window, and look for any entries that say "Display a notification." For each entry, expand it by clicking the gray triangle, and then click the newly-exposed line that say "Display a notification," then click the minus icon ("-") at the lower left to remove that line." If you are worried about records left on your computer, you should also turn on full-disk encryption, which will help protect this data from being obtained by a third party without your password.
Pretty Good Privacy (PGP) is a way to help protect your email communications from being read by anyone except their intended recipients. And, to a lesser extent, it can save your emails from being read if the computer on which they are stored is stolen or broken into.
It can also be used to prove that an email came from a particular person, instead of being a fake message sent by another sender (it is otherwise very easy for email to be fabricated). Both of these are important defenses if you're being targeted for surveillance or misinformation.
To use PGP, you will need to install some extra software that will work with your current email program. You will also need to create a private key, which you will keep private. The private key is what you will use to decrypt emails sent to you, and to digitally sign emails that you send to show they truly came from you. Finally, you'll learn how to distribute your public key—a small chunk of information that others will need to know before they can send you encrypted mail, and that they can use to verify emails you send.
You can get GnuPG (also known as GPG) on Mac OS X by downloading the small installer from the GnuPG download page
Click on GnuPG for OS X next to “Simple installer for GnuPG modern” which will download the GPG installer.
You’ll get redirected to the SourceForge download website.
Go to the Mozilla Thunderbird website
Click on the green button labeled “Free Download.” The Mozilla Thunderbird website will have detected your preferred language. If you want to use Thunderbird in another language click on the “Systems & Languages” link and make your selection from there.
Click the Download icon in the Dock and then click the GnuPG-2.11-002.dmg file.
A window will open, indicating your progress.
A window will open, giving you an overview of the Installation file and some other files. Click the “Install.pkg” icon.
Next, a window will open starting the guided installation. Click the “Continue” button.
GnuPG is installed as a system package and requires your username and password to install. Enter your password and click “Install Software.”
You will see a window that will say “The installation was successful.” Click the “Close” button.
Click the Download icon in the Dock and then click the Thunderbird 45.2.0.dmg file.
A window will open indicating your progress.
A window will open with the Thunderbird icon and a link to your Applications folder. Drag Thunderbird to the Applications folder.
A window with a progress bar will open, when it is done, it will close.
Make sure to eject the mounted DMG files.
When Mozilla Thunderbird launches for the first time, Mac OS X will ask you if you are sure you want to open it. Mozilla Thunderbird was downloaded from mozilla.org and should be safe, click the “Open” button.
Mozilla Thunderbird can integrate with the Mac OS X address book, we leave this choice to you.
When Mozilla Thunderbird launches for the first time, you will see this small confirmation window asking about some default settings. We recommend clicking the “Set as Default” button.
When Mozilla Thunderbird launches for the first time, you will be asked whether you would like a new email address. Click the “Skip this and use my existing email” button. Now you will configure Mozilla Thunderbird to be able to receive and send email. If you are used to only reading and sending email through gmail.com, outlook.com, or yahoo.com, Mozilla Thunderbird will be a new experience, but it isn't that different overall.
A new window will open:
Enter your name, your email address, and the password to your email account. Mozilla doesn't have access to your password or your email account. Click the “Continue” button.
In many cases Mozilla Thunderbird will automatically detect the necessary settings.
In some cases Mozilla Thunderbird doesn't have complete information and you'll need to enter it yourself. Here is an example of the instructions Google provides for Gmail:
If you use two-factor authentication with Google (and depending on your threat model you probably should!) you cannot use your standard Gmail password with Thunderbird. Instead, you will need to create a new application-specific password for Thunderbird to access your Gmail account. See Google's own guide for doing this.
When all the information is entered correctly, click the “Done” button.
Mozilla Thunderbird will start downloading copies of your email to your computer. Try sending a test email to your friends.
Enigmail is installed in a different way from Mozilla Thunderbird and GnuPG. As mentioned before, Enigmail is an Add-on for Mozilla Thunderbird. Click the “Menu button,” also called the Hamburger button and select “Add Ons.”
You'll be taken to an Add-ons Manager tab. Enter "Enigmail" into the Add-on search field to look for Enigmail on the Mozilla Add-on site.
Enigmail will be the first option. Click the "Install" button.
After the Enigmail add-on is installed Mozilla Thunderbird will ask to restart the browser to activate Enigmail. Click the “Restart Now” button and Mozilla Thunderbird will restart.
When Mozilla Thunderbird restarts an additional window will open up that will start the process of setting up the Enigmail add-on. Keep the “Start setup now” button selected and click the “Continue” button.
In May 2018 researchers revealed several vulnerabilities in PGP (including GPG) for email, and theorized many more which others could build upon.
Thunderbird and Enigmail’s developers have been working on ways to protect against the EFAIL vulnerabilities. As of version 2.0.6 (released May 27, 2018), Enigmail has released patches that defend against all known exploits described in the EFAIL paper, along with some new ones in the same class that other researchers were able to devise, which beat earlier Enigmail fixes. Each new fix made it a little harder for an attacker to get through Enigmail’s defenses. We feel confident that, if you update to this version of Enigmail (and keep updating!), Thunderbird users can turn their PGP back on.
But, while Enigmail now defends against most known attacks even with HTML on, the EFAIL vulnerability demonstrated just how dangerous HTML in email is for security. Thus, we recommend that Enigmail users also turn off HTML by going to View > Message Body As > Plain Text.
1. First click on the Thunderbird hamburger menu (the three horizontal lines).
2. Select “View” from the right side of the menu that appears.
3. Select “Message Body As” from the menu that appears, then select the “Plain Text” radio option.
Viewing all email in plaintext can be hard, and not just because many services send only HTML emails. Turning off HTML mail can pose some usability problems, such as some attachments failing to show up. Thunderbird users shouldn't have to make this trade-off between usability and security, so we hope that Thunderbird will take a closer look at supporting their plaintext community from now on. As the software is now, however, users will need to decide for themselves whether to take the risk of using HTML mail; the most vulnerable users should probably not take that risk, but the right choice for your community is a judgment call based on your situation.
Now you will start creating your private key and public key. Learn more about keys, and what they are, in our Introduction to Public Key Cryptography and PGP guide.
Unless you have already configured more than one email account, Enigmail will choose the email account you've already configured. The first thing you'll need to do is come up with a strong passphrase for your private key.
Click the "Continue" button.
Your key will expire at a certain time; when that happens, other people will stop using it entirely for new emails to you, though you might not get any warning or explanation about why. So, you may want to mark your calendar and pay attention to this issue a month or so before the expiration date.
It's possible to extend the lifetime of an existing key by giving it a new, later expiration date, or it's possible to replace it with a new key by creating a fresh one from scratch. Both processes might require contacting people who email you and making sure that they get the updated key; current software isn't very good at automating this. So make a reminder for yourself; if you don't think you'll be able to manage it, you can consider setting the key so that it never expires, though in that case other people might try to use it when contacting you far in the future even if you no longer have the private key or no longer use PGP.
To check your key's expiration date in Thunderbird, click the Enigmail menu and select "Key Management." Search for your key in the Enigmail Key Management window and double click on it. A new window will open and your key's expiration date will be displayed in the field called "Expiry." To set a new expiration date, click the "Change" button next to your key's current expiration date. Remember to send your updated public key to your contacts or publish it to a keyserver if you update your key's expiration date.
Enigmail will generate the key and when it is complete, a small window will open asking you to generate a revocation certificate. This revocation certificate is important to have as it allows you to make the private key and public key invalid in the event you lose your private key or it gets stolen. For this reason, store your revocation certificate separately from your private key; burn it to a CD or put it on a USB drive and keep it somewhere safe. Publishing the revocation certificate to a keyserver will let other PGP users know not to use or trust that public key. It is important to note that merely deleting the private key does not invalidate the public key and may lead others to sending you encrypted mail that you can't decrypt. Click the “Generate Certificate” button.
First you will be asked to provide the passphrase you used when you created the PGP key. Click the “OK” button.
A window will open to provide you a place to save the revocation certificate. While you can save the file to your computer we recommend saving the file to a USB drive that you are using for nothing else and storing the drive in a safe space. We also recommend removing the revocation certificate from the computer with the keys, just to avoid unintentional revocation. Even better, save this file on an encrypted disk. Choose the location where you are saving this file and click the “Save” button.
Now Enigmail will give you further information about saving the revocation certificate file again. Click the “OK” button.
Finally, you are done with generating the private key and public key. Click the “Done” button.
The next steps are completely optional but they can be helpful when using OpenPGP and Enigmail. Briefly, the Key ID is a small part of the fingerprint. When it comes to verifying that a public key belongs to a particular person the fingerprint is the best way. Changing the default display makes it easier to read the fingerprints of the certificates you know about. Click the configuration button, then the Enigmail option, then Key Management.
A window will open showing two columns: Name and Key ID.
On the far right there is a small button. Click that button to configure the columns. Unclick the Key ID option and click the Fingerprint option and the Key Validity option.
Now there will be three columns: Name, Key Validity, and Fingerprint.
You might get a public key sent to you as an email attachment. Click on the "Import Key" button.
A small window will open asking you to confirm importing the PGP key. Click the "Yes" button.
A new window will open with the results of the import. Click the “OK” button.
If you reload the original email you’ll see that the bar over the email has changed.
If you open up the Enigmail key management window again, you can check the result. Your PGP key is in bold because you have both the private key and the public key. The public key you just imported is not bold because it doesn't contain the private key.
It's possible that you get a public key by downloading it from a website or someone might have sent it through chat software. In a case like this, we will assume you downloaded the file to the Downloads folder.
Open the Enigmail Key Manager.
Click on the “File” menu. Select “Import Keys from File.”
Select the public key, it might have very different file name endings such as .asc, .pgp, or .gpg. Click the “Open” button.
A small window will open asking you to confirm importing the PGP key. Click the “Yes” button.
A new window will open with the results of the import. Click the “OK” button.
It's possible to get a public key by downloading it directly from a URL
Open the Enigmail Key Manager and click on the “Edit” menu. Select “Import Keys from URL.”
Enter the URL. The URL can have several forms. Most often it is likely a domain name ending in a file.
Once you have the right URL, click the “OK” button.
A small window will open asking you to confirm importing the PGP key. Click the "Yes" button.
A new window will open with the results of the import. Click the "OK" button.
If you look at https://www.eff.org/about/staff you will notice a “PGP Key” link under the staff pictures. Danny O'Brien's PGP key, for example, can be found at: https://www.eff.org/files/pubkeydanny.txt.
Keyservers can be a very useful way of getting public key. Try looking for a public key.
From the Key Management interface click the “Keyserver” menu and select “Search for Keys.”
A small window will pop up with a search field. You can search by a complete email address, a partial email address, or a name. In this case, you will search for keys containing “samir@samirnassar.com”. Click the “OK” button.
A larger window will pop up with many options. If you scroll down you'll notice some keys are italicized and grayed out. These are keys that have either been revoked or expired on their own.
We have several PGP keys for Samir Nassar and we don’t yet know which one to choose. One key is in grey italics which means that it has been revoked. Because we don’t know which one we want yet, we will import them all. Select the keys by clicking the box on the left then press the “OK” button.
A small notification window will pop up letting you know if you succeeded. Click the “OK” button.
The Enigmail Key Manager will now show you the added keys:
Note that of the three imported keys, one is expired, one is revoked, and one is currently a valid key.
Now that you have PGP, you want to let others know that you are using it so they can also send you encrypted messages using PGP.
Using PGP doesn't completely encrypt your email: the sender and receiver information is unencrypted. Encrypting the sender and receiver information would break email. Using Thunderbird with the Enigmail add-on gives you an easy way to encrypt and decrypt the content of your email.
Let's look at three different ways you can let people know you are using PGP.
You can easily email your public key to another person by sending them a copy as an attachment.
Click the "Write" button in Mozilla Thunderbird.
Fill in an address and a subject, perhaps something my “my public key,” click the “Attach My Public Key” button. If you have already imported a PGP key for the person you are sending the PGP key to, the Lock icon in the Enigmail bar will be highlighted. As an additional option, you can also click the Pencil icon to sign the email, giving the recipient a way to verify the authenticity of the email later.
A window will pop open asking you if you forgot to add an attachment. This is a bug in the interaction between Enigmail and Mozilla Thunderbird, but don’t worry, your public key will be attached. Click the “No, Send Now” button.
In addition to letting people know via email, you can post your public key on your website. The easiest way is to upload the file and link to it. This guide won't go into how to do those things, but you should know how to export the key as a file to use in the future.
Click the configuration button, then the Enigmail option, then Key Management.
Highlight the key in bold, then right-click to bring up the menu and select Export keys to file.
A small window will pop up with three buttons. Click the “Export Public Keys Only” button.
Now a window will open so you can save the file. In order to make it easier to find in the future please save the file to the Documents folder. Now you can use this file as you wish.
Make sure you don't click the “Export Secret Keys” button because exporting the secret key could allow others to impersonate you if they are able to guess your password.
Keyservers make it easier to search for and download public keys of others. Most modern keyservers are synchronizing, meaning that a public key uploaded to one server will eventually reach all servers.
Although uploading your public key to a keyserver might be a convenient way of letting people know that you have a public PGP certificate, you should know that due to the nature of how keyservers work there is no way to delete public keys once they are uploaded.
Before uploading your public key to a keyserver, it is good to take a moment to consider whether you want the whole world to know that you have a public certificate without the ability to remove this information at a later time.
If you choose to upload your public key to keyservers, you will go back to the Enigmail Key Management window.
Right-click your PGP key and select the Upload Public Keys to Keyserver option.
Now you will send your first encrypted email to a recipient.
In the main Mozilla Thunderbird window click the “Write” button. A new window will open.
Write your message, and enter a recipient. For this test, select a recipient whose public key you already have. Enigmail will detect this and automatically encrypt the email.
The subject line won't be encrypted, so choose something innocuous, like "hello."
The body of the email was encrypted and transformed. For example the text above will be transformed into something like this:
Let's go through what happens when you receive encrypted email.
Notice that Mozilla Thunderbird is letting you know you have new mail. Click on the message.
A small window opens asking you for the password to the PGP key. Remember: Don't enter your email password. Click the "OK" button.
Now the message will show up decrypted.
The PGP keys generated by Enigmail automatically expire after five years. So if you lose all your files, you can hope that people will know to ask you for another key once the key has expired.
You might have a good reason to disable the PGP key before it expires. Perhaps you want to generate a new, stronger PGP key. The easiest way to revoke your own PGP key in Enigmail is through the Enigmail Key Manager.
Right click on your PGP key, it's in bold, and select the "Revoke Key" option.
A window will pop up letting you know what happens and asking for your confirmation. Click the “Revoke Key” button.
The password window opens, enter your password for the PGP key and click to "OK" button.
Now a new window will open up letting you know you succeeded. Click the “OK” button.
When you go back to the Enigmail Key Management window you'll notice a change to your PGP key. It is now grayed out and italicized.
Like we mentioned before, you might have a good reason to disable the PGP key before it expires. Similarly, others might have good reasons to revoke an existing key. In the previous section you might have noticed that Enigmail generates and imports a revocation certificate internally when you use the Enigmail Key Manager to revoke a key.
You might get sent revocation certificates from friends as a notice that they want to revoke their key. Since you already have a revocation certificate, you will use the one you generated earlier to revoke your own key.
Start with the Enigmail Key Manager and click the “File” menu and select “Import Keys from File.”
A window will open up so you can select the revocation certificate. Click on the file, and click the “Open” button.
You'll get a notification that the certificate was imported successfully and that a key was revoked. Click the “OK” button.
When you go back to the Enigmail Key Management window you'll notice a change to your PGP key. It is now grayed out and italicized.
Now that you have all the proper tools, try sending your own PGP-encrypted email.
KeePassXC works with password databases, which are files that store a list of all your passwords. These databases are encrypted when they are stored on your computer’s hard disk. So, if your computer is off and someone steals it, they will not be able to read your passwords.
Password databases can be encrypted using a master password. Since your master password protects all your other passwords, you should make it as strong as possible.
A master password acts like a key—in order to open the password database, you need the correct master password. Without it, nobody can see what’s inside the password database. When using a master password to secure your password database, here are a couple of things to keep in mind:
You can create a strong master passphrase using regular, random words. These are easier to remember than unnatural combinations of symbols and capital letters. See our password guide for more details on creating a strong password.
Install KeePassXC and launch it. Click on the Database menu and select “New Database.” You will be prompted to save your password database. Note that you can move the password database file later to wherever you like on your hard disk, or move it to other computers—you will still be able to open it using KeePassXC and the password, or keyfile, you specified before.
What's a keyfile? Using a keyfile in addition to your master password can make it harder for someone to decrypt your password database if they steal a copy. You can use any existing file as a keyfile—an image of your cat for example, could be used as a keyfile. You’ll just need to make sure the file you choose never gets modified, because if its contents are changed then it will no longer decrypt your password database. Sometimes opening a file in another program can be enough to modify it so don't open the file except to unlock KeePassXC. (It is safe to move or rename the keyfile, though.) Usually a strong master password is plenty on its own. If you choose to use a keyfile in addition to your master password, make sure to store it separately from your password database.
Next, you will be asked to enter a master password and/or use a keyfile. Select the appropriate checkbox(es) based on your choice.
If you want to see the password you’re typing in (instead of obscuring it with dots), click the button with the eye to the right.
KeePassXC allows you to organize passwords into “Groups,” which are basically just folders. You can create, delete, or edit Groups or Subgroups by going to the “Groups” menu in the menubar, or by right-clicking on a Group in the left-hand pane of the KeePassXC window. Grouping passwords doesn’t affect any of the functionality of KeePassXC—it’s just a handy organizational tool.
To create a new password or store a password you already have, click on the Group in which you want to store the password, right-click in the right pane, and choose “Add New Entry.” (You can also choose “Entries > Add New Entry” from the menu bar.) For basic password usage:
If you need to change/edit the stored password, you can just choose its Group and then double-click on its title in the right-hand pane, and the “Edit Entry” dialog will pop up.
To use an entry in your password database, right-click on the entry and choose “Copy username” or “Copy password.” Go to the window/website where you want to enter your username/password, and paste it in the appropriate field. (Instead of right-clicking on the entry, you can also double-click on the username or password of the entry you want, and the username or password will be automatically copied to your clipboard.)
KeePassXC allows you to:
sort your entries by clicking on the column header in the main window.
“lock” KeePassXC by choosing “Tools > Lock Databases.” This allows you to leave KeePassXC open, but have it ask for your master password (and/or keyfile) before you can access your password database again. You can also have KeePassXC automatically lock itself after a certain period of inactivity. This can prevent someone from accessing your passwords if you step away from your computer or lose it. To enable this feature on macOS, choose “Preferences > Settings” from the menu and click on the security options. Then check the box that says “Lock database after inactivity of [number] seconds.” For Linux or Windows, choose “Tools > Settings” from the menu and click on the security options. Then check the box that says “Lock database after inactivity of [number] seconds."
KeePassXC can also store more than just usernames and passwords. For example, you can create entries to store important things like account numbers, product keys, airline frequent flyer information, or serial numbers. There’s no requirement that the data you put in the “Password” field actually has to be a password. Just input what you want to store in the “Password” field instead of an actual password (and leave the “Username” field blank if there’s no username) and KeePassXC will safely and securely remember it for you.
These instructions are from https://keepassxc.org/docs/keepassxc-browser-migration/, accessed on April 30, 2018.
A browser extension is a software component that adds additional features to your web browser. Using the KeePassXC browser extension provides a convenient way for your browser and your KeePassXC application to communicate. This will allow you to quickly save or auto-fill passwords on the web.
Starting with version 2.3, KeePassXC offers a new browser plugin called KeePassXC-Browser. It is compatible with Google Chrome, Chromium, Firefox and Vivaldi and available in the Chrome Web Store and the Mozilla Add-ons repository.
The new add-on replaces the old KeePassHTTP add-ons (KeePassHttp-Connector, chromeIPass, PassIFox etc.) and support for those will be removed in future KeePassXC versions.
After installing KeePassXC-Browser and KeePassXC, you must first start KeePassXC and tweak some settings that are not enabled by default.
1. Enable browser integration
Go to the KeePassXC settings and enable browser integration support under Browser Integration / Enable KeePassXC Browser Integration. Without this, the browser extension cannot communicate with KeePassXC:
If enabled, the old KeePassHTTP interface can be disabled by unticking the checkbox Legacy Browser Integration / Enable KeePassHTTP server. Any installed corresponding browser add-on (KeePassHttp-Connector etc.) can be uninstalled.
2. Enable browser support
To allow your browser to access KeePassXC, you need to tell it where to find the KeePassXC program file. Luckily, KeePassXC does this automatically for you. All you need to do is tick the checkbox under Enable integration for these browsers for any browser you want to use KeePassXC with.
3. Connect to the database
Open KeePassXC and unlock your database (this is important, the following steps won’t work if your database is locked or KeePassXC isn’t running).
Switch to your browser and click the KeePassXC icon next to your address bar. A popup appears telling you that KeePassXC-Browser has not been configured (if you see a different error message, click Refresh and wait a few seconds).
Press the Connect button. A window appears asking you to enter a name and grant access:
Enter a name of your choice (ideally one that identifies your browser) and click Save and allow access. Your browser is now connected to KeePassXC.
Using Autofill can be bad for your privacy. To disable it, uncheck the settings “Automatically fill-in single credentials entry” and “Activate autocomplete for username fields.”
You're all done! Now you can save any credentials you enter on the web. You will also be able to automatically fill in your usernames/passwords.
KeePassXC is easy-to-use, robust software, and we recommend exploring the program to learn all of the useful things it can do.