blog: Add draft for status report.
[gnupg-doc.git] / misc / blog.gnupg.org / 20170116-gnupg-this-past-fall.org
1 # GnuPG this Past Fall
2 #+STARTUP: showall
3 #+AUTHOR: Neal
4 #+DATE: January 6, 2017
5
6 ** GnuPG this Past Fall
7
8 *** Development
9
10 The focus of development the past few months has been on polishing the
11 GnuPG 2.1 code base so that we can release GnuPG 2.2.  This is
12 particularly important to us, because we want the latest features to
13 be available in the next release of Debian stable, which is about to
14 freeze.  All of the main developers have participated in this effort,
15 but I want to particularly point out Daniel Kahn Gillmor's many
16 patches in this area.  Even prior to this effort, Daniel has regularly
17 submitted patches for relatively minor, boring issues.  But, it is
18 exactly these types of fixes that result in a polished product.
19
20 A relatively major change that went into the most recent release of
21 GnuPG is the replacement of ADNS with William Ahern's [[http://25thandclement.com/~william/projects/dns.c.html][libdns]].
22 Unfortunately, our patches for Tor support for ADNS have been in limbo
23 for such a long time, that [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032350.html][we decided to change to a different DNS
24 resolver]].
25
26 Daniel Kahn Gillmor also helped implement and debug GnuPG's new
27 supervisor mode.  This mode allows GnuPG's daemons to be auto-started
28 and auto-stopped by systemd.  If you are tracking Debian testing or
29 Debian unstable, you can try enabling this by following the
30 instructions in ~/usr/share/doc/gnupg-agent/README.Debian~.  This is
31 based on the [[https://git.gnupg.org/cgi-bin/gitweb.cgi?p%3Dgnupg.git%3Ba%3Dtree%3Bf%3Ddoc/examples/systemd-user%3Bh%3D2d589564e565b0b886d8c8d9071ca52290fb87e3%3Bhb%3Drefs/heads/master][reference implementation for starting GnuPG's daemons
32 from systemd]] that Daniel also contributed and is included in GnuPG
33 proper.  Distributions are encouraged to base their systemd scripts on
34 this implementation.
35
36 Justus also made significant improvements to our relatively new
37 Scheme-based testing framework.  He's also written many new tests,
38 fixed bugs in [[http://tinyscheme.sourceforge.net/][TinyScheme]], the Scheme interpreter that we are using,
39 and radically improved TinyScheme's debugging facilities.
40 Unfortunately, although he submitted some patches upstream, they have
41 been mostly ignored.  Thus, if you are using TinyScheme, you might
42 want to consider including our patches.
43
44 We've decided to change the [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032298.html][default expiration time for new keys to 2
45 years]].  (Previously, keys did not expire by default.)  Using an
46 expiration provides an emergency break for users who lose access to
47 their secret key material and any revocation certificate.  But note:
48 just because a key has expired does not mean that one has to create a
49 new key; it is entirely possible to extend a key's expiration, even
50 after the key has expired.
51
52 Another minor, but notable improvement that Justus implemented is to
53 GnuPG's search algorithm.  Previously, when GnuPG searched for a key,
54 [[https://bugs.gnupg.org/gnupg/issue2359][it took the first matching result even if a better result came later]].
55 For instance, if searching for ~anna@example.org~, gpg would return
56 the key for ~danna@example.org~ (a partial match) even if there was a
57 key for ~anna@example.org~ latter (a complete match).  Justus changed
58 gpg's behavior to [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031994.html][take the best match instead of the first match]].
59
60 Niibe has continued to polish the smart card support including
61 improving support for v3 of the [[http://g10code.com/docs/openpgp-card-3.0.pdf][OpenPGPcard]] specification, and initial
62 support for [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032403.html][multiple card readers]].  He has also reviewed and
63 integrated a number of bugs fixes and small improvements contributed
64 by Arnaud Fontaine.
65
66 Andre has made significant progress on GPGOL, our plugin for Outlook.
67 He plans to release a beta in the coming week.  Part of this work
68 included fleshing out [[https://wiki.gnupg.org/EasyGpg2016/AutomatedEncryption][how the automatic encryption system should work]],
69 and thinking about what it can and cannot protect against.  We've
70 documented this in the wiki.  Comments (to the mailing list) are
71 welcome!
72
73 As usual, Jussi Kivilinna contributed a number of improvements to
74 libgcrypt.  Alon Bar-Lev, a GnuPG maintainer for Gentoo, submitted a
75 number of patches.  Mike Blumenkrantz contributed a new [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031807.html][EFL-based
76 pinentry]].  And, Tobias Mueller provided a number of improvements to
77 the Python bindings.
78
79 After a [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031810.html][long discussion]], we decided to change the Python GPGME
80 bindings to use the [[https://pypi.python.org/pypi/gpg][~gpg~]] namespace instead of the ~pyme3~ namespace.
81 This should make finding the bindings easier.
82
83 There was also a discussion about [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032366.html][the right way to deal with any
84 missing dependencies (in particular, a sufficiently new GPGME) for the
85 Python bindings]] when they are installed from pip.  Unfortunately, we
86 don't have sufficient resources to properly package them so any users
87 will need to make sure they have a recent operating system or build
88 GPGME themselves.
89
90 *** Releases
91
92 We've released new versions of GPGME including [[https://lists.gnupg.org/pipermail/gnupg-announce/2016q3/000397.html][1.7.0]] and [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-November/032182.html][1.8.0]].  1.7.0
93 includes our new [[https://gnupg.org/blog/20160921-python-bindings-for-gpgme.html][Python bindings for GPGME]], and 1.8.0 includes the
94 renaming of the namespace from ~pyme3~ to ~gpg~.
95
96 The GnuPG proper saw two releases: version [[https://lists.gnupg.org/pipermail/gnupg-announce/2016q4/000398.html][2.1.16]] and version [[https://lists.gnupg.org/pipermail/gnupg-announce/2016q4/000398.html][2.1.17]].
97 The latter was released exactly [[https://www.gnupg.org/download/release_notes.html#sec-1-2-70][19 years after Werner released version
98 0.0.0]]!
99
100 We released version 1.7.5 of [[https://lists.gnupg.org/pipermail/gnupg-announce/2016q4/000399.html][libgcrypt]], which includes an important
101 bug fix for a [[https://bugs.gnupg.org/gnupg/issue2870][secure memory exhaustion regression]] ([[https://lists.gnupg.org/pipermail/gnupg-devel/2016-November/032157.html][see also this
102 post]]), which was introduced in 1.7.4.
103
104 And, [[http://scute.org][Scute]] version 1.5 was released.  Scute provides a [[https://en.wikipedia.org/wiki/PKCS_11][PKCS #11]]
105 interface for security tokens.  This allow using a security token to,
106 e.g., do client authentication over TLS (using [[https://en.wikipedia.org/wiki/Network_Security_Services][NSS]]), and document
107 signing with LibreOffice.  Special thanks go to Damien Goutte-Gattat,
108 who has helped take care of Scute!
109
110 *** Public Appearances
111
112 In October and November, I traveled a fair amount.  Before leaving, I
113 contacted a few local groups about giving my "An Advanced Introduction
114 to GnuPG" presentation.  In the end, I held it in New York City at the
115 [[https://www.meetup.com/nylug-meetings/events/234083247/][NYLUG meetup]] ([[https://www.youtube.com/watch?v%3DfX0pgV8hPq8][recording]]), in Baltimore at [[https://www.acm.jhu.edu/][JHU's ACM chapter]], and in
116 San Francisco at [[https://www.meetup.com/de-DE/OpenLate/events/234006159/][OpenLate]], at [[https://noisebridge.net/wiki/Advanced_Introduction_to_GnuPG][NoiseBridge]], ([[https://begriffs.com/posts/2016-11-05-advanced-intro-gnupg.html][recording]]) and at the
117 [[https://theintercept.com/][Intercept]].  The interest in GnuPG in New York is impressive: we filled
118 the 150 person room and there was a waiting list.  The audience was
119 also very engaged and asked many questions.  Joe Nelson's [[https://begriffs.com/posts/2016-11-05-advanced-intro-gnupg.html][recording at
120 NoiseBridge]] is probably the best recording so far (I had a lapel mic
121 and the slides were recorded separately).  If you are interested in
122 seeing the presentation, that is the recording that I currently
123 recommend.
124
125 While traveling, I also interviewed a number of GnuPG users
126 (journalists, lawyers, activists, and companies) for our upcoming
127 donation campaign.  If you or your company/organization are willing to
128 talk about how you use GnuPG on camera, [[http://k.gnupg.net/8F17777118A33DDA9BA48E62AACB3243630052D9][please get in touch with me]].
129
130 At the end of December, I attended the [[https://events.ccc.de/tag/33c3/][CCC's annual congress]].  I
131 participated in a [[https://fossil.net2o.de/33c3/doc/trunk/wiki/panel.md][panel discussion]] with Volker Birk from [[https://pep.foundation/][pEp]] and
132 Holger Krekel from [[https://github.com/autocrypt/autocrypt][Autocrypt]].  Unfortunately, we only had half an
133 hour, which made the discussion rather superficial.  Other talks more
134 or less related to GnuPG were presented in the [[https://fossil.net2o.de/33c3/doc/trunk/wiki/33c3.md][#wefixthenet session]].
135
136 A few GnuPG team members will be present at this year's [[https://fosdem.org/2017/][FOSDEM]].  And,
137 I, Daniel, and some of the Autocrypt people attend the [[Internet%20Freedom%20Festival][Internet
138 Freedom Festival]] in March in Valencia, Spain.
139
140 *** Ecosystem
141
142 [[https://www.openkeychain.org/k-9-5.200][K9]] had a major release (5.2) with significantly better OpenPGP
143 support.  Of particular note is support for PGP/MIME.
144 Congratulations!
145
146 The developers of GPGTools have released a [[https://gpgtools.tenderapp.com/discussions/problems/49449-will-not-work-on-macosx-sierra][beta version of GPGTools
147 for macOSX Sierra]].
148
149 [[http://autocrypt.readthedocs.io/en/latest/][Autocrypt]] is a new, loose knit group working on a new key discovery
150 protocol for opportunistic encryption.  Autocrypt is different from
151 WKD in that it transmits keys via email, and, as such, doesn't require
152 any new third-party infrastructure, but is more susceptible to attacks
153 than WKD.  This approach is complementary to WKD, and similar to what
154 pEp is doing.
155
156 pEp has also begun to [[https://letsencrypt.pep.foundation/dev/repos/internet-drafts/][document their protocols]].  Their intent appears
157 to be to submit them as IETF internet drafts.
158
159 *** Press
160
161 [[https://supporters.eff.org/donate/eff-wired%20][The EFF expects surveillance and censorship to increase]] under
162 President Trump.  And, the same appears to be inevitable in Great
163 Britain with their recently introduced [[http://www.theregister.co.uk/2016/11/30/investigatory_powers_act_backdoors/][Snoopers' Charter]].  The EFF
164 encourages technology companies to, among other things, improve their
165 support for end-to-end encryption.  We agree, and add that even
166 individuals can help: start using encryption tools, and, if you know
167 how, volunteer at a local [[https://www.cryptoparty.in/][CryptoParty]].
168
169 Filippo Valsorda wrote an article about [[http://arstechnica.com/security/2016/12/op-ed-im-giving-up-on-pgp/][why he is giving up on PGP]],
170 which got picked up by Ars Technica, and endorsed by [[https://twitter.com/matthew_d_green/status/806135647199252480][Matthew Green]] and
171 [[https://www.schneier.com/blog/archives/2016/12/giving_up_on_pg.html][Bruce Schneier]] ([[https://www.schneier.com/blog/archives/2016/12/the_pro-pgp_pos.html][again]]).  [[http://arstechnica.com/information-technology/2016/12/signal-does-not-replace-pgp/][I composed a response]], which Ars Technica
172 also carried.  In short, one of the major reasons that Filippo is
173 giving up on PGP in favor of Signal and WhatsApp is due to the lack of
174 forward secrecy.  It's true that OpenPGP doesn't support forward
175 secrecy (although it can be approximated with a bit of work).  But,
176 it's not clear to us whether that should be the most important
177 consideration.  We know from Snowden, that when properly implemented,
178 "[[https://www.seas.harvard.edu/news/2015/01/reengineering-privacy-post-snowden][encryption ... really is one of the few things that we can rely on]]."
179 In other words, when nation states crack encryption, they aren't
180 breaking the actual encryption, they are circumventing it.  Thus, if
181 you are like Filippo and are really worried about something like an
182 [[https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html][evil maid attack]], then you are probably better off storing your
183 encryption keys on a smart card, which is something that GnuPG
184 supports, but Signal does not.  Another major problem with Signal,
185 which Filippo does not address, is its use of telephone numbers as
186 identifiers.  This seriously undermines anonymity, and makes
187 harassment easier, which is a particular problem for women who post on
188 the Internet.  There are been other responses including those from
189 [[https://www.mailpile.is/blog/2016-12-13_Too_Cool_for_PGP.html][Bjarni Rúnar]] (Mailpile), [[http://sites.bu.edu/perryd/2016/12/17/rethinking-pgp-encryption/][Perry Donham]] (BU), and [[https://www.foo.be/2016/12/OpenPGP-really-works][Alexandre Dulaunoy]]
190 ([[https://news.ycombinator.com/item?id%3D13301307][HN comments]]).
191
192 Simon Josefsson recently posted an article about [[https://blog.josefsson.org/2016/11/03/why-i-dont-use-2048-or-4096-rsa-key-sizes/][why he doesn't use
193 standard RSA key sizes]].  The formulation of the argument is similar to
194 why [[https://weakdh.org/][using the same prime numbers for DH key exchange is a bad idea]].
195
196 Tobias Müller also wrote a blog post about his [[https://blogs.gnome.org/muelli/2016/10/first-openpgp-conf-2016-in-cologne-germany/][impressions of the
197 OpenPGP conference]].
198
199 [[https://www.fsf.org/blogs/licensing/the-licensing-and-compliance-lab-interviews-micah-lee-of-gpg-sync][Micah Lee was interviewed about his project about GPG Sync]] by the FSF.
200
201 Heise published an article with [[https://www.heise.de/download/specials/E-Mails-mit-PGP-verschluesseln-3342397][tips for encrypting emails]] (in
202 German).
203
204 LinuxFR published a primer covering [[http://linuxfr.org/users/gouttegd/journaux/de-la-confiance-dans-le-monde-openpgp][key validity and trust models]],
205 including TOFU (in French).  And, NextInpact published an article with
206 [[https://www.nextinpact.com/news/98509-openpgp-et-gnupg-25-ans-chiffrement-pour-tous-ce-quil-faut-savoir-avant-sy-mettre.htm][a brief history of PGP and GnuPG, a number of tips for using GnuPG,
207 and some tradeoffs]] (in French).
208
209 *** Donations
210
211 We recently received [[https://lists.gnupg.org/pipermail/gnupg-devel/2016-November/032211.html][an account statement]] from the Wau Holland
212 foundation on the GnuPG account that they manage for us.