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