blog: Add financial Results for 2015
[gnupg-doc.git] / misc / blog.gnupg.org / 20151103-gnupg-in-october.org
1 # GnuPG News for September and October 2015
2 #+STARTUP: showall
3 #+AUTHOR: Neal
4 #+DATE: November 3rd, 2015
5 #+Keywords: Presentation, TOFU, Tor, g13, disk encryption
6
7 ** GnuPG News for September and October 2015
8
9 *** Talk at FSCONS
10
11 If you'll be in Sweden next week for the FSCONS, you'll have the
12 opportunity to hear Werner Koch's talk on Saturday afternoon: [[https://frab.fscons.org/en/fscons2015/public/events/243][The
13 state of everyday cryptography]]:
14
15 #+begin_quote
16   After Snowden explained to the world that even the crypto geeks had
17   been too optimistic about the state of global surveillance, a new
18   interest in developing and promoting systems to provide encryption
19   service for normal human beings awoke.  There are several systems
20   with widely different goals, user bases, and cryptographic strength
21   in active use.  Some popped up and quickly drowned, others are
22   getting more and more attention, and finally there are some old
23   comrades finally getting public interest. In this talk, Werner gives
24   an overview of these different systems and tries to predict their
25   future.  Will some of these encryption systems survive and thus
26   force the NSA/CGHQ/BND to spend a lot more money on mass
27   surveillance?
28 #+end_quote
29
30 *** Development
31
32 Since the last blog post, there have been two releases of GnuPG:
33 version [[https://lists.gnupg.org/pipermail/gnupg-announce/2015q3/000379.html][2.1.8]] and version [[https://lists.gnupg.org/pipermail/gnupg-announce/2015q4/000380.html][2.1.9]].  These releases were primarily bug
34 fix releases.  The one noteworthy new feature (implemented by Werner)
35 is support for [[http://tools.ietf.org/wg/dane/draft-ietf-dane-openpgpkey/][OpenPGP DANE]], which allows looking up keys that have
36 been stored in the DNS.
37
38 In terms of development, Neal has finished the preliminary
39 implementation of TOFU and Werner has been working on two new
40 features: Tor support for GnuPG and g13, which provides GnuPG support
41 for DM-Crypt.  Daniel Kahn Gillmor provided a patch to explicitly
42 deprecate algorithms in addition to those that GnuPG has marked as
43 deprecated.  Andre Heinecke has been working on GpgOL, a GnuPG plug-in
44 for Outlook, and Kai has continued to work on Enigmail.
45
46 *** Noteworthy Bugs
47
48 Niibe fixed a bug effecting the use of ed25519 keys with GnuPG's ssh
49 agent code.  When using an ed25519 authentication key imported with
50 ~ssh-add~, GnuPG 2.1.8 and later could no longer read the keys saved
51 by older versions of GnuPG.  This was due to a bug in the way that
52 older versions of GnuPG saved the key.  To work around this, you need
53 to manually delete the old key and reimport it using ssh-add.  Refer
54 to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798956#24 and
55 https://bugs.gnupg.org/gnupg/issue2096 for more details.
56
57 Niibe also fixed a bug arising from a new GCC optimization.  The
58 optimization, which was introduced in GCC 5, caused GnuPG to fail to
59 positively verify some messages.  The issue was that instead of
60 returning the address of a local variable, gcc would simply return
61 NULL.  (GnuPG was using this ugly hack to return something other than
62 NULL to indicate success for an empty packet; the caller didn't
63 actually examine the value pointed to by the address.)  See this
64 [[https://lists.gnupg.org/pipermail/gnupg-devel/2015-September/030334.html][message]] for more details.
65
66 Jonas Magazinius [[http://www.metzdowd.com/pipermail/cryptography/2015-October/026685.html][identified a downgrade attack]] on the OpenPGP message
67 format:
68
69 #+begin_quote
70   [He] found that [OpenPGP] is vulnerable to a chosen-ciphertext
71   attack to downgrade [a Symmetrically Encrypted Integrity Protected
72   Data Packet (SEIP)] to a plain [Symmetrically Encrypted Data Packet
73   (SE)] packet. Due to the properties of CFB mode and OpenPGP’s
74   predictable message structure, it is possible to switch the SEIP tag
75   to SE, strip the MDC (and signature), and align and manipulate the
76   encrypted packet. The implications are, among others, that an
77   encrypted and signed message can be stripped of its signature and
78   modified arbitrarily, with certain restrictions, by an attacker
79   without knowing the key.
80 #+end_quote
81
82 Since symmetrically encrypted data packets have been deprecated since
83 RFC 4880, which was release in 2007, GnuPG mitigates this attack by
84 aborting if the message contains an SE packet and was encrypted with a
85 relatively modern cipher (anything with a block length that is greater
86 than 64-bits as well as twofish).  Since (hopefully) no one is using
87 the old ciphers, an attacker will only be able to downgrade old
88 messages.
89
90 *** OpenPGP DANE
91
92 [[https://datatracker.ietf.org/doc/draft-ietf-dane-openpgpkey/?include_text%3D1][OpenPGP DANE]] ist a new mechanism for OpenPGP key discovery.  The basic
93 idea is that users publish their key in the Secure DNS.  Then, when
94 someone is looking up a key, they simply use DNS to find it.  This has
95 the advantage that since the user (or the user's mail provider)
96 controls the domain, it is less likely that a rogue key will be
97 returned, which can happen when using an HKP keyserver since the
98 keyserver has no way to determine what key is correct.
99
100 Werner has implemented this and it is available in the most recent
101 GnuPG release.  GnuPG makes one small derivation from the proposed
102 standard: GnuPG always lower-cases the local-part of the email
103 address.
104
105 To create a DANE record, use the following command:
106
107 #+BEGIN_EXAMPLE
108 $ gpg2 --print-dane-records -k KEYID
109 #+END_EXAMPLE
110
111 To search for a key using DANE, use:
112
113 #+BEGIN_EXAMPLE
114 $ gpg2 --auto-key-locate dane --search-keys email@example.org
115 #+END_EXAMPLE
116
117 *** TOFU
118
119 Neal finally committed TOFU support to the git repository.  Special
120 thanks go to Andre Heinecke, who helped debug the code.  It will be
121 available in the next release.  Although TOFU will not be turned on by
122 default, we encourage MUAs to prompt users to switch to this trust
123 model.
124
125 [[https://en.wikipedia.org/wiki/Trust_on_first_use][TOFU]] stands for Trust on First Use and is a concept that will be
126 familiar to anyone who regularly uses ssh.  When you ssh to a host for
127 the first time, ssh asks you to verify the host's key (most people
128 just say yes here).  When connecting to the same host in the future,
129 ssh checks that the key hasn't changed.  If it has, ssh displays a
130 warning.  TOFU for GnuPG works similarly.
131
132 In contrast to the [[https://en.wikipedia.org/wiki/Web_of_trust][Web of Trust]] (WoT), TOFU's security guarantees are
133 rather weak.  When using the WoT correctly, you can have high
134 confidence that if GnuPG says a given key is controlled by a specific
135 user, then it probably is.  TOFU, on the other hand, is only able to
136 detect when the key associated with an email address has changed.
137 Despite this, TOFU will be more secure than the WoT for most users in
138 practice.  This is because using the WoT requires a lot of manual
139 support, which most users never bother with.  In particular, you need to
140 verify fingerprints and set the owner trust to take advantage of
141 friend of friend verification.
142
143 Happily you don't need to choose between TOFU and the WoT.  It is
144 possible to combine them using the tofu+pgp trust model.  In this
145 model, the trust level for a key under each model is computed and then
146 the maximum is taken.
147
148 For users who want TOFU's ability to detect conflicts, but don't like
149 that TOFU assigns positive (marginal) trust to new keys without
150 prompting, it is possible to change the default policy to unknown or
151 to always prompt the user for the policy for new keys using the
152 --tofu-default-policy option.
153
154 To enable TOFU support, you just need to add the following to your
155 gpg.conf file:
156
157 #+BEGIN_EXAMPLE
158 trust-model tofu+pgp
159 #+END_EXAMPLE
160
161 Other than that, there is nothing special that you need to do to take
162 advantage of TOFU.  See [[https://lists.gnupg.org/pipermail/gnupg-users/2015-October/054608.html][this mail]] for more details.  (For a more
163 implementation-focused discussion, see [[https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030341.html][this mail]].)  Also consult the
164 manual (search for tofu to find the relevant options).
165
166 *** Tor Support
167
168 Werner has committed basic support for Tor to the GnuPG git
169 repository.  It can be enabled by passing the --use-tor flag to
170 dirmngr (or setting use-tor in dirmngr.conf).  Note: to test this
171 feature, you'll also need a version of libassuan from git.
172
173 GnuPG's Tor support is careful to make sure that traffic is not
174 accidentally routed via the open Internet.  To ensure this, when Tor
175 support is enabled and traffic can't be routed via Tor, GnuPG fails
176 rather than leaks data.  In order to ensure that information is not
177 leaked via DNS, GnuPG will use [[http://www.chiark.greenend.org.uk/~ian/adns/][ADNS]] to access the DNS rather than the
178 system resolver.  (ADNS has been used by GnuPG on Windows since 2008.)
179 Werner has modified it to support Tor and is currently in the process
180 of getting the patches integrated upstream.
181
182 Kristian Fiskerstrand, the manager of the SKS Keyserver pool, began looking
183 into making keyservers accessible as Tor hidden services.  Information
184 about which keyservers support Tor and their respective .onion
185 addresses can be found on [[https://sks-keyservers.net/status/][the SKS status page]].  However, just as you
186 don't typically want to configure GnuPG to use a single key server
187 rather than the fault-tolerant pool, Kristian has set up an Onion
188 Balancer, [[hkp://jirk5u4osbsr34t5.onion]], to redirect requests to the
189 various Tor-enabled keyservers.  Support is still experimental.
190
191 *** g13
192
193 Werner has been working on g13.  g13 is part of the GnuPG suite of
194 tools.  It provides support for working with DM-Crypt devices with
195 OpenPGP keys and takes advantage of the existing GnuPG infrastructure.
196
197 Currently, DM-Crypt is primarily used with LUKS.  A LUKS encrypted
198 volume has a small header at the start of the volume, which includes
199 the master key encrypted with a passphrase.  The passphrase is a weak
200 point of the system as it is often vulnerable to a brute-force attack.
201 A more secure approach is to encrypt the master key with a secret key
202 stored on a smart card.  Further, it should be possible to use
203 existing keys.  GnuPG, of course, has long had good support for
204 interacting with smartcards and working with OpenPGP keys.
205
206 *** Deprecating Specific Algorithms
207
208 Daniel Kahn Gillmor (dkg) contributed a patch to provide an option to
209 explicitly deprecate algorithms in addition to those that GnuPG has
210 marked as deprecated.  This is useful for deprecating SHA-1, for
211 instance.  GnuPG can't do this by default because SHA-1 is a
212 mandatory-to-implement algorithm and is widely used in the OpenPGP
213 ecosystem.  Nevertheless, as dkg says:
214
215 #+begin_quote
216   Some operators of high-value targets that depend on OpenPGP
217   signatures may wish to require their signers to use a stronger
218   digest algorithm than SHA1, even if the OpenPGP ecosystem at large
219   cannot deprecate SHA1 entirely today.
220 #+end_quote
221
222 *** GpgOL
223
224 Andre Heinecke has been evaluating the feasibility of supporting
225 PGP/MIME and S/MIME in Outlook 2007 and later.  So far he has
226 implemented support for reading MIME messages.  This is included in a
227 [[https://wiki.gnupg.org/GpgOL/Development/Testversions][beta version of GpgOL]].  He is currently working on sending PGP/MIME
228 messages.  Some preliminary code has been committed to the master
229 branch of GpgOL.  Testing is appreciated and bug reports should be
230 filed in the [[bugs.gnupg.org][bugs.gnupg.org bug tracker]].
231
232 For a draft of the release plan please refer to the [[https://wiki.gnupg.org/Gpg4win/Roadmap][Gpg4win Roadmap]].
233
234 *** Enigmail
235
236 Kai has continued to work on Enigmail.  He added support for the
237 Keybase protocol and for importing public keys from URLs.  He also
238 work on ensuring that warnings about sending unsigned emails.
239
240 *** Future Work
241
242 Intevation and g10^code have been awarded a 2 year contract by the
243 [[https://en.wikipedia.org/wiki/Federal_Office_for_Information_Security][BSI]] (the German office for information security) to start work on the
244 [[http://ted.europa.eu/udl?uri=TED:NOTICE:344537-2015:TEXT:EN:HTML][Gpg4all]] project ([[http://lists.wald.intevation.org/pipermail/gpg4win-devel/2015-October/001528.html][announcement]]).  The main objectives of Gpg4all are to
245 maintain Gpg4win and to research end-to-end encryption for webmail and
246 Android phones.
247
248 The BSI also accepted a bid by Intevation and g10^code to work on the
249 [[http://www.evergabe-online.de/home?0&id=96898][Gpg4VS-NfD]] project.  The goal of this project is to prepare Gpg4win
250 and GnuPG for approval for use with classified documents at the VS-Nfd
251 (restricted) level in Germany.  The main task is to improve the
252 internal documentation of GnuPG and to implement a configuration
253 option to restrict what GnuPG can do according to this classification
254 level's requirements (e.g., the set of permitted algorithms).  More
255 details will be published soon.
256
257 *** Discussions
258
259 On gnupg-devel, Andreas Schwier asked about [[https://lists.gnupg.org/pipermail/gnupg-devel/2015-September/030271.html][n-of-m threshold schemes]]
260 for accessing sensitive keys.  He's implemented this support in the
261 SmartCard-HSM and would like to see support for it in scdaemon.
262 Andreas also wrote a [[http://www.smartcard-hsm.com/2015/10/10/Shared_Control_over_Key_Usage.html][blog post]] describing the various use cases in
263 more detail.  Werner replied that the main challenge will be coming up
264 with a good user interface and that this is the reason that GnuPG
265 doesn't support this type of secret sharing yet.
266
267 Werner [[https://lists.gnupg.org/pipermail/gnupg-devel/2015-October/030483.html][announced]] that the GnuPG would start to use some C99 features.
268 In particular, we'll start using variadic macros (=__VA_ARGS__=), the
269 predefined macro =__func__= and variable declarations inside a for loop
270 (=for (int i = 0; i < 5; i ++) {}=).
271
272 On gnupg-users, Nix asked about using [[https://lists.gnupg.org/pipermail/gnupg-users/2015-September/054334.html][GnuPG 2.1 with NFS]].  Werner
273 provided [[https://lists.gnupg.org/pipermail/gnupg-users/2015-September/054337.html][a workaround to use a non-standard socket name for gpg-agent]].
274
275 Robert H. Hansen posted that [[http://www.theregister.co.uk/2015/09/24/facebook_crypto_upped/][Facebook has upgraded their support]] for
276 OpenPGP.  After a question from Christian Heinrich about Facebook's
277 support, Jon Millican indicated that it is possible to [[https://lists.gnupg.org/pipermail/gnupg-users/2015-October/054460.html][fetch public
278 keys via Facebook's Graph API]].
279
280 Bernhard Reiter [[https://lists.gnupg.org/pipermail/gnupg-users/2015-October/054582.html][encouraged people to edit the libgcrypt page on
281 Wikipedia]].  He noted that people closely related to the project are
282 discouraged from editing pages about their own work and encouraged
283 other members of the community to get involved this way.
284
285 *** New Employee
286
287 g10^code has hired another developer, Justus Winter, to work on GnuPG
288 and related projects.  Justus has been hacking on Free Software, in
289 particular, the Hurd, since 2013.  His major contributions include
290 porting Debian/Hurd to sysvinit, and improving the performance along
291 the RPC path, notably by amending the Mach message format to include
292 Protected Payloads.  He started work at the beginning of November.
293
294 *** Donations
295
296 Werner improved the [[https://gnupg.org/donate/index.html][donation system]] to accept donations using SEPA
297 bank transfer.  This should make it easy and cheap to donate Euros
298 from most of the European states.
299
300
301 ** About this news posting
302
303 We try to write a news posting each month.  However, other work may
304 have a higher priority (e.g. security fixes) and thus there is no
305 promise for a fixed publication date.  If you have an interesting
306 topic for a news posting, please send it to us.  A regular summary of
307 the mailing list discussions would make a nice column on this news.