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