<?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 crypt)</title>
    <link>https://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>Fri, 02 May 2025 12:45:29 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>https://daniel-lange.com/</link>
    <width>144</width>
    <height>234</height>
</image>

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

    <slash:comments>7</slash:comments>
    <wfw:commentRss>https://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;https://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;https://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">https://daniel-lange.com/archives/159-guid.html</guid>
    <category>crypt</category>
<category>gpg</category>
<category>security</category>
<category>updated</category>

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

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

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Well, shortly after I wrote about &lt;a href=&quot;https://daniel-lange.com/83-Encrypting-files-with-gpg-for-synchronization-across-the-Internet.html&quot;&gt;encrypting files with a keyfile / passphrase with gpg&lt;/a&gt; people asked about a solution with openssl.&lt;/p&gt;

&lt;p&gt;You should prefer to use the gpg version linked above, but if you can&#039;t, below is a script offering the same functionality with openssl.&lt;/p&gt;

&lt;p&gt;You basically call &lt;code&gt;crypt_openssl &amp;lt;file&amp;gt; [&amp;lt;files...&amp;gt;]&lt;/code&gt; to encrypt &lt;code&gt;file&lt;/code&gt; to &lt;code&gt;file.aes&lt;/code&gt; using the same keyfile as used in the gpg script (&lt;code&gt;~/.gnupg/mykey001&lt;/code&gt; per default).&lt;/p&gt;

&lt;p&gt;A simple &lt;code&gt;crypt_openssl -d &amp;lt;file.aes&amp;gt; [&amp;lt;files.aes...&amp;gt;]&lt;/code&gt; will restore the original files from the encrypted AES256 version that you can safely transfer over the Internet even using insecure channels.&lt;/p&gt;

&lt;p&gt;Please note that you should feed compressed data to &lt;code&gt;crypt_openssl&lt;/code&gt; whenever you can. So use preferably use it on &lt;code&gt;.zip&lt;/code&gt; or &lt;code&gt;.tar.gz&lt;/code&gt; files.&lt;/p&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://daniel-lange.com/archives/84-Encrypting-files-with-openssl-for-synchronization-across-the-Internet.html#extended&quot;&gt;Continue reading &quot;Encrypting files with openssl for synchronization across the Internet&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 23 Sep 2013 17:50:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/84-guid.html</guid>
    <category>bash</category>
<category>crypt</category>
<category>openssl</category>
<category>script</category>
<category>security</category>
<category>sync</category>

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

    <slash:comments>6</slash:comments>
    <wfw:commentRss>https://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;https://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">https://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>
