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