FireGPG is no more shipped in Tails.
You should instead use our custom GPG applet to:
- Encrypt text with a passphrase
- Encrypt and sign text using public-key cryptography
- Decrypt and verify text
FireGPG is a Firefox addon that allows users to easily perform cryptographic actions on the contents of HTML pages, e.g. to verify signatures appearing as HTML text, or encrypt texts written inside HTML text boxes (i.e. <textarea>). Webmail interfaces commonly use text boxes for email composition, so FireGPG is a natural fit for this use case: the user writes his or her email plaintext in the text box, selects the plaintext and uses one of the "Encrypt" or "Sign and encrypt" actions available from the FireGPG menu to transform the selection to its encrypted counterpart.
The situation is exactly the same if a user decrypts an OpenPGP block
inside a text box: the OpenPGP block is replaced with the plaintext
within the text box, so the same script can leak the plaintext when
the timer fires less than a second later. Luckily, webmail systems
rarely present messages in text boxes (although 'pastebins' often
do). It is more common for received email to be displayed as HTML
text, and when the user decrypts it, FireGPG will display the
plaintext in a separate window that is safely out of reach of
extensions.firegpg.result_always_in_new_window, called "Always
display encryption and signature results in a separate window" in the
FireGPG options window, that forces this behaviour when
decrypting OpenPGP blocks in text boxes as well, but it is disabled by
default. This option, however, does not in any way prevent leaking of
plaintext while the user is writing it as described in the previous
FireGPG also has three commands to sign (but not encrypt) messages:
the contents of the text box when the user selects it, so if the user
does not re-read the text after selecting one of the 'sign' commands,
the attacker will be able to obtain the user's signature on an
arbitrary message. Enabling the
result_always_in_new_window option does not prevent this attack;
only user acuity may be able to detect and block it.
It should be clear that the current FireGPG design of performing cryptographic actions on the contents of text boxes is fundamentally flawed and unsecurable. FireGPG's current design and interface is training users to act as if the contents of text boxes are private until they are explicitly submitted by the user (e.g. by pressing a "Submit"/"Send" button). Hence:
- FireGPG should explicitly state that the FireGPG Text editor is the
only safe place to write plaintext that are to be encrypted and/or
signed, or to decrypt messages unless the
result_always_in_new_windowoption should be removed -- its behaviour should be forcibly enabled instead.
- The "Verify" command should display the contents of the signed message in the FireGPG Text editor. Otherwise, it may be possible to present to the user a different message from that seen by FireGPG.
After these changes, the only remaining actions in the FireGPG menu will be "Decrypt" and "Verify". "Decrypt" is made safe by change 3, and "Verify" is made safe by change 4. It may still be a good idea to remove these actions as well to further promote the use of the FireGPG Text editor for all cryptographic actions. If they are removed, points 3 and 4 above become irrelevant and may be ignored. Per a discussion on #tor-dev and later #tails with rransom and katmagic it came to light that FireGPG may have a few serious security and anonymity issues (katmagic even claimed with "85%" certainty that these issues were among the main reasons FireGPG was discontinued):
A similar approach should also work for stealing a plaintext written in a text box before it's encrypted.
[tor-talk] Tor Browser Bundle: PGP encryption built-in?
A thread on the [tor-talk] list adressing the issues of supporting GPG inside a browser.
Spoofing OpenPGP signatures against FireGPG
Another possible attack on FireGPG.