<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cobra's bits (Posts about info)</title><link>https://cobra.pdes-net.org</link><description></description><atom:link href="https://cobra.pdes-net.org/categories/info.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:najahannah@gmail.com"&gt;Cobra&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="../images/by-nc-sa.svg"&gt;&lt;/a&gt;</copyright><lastBuildDate>Wed, 03 Apr 2024 07:41:33 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Backdoor in xz</title><link>https://cobra.pdes-net.org/posts/backdoor-in-xz.html</link><dc:creator>Cobra</dc:creator><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.openwall.com/lists/oss-security/2024/03/29/4"&gt;The upstream xz repository and the xz tarballs have been backdoored.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27"&gt;This backdoor is very indirect and only shows up when a few known specific criteria are met. Others may be yet discovered! However, this backdoor is at least triggerable by remote unprivileged systems connecting to public SSH ports.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This supply-chain attack targets .deb- and .rpm-based distributions, but the backdoored versions of xz or xz-utils (5.6.0 and 5.6.1) have made it only into rolling-release distributions such as Fedora Rawhide, Debian Testing/Sid, OpenSuse Tumbleweed, and Archlinux (&lt;a class="reference external" href="https://archlinux.org/news/the-xz-package-has-been-backdoored/"&gt;where it is inactive&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The server of this blog is running Debian Testing and had the compromised version of xz-utils installed since March 17. The backdoor was &lt;a class="reference external" href="https://www.openwall.com/lists/oss-security/2024/03/29/4"&gt;reported&lt;/a&gt; last Friday, March 29. I've installed the patch provided by Debian on Saturday, March 30, and examined the system logs, which do not show any evidence that the system has been compromised in any way. In fact, according to my current understanding, the system did not meet all the &lt;a class="reference external" href="https://vulcan.io/blog/alert-cve-2024-3094/"&gt;requirements&lt;/a&gt; for the backdoor to be executed. However, I will remain vigilant and let the users of the server know if further action needs to be taken.&lt;/p&gt;
&lt;p&gt;More links (in German): &lt;a class="reference external" href="https://www.heise.de/news/Hintertuer-in-xz-Bibliothek-gefaehrdet-SSH-Verbindungen-9671317.html"&gt;Heise 30.03.2024 09:35&lt;/a&gt;, &lt;a class="reference external" href="https://www.heise.de/news/xz-Attacke-Hintertuer-entraetselt-weitere-Details-zu-betroffenen-Distros-9671588.html"&gt;Heise 30.03.2024 22:28&lt;/a&gt;, &lt;a class="reference external" href="https://www.heise.de/hintergrund/Die-xz-Hintertuer-das-verborgene-Oster-Drama-der-IT-9673038.html"&gt;Heise 02.04.2024 17:10&lt;/a&gt;&lt;/p&gt;</description><category>archlinux</category><category>debian</category><category>info</category><category>linux</category><category>suse</category><guid>https://cobra.pdes-net.org/posts/backdoor-in-xz.html</guid><pubDate>Mon, 01 Apr 2024 11:50:12 GMT</pubDate></item><item><title>New Neuland</title><link>https://cobra.pdes-net.org/posts/new-neuland.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;In 1994, snafu.de provided my first home connection to the interwebs via a 33.6K (kbits/s) modem. The upgrade to 56K came only a year later, but being a speed freak, I soon abandoned snafu for the German telecom who offered ISDN (128K by channel bonding) and again one year later the first ADSL with 768K. Just two years later again the German telecom managed to piss me off so thoroughly that I quit them right away. I selected QSC as my post-Telekom provider, which was such a lucky choice that I stayed with them almost 20 years, starting with the symmetric 2 Mbit/s SDLS line in 2002 and upgrading to the mainstream &lt;a class="reference external" href="https://de.wikipedia.org/wiki/Asymmetric_Digital_Subscriber_Line_2"&gt;ADSL2+&lt;/a&gt; option in 2008. Compared to where we had been just a decade before, the speed offered by this technology was hardly believable. In 2021, however, the speed is lamentable. The upload of 1 Mbit/s is a liability in the time of daily video conferences, and the download of 16 Mbit/s is sorely testing my wife's patience during the many hours it takes to download an eagerly awaited and freshly purchased video game.&lt;/p&gt;
&lt;p&gt;It's high time to upgrade, I told myself, and consequently looked at the options available to someone living more or less in the center of the western part of Berlin. I had entertained the hope that when upgrading my connection, &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Fiber_to_the_x"&gt;FTTH&lt;/a&gt; would be available, but as the matter stands the only affordable option is still &lt;a class="reference external" href="https://en.wikipedia.org/wiki/VDSL"&gt;VDSL&lt;/a&gt;. After my experiences with the Telekom, I was reluctant to again enter a relation with them, but I'm not too fond of the other big players (Vodafone, 1&amp;amp;1, O2) either. Fortunately, I've talked to my colleague Jonas about my plans, and he recommended &lt;a class="reference external" href="https://en.easybell.de/consumers.html"&gt;easybell&lt;/a&gt;, a small regional provider with a clear focus on customer service. I very much liked what I saw and ordered their super-vectoring VDSL offering 250 Mbit/s down and 40 Mbit/s up. The whole procedure was transparent and very well documented, and the handover went as smoothly as possible: we got disconnected at 15:00, and when I finished setting up the new router at 15:30, it connected right away.&lt;/p&gt;
&lt;img alt="../images/supervectoring.png" class="align-center" src="https://cobra.pdes-net.org/images/supervectoring.png"&gt;
&lt;p&gt;Woohoo! Now we're talking. 😎&lt;/p&gt;
&lt;p&gt;The new router is a Fritz!Box 7590, and since its producer &lt;a class="reference external" href="https://avm.de/"&gt;AVM&lt;/a&gt; is also located in Berlin, my internet connection is now a purely regional one. 😉 The 7590 does not support IEEE 802.11ax or Wi-Fi 6, which doesn't really matter for me since I don't have a single device that would support this standard. However, compared to the Fritz!Box 7170 I had before, the increase in wireless speed is impressive, much larger than I had expected. On my ten years old Fujitsu Lifebook, I never saw anything better than 10 Mbit/s with the 7170, but I'm getting a very stable 40 Mbit/s with the 7590. Makes a huge difference when using Mathematica via &lt;code class="docutils literal"&gt;ssh &lt;span class="pre"&gt;-Y&lt;/span&gt; &lt;span class="pre"&gt;-C&lt;/span&gt;&lt;/code&gt; to my desktop: while the interface reacted sluggishly before, it's now downright snappy.&lt;/p&gt;
&lt;p&gt;Alas, not all of my devices can actually benefit from the new and shiny wifi: my &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/using-nexie.html"&gt;Nexie&lt;/a&gt; won't connect to it, and constitutes the collateral damage of this modernization. Debugging the attempts to connect returned the error message NETWORK_SELECTION_DISABLED_ASSOCIATION_REJECTION, which is caused by the activated “Protected Management Frames” for the login process (on the Fritz!Box: "Unterstützung für geschützte Anmeldungen von WLAN-Geräten (PMF) aktivieren"). Since this feature is required for WPA3 and thus the protection of my entire wireless network, I'm not willing to sacrifice it for one nine years old tablet, even when this tablet happens to be my beloved Nexie. Still, I will miss it, particularly since tablets with this diminutive size have been replaced entirely by phablets, and are not produced any more. And before you're going to argue like 'so-why-not-buying-such-a-phablet': I did exactly that, although for an entirely different reason, which I will disclose in a subsequent post.&lt;/p&gt;</description><category>hardware</category><category>info</category><category>web</category><guid>https://cobra.pdes-net.org/posts/new-neuland.html</guid><pubDate>Sat, 08 May 2021 17:11:15 GMT</pubDate></item><item><title>Home Office</title><link>https://cobra.pdes-net.org/posts/home-office.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;The spread of &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Severe_acute_respiratory_syndrome_coronavirus_2"&gt;SARS-CoV-2&lt;/a&gt; has made it advisable for many people to work from home. I and my colleagues are doing that now for four weeks, and it's working very well. For me, home office isn't new: I use this possibility since a decade whenever I have a task at hand requiring particular concentration and focus. Writing papers or proposals is such a task, or developing and implementing a quantitative model to understand experimental data (that's what lucky physicists do for a living). In fact, I've been asked in January by colleagues to help with the development of such a model, which I thought to be challenging, but didn't expect to be as difficult as it actually turned out to be. For most of the time, I was rather cluelessly poking around in a forest of equations and not getting anywhere.&lt;/p&gt;
&lt;p&gt;During the last days, I made an effort to refocus on this issue, and not only for a few hours, but a couple of days: you go to bed with the problem and wake up with it, and there's nothing to distract you from it. This kind of total concentration is simply not possible in the daily office routine, but I can do it at home, basically returning to my time as a student where every living moment was devoted to problem solving. What greatly helps with reaching this trance-like state is having no kids, an understanding wife, and softly purring cats that love to sleep in the chairs on my left and right. The breakthrough occurred after two days, all of a sudden, like a flash. I still had to solve technical problems, but the direction was clear. These are the moments that every scientist cherishes and holds most dear: the intense joy to have solved the problem, to have broken the code. 😌&lt;/p&gt;
&lt;p&gt;I realize that not everybody has the same favorable boundary conditions as I do, or even the luxury to compare. And I understand that the situation is very different with young kids instead of cats.  😉 But still, I'm really tired reading commentaries in the newspapers moaning about the “solitary confinement”, and how unbearable it is. Most of them stem from rather young people with a smartphone glued to their right hand, and the strong belief to have the god-given right to party. Even worse are the characters with a political agenda, bitterly complaining about violations of our constitutional rights and predicting the end of democracy. What unites these two apparently very different groups is their failure to understand even the most simple arithmetic. And yes, there's no need for calculus to understand the &lt;a class="reference external" href="https://www.washingtonpost.com/graphics/2020/world/corona-simulator/"&gt;simple concept of the exponential spread of a virus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More realistic models are based &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology"&gt;on systems of differential equations&lt;/a&gt; similar to the ones describing the &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/zombies.html"&gt;zombie apocalypse&lt;/a&gt;. The infection rate of the human population depends on the infection probability when a human and a zombie meet. Similarly, in &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Epidemiology"&gt;epidemiology&lt;/a&gt;, the spread of an infectious disease is characterized by &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Basic_reproduction_number"&gt;R0, the basic reproduction number&lt;/a&gt;. This number determines how fast the infection spreads (i.e., the slope of the exponential), and if it decreases with time (which is highly desirable), the curve “flattens”. The curve remains, however, an exponential as long as R0 &amp;gt; 1.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The greatest shortcoming of the human race is our inability to understand the exponential function.
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Albert_Allen_Bartlett"&gt;A. A. Bartlett&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><category>info</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/home-office.html</guid><pubDate>Mon, 13 Apr 2020 17:20:56 GMT</pubDate></item><item><title>InspIRCd 3</title><link>https://cobra.pdes-net.org/posts/inspircd-3.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;All of a sudden, the PdeS IRC channel wasn't working anymore. As inexplicable as this sudden disruption first appeared to be, as obvious are the reasons in hindsight. What has happened?&lt;/p&gt;
&lt;p&gt;At August 18, apt offered an InspIRCd update, dutifully asking whether I wanted to keep the configuration files. I didn't realize at this moment that the update was in fact the upgrade from version 2 to 3 I had been waiting for since May. As a matter of fact, this update is &lt;a class="reference external" href="https://docs.inspircd.org/3/configuration-changes/"&gt;disruptive&lt;/a&gt; and requires one to carefully review and modify the configuration of InspIRCd. Well, I failed to do that, and I also failed to notice that the InspIRCd service didn't restart after the update.&lt;/p&gt;
&lt;p&gt;Sometimes people jokingly remark that I should work as a system or network admin rather than as a scientist. This incident shows that I'm not qualified for such a job. I'm way too careless.&lt;/p&gt;
&lt;p&gt;In any case, I now had to find the reason for the InspIRCd service to quit. It wasn't too difficult, but a multi-step procedure. The first obstacle was an outdated apparmor profile, which allowed InspIRCd to write in /run, but not in /run/inspircd. That was easily fixed.&lt;/p&gt;
&lt;p&gt;The second was the TLS configuration of our channel. I took the opportunity to renew our certificate and to altogether strengthen the security of the channel, but it took me a while to realize that the identifier in the bind_ssl and sslprofile_name tags has to be one and the same (it isn't in the documentation!).&lt;/p&gt;
&lt;pre class="literal-block"&gt;&amp;lt;bind
          address=""
          port="6697"
          type="clients"
          ssl="pdes"&amp;gt;

&amp;lt;module name="ssl_gnutls"&amp;gt;

&amp;lt;sslprofile
          name="pdes"
          provider="gnutls"
          certfile="cert/cert.pem"
          keyfile="cert/key.pem"
          dhfile="cert/dhparams.pem"
          mindhbits="4096"
          outrecsize="4096"
          hash="sha512"
          requestclientcert="no"
          priority="PFS:+SECURE256:+SECURE128:-VERS-ALL:+VERS-TLS1.3"&amp;gt;&lt;/pre&gt;
&lt;p&gt;Well, the channel is up again, more secure than ever. Fire away. 😅&lt;/p&gt;</description><category>encryption</category><category>info</category><category>web</category><guid>https://cobra.pdes-net.org/posts/inspircd-3.html</guid><pubDate>Sun, 25 Aug 2019 09:43:40 GMT</pubDate></item><item><title>Security headers</title><link>https://cobra.pdes-net.org/posts/security-headers.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;A few simple provisions were sufficient to &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/general-data-protection-regulation.html"&gt;make this blog GDPR compliant&lt;/a&gt;. Even less was required to get a &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/lets-encrypt.html"&gt;high rating regarding security&lt;/a&gt;. As a first step, I've obtained certificates from the Let's Encrypt initiative and configured Hiawatha (our web server) accordingly:&lt;/p&gt;
&lt;pre class="literal-block"&gt;VirtualHost {
        ...
        TLScertFile = /etc/hiawatha/tls/pdes-net.org.pem
        RequireTLS = yes, 31536000; includeSubDomains; preload
        ...
}&lt;/pre&gt;
&lt;p&gt;This configuration got an &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/lets-encrypt.html#"&gt;A+&lt;/a&gt; rating from &lt;a class="reference external" href="https://www.ssllabs.com"&gt;Qualys SSL labs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, there's more to the security of a website than transport encryption. For example, the &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Content_Security_Policy"&gt;Content Security Policy&lt;/a&gt; “provides a standard method for website owners to declare approved origins of content that browsers should be allowed to load on that website”. There are actually a number of these security headers, and after some research I came up with the following settings:&lt;/p&gt;
&lt;pre class="literal-block"&gt;VirtualHost {
        ...
        CustomHeader = Vary: Accept-Encoding
        CustomHeaderClient = X-Frame-Options: sameorigin
        CustomHeaderClient = X-XSS-Protection: 1; mode=block
        CustomHeaderClient = X-Content-Type-Options: nosniff
        CustomHeaderClient = X-Robots-Tag: none
        CustomHeaderClient = X-Permitted-Cross-Domain-Policies: none
        CustomHeaderClient = Referrer-Policy: same-origin
        CustomHeaderClient = Expect-CT: enforce; max-age=3600
        CustomHeaderClient = Content-Security-Policy: frame-src 'self'; worker-src 'self'; connect-src *; default-src 'self'; img-src 'self' data: chrome-extension-resource:; font-src 'self' data:; object-src 'self'; media-src 'self' data:; manifest-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'
        ...
}&lt;/pre&gt;
&lt;p&gt;The CSP proved to be tricky since Chromium did not display images in SVG format with stricter settings. A post of &lt;a class="reference external" href="https://pokeinthe.io/2016/04/09/black-icons-with-svg-and-csp/"&gt;April King&lt;/a&gt; finally provided the missing piece of the puzzle. Furthermore, MathJax only works in my implementation if I allow scripts and styles to be included 'unsafe-inline'. As a result of this latter setting, my current configuration achieves only a 'B+' instead of the 'A+' depicted below.&lt;/p&gt;
&lt;p&gt;Update: I've cleaned up and simplified the CSP, which now reads&lt;/p&gt;
&lt;pre class="literal-block"&gt;CustomHeaderClient = Content-Security-Policy: frame-ancestors 'none'; frame-src 'self'; default-src 'self'; object-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'none'&lt;/pre&gt;
&lt;p&gt;That still gets a 'B+' because of the 'unsafe-inline' options.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.kuketz-blog.de/online-scanner-tools-fuer-sicherheit-und-datenschutz/"&gt;Mike Kuketz&lt;/a&gt; listed a number of online scanners evaluating the implementation of security policies on arbitrary web sites. One of the most informative one of these tools is &lt;a class="reference external" href="https://observatory.mozilla.org/"&gt;Mozilla's observatory,&lt;/a&gt; developed by the same &lt;a class="reference external" href="https://pokeinthe.io/2016/08/25/observatory-by-mozilla-a-new-tool/"&gt;April&lt;/a&gt; whose post had helped me with the CSP. ☺&lt;/p&gt;
&lt;img alt="../images/observatory.png" class="align-center" src="https://cobra.pdes-net.org/images/observatory.png"&gt;</description><category>info</category><category>web</category><guid>https://cobra.pdes-net.org/posts/security-headers.html</guid><pubDate>Sat, 08 Sep 2018 10:48:31 GMT</pubDate></item><item><title>General Data Protection Regulation</title><link>https://cobra.pdes-net.org/posts/general-data-protection-regulation.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;The new European data protection law (the GDPR, or DSGVO in German) will be in effect in exactly 12 days from now. Time to act! I basically had the choice between implementing a privacy policy detailing on several pages why I definitely need to use all these external services, and finding alternatives. Well, since I very much prefer technical solutions over legal ones,  the choice wasn't too difficult. 😉&lt;/p&gt;
&lt;p&gt;I've used Google Analytics mainly for two reasons: first, I like to look at aggregate statistical data, and second, I don't see the evil in it. The user can block this external service in uncountable ways, for example, by simply rejecting the corresponding cookie, or by installing a script- or adblocker. Instead of creating a monstrous legal construct such as the GDPR, one should rather educate users to take care of themselves again. But the data protection industry only exists since these things are massively blown out of proportion, and of course they serve their own interests. They like to see the users as drooling rugrats, and they like to keep them like that. Well, that's the general trend of all western societies.&lt;/p&gt;
&lt;img alt="../images/ct_schlagseite_2018_11_90.webp" class="align-center" src="https://cobra.pdes-net.org/images/ct_schlagseite_2018_11_90.webp"&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.heise.de/ct/ausgabe/2018-11-Schlagseite-4041254.html"&gt;c't-Schlagseite von Ritsch+Renn in c't 11/2018&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Anyway, since I recently integrated a &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/unbound.html"&gt;black list into my local DNS resolver&lt;/a&gt;, it's actually not that simple anymore to access the Google analytics domain. 😄 Furthermore, I'm interested how many of my readers actually block Google Analytics. And most importantly, I thought it would be a good idea to take the opportunity to get rid of this proprietary garbage. 😊&lt;/p&gt;
&lt;p&gt;I thus searched for local web analyzers and came across several, but took an immediate liking in &lt;a class="reference external" href="https://goaccess.io/"&gt;goaccess&lt;/a&gt;. It's easily installed and even easier to use:&lt;/p&gt;
&lt;pre class="literal-block"&gt;# echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | tee -a etc/apt/sources.list.d/goaccess.list
# wget -O - https://deb.goaccess.io/gnugpg.key | apt-key add -
$ sudo apt update
$ sudo wajig install goaccess&lt;/pre&gt;
&lt;p&gt;Goaccess comes preconfigured with the log formats of the most popular web servers, but for Hiawatha, our web server of choice, manual configuration was required. Fortunately, I found all relevant information in the &lt;a class="reference external" href="https://www.hiawatha-webserver.org/forum/topic/2554"&gt;Hiawatha forum&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;time-format %T %z
date-format %a %d %b %Y
log-format %h|%d %t|%s|%b||%r|%v|%u|%^|%^|%^|%R|%^|%^&lt;/pre&gt;
&lt;p&gt;Since the reports of goaccess are directly generated from the access logs of the web server, I anonymized the IP by activating the&lt;/p&gt;
&lt;pre class="literal-block"&gt;anonymizeIP = yes&lt;/pre&gt;
&lt;p&gt;option in /etc/hiawatha/hiawatha.conf.&lt;/p&gt;
&lt;p&gt;Finally, I configured goaccess to &lt;a class="reference external" href="https://johnveldboom.com/posts/goaccess-automated-reports-last-30-days-via-cron/"&gt;automatically generate html reports&lt;/a&gt;. Logrotate takes care of periodically deleting the logs (which don't contain personal information anyway). The reports, by the way, show that at least 75% of all visitors of this site block Google Analytics. Excellent! Also, I'm happy to see that I have four times as many readers than I thought. 😉&lt;/p&gt;
&lt;p&gt;The next task was a local installation of the Google fonts I'm using. That was very quickly done by cloning the bash script 'best-served-local' of &lt;a class="reference external" href="https://github.com/ronalde/best-served-local"&gt;Ronald van Engelen&lt;/a&gt; and running it:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone https://github.com/ronalde/best-served-local
cd best-served-local
./best-served-local -i ../static/fonts "Kreon:300,400,700" &amp;gt; ~/temp/fonts/kreon.css
./best-served-local -i ../static/fonts "Fira Mono:400,700" &amp;gt; ~/temp/fonts/fira.css&lt;/pre&gt;
&lt;p&gt;The css snippets thus created have to be included in the main css file of the blog's theme, which in my case is a modified bootstrap. The fonts themselves go into ../output/assets/static/fonts (that has to be consistent with the option for the command line parameter -i above).&lt;/p&gt;
&lt;p&gt;Next, I wanted to get rid of the dependency on an external resource for &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/scalable.html"&gt;MathJax&lt;/a&gt;. I struggled first with a local installation of &lt;a class="reference external" href="https://khan.github.io/KaTeX/"&gt;KaTeX&lt;/a&gt;, but couldn't get it to work. MathJax instead was very easy. I simply installed libjs-mathjax and fonts-mathjax on pdes-net.org, and copied it to a location accessible to the webserver&lt;/p&gt;
&lt;pre class="literal-block"&gt;cp -r /usr/share/javascript/mathjax/ /var/www/hiawatha/cobra/output/assets/static/mathjax/&lt;/pre&gt;
&lt;p&gt;and back to my local blog installation&lt;/p&gt;
&lt;pre class="literal-block"&gt;scp -r cobra@netcup:/var/www/hiawatha/cobra/output/assets/static/mathjax/ home/cobra/ownCloud/MyStuff/Documents/pdes-net.org/output/assets/static/&lt;/pre&gt;
&lt;p&gt;Finally, the Nikola configuration file had to be updated correspondingly:&lt;/p&gt;
&lt;pre class="literal-block"&gt;&amp;lt;script src="../assets/static/mathjax/MathJax.js?config=TeX-AMS_SVG"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;p&gt;Finally, the search box on this site already works on the client side by virtue of &lt;a class="reference external" href="https://plugins.getnikola.com/v7/localsearch/"&gt;tipuesearch&lt;/a&gt;. So, I was done!&lt;/p&gt;
&lt;p&gt;Ah, not entirely: I still had to update my contact page. After doing that, I also moved the link to the bottom of the page as its customary on most sites.&lt;/p&gt;
&lt;hr class="docutils"&gt;
&lt;p&gt;Well, when I look at the result, I'm actually quite pleased. I feel that I have really done something for the good of my visitors, instead of continuing to act as a data collector for Google and others, and justifying that by tons of legal mumbo-jumbo in a privacy policy nobody reads or understands. But &lt;a class="reference external" href="https://en.wikipedia.org/wiki/IANAL"&gt;IANAL&lt;/a&gt;, and it is likely that this particular species actually prefers the latter, no matter what the GDPR says about transparency and plain language. Let's see.&lt;/p&gt;</description><category>info</category><category>thoughts</category><category>web</category><guid>https://cobra.pdes-net.org/posts/general-data-protection-regulation.html</guid><pubDate>Sun, 13 May 2018 12:47:55 GMT</pubDate></item><item><title>Let's encrypt</title><link>https://cobra.pdes-net.org/posts/lets-encrypt.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Ever since I've set up the &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/new-server.html"&gt;new server&lt;/a&gt; for this blog, I've wanted to make the switch from plain HTTP to TLS-encrypted HTTPS (if you think HTTPS is for online shops and banks only, &lt;a class="reference external" href="https://https.cio.gov/faq/"&gt;think&lt;/a&gt; &lt;a class="reference external" href="https://cheapsslsecurity.com/blog/http-vs-https-do-you-really-need-https/"&gt;again&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This transition turned out to be much easier than I thought. Hiawatha, our web server of choice, comes with a script that takes care of registering the site at &lt;a class="reference external" href="https://letsencrypt.org/"&gt;Let's Encrypt&lt;/a&gt; and requesting certificates for the associated domain(s). Chris Wadge, the maintainer of Hiawatha for Debian, provided an excellent &lt;a class="reference external" href="https://dotbalm.org/lets-encrypt-with-hiawatha/"&gt;tutorial&lt;/a&gt; guiding through the few steps necessary to configure Hiawatha for serving HTTPS content.&lt;/p&gt;
&lt;p&gt;Since I had to configure vhosts for the certificates anyway, I took the opportunity to set up some proper subdomains. For example, this blog can now be reached at &lt;a class="reference external" href="https://cobra.pdes-net.org"&gt;https://cobra.pdes-net.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After a bit of tweaking (setting HSTS to one year), the security rating of our site is flawless:&lt;/p&gt;
&lt;img alt="../images/qualys.png" class="align-center" src="https://cobra.pdes-net.org/images/qualys.png"&gt;</description><category>encryption</category><category>info</category><category>web</category><guid>https://cobra.pdes-net.org/posts/lets-encrypt.html</guid><pubDate>Sat, 17 Feb 2018 12:47:02 GMT</pubDate></item><item><title>Meltdown patch available for Arch</title><link>https://cobra.pdes-net.org/posts/meltdown-patch-available-for-arch.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;If you haven't heard of &lt;a class="reference external" href="https://meltdownattack.com/"&gt;Meltdown and Spectre&lt;/a&gt;, it's about time you do. Since yesterday, all newspapers and even &lt;a class="reference external" href="http://www.tagesschau.de/ausland/intel-sicherheitsluecke-101.html"&gt;TV&lt;/a&gt; provide extensive coverage on a recently discovered vulnerability of modern CPUs potentially resulting in a leak of sensitive data. While Meltdown seems to primarily affect all modern Intel CPUs, Spectre also applies to AMD and ARM chips. The scale of this vulnerability is not only unprecedented, it's historic.&lt;/p&gt;
&lt;p&gt;The KPTI (formerly KAISER) patch developed by the University of Graz &lt;a class="reference external" href="https://meltdownattack.com/meltdown.pdf"&gt;defeats Meltdown&lt;/a&gt;. &lt;a class="reference external" href="https://www.heise.de/security/meldung/Massive-Luecke-in-Intel-CPUs-erfordert-umfassende-Patches-3931562.html"&gt;The patch is part of the coming Linux kernel 4.15 and has already been backported to 4.14.11&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Which brings me to the good news for Archers like myself: Kernel 4.14.11 is available since yesterday, 8:13 CET. Spectacular work from upstream, but also from the Arch team! No new microcode, though – the currently available one is still from 17th of November.&lt;/p&gt;
&lt;p&gt;CentOS just provided patches as well. There's nothing from Debian yet, however. 😞&lt;/p&gt;
&lt;p&gt;Oh, and I've just received a &lt;a class="reference external" href="https://forum.netcup.de/administration-eines-server-vserver/vserver-server-kvm-server/9515-umgang-mit-sicherheitsl%C3%BCcken-in-cpus-meltdown-spectre/"&gt;mail&lt;/a&gt; from the hoster of pdes-net.org. Good to see they react at once.&lt;/p&gt;
&lt;p&gt;What a great start of 2018. Well, regardless, happy new year to all of you. 😉&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: An in-depth analysis of the mechanisms resulting in meltdown and spectre can be found in an &lt;a class="reference external" href="https://www.heise.de/newsticker/meldung/Analyse-zur-Prozessorluecke-Meltdown-und-Spectre-sind-ein-Security-Supergau-3935124.html"&gt;online article&lt;/a&gt;  (in German) written by the legendary Andreas Stiller (who, most unfortunately, retired at the end of 2017).&lt;/p&gt;</description><category>archlinux</category><category>debian</category><category>info</category><guid>https://cobra.pdes-net.org/posts/meltdown-patch-available-for-arch.html</guid><pubDate>Thu, 04 Jan 2018 16:34:04 GMT</pubDate></item><item><title>Representative surveys</title><link>https://cobra.pdes-net.org/posts/representative-surveys.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Statistical surveys are a standard tool of sociology, and have been the subject of extensive research. In the hands of professionals, the results of these surveys can be surprisingly accurate. As a result, surveys have attained the status of the oracle of Delphi, and people fervently believe in them. Naturally, this development has made surveys an attractive tool for manipulating public opinion. The standard way to do this is to load the questions with a moral obligation. Don't you agree that &lt;a class="reference external" href="http://www.independent.co.uk/news/uk/politics/theresa-may-internet-regulated-london-bridge-terror-attack-google-facebook-whatsapp-borough-security-a7771896.html"&gt;the internet should be regulated to deprive extremists of their safe spaces online&lt;/a&gt;? No? Really, what a kind of person are you? Don't you ever think of the children?&lt;/p&gt;
&lt;p&gt;However, unexpected results of surveys do not always have sinister reasons, but may instead simply reflect the incompetence of the inquirer. In particular, the most elementary rule for designing a survey is frequently forgotten: namely, that those taking part in the survey have to understand the questions. Sounds obvious, doesn't it? But is it?&lt;/p&gt;
&lt;p&gt;An example: the recent news of heise online that only(!) 16% percent of all Germans encrypt their emails (&lt;a class="reference external" href="https://www.heise.de/newsticker/meldung/Umfrage-Nur-16-Prozent-der-Deutschen-verschluesseln-ihre-E-Mails-3720597.html"&gt;Umfrage: Nur 16 Prozent der Deutschen verschlüsseln ihre E-Mails&lt;/a&gt;). This survey was conducted by Convios Consulting on behalf of &lt;a class="reference external" href="https://de.wikipedia.org/wiki/United_Internet"&gt;United Internet&lt;/a&gt; (UI), one of the largest internet and mail providers in Germany.&lt;/p&gt;
&lt;p&gt;UI &lt;a class="reference external" href="https://newsroom.web.de/2017/05/22/der-trump-effekt-das-digitale-misstrauen-waechst/"&gt;claims&lt;/a&gt; that about 750,000 of their users have generated PGP key pairs. That's a very impressive number, particularly since according to UI, only 4.7 million keys “exist” worldwide. The UI users would thus account for 16% of all PGP keys. Doesn't that demonstrate very nicely that UI's &lt;a class="reference external" href="https://www.theregister.co.uk/2016/10/06/pgp_email_service_gmx/"&gt;encryption initiative&lt;/a&gt; introduced in August 2016 is highly successful?&lt;/p&gt;
&lt;p&gt;Well, the whole reason for the survey was to create exactly this impression. I have no doubts that the numbers quoted above are correct, but what do they mean?&lt;/p&gt;
&lt;p&gt;First of all, the number reported for the existing keys worldwide only accounts for the keys that have been deposited on &lt;a class="reference external" href="https://sks-keyservers.net/status/key_development.php"&gt;key servers.&lt;/a&gt; Nobody can estimate how many keys have actually been generated or are in use. That's quite different in the case of the UI encryption scheme, which is based on &lt;a class="reference external" href="http://pdes-net.org/cobra/posts/encryption-for-humans.html"&gt;mailvelope,&lt;/a&gt; and the &lt;a class="reference external" href="https://www.heise.de/newsticker/meldung/Web-de-und-GMX-fuehren-PGP-Verschluesselung-fuer-Mail-ein-2786133.html"&gt;storage of the public key of the user in a database located on a UI server&lt;/a&gt;. The number given above is thus the total number of UI customers with a PGP key, unless they use a separate key in a stand-alone MUA (of which I know two 😉).&lt;/p&gt;
&lt;p&gt;There are about &lt;a class="reference external" href="https://de.statista.com/themen/2249/e-mail-nutzung/"&gt;40 million&lt;/a&gt; email users in Germany. According to UI, about &lt;a class="reference external" href="https://newsroom.web.de/2017/05/22/der-trump-effekt-das-digitale-misstrauen-waechst/"&gt;half&lt;/a&gt; of them use GMX or WEB.DE, which seems reasonable as UI is reported to have close to &lt;a class="reference external" href="http://www.handelsblatt.com/unternehmen/it-medien/1und1-gmx-web-de-united-internet-peilt-die-marke-von-20-millionen-kunden-an/19561364.html"&gt;20 million&lt;/a&gt; customers. Now, let's suppose that all UI customers who have generated a key are also actually using it to encrypt their mail. In this unlikely case, 3.75% of all UI users would encrypt their mail, much less than the “only 16%” of their survey. Obviously, that must mean that 28.25% of the other 20 million email users in Germany, who are mostly customers of the German Telekom, Google, and Microsoft, encrypt their mail. Right?&lt;/p&gt;
&lt;p&gt;Of course not. Try to ask arbitrary Gmail users if they encrypt their mail. 84% will look at you with with blank eyes, but 16% will &lt;a class="reference external" href="https://blog.google/products/gmail/making-email-safer-for-you-posted-by/"&gt;recognize&lt;/a&gt; the word and confirm that they do, YES! Ask them afterwards if they know the difference between transport and end-to-end encryption. I guarantee that you will soon get tired of asking people because even after several hundreds you won't find a single one who can answer your second question...&lt;/p&gt;
&lt;p&gt;How many people do encrypt their mails? I don't think there exist any bona fide surveys on that topic. I can only provide anecdotal evidence with very limited statistical significance. On the other hand, I've been a serious advocate of end-to-end-encryption since about 15 years. I've written tutorials and motivated many of my personal contacts to use end-to-end encryption in email and messenging. Well, some would say I forced them at gunpoint. But that would be exaggerated...&lt;/p&gt;
&lt;p&gt;I have currently 49 personal contacts with public PGP keys, and 16 business contacts. That doesn't sound too bad, does it? However, 17 and 4 of these keys are expired, leaving 32 and 12, respectively. Subtracting keys whose pass phrases have been forgotten by their users or were otherwise disposed of leaves 19 and 7. Some of my contacts have passed away, are retired, or I've simply lost touch, leaving in the end 4 and 5 with which I can, in principle, exchange end-to-end encrypted mails. Actually, however, there are only three persons with whom I regularly exchange encrypted mails: my patent attorney at work and my fellow PdeS (that's why they have that label) in actual life.&lt;/p&gt;
&lt;p&gt;Three out of 65 with an actively used key, but of how many without any clue what that even means? I don't want to spent time on the question of how I could count the number of unique addresses in my mail folders over the past few years. But obviously, this number would be in the several hundreds. In other words, the total percentage of people employing end-to end-encryption in &lt;em&gt;my&lt;/em&gt; emails is way lower than 1%. And if I wouldn't be interested in these kind of things, and if I wouldn't be a scientist, this percentage would be exactly zero. Not 16%. Not 0.16%. Zero.&lt;/p&gt;
&lt;p&gt;Can we find out how many people really encrypt their mails by a survey? Not really. If less than 100 ppm of all people encrypt (which is the number I find most plausible), we would need a mega-survey over 50000 people to include at least 5 people who actually do encrypt, and that's never going to happen. And don't let them tell you that the rules of statistics somehow don't apply there and representative surveys can answer all of these questions as if by magic. &lt;a class="reference external" href="https://www.youtube.com/watch?v=c4psKYpfnYs"&gt;That's bullshit. All of it.&lt;/a&gt;&lt;/p&gt;</description><category>encryption</category><category>info</category><category>mathematics</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/representative-surveys.html</guid><pubDate>Sun, 25 Jun 2017 14:34:20 GMT</pubDate></item><item><title>In the old days</title><link>https://cobra.pdes-net.org/posts/in-the-old-days.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Research places like the one I'm associated with are characterized by a constant turnover of personnel. Currently, our 20 senior scientists are supported by about 50 assistant and associate researchers on temporary positions. Our annual turnover rate is thus as high as 30 to 40%, meaning that I meet about 15 to 20 new people every year.   &lt;/p&gt;
&lt;p&gt;The level of understanding in physics and material science fluctuates, but does not seem to deteriorate over the years. That's the good news. What does decline significantly is the ability to read and write and to use a computer efficiently. At the same time, the fraction of people with an undue sense of entitlement is growing dramatically.&lt;/p&gt;
&lt;p&gt;What do I call an “undue sense of entitlement”? Well, imagine. It's your first day at a new place where you hope to perform top-notch research yielding results important enough to publish them in prestigious journals. You are shown into your office, which you share with some more experienced colleagues, and on your desk sits a brand-new 24 inch Full-HD display connected to an equally brand-new desktop computer.  And exactly that's the moment when you demand, loud and clear, two monitors. The bigger the better! And an hour later, you call our IT service to demand the real Office. And Photoshop! When the IT freaks ask for which purpose you need this software, you most strongly express your righteous indignation. First of all, that's none of his business, and second, that should be obvious! After all, you have letters to write. And later, there may be images whose contrast needs to be increased. &lt;/p&gt;
&lt;p&gt;Now, that's exactly what you would do, right? &lt;/p&gt;
&lt;p&gt;No, of course not. No halfway sensible person would behave in this way. Alas, every year we get more and more young people with this attitude. Experience tells us that the people demanding the most are the ones returning the least. They also tend to create constant trouble: they are more concerned with their own self-importance than with their research, and are generally ignorant, obnoxious, and unproductive.  &lt;/p&gt;
&lt;p&gt;I still vividly remember my own time as a PhD student at the &lt;a href="http://de.wikipedia.org/wiki/Max-Planck-Institut_f%C3%BCr_Festk%C3%B6rperforschung"&gt;MPI-FKF&lt;/a&gt;. I had previously written my diploma thesis on an &lt;a href="http://www.hpmuseum.net/images/VectraWith35741B-38.jpg"&gt;HP Vectra&lt;/a&gt;, an &lt;a href="https://en.wikipedia.org/wiki/IBM_Personal_Computer/AT"&gt;IBM AT compatible,&lt;/a&gt; which I had to share with the six or seven members of our research group. At the weekends, I also had access to my own computer, an &lt;a href="https://en.wikipedia.org/wiki/PC1512"&gt;Schneider PC1512&lt;/a&gt; that I primarily used for running Pascal programs. God, did it feel slow compared to the Vectra at work! At the MPI, however, computing was not yet “personal”. Instead, &lt;a href="https://en.wikipedia.org/wiki/VT220"&gt;VT220&lt;/a&gt; text terminals were offered for the interaction with the &lt;a href="https://en.wikipedia.org/wiki/VAX_6000"&gt;VAX&lt;/a&gt; station in the basement. I'd say we had perhaps 20 terminals for about 300 scientists. &lt;/p&gt;
&lt;p&gt;Basically, these terminals were used for three essential tasks. First, one could receive and send e-mails using the 'mail' program. That was my first contact with the Internet and I found it exciting! Second, we wrote our manuscripts using &lt;a href="https://en.wikipedia.org/wiki/EVE_(text_editor)"&gt;EVE,&lt;/a&gt; the &lt;a href="http://www.livingcomputermuseum.org/Online-Systems/User-Documentation/OpenVMS-7-3-(VAX-11-785)/3_(Editor)_EVE.aspx"&gt;extensible versatile editor,&lt;/a&gt; compiled them with &lt;a href="LaTeXhttps://en.wikipedia.org/wiki/LaTeX"&gt;LaTeX&lt;/a&gt;, converted the resulting &lt;a href="https://en.wikipedia.org/wiki/Device_independent_file_format"&gt;dvi&lt;/a&gt; file to postscript with &lt;a href="https://en.wikipedia.org/wiki/Dvips"&gt;dvips&lt;/a&gt;, and used &lt;a href="https://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol"&gt;lpr&lt;/a&gt; to send the postscript output to one of the three or four Hewlett-Packard &lt;a href="https://en.wikipedia.org/wiki/Laserjet#1980s"&gt;LaserJets&lt;/a&gt; located at strategic locations (mine was close to the beer machine¹) in the institute. The VT220 could not display any graphics, so we had to print to see if our LaTeX code did what we wanted! Third, EVE was also used to write FORTRAN code, and there were always a number of computations running on our VAX. I do not remember which model we had, but &lt;a href="http://www.roylongbottom.org.uk/mips.htm#anchorDEC"&gt;a VAX 6360 from 1988&lt;/a&gt; had six processors clocked at 16.7 MHz and an estimated performance of 22 &lt;a href="https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_.28MIPS.29"&gt;MIPS&lt;/a&gt;, all for a meager $752K. A high-end smartphone is easily 1000 times as fast. &lt;/p&gt;
&lt;p&gt;Just that you have an idea of how it feels to work on a VT220, here's an impression recorded by &lt;a href="http://jstn.cc/post/8692501831"&gt;jstn.&lt;/a&gt; The little cube on the left is the VT220 displaying a terminal of the Mac Pro it is connected to.  &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="https://cobra.pdes-net.org/images/vts220.png"&gt;&lt;/p&gt;
&lt;p&gt;Between January 1990 and September 1991, I wrote 10 manuscripts on this little cube as the first author (all of which got published) followed by my dissertation which I've submitted just before Christmas 91. How I did that? Instead of complaining, I typed. &lt;/p&gt;
&lt;p&gt;¹ Yes, you heard right: we had a beer machine. All right, it was actually a standard soda machine, but it offered two kinds of beer in addition to Coke and Co.: Stuttgarter Hofbräu &lt;a href="http://www.stuttgarter-hofbraeu.de/produkt-sortiment/stuttgarter-hofbraeu/herren-pils-05/"&gt;Pils&lt;/a&gt; and &lt;a href="http://www.stuttgarter-hofbraeu.de/produkt-sortiment/stuttgarter-hofbraeu/export/"&gt;Export&lt;/a&gt;, if I remember correctly. The machine was heavily frequented and we had the most illuminating discussions in the park just outside the canteen, where the beer machine—and the printer—were located. Many great ideas originated from these discussions. Nowadays, where people wear a helmet when going to the loo, that's unimaginable.&lt;/p&gt;</description><category>hardware</category><category>info</category><category>latex</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/in-the-old-days.html</guid><pubDate>Sat, 03 Sep 2016 12:43:46 GMT</pubDate></item></channel></rss>