commit: 4711000f0537b458e48e280f600ff17b3bed5238
parent 914d523e37ee2ba9dde495ba0a1900098c9c1889
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Thu, 7 Mar 2019 06:17:48 +0100
Add compression, ciphers, security considerations
Diffstat:
2 files changed, 49 insertions(+), 5 deletions(-)
diff --git a/articles/Pretty Bad Privacy.xhtml b/articles/Pretty Bad Privacy.xhtml
@@ -8,7 +8,18 @@
<dd>Gnu Privacy Guard, main/only implementation of OpenPGP</dd>
</dl>
<h2>OpenPGP standard</h2>
-<p>The OpenPGP standard mandates that some ciphers must be present in the implementation, they are now broken and well known to be. (<abbr title="As Far As I Remember">AFAIR</abbr> it’s stuff like SHA1, 3DES, …).</p>
+<h3>Compression</h3>
+<blockquote><pre>
+ Furthermore, compression has the added side effect that some types of
+ attacks can be thwarted by the fact that slightly altered, compressed
+ data rarely uncompresses without severe errors. This is hardly
+ rigorous, but it is operationally useful. These attacks can be
+ rigorously prevented by implementing and using Modification Detection
+</pre></blockquote>
+<cite><a href="https://tools.ietf.org/html/rfc4880">RFC4880</a>, November 2007</cite>
+<p>Not sure about this one, I’ll go check but this cause few issues in SSH and TLS, so I wouldn’t be surprised that it was also the case for OpenPGP.</p>
+<h3>Ciphers</h3>
+<p>The OpenPGP standard mandates that some ciphers must be present in the implementation, they are broken and well known to be.</p>
<blockquote><pre>
9.1. Public-Key Algorithms
@@ -65,11 +76,44 @@ ID Algorithm Text Name
100 to 110 - Private/Experimental algorithm
Implementations MUST implement SHA-1. Implementations MAY implement
-other algorithms. MD5 is deprecated.</pre></blockquote><cite><a href="https://tools.ietf.org/html/rfc4880">RFC4880</a>, November 2007</cite>
-<p>It leaks a pile of metadata (time, implementation name+version, …)</p>
+other algorithms. MD5 is deprecated.</pre></blockquote>
+<cite><a href="https://tools.ietf.org/html/rfc4880">RFC4880</a>, November 2007</cite>
+<p>Some additionnal ciphers got added later on, but this basically mean that you cannot be sure that a OpenPGP message you sent wasn’t done in more-or-less plaintext. 3DES was broken by the EFF in 199x, SHA1 was probably still known as okay but could be better (as SHA2 was already a thing), DSA was probably not now enough as good to be hardcoded, no idea for Elgamal.</p><!-- FIXME -->
+<blockquote><pre>
+13.4. Plaintext
+
+ Algorithm 0, "plaintext", may only be used to denote secret keys that
+ are stored in the clear. Implementations MUST NOT use plaintext in
+ Symmetrically Encrypted Data packets; they must use Literal Data
+ packets to encode unencrypted or literal data.
+</pre></blockquote>
+<cite><a href="https://tools.ietf.org/html/rfc4880">RFC4880</a>, November 2007</cite>
+<p>I guess this one is related to SigSpoof</p>
+<blockquote><pre>
+14. Security Considerations
+
+ * As with any technology involving cryptography, you should check the
+ current literature to determine if any algorithms used here have
+ been found to be vulnerable to attack.
+[…]
+ * There is a somewhat-related potential security problem in
+ signatures. If an attacker can find a message that hashes to the
+ same hash with a different algorithm, a bogus signature structure
+ can be constructed that evaluates correctly.
+
+ For example, suppose Alice DSA signs message M using hash algorithm
+ H. Suppose that Mallet finds a message M' that has the same hash
+ value as M with H'. Mallet can then construct a signature block
+ that verifies as Alice's signature of M' with H'. However, this
+ would also constitute a weakness in either H or H' or both. Should
+ this ever occur, a revision will have to be made to this document
+</pre></blockquote>
+<cite><a href="https://tools.ietf.org/html/rfc4880">RFC4880</a>, November 2007</cite>
+<p>“LOL”</p>
+<p>It leaks a pile of metadata (time, implementation name+version, …)</p><!-- FIXME: details of data present into my public key and key-change message signature -->
<p>There is no deniability possible, there is quite a difference between no-authentication and deniability, to be elaborated on</p>
<p>Your public key/identity <strong>will</strong> end up on the keyservers at some point, no exception.</p>
-<p>There is no forward secrecy</p>
+<p>There is no forward secrecy</p><!-- FIXME: seems to be for online apps or similar, not email; to be verified -->
<h2>OpenPGP in real life</h2>
<p>Real Name policy and other stuff that should be optionnal in the Public Key Verification process (An ID card? Seriously?).</p>
<p>Quite a lot of people are trusting <a href="https://keybase.io/">keybase.io</a> to kinda fix a part of the Web-of-Trust, I do not like this one, it seems to basically be a social-media keyserver where you give it a lot of information for “verification”, and of couse the software is proprietary and it’s centralised. I think putting your fingerprint everywhere you can and putting you minimal public key on your blog is a much better way, and it can be automatised a bit (OPENPGPKEY DNS record, IndieWeb <code>rel="openpgp"</code>, …).</p>
diff --git a/feed.atom b/feed.atom
@@ -14,7 +14,7 @@
<link rel="alternate" type="text/html" href="/articles/Pretty%20Bad%20Privacy"/>
<id>https://hacktivis.me/articles/Pretty%20Bad%20Privacy</id>
<published>2019-03-07T01:00:04Z</published>
- <updated>2019-03-07T02:08:40Z</updated>
+ <updated>2019-03-07T05:17:48Z</updated>
<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<!--#include file="/articles/Pretty Bad Privacy.xhtml"-->
</div></content>