symmetric_OpenPGP_vs_recent_Iceweasel.mdwn 4.86 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
[[!toc levels=2]]

Rationale
=========

A great bunch of Tails users currently use symmetric OpenPGP
encryption in Iceweasel, thanks to FireGPG. We want to support this
usecase on the long run.

Also, we've been wanting to ship [[todo/Iceweasel_5.x]] as soon as
possible, but FireGPG [is discontinued
upstream](http://blog.getfiregpg.org/2010/06/07/firegpg-discontinued/)
13
is known [not to work with
14
FF4+](http://blog.getfiregpg.org/2011/04/01/firegpg-and-firefox-4/)
15
"because of the missing IPC library", and generally is
Tails developers's avatar
Tails developers committed
16
17
[[a security
mess|doc/encryption_and_privacy/FireGPG_susceptible_to_devastating_attacks]].
18
19
20
21

We need to find a way to support symmetric OpenPGP encryption in
Tails.

22
23
24
25
Work in progress
================

The Seahorse applet already knows how to *decrypt* symmetrically
26
27
28
encrypted text. But it does not support symmetric encryption, seems
dead upstream, was never released for GNOME3 and therefore is not part
of Debian testing.
29

30
31
32
33
34
35
36
37
38
39
40
Therefore, we have written another OpenPGP panel applet; the
`bugfix/remove_firegpg` branch does not run the Seahorse applet
anymore. It does not install FireGPG either. Our own panel applet
features:

- symmetrically *encrypt* clipboard content
- *decrypt* clipboard content (regardless of the kind of OpenPGP
  encryption)
- status icon and action menu change depending on the content of the
  clipboard(s), the same way as the Seahorse applet does

41
Missing features wrt. the Seahorse + FireGPG combo, we can live with:
42
43
44

- asymmetric (i.e. public key) encryption
- import key (covered by other parts of the Seahorse UI, though)
45
- symmetric encryption of files
46

Tails developers's avatar
Tails developers committed
47
48
Also, we prepared a "fake" FireGPG plugin that explains why it's not
here anymore and points to the alternative.
Tails developers's avatar
Tails developers committed
49

Tails developers's avatar
Tails developers committed
50
> [[!taglink todo/done]] in Tails 0.10.
Tails developers's avatar
Tails developers committed
51
52

## Long term
53
54
55
56
57
58
59

On the long run, we hope Seahorse gets support for symmetric
encryption, and seahorse-plugins to be relived upstream.
See details below.

Archive: implementation ideas
=============================
60
61
62
63

Port FireGPG to recent Firefox/Iceweasel releases
-------------------------------------------------

64
65
66
**Dismissed**: the webbrowser is too much of a scary place to run
GnuPG operations in.

67
As of June 2011, the most active FireGPG fork is [darkpixel's
68
69
one](https://github.com/firegpg/firegpg). It recently merged
[bit's branch](https://github.com/bit/firegpg) in, that adds
70
71
72
73
74
75
76
77
support for Firefox 4. It's build system depends on:

* [ipccode](http://hg.mozilla.org/ipccode/): see `ipc/get.sh` in
  darkpixel's repository
* a local clone of the mozilla source code ([canonical
  repository](https://hg.mozilla.org/mozilla-central/),
  [releases](https://hg.mozilla.org/releases/mozilla-release/)).

Tails developers's avatar
Tails developers committed
78
79
80
81
82
83
84
85
Mike Cardwell's [easy installation
recipe](https://grepular.com/FireGPG_on_Firefox_5) works, but it uses
a binary IPC extension shipped in the Git repository.

We therefore need to build the IPC extension against the Iceweasel 5
source code and test the result. Note that a "simple" clone of the
Mercurial mozilla-release repository seems not enough as it lacks the
`obj-ff-release` directory. Is this directory generated when compiling
86
Firefox itself?
Tails developers's avatar
Tails developers committed
87
88
89
90
91

The [Html Validator compilation
instructions](http://www.htmlpedia.org/wiki/FirefoxCompilation) have
stuff related to the mysterious `obj-ff-release`.

92
93
94
95
96
97

Find another user-interface that provides the missing feature
-------------------------------------------------------------

This could be a nice middle-term workaround.

Tails developers's avatar
Tails developers committed
98
99
100
101
102
### Local GUI

Writing a simplistic GUI able to symmetrically encrypt/decrypt text
should be quite quick.

Tails developers's avatar
Tails developers committed
103
104
105
106
107
108
109
Hints:

* May be needed to show *all* of GPG's output to the user: one can be
  burnt by GPG-wrapper GUIs misleading about what GPG thinks.
* A message may be signed and encrypted using
  `gpg --symmetric --sign`

110
111
112
113
### Local webapp

* Herbert Hanewinkel's OpenPGP Message Encryption in JavaScript:
 - [homepage](http://www.hanewin.net/encrypt/)
Tails developers's avatar
Tails developers committed
114
115
 - only supports encryption
* gooxdoo JavaScript classes for OpenPGP encryption
116
 - [homepage](http://qooxdoo.org/contrib/project/crypto)
Tails developers's avatar
Tails developers committed
117
 - only supports encryption
118

Tails developers's avatar
Tails developers committed
119
120
121
122
123
Add symmetric encryption support to GNOME
-----------------------------------------

The Seahorse applet already knows how to *decrypt* symmetrically
encrypted text. So the missing bit is symmetric *encryption*.
124
125
126
127
128
129
130
131

This would be the perfect long-term solution, but we probably lack the
time and energy needed to implement it.

We asked the Seahorse authors to include this feature a while ago:

* [email asking it](http://mail.gnome.org/archives/seahorse-list/2008-February/msg00005.html)
* [bug report tracking it](https://bugzilla.gnome.org/show_bug.cgi?id=325803)
132
133
134
135
136
137
138
139
140

### seahorse-plugins vs. GNOME3

Another problem is that seahorse-plugins (which the panel applet is
part of) is not very well maintained upstream.

Stef Walters [wants to get the Nautilus plugin ready for GNOME
3.4](https://mail.gnome.org/archives/seahorse-list/2011-November/msg00000.html),
we've asked about their plans for the panel applet.