KMail/PGP MIME: Difference between revisions
m (fix formating issue) |
(update content to 2019 :D) |
||
Line 3: | Line 3: | ||
==Setting up Signed Messages using GPG in Kmail== <!--T:1--> | ==Setting up Signed Messages using GPG in Kmail== <!--T:1--> | ||
by Fajar Priyanto, 2004 | by Fajar Priyanto, 2004 (last update 2019) | ||
===Creating, backing-up, and publishing your key=== <!--T:2--> | ===Creating, backing-up, and publishing your key=== <!--T:2--> | ||
Line 21: | Line 21: | ||
<!--T:6--> | <!--T:6--> | ||
{{Output|1= | {{Output|1=pub rsa2048 2004-03-15 [SC] | ||
D9C687FBA8DB7AB93E06E737931BC29844664E2D | |||
uid [ultimate] Fajar Priyanto <mail@example.com> | |||
sub rsa4096 2004-03-15 [E]}} | |||
<!--T:7--> | <!--T:7--> | ||
4 | 4. Now, in order to export your public key: | ||
{{Input|1= | {{Input|1=gpg --armor --output fajar-pub.key --export [email protected]}} | ||
<!--T:8--> | <!--T:8--> | ||
Line 35: | Line 36: | ||
If you look inside the file, it will be like this: | If you look inside the file, it will be like this: | ||
{{Output|1=-- --BEGIN PGP PUBLIC KEY BLOCK-- --<!--}}--> | {{Output|1=-- --BEGIN PGP PUBLIC KEY BLOCK-- --<!--}}--> | ||
<!--T:11--> | <!--T:11--> | ||
Line 49: | Line 47: | ||
<!--T:14--> | <!--T:14--> | ||
= | =RIZC | ||
<!--T:15--> | <!--T:15--> | ||
Line 59: | Line 57: | ||
<!--T:17--> | <!--T:17--> | ||
{{Input|1= $ gpg - | {{Input|1= $ gpg --armor --output secret.asc --export-secret-keys [email protected]}} | ||
<!--T:18--> | <!--T:18--> | ||
Line 66: | Line 64: | ||
<!--T:19--> | <!--T:19--> | ||
Finally, it is advisable to generate a revocation certificate and store it in a safe place away from your secret key. In case your secret key gets into the wrong hands, you can revoke it so it can not easily be abused by others. The command to do this is | Finally, it is advisable to generate a revocation certificate and store it in a safe place away from your secret key. In case your secret key gets into the wrong hands, you can revoke it so it can not easily be abused by others. The command to do this is | ||
{{Input|1=$ gpg - | {{Input|1=$ gpg --armor --output revoker.asc --gen-revoke [email protected]}} | ||
<!--T:20--> | <!--T:20--> | ||
This will create a textfile with the name '''revoker.asc''' containing the revocation certificate. | This will create a textfile with the name '''revoker.asc''' containing the revocation certificate. | ||
===Setting up Kmail to sign emails using your gpg key === <!--T:21--> | ===Setting up Kmail to sign emails using your gpg key === <!--T:21--> | ||
<!--T:22--> | <!--T:22--> | ||
# Fire up '''Kmail''', and go to <menuchoice>Settings -> Configure KMail -> Identities </menuchoice> | # Fire up '''Kmail''', and go to <menuchoice>Settings -> Configure KMail -> Accounts -> Identities </menuchoice> | ||
# Choose the identity that you are using | # Choose the identity that you are using | ||
# Then click <menuchoice>Modify -> Cryptography -> OpenPGP signing key</menuchoice> | # Then click <menuchoice>Modify -> Cryptography -> OpenPGP signing key</menuchoice> | ||
# It will automatically show your | # It will automatically show your gpg key, that is 'Your Name <[email protected]>'' | ||
# If it will not, click <menuchoice> | # If it will not, click <menuchoice>No key</menuchoice>, and choose your key | ||
# Now, set up '''Kmail''' to automatically sign all emails that you write using your key | # Now, set up '''Kmail''' to automatically sign all emails that you write using your key | ||
# Still in the '''Kmail''' Configure menu, go to <menuchoice>Security -> Composing</menuchoice> | # Still in the Cryptography tab, tick <menuchoice>Automatically sign messages</menuchoice> | ||
# In the '''Kmail''' Configure menu, go to <menuchoice>Security -> Composing</menuchoice> | |||
# Tick mark these: | # Tick mark these: | ||
##Store sent messages encrypted, | ##Store sent messages encrypted, | ||
##Always show the encryption key for approval, | ##Always show the encryption key for approval, | ||
# Exit the configuration menu by clicking <menuchoice>OK</menuchoice>. | # Exit the configuration menu by clicking <menuchoice>OK</menuchoice>. | ||
Line 91: | Line 88: | ||
===Testing Kmail by creating a new message === <!--T:23--> | ===Testing Kmail by creating a new message === <!--T:23--> | ||
# You will notice that there is a Sign Message banner. It's already active. | |||
[[File:Kmail_gpg_sign_banner.png|400px|center]] | |||
<!--T:24--> | <!--T:24--> | ||
# Write your message and when you are done, send it. | # Write your message and when you are done, send it. | ||
# '''Kmail''' will ask for you to type the secret passphrase that you made during the ''gpg --gen-key'' step. Type it in, and then '''Kmail''' will show you a confirmation window of the signed message. Click <menuchoice>OK</menuchoice> to send it. | # '''Kmail''' will ask for you to type the secret passphrase that you made during the ''gpg --gen-key'' step. Type it in, and then '''Kmail''' will show you a confirmation window of the signed message. Click <menuchoice>OK</menuchoice> to send it. | ||
Line 112: | Line 113: | ||
<!--T:29--> | <!--T:29--> | ||
* '''KMail''' no longer does in-line signatures. | * '''KMail''' no longer does in-line signatures. GnuPG has to be used instead. [[Special:myLanguage/KGpg|KGPG]] is a useful application that helps in the management of signatures, both your own and those collected. | ||
<!--T:31--> | <!--T:31--> | ||
{{Note|1=To be sure the "passphrase agent" (gpg-agent) is enabled, check your ''~/.gnupg/gpg.conf'' and eventually uncomment the line containing "use-agent". <br /> | {{Note|1=To be sure the "passphrase agent" (gpg-agent) is enabled, check your ''~/.gnupg/gpg.conf'' and eventually uncomment the line containing "use-agent". <br /> | ||
In '''KMail's''' <menuchoice>Settings -> Configure KMail -> Security tab -> | In '''KMail's''' <menuchoice>Settings -> Configure KMail -> Security tab -> Miscellaneous</menuchoice>, select <menuchoice>GnuPG Settings</menuchoice>, then <menuchoice>Configure</menuchoice>. On the GPG Agent page, give a path to which logs can be written (<menuchoice>Write server mode logs to FILE</menuchoice>), in case of problems. You can check the log in''' KMail's''' <menuchoice>Tools -> Filter Log Viewer</menuchoice>. It's probably a good idea, too, to increase the cache time - I use 3600. }} | ||
<!--T:32--> | <!--T:32--> | ||
Line 125: | Line 123: | ||
<!--T:33--> | <!--T:33--> | ||
* If you do not have it already, in ''~/. | * If you do not have it already, in ''~/.config/plasma-workspace'' create a directory called ''env''. In there, create a file called ''gpgagent.sh'' containing | ||
<!--T:34--> | <!--T:34--> | ||
Line 138: | Line 136: | ||
<!--T:36--> | <!--T:36--> | ||
In the same way you would clean up gpg-agent on shutdown, so if you do not have it already, create another directory called ''shutdown'' into ''~/. | In the same way you would clean up gpg-agent on shutdown, so if you do not have it already, create another directory called ''shutdown'' into ''~/.config/plasma-workspace'' and create in it another script file called ''stop_gpgagent.sh'' containing | ||
<!--T:37--> | <!--T:37--> | ||
Line 149: | Line 147: | ||
Save it and make it executable. | Save it and make it executable. | ||
===Troubleshooting Tips === <!--T:39--> | ===Troubleshooting Tips === <!--T:39--> | ||
<!--T:40--> | <!--T:40--> | ||
{{Input|1=ps -edalf {{!}} grep gpg-agent }}will list any running instances of gpg-agent. | {{Input|1=ps -edalf {{!}} grep gpg-agent }} will list any running instances of gpg-agent. | ||
<!--T:41--> | <!--T:41--> | ||
{{Input|1=killall gpg-agent}}stops all instances | {{Input|1=killall gpg-agent}} stops all instances | ||
<!--T:42--> | <!--T:42--> | ||
{{Input|1=eval "$(gpg-agent --daemon)"}}will restart the agent | {{Input|1=eval "$(gpg-agent --daemon)"}} will restart the agent | ||
<!--T:43--> | <!--T:43--> | ||
{{Input|1=gpg-agent status}}should tell you if the agent is running. | {{Input|1=gpg-agent status}} should tell you if the agent is running. | ||
== More Information == | |||
<!--T:46--> | <!--T:46--> | ||
[[Special:myLanguage/KMail/gpg|The Overview page]] has more hints and tips. | * [[Special:myLanguage/KMail/gpg|The Overview page]] has more hints and tips. | ||
* [https://gnupg.org/ GnuPG website] | |||
* [https://gnupg.org/documentation/manuals/gnupg/ GnuPG manual] | |||
* [https://gnupg.org/documentation/guides.html GnuPG guide] | |||
<!--T:44--> | <!--T:44--> |
Revision as of 23:08, 28 February 2019
Setting up Signed Messages using GPG in Kmail
by Fajar Priyanto, 2004 (last update 2019)
Creating, backing-up, and publishing your key
1. You're going to need the gpg program. It's already being installed by default.
2. Create your own key (type this as yourself, not root):
gpg --gen-key
Follow the instructions, it's very clear and easy.
3. Check that it's already created:
gpg --list-key
You will see something like this with your own credentials:
pub rsa2048 2004-03-15 [SC] D9C687FBA8DB7AB93E06E737931BC29844664E2D uid [ultimate] Fajar Priyanto <[email protected]> sub rsa4096 2004-03-15 [E]
4. Now, in order to export your public key:
gpg --armor --output fajar-pub.key --export [email protected]
A file called fajar-pub.key will be created in the current directory. This is a copy of your public key. This is also the file that people must import to verify your signed emails. You can publish it in keyservers around the world, or you can send it directly to the people requesting it, or you can place it in your website for others to download.
If you look inside the file, it will be like this:
-- --BEGIN PGP PUBLIC KEY BLOCK-- -- mQGiBEBVTw8RBACaYvnDkgqNWyktg3urdE9mrpv63x3Iux2zVkuZk8pIRp5HeR/V [snip snip...] B394acuU4FdGN/EynYUAn1aRvNmgs0/IU2MDzYQpbHIaqpkE =RIZC -- --END PGP PUBLIC KEY BLOCK-- --
Also, you might want to back up your secret key to a secure medium (not just one floppy: this will get damaged), you can use the following command:
$ gpg --armor --output secret.asc --export-secret-keys [email protected]
This will create a textfile containing your secret or private key, with the filename secret.asc. Do not hand it to someone you do not trust 100%. Hide it in a safe place (or better, more than one).
Finally, it is advisable to generate a revocation certificate and store it in a safe place away from your secret key. In case your secret key gets into the wrong hands, you can revoke it so it can not easily be abused by others. The command to do this is
$ gpg --armor --output revoker.asc --gen-revoke [email protected]
This will create a textfile with the name revoker.asc containing the revocation certificate.
Setting up Kmail to sign emails using your gpg key
- Fire up Kmail, and go to
- Choose the identity that you are using
- Then click
- It will automatically show your gpg key, that is 'Your Name <[email protected]>
- If it will not, click , and choose your key
- Now, set up Kmail to automatically sign all emails that you write using your key
- Still in the Cryptography tab, tick
- In the Kmail Configure menu, go to
- Tick mark these:
- Store sent messages encrypted,
- Always show the encryption key for approval,
- Exit the configuration menu by clicking .
Testing Kmail by creating a new message
- You will notice that there is a Sign Message banner. It's already active.
- Write your message and when you are done, send it.
- Kmail will ask for you to type the secret passphrase that you made during the gpg --gen-key step. Type it in, and then Kmail will show you a confirmation window of the signed message. Click to send it.
- If you test it by sending to yourself, you will notice that Kmail displays the message with a GREEN header, with words like this: Message was signed by Fajar Priyanto (Knowledge is power! http://linux.arinet.org) (Key ID: 0x85EEC6A5). The signature is valid and the key is ultimately trusted.
- People that have your public key will have that display also, but those who don't have the key, will have the message displayed in yellow with words like this: Message was signed with unknown key 0xBFE7357F. The validity of the signature cannot be verified.
CONGRATULATIONS!
You now can communicate in a more secure way if you want to. I know this how-to is very short and might not be very clear. Well, please give me suggestions and I will improve it when the time comes. Also I intend to write the second part of this topic which covers how to ENCRYPT messages, import other public keys, and install Crypto Plug-ins. Special thanks to Tim Sawchuck and Philip Cronje and all my friends in the Mandrake List.
Issues
- Messages signed by a key already known display correctly in KMail, but new keys were not being imported, and you can't sign messages. The culprit is a missing package. Installing pinentry-qt (you may need pinentry-qt4) appears to solve both problems.
- KMail no longer does in-line signatures. GnuPG has to be used instead. KGPG is a useful application that helps in the management of signatures, both your own and those collected.
- If you do not have it already, in ~/.config/plasma-workspace create a directory called env. In there, create a file called gpgagent.sh containing
#!/bin/bash killall gpg-agent eval `gpg-agent --daemon`
Save it and make it executable.
In the same way you would clean up gpg-agent on shutdown, so if you do not have it already, create another directory called shutdown into ~/.config/plasma-workspace and create in it another script file called stop_gpgagent.sh containing
#!/bin/bash killall gpg-agent
Save it and make it executable.
Troubleshooting Tips
ps -edalf | grep gpg-agent
will list any running instances of gpg-agent.
killall gpg-agent
stops all instances
eval "$(gpg-agent --daemon)"
will restart the agent
gpg-agent status
should tell you if the agent is running.
More Information
- The Overview page has more hints and tips.
- GnuPG website
- GnuPG manual
- GnuPG guide