Fixed erroneous implication we're connected with OpenKeychain.
[gnupg-doc.git] / web / faq / gnupg-faq.org
1 # gpgfaq.org                                          -*- coding: utf-8; -*-
2 #+TITLE:     GnuPG Frequently Asked Questions
3 #+EMAIL:     gnupg-doc@gnupg.org
4 #+AUTHOR:    Robert J. Hansen et al.
5 #+LANGUAGE:  en
6 #+LINK: gnupgweb https://www.gnupg.org/
7 #+LINK: roundup  https://bugs.gnupg.org/gnupg/issue
8 #+OPTIONS:   H:3 num:2 toc:nil \n:nil @:t ::t |:t ^:{} -:t f:t *:t TeX:t LaTeX:t skip:nil d:nil tags:not-in-toc
9 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://www.gnupg.org/share/site.css" />
10 #+STARTUP:   overview indent
11
12 * Foreword
13   :PROPERTIES:
14   :CUSTOM_ID: foreword
15   :END:
16
17 Welcome to the GnuPG Frequently Asked Questions (FAQ)!  Before we
18 begin, there’s just a few things that need to be addressed. It’s
19 regrettable these things have to be included, but society has become
20 very litigious.
21
22
23 ** Trademark notice
24    :PROPERTIES:
25    :CUSTOM_ID: trademarks
26    :END:
27
28 - Linux is a trademark of Linus Torvalds.
29 - GNU is a trademark of the Free Software Foundation.
30 - Macintosh, OS X and Mac OS X are all trademarks of the Apple
31   Corporation.
32 - PGP is a trademark of Symantec Corporation.
33 - Solaris is a trademark of Oracle Corporation.
34 - UNIX is a trademark of The Open Group.
35 - Windows is a trademark of the Microsoft Corporation.
36 - Some cryptographic algorithms mentioned in this FAQ may be
37   trademarked.
38
39 The use of these, or any other, marks is solely for identification
40 purposes.
41
42
43 ** Licensing
44    :PROPERTIES:
45    :CUSTOM_ID: documentation_license
46    :END:
47
48 This document is © 2012-2015, Robert J. Hansen <[[mailto:rjh@sixdemonbag.org?subject=The%20GnuPG%20FAQ][rjh@sixdemonbag.org]]> and
49 A.M. Kuchling <[[mailto:amk@amk.ca?subject=The%20GnuPG%20FAQ][amk@amk.ca]]>. You are free to make use of this document
50 in accordance with the [[https://creativecommons.org/licenses/by-sa/3.0/][Creative Commons Attribution-ShareAlike 3.0
51 license]]; alternately, you may make use of it under terms of the
52 GNU General Public License (version 3 or, at your discretion, any
53 later version).
54 #+HTML:<!--disable-copyright-footer-->
55
56
57 ** Disclaimer of liability
58    :PROPERTIES:
59    :CUSTOM_ID: liability
60    :END:
61
62 Although the contents of this document are believed to be correct, the
63 author(s) cannot promise it is error-free and cannot assume liability
64 for any errors.
65
66 # We want the TOC to appear after the foreword.
67 #+TOC: headlines 2
68
69 * Welcome
70   :PROPERTIES:
71   :CUSTOM_ID: welcome
72   :END:
73
74 Welcome to the official GnuPG FAQ.  Like all FAQs, this is a work in
75 progress.  If you have questions that you think should be on it but
76 aren't, please feel free to email the FAQ maintainer (Rob Hansen,
77 [[mailto:rjh@sixdemonbag.org?subject=The%20GnuPG%20FAQ][rjh@sixdemonbag.org]])
78 or bring your suggestion up on GnuPG-Users.
79
80 ** Is this available in other languages?
81    :PROPERTIES:
82    :CUSTOM ID: translations
83    :END:
84
85 Thanks to the Free Software Foundation, this FAQ is also available in
86 [[https://www.gnu.org/server/standards/translations/ru/gnupg/gnupg-faq.ru.html][Russian]].
87
88 ** How do I get help?
89    :PROPERTIES:
90    :CUSTOM_ID: gethelp
91    :END:
92
93 First, please don’t send emails directly to people in GnuPG.  While we will
94 try to help to people who send email directly to us, those emails quickly
95 accumulate.  Helping just six people a day can take an hour of time, and that's
96 an hour less we have to work on making GnuPG better.  Please reach out to the
97 GnuPG community via the
98 [[https://lists.gnupg.org/mailman/listinfo/gnupg-users][GnuPG-Users mailing list]],
99 not individual people within
100 GnuPG.
101
102 Second, tell us your operating environment.  Be as specific as possible.
103 What operating system are you using?  Which version of GnuPG are you using?
104 Where did you get GnuPG from?  If your problem is related to email, which email
105 client are you using?  Which version number?  Is GnuPG supported natively, or
106 is there a plugin?  If so, what's the version number of that?
107
108 Third, tell us your problem.  Be as specific as possible.
109
110 Do this, and you might be surprised at how quickly your problem is solved.
111 An example of a good question would be, “I’m running GnuPG 1.4.14 on an
112 Ubuntu 15.04 x64 box.  I'm using Thunderbird with Enigmail.  Everything was
113 fine until I did a software update.  Ever since then I can't use GnuPG with
114 email.  What happened?”  This question gives us enough to work with, and in
115 short order someone will have an answer for you.
116
117 A bad question would be, “How do I uninstall GnuPG?”  We can’t help you at all;
118 you've not given us any of the information we need to answer your question.
119
120 ** Who maintains this FAQ?
121    :PROPERTIES:
122    :CUSTOM_ID: maintainer
123    :END:
124
125 [[mailto:rjh@sixdemonbag.org?subject%3DThe%20GnuPG%20FAQ][Rob Hansen]]. Please feel free to contact me should there be an
126 error in this FAQ, whether typographical, grammatical, or factual.
127
128 When writing, the editorial “we” refers to the general consensus of
129 the GnuPG community. This consensus is hammered out on the GnuPG-Users
130 mailing list. All members of the GnuPG community are invited to
131 participate.  Individual people within the community may give their
132 own editorial comments: these will be set off by square brackets,
133 italicized, and initialed by their author.  The different editors are:
134
135 - wk: Werner Koch <[[mailto:wk@gnupg.org?subject%3DThe%20GnuPG%20FAQ][wk@gnupg.org]]>
136 - rjh: Robert J. Hansen <[[mailto:rjh@sixdemonbag.org?subject=The%20GnuPG%20FAQ][rjh@sixdemonbag.org]]>
137
138
139 ** Is this the official GnuPG FAQ?
140    :PROPERTIES:
141    :CUSTOM_ID: is_it_official
142    :END:
143
144 Yes.
145
146
147 ** When was this FAQ last checked for accuracy?
148    :PROPERTIES:
149    :CUSTOM_ID: last_checked
150    :END:
151
152 October 2017.
153
154 * General questions
155   :PROPERTIES:
156   :CUSTOM_ID: general
157   :END:
158
159 ** What’s GnuPG?
160    :PROPERTIES:
161    :CUSTOM_ID: whats_gnupg
162    :END:
163
164 GnuPG is cryptographic software that helps people ensure the
165 confidentiality, integrity and assurance of their data.  Let’s try
166 that again: GnuPG is…
167
168 - /Cryptographic./ The word “cryptography” is derived from two Greek
169   words, κρυπτός (pronounced “kryptos,” meaning “hidden”) and γράφω
170   (pronounced “graphein,” meaning “writing”). Cryptography is the
171   mathematical study of codes and ciphers.
172 - /Software./ This one should already be obvious.
173 - /Confidentiality./ No one except authorized parties should be able
174   to read your data.
175 - /Integrity./ It shouldn’t be possible to tamper with a message
176   unnoticeably.
177 - /Assurance./ An assurance is not a guarantee. There are no
178   guarantees in life, and software is no different. An assurance just
179   means there is good reason to be confident of something — here, it
180   means that when GnuPG is correctly used, people may be confident the
181   data is confidential and/or possesses integrity.
182
183 GnuPG may be used by itself as a command-line application (i.e., to be
184 run at a Terminal prompt or a Windows command prompt), or integrated
185 into popular email clients. It’s also used by some instant messaging
186 clients, such as Psi.
187
188
189 ** How do I pronounce GnuPG?
190    :PROPERTIES:
191    :CUSTOM_ID: pronunciation
192    :END:
193
194 “guh-NEW-pee-gee.”
195
196
197 ** Is it compatible with Symantec’s PGP?
198    :PROPERTIES:
199    :CUSTOM_ID: compatible
200    :END:
201
202 Largely, yes.  It can be made to interoperate with anything from PGP
203 5 and onwards, and has excellent interoperability with the most
204 recent releases.
205
206
207 ** Which operating systems does it run on?
208    :PROPERTIES:
209    :CUSTOM_ID: oses
210    :END:
211
212 Too many to list! It’s known to run on Microsoft Windows, Mac OS X,
213 the various free Unixes, AIX, Solaris, HPUX, OpenVMS, and more. People
214 are even working on porting it to smartphones such as Android.
215
216
217 ** How much does it cost?
218    :PROPERTIES:
219    :CUSTOM_ID: free_as_in_beer
220    :END:
221
222 There is no fixed price.  Many sites on the internet offer legal
223 downloads of it for free.
224
225
226 ** From where can I download it…
227    :PROPERTIES:
228    :CUSTOM_ID: get_gnupg
229    :END:
230
231 Lots of different places, but no one site hosts binaries for all
232 operating systems.
233
234
235 *** … for Microsoft Windows?
236     :PROPERTIES:
237     :CUSTOM_ID: get_gnupg_win32
238     :END:
239
240 A convenient Windows installer is available from [[https://www.gpg4win.org][GPG4WIN]].
241
242
243 *** … for Mac OS X?
244     :PROPERTIES:
245     :CUSTOM_ID: get_gnupg_osx
246     :END:
247
248 The [[https://www.gpgtools.org][GPGtools project]] has everything needed to get started.
249 However, GPGTools only offers GnuPG 2.0; if you want the latest-and-greatest 2.1, look
250 at Patrick Brunschwig’s [[http://sourceforge.net/projects/gpgosx/][GnuPG for OS X]] project
251 on SourceForge.
252
253
254 *** … for Linux?
255     :PROPERTIES:
256     :CUSTOM_ID: get_gnupg_linux
257     :END:
258
259 The bad news is there is no single, consistent way to install GnuPG on
260 Linux systems.  The good news is that it’s usually installed by
261 default, so nothing needs to be downloaded!
262
263
264 **** … for Android?
265      :PROPERTIES:
266      :CUSTOM_ID: get_gnupg_android
267      :END:
268
269 There is no official port of GnuPG to Android.  Users in need of a
270 GnuPG-compatible FOSS tool on Android may wish to check out OpenKeychain.
271
272 **** … for Debian GNU/Linux or Ubuntu?
273      :PROPERTIES:
274      :CUSTOM_ID: get_gnupg_debian
275      :END:
276
277 At a terminal window type =sudo apt-get install gnupg2=.
278
279
280 **** … for OpenSUSE?
281      :PROPERTIES:
282      :CUSTOM_ID: get_gnupg_opensuse
283      :END:
284
285 At a terminal window type =sudo zypper install gnupg2=.
286
287
288 **** … for Fedora, CentOS, or RHEL?
289      :PROPERTIES:
290      :CUSTOM_ID: get_gnupg_fedora
291      :END:
292
293 For Fedora 22 and later: at a terminal window type =sudo dnf install gnupg2=.
294
295 For Fedora 21 and earlier, CentOS, or RHEL: at a terminal window type =sudo yum install gnupg2=.
296
297
298 **** … for Slackware?
299      :PROPERTIES:
300      :CUSTOM_ID: get_gnupg_slack
301      :END:
302
303 Install the =gnupg= package for GnuPG 1.4, or the =gnupg2= package for
304 GnuPG 2.0.
305
306
307 **** … for Gentoo?
308      :PROPERTIES:
309      :CUSTOM_ID: get_gnupg_gentoo
310      :END:
311
312 To install GnuPG on Gentoo, run the following command as root:
313
314 =emerge gnupg=
315
316 The Gentoo documentation includes a [[https://www.gentoo.org/doc/en/gnupg-user.xml][GnuPG User Guide]].
317
318
319 *** … for FreeBSD?
320     :PROPERTIES:
321     :CUSTOM_ID: get_gnupg_freebsd
322     :END:
323
324 GnuPG is included in the ports collection.  To install it, run the
325 following commands as root:
326
327 #+begin_example
328 cd /usr/ports/security/gnupg
329 make install clean
330 #+end_example
331
332 Alternatively, you can install GnuPG using a package manager:
333
334 #+begin_example
335 sudo pkg_add -r gnupg
336 #+end_example
337
338 *** … for VMS?
339     :PROPERTIES:
340     :CUSTOM_ID: get_gnupg_vms
341     :END:
342
343 A port to *VMS* is maintained by Steven M. Schweda at [[http://www.antinode.info/dec/sw/gnupg.html][antinode.info]].
344
345
346 ** Is there source code available for it?
347    :PROPERTIES:
348    :CUSTOM_ID: source_code
349    :END:
350
351 Yes!  The person, business or group that provided you with the GnuPG
352 binary is required to give you the source code upon your request.
353
354
355 ** What’s Free Software, and why does it matter?
356    :PROPERTIES:
357    :CUSTOM_ID: gpl
358    :END:
359
360 The word “free” should evoke ideas of liberty, not price.  An awful
361 lot of the software industry does not
362 [[https://gnu.org/philosophy/free-software-even-more-important.html][respect your freedoms]]:
363 your freedom to use the software for any purpose, your freedom to study
364 and learn from how it works, your freedom to share it with others who
365 might benefit from it, and more.  Free Software is the antithesis of
366 this: Free Software is meant to respect your rights.  You may use the
367 software for any purpose: you may inspect and modify the source code:
368 you may share the software and/or your modifications with others.
369
370
371 ** How can I donate money to the GnuPG project?
372    :PROPERTIES:
373    :CUSTOM_ID: donate
374    :END:
375
376 The best way is to visit the [[https://gnupg.org/donate/][donation page]].
377
378
379 ** How can I help with GnuPG development?
380    :PROPERTIES:
381    :CUSTOM_ID: develop
382    :END:
383
384 Development discussion takes place on the gnupg-devel mailing list.
385 Go to the [[https://www.gnupg.org/documentation/mailing-lists.en.html][GnuPG mailing list page]] for links to subscribe and to the
386 list's archives.
387
388 The [[https://bugs.gnupg.org/gnupg/][GnuPG project's bug tracker]] is also publicly available.
389
390
391
392 * Where can I get more information?
393   :PROPERTIES:
394   :CUSTOM_ID: more_info
395   :END:
396
397 The good news is the internet is a treasure trove of information.  The
398 bad news is that the internet is a festering sewer of misinformation,
399 conspiracy theories, and half-informed speculations all masquerading
400 as informed commentary.
401
402 The following mailing lists and web pages are generally known for
403 having a strong signal-to-noise ratio.  Nevertheless, we strongly urge
404 you to keep a skeptical mind at all times.
405
406 ** Help! I lost my passphrase.
407   :PROPERTIES:
408   :CUSTOM_ID: lost_passphrase
409   :END:
410
411 Unfortunately, we can’t help you.  If you lose your passphrase, you’ll be
412 unable to use that certificate to sign any new documents or decrypt any
413 existing documents.  You can still use it to verify signatures, though.
414 (Technically you could encrypt documents, too, but without the passphrase
415 there’s really not much point: how would you ever decrypt them?)
416
417 If you can’t remember your passphrase, the best thing to do is use your
418 pre-made revocation certificate to revoke your old certificate, upload the
419 revocation to the keyserver network, and start anew with a fresh certificate.
420
421 ** How can I spot the charlatans?
422    :PROPERTIES:
423    :CUSTOM_ID: fraudsters
424    :END:
425
426 First, beware of all absolutes.  Almost every question in either the
427 fields of computer security or cryptography can honestly be answered
428 with, “it depends.”  Real experts will avoid giving blanket yes-or-no
429 answers except to the simplest and most routine of questions.  They
430 will instead hem and haw and explain the several different factors
431 that must be weighed.  Hucksters will promise you absolute truth.
432
433 Second, the experts really don’t care whether you take their advice.
434 Hucksters often want to be seen as authorities, and if you fail to
435 take their advice they may harangue you about how you’re taking
436 chances with your data, how you’re acting irresponsibly, and so on.
437
438 Third, experts genuinely don’t want you to trust them.  An expert will
439 instead point to the published literature (usually in a dead-tree
440 edition with the imprimatur of a reputable publishing house) and tell
441 you what the reference books say.  They want you to trust the
442 reference books, not them.  Hucksters will go on about their extensive
443 personal experience or refer to papers that have only ever been
444 self-published on websites.
445
446 Fourth, experts try not to scare people.  The world is a scary enough
447 place without it being made moreso.  Hucksters will try to scare you,
448 in order to keep you listening to them and dependent on them for
449 information on how to be ‘safe.’
450
451 Fifth, experts will quickly admit when they are wrong and give credit
452 to the person bringing the error to their attention.  Hucksters tend
453 to take challenges as personal affronts.
454
455
456 ** What are some useful mailing lists?
457    :PROPERTIES:
458    :CUSTOM_ID: mailing_lists
459    :END:
460
461 There are many excellent mailing lists out there.  The following is
462 a list of just some of them that we’ve found to be high-quality.
463 There are undoubtedly many more that we’ve missed.
464
465
466 *** The GnuPG-Users mailing list
467     :PROPERTIES:
468     :CUSTOM_ID: gnupg-users_list
469     :END:
470
471
472 - Subscribing :: visit the [[https://lists.gnupg.org/mailman/listinfo/gnupg-users][GnuPG-Users webpage]]
473 - Unsubscribing :: see above
474 - List moderator :: <[[mailto:gnupg-users-owner@gnupg.org?subject%3DThe%20GnuPG-Users%20list][gnupg-users-owner@gnupg.org]]>
475 - Supports PGP/MIME? :: Yes
476 - Languages supported :: English
477
478 GnuPG-Users is home to the largest community of GnuPG users on the
479 net. The list is very lightly moderated and somewhat freewheeling, but
480 overall it has an excellent signal-to-noise ratio. The level of
481 technical discussion is sometimes a little daunting for the newcomer,
482 but on the whole it’s a wonderful resource.
483
484
485
486 *** The Enigmail mailing list
487     :PROPERTIES:
488     :CUSTOM_ID: enigmail_list
489     :END:
490
491
492 - Subscribing :: Visit the [[https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net][Enigmail mailing list page]]
493 - Unsubscribing :: See above
494 - List moderator(s) ::
495   - John Clizbe <[[mailto:john@enigmail.net?subject=The%20Enigmail%20list][john@enigmail.net]]>
496   - Olav Seyfarth <[[mailto:olav@enigmail.net?subject=The%20Enigmail%20list][olav@enigmail.net]]>
497   - Patrick Brunschwig <[[mailto:patrick@enigmail.net?subject=The%20Enigmail%20list][patrick@enigmail.net]]>
498   - Ludwig Hügelschäfer <[[mailto:ludwig@enigmail.net?subject=The%20Enigmail%20list][ludwig@enigmail.net]]>
499   - Daniele Raffo <[[mailto:dan@enigmail.net?subject=The%20Enigmail%20list][dan@enigmail.net]]>
500   - Robert J. Hansen <[[mailto:rob@enigmail.net?subject=The%20Enigmail%20list][rob@enigmail.net]]>
501 - Supports PGP/MIME :: Yes
502 - Languages supported :: English, Deutsch, Schwyzerdütsch, Español
503
504 Enigmail integrates GnuPG with [[https://www.getthunderbird.com][Mozilla Thunderbird]] and/or [[https://www.seamonkey-project.org/][Mozilla
505 Seamonkey]]. It’s one of the most popular ways to use GnuPG, and the
506 mailing list provides a friendly place to learn how it works and get
507 started using it.
508
509 The list is lightly moderated.
510
511
512 *** PGP-Basics
513     :PROPERTIES:
514     :CUSTOM_ID: pgp-basics_list
515     :END:
516
517
518 - Subscribing :: visit the [[http://tech.groups.yahoo.com/group/PGP-Basics][PGP-Basics webpage]]
519 - Unsubscribing :: see above
520 - List moderator :: Mike Daigle <[[mailto:mdaigle@gswot.org?subject=The%20PGP-Basics%20list][mdaigle@gswot.org]]>
521 - Supports PGP/MIME :: No
522 - Languages supported :: English
523
524 PGP-Basics was established over a decade ago specifically to provide a
525 communications security. The list is low-volume, lightly-moderated,
526 place where newcomers to GnuPG and PGP could learn about
527 and remarkably friendly to new users.
528
529
530 *** PGPNET
531     :PROPERTIES:
532     :CUSTOM_ID: pgpnet_list
533     :END:
534
535
536 - Subscribing :: visit the [[http://tech.groups.yahoo.com/group/PGPNET][PGPNET page]]
537 - Unsubscribing :: see above
538 - List moderator(s) :: Unknown
539 - Supports PGP/MIME? :: No
540 - Languages supported :: Unknown
541
542 PGPNET exists to provide people with the opportunity to practice
543 sending and receiving encrypted, signed, and encrypted-and-signed
544 traffic in a group environment.
545
546
547
548 ** What are some useful webpages?
549    :PROPERTIES:
550    :CUSTOM_ID: webpages
551    :END:
552
553 As a general rule, the huckster quotient of webpages at-large is
554 fairly high.  That said, there are some web resources we recommend.
555 They can be broken up into homepages for specific GnuPG-related
556 projects, and sites of general interest.
557
558
559 *** Where can I find the homepage for…
560     :PROPERTIES:
561     :CUSTOM_ID: homepages
562     :END:
563
564 Many of the projects associated with GnuPG maintain their own
565 websites.  If you have problems with an associated project, please
566 check their website first: they might be able to give you faster and
567 better help than the GnuPG community can.
568
569
570 **** … GnuPG?
571      :PROPERTIES:
572      :CUSTOM_ID: gnupg_homepage
573      :END:
574
575 GnuPG’s homepage can be found at [[https://www.gnupg.org][https://www.gnupg.org]].  It is also
576 available in the [[https://torproject.org][Tor]] network as =ic6au7wa3f6naxjq.onion=.
577
578
579 **** … Enigmail?
580      :PROPERTIES:
581      :CUSTOM_ID: enigmail_homepage
582      :END:
583
584 Enigmail, a plugin for Mozilla Thunderbird that adds strong GnuPG
585 support, can be found at [[https://enigmail.net][https://enigmail.net]].
586
587
588 **** … GPGTools?
589      :PROPERTIES:
590      :CUSTOM_ID: gpgtools_homepage
591      :END:
592
593 Mac OS X users may wish to visit the GPGTools project at
594 [[https://www.gpgtools.org][https://www.gpgtools.org]].
595
596
597 **** … GPG4WIN?
598      :PROPERTIES:
599      :CUSTOM_ID: gpg4win_homepage
600      :END:
601
602 GPG4WIN, the Windows port of GnuPG, maintains a homepage at
603 [[https://www.gpg4win.org][https://www.gpg4win.org]].
604
605
606 *** Where can I find webpages covering…
607     :PROPERTIES:
608     :CUSTOM_ID: pages_about
609     :END:
610
611 Although the GnuPG community generally finds these websites to be
612 useful, your mileage may significantly vary.  There are wide
613 differences of opinion about some of them.  They’re worth visiting and
614 worth reading, but make sure to read skeptically.
615
616
617 **** … an easy introduction to cryptography?
618      :PROPERTIES:
619      :CUSTOM_ID: pages_about_introduction_to_crypto
620      :END:
621
622 There is no such thing as an easy introduction to cryptography.
623 However, PGP Corporation has a well-regarded [[http://www.cs.unibo.it/babaoglu/courses/security/resources/documents/intro-to-crypto.pdf][/Introduction to
624 Cryptography/]].
625
626
627 **** … the deeper mathematics of cryptography?
628      :PROPERTIES:
629      :CUSTOM_ID: pages_about_cryptographic_mathematics
630      :END:
631
632 The maintainer of this list also keeps a gentle(-ish) [[http://sixdemonbag.org/cryptofaq.xhtml][introduction to
633 the mathematics and computer science of cryptography]].
634
635
636 **** … best practices for using GnuPG?
637      :PROPERTIES:
638      :CUSTOM_ID: pages_about_best_practices
639      :END:
640
641 At present, there are no reputable web pages detailing GnuPG best
642 practices.
643
644
645 **** … the politics of cryptography?
646      :PROPERTIES:
647      :CUSTOM_ID: pages_about_politics
648      :END:
649
650 The inclusion of a site on this list is not an endorsement of that
651 site’s political leanings.
652
653 Probably the best-known organization is the [[https://www.eff.org][Electronic Frontier
654 Foundation]], which has been at the vanguard of electronic civil
655 liberties for over twenty years.
656
657 The [[https://www.fsf.org][Free Software Foundation]] is also deeply involved in these matters,
658 although in a different way than the EFF.
659
660
661 * What email clients support GnuPG on…
662   :PROPERTIES:
663   :CUSTOM_ID: email_clients
664   :END:
665
666 Many email clients offer strong GnuPG integration.
667
668 The column “Active” in the tables below indicate whether the software
669 is actively developed.
670
671 ** … Microsoft Windows?
672    :PROPERTIES:
673    :CUSTOM_ID: email_clients_win32
674    :END:
675
676 | Name        | Plugins        | see |
677 |-------------+----------------+-----|
678 | Thunderbird | yes (Enigmail) | (1) |
679 | Kontact     | native         | (2) |
680 | Claws-Mail  | yes (internal) | (3) |
681
682 (1) With the Enigmail plugin, Thunderbird becomes one of the most
683     popular GnuPG-aware email clients.  It’s under active development
684     and is compatible with the latest Thunderbird releases, with a
685     friendly and welcoming user community.
686
687 (2) Kontact is KDE’s integrated personal information manager of KDE.
688     It runs anywhere that KDE does, and even on some mobile devices as
689     Kontact Touch.
690
691 (3) Claws-Mail for Windows is included in the [[https://www.gpg4win.org][Gpg4win]] installer.
692
693
694 ** … Mac OS X?
695    :PROPERTIES:
696    :CUSTOM_ID: email_clients_osx
697    :END:
698
699 | Name        | Plugins        | see |
700 |-------------+----------------+-----|
701 | Thunderbird | yes (Enigmail) | (1) |
702 | Gnus        | yes ([[https://www.emacswiki.org/emacs/EasyPG][EasyPG]])   | (2) |
703 | Mutt        | native         | (3) |
704 | Apple Mail  | yes ([[https://www.gpgtools.org][GPGtools]]) | (4) |
705
706 (1) With the Enigmail plugin, Thunderbird becomes one of the most
707     popular GnuPG-aware email clients.  it’s under active development
708     and is compatible with the latest Thunderbird releases, with a
709     friendly and welcoming user community.
710
711 (2) EasyPG is part of Emacs 23, proper.  Thus there is no more need to
712     install the plugin.  See the Gnus manual for configuration hints.
713
714 (3) For best experience make sure to put ~set crypt_use_gpgme~ in your
715     =~/.muttrc= file.
716
717 (4) As of this writing, Apple Mail is incompatible with PGP/MIME.  This
718     is a known bug and people are working on it.
719
720
721 ** … Free UNIX systems?
722    :PROPERTIES:
723    :CUSTOM_ID: email_clients_free_unix
724    :END:
725
726 | Name        | Plugins        | see |
727 |-------------+----------------+-----|
728 | Thunderbird | yes (Enigmail) | (1) |
729 | Gnus        | yes ([[https://www.emacswiki.org/emacs/EasyPG][EasyPG]])   | (2) |
730 | Mutt        | native         | (3) |
731 | Kontact     | native         | (4) |
732 | Evolution   | native         |     |
733 | Claws-Mail  | yes (internal) |     |
734
735 (1) With the Enigmail plugin, Thunderbird becomes one of the most
736     popular GnuPG-aware email clients.  it’s under active development
737     and is compatible with the latest Thunderbird releases, with a
738     friendly and welcoming user community.
739
740 (2) EasyPG is part of Emacs 23, proper.  Thus there is no more need to
741     install the plugin.  See the Gnus manual for configuration hints.
742
743 (3) For best experience make sure to put ~set crypt_use_gpgme~ in your
744     =~/.muttrc= file.
745
746 (4) Kontact is KDE’s integrated personal information manager of KDE.
747     It runs anywhere that KDE does, and even on some mobile devices as
748     Kontact Touch.
749
750 * Is GnuPG available as a ‘portable app’?
751   :PROPERTIES:
752   :CUSTOM_ID: portable_app
753   :END:
754
755 Yes, but we don't recommend it.  Sharing a USB token between lots of
756 random computers is a great way to get infested with malware, and that's
757 not something you want to happen to the token you're using for secure
758 email.  If you're going to do this, please show caution with respect to
759 which computers you use the portable app on.
760
761 That said, Windows users should check [[http://portableapps.com/apps/internet/thunderbird_portable][PortableApps]].
762 Or, to build your own, use the /mkportable/ tool which comes with
763 [[https://www.gpg4win.org][Gpg4win]].
764
765
766 * What do all these strange words mean?
767   :PROPERTIES:
768   :CUSTOM_ID: glossary
769   :END:
770
771 Cryptography tends to use a whole lot of specialized language and
772 jargon.  In this section some of it will be deciphered.
773
774
775 ** What’s ‘public-key cryptography’?
776    :PROPERTIES:
777    :CUSTOM_ID: define_asymc
778    :END:
779
780
781 In the 1970s new ideas came to the forefront of the cryptanalytic
782 world.  One of the most important was the development of asymmetric
783 cryptography (also often called “public-key cryptography”).
784
785 Asymmetric cryptography is built around problems that are very hard in
786 one direction, and very easy in another.  Consider the number 2,701.
787 If you were to be asked for its prime factors, you would find it a
788 daunting challenge.  If you were to be given the numbers 37 and 73,
789 though, it wouldn’t take but a minute to discover the answer was
790 2,701.  Multiplying two numbers to yield a third number is easy:
791 finding those two numbers, given the third, is hard.
792
793 Asymmetric cryptography uses these asymmetric problems as the
794 building-blocks of cryptography.  It’s easy to create an encrypted
795 message which neither you nor anyone else save the intended recipient
796 can decrypt.  To continue the metaphor, you and everyone else get to
797 wrestle with the hard problem (“factor 2,701”).  The intended
798 recipient knows a secret piece of information which makes the problem
799 easy (“factor 2,701, given that one of the factors is 73”).
800
801 This manages to overcome the major flaw with symmetric cryptography.
802 Your public key can be shared with the entire world, even your
803 enemies, and your communications will still be secure.  Compare this
804 to symmetric cryptography, where as soon as the key became public
805 knowledge the entire system was broken.
806
807
808
809 ** What’s ‘symmetric cryptography’?
810    :PROPERTIES:
811    :CUSTOM_ID: define_symc
812    :END:
813
814
815 One of the earliest ciphers was the shift cipher, which was allegedly
816 used by Julius Caesar in his campaign against the Gauls.  He took his
817 plaintext and shifted each letter three positions up in the alphabet,
818 wrapping around once he reached the end (so that ‘Z’ would become
819 ‘C’).  His correspondents would reverse the process: by moving each
820 letter in the encrypted text down three letters the original message
821 would be recovered.  Knowing how to encrypt the text also gave the
822 knowledge of how to decrypt the text: the process wasn’t identical
823 (one shifted up, the other shifted down), but knowing one process the
824 other one could trivially be discovered.
825
826 This trait, that of encryption and decryption being two sides of the
827 same coin, is the defining trait of symmetric cryptography.
828 Modern-day symmetric ciphers are much more complex than Caesar’s
829 scheme, but they still work in fundamentally the same way.  Knowledge
830 of how to encrypt reveals knowledge of how to decrypt, and vice-versa.
831 The symmetry between those two operations leads to the name “symmetric
832 cryptography”.
833
834 Symmetric cryptography is fast, well-studied, and safe.  It has one
835 critical drawback, though: you have to have a secure communications
836 channel by which you can share the key with someone.  If you already
837 have a secure communications channel, though, do you really need
838 cryptography?
839
840
841
842 ** What’s a ‘key’?
843    :PROPERTIES:
844    :CUSTOM_ID: define_key
845    :END:
846
847
848 The word ‘key’ is unfortunately ambiguous.  It can either refer to the
849 mathematical structures that allow encryption, decryption, signing and
850 verification to occur, or to the rather large blobs of data that
851 contain those mathematical structures as well as information about the
852 person associated with it, additional subkeys, and so forth.
853
854 With respect to the large blobs of data, it is preferable to call them
855 ‘certificates’, so that the word ‘key’ may be unambiguously recognized
856 as meaning just the mathematical structures.  Unfortunately, this is a
857 custom that seems to be honored mostly in the breach.
858
859
860
861 ** What’s a ‘certificate’?
862    :PROPERTIES:
863    :CUSTOM_ID: define_certificate
864    :END:
865
866
867 A certificate is a large data structure that contains one or more
868 [[#define_keys][keys]], and optionally information that identifies the user, designated
869 revokers, who has vouched for this certificate, and so on.
870
871
872
873 ** What’s a ‘keyserver’?
874    :PROPERTIES:
875    :CUSTOM_ID: define_keyserver
876    :END:
877
878 A keyserver is a service that publishes public-key certificates and
879 makes them searchable.  You can upload your certificate to a keyserver
880 so that other users can find it.  There are distributed networks of
881 keyservers that share keys, so you only need to upload your key once
882 to that network.
883
884 One widely-used keyserver network is [[https://www.sks-keyservers.net/][sks-keyservers.net]].  SKS stands
885 for “Synchronising Key Server”.  You can use this network by supplying
886 the =--keyserver pool.sks-keyservers.net= option.
887
888
889
890 ** What’s RSA?
891    :PROPERTIES:
892    :CUSTOM_ID: define_rsa
893    :END:
894
895
896 RSA is the world’s premier [[#define_asymc][asymmetric cryptographic algorithm]], and is
897 built on the difficulty of factoring extremely large composites.
898 GnuPG supports RSA with [[#define_key][key]] sizes of between 1024 and 4096 bits.
899
900
901
902 ** What’s DSA?
903    :PROPERTIES:
904    :CUSTOM_ID: define_dsa
905    :END:
906
907
908 The United States’ National Institute for Standards and Technology
909 ([[http://www.nist.gov][NIST]]) established the Digital Signature Algorithm (DSA) as a
910 government standard for digital signatures.  Originally, it supported
911 key lengths between 512 and 1024 bits.  Recently, NIST has declared
912 512-bit keys obsolete: now, DSA is available in 1024, 2048 and
913 3072-bit lengths.
914
915 DSA belongs to the Elgamal family of algorithms, and is very
916 well-regarded.
917
918
919
920 ** What’s Elgamal?
921    :PROPERTIES:
922    :CUSTOM_ID: define_elgamal
923    :END:
924
925
926 Elgamal may refer to either a family of cryptographic algorithms built
927 around the difficulty of computing discrete logarithms in a finite
928 field, or one particular [[#define_asymc][asymmetric encryption algorithm]] based on that
929 problem.  The former is normally referred to as “the Elgamal family,”
930 and the latter is normally referred to as simply “Elgamal.”
931
932 GnuPG supports the Elgamal asymmetric encryption algorithm in [[#define_key][key]]
933 lengths ranging from 1024 to 4096 bits.
934
935 There is also an Elgamal signature algorithm, which GnuPG no longer
936 supports.
937
938
939
940 ** What’s AES?
941    :PROPERTIES:
942    :CUSTOM_ID: define_aes
943    :END:
944
945
946 Leading up to the year 2000, it was obvious that the old Data
947 Encryption Standard (DES) was on its last legs and needed to be
948 replaced.  3DES was available as a stopgap measure, but there was a
949 lot of pressure to make a new encryption standard that made use of the
950 last few decades of cryptologic research.
951
952 The United States National Institute of Standards and Technology
953 ([[http://www.nist.gov][NIST]]) held an open competition to select the new encryption standard.
954 In the summer of 2000, a cipher named Rijndael (pronounced
955 “RAIN-doll”) was selected as the new Advanced Encryption Standard, or
956 AES.
957
958 AES is a thoroughly modern cipher design and may be used with
959 confidence.
960
961
962
963 ** What are Twofish and Blowfish?
964    :PROPERTIES:
965    :CUSTOM_ID: define_fish
966    :END:
967
968
969 Blowfish and Twofish are well-regarded symmetric ciphers.  Blowfish
970 should not be used to encrypt files larger than 4Gb in size, but
971 Twofish has no such restrictions.  These algorithms are modern, and
972 may be used with confidence.
973
974
975
976 ** What’s 3DES?
977    :PROPERTIES:
978    :CUSTOM_ID: define_3des
979    :END:
980
981
982 In the 1970s, IBM developed a new symmetric cipher called the Data
983 Encryption Standard (DES).  They overdesigned it horribly: even after
984 three decades, the only way to break DES is by brute force.
985 Unfortunately, standard DES has a small enough keyspace to be
986 susceptible to brute-forcing.
987
988 A new variant of DES was needed.  3DES, which is made of three DES
989 algorithms running together with three independent keys, was the
990 result.  3DES is ungainly, ugly, slow, and has all the aesthetics of a
991 Soviet workers’ housing bloc.  It has also withstood three decades of
992 cryptanalysis and is still going strong.
993
994 Due to its 1970s-era 64-bit block size, it should not be used to
995 encrypt more than about 4Gb of data.  Beyond that, though, it is solid
996 as a rock, and very few GnuPG users will ever notice a problem with
997 it.  Provided you’re not encrypting more than 4Gb of data you may use
998 3DES with confidence.
999
1000 ** What are CAST, CAST5, and CAST5-128?
1001    :PROPERTIES:
1002    :CUSTOM_ID: define_cast
1003    :END:
1004
1005
1006 Carlisle Adams and Stafford Tavares (the “CA” and the “ST” in “CAST”)
1007 developed the CAST algorithm in 1996.  It was later approved for
1008 Canadian government use.
1009
1010 CAST has many names: CAST, CAST5, CAST5-128 and CAST-128 all refer to
1011 the same algorithm.
1012
1013 Internally, CAST is distinctly similar to Blowfish, another
1014 well-respected algorithm.  Like 3DES, its 64-bit block size means it
1015 should not be used to encrypt files larger than 4Gb in size.  With
1016 that said, though, CAST is a modern cipher and may be used with
1017 confidence.
1018
1019
1020 ** What’s Camellia?
1021    :PROPERTIES:
1022    :CUSTOM_ID: define_camellia
1023    :END:
1024
1025
1026 During roughly the same time period that [[http://www.nist.gov][NIST]] was running the Advanced
1027 Encryption Standard trials, Japan’s [[http://www.cryptrec.jp/english/][CRYPTREC]] and the European Union's
1028 [[http://www.cryptonessie.org/][NESSIE]] were running their own similar trials.  Camellia is the cipher
1029 that won the NESSIE and CRYPTREC trials, much in the same way that
1030 Rijndael won the United States’ AES trials.
1031
1032 Camellia is a thoroughly modern cipher design and may be used with
1033 confidence.
1034
1035
1036
1037 ** What are SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 and SHA-3?
1038    :PROPERTIES:
1039    :CUSTOM_ID: define_sha
1040    :END:
1041
1042
1043 The Secure Hash Algorithms are cryptographic hash functions originally
1044 devised by the United States’ National Security Agency.  The
1045 algorithms have been made publicly available and have been subjected
1046 to an astonishing amount of peer review.
1047
1048 - *SHA* and/or *SHA-0*: the original Secure Hash Algorithm, generating
1049   160-bit outputs.  Flaws were discovered in it almost immediately.
1050   SHA-0 never gained much traction in the cryptologic community, and
1051   it is not present in GnuPG.
1052 - *SHA-1*: This is SHA-0 with the flaws fixed, and not much else in
1053   the way of changes.  It still generates 160-bit outputs.  SHA-1 has
1054   not aged well.  Although it is still believed to be safe, it would
1055   be advisable to use another, different hash function if possible.
1056 - *SHA-224, 256, 384, or 512*: This is a massively-overhauled SHA-1 which
1057   generates larger hashes (224, 256, 384, or 512 bits).  Right now,
1058   these are the strongest hashes in GnuPG.
1059 - *SHA-3*: SHA-3 is a completely new hash algorithm that makes a clean
1060   break with the previous SHAs.  It is believed to be safe, with no
1061   warnings about its usage.  It hasn't yet been officially introduced
1062   into the OpenPGP standard, and for that reason GnuPG doesn't support
1063   it.  However, SHA-3 will probably be incorporated into the spec, and
1064   GnuPG will support it as soon as it does.
1065
1066
1067 ** What’s MD5?
1068    :PROPERTIES:
1069    :CUSTOM_ID: define_md5
1070    :END:
1071
1072
1073 MD5 is a 128-bit cryptographic hash function invented by Ron Rivest
1074 (the ‘R’ of ‘RSA’) in the early 1990s.  For many years it was one of
1075 the standard algorithms of the field, but is now completely obsolete.
1076 For that reason, MD5 is not supported by GnuPG.
1077
1078
1079 ** What are ZLIB, ZIP and BZIP?
1080    :PROPERTIES:
1081    :CUSTOM_ID: define_compress
1082    :END:
1083
1084
1085 ZLIB, ZIP and BZIP refer to different kinds of compression algorithms.
1086 GnuPG will use one of these three algorithms to compress your data
1087 before encrypting it, unless GnuPG can see the data is already
1088 compressed.
1089
1090
1091
1092 ** What’s a ‘revocation certificate’?
1093    :PROPERTIES:
1094    :CUSTOM_ID: define_rev_cert
1095    :END:
1096
1097
1098 A revocation certificate is a [[#define_certificate][certificate]] that possesses the
1099 information necessary to mark another certificate as unusable.  This
1100 is called ‘revoking’ the certificate.
1101
1102 We recommended you create a revocation certificate immediately after
1103 generating a new GnuPG certificate.  Store it somewhere safe.
1104 Consult [[#generate_revocation_certificate][the FAQ instructions]] on
1105 how to do this.
1106
1107
1108
1109 ** What’s a ‘designated revoker’?
1110    :PROPERTIES:
1111    :CUSTOM_ID: define_desig_revkr
1112    :END:
1113
1114
1115 A designated revoker is a person, identified by a certificate, that
1116 has the authority to revoke another certificate held by a different
1117 person.  For instance, if you were using GnuPG in a corporate
1118 environment the IT staff might be listed as a designated revoker for
1119 your certificate, so that when you left the company the IT staff could
1120 revoke your certificate.
1121
1122
1123
1124 ** What does ‘validity’ mean?
1125    :PROPERTIES:
1126    :CUSTOM_ID: define_validity
1127    :END:
1128
1129
1130 Although a certificate makes certain assertions about identity, these
1131 assertions cannot be blindly trusted.  (Consider, for instance,
1132 whether you should trust a certificate that claims to belong to
1133 =obama@whitehouse.gov=.)
1134
1135 If you trust the certificate’s assertions, you are said to have
1136 ‘validated’ the certificate.  Validation can be done by fiat or as the
1137 result of a process.  For instance, you validate your own certificate
1138 by fiat: “this certificate says it belongs to me, and I trust it.”
1139 Validating other certificates, though, should probably have a little
1140 more rigor involved.  How much rigor will depend entirely on your own
1141 particular needs and the threats you face.
1142
1143
1144
1145
1146 ** What does ‘trust’ mean?
1147    :PROPERTIES:
1148    :CUSTOM_ID: define_trust
1149    :END:
1150
1151
1152 ‘Trust’ refers to how thoroughly a certificate has been [[#define_validity][validated]].
1153 The terms are used somewhat interchangeably.
1154
1155
1156
1157 ** What does ‘ownertrust’ mean?
1158    :PROPERTIES:
1159    :CUSTOM_ID: define_ownertrust
1160    :END:
1161
1162
1163 If a certificate has been [[#define_validity][validated]], and if you trust the person
1164 owning that certificate to do proper validation of certificates, you
1165 can tell GnuPG “I am willing to trust this person’s validations as if
1166 they were my own.”
1167
1168 For instance: Alice has fully validated Bob’s certificate.  She further
1169 believes, based on her knowledge of Bob, that he will be as careful as
1170 she is about the certificates he validates.  Alice declares she has
1171 ownertrust in Bob.  Now, any certificates that Bob validates will appear
1172 to Alice as valid, too.
1173
1174
1175 * How do I start using GnuPG?
1176   :PROPERTIES:
1177   :CUSTOM_ID: starting_out
1178   :END:
1179
1180 The very first thing is to join the [[#gnupg-users_list][GnuPG-Users mailing list]].  You’ll
1181 find it to be a welcoming community that’s friendly to newcomers and
1182 is eager to help out.
1183
1184
1185
1186 ** Does GnuPG need to be ‘tuned’ before use?
1187    :PROPERTIES:
1188    :CUSTOM_ID: tuning
1189    :END:
1190
1191 No.  GnuPG has sensible defaults right out of the box.  You don’t need
1192 to tune GnuPG before you can use it.
1193
1194
1195
1196 ** How large should my key be?
1197    :PROPERTIES:
1198    :CUSTOM_ID: new_key_size
1199    :END:
1200
1201 The overwhelming majority of users will be well-served by generating
1202 2048-bit RSA keys.  This is the default behavior for GnuPG.
1203
1204
1205 ** What algorithm should I use?
1206    :PROPERTIES:
1207    :CUSTOM_ID: new_key_algo
1208    :END:
1209
1210 The overwhelming majority of users will be well-served by generating
1211 2048-bit RSA keys.  This is the default behavior for GnuPG.
1212
1213
1214 ** Why does it take so long to generate a certificate?
1215    :PROPERTIES:
1216    :CUSTOM_ID: new_key_generate_time
1217    :END:
1218
1219 The short answer is, “your computer is doing a lot of work.”  But
1220 don’t worry: although generating new certificates can take a while,
1221 actually using them once they’re made is quite fast.
1222
1223
1224 ** What should I do after making my certificate?
1225    :PROPERTIES:
1226    :CUSTOM_ID: new_key_after_generation
1227    :END:
1228
1229 Generate a revocation certificate, and store it in a safe place.
1230 Alternately, you may wish to appoint [[#define_desig_revkr][a designated revoker]].
1231
1232
1233 *** How do I appoint a designated revoker?
1234     :PROPERTIES:
1235     :CUSTOM_ID: appoint_revoker
1236     :END:
1237
1238 A designated revoker is someone whom you trust to revoke your
1239 certificates on your behalf.  This person may revoke your certificates
1240 without needing a revocation certificate.  For instance, you may wish
1241 to appoint your lawyer as your designated revoker so that, in the
1242 event of your untimely death, your lawyer may revoke your
1243 certificates.
1244
1245 To add a revoker, use the following command line:
1246
1247 =gpg --edit-key= /[your key ID here]/ =addrevoker=
1248
1249 When prompted, enter the key ID of the person whom you wish to appoint
1250 as a revoker.  The revoker’s key must be fully validated.
1251
1252
1253
1254 *** How do I generate a revocation certificate?
1255     :PROPERTIES:
1256     :CUSTOM_ID: generate_revocation_certificate
1257     :END:
1258
1259
1260 A [[#define_rev_cert][revocation certificate]] marks another certificate as unusable.
1261
1262 To generate a revocation certificate for your key, do:
1263
1264 =gpg --armor --output revoke.asc --gen-revoke= /[your key ID]/
1265
1266 Copy =revoke.asc= to a safe place.
1267
1268
1269 *** How do I send my certificate to the keyserver network?
1270     :PROPERTIES:
1271     :CUSTOM_ID: send_to_keyservers
1272     :END:
1273
1274
1275 =gpg --keyserver pool.sks-keyservers.net --send-key= /[your certificate ID]/
1276
1277 You should only upload your own certificates to the keyservers, or
1278 obtain the certificate holder's permission before doing so.  In some
1279 circles it's considered rude to upload someone else's certificate; not
1280 everyone wants to publish their key publicly.
1281
1282
1283
1284 ** Where does GnuPG look for configuration options?
1285    :PROPERTIES:
1286    :CUSTOM_ID: location_gpg_conf_file
1287    :END:
1288
1289
1290 GnuPG looks at a file called =gpg.conf= to determine various runtime
1291 parameters.  On UNIX systems this file can be found in =~/.gnupg=.  On
1292 Windows systems open Explorer and go to =%APPDATA%\Roaming\GnuPG=.
1293
1294 ** What options should I put in my configuration file?
1295    :PROPERTIES:
1296    :CUSTOM_ID: new_user_gpg_conf
1297    :END:
1298
1299 The good news is, you really shouldn’t need to.  That said, the
1300 following is Rob Hansen’s =gpg.conf= file.
1301
1302 #+begin_example
1303
1304 # Tell GnuPG that I want maximum OpenPGP conformance.
1305 openpgp
1306
1307 # Disable a few messages from GnuPG that I know I don't need.
1308 no-greeting
1309 no-secmem-warning
1310
1311 # Don't include a version number or a comment in my output.
1312 no-emit-version
1313 no-comments
1314
1315 # Use full 16-character key IDs, not short 8-character key IDs.
1316 keyid-format long
1317
1318 # Use the global keyserver network for certificate lookups.
1319 # Further, whenever I send or receive something to/from the
1320 # keyserver network, clean up what I get or send.
1321 keyserver pool.sks-keyservers.net
1322 keyserver-options import-clean-sigs import-clean-uids export-clean-sigs export-clean-uids
1323
1324 # If I don't explicitly state which certificate to use, use this one.
1325 default-key 1DCBDC01B44427C7
1326
1327 # Always include signatures from these two certificates.
1328 local-user 1DCBDC01B44427C7
1329
1330 # Always add these two certificates to my recipients list.
1331 encrypt-to 1DCBDC01B44427C7
1332
1333 # Turn "From" into "> From", in order to play nice with UNIX mailboxes.
1334 escape-from-lines
1335
1336 # Prefer strong hashes whenever possible.
1337 personal-digest-preferences SHA256 SHA384 SHA512 SHA224 RIPEMD160
1338
1339 # Prefer more modern ciphers over older ones.
1340 personal-cipher-preferences CAMELLIA256 AES256 TWOFISH CAMELLIA192 AES192 CAMELLIA128 AES BLOWFISH CAST5 3DES
1341
1342 # Turn up the compression level and prefer BZIP2 over ZIP and ZLIB.
1343 bzip2-compress-level 9
1344 compress-level 9
1345 personal-compress-preferences BZIP2 ZIP ZLIB
1346 #+end_example
1347
1348
1349
1350 ** Is there any particular keyserver I should use?
1351    :PROPERTIES:
1352    :CUSTOM_ID: new_user_default_keyserver
1353    :END:
1354
1355
1356 Many people have had excellent luck with =pool.sks-keyservers.net=.  On OS X,
1357 some people have needed to use =ipv4.pool.sks-keyservers.net= instead.
1358
1359
1360 ** What’s the difference between an ‘option’ and a ‘command’?
1361    :PROPERTIES:
1362    :CUSTOM_ID: diff_option_commands
1363    :END:
1364
1365 Commands tell GnuPG what to do: options tell GnuPG how to do it.  For
1366 instance, =encrypt= is a command, and =armor= is an option that tells
1367 GnuPG to ensure the output contains only printable characters.
1368
1369
1370 ** What are the most commonly used options?
1371    :PROPERTIES:
1372    :CUSTOM_ID: common_options
1373    :END:
1374
1375 Produce more output explaining what GnuPG is doing:
1376
1377 =-v=, =--verbose=
1378
1379 Some of the most commonly used options are:
1380
1381 Make no changes; this is useful for testing a command line that will
1382 modify keys or generate output:
1383
1384 =-n=, =--dry-run=
1385
1386 Send output to the named file:
1387
1388 =-o= /FILE/, =--output= /FILE/
1389
1390 Create ASCII-armored output that can be safely e-mailed, instead of
1391 binary output:
1392
1393 =-a=, =--armor=
1394
1395 When encrypting a message, you will usually supply at least one
1396 recipient ID with the recipient option.  This option can be supplied
1397 multiple times to encrypt a message to multiple recipients:
1398
1399 =-r= /KEYID/, =--recipient= /KEYID=/   /specify a recipient ID/
1400
1401
1402 ** What are the most commonly used commands?
1403    :PROPERTIES:
1404    :CUSTOM_ID: common_commands
1405    :END:
1406
1407 GnuPG's primary functions are to encrypt and decrypt messages, and to
1408 sign and verify them.  It's possible to sign without encrypting or
1409 encrypt without signing.
1410
1411 Signing a file's content is done with the =-s= or =--sign= commands.
1412 A variation is =-b= or =--detach-sign=, which produces a separate
1413 signature without including the file's content; this is useful for
1414 signing a software archive or other large file.  The key to use for
1415 the signature can be specified with the =local-user= setting in your
1416 =gpg.conf= file, or with the =-u=, =--local-user= options.
1417
1418 Encrypting a file's content is done with the =-e= or =--encrypt=
1419 commands.  Recipients are specified with the =-r= or =--recipient=
1420 options.
1421
1422 GnuPG's default action is to decrypt and verify its input file,
1423 writing the contents to standard output or to the filename specified
1424 by the =-o= or =--output= options.  The =--verify= command will only
1425 verify the signature without writing the file's contents anywhere.
1426
1427 These commands are the most commonly used. GnuPG has many more
1428 commands, largely for managing your keyring containing your private
1429 keys and the certificates of others.
1430
1431
1432 ** How do I use another person’s certificate?
1433    :PROPERTIES:
1434    :CUSTOM_ID: using_certificates
1435    :END:
1436
1437 In order to send an encrypted message or verify a signature, you must
1438 obtain the certificate for the recipient’s/signer’s public key.
1439
1440 Occasionally you might obtain the certificate physically, by meeting
1441 the certificate holder face-to-face and exchanging the certificate on
1442 some storage medium such as a USB stick, memory card, or portable
1443 disk.  Or you might download a copy of the certificate from the
1444 holder's web site.
1445
1446 Once obtained in one of these ways, you can add the certificate to
1447 your collection of public keys by doing:
1448
1449 =gpg --import certificate.txt=
1450
1451 More commonly, you'll download a correspondent's certificate from a
1452 keyserver.
1453
1454
1455
1456 *** How do I search the keyserver for someone’s certificate?
1457     :PROPERTIES:
1458     :CUSTOM_ID: searching_keyservers
1459     :END:
1460
1461
1462 There is also a network of public keyservers, accessible under the
1463 collective hostname =pool.sks-keyservers.net=. GnuPG users can upload
1464 their certificates to the keyservers, and other users can then search
1465 for and download them.
1466
1467 =gpg --keyserver pool.sks-keyservers.net --search= /[email address, name, key ID, etc.]/
1468
1469 GnuPG will list matching certificates and prompt you to select which
1470 ones you wish to download and add to your keyring.
1471
1472 People will obtain new signatures for their certificates from time to
1473 time.  =gpg --refresh-keys= will recheck all of the certificates on
1474 your public key and download any new signatures for those keys.
1475
1476
1477
1478 *** How do I retrieve a certificate if I already know its fingerprint?
1479     :PROPERTIES:
1480     :CUSTOM_ID: retrieving_by_fingerprint
1481     :END:
1482
1483
1484 =gpg --keyserver pool.sks-keyservers.net --recv-key= /[fingerprint]/
1485
1486
1487
1488 *** Why do I need to validate certificates?
1489     :PROPERTIES:
1490     :CUSTOM_ID: why_validate
1491     :END:
1492
1493
1494 If you were to receive a letter in the mail that claimed to be from
1495 the President of the United States, would you believe it?  Probably
1496 not, because anyone can put together official-looking letterhead:
1497 you’d insist on doing some kind of checking to make sure that no one
1498 was fooling with you.
1499
1500 The same applies to email.  A certificate can claim to be from anyone.
1501 You have to make sure that the certificate really belongs to whom it
1502 claims it belongs to.  That process of making sure is called
1503 ‘validation’.
1504
1505
1506
1507 *** How do I validate certificates?
1508     :PROPERTIES:
1509     :CUSTOM_ID: how_to_validate
1510     :END:
1511
1512
1513 *This advice is controversial.*
1514
1515 It’s controversial for a simple reason: every Tom, Dick and Harry has
1516 their own idea about the “right way” to validate certificates.  Some
1517 of these people are well-informed and some of them are just plain
1518 unhinged.  In the end, you are responsible for making your own
1519 decisions.  That said, the following is generally agreed upon as being
1520 a reasonable procedure:
1521
1522 1. Meet the certificate holder face-to-face.
1523 2. Ask to see two forms of government-issued identification.
1524 3. Upon verifying the person really is who they claim to be, ask this
1525    person to provide their certificate’s fingerprint, their email
1526    address, and where you can obtain a copy of their certificate.
1527    (Example: “My fingerprint is =4541 BB01 8EA4 8F99 19CA 3701 2380
1528    6BE5 D6B9 8E10=, and you can find it on
1529    =pool.sks-keyservers.net=.”)
1530 4. On your own computer, retrieve the person’s certificate from the
1531    specified location.  Check to make sure the email address they gave
1532    you is one that’s also listed on the certificate.  Check to make
1533    sure the fingerprint of the certificate you’ve downloaded matches
1534    the fingerprint the person gave you.
1535 5. =gpg --edit-key= /[their certificate ID]/ =sign=
1536 6. Once signed, =gpg --armor --output signed_cert.asc --export=
1537    /[their certificate ID]/
1538 7. Send the file =signed_cert.asc= to the address they gave you
1539
1540 By following this process you first ensure that you’re speaking to the
1541 right person.  By comparing the fingerprints of the certificate you
1542 have against the fingerprint they specified, you’re ensuring that you
1543 have the right certificate.  Checking to make sure the email address
1544 they gave you is also listed on the certificate is one more check to
1545 make sure.  Once that’s done, presto, Bob’s your uncle: there’s
1546 nothing left to do except sign it and return the newly-signed
1547 certificate to the other person.
1548
1549
1550 ** Why can’t I read emails I’ve sent, and how do I fix it?
1551    :PROPERTIES:
1552    :CUSTOM_ID: encrypt_to_self
1553    :END:
1554
1555
1556 You encrypted a message to Alice, which means that it requires Alice’s
1557 private key to read it.  Only Alice has her private key.  That’s why
1558 you can’t read encrypted traffic you generated: only Alice can read
1559 it.
1560
1561 To get around this, add yourself as a recipient (=--recipient = /[your
1562 certificate ID]/).
1563
1564
1565
1566 ** How do I encrypt a file for multiple recipients?
1567    :PROPERTIES:
1568    :CUSTOM_ID: multiple_recipients
1569    :END:
1570
1571
1572 Use multiple =--recipient= options.  Remember, options come before
1573 commands!
1574
1575
1576
1577
1578 ** How do I sign a file with multiple certificates?
1579    :PROPERTIES:
1580    :CUSTOM_ID: multiple_signers
1581    :END:
1582
1583
1584 Use multiple =--local-user= options.  Remember, options come before
1585 commands!
1586
1587
1588
1589 ** How do I combine encryption with signing?
1590    :PROPERTIES:
1591    :CUSTOM_ID: encrypt_and_sign
1592    :END:
1593
1594
1595 =gpg --armor --recipient= /[first recipient’s key ID]/ =--local-user= /[your key ID]/ =--sign --encrypt= /[filename]/
1596
1597
1598
1599 ** How do I force GnuPG to make printable-text output?
1600    :PROPERTIES:
1601    :CUSTOM_ID: ascii_armor
1602    :END:
1603
1604 Normally, computers use eight-bit binary code.  This often presents
1605 trouble for email, which often requires that only printable
1606 (seven-bit) characters may be used.  By using the =--armor= flag,
1607 GnuPG will generate output containing only printable characters.
1608
1609
1610 ** How do I create an ‘inline signature’?
1611    :PROPERTIES:
1612    :CUSTOM_ID: generate_inline_signature
1613    :END:
1614
1615 An inline signature wraps a textual header and footer around the text
1616 to be signed, leaving the text readable without running GnuPG.  This
1617 doesn't conceal the text at all and therefore provides no secrecy, but
1618 if someone edits the text GnuPG will report that the signature is bad.
1619
1620 To generate an inline signature, run
1621
1622 =gpg --armor --output signed_file.asc --local-user= /[your key ID]/ =--clearsign message_file.txt=
1623
1624 To verify the resulting file, simply invoke GnuPG with the filename of
1625 the signed file:
1626
1627 =gpg signed_file.asc=
1628
1629
1630 ** How can I use GnuPG to verify a file I've downloaded?
1631    :PROPERTIES:
1632    :CUSTOM_ID: how_do_i_verify_signed_packages
1633    :END:
1634
1635 1.  Get a copy of the author’s public certificate and import it to your
1636     keyring.  It’s important to get the author’s certificate through a
1637     trusted source.  On the internet, anyone can be pretend to be anyone.
1638     Particularly, be careful if the certificate you have doesn’t match the
1639     one used for prior code releases.
1640
1641 2.  Once you're confident you have the correct certificate, give it a local
1642     signature.  Assuming you want to locally sign certificate
1643     1DCBDC01B44427C7, you’d type:
1644
1645     =gpg --edit-key 1DCBDC01B44427C7 lsign=
1646
1647 3.  Download the software package.  Let’s assume it’s called “foo.zip”.
1648
1649 4.  Download the detached signature for the package.  Let’s assume it’s
1650     called “foo.zip.asc”.
1651
1652 5.  Run:
1653
1654     =gpg foo.zip.asc=
1655
1656     GnuPG will assume the original file is in foo.zip.  (If GnuPG can’t find
1657     foo.zip, GnuPG will prompt you for the name of the original package.)  If
1658     all goes well, GnuPG will report good signatures and you may be confident
1659     you've received the package as the author intended.
1660
1661 Please note that a good signature doesn’t mean a piece of software is
1662 trustworthy, reliable, or bug-free.  It just means nobody tampered with it and
1663 you’re receiving it as the author intends.  Keep a healthy dose of
1664 skepticism, and remember that cryptography cannot save us from
1665 our own foolishness.
1666
1667 ** How can I use GnuPG in an automated environment?
1668    :PROPERTIES:
1669    :CUSTOM_ID: automated_use
1670    :END:
1671
1672 You should use the =--batch= option.  Don't bother to use a passphrase
1673 because there's usually no way to store it more securely than on the
1674 secret keyring itself.
1675
1676 The suggested way to create keys for an automated environment is as
1677 follows.  First, on a secure machine:
1678
1679 1. If you want to do automatic signing, create a signing subkey for
1680    your key.  Use the interactive key editing menu by issuing the
1681    command:
1682
1683    =gpg --edit-key= /keyID/
1684
1685    Enter "addkey" and select the DSA key type.
1686
1687 2. Make sure that you use a passphrase; this is required by the
1688    current implementation to let you export the secret key.
1689
1690 3. Run:
1691
1692    =gpg --export-secret-subkeys --no-comment= /newsubkeyID/ => secring.auto=
1693
1694 4. Copy =secring.auto= and the public keyring to a test directory.
1695
1696 5. Change to the test directory.
1697
1698 6. Run the command:
1699
1700 =gpg --homedir . --edit= /newsubkeyID/
1701
1702    Use the sub-command =passwd= to remove the passphrase from the
1703    subkeys. You may also want to remove all unused subkeys by doing
1704    =key N= and then =delkey= for each subkey.
1705
1706 7. Copy =secring.auto= to the target box somehow.
1707
1708    On the target machine, install =secring.auto= as the secret keyring
1709    and begin writing scripts that invoke GnuPG.
1710
1711    It's a good idea to install an intrusion detection system so that
1712    you will get notice of a successful intrusion.  If that happens,
1713    you can revoke all the subkeys installed on that machine and
1714    install new subkeys once the machine is secured again.
1715
1716
1717 ** I’m a programmer and I need a GnuPG library.  Is there one?
1718    :PROPERTIES:
1719    :CUSTOM_ID: yes_gpgme
1720    :END:
1721
1722
1723 Check out [[https://www.gnupg.org/software/gpgme/][GPGME (GnuPG Made Easy)]].
1724
1725
1726
1727 ** I’m a programmer and I need a way to call GnuPG internals directly.  Is there a library for this?
1728    :PROPERTIES:
1729    :CUSTOM_ID: keep_dreaming
1730    :END:
1731
1732 No, nor will there be.
1733
1734
1735 * What common problems come up?
1736   :PROPERTIES:
1737   :CUSTOM_ID: common_problems
1738   :END:
1739
1740
1741 ** Why is GnuPG warning me this certificate might not belong to whom I think it does?
1742    :PROPERTIES:
1743    :CUSTOM_ID: you_need_to_validate
1744    :END:
1745
1746
1747 If you received an email claiming to be from a Nigerian oil tycoon,
1748 would you believe it?  Or would you insist on doing some kind of
1749 verification first, in order to make sure that you’re not being
1750 scammed or swindled?
1751
1752 The same principle applies here.  If you’re using a certificate that
1753 claims to belong to Alice, but there’s no evidence it actually belongs
1754 to Alice, GnuPG will warn you that you’re using an untrusted
1755 certificate.
1756
1757 You probably want to validate the certificate; see [[#how_to_validate][this FAQ's
1758 instructions]].
1759
1760
1761
1762 ** Why is GnuPG warning me about using insecure memory?
1763    :PROPERTIES:
1764    :CUSTOM_ID: insecure_memory
1765    :END:
1766
1767
1768 GnuPG tries to lock memory so that no other process can see it and so
1769 that the memory will not be written to swap.  If for some reason it’s
1770 not able to do this (for instance, certain platforms don’t support
1771 this kind of memory locking), GnuPG will warn you that it’s using
1772 insecure memory.
1773
1774 While it’s almost always better to use secure memory, it’s not
1775 necessarily a bad thing to use insecure memory.  If you own the
1776 machine and you’re confident it’s not harboring malware, then this
1777 warning can probably be ignored.
1778
1779
1780
1781 ** Why is GnuPG changing my message?
1782    :PROPERTIES:
1783    :CUSTOM_ID: escaped_dashes
1784    :END:
1785
1786 GnuPG uses special lines to denote the beginning of a message, the
1787 beginning of a signature, and so forth.  These lines start with
1788 “=----- BEGIN=…”.  If your text contains a line beginning with a dash,
1789 that line will be slightly mangled in order to prevent GnuPG from
1790 misinterpreting your data as one of its special lines.
1791
1792
1793 * What are some common best practices?
1794   :PROPERTIES:
1795   :CUSTOM_ID: best_practices
1796   :END:
1797
1798 It’s very hard to give advice on this subject, because everyone will
1799 have their own opinion.  That said, here are some good guidelines:
1800
1801 - *Join the community.* Join [[gnupg-users_list][GnuPG-Users]] and get involved in the
1802   discussions.  The conversation is wide-ranging and you’ll encounter
1803   a great variety of thoughts and opinions.  Reading GnuPG-Users is
1804   one of the best ways to educate yourself.
1805 - *Practice.* If you don’t practice these skills before they become
1806   necessary, you won’t be able to use these skills effectively.
1807 - *Generate a revocation certificate and keep it safe.*
1808 - *Use a strong passphrase.*
1809 - *Keep your computer free of malware.*
1810 - *Validate certificates correctly.*
1811
1812
1813
1814 ** How can I choose a strong passphrase?
1815    :PROPERTIES:
1816    :CUSTOM_ID: strong_passphrase
1817    :END:
1818
1819 If someone manages to obtain your secret key, the only thing
1820 protecting the key will be your passphrase.  A passphrase should be 1)
1821 difficult to guess for someone who knows you, and 2) difficult to
1822 brute-force by trying every possible combination of characters.
1823
1824 To meet requirement 1), the passphrase shouldn't be based on
1825 publicly-available information about you: your birthday, your spouse's
1826 name, your school's motto, a line of text from a book, etc.  To meet
1827 requirement 2), the passphrase should be long: commercially available
1828 hardware can try 2.8 billion passwords in a day, which is sufficient
1829 to crack a 10-letter all-lowercase password.
1830
1831 One simple approach that produces easy-to-remember passphrases is to
1832 generate four to six random words, as illustrated by the XKCD cartoon
1833 [[http://xkcd.com/936/][“Correct, horse!  Battery staple!”]].
1834
1835
1836
1837 ** How can I keep my revocation certificate safe?
1838    :PROPERTIES:
1839    :CUSTOM_ID: keep_rev_cert_safe
1840    :END:
1841
1842 Good places include safe deposit boxes, kept on file with your lawyer,
1843 placed in a fireproof safe, and so forth.  It should be treated as an
1844 important document that needs to be kept safe.
1845
1846
1847 ** How can I keep my computer safe from malware?
1848    :PROPERTIES:
1849    :CUSTOM_ID: malware
1850    :END:
1851
1852
1853 Although there is no guaranteed way of keeping your system free of
1854 malware, you can reduce your risk quite a lot by following some basic
1855 rules.
1856
1857 1.  Keep your system up-to-date.  Always apply the latest patches.
1858 2.  Stop using old versions of Internet Explorer.  If possible, use
1859     [[https://www.getfirefox.com][Mozilla Firefox]] or [[https://download-chromium.appspot.com/][Chromium]].
1860 3.  Don’t open email attachments unless they are expected and come
1861     from someone you know.
1862 4.  Don’t click on email links unless they are expected and come from
1863     someone you know.
1864 5.  Be suspicious of requests for personal information, especially if
1865     it’s more detail than is strictly necessary to solve a problem.
1866
1867
1868 ** Should I use encrypted disk software like TrueCrypt, BitLocker or FileVault?
1869    :PROPERTIES:
1870    :CUSTOM_ID: disk_encryption
1871    :END:
1872
1873 You can if you want, but it won’t make your private key any more
1874 secure.  Your private key is already encrypted: your passphrase is the
1875 key used to decrypt your private key.
1876
1877
1878
1879 * Advanced topics
1880   :PROPERTIES:
1881   :CUSTOM_ID: advanced_topics
1882   :END:
1883
1884
1885 These topics are ‘advanced’ in the sense that you really don’t need to
1886 understand them in order to safely and correctly use GnuPG.  That
1887 said, if you have a more technical question about GnuPG, you may find
1888 some of the answers in this section.
1889
1890
1891 ** Which ciphers are recommended, and why?
1892    :PROPERTIES:
1893    :CUSTOM_ID: recommended_ciphers
1894    :END:
1895
1896 Although all the ciphers in GnuPG are believed strong, they are not all
1897 equally recommended.  For asymmetric ciphers we recommend RSA over
1898 DSA and/or Elgamal; for symmetric ciphers we recommend AES, Camellia, and/or
1899 Twofish over all the others.
1900
1901 With respect to our RSA recommendation, there is no reason to believe RSA
1902 is any better or worse than DSA and/or Elgamal in a cryptographic sense.
1903 However, if you ever want to migrate your certificate to a smart card or
1904 other cryptographic token, you'll find RSA is much better supported.
1905
1906 With respect to our symmetric cipher recommendations, we have to explain a
1907 little bit about cryptanalysis.
1908
1909 First, ciphers are deterministic: given the same inputs, they generate the same
1910 outputs.
1911
1912 Second, ciphers don't operate on individual bytes.  They work on blocks of
1913 data, either eight or sixteen bytes large, depending on the cipher.
1914
1915 Third, the OpenPGP standard requires that ciphers run in what's
1916 called a “feedback mode.”  In feedback mode, a cipher has two inputs: the
1917 random session key used for the message, and the output of the previous block.
1918
1919 Put it all together and imagine what would happen if, within the same message,
1920 two identical ciphertext blocks were created.  Since the cipher is
1921 deterministic (always generates the same output for the same inputs), and
1922 since the key and the previous block are the same, the output of this block
1923 would be the same.  This repetition creates a distinctive pattern which a
1924 cryptanalyst might be able to potentially exploit.
1925
1926 For a cipher with an eight-byte block size, you'll probably repeat a block
1927 after about 32 gigabytes of data.  This means if you encrypt a single message
1928 larger than 32 gigabytes, it's pretty much a statistical guarantee you'll have
1929 a repeated block.  That's bad.  For this reason, we recommend you not use
1930 ciphers with eight-byte data blocks if you're going to be doing bulk
1931 encryption.  It's very unlikely you'll have any problems if you keep your
1932 messages under 4 gigabytes in size.
1933
1934 For a cipher with a sixteen-byte block size, you'd need to encrypt a single
1935 message that contained more data than is found in the entire internet.  In
1936 other words, it's no longer an issue.
1937
1938 Twofish, AES, and Camellia all operate on sixteen bytes at a time.  The others
1939 all operate on eight bytes at a time.
1940
1941 ** Why does GnuPG default to 2048 bit RSA-2048?
1942    :PROPERTIES:
1943    :CUSTOM_ID: default_rsa2048
1944    :END:
1945
1946 At the time the decision was made, 2048-bit RSA was thought to provide
1947 reasonable security for the next decade or more while still being
1948 compatible with the overwhelming majority of the OpenPGP ecosystem.
1949
1950 *** Is that still the case?
1951 Largely, yes.  According to NIST Special Publication 800-57, published
1952 in July 2012, 2048-bit RSA is believed safe until 2030.  At present,
1953 no reputable cryptographer or research group has cast doubt on the
1954 safety of RSA-2048.  That said, many are suggesting shifting to larger
1955 keys, and GnuPG will be making such a shift in the near future.
1956
1957 *** What do other groups have to say about 2048-bit RSA?
1958 In 2014, the German Bundesnetzagentur fuer Elektrizitaet, Gas,
1959 Telekommunikation, Post und Eisenbahnen recommended using RSA-2048 for
1960 long-term security in electronic signatures.
1961
1962 In 2012, ECRYPT-II published their “Yearly Report on Algorithms and
1963 Keysizes” wherein they expressed their belief RSA-1776 will suffice
1964 until at least 2020, and RSA-2432 until 2030.
1965
1966 In 2010, France’s Agence Nationale de la Securite des Systems
1967 d’Information stated they had confidence in RSA-2048 until at
1968 least 2020.
1969
1970 *** Is there a general recommendation that 3072-bit keys be used for new applications?
1971 No, although some respected people and groups within the cryptographic
1972 community have made such recommendations.  Some even recommend
1973 4096-bit keys.
1974
1975 *** Will GnuPG ever support RSA-3072 or RSA-4096 by default?
1976 Probably not.  The future is elliptical-curve cryptography, which will
1977 bring a level of safety comparable to RSA-16384.  Every minute we
1978 spend arguing about whether we should change the defaults to RSA-3072
1979 or more is one minute the shift to ECC is delayed.  Frankly, we think
1980 ECC is a really good idea and we'd like to see it deployed as soon as
1981 humanly possible.
1982
1983 *** I think I need larger key sizes.
1984 By all means, feel free to generate certificates with larger keys.
1985 GnuPG supports up to 4096-bit keys.
1986
1987
1988 ** Do other high-security applications use RSA-2048?
1989    :PROPERTIES:
1990    :CUSTOM_ID: rsa2048_in_the_real_world
1991    :END:
1992
1993 2048-bit RSA is commonly used to secure SSL root signing certificates.
1994 It’s also used to sign operating system patches, Authenticode
1995 signatures, Java applets and more.  RSA-2048 is believed to be safe
1996 against attack until at least the year 2030, so use it with
1997 confidence.
1998
1999
2000 ** Why doesn’t GnuPG default to using RSA-4096?
2001    :PROPERTIES:
2002    :CUSTOM_ID: no_default_of_rsa4096
2003    :END:
2004
2005 Because it gives us almost nothing, while costing us quite a lot.
2006
2007 Breaking an RSA-10 key requires you to try each prime number between
2008 two and one hundred.  There are twenty-five of these, meaning RSA-10
2009 is equivalent to about a 5-bit symmetric cipher.  Breaking an RSA-20
2010 key requires you to try each prime number between two and one
2011 thousand: there are 168 of them, meaning RSA-20 is equivalent to about
2012 an 8-bit cipher.  Doubling the keylength (from RSA-10 to RSA-20)
2013 didn't give us the benefit that we naively expected.  Each additional
2014 bit gives correspondingly less in the way of additional security, and
2015 we quickly reach a point of diminishing returns.
2016
2017 That point of diminishing returns happens around RSA-2048.  Once you
2018 move past RSA-2048, you’re really not gaining very much.  At the same
2019 time, moving past RSA-2048 means you lose the ability to migrate your
2020 certificate to a smartcard, or to effectively use it on some mobile
2021 devices, or to interoperate with other OpenPGP applications that don’t
2022 handle large keys gracefully.
2023
2024 If you really want a 4096-bit RSA key there’s nothing stopping you:
2025 but we sincerely believe the overwhelming majority of users will be
2026 well-served with RSA-2048.
2027
2028
2029
2030 ** Why do people advise against using RSA-4096?
2031    :PROPERTIES:
2032    :CUSTOM_ID: please_use_ecc
2033    :END:
2034
2035 Almost always when people use 4096-bit RSA they’re doing so because
2036 they believe RSA-4096 to be much stronger than it is.  The United
2037 States’ National Institute of Standards and Technology ([[http://www.nist.gov][NIST]]) states
2038 that RSA-2048 gives roughly 112 bits of security and RSA-3072 gives
2039 roughly 128.  There is no formal recommendation on where RSA-4096
2040 lies, but the general consensus is that it would come in somewhere
2041 around 140 bits — 28 bits of improvement over RSA-2048.  This is an
2042 improvement so marginal that it’s really not worth mentioning.
2043
2044 If you need more security than RSA-2048 offers, the way to go would be
2045 to switch to elliptical curve cryptography — not to continue using
2046 RSA.
2047
2048
2049
2050 ** Why does GnuPG support RSA-4096 if it’s such a bad idea?
2051    :PROPERTIES:
2052    :CUSTOM_ID: not_a_bad_idea_just_unnecessary
2053    :END:
2054
2055 RSA-4096 is not a bad idea: it’s just, generally speaking,
2056 unnecessary.  You gain very little in the way of additional resistance
2057 to brute-forcing and cryptanalysis.
2058
2059
2060
2061 ** Can any of the ciphers in GnuPG be brute-forced?
2062    :PROPERTIES:
2063    :CUSTOM_ID: brute_force
2064    :END:
2065
2066
2067 No.
2068
2069 The laws of physics require that a certain amount of heat be used in
2070 computation.  This is a consequence of the Second Law of
2071 Thermodynamics, and may not be violated under our current
2072 understanding of the laws of physics.
2073
2074 Further, physics requires that a certain amount of time be used in
2075 computation.  This is a consequence of the Heisenberg Uncertainty
2076 Principle, and may not be violated under our current understanding of
2077 the laws of physics.
2078
2079 Using these two principles (the [[https://en.wikipedia.org/wiki/Landauer_bound][Landauer bound]] and the
2080 [[https://en.wikipedia.org/wiki/Margolus%E2%80%93Levitin_theorem][Margolus–Levitin limit]]), we can determine quite accurately how much
2081 heat would be released by a computer that brute-forced a 128-bit
2082 cipher.  The results are profoundly silly: it’s enough to boil the
2083 oceans and leave the planet as a charred, smoking ruin.
2084
2085 This is not to say that GnuPG cannot be successfully attacked.  It is
2086 only to say that none of the ciphers in GnuPG are susceptible to
2087 brute-forcing.
2088
2089
2090
2091 ** Has GnuPG ever been successfully attacked?
2092    :PROPERTIES:
2093    :CUSTOM_ID: successful_attacks
2094    :END:
2095
2096
2097 This depends entirely on what is meant by “successful attack.”
2098
2099 If you mean, “has GnuPG traffic ever been successfully
2100 cryptanalyzed?”, the answer is a flat ‘no’.  We are unaware of any
2101 credible reports of any of the ciphers used in GnuPG having ever been
2102 successfully cryptanalyzed.
2103
2104 If you mean, “have people figured out ways to obtain the plaintext
2105 anyway?”, the answer is an emphatic ‘yes.’ In [[http://news.cnet.com/8301-10784_3-9741357-7.html][a 2007 Drug Enforcement
2106 Administration case]], a keylogger was installed on a suspect's
2107 computer.
2108
2109 GnuPG protects your traffic against cryptanalysis, but it is not magic
2110 fairy dust that can be sprinkled over your data to make it safe
2111 against all threats.
2112
2113
2114
2115 ** Should I use PGP/MIME for my emails?
2116    :PROPERTIES:
2117    :CUSTOM_ID: use_pgpmime
2118    :END:
2119
2120 Almost certainly.  In the past this was a controversial question, but
2121 recently there's come to be a consensus: use PGP/MIME whenever possible.
2122 The reason for this is that it's possible to armor email headers and
2123 metadata with PGP/MIME, but sending messages inline leaves this data
2124 exposed.  As recent years have taught us, the metadata is often as
2125 sensitive as the contents of the message.  PGP/MIME can protect metadata;
2126 inline can't.
2127
2128 However, please be aware that not all mail servers handle PGP/MIME
2129 properly.  Some mailing lists are incompatible with it (PGP-Basics, for
2130 instance).  Some mailing list software mangles PGP/MIME (old versions of
2131 Mailman, for instance).
2132
2133 If you have any problems with PGP/MIME, consider carefully whether you
2134 need metadata protection.  If you don't, then fall back to inline.
2135
2136
2137 ** What are the best algorithms in GnuPG?
2138    :PROPERTIES:
2139    :CUSTOM_ID: no_best_algo
2140    :END:
2141
2142
2143 MD5 and SHA-1 should be avoided if possible, and for bulk encryption
2144 it’s best to use Camellia, Twofish, or AES.  Beyond that guidance there is no
2145 “best algorithm” in GnuPG.  It’s sort of like
2146 asking whether Godzilla or King Kong is better at terrorizing urban
2147 cities: there is no clear-cut winner.
2148
2149 This is not to say you shouldn’t have preferences, though.  It is only
2150 to say that GnuPG’s algorithms are so well-designed for what they do
2151 that there is no single “best”.  There’s just a lot of personal,
2152 subjective choice.
2153
2154
2155 ** Why is my DSA key limited to 3072 bits?
2156    :PROPERTIES:
2157    :CUSTOM_ID: no_dsa4096
2158    :END:
2159
2160
2161 The United States’ National Institute of Standards and Technology
2162 ([[http://www.nist.gov][NIST]]) is responsible for the DSA specification.  NIST has not
2163 published a 4096-bit DSA variant, and thus GnuPG doesn’t offer it.
2164
2165
2166
2167 ** Why does my DSA-1024 key use a different digest algorithm than my DSA-2048 or DSA-3072 key?
2168    :PROPERTIES:
2169    :CUSTOM_ID: hash_widths_in_dsa
2170    :END:
2171
2172
2173 The DSA algorithm has gone through several revisions.
2174
2175 GnuPG’s original implementation of DSA supported 1024-bit keys that
2176 used either SHA-1 or RIPEMD-160 as hashes.
2177
2178 When the United States’ National Institute of Standards and Technology
2179 ([[http://www.nist.gov][NIST]]) revised the specification to support 2048- and 3072-bit keys,
2180 they also required longer hashes be used.  DSA-2048 required a 224-bit
2181 hash (SHA-224, or a longer hash cut down to 224 bits), and DSA-3072
2182 required a 256-bit hash (SHA-256, or a longer hash cut down to 256
2183 bits).  They also now allowed for stronger hashes to be used for
2184 DSA-1024: if they were more than 160 bits, they would simply be cut
2185 down.
2186
2187 So, depending on how you have GnuPG configured, GnuPG might be forced
2188 to use SHA-1 and/or RIPEMD-160 with DSA-1024; GnuPG might be able to
2189 use any of the longer SHAs with DSA-1024; GnuPG might use SHA-224,
2190 -256, -384 or -512 for DSA-2048; GnuPG might use SHA-256, SHA-384 or
2191 SHA-512 for DSA-3072.
2192
2193 ** Why can't I decrypt things I encrypted twenty years ago with PGP 2.6?
2194    :PROPERTIES:
2195    :CUSTOM_ID: pgp_26
2196    :END:
2197
2198 Twenty years ago, PGP 2.6 was released.  It was very successful, but there
2199 were some unfortunate things about its design.  Soon after a better version
2200 was released, and this was ultimately standardized as RFC 4880.
2201
2202 GnuPG supports RFC 4880.  It does not support PGP 2.6.  This shouldn't be
2203 surprising: all software ultimately breaks compatibility with what came
2204 before it.  Word processors of 2015 don't support the WordStar document
2205 format, just like you can't put a Kaypro floppy disk in a modern PC.
2206
2207 If you absolutely must have PGP 2.6 support, we recommend you use PGP 2.6.
2208 It's easy to find on the internet.  Barring that, you could use GnuPG 1.4,
2209 which is an older branch of GnuPG that had some (but by no means complete)
2210 PGP 2.6 support.
2211
2212
2213
2214 * COMMENT HTML style specifications
2215
2216 #+begin_src emacs-lisp
2217   (defun org-faq-make-target ()
2218     "Make hard target for current headline."
2219     (interactive)
2220     (if (not (org-on-heading-p))
2221         (error "Not on a headline"))
2222     (let ((h (org-trim (org-get-heading 'no-tags))))
2223       (if (string-match "[ \t]*\\?\\'" h)
2224           (setq h (replace-match "" t t h)))
2225       (while (string-match "[ \t]+" h)
2226         (setq h (replace-match "-" t t h)))
2227       (setq h (downcase h))
2228       (org-entry-put nil "CUSTOM_ID" h)))
2229 #+end_src