aboutsummaryrefslogtreecommitdiffstats
path: root/src/content/docs/email/verify-inspect.md
blob: 18b5562ab93f94eeac69b005f5320e1a514f8609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
---
title: Verify and Inspect a Message
description: "Check a message you received in GpgFrontend: what each security badge means, whether you can open it, and what the Message Details window shows."
sidebar:
  label: Verify and Inspect
  order: 3
---

When you get a message, you want to know two things:

- **Can I trust it?** Did it really come from the sender, and was it changed on
  the way?
- **Can I read it?** If it is encrypted, do you have the key to open it?

This page shows where GpgFrontend answers these questions.

On a Mac, press Cmd where this page says Ctrl.

## Open the Message

Open the message in a mail tab. You can:

- open an `.eml` file, for example from the
  [File Panel](/guides/understand-interface/#file-panel), or
- fetch it from your mail server. See
  [Read Mail from Your Server](/email/reading-imap/).

## Read the Security Badge

At the right end of the action row there is a status button. We call it the
**badge**. It tells you, in a few words, what kind of message this is. Click it
to open the Security menu.

| Badge                                | What it means                                                                                                         |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| **Not signed or encrypted**          | An ordinary message. Nothing proves who sent it. This is normal for most email.                                       |
| **Encrypted**                        | The message is hidden. It has no signature.                                                                           |
| **Signature not checked**            | The message has a signature, but it has not been checked yet. This says nothing good or bad so far.                   |
| **Encrypted, signature not checked** | The same, for an encrypted message.                                                                                   |
| **Signature verified**               | The signature was checked and it is good. The message was not changed since it was signed.                            |
| **Encrypted, signature verified**    | The same, for an encrypted message.                                                                                   |
| **Signed by a different address**    | The signature is good, but the key belongs to a different address than the one in **From**. Be careful.               |
| **Signature or key expired**         | The signature matches, but the signature or the key has expired.                                                      |
| **Signed by an unknown key**         | You do not have the sender's public key, so the signature cannot be checked. Import their key, then check again.      |
| **Signature could not be checked**   | The check ran, but it could not give an answer. Trying again may help.                                                |
| **Signing key not authorized**       | The signature is correct, but the key that made it is not allowed to sign. Do not trust it.                           |
| **Bad signature**                    | The signature does not match the message, or the key was revoked. The message may have been changed. Do not trust it. |
| **Malformed OpenPGP structure**      | The message says it uses OpenPGP, but it is not built the right way. It may not verify or decrypt.                    |

### Check the Signature

A signature is not checked by itself when you open a message. To check it:

1. Click the badge.
2. Click **Verify Signature**.

For an encrypted and signed message, click **Decrypt and Verify** instead.

The badge changes to show the result. The details also appear in the **Status
Panel**.

## Can I Open This Encrypted Message?

When a message is encrypted, the body is hidden. In its place you see a panel
that says **This message is encrypted** (or **This message is encrypted and
signed**). Below it, GpgFrontend tells you what it knows:

- **Addressed to ...**: who the message was sent to, from its headers.
- Whether you hold the right private key. For example: "You hold the private
  key for alice@example.com, so this message can be opened here."
- If you do not: "This message is encrypted to keys you do not hold the private
  half of, so it cannot be opened on this computer."
- Sometimes it cannot tell. Some senders hide who the message is for. Then the
  only way to know is to try.

To open it, click **Decrypt** on the panel.

## The Message Details Window

The **Message Details** window shows everything GpgFrontend knows about a
message. To open it, do one of these:

- Click **More** > **Details...**.
- Press Ctrl+Shift+D.
- Click the badge, then a details item, such as **Signature Details...** or
  **Encryption Details...**.

The window has three tabs.

### Security

The top line says what the message is, for example **This message carries a
signature.** Below it are up to four groups:

- **Signatures**: each signature, who made it, and whether it is good. You also
  see the key **Fingerprint**, when it was signed (**Signed at**), and the hash
  method used.
- **Recipients**: for an encrypted message, who it was encrypted to.
- **Keys for these addresses**: for each address in the message, which keys
  you have for it and whether they are usable. **no key found** means you have
  no key for that address.
- **What stands out**: things worth knowing about this message. See the list
  below.

Right-click a row for more actions:

- **Copy Value**, **Copy Fingerprint**, **Copy Address**.
- **Import the Key in This Message**: when you have no key for an address, but
  the message carries one.
- **Verify Signatures** (or **Verify Again**): check the signatures now.

### Structure

An email is built from parts: the text, any attachments, and the signature.
This tab lists every part, with its **Name**, **Size** and **Encoding**.

The **Covered by** column says which signature protects each part. **not
covered** means that part is outside the signature. Anyone could have added or
changed it.

Right-click a part to **Save Part...**, **Import This Key** (if it is a key),
**Copy Content-Type**, **Copy Name** or **Copy SHA-256**.

### Headers

Headers are the lines at the top of an email, such as From, To, Date and
Subject. This tab lists all of them, with their **Name** and **Value**.

Type in **Filter headers** to show only the headers that contain some text.
Right-click a header to **Copy Value** or **Copy Whole Field**.

### Warnings in "What Stands Out"

These are the warnings you may see, in plain words:

- **Signed part no longer in canonical form**: a program changed the message
  after it was signed, usually the line endings. The signature may fail even
  though nobody meant harm.
- **Duplicate ... header**: a header that should appear once appears more than
  once. Different email apps may show different values.
- **Address may be disguised**: an address uses letters that can look like a
  different, familiar address. Check it closely.
- **Replies go somewhere else**: if you reply, your answer goes to a different
  domain than the sender's.
- **Malformed signed section** or **Malformed encrypted section**: the message
  is not built the right way.
- **Not everything is signed**: some parts are outside the signature. Anyone
  could have added them.
- **Signature covers the encrypted data only**: the signature shows who sent
  the encrypted block, not who wrote what is inside. Anyone can sign a copy of
  someone else's encrypted message.
- **Public key attached**: the message carries a public key. A key in a message
  proves nothing about who sent it. Anyone can make a key with any name.
- **Detached signature attached**: the message carries a signature file for
  something else. Opening the message does not check it.
- **Blind recipients are visible**: the message has a Bcc header, so every
  reader can see who got a secret copy.

## Check Before Exporting

When you save a message to an `.eml` file, GpgFrontend takes a last look at it.
If it finds a real risk, a **Check before exporting** window opens. It says:
"Something about this message is worth checking before you save it." and lists
what it found.

It can warn you about:

- **Bcc header present**: the message has a Bcc header. Sending it would tell
  every reader who got a secret copy.
- **Recipient may be disguised**: an address uses letters that can look like a
  different address. Check it before sending.

Smaller notes, such as **Some parts are not signed** or **No recipients**, are
under the details button in the same window.

You decide what to do:

- Click **Save** to save the file anyway.
- Click **Cancel** to go back and fix the message.

**Cancel** is the default, so pressing Enter does not save by accident.

## HTML Messages Are Shown as Source

Some messages are written in HTML, the language of web pages. GpgFrontend
never draws them as a web page. It shows the HTML code as plain text instead,
with this notice: "This message was written in HTML. It is shown as its source
rather than rendered: nothing here loads images or follows links."

This is safer:

- **No hidden tracking.** Images in an email can tell the sender when and where
  you opened it. Here, no images are loaded.
- **No surprise links.** Nothing opens a website on its own.
- **What you see is what is there.** HTML can hide text, or make one link look
  like another. As plain text, nothing is hidden.

## Messages Are Checked Again When Your Keys Change

A check result depends on the keys you have. So GpgFrontend checks open
messages again when:

- you import a key, for example the sender's public key, or
- you switch or reload your [key databases](/advanced/key-database/).

For example, a message that said **Signed by an unknown key** can turn into
**Signature verified** right after you import the sender's key.

:::note[New in v2.2.3]

Open messages are now checked again by themselves after your key databases are
reloaded.

:::