<?xml version="1.0" encoding="utf-8" ?>

<?xml-stylesheet type="text/xsl" href="/templates/2k11/rss.xsl" media="screen" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Daniel Lange's blog (Entries tagged as gpg)</title>
    <link>http://daniel-lange.com/</link>
    <description>agrep -pB IT /dev/life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.6.0 - http://www.s9y.org/</generator>
    <pubDate>Tue, 28 Feb 2023 11:22:36 GMT</pubDate>

    <image>
    <url>//daniel-lange.com/uploads/Avatar_Blog_144_234.png</url>
    <title>RSS: Daniel Lange's blog - agrep -pB IT /dev/life</title>
    <link>http://daniel-lange.com/</link>
    <width>144</width>
    <height>234</height>
</image>

<item>
    <title>Thunderbird gpg key import</title>
    <link>http://daniel-lange.com/archives/179-Thunderbird-gpg-key-import.html</link>
            <category>Open Source</category>
    
    <comments>http://daniel-lange.com/archives/179-Thunderbird-gpg-key-import.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=179</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=179</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p style=&quot;font-size: 18pt; bold; display: flex; justify-content: center; align-items: center; height: 110px;&quot;&gt;Thunderbird, srsly?&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:698 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;557&quot; height=&quot;94&quot;  src=&quot;http://daniel-lange.com/uploads/entries/230227_gpg_pubring_size.jpg&quot;  alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:699 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;710&quot; height=&quot;484&quot;  src=&quot;http://daniel-lange.com/uploads/entries/230227_Thunderbird_gpg_manager.jpg&quot;  alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:700 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;739&quot; height=&quot;227&quot;  src=&quot;http://daniel-lange.com/uploads/entries/230227_Thunderbird_source_gpg_pubkeys_4.8MB_import_limit.jpg&quot;  alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;5MB (or 4.8MiB) import limit. Sure. My modest pubring (111 keys) is 18MB. The &lt;a href=&quot;https://wiki.debian.org/DebianKeyring&quot;&gt;Debian keyring&lt;/a&gt; is 28MB.&lt;/p&gt;

&lt;p&gt;May be, just may be, add another 0 to that if statement?&lt;/p&gt;

&lt;p&gt;So, until that happens, workarounds ...&lt;/p&gt;

&lt;h4&gt;Option 1:&lt;/h4&gt;

&lt;p&gt;Export each pubkey into a separate file. The import dialog allows to select them all in one go. But - of course - it will ask confirmation for each. So prepare some valerian tea.&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;gpg &lt;span style=&quot;color: #660033;&quot;&gt;--with-colons&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--list-public-keys&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; ^pub &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt; : &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;xargs&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-I&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-n&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; gpg &lt;span style=&quot;color: #660033;&quot;&gt;-ao&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;.pub &lt;span style=&quot;color: #660033;&quot;&gt;--export&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;

&lt;h4&gt;Option 2:&lt;/h4&gt;

&lt;p&gt;Strip all the signatures, so Thunderbird gets a smaller file to chew on. This uses &lt;code&gt;pgp-clean&lt;/code&gt; from &lt;a href=&quot;https://packages.debian.org/sid/signing-party&quot;&gt;signing-party&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;gpg &lt;span style=&quot;color: #660033;&quot;&gt;--with-colons&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--list-public-keys&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; ^pub &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt; : &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;xargs&lt;/span&gt; pgp-clean &lt;span style=&quot;color: #660033;&quot;&gt;-s&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; there_you_go_thunderbird.pub&lt;/div&gt;

&lt;p&gt;Option 1 will retain the signatures on individual keys, Option 2 will not.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 27 Feb 2023 15:50:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/179-guid.html</guid>
    <category>fail</category>
<category>gpg</category>
<category>mozilla</category>
<category>thunderbird</category>

</item>
<item>
    <title>Getting gpg to import signatures again</title>
    <link>http://daniel-lange.com/archives/178-Getting-gpg-to-import-signatures-again.html</link>
            <category>Open Source</category>
    
    <comments>http://daniel-lange.com/archives/178-Getting-gpg-to-import-signatures-again.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=178</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=178</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;The GnuPG (gpg) ecosystem has been played with a bit in 2019 by adding fake signatures en masse to well known keys. The main result is that the SKS Keyserver network based on the &lt;a href=&quot;https://github.com/SKS-Keyserver/sks-keyserver&quot;&gt;OCaml software of the same name&lt;/a&gt; is basically history. A few other keyservers have come up like &lt;a href=&quot;https://gitlab.com/keys.openpgp.org/hagrid&quot;&gt;Hagrid&lt;/a&gt; (Rust) and &lt;a href=&quot;https://github.com/hockeypuck/hockeypuck&quot;&gt;Hockeypuck&lt;/a&gt; (Go) but there seems to be no clear winner yet. In case you missed it in 2019, see &lt;a href=&quot;http://daniel-lange.com/archives/159-Cleaning-a-broken-GnuPG-gpg-key.html&quot;&gt;my take on cleaning these polluted keys&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now the &lt;a href=&quot;https://dev.gnupg.org/rG23c978640812d123eaffd4108744bdfcf48f7c93&quot;&gt;changed defaults in gpg&lt;/a&gt; to &quot;mitigate&quot; this issue are trickling down to even the conservative distributions. Debian Bullseye has &lt;code&gt;self-sigs-only&lt;/code&gt; on gpg 2.2.27 and it looks like Debian Bookworm will get gpg 2.2.40. This would add &lt;code&gt;import-clean&lt;/code&gt; but Daniel Kahn Gillmor &lt;a href=&quot;https://sources.debian.org/src/gnupg2/2.2.40-1/debian/patches/gpg-drop-import-clean-from-default-keyserver-import-optio.patch/&quot;&gt;patched it out&lt;/a&gt;. He argues correctly that this new default could delete data from good locally stored pubkeys.&lt;/p&gt;

&lt;p&gt;This all ends in you getting some random combination of &lt;code&gt;self-sigs-only&lt;/code&gt; and / or &lt;code&gt;import-clean&lt;/code&gt; depending on which Linux distribution and version you happen to use.&lt;/p&gt;

&lt;p&gt;Better be explicit. I recommend to add:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# disable new gpg defaults&lt;/span&gt;&lt;br /&gt;keyserver-options no-self-sigs-only&lt;br /&gt;keyserver-options no-import-clean&lt;/div&gt;

&lt;p&gt;to your &lt;code&gt;~/.gnupg/gpg.conf&lt;/code&gt; to make sure you can manage signatures yourself and receive them from keyservers or local imports as intended.&lt;/p&gt;

&lt;p&gt;In case you care: See &lt;code&gt;info gnupg --index-search=keyserver-options&lt;/code&gt; for the fine documentation. Of course &lt;code&gt;apt install info&lt;/code&gt; first to be able to read info pages. &#039;cause who would still used them in 2023? Oh, wait...&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 27 Feb 2023 14:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/178-guid.html</guid>
    <category>defaults</category>
<category>gnu</category>
<category>gpg</category>
<category>keyserver</category>
<category>options</category>

</item>
<item>
    <title>Cleaning a broken GnuPG (gpg) key</title>
    <link>http://daniel-lange.com/archives/159-Cleaning-a-broken-GnuPG-gpg-key.html</link>
            <category>IT</category>
    
    <comments>http://daniel-lange.com/archives/159-Cleaning-a-broken-GnuPG-gpg-key.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=159</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=159</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;I&#039;ve long said that the main tools in the Open Source security space, OpenSSL and GnuPG (gpg), &lt;a href=&quot;http://daniel-lange.com/archives/105-Security-is-hard,-open-source-security-unnecessarily-harder.html&quot;&gt;are broken&lt;/a&gt; and only a complete re-write will solve this. And that is still pending as nobody came forward with the funding. It&#039;s not a sexy topic, so it has to get really bad before it&#039;ll get better.&lt;/p&gt;

&lt;p&gt;Gpg has a UI that is &lt;a href=&quot;http://daniel-lange.com/archives/83-Encrypting-files-with-gpg-for-synchronization-across-the-Internet.html&quot;&gt;close to useless&lt;/a&gt;.
That won&#039;t substantially change with more bolted-on improvements.&lt;/p&gt;

&lt;p&gt;Now Robert J. Hansen and Daniel Kahn Gillmor had somebody add ~50k signatures (read &lt;a href=&quot;https://gist.github.com/rjhansen/67ab921ffb4084c865b3618d6955275f&quot; title=&quot;Robert J. Hansen: SKS Keyserver Network Under Attack&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://gist.github.com/rjhansen/f716c3ff4a7068b50f2d8896e54e4b7e&quot; title=&quot;Robert J. Hansen: SKS Keyserver Network Attack: Consequences&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://dkg.fifthhorseman.net/blog/openpgp-certificate-flooding.html&quot; title=&quot;Daniel Kahn Gillmor: OpenPGP Certificate Flooding&quot;&gt;3&lt;/a&gt;, &lt;a href=&quot;https://dkg.fifthhorseman.net/blog/community-impact-openpgp-cert-flooding.html&quot; title=&quot;Daniel Kahn Gillmor: Community Impact of OpenPGP Certificate Flooding&quot;&gt;4&lt;/a&gt; for the g{l}ory details) to their keys and - oops - they say that breaks gpg.&lt;/p&gt;

&lt;p&gt;But does it?&lt;/p&gt;

&lt;p&gt;I downloaded &lt;a href=&quot;https://sks-keyservers.net/pks/lookup?op=vindex&amp;amp;search=0xCC11BE7CBBED77B120F37B011DCBDC01B44427C7&quot;&gt;Robert J. Hansen&#039;s key off the SKS-Keyserver network&lt;/a&gt;.
It&#039;s a nice 45MB file when de-ascii-armored (&lt;code&gt;gpg --dearmor broken_key.asc ; mv broken_key.asc.gpg broken_key.gpg&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Now a friendly:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;$ &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;time&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-v&lt;/span&gt; gpg &lt;span style=&quot;color: #660033;&quot;&gt;--no-default-keyring&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--keyring&lt;/span&gt; .&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;broken_key.gpg &lt;span style=&quot;color: #660033;&quot;&gt;--batch&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--quiet&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--edit-key&lt;/span&gt; 0x1DCBDC01B44427C7 clean save quit&lt;br /&gt;&lt;br /&gt;pub &amp;#160;rsa3072&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0x1DCBDC01B44427C7&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2015&lt;/span&gt;-07-&lt;span style=&quot;color: #000000;&quot;&gt;16&lt;/span&gt; &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: SC &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Vertrauen: unbekannt &amp;#160; &amp;#160; Gültigkeit: unbekannt&lt;br /&gt;sub &amp;#160;ed25519&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xA83CAE94D3DC3873&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2017&lt;/span&gt;-04-05 &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: S &amp;#160; &lt;br /&gt;sub &amp;#160;cv25519&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xAA24CC81B8AED08B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2017&lt;/span&gt;-04-05 &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: E &amp;#160; &lt;br /&gt;sub &amp;#160;rsa3072&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xDC0F82625FA6AADE&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2015&lt;/span&gt;-07-&lt;span style=&quot;color: #000000;&quot;&gt;16&lt;/span&gt; &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: E &amp;#160; &lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;. Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rjh&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;sixdemonbag.org&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;#160;Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rob&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;enigmail.net&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;#160;Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rob&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;hansen.engineering&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;User-ID &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Robert J. Hansen &amp;lt;rjh@sixdemonbag.org&amp;gt;&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;49705&lt;/span&gt; Signaturen entfernt&lt;br /&gt;User-ID &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Robert J. Hansen &amp;lt;rob@enigmail.net&amp;gt;&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;49704&lt;/span&gt; Signaturen entfernt&lt;br /&gt;User-ID &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Robert J. Hansen &amp;lt;rob@hansen.engineering&amp;gt;&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;49701&lt;/span&gt; Signaturen entfernt&lt;br /&gt;&lt;br /&gt;pub &amp;#160;rsa3072&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0x1DCBDC01B44427C7&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2015&lt;/span&gt;-07-&lt;span style=&quot;color: #000000;&quot;&gt;16&lt;/span&gt; &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: SC &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;Vertrauen: unbekannt &amp;#160; &amp;#160; Gültigkeit: unbekannt&lt;br /&gt;sub &amp;#160;ed25519&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xA83CAE94D3DC3873&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2017&lt;/span&gt;-04-05 &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: S &amp;#160; &lt;br /&gt;sub &amp;#160;cv25519&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xAA24CC81B8AED08B&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2017&lt;/span&gt;-04-05 &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: E &amp;#160; &lt;br /&gt;sub &amp;#160;rsa3072&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;0xDC0F82625FA6AADE&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160;erzeugt: &lt;span style=&quot;color: #000000;&quot;&gt;2015&lt;/span&gt;-07-&lt;span style=&quot;color: #000000;&quot;&gt;16&lt;/span&gt; &amp;#160;verfällt: niemals &amp;#160; &amp;#160; Nutzung: E &amp;#160; &lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;. Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rjh&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;sixdemonbag.org&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;#160;Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rob&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;enigmail.net&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; unbekannt &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;#160;Robert J. Hansen &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;&lt;/span&gt;rob&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;hansen.engineering&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Command being timed: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;gpg --no-default-keyring --keyring ./broken_key.gpg --batch --quiet --edit-key 0x1DCBDC01B44427C7 clean save quit&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; User &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;time&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;seconds&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;3911.14&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; System &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;time&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;seconds&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;2442.87&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Percent of CPU this job got: &lt;span style=&quot;color: #000000;&quot;&gt;99&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;%&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Elapsed &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;wall&lt;/span&gt; clock&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;time&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;h:mm:ss or m:ss&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color: #000000;&quot;&gt;45&lt;/span&gt;:&lt;span style=&quot;color: #000000;&quot;&gt;56&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Average shared text &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Average unshared data &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Average stack &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Average total &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Maximum resident &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;107660&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Average resident &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;kbytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Major &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;requiring I&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;O&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; page faults: &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Minor &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;reclaiming a frame&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt; page faults: &lt;span style=&quot;color: #000000;&quot;&gt;26630&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Voluntary context switches: &lt;span style=&quot;color: #000000;&quot;&gt;43&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Involuntary context switches: &lt;span style=&quot;color: #000000;&quot;&gt;59439&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Swaps: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; File system inputs: &lt;span style=&quot;color: #000000;&quot;&gt;112&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; File system outputs: &lt;span style=&quot;color: #000000;&quot;&gt;48&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Socket messages sent: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Socket messages received: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Signals delivered: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Page &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;size&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;bytes&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;4096&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Exit status: &lt;span style=&quot;color: #000000;&quot;&gt;0&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;

&lt;p&gt;And the result is a nicely useable 3835 byte file of the clean public key.
If you supply a keyring instead of &lt;code&gt;--no-default-keyring&lt;/code&gt; it will also keep the non-self signatures that are useful for you (as you apparently know the signing party).&lt;/p&gt;

&lt;p&gt;So it does not break gpg. It does break things that call gpg at runtime and not asynchronously. I heard Enigmail is affected, quelle surprise.&lt;/p&gt;

&lt;p&gt;Now the main problem here is the runtime. 1h45min is just ridiculous. As &lt;a href=&quot;https://twitter.com/FiloSottile/status/1145091106138394625&quot; title=&quot;Filippo Valsorda: Twitter message&quot;&gt;Filippo Valsorda puts it:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
Someone added a few thousand entries to a list that lets anyone append to it.

GnuPG, software supposed to defeat state actors, suddenly takes minutes to process entries.

How big is that list you ask? 17 MiB. Not GiB, 17 MiB. Like a large picture.

&lt;a href=&quot;https://dev.gnupg.org/T4592&quot; title=&quot;gpg bug tracker entry: gpg takes &gt; 30s to list the keys from a 17MiB pubring.gpg that contains a single certificate&quot;&gt;https://dev.gnupg.org/T4592&lt;/a&gt;
&lt;/blockquote&gt;

&lt;p&gt;If I were a gpg / SKS keyserver developer, I&#039;d&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;speed this up so the edit-key run above completes in less than 10 s (just getting rid of the lseek/read dance and deferring all time-based decisions should get close)&lt;/li&gt;
&lt;li&gt;(ideally) make the drop-sig import-filter syntax useful (date-ranges, non-reciprocal signatures, ...)&lt;/li&gt;
&lt;li&gt;clean affected keys on the SKS keyservers (needs coordination of sysops, drop servers from unreachable people)&lt;/li&gt;
&lt;li&gt;(ideally) use the opportunity to clean all &lt;a href=&quot;https://github.com/yakamok/keyserver-fs&quot;&gt;keyserver filesystem&lt;/a&gt; and the &lt;a href=&quot;https://www.quaxio.com/message_board_over_pgp_key_servers.html&quot;&gt;message board over pgp key servers&lt;/a&gt; keys, too&lt;/li&gt;
&lt;li&gt;only accept new keys and new signatures on keys extending the strong set (rather small change to the &lt;a href=&quot;https://bitbucket.org/skskeyserver/sks-keyserver/src&quot;&gt;existing codebase&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That way another key can only be added to the keyserver network if it contains at least one signature from a previously known &lt;a href=&quot;https://pgp.cs.uu.nl/plot/&quot; title=&quot;Henk P. Penning: analysis of the strong set in the PGP web of trust&quot;&gt;strong-set&lt;/a&gt; key.
Attacking the keyserver network would become at least non-trivial. And the web-of-trust thing may make sense again.&lt;/p&gt;

&lt;h2&gt;Updates&lt;/h2&gt;

&lt;p&gt;09.07.2019&lt;/p&gt;

&lt;p&gt;GnuPG 2.2.17 has been &lt;a href=&quot;https://lists.gnupg.org/pipermail/gnupg-announce/2019q3/000439.html&quot;&gt;released&lt;/a&gt; with another set of quickly bolted together fixes:&lt;/p&gt;

&lt;pre&gt;
  * gpg: Ignore all key-signatures received from keyservers.  This
    change is required to mitigate a DoS due to keys flooded with
    faked key-signatures.  The old behaviour can be achieved by adding
    keyserver-options no-self-sigs-only,no-import-clean
    to your gpg.conf.  [#4607]
  * gpg: If an imported keyblocks is too large to be stored in the
    keybox (pubring.kbx) do not error out but fallback to an import
    using the options &quot;self-sigs-only,import-clean&quot;.  [#4591]
  * gpg: New command --locate-external-key which can be used to
    refresh keys from the Web Key Directory or via other methods
    configured with --auto-key-locate.
  * gpg: New import option &quot;self-sigs-only&quot;.
  * gpg: In --auto-key-retrieve prefer WKD over keyservers.  [#4595]
  * dirmngr: Support the &quot;openpgpkey&quot; subdomain feature from
    draft-koch-openpgp-webkey-service-07. [#4590].
  * dirmngr: Add an exception for the &quot;openpgpkey&quot; subdomain to the
    CSRF protection.  [#4603]
  * dirmngr: Fix endless loop due to http errors 503 and 504.  [#4600]
  * dirmngr: Fix TLS bug during redirection of HKP requests.  [#4566]
  * gpgconf: Fix a race condition when killing components.  [#4577]
&lt;/pre&gt;

&lt;p&gt;&lt;a href=&quot;https://dev.gnupg.org/T4607&quot; title=&quot;GNUpg bug T4607&quot;&gt;Bug T4607&lt;/a&gt; shows that these changes are all but well thought-out.
They introduce artificial limits, like 64kB for WKD-distributed keys or 5MB for local signature imports (&lt;a href=&quot;https://dev.gnupg.org/T4591&quot;&gt;Bug T4591&lt;/a&gt;) which weaken the web-of-trust further.&lt;/p&gt;

&lt;p&gt;I recommend to not run gpg 2.2.17 in production environments without extensive testing as these limits and the unverified network traffic may bite you. Do validate your upgrade with valid &lt;u&gt;and&lt;/u&gt; broken keys that have segments (packet groups) surpassing the above mentioned limits. You may be surprised what gpg does. On the upside: you can now refresh keys (sans signatures) via WKD. So if your buddies still believe in limiting their subkey validities, you can more easily update them bypassing the SKS keyserver network. NB: I have not tested that functionality. So test before deploying.&lt;/p&gt;

&lt;p&gt;10.08.2019&lt;/p&gt;

&lt;p&gt;Christopher Wellons (skeeto) has released his &lt;a href=&quot;https://github.com/skeeto/pgp-poisoner&quot;&gt;pgp-poisoner tool&lt;/a&gt;. It is a go program that can add thousands of malicious signatures to a GNUpg key per second. He comments &quot;[pgp-poisoner is] proof that such attacks are very easy to pull off. It doesn&#039;t take a nation-state actor to break the PGP ecosystem, just one person and couple evenings studying RFC 4880. This system is not robust.&quot; He also hints at the next likely attack vector, public subkeys can be bound to a primary key of choice.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Tue, 02 Jul 2019 08:25:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/159-guid.html</guid>
    <category>crypt</category>
<category>gpg</category>
<category>security</category>
<category>updated</category>

</item>
<item>
    <title>Security is hard, open source security unnecessarily harder</title>
    <link>http://daniel-lange.com/archives/105-Security-is-hard,-open-source-security-unnecessarily-harder.html</link>
            <category>IT</category>
    
    <comments>http://daniel-lange.com/archives/105-Security-is-hard,-open-source-security-unnecessarily-harder.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Now it is a commonplace that security is hard. It involves advanced mathematics and a single, tiny mistake or omission in implementation can &lt;a href=&quot;http://breakingmalware.com/vulnerabilities/one-bit-rule-bypassing-windows-10-protections-using-single-bit/&quot; title=&quot;One-Bit To Rule Them All: Bypassing Windows’ 10 Protections using a single Bit&quot;&gt;spoil everything&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And the only sane IT security can be open source security. Because you need to assess the algorithms and their implementation and you need to be able to completely verify the implementation. You simply can&#039;t if you don&#039;t have the code and can compile it yourself to produce a trusted (ideally &lt;a href=&quot;https://dhole.github.io/post/reproducible_builds_debian_gsoc2015/&quot; title=&quot;Google Summer of Code Project: Debian reproducible builds&quot;&gt;reproducible&lt;/a&gt;) build. A no-brainer for everybody in the field.&lt;/p&gt;

&lt;p&gt;But we make it unbelievably hard for people to use security tools. Because these have grown over decades fostered by highly intelligent people with no interest in &lt;abbr title=&quot;User eXperience, the art of creating a good end user interaction&quot;&gt;UX&lt;/abbr&gt;.&lt;br /&gt;
&quot;It was hard to write, so it should be hard to use as well.&quot;&lt;br /&gt;
And then complain about adoption.&lt;/p&gt;

&lt;p&gt;PGP / gpg has received &lt;a href=&quot;http://www.thoughtcrime.org/blog/gpg-and-me/&quot; title=&quot;Moxie Marlinspike on why gpg is a failure&quot;&gt;quite&lt;/a&gt; &lt;a href=&quot;http://blog.cryptographyengineering.com/2014/08/whats-matter-with-pgp.html&quot; title=&quot;Matthew Green on why gpg is a failure&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;https://www.mailpile.is/blog/2015-02-26_Revisiting_the_GnuPG_discussion.html&quot; title=&quot;Mailpile devs on ... you get the notion, do you?&quot;&gt;fire&lt;/a&gt; this year and the good news is this has resulted in funding for the sole gpg developer. Which will obviously not solve the &lt;abbr title=&quot;User eXperience, the art of creating a good end user interaction&quot;&gt;UX&lt;/abbr&gt; problem.&lt;/p&gt;

&lt;p&gt;But the much worse offender is OpenSSL. It is &lt;strong&gt;so hard to use&lt;/strong&gt; that even experienced hackers fail.&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:614 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;738&quot; height=&quot;109&quot;  src=&quot;http://daniel-lange.com/uploads/entries/150703_hackint_own_CA.png&quot; title=&quot;Kudos to hexa- for the clear communication.&quot; alt=&quot;IRC wallop on hackint&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now, securely encrypting a mass communication media like IRC is not possible at all.
Read &lt;a href=&quot;https://web.archive.org/web/20180620083100/https://www.quakenet.org/articles/99-trust-is-not-transitive-or-why-irc-over-ssl-is-pointless&quot; title=&quot;Quakenet article from 2009&quot;&gt;Trust is not transitive: or why IRC over SSL is pointless&lt;/a&gt;&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;br /&gt;
Still it makes wiretapping harder and that may be a good thing these days.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.libressl.org/&quot; title=&quot;LibreSSL home page&quot;&gt;LibreSSL&lt;/a&gt; has forked the OpenSSL code base &quot;with goals of modernizing the codebase, improving security, and applying best practice development processes&quot;. No &lt;abbr title=&quot;User eXperience, the art of creating a good end user interaction&quot;&gt;UX&lt;/abbr&gt; improvement. A cleaner code for the chosen few. Duh.&lt;/p&gt;

&lt;p&gt;I predict the re-implementations and gradual improvement scenarios will fail. The nearly-impossible-to-use-right situation with both gpg and (much more importantly) OpenSSL cannot be fixed by gradual improvements and however thorough code reviews.&lt;/p&gt;

&lt;p&gt;Now the &quot;there&#039;s an App for this&quot; security movement won&#039;t work out on a grand scale either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Most often not open source. Notable exceptions: &lt;a href=&quot;https://github.com/chatsecure&quot; title=&quot;Chatsecure github repository&quot;&gt;ChatSecure&lt;/a&gt;, &lt;a href=&quot;https://github.com/whispersystems/&quot; title=&quot;TextSecure github repositories&quot;&gt;TextSecure&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;No reference implementations with excellent test servers and well documented test suites but products. &quot;Use my App.&quot;, &quot;No, use MY App!!!&quot;.&lt;/li&gt;
&lt;li&gt;Only secures chat or email. So the &lt;abbr title=&quot;Venture Capital, rich people&#039;s money to burn in Stanford grad founded startups&quot;&gt;VC&lt;/abbr&gt;-powered (&quot;next WhatsApp&quot;) mass-adoption markets but not the really interesting things to improve upon (&lt;abbr title=&quot;Certificate Authority, the thing you need to manage trust in X.509 certificates&quot;&gt;CA&lt;/abbr&gt;, code signing, &lt;abbr title=&quot;Full Disk Encryption&quot;&gt;FDE&lt;/abbr&gt;, ...).&lt;/li&gt;
&lt;li&gt;While everybody is focusing on mobile adoption the heavy lifting is still on servers. We need sane libraries and APIs. No App for that.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So we need a new development, a new code, a new open source product. Sadly so the &lt;a href=&quot;http://www.linuxfoundation.org/programs/core-infrastructure-initiative&quot; title=&quot;Linux Foundation&#039;s Core Infrastructure Initiative home page&quot;&gt;Core Infrastructure Initiative&lt;/a&gt; so far only funds existing open source projects in dire needs and people bug hunting.&lt;/p&gt;

&lt;p&gt;It basically makes the bad solutions of today a bit more secure and ensures maintenance of decade old crufty code bases. That way it extends the suffering of everybody using the inadequate solutions of today.&lt;/p&gt;

&lt;p&gt;That&#039;s inevitable until we have a better stack but we need to look into getting rid of gpg and OpenSSL and replacing it with something new. Something designed well from the ground up, technically and from a user experience perspective.&lt;/p&gt;

&lt;p&gt;Now who&#039;s in for a five year funding plan? $3m&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; annually. &lt;abbr title=&quot;Return on Capital Employed&quot;&gt;ROCE&lt;/abbr&gt; 0. But a very good chance to get the &lt;abbr title=&quot;Order of the British Empire&quot;&gt;OBE&lt;/abbr&gt; awarded.&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:615 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;430&quot; height=&quot;600&quot;  src=&quot;http://daniel-lange.com/uploads/entries/keep-calm-and-enjoy-the-silence.png&quot; title=&quot;Surprise me!&quot; alt=&quot;Keep calm and enjoy the silence&quot; /&gt;&lt;/p&gt;

&lt;h3&gt;Updates:&lt;/h3&gt;

&lt;p&gt;10.06.22:
Carl Tashian made a &lt;a href=&quot;https://smallstep.com/blog/if-openssl-were-a-gui/&quot;&gt;GUI mockup&lt;/a&gt; to show the complexity of the OpenSSL &quot;user interface&quot;.&lt;/p&gt;

&lt;p&gt;21.07.19:
A current essay on &lt;a href=&quot;https://latacora.micro.blog/2019/07/16/the-pgp-problem.html&quot;&gt;&quot;The PGP problem&quot;&lt;/a&gt; is making rounds and lists some valid issues with the file format, RFCs and the gpg implementation. The GnuPG-users mailing list has a &lt;a href=&quot;https://lists.gnupg.org/pipermail/gnupg-users/2019-July/thread.html#62396&quot;&gt;discussion thread&lt;/a&gt; on the issues listed in the essay.&lt;/p&gt;

&lt;p&gt;19.01.19:
Daniel Kahn Gillmor, a Senior Staff Technologist at the ACLU, tried to get his gpg key transition correct. He put a huge amount of thought and preparation into the transition. To support Autocrypt (another try to get GPG usable for more people than a small technical elite), he specifically created &lt;a href=&quot;https://web.archive.org/web/20190118070041/https://dkg.fifthhorseman.net/blog/2019-dkg-openpgp-transition.html&quot;&gt;different identities for him as a person and his two main email addresses&lt;/a&gt;. Two days later he has to invalidate his new gpg key and back-off to less &quot;modern&quot; identity layouts because many of the brittle pieces of infrastructure around gpg from emacs to gpg signature management frontends to mailing list managers &lt;a href=&quot;https://dkg.fifthhorseman.net/blog/2019-dkg-openpgp-transition.html&quot;&gt;fell over dead&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;28.11.18:
Changed the Quakenet link on why encrypting IRC is useless to an archive.org one as they have removed the original content.&lt;/p&gt;

&lt;p&gt;13.03.17:
Chris Wellons writes about &lt;a href=&quot;http://nullprogram.com/blog/2017/03/12/&quot;&gt;why GPG is a failure&lt;/a&gt; and created a small portable application &lt;a href=&quot;https://github.com/skeeto/enchive&quot;&gt;Enchive&lt;/a&gt; to replace it for asymmetric encryption.&lt;/p&gt;

&lt;p&gt;24.02.17:
Stefan Marsiske has written a &lt;a href=&quot;https://www.ctrlc.hu/~stef/blog/posts/on_pgp.html&quot;&gt;blog article: On PGP&lt;/a&gt;. He argues about adversary models and when gpg is &quot;probably&quot; &lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; rel=&quot;footnote&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; still good enough to use. To me a security tool can never be a sane choice if the UI is so convoluted that only a chosen few stand at least a chance of using it correctly. Doesn&#039;t matter who or what your adversary is.&lt;br /&gt;
Stefan concludes his blog article:&lt;/p&gt;

&lt;blockquote&gt;
PGP for encryption as in &lt;a href=&quot;https://www.ietf.org/rfc/rfc4880.txt&quot; title=&quot;RFC 4880 OpenPGP Message Format&quot;&gt;RFC 4880&lt;/a&gt; should be retired, some sunk-cost-biases to be coped with, but we all should rejoice that the last 3-4 years had so much innovation in this field, that RFC 4880 is being rewritten&lt;sup&gt;&lt;a href=&quot;https://xkcd.com/285/&quot; title=&quot;Citation needed: Stefan does not provide any verification for this claim&quot;&gt;[Citation needed]&lt;/a&gt;&lt;/sup&gt; with many of the above in mind and that hopefully there&#039;ll be more and better tools. [..]&lt;/blockquote&gt;

&lt;p&gt;He gives an extensive list of tools he considers worth watching in his article. Go and check whether something in there looks like a possible replacement for gpg to you. Stefan also gave a talk on the OpenPGP conference 2016 with similar content, &lt;a href=&quot;https://openpgp-conf.org/2016/openpgp-2016-a-few-concerns.pdf&quot; title=&quot;OpenPGP conference 2016, talk slides by Stefan Marsiske&quot;&gt;slides&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;14.02.17:
James Stanley has written up a &lt;a href=&quot;http://incoherency.co.uk/blog/stories/gpg.html&quot;&gt;nice account&lt;/a&gt; of his two hour venture to get encrypted email set up. The process is speckled with bugs and inconsistent nomenclature capable of confusing even a technically inclined person. There has been no progress in the last ~two years since I wrote this piece. We&#039;re all still riding dead horses. James summarizes:&lt;/p&gt;

&lt;blockquote&gt;Encrypted email is nothing new (PGP was initially released in 1991 - 26 years ago!), but it still has a huge barrier to entry for anyone who isn&#039;t already familiar with how to use it.&lt;/blockquote&gt;

&lt;p&gt;04.09.16:
Greg Kroah-Hartman ends an &lt;a href=&quot;https://plus.google.com/+gregkroahhartman/posts/N2eFYMyAM9r&quot;&gt;analysis of the Evil32 PGP keyid collisions&lt;/a&gt; with:&lt;/p&gt;

&lt;blockquote&gt;gpg really is horrible to use and almost impossible to use correctly.&lt;/blockquote&gt;

&lt;p&gt;14.11.15:&lt;br /&gt;
Scott Ruoti, Jeff Andersen, Daniel Zappala and Kent Seamons of BYU, Utah, have &lt;a href=&quot;http://arxiv.org/pdf/1510.08555.pdf&quot; title=&quot;PDF of Why Johnny Still, Still Can’t Encrypt: Evaluating the Usability of a Modern PGP Client on arXiv&quot;&gt;analysed the usability&lt;/a&gt; [&lt;a href=&quot;http://daniel-lange.com/documents/Ruoti_Andersen_Zappala_Seamons_Usability_Mailvelope_arxiv_1510.08555.pdf&quot; title=&quot;local mirror of the ArXiv paper, 173kB download&quot;&gt;local mirror, 173kB&lt;/a&gt;] of &lt;a href=&quot;https://www.mailvelope.com&quot; title=&quot;Mailvelope home page&quot;&gt;Mailvelope&lt;/a&gt;, a webmail PGP/GPG add-on based on a Javascript PGP implementation. They describe the results as &quot;disheartening&quot;:&lt;/p&gt;

&lt;blockquote&gt;
In our study of 20 participants,  grouped into 10 pairs  of  participants  who  attempted  to  exchange  encrypted
email,  only one pair was able to successfully complete the assigned tasks using Mailvelope.  All other participants were
unable to complete the assigned task in the one hour allotted to the study.  Even though a decade has passed since the last
formal study of PGP, our results show that Johnny has still not gotten any closer to encrypt his email using PGP.
&lt;/blockquote&gt;

&lt;div class=&quot;footnotes&quot;&gt;
&lt;hr /&gt;
&lt;ol&gt;

&lt;li id=&quot;fn:1&quot;&gt;
&lt;p&gt;Quakenet has removed that article citing &quot;near constant misrepresentation of the presented argument&quot; sometime in 2018. The contents (not misrepresented) are still valid so I have added and archive.org Wayback machine link instead.&amp;#160;&lt;a href=&quot;#fnref:1&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li id=&quot;fn:2&quot;&gt;
&lt;p&gt;The estimate was $2m until end of 2018. The longer we wait, the more expensive it&#039;ll get. And - obviously - ever harder. E.g. nobody needed to care about sidechannel attacks on &lt;a href=&quot;https://en.wikipedia.org/wiki/ARM_big.LITTLE&quot;&gt;big-LITTLE&lt;/a&gt; five years ago. But now they start to hit servers and security-sensitive edge devices.&amp;#160;&lt;a href=&quot;#fnref:2&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li id=&quot;fn:3&quot;&gt;
&lt;p&gt;Stefan says &quot;probably&quot; &lt;strong&gt;five&lt;/strong&gt; times in one paragraph. Probably needs an editor. The person not the application.&amp;#160;&lt;a href=&quot;#fnref:3&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
 
    </content:encoded>

    <pubDate>Fri, 03 Jul 2015 07:42:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/105-guid.html</guid>
    <category>gpg</category>
<category>gpp</category>
<category>irc</category>
<category>opensource</category>
<category>openssl</category>
<category>security</category>
<category>ssl</category>
<category>updated</category>

</item>
<item>
    <title>Encrypting files with gpg for synchronization across the Internet</title>
    <link>http://daniel-lange.com/archives/83-Encrypting-files-with-gpg-for-synchronization-across-the-Internet.html</link>
            <category>Linux</category>
    
    <comments>http://daniel-lange.com/archives/83-Encrypting-files-with-gpg-for-synchronization-across-the-Internet.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=83</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=83</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Automatically transferring (syncing) files between multiple computers is easy these days. Dropbox, owncloud or &lt;a href=&quot;https://github.com/sickill/bitpocket&quot;&gt;bitpocket&lt;/a&gt; to name a few. You can imagine I use the latter (if you want a recommendation)&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;In any case you want to encrypt what you send to be stored in &quot;the cloud&quot; even if it is just for a short time. There are many options how to encrypt the &quot;in flight&quot; data. Symmetric ciphers are probably the safest and most widely researched cryptography these days and easier to use than asymmetric key pairs in this context as well.&lt;/p&gt;

&lt;p&gt;Encryption is notoriously hard to implement correctly and worthless when the implementation is flawed. So I looked at &lt;a href=&quot;http://www.gnupg.org/&quot;&gt;gpg&lt;/a&gt;, a well known reference implementation, and was amazed that it can neither use a proper keyfile for symmetric encryption (you can just supply a passphrase via &lt;code&gt;--passphrase-file&lt;/code&gt;) nor does it handle multiple files on the command line consistently.
You can use &lt;code&gt;--multifile&lt;/code&gt; (wondering...why does a command need that at all?) with &lt;code&gt;--decrypt&lt;/code&gt; and &lt;code&gt;--encrypt&lt;/code&gt; (asymmetric public/private key pair encryption) but not with &lt;code&gt;--symmetric&lt;/code&gt; (symmetric shared key encryption). Duh!&lt;/p&gt;

&lt;p&gt;With a bit of scripting around the gpg shortcomings, you end up with &lt;code&gt;crypt_gpg&lt;/code&gt; that can nicely encrypt or decrypt multiple files (symmetric cipher) in one go.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot;&gt;
&lt;hr /&gt;
&lt;ol&gt;

&lt;li id=&quot;fn:1&quot;&gt;
&lt;p&gt;Dropbox is closed source so it cannot be assessed for its security. Owncloud needs a thorough code review before I would dare to run it on my systems.&amp;#160;&lt;a href=&quot;#fnref:1&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;http://daniel-lange.com/archives/83-Encrypting-files-with-gpg-for-synchronization-across-the-Internet.html#extended&quot;&gt;Continue reading &quot;Encrypting files with gpg for synchronization across the Internet&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 20 Sep 2013 16:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/83-guid.html</guid>
    <category>bash</category>
<category>crypt</category>
<category>gpg</category>
<category>script</category>
<category>security</category>
<category>sync</category>

</item>

</channel>
</rss>
