social.dk-libre.fr is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.

This server runs the snac software and there is no automatic sign-up process.

Search results for tag #linux

AodeRelay boosted

[?]adminForge :cloud: » 🌐
@adminforge@kanoa.de

AodeRelay boosted

[?]Marcel SIneM(S)US » 🌐
@simsus@social.tchncs.de

heise+ | Auswirkungen der neuen Secure-Boot-Zertifikate für Linux | heise online heise.de/ratgeber/Auswirkungen :tux:

    AodeRelay boosted

    [?]dewomser » 🌐
    @dewomser@social.tchncs.de

    206 Gists mit / Thema ist schon viel. Hier gibts eine frische Liste der letzten 200 .
    gist.github.com/dewomser/65c61

      AodeRelay boosted

      [?]aeva [she/her] » 🌐
      @aeva@mastodon.gamedev.place

      Confused by Linux? I made this handy dandy chart to help clear up the confusion!

      A Linux Alignment Chart, depicting a 3x3 matrix where one axis is "Terminology purist, neutral, and radical" and the other is "Origin purist, neutral, and radical".

Origin Purist, Terminology Purist: Linux 6.2-rc1 as distributed by kernel.org is a Linux

Origin Purist, Terminology Neutral: Linus's Linux boot floppy was a Linux

Origin Purist, Terminology Radical: Git is a Linux

Origin Neutral, Terminology Purist: GNU HERD is a Linux

Origin Neutral, Terminology Neutral: FreeDOS is a LInux

Origin Neutral, Terminology Radical: GNU is a Linux

Origin Radical, Terminology Purist: A CUDA shader is a Linux

Origin Radical, Terminology Neutral: Windows is a Linux

Origin Radical Terminology Radical: Crypto-currency is a Linux

      Alt...A Linux Alignment Chart, depicting a 3x3 matrix where one axis is "Terminology purist, neutral, and radical" and the other is "Origin purist, neutral, and radical". Origin Purist, Terminology Purist: Linux 6.2-rc1 as distributed by kernel.org is a Linux Origin Purist, Terminology Neutral: Linus's Linux boot floppy was a Linux Origin Purist, Terminology Radical: Git is a Linux Origin Neutral, Terminology Purist: GNU HERD is a Linux Origin Neutral, Terminology Neutral: FreeDOS is a LInux Origin Neutral, Terminology Radical: GNU is a Linux Origin Radical, Terminology Purist: A CUDA shader is a Linux Origin Radical, Terminology Neutral: Windows is a Linux Origin Radical Terminology Radical: Crypto-currency is a Linux

        AodeRelay boosted

        [?]PurpleGengar » 🌐
        @Purplegengar25@lgbtqia.space

        I switched to distros and stumbled onto something curious, the powerful features I'd completely overlooked for years were already in the Windows software I used on daily basis.

        Text editor commands, graphics shortcuts, productivity workflows—all there, buried or unfamiliar. But on Windows, I never had to learn them. The OS was designed to work without that knowledge.

        Linux, though, demanded engagement. No coasting. That friction forced me to explore, experiment, and actually use these capabilities. Now my workflow is transformed, and I can't imagine working without them. The real irony, switching to open-source software made me a fundamentally better user of proprietary tools.

          Fred de CLX boosted

          [?]9to5Linux » 🌐
          @9to5linux@floss.social

          4.6.8 Improves Protocol and Capture File Support, Fixes More Bugs 9to5linux.com/wireshark-4-6-8-

          A screenshot of Wireshark showing the main window and the About Wireshark dialog.

          Alt...A screenshot of Wireshark showing the main window and the About Wireshark dialog.

            AodeRelay boosted

            [?]sjvn » 🌐
            @sjvn@mastodon.social

            Linux desktop use surged to 22% on one workday, Cloudflare data shows zdnet.com/article/linux-deskto via @ZDNet & @sjvn

            The desktop’s popularity is growing rapidly, here's why.

              Fred de CLX boosted

              [?]Linux Magazine » 🌐
              @linuxmagazine@fosstodon.org

              The Linux operating system hit a major milestone with a market share high of 10.65%, according to and @cloudflare
              linux-magazine.com/Online/News

              LINUX MAGAZINE NEWS

              Alt...LINUX MAGAZINE NEWS

                AodeRelay boosted

                [?]stdevel » 🌐
                @stdevel@chaos.social

                Am Wochenende noch nichts vor? Die @FrOSCon findet wieder in Sankt-Augustin statt.

                Dieses Mal dürfen @Tronde und ich sowohl einen Vortrag (programm.froscon.org/froscon20) als auch einen Workshop (programm.froscon.org/froscon20) zum Thema Patch-Management unter beitragen.

                Das Vortragsprogramm ist dieses Jahr wieder sehr umfangreich. 🙂

                  AodeRelay boosted

                  [?]Larvitz :fedora: » 🌐
                  @Larvitz@burningboard.net

                  Git is great at storing dotfiles. It is less good at knowing where they belong, which permissions they need, or why a work laptop and a home server should differ.

                  Here is how I use chezmoi plus Git to manage fish, Neovim, SSH, GnuPG, Atuin and more. Including the “oops, I edited the live file” recovery workflow.

                  blog.hofstede.it/chezmoi-and-g

                    AodeRelay boosted

                    [?]Andreas » 🌐
                    @andreasgoebel@bildung.social

                    Schuljahresbeginn in - es brutzeln 16 Lernsticks. in zwei 8-Port-USB-Hubs.

                    Während das läuft eine Runde im kühlen Keller, vor dem Duschen dann die nächsten 16.

                    Die übrigen knapp 100 Sticks kopiere ich dann am Wochenende, dann kann ich die ersten mit meiner Klasse ausprobieren und noch Dinge korrigieren, die ich evtl. vergessen habe.

                      [?]GamingOnLinux 🐧🎮 » 🌐
                      @gamingonlinux@mastodon.social

                      [?]Camille Roux » 🌐
                      @camilleroux@mastodon.social

                      Où voir l'éclipse ce soir ?
                      Sunset Atlas : carte gratuite qui note la qualité du coucher de soleil en Europe à 30m de résolution, avec forecast nuageux et couche spéciale éclipse du 12 août 2026. ⬇️
                      sunsetatlas.ch/?lang=fr&mode=e

                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Pdc

                      Carte interactive montrant les meilleurs spots pour observer l'éclipse du 12 août 2026 près de Montpellier, avec un score de qualité de 97% de couverture et trois emplacements recommandés à proximité.

                      Alt...Carte interactive montrant les meilleurs spots pour observer l'éclipse du 12 août 2026 près de Montpellier, avec un score de qualité de 97% de couverture et trois emplacements recommandés à proximité.

                        David Gerard boosted

                        [?]Neville Park [ze/hir] » 🌐
                        @nev@status.nevillepark.ca

                        re: LLM brain worms, Linux kernel & whatnot, inside baseball [SENSITIVE CONTENT]

                        At this point so many fundamental software projects are allowing LLM commits that just using something else isn't practical or sometimes even possible, but I guess it can be mitigated by going with long-term support releases instead of bleeding-edge or even major updates

                        I guess we just accept that at some point down the road something extremely vital and important will break or get compromised and people will actually have to take a look at it and realize it's horrific spaghetti code and have to redo a lot of it. At least when it happens it will be kind of like us-east-1 going down in that everyone's equally fucked so no one's getting work done anyway.

                        It's like Y2K except people are deliberately coding it in. Wheee!

                        (See e. g. @davidgerard @zzt for context)

                        #linux

                          AodeRelay boosted

                          [?]Victoria :3 🏳️‍⚧️🇵🇸 [she/her] » 🌐
                          @tragivictoria@mastodon.com.pl

                          And then there's also the "I used to donate to thing X, but due to the project's decisions I stopped, y'all suck fuck you".

                          Like, nice, thanks for donating, but have you considered you can move to another thing while accepting that it's simply not for you anymore?

                          It's no secret I love Adwaita apps, they rock my boat in exactly the way I want them to, but you won't see me shitting and bitching about KDE just because they dared to not cater specifically to me 🤷🏻‍♀️ That would be stupid.

                            [?]Camille Roux » 🌐
                            @camilleroux@mastodon.social

                            PGSimCity : une ville 3D explorable qui modélise le fonctionnement interne de PostgreSQL, buffer pool, WAL, vacuum, tout y est représenté de façon visuelle et interactive. ⬇️
                            nikolays.github.io/PGSimCity/

                            📬 Ma veille dev de la semaine → l.camilleroux.com/veille-bcS

                              AodeRelay boosted

                              [?]Cmnews » 🌐
                              @cmnews@mastodon.world

                              ChatGPT-App für veröffentlicht

                              Eine zentrale Funktionalität der Windows- und Mac-Varianten von ChatGPT ist in der offiziellen Linux-Anwendung nicht verfügbar.

                              t.ress.at/ztGRp/

                                AodeRelay boosted

                                [?]GNU/Linux.ch » 🌐
                                @gnulinux@social.anoxinon.de

                                Captain it's Wednesday - Folge 191 - Mecklenburg-Vorpommern wird unabhängiger

                                Folge 191 des CIW Podcasts.
                                Ein weiteres norddeutsches Bundesland entscheidet sich für die digitale Souveränität

                                gnulinux.ch/ciw191-podcast

                                  [?]Ryan Castellucci (they/them) :nonbinary_flag: 🔜 40C3 [they/them] » 🌐
                                  @ryanc@infosec.exchange

                                  Trying to get Debian to boot on my Radxa ROCK 5 ITX with a mirrored and encrypted ZFS root filesystem.

                                  Current status:

                                  EDK2 boots UEFI GRUB, with working serial console

                                  UEFI GRUB boots ZFSBootMenu, with working serial console

                                  ZFSBootMenu imports pool and accepts the passphrase, but then fails to find the kernel.

                                  This feels like progress?

                                    AodeRelay boosted

                                    [?]diesUndDasMitTassen 🇺🇦 » 🌐
                                    @Andreas_Sturm@mastodon.social

                                    Windows mit den verfügbaren Programmen war mehr Klickibunti als Linux, mich stört die Unsachlichkeit, wenn ich am Windows Rechner sitzen muss, besonders seit dem privaten Linux Wechsel - lenkt mich vom Wesentlichen ab. Noch nerviger finde ich apple mit seinem m.E. überladenen Design, deren Geräte schalte ich möglichst schnell wieder aus. Es muss nicht immer shell oder greenscreen sein, aber wenn ein OS mich "anschreit" bin ich genervt.

                                      AodeRelay boosted

                                      [?]Jörg 🇩🇪🇬🇧🇪🇺 » 🌐
                                      @AlienJay@burningboard.net

                                      Was ist die schlankste und am einfachsten zu handhabende Lösung um unter Fedora Linux eine VM zu betreiben?
                                      Habe hier einen etwas schwachbrüstigen Rechner, auf dem das laufen soll. Ich will meine Windowspartition durch eine Windows VM ersetzen.
                                      Ideen? Vorschläge?

                                        AodeRelay boosted

                                        [?]Linuxiac » 🌐
                                        @linuxiac@mastodon.social

                                        Manjaro’s latest stable update effectively brings the 26.1 “Bian-May” release to its final state, with Linux 7.1, Plasma 6.7, and major package updates.
                                        linuxiac.com/manjaro-26-1-esse

                                        Manjaro’s latest stable update effectively brings the 26.1 “Bian-May” release to its final state, with Linux 7.1, Plasma 6.7, and major package updates.

                                        Alt...Manjaro’s latest stable update effectively brings the 26.1 “Bian-May” release to its final state, with Linux 7.1, Plasma 6.7, and major package updates.

                                          AodeRelay boosted

                                          [?]iX Magazin » 🌐
                                          @iX_Magazin@social.heise.de

                                          iX-Workshop: Software und Updates mit Ansible automatisiert bereitstellen

                                          Trainieren Sie praxisnah, wie Sie die Systeme in Ihrem Unternehmen mit Ansible verwalten können, um Konfigurationen und Updates automatisiert zu verteilen.

                                          heise.de/news/iX-Workshop-Soft

                                            AodeRelay boosted

                                            [?]dewomser » 🌐
                                            @dewomser@social.tchncs.de


                                            Wenn ich mitten in der Nacht eine super Idee habe, die ich unbedingt vertröten will, aber da ist gerade niemand der das liest.
                                            Dieses Delay-Skript schickt es Stunden später ab.
                                            gist.github.com/dewomser/dbd5e

                                              AodeRelay boosted

                                              [?]𝕲-𝖙𝖙𝖊𝖘𝖘𝖔𝖍𝖓✞ » 🌐
                                              @jeschua@troet.cafe

                                              ⚡ Toot 1/4 — USB → NVMe → Hibernate

                                              USB rein, Terminal auf. 💻⚡
                                              Jetzt beginnt der Weg zum Hibernate – nicht mit Zauberei, sondern mit sauberer Linux-Mechanik. 🐧

                                              Die NVMe ist klar aufgeteilt:

                                              • nvme0n1p1 → EFI/FAT32 → /boot
                                              • nvme0n1p2 → LUKS2 → cryptroot 🔐
                                              • nvme0n1p3 → LUKS2 → cryptswap 💾

                                              Der erste Schritt: Die Verschlüsselung öffnen und den Weg bis zum Btrfs-Root freilegen.

                                              Mission gestartet. 🦸‍♂️⚡

                                              Ein Screenshot eines KDE-Plasma-Desktops mit geöffnetem Terminal, Anwendungsmenü und Systemmonitor. Im Terminal ist zunächst die Ausgabe von lsblk -f zu sehen: eine NVMe mit EFI-Partition, einer verschlüsselten LUKS2-Partition für cryptroot mit darunterliegendem Btrfs-Dateisystem sowie einer zweiten LUKS2-Partition cryptswap für den Swap. Anschließend zeigt sudo btrfs subvolume list / die vorhandene Btrfs-Struktur mit mehreren Subvolumes, darunter /home, /var, /var/lib/portables, /var/lib/machines sowie verschiedene Snapshots. Währenddessen weist der Systemmonitor auf eine entspannte Systemlast hin: geringe CPU-Auslastung, etwa 2,7 GiB belegter Arbeitsspeicher und aktuell kein verwendeter Swap. ⚔️🐧

                                              Alt...Ein Screenshot eines KDE-Plasma-Desktops mit geöffnetem Terminal, Anwendungsmenü und Systemmonitor. Im Terminal ist zunächst die Ausgabe von lsblk -f zu sehen: eine NVMe mit EFI-Partition, einer verschlüsselten LUKS2-Partition für cryptroot mit darunterliegendem Btrfs-Dateisystem sowie einer zweiten LUKS2-Partition cryptswap für den Swap. Anschließend zeigt sudo btrfs subvolume list / die vorhandene Btrfs-Struktur mit mehreren Subvolumes, darunter /home, /var, /var/lib/portables, /var/lib/machines sowie verschiedene Snapshots. Währenddessen weist der Systemmonitor auf eine entspannte Systemlast hin: geringe CPU-Auslastung, etwa 2,7 GiB belegter Arbeitsspeicher und aktuell kein verwendeter Swap. ⚔️🐧

                                                AodeRelay boosted

                                                [?]WinFuture.de » 🌐
                                                @WinFuture@mastodon.social

                                                AodeRelay boosted

                                                [?]Robert Frank » 🌐
                                                @frankobert@nrw.social

                                                ist einfach Klasse.
                                                DVD oder blue-ray auf Windows abspielen oder gar rippen kostet ne Menge Geld.
                                                Mit meinem USB Linux Mint waren das ein paar Handgriffe und Abspielen/Rippen von Blue-Rays funzt.
                                                Und auch meine Digital Devices Max M2 Fernsehkarte funktioniert zuverlässig bei DVB T2, DVB S2 auf Astra 19.2 und 28.2.

                                                  [?]GamingOnLinux 🐧🎮 » 🌐
                                                  @gamingonlinux@mastodon.social

                                                  AodeRelay boosted

                                                  [?]Linux User Group Nürnberg ✅ » 🌐
                                                  @lug_nuernberg@mastodon.online

                                                  Der 187. virtuelle -Treff Nord steht an:

                                                  Am Donnerstag, den 13.08. findet der virtuelle Linux-Treff Nord statt. Beginn ist wieder um 19:00 Uhr.

                                                  Themen werden u.a. diesmal sein:

                                                  - Von Mäusen mit Kabeln und sonstigen Verbindungsmöglichkeiten Teil 2
                                                  - ,
                                                  - wer sonst noch was mitbringt.

                                                  Wer mit dabei sein und z.B. eine Linuxfrage loswerden möchte, einfach eine Mail an kontakt[at]lug-noris.de senden.

                                                  Hinweis: Im August findet kein realer Linux-Treff statt. Nächster Termin: 03.09.

                                                    Christian boosted

                                                    [?]PlayingTux » 🌐
                                                    @playingtux@mastodon.social

                                                    AodeRelay boosted

                                                    [?]Jörg 🇩🇪🇬🇧🇪🇺 » 🌐
                                                    @AlienJay@burningboard.net

                                                    Um das Konfigurationstool mit unter zum Laufen zu bringen habe ich viel suchen müssen. Ich hatte hier auch gezielt mit gearbeitet, um die Vielfalt der Treffer nicht selber sortieren zu müssen. Leider führte das dazu, dass mich die KI teilweise in die falsche Richtung schickte. Die Lösungen im Internet sind teilweise recht alt und Wine hat in letzter Zeit einige grundlegende Änderungen erfahren. Dadurch passen die alten Lösungen nicht mehr zum aktuellen Wine. Das machte es natürlich noch schwieriger auch bei normaler Suche sich Stück für Stück vorwärts zu tasten.
                                                    Ich habe das alles für mich dokumentiert. So kann ich, wenn ich mein System mal neu aufsetze, was wahrscheinlich mit Fedora 45 passieren wird, das Tool wieder zum Laufen bringen. War kurz am Überlegen dass irgendwie öffentlich zu dokumentieren. Aber
                                                    1. Wo
                                                    2. Für wen
                                                    3. Wer KI einsetzt wird es eh nie finden

                                                    Fest steht: Bei zukünftigen Anschaffungen sind alle Firmen raus, die nicht nativ Linux unterstützen (5/2)

                                                      AodeRelay boosted

                                                      [?]argv[-1] » 🌐
                                                      @argv_minus_one@mastodon.sdf.org

                                                      Fun related fact: Scroll Lock actually does something! Namely, on the Linux console, output will freeze when Scroll Lock is on. That is, it “locks” the “scroll”.

                                                      To be precise, Linux interprets turning Scroll Lock on as equivalent to pressing Ctrl+S, and turning Scroll Lock off as equivalent to pressing Ctrl+Q. Ctrl+S and Ctrl+Q date back to the old terminals that systems were originally connected to. en.wikipedia.org/wiki/Software

                                                        AodeRelay boosted

                                                        [?]Galactic Stone » 🌐
                                                        @galacticstone@mastodon.social

                                                        Does anyone know the last Linux kernel version that didn't include slop code?

                                                        I'm using boxes that are 6-8 years old, so I don't need a shiny new kernel.

                                                        I'm also running Debian stable which uses ancient versions of packages, so I feel like I could run with an older kernel.

                                                        Would it work?

                                                          [?]BastilleBSD :freebsd: » 🌐
                                                          @BastilleBSD@fosstodon.org

                                                          I'm on the lookout for a great webmail interface for my self-hosted email. Currently been using my nextcloud Email app as the UI, but I don't love it.

                                                          What do you like for self-hosted webmail?

                                                            [?]Agenda du Libre » 🤖 🌐
                                                            @agenda_du_libre@pouet.chapril.org

                                                            AodeRelay boosted

                                                            [?]Anders Eknert » 🌐
                                                            @anderseknert@swecyb.com

                                                            I occasionally need to test things on , and while it’s easy to spin up an instance somewhere, it’d be more convenient having something at home. And it’s fun to just goof around. What’s a good Linux laptop 2026? Must ship with Linux or no OS installed. Other than that no hard requirements, but I’d prefer something lightweight over something beefy. I got beefy from work already 🙂

                                                              AodeRelay boosted

                                                              [?]GNU/Linux.ch » 🌐
                                                              @gnulinux@social.anoxinon.de

                                                              Serie: Ralf regt sich auf über CachyOS mit KDE-Plasma

                                                              Wird Kachy-Plasma das neue Traumpaar auf meinem Rechner? Lest diesen Artikel ohne viel Aufregung. Vielleicht gibt er Anregungen für den eigenen Wechsel.

                                                              gnulinux.ch/serie-ralf-regt-si

                                                                AodeRelay boosted

                                                                [?]Stefan 'lerothas' D. :v_gay2: [he/him / er/ihm] » 🌐
                                                                @lerothas@tech.lgbt

                                                                Habe heute meine Bestellung bei Conrad.de erhalten. Mit dabei Druckerfarbe für knapp 3€/100 mL. Deutlich günstiger als vom Hersteller.

                                                                Warum geht das?

                                                                Habe damals mehr Geld ausgegeben und einen Epson EcoTank Drucker gekauft. D.h. es gibt dort Druckertanks, die ich einfach nachfüllen kann mit welcher Tinte ich auch immer will.

                                                                So will ich das. 😊

                                                                (Natürlich drauf achten, dass sie auch wirklich kompatibel ist.)

                                                                Dazu ist das Gerät voll kompatibel mit : Drucken und Scannen geht übers WLAN einwandfrei bspw. über Okular und Skanpage.

                                                                  [?]jbz » 🌐
                                                                  @jbz@indieweb.social

                                                                  🐧 SparkyLinux 8.4 Brings Back 32-Bit Support for Older PCs

                                                                  「 According to the team, that decision was reconsidered after it became clear many users still have functional computers with 32-bit processors. As a result, SparkyLinux 8.4 again provides i686-pae Live/Install images alongside its existing 64-bit x86 and ARM64 editions 」

                                                                  linuxiac.com/sparkylinux-8-4-b

                                                                    AodeRelay boosted

                                                                    [?]KRISÚ クリス » 🌐
                                                                    @Krisuuu@mastodon.social

                                                                    Nutzt jemand Syncthing unter Linux zusammen mit Sushitrain auf dem iPhone?
                                                                    Wie sind eure Erfahrungen damit – insbesondere bei Zuverlässigkeit, iOS-Hintergrundbeschränkungen, und Datenschutz?
                                                                    Funktioniert das bei euch im Alltag gut? Würdet ihr die Kombination empfehlen?

                                                                      Fred de CLX boosted

                                                                      [?]GamingOnLinux 🐧🎮 » 🌐
                                                                      @gamingonlinux@mastodon.social

                                                                      AodeRelay boosted

                                                                      [?]Verfassungklage@troet.cafe » 🌐
                                                                      @Verfassungklage@troet.cafe

                                                                      - - für 24.04 und 22.3

                                                                      Wer auf Ubuntu 24.04 LTS »Noble Numbat« den HWE-Stack (Hardware Enablement für LTS-Systeme) nutzt, bekommt gerade ein verfrühtes Update spendiert: Canonical rollt den Linux-7.0-Kernel aus Ubuntu 26.04 LTS »Resolute Raccoon« vorzeitig auf Ubuntu 24.04 aus. Bislang lief der HWE-Zweig mit Kernel 6.17 aus dem inzwischen ausgelaufenen Ubuntu 25.10.

                                                                      linuxnews.de/hwe-kernel-update

                                                                        AodeRelay boosted

                                                                        [?]Verfassungklage@troet.cafe » 🌐
                                                                        @Verfassungklage@troet.cafe

                                                                        Am 11.08.26 um 19:30 Uhr im Livestream:

                                                                        Von der Idee zur : Wie gründe ich eine ?

                                                                        Wie gründet man eigentlich eine Linux User Group ( ) und baut eine aktive lokale auf? In diesem Livestream geht es um die Praxiserfahrungen rund um die Neugründung der Offenbach.

                                                                        m.youtube.com/watch?v=6JPFxz_R

                                                                          [?]GamingOnLinux 🐧🎮 » 🌐
                                                                          @gamingonlinux@mastodon.social

                                                                          [?]GamingOnLinux 🐧🎮 » 🌐
                                                                          @gamingonlinux@mastodon.social

                                                                          AodeRelay boosted

                                                                          [?]LinuxNews.de » 🌐
                                                                          @linuxnews@social.anoxinon.de

                                                                          [?]GamingOnLinux 🐧🎮 » 🌐
                                                                          @gamingonlinux@mastodon.social

                                                                          AodeRelay boosted

                                                                          [?]OBI-Markt Kenobi :netbsd: » 🌐
                                                                          @tux0r@layer8.space

                                                                          Erinnerung: Gestern war ein guter Tag, durch was Besseres zu ersetzen. Aber heute geht es auch noch.

                                                                            AodeRelay boosted

                                                                            [?]Verfassungklage@troet.cafe » 🌐
                                                                            @Verfassungklage@troet.cafe

                                                                            .2 bringt frische und

                                                                            Das -Projekt hat Version 26.2 veröffentlicht. Das Update verbessert , -Unterstützung und die unter .

                                                                            Besonders profitieren von zahlreichen Änderungen. Die -Treiber , , und Turnip wurden weiter ausgebaut. Sie bilden die Grundlage für Technologien wie , , -Proton und viele native -Spiele.

                                                                            fosstopia.de/mesa-26-2/

                                                                            AodeRelay boosted

                                                                            [?]LinuxNews.de » 🌐
                                                                            @linuxnews@social.anoxinon.de

                                                                            [?]st1nger :unverified: 🏴‍☠️ :linux: :freebsd: » 🌐
                                                                            @st1nger@infosec.exchange

                                                                            A use-after-free bug in 's can be turned into full on a host, and researchers say they used it to escape a and reach the machine underneath.
                                                                            The flaw has existed since 2008. The fix already shipped: stable kernels 7.1.6, 6.18.42, 6.12.101 and 6.6.148, released August 3, close it. Anyone running an older kernel with SCTP reachable should update.
                                                                            thehackernews.com/2026/08/18-y

                                                                              AodeRelay boosted

                                                                              [?]Sohrab Behdani :freebsd: » 🌐
                                                                              @sohrab@mastodon.bsd.cafe

                                                                              We at @parchlinux have started building something we've wanted for a long time: a full accessibility layer baked into the distro itself, not bolted on as an afterthought. Persian voice support, offline speech recognition, and a design that treats every desktop environment the same way. 🧵👇

                                                                              blog.parchlinux.com/a-linux-di

                                                                                Agnès boosted

                                                                                [?]Jack William Bell » 🌐
                                                                                @jackwilliambell@rustedneuron.com

                                                                                > Linus Torvalds says AI has made 'huge' kernel updates the new normal. theregister.com/os-platforms/2

                                                                                One *major* concern I have about this, entirely aside from any concerns about generative ? Are these massive pushes to the git repos getting enough human eyes on them to make certain no one is sneaking in Trojans and Back Doors? (Even accidentally, given the way work…)

                                                                                  AodeRelay boosted

                                                                                  [?]Radio_Azureus » 🌐
                                                                                  @Radio_Azureus@ioc.exchange

                                                                                  Localsend

                                                                                  fetch it via first source.

                                                                                  On my SBC Pi5 I found no native binary so I used the second source to link it via web with an android to transfer files. From version 1.18 or newer you can use the native Android version instead of another browser

                                                                                  Sources:

                                                                                  localsend.org/

                                                                                  web.localsend.org/

                                                                                    AodeRelay boosted

                                                                                    [?]Grunkle Moose » 🌐
                                                                                    @RootMoose@mastodon.bsd.cafe

                                                                                    It's a rainy day here so instead of working on the garden folly, I've been messing around with desktops and whatnot. I'm supposed to be on vacation... ha.

                                                                                    Finally tried out Cosmic. I like it, it's pretty light (and also unfinished) but it is snappy and usable as far as I could tell in a few hours of usage.

                                                                                    In the short term I'd expect to extend functionality with other apps if I was to daily it. As an example, there is no font management that I could find and ended up adding fonts manually.

                                                                                    Screenshot of Alpine Linux running a mildly customized Cosmic Desktop.

                                                                                    Alt...Screenshot of Alpine Linux running a mildly customized Cosmic Desktop.

                                                                                      [?]benzogaga33 :verified: » 🌐
                                                                                      @benzogaga33@mamot.fr

                                                                                      [?]Christian » 🌐
                                                                                      @datenteiler@fosstodon.org

                                                                                      RE: mastodon.online/@gardiner_brya

                                                                                      I have 1 iMac (Mint), 1 MacMini (LMDE), 1 MB Pro (MX Linux) and 1 MB Air (MX Linux) from 2011 and 1 MacMini (Mint) from 2014. They all work great with Linux but tbh best with Debian or Debian based distros like MX or LMDE.

                                                                                        Christian boosted

                                                                                        [?]Gardiner Bryant » 🌐
                                                                                        @gardiner_bryant@mastodon.online

                                                                                        AodeRelay boosted

                                                                                        [?]-=Kernel-Error=- » 🌐
                                                                                        @kernel-error.de@www.kernel-error.de

                                                                                        Die Maus funkt im Klartext: wie sicher Funktastatur und Funkmaus unter Linux wirklich sind

                                                                                        Fast jeder steckt so einen kleinen Funkadapter ein, ohne nachzudenken. Am Beispiel von Logitech Unifying zeige ich, wie du unter Linux mit Solaar siehst, ob deine Tastatur verschlüsselt funkt, und mit fwupd, ob die Firmware aktuell ist. Dazu ein ehrlicher Blick darauf, was ein Angreifer mit einem Flipper Zero wirklich aus der Luft holt. [SENSITIVE CONTENT]

                                                                                        Vor Kurzem saß ich in einer Arztpraxis im Wartezimmer, und weil ich so bin wie ich bin, habe ich statt der Zeitschriften die Rechner am Empfang angeschaut. An jedem hing eine Funkmaus und eine Funktastatur, dazu der kleine Adapter im USB-Port. Von einem Hersteller, den ich nicht kannte, der Eindruck war sehr günstiges No-Name-Gerät. So etwas nenne ich selbst gern etwas abfällig „Chinaprodukt“, was eigentlich unfair ist, denn die können das inzwischen richtig gut.

                                                                                        Im Gespräch mit dem Arzt kam heraus, dass ihm ein Punkt völlig neu war: dass die Tastatureingaben als Funk durch die Luft gehen und dass man Funk mithören kann. An seinem Platz werden Diagnosen, Namen und Medikamente getippt, und die Frage, ob das jemand aus dem Nachbarzimmer mitlesen könnte, hatte sich vorher schlicht nie gestellt. Aus genau dieser Unterhaltung ist dieser Beitrag entstanden, und er wollte ihn selbst lesen. Also, hallo an dieser Stelle, danke für den Anstoß.

                                                                                        Ich will die Praxis dabei nicht an den Pranger stellen. Über die Sicherheit genau dieses No-Name-Geräts kann ich nichts sagen, ich habe es nie in der Hand gehabt. Der Punkt ist ein anderer: fast jeder benutzt so einen Adapter, und kaum jemand hat sich die Frage je gestellt. Bei einer Mausbewegung ist das auch egal. Bei einem Passwort, einer PIN oder einem Login nicht. Also drei Fragen, die den Beitrag tragen. Kann man das wirklich abhören? Kann man sogar eigene Tasten einschleusen? Und wie sieht man, ob das eigene Gerät geschützt ist?

                                                                                        Ich mache das am Beispiel von Logitechs Unifying-Adapter, dem mit dem kleinen orangen Stern, weil ich davon zwei Stück im Rechner habe und weil Logitech einer der Hersteller ist, bei dem man den Unterschied zwischen „kein Krypto“ und „verschlüsselt“ schön sehen kann. Alles, was ich hier auf dem Rechner prüfe, zeige ich mit dem Befehl und der echten Ausgabe. Und wo etwas unklar bleibt, sage ich das auch.

                                                                                        Durch die Luft, und schon sind es zwei Probleme

                                                                                        Bevor es um Logitech geht, muss eine Sache sauber getrennt sein, denn der ganze Beitrag hängt daran. Wer an einem Funkgerät lauscht, will eines von zwei Dingen, und die sind unterschiedlich gefährlich.

                                                                                        • Mitlesen, passiv. Der Angreifer hört den Funk nur mit. Das ist gefährlich bei allem, was die Tastatur sendet, also Passwörter, PINs, Nachrichten. Bei der Maus dagegen gehen nur Bewegungen und Klicks über die Luft, da ist Mitlesen fast folgenlos.
                                                                                        • Einschleusen, aktiv. Der Angreifer sendet selbst und gibt sich als euer Gerät aus. Damit tippt er auf eurem Rechner, öffnet ein Terminal, lädt etwas nach. Das ist der unangenehmere Fall, weil er nicht davon abhängt, dass ihr gerade etwas tippt. Der Rechner steht am Empfang, niemand sitzt davor, und trotzdem passiert etwas.

                                                                                        Daraus ergeben sich drei Schutzstufen, und die Reihenfolge ist wichtig.

                                                                                        1. Kein Schutz. Klartext. Jeder in Funkreichweite liest mit und kann einschleusen.
                                                                                        2. Verschlüsselung. Der Funk ist chiffriert. Wer mithört, bekommt nur Kauderwelsch. Logitech nimmt dafür bei Tastaturen AES-128.
                                                                                        3. Authentisierung. Der Empfänger prüft, ob ein Paket wirklich vom gekoppelten Gerät stammt. Erst das schließt das Einschleusen zuverlässig, denn Verschlüsselung allein sagt nur, dass keiner mitliest, nicht, dass keiner sich einschleicht.

                                                                                        Und hier kommt die Design-Entscheidung, die uns später um die Ohren fliegt. Eine Tastatur braucht zwingend Verschlüsselung, weil sie Geheimes sendet. Eine Maus bekam bei Unifying historisch keine, weil sie ja nichts Geheimes sendet. Das klingt vernünftig, und für sich genommen ist es das auch. Zum Einfallstor wurde es trotzdem, weil ein Empfänger, der offene Maus-Pakete akzeptiert, sich dazu bringen ließ, auch gefälschte Tastatur-Pakete zu schlucken. Genau das war MouseJack. Dazu gleich mehr.

                                                                                        Der Funkweg. Die Tastatur funkt AES-128-verschlüsselt, die Maus im Klartext. Ein Angreifer mit Antenne hört beide Strecken, von der Tastatur bekommt er aber nur Kauderwelsch.

                                                                                        KeySniffer, so sieht es aus, wenn gar nichts da ist

                                                                                        Damit klar wird, wovon wir reden, erst das schlechte Beispiel. 2016 zeigte die Firma Bastille unter dem Namen KeySniffer, dass Funktastaturen von acht Herstellern die Tastenanschläge komplett im Klartext funken, ohne jede Verschlüsselung. Betroffen waren Anker, EagleTec, General Electric, Hewlett-Packard, Insignia, Kensington, Radio Shack und Toshiba. Mitlesbar aus rund 75 Metern, mit Hardware für unter hundert Dollar. Man tippt sein Passwort, und einer im selben Gebäude schreibt es Zeichen für Zeichen mit.

                                                                                        Zwei Dinge daran sind wichtig. Erstens ist das kein „schwaches Krypto“, das ist „kein Krypto“. Diesen Unterschied wirft man gern in einen Topf, aber er ist der ganze Punkt. Zweitens kann man diese Tastaturen nicht per Update retten. Da hilft nur wegwerfen und ersetzen. Und genau das ist der Unterschied zu Logitech, wo ein Empfänger-Update wirklich etwas ändert, wie wir noch sehen werden. Bluetooth-Tastaturen und die höherwertigen Geräte von Logitech, Dell und Lenovo waren von KeySniffer übrigens nicht betroffen. Das ist die Brücke zu Logitech.

                                                                                        Ein Stern, sechs Geräte: wie Unifying funktioniert

                                                                                        Unifying ist der kleine USB-Adapter mit dem orangen Stern, an den sich bis zu sechs Geräte koppeln lassen. Eine Maus, eine Tastatur, vielleicht ein Ziffernblock, alles über einen Stick. Technisch funkt das bei 2,4 GHz auf Nordics nRF24-Technik, nicht Bluetooth. Das ist ein wichtiger Punkt, den ich später beim Abhören noch brauche. Tastaturen werden mit AES-128 verschlüsselt, der Schlüssel wird beim Koppeln festgelegt. Mäuse funken offen.

                                                                                        MouseJack, 2016, und die offene Maus als Hebel

                                                                                        Ebenfalls 2016, wieder Bastille, diesmal Marc Newlin. Über die offene, nicht authentifizierte Maus-Strecke ließen sich gefälschte Tastatur-Pakete in viele Empfänger einschleusen, dazu erzwungenes Koppeln. Betroffen waren Geräte vieler Hersteller, nicht nur Logitech. Der Angreifer musste nicht warten, bis jemand tippt. Er gab sich als neue Tastatur aus und schrieb selbst.

                                                                                        Logitech reagierte mit mehreren Firmware-Ständen für die Empfänger. Nach Logitechs eigenen Release-Notes sind die Kern-MouseJack-Punkte, also erzwungenes Koppeln, Tastatur-Injektion und gefälschte Maus, ab RQR12.05 beziehungsweise RQR24.03 geschlossen. Eine später gefundene Schwäche, die verschlüsselte Injektion (Bastille-Punkt #13, als CVE-2016-10761 geführt), folgte erst ab RQR12.08 und RQR24.06. Diese zwei Generationsnummern solltet ihr euch merken, sie kommen beim Testgerät gleich wieder.

                                                                                        Die vier Lücken von 2019, und die eine, die blieb

                                                                                        2019 nahm sich Marcus Mengs, im Netz MaMe82, Unifying noch einmal vor. Vier CVEs, und der Unterschied zwischen ihnen ist der eigentliche Lehrwert.

                                                                                        CVE

                                                                                        Was

                                                                                        Fix

                                                                                        CVE-2019-13052

                                                                                        Aus dem Mitschnitt der Kopplung den AES-Schlüssel ableiten, danach mitlesen und einschleusen

                                                                                        kein Patch, Logitech lehnte ab

                                                                                        CVE-2019-13053

                                                                                        Einschleusen in die verschlüsselte Strecke, setzt einmaligen physischen Zugriff voraus

                                                                                        kein Patch für die erweiterte Form

                                                                                        CVE-2019-13054

                                                                                        Schlüssel aus R500- und Spotlight-Presentern auslesen, physischer Zugriff

                                                                                        Fix für August 2019 angekündigt

                                                                                        CVE-2019-13055

                                                                                        Alle gekoppelten Schlüssel aus einem Empfänger in unter einer Sekunde, physischer Zugriff

                                                                                        Fix für August 2019 angekündigt

                                                                                        Die spektakuläre Fernübernahme, MouseJack, ist an einem aktuellen Empfänger zu. Was bleibt, ist die erste Zeile: CVE-2019-13052. Wer den Moment der Kopplung mitschneidet, kann daraus den AES-Schlüssel ableiten und danach mitlesen und einschleusen. Diese Lücke wurde nie geschlossen. Logitech hat erklärt, dafür keinen Patch zu liefern, sie steckt im Design.

                                                                                        Das praktische Risiko ist gering, weil man dafür genau dann mithören muss wenn ihr ein Gerät neu koppelt, und weil der Schlüssel danach nicht neu ausgehandelt wird. Koppeln passiert selten und ist schnell vorbei. Aber der Satz „Firmware aktuell, also alles gut“ wäre trotzdem falsch, und genau diese Ehrlichkeit macht für mich den Reiz an der Sache aus. Diese Kopplungs-Lücke ist übrigens auch der Aufhänger für den zweiten Teil.

                                                                                        Die Angriffe über die Zeit. MouseJack wurde per Firmware geschlossen, aus der 2019er-Serie blieb CVE-2019-13052 offen, und Logi Bolt zieht 2021 die Konsequenz.

                                                                                        Logi Bolt, der Nachfolger, der es richtig macht

                                                                                        2021 brachte Logitech mit Logi Bolt einen neuen Empfänger heraus, der Sicherheit von Anfang an mitdenkt. Die Kernpunkte, alle belegt:

                                                                                        • Bolt setzt auf Bluetooth Low Energy im Security Mode 1, Level 4, also Secure Connections Only. Das heißt verschlüsselt und authentifiziert. Genau der Schutz gegen Einschleusen, der Unifying von Haus aus fehlte.
                                                                                        • Es ist ein geschlossenes System, ein Bolt-Empfänger spricht nur mit Bolt-Geräten.
                                                                                        • Pro Kopplung eine andere Bluetooth-Adresse und eigene Schlüssel.
                                                                                        • Koppeln geht nur nach einem ausdrücklichen, langen Knopfdruck von einigen Sekunden. Das schließt das erzwungene Koppeln.
                                                                                        • Firmware ist zentral ausrollbar, mit Schutz gegen das Zurückrollen auf alte Stände.

                                                                                        Ein Missverständnis will ich gleich einfangen. Bolt ist Bluetooth-basiert, aber es ist ein geschlossenes, gehärtetes System, kein normales Bluetooth-Pairing, wie ihr es vom Kopfhörer kennt. Verwechselt das nicht, das eine ist gehärtet, das andere ist ein bunter Haufen.

                                                                                        Zwei Empfänger, eine Maus, eine Tastatur

                                                                                        Genug Geschichte, jetzt der eigene Rechner. Auf dem Testgerät, einem Notebook mit Linux Mint 22.3, stecken zwei Unifying-Empfänger gleichzeitig. Am einen hängt die Maus, eine Logitech Marathon Mouse M705, am anderen die Tastatur, eine MX Keys. Beide Sticks tragen denselben orangen Stern, und wie sich gleich zeigt, tragen sie trotzdem zwei verschiedene Sicherheitsgeschichten mit sich herum.

                                                                                        Die Maus M705 und ein Unifying-Empfänger mit dem orangen Stern.

                                                                                        Der orange Stern ist das Erkennungszeichen von Unifying.

                                                                                        Die Tastatur, eine Logitech MX Keys.

                                                                                        Erst einmal schauen, ganz ohne Spezialwerkzeug

                                                                                        Man muss nicht sofort ein Paket installieren, um zu verstehen, was da steckt. Das Betriebssystem verrät schon eine ganze Menge. Erst schaue ich, welche USB-Geräte hängen. Mit lsusb sehe ich beide Empfänger, und interessant ist, dass sich beide als exakt dieselbe Kennung melden.

                                                                                        $ lsusb | grep -i logitech
                                                                                        Bus 001 Device 011: ID 046d:c52b Logitech, Inc. Unifying Receiver
                                                                                        Bus 001 Device 012: ID 046d:c52b Logitech, Inc. Unifying Receiver

                                                                                        046d ist Logitech, c52b ist der Unifying-Empfänger. Zwei gleiche Kennungen, zwei physische Sticks. Als Nächstes die Kernelmodule, die diese Sticks bedienen.

                                                                                        $ lsmod | grep -i logi
                                                                                        hid_logitech_hidpp     69632  0
                                                                                        hid_logitech_dj        36864  0
                                                                                        usbhid                 77824  2 hid_logitech_dj,hid_logitech_hidpp
                                                                                        hid                   282624 10 usbhid,...,hid_logitech_dj,hid_logitech_hidpp

                                                                                        Zwei Module machen die Arbeit, und die Aufgabenteilung lohnt sich zu verstehen. hid_logitech_dj kümmert sich um das Multiplexing des Unifying-Empfängers, also darum, dass ein einziger Stick mehrere Geräte tragen kann. hid_logitech_hidpp spricht das Feature-Protokoll HID++, über das gleich auch Solaar redet. Und über die Geräteknoten /dev/hidraw* reden die Werkzeuge am Ende mit den Sticks. So versteht man die Schichten, bevor überhaupt ein Zusatzprogramm im Spiel ist.

                                                                                        Solaar, das eine Werkzeug, das man wirklich braucht

                                                                                        Solaar ist die grafische Oberfläche und zugleich ein Kommandozeilen-Werkzeug für Unifying und HID++. Damit koppelt man Geräte, sieht den Akkustand, den Verschlüsselungsstatus und kann Tasten umbelegen. Auf dem Testgerät läuft Version 1.1.11. Der eine Befehl, der alles auf einmal ausgibt, ist solaar show. Für den Empfänger der Maus, gekürzt auf das Wesentliche:

                                                                                        Unifying Receiver
                                                                                          USB id       : 046d:C52B
                                                                                          Serial       : 3CE0986A
                                                                                            Firmware   : 12.11.B0032
                                                                                          Has 1 paired device(s) out of a maximum of 6.
                                                                                        
                                                                                          1: Marathon Mouse M705 (M-R0073)
                                                                                             Kind         : mouse
                                                                                             Protocol     : HID++ 4.5
                                                                                             Battery: 50%, discharging, next level 20%.

                                                                                        Solaar zeigt den Empfänger der Maus. USB-ID 046d:C52B, Firmware 12.11.B0032, ein gekoppeltes Gerät.

                                                                                        Und für den Empfänger der Tastatur:

                                                                                        Unifying Receiver
                                                                                          USB id       : 046d:C52B
                                                                                          Serial       : C31FD0D1
                                                                                            Firmware   : 24.11.B0036
                                                                                          Has 1 paired device(s) out of a maximum of 6.
                                                                                        
                                                                                          1: MX Keys Keyboard
                                                                                             Kind         : keyboard
                                                                                             Protocol     : HID++ 4.5

                                                                                        Der zweite Empfänger, der für die Tastatur. Dieselbe USB-Kennung, aber Firmware 24.11.B0036.

                                                                                        Hier fällt schon auf, was ich gleich groß mache. Zwei Unifying-Sticks, aber zwei Firmware-Linien: RQR12 für die ältere Maus-Generation, RQR24 für die neuere Tastatur. Beide tragen denselben orangen Stern, dahinter stecken aber zwei Baujahre und zwei Geschichten.

                                                                                        Zwei Sterne, ein Unterschied

                                                                                        Das ist das Herzstück, und es ist ein einziger Blick in Solaar. In der Geräteansicht steht bei jedem gekoppelten Gerät eine Zeile „Drahtlose Verbindung“. Für die Maus M705 meldet Solaar dort „nicht verschlüsselt“, mit einem roten Schild. Für die Tastatur MX Keys meldet dieselbe Zeile „verschlüsselt“, mit einem geschlossenen Schloss.

                                                                                        Solaar meldet für die Maus M705 eine nicht verschlüsselte Funkverbindung, mit rotem Schild.

                                                                                        Für die Tastatur MX Keys meldet Solaar dieselbe Übersicht als verschlüsselt, mit geschlossenem Schloss.

                                                                                        Was das heißt, und was nicht. Die Tastatur ist mit AES-128 verschlüsselt, der Schlüssel wurde beim Koppeln festgelegt. Wer die Funkstrecke mithört, bekommt Kauderwelsch. Die Maus funkt offen, was für Bewegungen und Klicks kein Problem ist. Und dann die ehrliche Einschränkung, die uns direkt zum Angriff führt: dass die Maus offen funkt, war historisch genau der Hebel für das Einschleusen, bis die Firmware das abgestellt hat.

                                                                                        Ein Gedanke, der jetzt naheliegt, führt in die Irre: dann schalte ich die Verschlüsselung der Tastatur eben ab und schaue, was durchgeht. Geht nicht. Die AES-Verschlüsselung der Tastatur hat keinen Ausschalter. Sie steckt fest im Unifying-Protokoll, Solaar hat dafür keinen Schalter, das alte ltunify auch nicht. Wer die Klartext-Eingaben der Tastatur sehen will, muss das AES brechen, nicht abschalten. Und genau das ist der Stoff für den zweiten Teil.

                                                                                        Was man installieren sollte, und was nicht

                                                                                        Für die reine Frage „bin ich sicher“ braucht man erstaunlich wenig. Zwei Pakete reichen, und beide waren auf dem Testgerät sowieso schon da.

                                                                                        Paket

                                                                                        Wofür

                                                                                        solaar

                                                                                        Kopplung, Akku, Verschlüsselungsstatus, Tastenbelegung

                                                                                        fwupd

                                                                                        Firmware-Updates über LVFS

                                                                                        Ein paar Werkzeuge, über die man im Netz stolpert, braucht man hier ausdrücklich nicht, und ich schreibe dazu, warum.

                                                                                        Paket

                                                                                        Warum nicht

                                                                                        ltunify

                                                                                        ältere Unifying-Kommandozeile, von Solaar überholt

                                                                                        libratbag / piper

                                                                                        DPI- und Tastenkonfiguration für Gaming-Mäuse, für die M705 unnötig, Solaar deckt sie ab

                                                                                        jackit, nrfutil, dfu-tool

                                                                                        Angriffs- und Flash-Werkzeuge für nRF-Hardware, hier nicht installiert. jackit gehört zum Crazyradio-am-Laptop-Weg, in diesem Aufbau macht die Funkarbeit stattdessen der Flipper

                                                                                        Bin ich sicher? Zwei Blicke genügen

                                                                                        Der erste Blick ist der Verschlüsselungsstatus, den Solaar meldet. Tastatur verschlüsselt, Maus nicht. Das ist bei Unifying normal und in Ordnung, solange man weiß, dass die Maus offen funkt und dort nichts Geheimes durchgeht.

                                                                                        Der zweite Blick ist die Firmware. fwupd kennt beide Empfänger über LVFS, und fwupdmgr get-updates sagt, ob etwas ansteht.

                                                                                        $ fwupdmgr get-updates --no-unreported-check
                                                                                        Devices with the latest available firmware version:
                                                                                         • Unifying Receiver
                                                                                         • Unifying Receiver

                                                                                        Beide sind auf dem neuesten Stand, den LVFS anbietet, das ist RQR12.11 und RQR24.11. Und jetzt die Verbindung zur Geschichte, die den Abschnitt wertvoll macht. Die MouseJack-Fixes stecken in den Firmware-Generationen ab RQR12.05 beziehungsweise RQR24.03 für die Kern-Punkte, und ab RQR12.08 beziehungsweise RQR24.06 für die verschlüsselte Injektion. Beide Empfänger liegen mit 12.11 und 24.11 deutlich darüber. Die Fernübernahme von 2016 ist an diesem Gerät also zu. Das ehrliche Ergebnis dieses Abschnitts ist „hier ist nichts zu tun“, und das darf man auch so hinschreiben.

                                                                                        Trotzdem der Handgriff für den Fall, dass doch einmal ein Update ansteht, als Verfahren, nicht als Messung. Auf dem Testgerät gab es nichts zu aktualisieren, ich habe die letzte Zeile hier also nicht wirklich ausgeführt.

                                                                                        fwupdmgr refresh
                                                                                        fwupdmgr get-updates
                                                                                        fwupdmgr update

                                                                                        Wie würde ein Angreifer das überhaupt abhören?

                                                                                        Jetzt die andere Seite. Unifying funkt bei 2,4 GHz auf nRF24-Technik mit einer eigenen Paketstruktur, Enhanced ShockBurst nennt Nordic das. Normale SDR-Empfänger und die üblichen Sub-Gigahertz-Geräte sehen das schlicht nicht. Man braucht ein nRF24-Radio, das in einen Mithör-Modus versetzt wird. Und genau hier wird es interessant, was ein Flipper Zero kann und was nicht.

                                                                                        Der Flipper Zero, und warum er allein nicht reicht

                                                                                        Das eingebaute Funkteil des Flipper ist ein CC1101. Das arbeitet unter einem Gigahertz, grob 300 bis 928 MHz. Es kommt physikalisch nicht an die 2,4 GHz von Unifying heran. Aus der Schachtel heraus kann der Flipper diesen Angriff also gar nicht, egal welche Firmware drauf ist.

                                                                                        Welches Radio an 2,4 GHz herankommt. Der eingebaute CC1101 des Flippers arbeitet unter einem Gigahertz und sieht die Strecke nicht. Erst ein nRF24-Radio kommt heran.

                                                                                        Auf meinem Aufbau steckt der Flipper mit der Momentum-Firmware und einem Zusatzmodul, einem AIO Board. Auf dem Board steht die Bestückung selbst drauf: RED NRF24, GREEN ESP32, BLUE CC1101, dazu ein EBYTE-Modul und externe Antennen. Das entscheidende Teil für uns ist das nRF24-Radio. Genau das, was dem Flipper von Haus aus fehlt. Damit werden die Apps NRF24: Sniffer und NRF24: Mouse Jacker nutzbar, beide aus dem Projekt von mothball187 und in Momentum enthalten.

                                                                                        Flipper Zero mit aufgestecktem AIO Board V1.4. Das Board liefert das nRF24-Radio für 2,4 GHz, neben ESP32 und CC1101, das dem Flipper allein fehlt.

                                                                                        Der Ablauf ist in zwei Schritten schnell erzählt. Erst sucht der Sniffer die Kanäle ab und findet die Funkadresse des Empfängers. Dann bekommt der Mouse Jacker diese Adresse und ein Tastatur-Skript und versucht, Tasten einzuschleusen. Klingt einfach. Der erste Schritt ist es aber schon nicht.

                                                                                        Der NRF24-Sniffer meldet eine gefundene Adresse auf einem 2,4-GHz-Kanal.

                                                                                        Der nRF24-Treiber der Flipper-App gilt selbst als funktionierend, aber unfertig, und das Sniffen im 2,4-GHz-Band rastet gern auf zufälliges Rauschen ein und meldet Adressen, die es gar nicht gibt. Drei Läufe brachten bei mir drei verschiedene Adressen, einmal sogar mit „Unique 0“, also ohne einen einzigen wiederholten Treffer. Eine echte Logitech-Adresse taucht über mehrere Läufe immer wieder auf, das ist das Erkennungszeichen. Mit etwas Geduld, Maus dabei bewegen und jeden Durchlauf sauber mit OK beenden, damit die App überhaupt speichert, hat sich am Ende die Adresse 086A98E03C als die stabile, echte herauskristallisiert. Das Erkennen klappt also, aber es ist selbst schon eine Hürde und nicht der Sofort-Erfolg, den man sich vorstellt.

                                                                                        Die offene Maus lässt sich mit demselben Radio mitschnüffeln, man sieht rohe Pakete. Passwörter sind da natürlich keine drin, nur Bewegung und Klicks. Genau das ist der greifbare Beleg für „die Maus funkt im Klartext“.

                                                                                        Und jetzt der eigentliche Versuch. Ich habe einen einfachen Texteditor auf dem Notebook geöffnet und ihm den Fokus gegeben. Der Mouse Jacker bekam die ersniffte Adresse 086A98E03C und ein harmloses Skript, das nur den Text MOUSEJACK-TEST-0810 tippen sollte, sonst nichts. Der Flipper zeigte „Running duckyscript“.

                                                                                        Mouse Jacker feuert das Skript gegen die Adresse. Auf dem gepatchten Empfänger landet keine einzige Taste.

                                                                                        Im Editor erschien nichts. Keine einzige Taste kam durch. Das ist kein Misserfolg des Versuchs, sondern das erwartete Verhalten an einem Empfänger, der über dem MouseJack-Fix liegt.

                                                                                        Hier bleibe ich bei der Ursache ehrlich, das ist mir wichtig. „Nichts passiert“ allein trennt nicht sauber, ob die Firmware das Paket abgewiesen hat oder ob die ersniffte Adresse nicht exakt der Empfänger war. Um das isoliert zu beweisen, müsste ein bewusst verwundbarer Vergleichs-Empfänger danebenstehen, an dem derselbe Angriff gelingt, und der stand hier nicht daneben. Sicher ist: die klassische MouseJack-Übernahme aus der Ferne, ohne Anfassen, gelang an diesem aktuellen Setup mit RQR12.11 nicht, und das passt dazu, dass fwupd die Firmware als aktuell und über dem Fix meldet. Mehr behaupte ich an dieser Stelle nicht. Das ist gemessen, die Deutung der Ursache ist plausibel, aber nicht bewiesen.

                                                                                        Nur eine von mehreren Möglichkeiten

                                                                                        Der Flipper ist nur ein Weg, und ehrlich gesagt der bequeme für unterwegs. Damit klar ist, was sonst noch geht:

                                                                                        • Crazyradio PA, ein nRF24-USB-Stick mit der Bastille-Firmware plus jackit. Das klassische MouseJack-Werkzeug, läuft am Laptop und kann mitschreiben.
                                                                                        • nRF52840-Dongle mit Logitacker von Marcus Mengs. Das moderne Werkzeug, das auch die 2019er-Lücken kann, inklusive der Kopplungs-Lücke CVE-2019-13052. Genau dieses Gespann kommt im zweiten Teil zum Einsatz.
                                                                                        • Raspberry Pi mit nRF24-Modul. Möglich, aber deutlich fummeliger, weil das Timing schlechter ist als bei einer dedizierten Crazyradio.

                                                                                        Die Grenze des Flippers ist dabei klar. Er ist gut zum Erkennen und für den MouseJack-Versuch, aber er leitet keine Schlüssel ab und entschlüsselt keine Tastatur. Dafür braucht es Logitacker auf dem nRF52840, und das ist der zweite Teil.

                                                                                        Was ich für sichere Umgebungen empfehle

                                                                                        Kein Wischiwaschi, eine klare Rangfolge.

                                                                                        1. Kabel. Eine USB-Tastatur funkt gar nicht. Für alles, wo wirklich Geheimes getippt wird, ist das die ruhigste Lösung.
                                                                                        2. Logi Bolt oder eine sauber gekoppelte Bluetooth-Verbindung mit Secure Connections. Verschlüsselt und authentifiziert, also auch gegen Einschleusen geschützt.
                                                                                        3. Aktuelles Unifying. Völlig brauchbar, wenn die Empfänger-Firmware gepflegt ist. Die Tastatur ist verschlüsselt, die Fernübernahme ist zu. Das Restrisiko ist die Kopplungs-Lücke.
                                                                                        4. Alles ohne Verschlüsselung, KeySniffer-Klasse, gehört ersetzt. Da hilft kein Update.

                                                                                        Dazu zwei Handgriffe, die jeder machen kann. Die Firmware der Empfänger aktuell halten, mit fwupdmgr, das ist eine Minute Arbeit. Und Geräte nur in vertrauenswürdiger Umgebung koppeln, nicht im Café und nicht im vollen Großraumbüro, wegen genau dieser Kopplungs-Lücke CVE-2019-13052.

                                                                                        Eine kurze Entscheidungshilfe für das eigene Funk-Setup.

                                                                                        Was offen bleibt

                                                                                        • Warum das Einschleusen genau scheiterte. Der Durchlauf ist gemessen, der Sniffer findet 086A98E03C und die Injektion landet nichts, aber ob die Firmware abwies oder die ersniffte Adresse nicht exakt saß, ist ohne einen verwundbaren Vergleichs-Empfänger nicht isoliert nachgewiesen.
                                                                                        • Die Kopplungs-Lücke CVE-2019-13052 ist beschrieben, aber nicht vorgeführt. Das ist der Kern des zweiten Teils.
                                                                                        • Ob sich auf genau diesem nRF24-Modul die Adresse zuverlässig mitschneiden lässt, hängt von Kanal und Timing ab und ist nicht erschöpfend getestet.
                                                                                        • Ob die MX Keys selbst per fwupd ein Firmware-Update bekommen könnte, habe ich nicht geprüft, nur die beiden Empfänger.
                                                                                        • Reichweite und Störumgebung. Alle Aussagen zum Mithören beziehen sich auf die Laborsituation direkt am Gerät.

                                                                                        Wie es weitergeht

                                                                                        Im nächsten Teil wird nicht nur erklärt, sondern gemacht. Mit einem nRF52840-Dongle und Logitacker schneide ich den Kopplungsvorgang einer Unifying-Tastatur mit, leite daraus den Schlüssel ab und lese die Eingaben mit. Das ist die Design-Lücke CVE-2019-13052, und sie betrifft auch die aktuelle Firmware, an der der Flipper heute noch abgeprallt ist. Aus „die Tastatur ist verschlüsselt“ wird dann „und trotzdem lesbar, wenn ich im richtigen Moment dabei war“. Das ist der interessante Teil, und er kommt.

                                                                                        Bezugsquellen

                                                                                        Die folgenden Links sind Affiliate-Links (Werbung). Kaufst du darüber, bekomme ich eine kleine Provision, für dich ändert sich am Preis nichts.

                                                                                        Siehe auch

                                                                                        Wenn ich irgendwo danebenliege, korrigiert mich gerne, dann lerne ich selbst etwas. Und die Frage an euch zum Schluss: Nutzt ihr Funk oder Kabel, und habt ihr je nachgesehen, ob eure Tastatur überhaupt verschlüsselt funkt? Wie das geht, wisst ihr jetzt. Wenn ihr mögt, dürft ihr mich dazu sehr gerne fragen.

                                                                                        [?]Jiří Eischmann » 🌐
                                                                                        @sesivany@social.vivaldi.net

                                                                                        , the largest online retail store in Czechia (often nicknamed the 'Czech Amazon'), has started selling gaming PCs with pre-installed. Congratulations to the @bazzite and @UniversalBlue communities - this is a big thing!

                                                                                        cnews.cz/clanky/cesky-steam-ma

                                                                                          AodeRelay boosted

                                                                                          [?]KaiXin » 🌐
                                                                                          @kaixin@snac.bsd.cafe

                                                                                          @RootMoose@bsd.cafe It is actually a very common issue when configuring DE for the first time, on and , and not specific to alone. I had to do this for too when I setup a new Linux laptop. As you can see you are configuring polkit rules, which is a tool common used for different DEs on various nix systems.

                                                                                            AodeRelay boosted

                                                                                            [?]matthew - retroedge.tech » 🌐
                                                                                            @matthew@social.retroedge.tech

                                                                                            I do not think it is a big deal that support for those old 486 CPUs is being removed from the current Linux kernel.

                                                                                            I think no one is asking to be able to run the latest Linux 7.** kernel on a 486.

                                                                                            People who are running that hardware are very likely on older versions on Linux (or other retro operating systems) and not looking to run the latest Linux anyway.

                                                                                            However, on the other side of the argument, why remove it? I do not believe there are any pressing security issues with keeping the code that supports those CPUs. If there are problems, they could just be left with notices of what doesn't work for the three people in the world that may affect.

                                                                                            I don't really think it matters either way.

                                                                                            If someone wants to run a current OS on a 486, there's NetBSD.

                                                                                            ... but I do not think we should expect to run a current OS on a CPU that old. That's what the 'retro computing' genre is about. Just run an old OS on that hardware.

                                                                                            #retro #Linux #486 #NetBSD

                                                                                              [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                              @Steve12L@mamot.fr

                                                                                              ⋅ « Je ne suis plus programmeur » : Linus Torvalds nous parle des deux seuls outils qu'il utilise désormais

                                                                                              Lors de l'Open Source Summit de Mumbai, Torvalds a abordé les difficultés et les atouts de l'IA dans le noyau, et a expliqué pourquoi Linux ne prend plus en charge les technologies « d'époque ».

                                                                                              − zdnet.fr/actualites/je-ne-suis

                                                                                                [?]Nicolas Delsaux » 🌐
                                                                                                @Riduidel@framapiaf.org

                                                                                                Est-ce que ce clavier virtuel n'est pas magnifique ?
                                                                                                Bien sûr que si. Il ne lui manque que deux choses : un thème solarized, et la liaison avec les touches physiques. archisman-panigrahi.github.io/

                                                                                                  [?]LWN.net » 🌐
                                                                                                  @lwn@fedi.lwn.net

                                                                                                  Django moves to an annual release cycle

                                                                                                  lwn.net/Articles/1088059/

                                                                                                    Fred de CLX boosted

                                                                                                    [?]vermaden » 🌐
                                                                                                    @vermaden@mastodon.bsd.cafe

                                                                                                    Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟲/𝟬𝟴/𝟭𝟬 (Valuable News - 2026/08/10) available.

                                                                                                    vermaden.wordpress.com/2026/08

                                                                                                    Past releases: vermaden.wordpress.com/news/

                                                                                                      AodeRelay boosted

                                                                                                      [?]Verfassungklage@troet.cafe » 🌐
                                                                                                      @Verfassungklage@troet.cafe

                                                                                                      :

                                                                                                      Drei Tage und in

                                                                                                      Vom 17. bis 19. September 2026 dreht sich in Kiel alles um Linux. Die Kieler Open Source und Linux Tage finden bereits zum 24. Mal statt.

                                                                                                      Interessierte können dabei Linux kennenlernen und verschiedene Anwendungen erleben. Am 18. und 19. September folgen die beiden Haupttage. Geplant sind Vorträge, Workshops und eine Ausstellung mit verschiedenen Projekten.

                                                                                                      fosstopia.de/kielux-2026-ankun

                                                                                                        AodeRelay boosted

                                                                                                        [?]Lioh » 🌐
                                                                                                        @Lioh@social.anoxinon.de

                                                                                                        Unser geschätztes Community-Mitglied Rainer ist am 28.06.2026 an Hitzetod verstorben. Er hinterlässt seinen 21-jährigen Sohn. Ein Nachruf: gnulinux.ch/rainer-ein-nachruf

                                                                                                          [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                          @gamingonlinux@mastodon.social

                                                                                                          AodeRelay boosted

                                                                                                          [?]GNU/Linux.ch » 🌐
                                                                                                          @gnulinux@social.anoxinon.de

                                                                                                          Rainer, ein Nachruf

                                                                                                          Unser sehr geschätztes Community-Mitglied Rainer ist am 28.06.2026 verstorben. Ein Nachruf.

                                                                                                          gnulinux.ch/rainer-ein-nachruf

                                                                                                            [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                            @gamingonlinux@mastodon.social

                                                                                                            AodeRelay boosted

                                                                                                            [?]BjoernAusGE » 🌐
                                                                                                            @bjoern@social.sengotta.net

                                                                                                            Top: Vater hat mir sein MacBook mit Ubuntu Budgie vorbei gebracht. Bootet nicht. Wieder einmal ein Kernel Upgrade was mit dem broadcom-sta-dkms Modul nicht klarkommt. Ich muss mich echt was einfallen lassen um solche upgrades auszuschließen.
                                                                                                            #linux #ubuntu #broadcom #dkms

                                                                                                              AodeRelay boosted

                                                                                                              [?]-=Kernel-Error=- » 🌐
                                                                                                              @kernel-error.de@www.kernel-error.de

                                                                                                              Neunzehn Sekunden für einen Schlüssel: was der TPM-Chip unter Linux wirklich kann

                                                                                                              Ein Infineon SLB 9670 im Notebook, tpm2-tools 5.6 und die Frage, was der Chip wirklich bringt. Von der Suche im sysfs über ein versiegeltes Geheimnis und einen SSH-Schlüssel ohne Datei bis zur Fernattestierung, mit gemessenen Zahlen und den Angriffen, die es wirklich gibt. Dazu die Geschichte vom Fritz-Chip und den Patenten von 2001. [SENSITIVE CONTENT]

                                                                                                              Es gibt Dinge, die unter Linux in der breiten Masse vernachlässigt werden. Secure Boot ist so ein Beispiel, TPM ist ein anderes. Vielleicht ist es an der anfangs bescheidenen Unterstützung gescheitert, vieleicht sind die Themen technisch einfach unangenehm, am ehesten aber liegt es daran, dass der Mehrwert für die meisten überschaubar bleibt. Heute nehme ich mir den TPM vor.

                                                                                                              Aufgefallen ist mir der Chip zweimal. Das erste Mal, als er durch die Medien ging, weil die Angst groß wurde, Microsoft mache damit unsere IT kaputt, und weil jemand anfing, sehr viele Patente einzureichen. Das zweite Mal viele Jahre später, als TPM 2.0 zur harten Voraussetzung für Windows 11 wurde. Dazwischen lagen zwanzig Jahre, in denen der Chip in fast jedes Endgerät gewandert ist, ohne dass sich jemand dafür interessiert hat.

                                                                                                              In Notebooks und Fertig-PCs ist er heute meist fest verlötet. Bei Server-Mainboards kauft man ihn dagegen als Option dazu, ein kleines Steckmodul auf einem eigenen Header. Der Chip in meinem Testgerät ist ein Infineon OPTIGA SLB 9670, und genau dieselbe Chip-Familie sitzt auf den steckbaren TPM-Modulen für Supermicro-Boards. Damit schließt der Beitrag an die BIOS-Serie an, in der ich mich gerade Menü für Menü durch ein Serverboard arbeite.

                                                                                                              Erst die Geschichte, dann die Hände in den Chip. Alle Ausgaben hier sind echt und stammen vom 10. August 2026, gemessen auf einem Fujitsu Celsius H780 mit Linux Mint 22.3, Kernel 7.0.0-28-generic und tpm2-tools 5.6. Wo ich etwas nur aus Dokumentation kenne oder wo ich vermute, steht das dabei.

                                                                                                              Angefangen hat alles mit einer Seriennummer in der CPU

                                                                                                              Mitte der neunziger Jahre wollte Intel eine Identifizierungsfunktion direkt in den Prozessor bringen. Der erste Schritt war 1999 die Prozessor-Seriennummer im Pentium III, eine eindeutige Kennung, die jede Software auslesen konnte. Der öffentliche Widerstand war so heftig, dass Intel zurückzog. Das Vorhaben verschwand aber nicht, es suchte Deckung in einem Konsortium. Dieses Detail ist wichtig, weil es das Muster für alles setzt, was danach kam.

                                                                                                              1999 gründeten Compaq, HP, IBM, Intel und Microsoft die Trusted Computing Platform Alliance, kurz TCPA. Im April 2003 wurde daraus die Trusted Computing Group, TCG, getragen von AMD, HP, IBM, Intel und Microsoft. Aus einer Firmenidee war ein Industriestandard geworden.

                                                                                                              Der Chip, der nach einem Senator benannt wurde

                                                                                                              In der Debatte bekam der TPM den Spottnamen „Fritz-Chip“. Der Name ging auf den US-Senator Fritz Hollings aus South Carolina zurück, der den CBDTPA vorantrieb, ein Gesetzesvorhaben, das Kopierschutz in aller Consumer-Elektronik verpflichtend machen sollte. Der Spottname war also ein politischer Vorwurf und keine technische Bezeichnung. Er hat trotzdem länger gehalten als das Gesetz, aus dem er kam.

                                                                                                              Vertrauen, aber nicht dein Vertrauen

                                                                                                              Ross Anderson von der Universität Cambridge schrieb 2002 und 2003 die Trusted Computing FAQ. Dieses Dokument hat die Debatte stärker geprägt als jede Herstellerankündigung, und es liegt bis heute unverändert online. Sein Kernargument in einem Satz: bei „Trust“ geht es nicht darum, dass der Nutzer dem Rechner vertraut, sondern darum, dass der Rechner dem Nutzer nicht vertraut.

                                                                                                              Richard Stallman legte 2002 mit „Can you trust your computer?“ nach und prägte den Gegenbegriff treacherous computing, verräterisches Rechnen. Die FSF benutzt ihn heute noch. IBM antwortete mit einer Gegendarstellung von David Safford, „Clarifying Misinformation on TCPA“.

                                                                                                              Die EFF ging einen dritten Weg, und der ist der interessanteste. Seth Schoen veröffentlichte im Oktober 2003 Trusted Computing: Promise and Risk und schlug ein konkretes Feature vor, den Owner Override. Der Eigentümer des Rechners sollte die Attestierung überstimmen können, seinem Bank-Server also erzählen dürfen, sein Opera sei ein Internet Explorer. Die Kritik hatte damit einen Reparaturvorschlag und war nicht bloß dagegen. Die TCG hat den Owner Override nie übernommen.

                                                                                                              Microsoft nannte sein eigenes Vorhaben Palladium und benannte es am 24. Januar 2003 in Next-Generation Secure Computing Base um, NGSCB. Der Name wurde harmloser, die Architektur blieb dieselbe.

                                                                                                              Zwei Patente von 2001, und ein Cypherpunk der zurückschoss

                                                                                                              Im Dezember 2001 wurden Microsoft zwei Patente erteilt. Das eine ist US 6,330,670, „Digital rights management operating system“, angemeldet im Januar 1999, erteilt am 11. Dezember 2001, als Erfinder Paul England, John DeTreville und Butler Lampson. Das andere ist US 6,327,652, „Loading and identifying a digital rights management operating system“. Zusammen decken sie viele Grundelemente eines vertrauenswürdigen Betriebssystems ab.

                                                                                                              Die Sorge dahinter war handfest und nicht abwegig. Wenn Palladium unter dieses Patent fällt, dann verletzt jeder unabhängige Nachbau das Patent. Also jeder einzelne Entwickler, jedes Open-Source-Projekt, jeder Wettbewerber. Ohne Lizenz von Microsoft kein freies Trusted Computing. Kritiker beschrieben das damals als Kombination aus Patentschutz und faktischem Zwang zur Nutzung, mit deutlich wettbewerbsrechtlichem Geschmack.

                                                                                                              Der Gegenzug kam im August 2002 von einem Cypherpunk, der unter dem Namen Lucky Green auftrat. Er meldete selbst ein Patent an, und zwar auf Verfahren, mit denen Software auf einer Palladium- oder TCPA-Plattform gegen Kopieren geschützt werden kann. Der Zweck war offen defensiv: wer die Ansprüche hält, kann verhindern, dass genau diese Anwendungen ausgerollt werden. Auf einem Panel der USENIX Security wurde er gefragt, ob Microsoft nicht einfach Prior Art geltend machen könne. Sein Argument: Prior Art müsste unter Eid erklärt werden, und nach Jahren Arbeit am Projekt und einem ausführlichen eigenen DRM-Patent sei kaum vorstellbar, dem Palladium-Team wäre relevante Prior Art entgangen. Im September 2002 hielt er zusätzlich einen Vortrag mit dem Titel „TCPA: the mother(board) of all Big Brothers“.

                                                                                                              Was daraus geworden ist

                                                                                                              Die Auflösung ist unbequemer, als es beide Lager damals gedacht haben. NGSCB ist gescheitert, aber nicht an den Patenten. Im Mai 2004 stellte Microsoft die vollständige Architektur zurück, und die Begründung war wirtschaftlich: die Hardware-Landschaft war nicht reif, und vor allem waren die unabhängigen Softwarehersteller nicht bereit, ihre Anwendungen auf die nötigen neuen APIs umzuschreiben. Curtained Memory und der Nexus-Kernel fielen weg, die TPM-Unterstützung blieb übrig.

                                                                                                              Der Chip selbst wurde offen. Nach TPM 1.2 kam TPM 2.0, veröffentlicht 2014 und als ISO/IEC 11889 internationaler Standard. Die TCG stellt die Referenz-Implementierung unter eine royalty-free Copyright-Lizenz, das Patentregime zwischen den Mitgliedern ist RAND. Damit war der Nachbau möglich und dem Patenthebel die Grundlage entzogen.

                                                                                                              Linux hat es dann einfach implementiert. Der Treiber tpm_tis sitzt im Kernel, IBM brachte TrouSerS für TPM 1.2, für TPM 2.0 entstand mit Beteiligung von Intel und TCG der tpm2-tss-Stack samt tpm2-tools. Seit Linux 4.12 gibt es den Resource Manager im Kernel unter /dev/tpmrm0, wodurch der frühere Userspace-Daemon tpm2-abrmd für die meisten Fälle überflüssig wurde. Nichts davon brauchte eine Lizenz von Microsoft.

                                                                                                              Die befürchtete Abriegelung kam trotzdem, nur von woanders. Kein einziger der Horror-Fälle aus der TCPA-FAQ wurde durch den TPM Realität. Wo Nutzer heute tatsächlich ausgesperrt werden, steckt eine andere Technik dahinter: Widevine beim Streaming, Play Integrity und früher SafetyNet bei Android, verriegelte Bootloader bei Telefonen, die Secure Enclave bei Apple, Attestierung bei Spielkonsolen. Der TPM wurde stattdessen ein langweiliger Schlüsselspeicher.

                                                                                                              Ein Teil der Angst hat sich dann doch erfüllt, nur in anderer Form. Windows 11 macht TPM 2.0 zur harten Voraussetzung, und damit gilt funktionierende Hardware plötzlich als nicht unterstützt. Das ist keine DRM-Geschichte, sondern eine Elektroschrott- und Lebensdauer-Geschichte. Der Mechanismus ist aber derselbe: eine Hardware-Eigenschaft entscheidet, was auf dem Gerät laufen darf.

                                                                                                              Und dann kam der Kreis zurück. 2023 schlugen Chrome-Entwickler bei Google die Web Environment Integrity API vor. Der Browser sollte sich von einer Vertrauensinstanz einen Nachweis über seine Umgebung ausstellen lassen, den Webseiten dann prüfen können. Das ist praktisch Wort für Wort das Szenario, vor dem Anderson zwanzig Jahre früher gewarnt hatte, nur ohne TPM. Nach massivem Widerstand zog Google den Vorschlag im November 2023 für Chromium auf dem Desktop zurück.

                                                                                                              Hat die Patentanmeldung von damals also geholfen?

                                                                                                              Das ist die Frage, mit der ich in die Recherche gegangen bin, und die Antwort ist zweiteilig. Die defensive Patentanmeldung hat, soweit öffentlich nachvollziehbar, nichts bewirkt. Es gibt kein erteiltes Patent, das man heute als den Grund benennen könnte, warum TCPA-DRM nicht kam. Der Gegenzug war eine wirksame Geste, aber kein wirksames Rechtsmittel. Gewirkt hat etwas anderes: erstens die Wirtschaftlichkeit, weil die Softwarehersteller nicht umschreiben wollten und es damit kein Produkt gab, zweitens die Öffnung der Spezifikation und die ISO-Standardisierung, die den Nachbau erlaubten.

                                                                                                              Der zweite Teil verdient Anerkennung. Die Kampagne selbst hat gewirkt, nur nicht juristisch, sondern politisch. Der Lärm um TCPA hat plausibel dazu beigetragen, dass die TCG die Spezifikation öffnete, die aggressivsten Ideen fallen ließ und dass Fernattestierung zwanzig Jahre lang aus dem Consumer-Web draußen blieb. Als der Versuch 2023 mit Web Environment Integrity wiederkam, war das Muster des Widerstands eingeübt und der Vorschlag nach Monaten weg. Wichtig dabei: das ist meine Deutung. Die Kausalkette von der Kampagne 2002 zur offenen Spezifikation 2014 ist nirgends dokumentiert, das ist ein Plausibilitätsargument und keine Messung.

                                                                                                              Bleibt der Eindruck: die Angst war berechtigt und falsch adressiert. Berechtigt, weil die Mechanik der Fernattestierung tatsächlich genau das kann, was befürchtet wurde. Falsch adressiert, weil der TPM davon der harmloseste Teil war und am Ende zu dem wurde, was jetzt kommt. Ein langsamer, sturer kleiner Chip, der Schlüssel nicht herausgibt.

                                                                                                              Erst suchen, ganz ohne TPM-Werkzeug

                                                                                                              Bevor ihr irgendetwas installiert: der Kernel weiß längst, ob da ein Chip sitzt. Er sagt es beim Start.

                                                                                                              # dmesg | grep -i tpm
                                                                                                              [    0.000000] efi: ACPI=0x7990e000 ACPI 2.0=0x7990e014 TPMFinalLog=0x713bb000 SMBIOS=0x7035e000 SMBIOS 3.0=0x7035b000 ESRT=0x70358c98 MEMATTR=0x5f5c2018 MOKvar=0x70323000 INITRD=0x592eda98 RNG=0x798ce018 TPMEventLog=0x798c0018
                                                                                                              [    0.010528] ACPI: SSDT 0x0000000079905000 000554 (v01 INTEL  Tpm2Tabl 00001000 INTL 20160422)
                                                                                                              [    0.010531] ACPI: TPM2 0x0000000079904000 000034 (v04 FUJ    PC       01170000 FUJ  00000001)
                                                                                                              [    0.010607] ACPI: Reserving TPM2 table memory at [mem 0x79904000-0x79904033]
                                                                                                              [    0.569145] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1B, rev-id 16)

                                                                                                              Drei Dinge stehen da drin. In der ersten Zeile übergibt UEFI die Adresse des Event-Logs, TPMEventLog=0x798c0018, also der Liste aller Messungen aus dem Startvorgang. Dann die ACPI-Tabelle TPM2, über die die Firmware mitteilt, wo und wie der Chip ansprechbar ist. Und in der letzten Zeile das Ergebnis: der Treiber tpm_tis hat unter der ACPI-Kennung MSFT0101 ein TPM der Version 2.0 gefunden.

                                                                                                              Danach existieren zwei Gerätedateien, und der Unterschied zwischen ihnen ist wichtig.

                                                                                                              # ls -la /dev/tpm*
                                                                                                              crw-rw---- 1 tss root  10,   224 Aug 10 09:31 /dev/tpm0
                                                                                                              crw-rw---- 1 tss tss  252, 65536 Aug 10 09:31 /dev/tpmrm0

                                                                                                              /dev/tpm0 ist der rohe Zugang zum Chip. Daran kann genau ein Prozess gleichzeitig arbeiten, und wer die Ressourcen im Chip verwaltet, ist selbst dafür verantwortlich. /dev/tpmrm0 geht über den Resource Manager im Kernel, der das Ein- und Auslagern der Schlüssel-Kontexte übernimmt und mehrere Nutzer nebeneinander erlaubt. In der Praxis nimmt man immer /dev/tpmrm0, und die tpm2-tools tun das von sich aus.

                                                                                                              Die Version steht ebenfalls im sysfs, und die solltet ihr prüfen, bevor ihr weiterlest.

                                                                                                              # ls /sys/class/tpm/tpm0/
                                                                                                              dev  device  pcr-sha1  pcr-sha256  power  ppi  subsystem  tpm_version_major  uevent
                                                                                                              
                                                                                                              # cat /sys/class/tpm/tpm0/tpm_version_major
                                                                                                              2

                                                                                                              Eine 2 heißt TPM 2.0 und alles in diesem Beitrag gilt. Eine 1 heißt TPM 1.2, und dann gilt fast nichts davon, weil es ein anderer Standard mit einem anderen Software-Stack ist. Nebenbei verrät das Verzeichnis noch etwas: es gibt eine pcr-sha1– und eine pcr-sha256-Bank, der Chip führt die Messregister also in zwei Hash-Verfahren parallel.

                                                                                                              Und weil der Kernel das ohnehin bereitstellt, kommt hier der erste kleine Aha-Moment, noch ganz ohne installiertes Paket. Die Messwerte des Startvorgangs liegen als Dateien herum.

                                                                                                              # cat /sys/class/tpm/tpm0/pcr-sha256/0
                                                                                                              7DE4ABE4ED8D8291D9B58D71F3B2988F5DA81EBE58D4AE518012E877FA1E04F1
                                                                                                              # cat /sys/class/tpm/tpm0/pcr-sha256/1
                                                                                                              41CBF90AFF5CEEFAA9E9C52E7A3D5B4C8518EA65861C753AF8DB005C5330F53F
                                                                                                              # cat /sys/class/tpm/tpm0/pcr-sha256/7
                                                                                                              F5841722D3DCC8886F14E92CA2D7304932CF17E2247A85D3B7BB41FE2C02CB4E

                                                                                                              Das sind drei der Platform Configuration Register, kurz PCR. Merkt euch den Wert von PCR 7, der taucht später mehrfach auf.

                                                                                                              Die Falle mit lsmod

                                                                                                              Das ist eine häufige Fehldiagnose, deshalb steht sie hier als eigener Punkt. Auf meinem Testsystem liefert lsmod | grep tpm nämlich schlicht nichts. Kein Modul, keine Ausgabe. Der Chip arbeitet trotzdem einwandfrei, weil tpm_tis in diesen Kernel fest eingebaut ist und deshalb in der Modulliste gar nicht erscheinen kann. Wer nach lsmod urteilt, hält ein funktionierendes TPM für abwesend. Fragt stattdessen nach der Treiberbindung.

                                                                                                              # ls -l /sys/class/tpm/tpm0/device/driver
                                                                                                              lrwxrwxrwx 1 root root 0 Aug 10 09:31 /sys/class/tpm/tpm0/device/driver -> ../../../bus/platform/drivers/tpm_tis
                                                                                                              
                                                                                                              # cat /sys/class/tpm/tpm0/device/modalias
                                                                                                              acpi:MSFT0101:MSFT0101:

                                                                                                              Der Symlink zeigt, welcher Treiber das Gerät tatsächlich bedient. Das ist die Antwort auf die Frage, die lsmod nicht beantworten kann.

                                                                                                              Wenn nichts auftaucht

                                                                                                              Bleibt dmesg stumm und existiert kein /dev/tpm0, dann gibt es drei realistische Ursachen, in dieser Reihenfolge.

                                                                                                              • Im Firmware-Setup abgeschaltet. Die Option heißt je nach Hersteller „Security Device Support“, „TPM State“, „Trusted Computing“, „PTT“ oder „fTPM“. Wo diese Menüs bei einem Serverboard liegen und wie man sich dort zurechtfindet, habe ich in der BIOS-Serie ausführlich aufgeschrieben.
                                                                                                              • Physisch nicht vorhanden. Bei Server-Boards ist der TPM oft ein steckbares Modul auf einem eigenen Header, bei Supermicro etwa die AOM-TPM-Module auf dem Anschluss JTPM1. Wer ihn nicht mitbestellt hat, hat einen leeren Steckplatz. Bei Notebooks ist der Chip dagegen fast immer verlötet.
                                                                                                              • Vorhanden, aber als fTPM in der CPU statt als eigener Chip. Woran man das unterscheidet, steht weiter unten, und man liest es an einer einzigen Zeile ab.

                                                                                                              Zwei Details aus dem Firmware-Setup, die hier gut passen. Erstens sind SHA-1-Bank und SHA-256-Bank oft getrennt schaltbar. Dass mein Testgerät beide Banks führt, ist also keine Selbstverständlichkeit, sondern eine Einstellung. Zweitens steht in demselben Menü meist ein TPM Clear. Finger weg, solange ihr nicht genau wisst, was daran hängt. Ein Clear wirft die Hierarchien im Chip weg, und damit ist alles, was gegen diesen Chip versiegelt war, unwiederbringlich verloren. Auch der BitLocker-Schlüssel eines parallel installierten Windows.

                                                                                                              Die Schichten, bevor das erste Paket installiert wird

                                                                                                              Es hilft, den Stack einmal von unten nach oben gesehen zu haben. Sonst installiert man ein Paket und wundert sich später, welche der vielen Bibliotheken wofür zuständig ist.

                                                                                                              Der Weg eines Kommandos vom Werkzeug bis in den Chip. Über /dev/tpm0 arbeitet genau ein Prozess, über /dev/tpmrm0 mehrere.

                                                                                                              Ganz unten der Chip, darüber der Kerneltreiber, darüber die beiden Gerätedateien. Erst dann kommt Userspace: die TCTI-Schicht kümmert sich um den Transport zur Gerätedatei, die ESAPI-Schicht um Kommandos, Sessions und HMAC-Absicherung. Ganz oben die drei Werkzeuge, die man tatsächlich in die Hand nimmt. Für die Pflichtausstattung reichen zwei Pakete.

                                                                                                              Paket

                                                                                                              Wofür

                                                                                                              tpm2-tools

                                                                                                              die tpm2_*-Kommandozeile, alles in diesem Beitrag läuft darüber

                                                                                                              libtss2-*

                                                                                                              der TSS2-Stack darunter, meist schon über systemd installiert

                                                                                                              Dazu zwei optionale, die ich beide benutze, weil sie den Chip an Software anschließen, die von TPM nichts wissen muss.

                                                                                                              Paket

                                                                                                              Wofür

                                                                                                              tpm2-openssl

                                                                                                              Provider für OpenSSL 3, Schlüssel im Chip über die gewohnten openssl-Aufrufe

                                                                                                              libtpm2-pkcs11-1 und libtpm2-pkcs11-tools

                                                                                                              PKCS#11-Schnittstelle, damit SSH und Browser den Chip nutzen können

                                                                                                              Und zwei, die ich ausdrücklich nicht installiere.

                                                                                                              Paket

                                                                                                              Warum nicht

                                                                                                              tpm2-abrmd

                                                                                                              Resource Manager im Userspace mit D-Bus-Schnittstelle. Seit Linux 4.12 macht der Kernel das über /dev/tpmrm0 selbst. Das Projekt ist nicht tot, es wird weiter gepflegt und ist für Simulatoren, Tests und manche Integrationen nach wie vor sinnvoll. Beides parallel zu betreiben führt aber zu Konflikten, deshalb hier bewusst nur der Kernel-Weg.

                                                                                                              clevis, clevis-tpm2

                                                                                                              binden ausschließlich LUKS2-Header. Ohne LUKS nutzlos, und auf diesem Gerät gibt es kein LUKS.

                                                                                                              # apt-get install -y tpm2-tools tpm2-openssl libtpm2-pkcs11-1 libtpm2-pkcs11-tools

                                                                                                              Auf meinem Mint 22.3 sind damit tpm2-tools 5.6, tpm2-openssl 1.2.0 und tpm2-pkcs11 1.9.0 gelandet. Der TSS2-Stack war schon da, den bringt systemd mit. Auf Fedora und RHEL heißt das Hauptpaket ebenfalls tpm2-tools, dazu tpm2-tss, unter Arch genauso tpm2-tools mit tpm2-tss als Abhängigkeit.

                                                                                                              Eine Kleinigkeit, über die jeder beim ersten Mal stolpert: /dev/tpmrm0 gehört tss:tss. Entweder arbeitet ihr mit sudo, oder ihr nehmt euren Benutzer in die Gruppe tss auf. Die Rechte in der Ausgabe von ls -la /dev/tpm* weiter oben sagen genau das, crw-rw---- und keine Rechte für alle anderen.

                                                                                                              Spricht der Chip?

                                                                                                              Es gibt drei Stufen, aufsteigend im Aussagewert. Die erste ist der Lebenstest.

                                                                                                              # tpm2_getrandom --hex 16

                                                                                                              Kommen 16 Bytes zurück, dann funktioniert die ganze Kette von der Bibliothek über die Gerätedatei bis in die Hardware. Der Zufall kommt dabei wirklich aus dem Chip, und er ist gemächlich, dazu unten die Zahlen. Stufe zwei ist tpm2_getcap properties-fixed, da sagt der Chip, wer er ist. Stufe drei ist tpm2_getcap properties-variable, da sagt er, in welchem Zustand er ist. Beide sind gleich interessant, nur aus unterschiedlichen Gründen.

                                                                                                              Wer ist dieser Chip

                                                                                                              # tpm2_getcap properties-fixed
                                                                                                              TPM2_PT_FAMILY_INDICATOR:
                                                                                                                raw: 0x322E3000
                                                                                                                value: "2.0"
                                                                                                              TPM2_PT_LEVEL:
                                                                                                                raw: 0
                                                                                                              TPM2_PT_REVISION:
                                                                                                                raw: 0x74
                                                                                                                value: 1.16
                                                                                                              TPM2_PT_DAY_OF_YEAR:
                                                                                                                raw: 0x109
                                                                                                              TPM2_PT_YEAR:
                                                                                                                raw: 0x7E0
                                                                                                              TPM2_PT_MANUFACTURER:
                                                                                                                raw: 0x49465800
                                                                                                                value: "IFX"
                                                                                                              TPM2_PT_VENDOR_STRING_1:
                                                                                                                raw: 0x534C4239
                                                                                                                value: "SLB9"
                                                                                                              TPM2_PT_VENDOR_STRING_2:
                                                                                                                raw: 0x36373000
                                                                                                                value: "670"
                                                                                                              TPM2_PT_VENDOR_TPM_TYPE:
                                                                                                                raw: 0x0
                                                                                                              TPM2_PT_FIRMWARE_VERSION_1:
                                                                                                                raw: 0x7003F
                                                                                                              TPM2_PT_FIRMWARE_VERSION_2:
                                                                                                                raw: 0xD1900
                                                                                                              TPM2_PT_INPUT_BUFFER:
                                                                                                                raw: 0x400
                                                                                                              TPM2_PT_HR_TRANSIENT_MIN:
                                                                                                                raw: 0x3
                                                                                                              TPM2_PT_HR_PERSISTENT_MIN:
                                                                                                                raw: 0x7
                                                                                                              TPM2_PT_ACTIVE_SESSIONS_MAX:
                                                                                                                raw: 0x40
                                                                                                              TPM2_PT_PCR_COUNT:
                                                                                                                raw: 0x18
                                                                                                              TPM2_PT_NV_COUNTERS_MAX:
                                                                                                                raw: 0x8
                                                                                                              TPM2_PT_NV_INDEX_MAX:
                                                                                                                raw: 0x680

                                                                                                              Rohe Hex-Werte, die plötzlich Sinn ergeben, wenn man sie einmal übersetzt. Das ist einer meiner Lieblingsmomente an dem ganzen Thema.

                                                                                                              • TPM2_PT_MANUFACTURER: 0x49465800 ist ASCII IFX, also Infineon.
                                                                                                              • VENDOR_STRING_1 und _2 ergeben zusammengesetzt SLB9 und 670, also ein Infineon OPTIGA SLB 9670.
                                                                                                              • TPM2_PT_REVISION: 0x74 ist Spezifikations-Revision 1.16, datiert auf Tag 265 des Jahres 2016.
                                                                                                              • FIRMWARE_VERSION_1: 0x7003F ist Firmware 7.63.
                                                                                                              • TPM2_PT_PCR_COUNT: 0x18 sind 24 PCRs.
                                                                                                              • TPM2_PT_HR_PERSISTENT_MIN: 0x7 heißt, dass nur sieben persistente Schlüsselplätze garantiert sind. Diese Zahl wird später richtig wichtig.
                                                                                                              • TPM2_PT_NV_COUNTERS_MAX: 0x8 sind genau acht monotone Zähler.

                                                                                                              Und dann TPM2_PT_NV_INDEX_MAX: 0x680, also 1664. Hier lauert eine Fehldeutung, die in vielen Texten steht: das ist nicht der gesamte NV-Speicher des Chips, sondern die maximale Größe eines einzelnen NV-Index-Datenbereichs. Wie viel NV insgesamt frei ist, sagt diese Eigenschaft überhaupt nicht. Das steht im Datenblatt des Herstellers und liegt bei diesem Chip im Bereich einiger Kilobyte. Ich habe es nicht ermittelt, also behaupte ich hier auch keine Gesamtgröße.

                                                                                                              Diskreter Chip oder fTPM in der CPU

                                                                                                              Diese Unterscheidung ist keine Nebensächlichkeit, und man liest sie direkt am Hersteller-String ab.

                                                                                                              Hersteller-String

                                                                                                              Was es ist

                                                                                                              IFX, NTC, STM, IBM

                                                                                                              diskreter Chip auf dem Board oder auf einem Steckmodul

                                                                                                              INTC

                                                                                                              Intel Platform Trust Technology, läuft in der Management Engine

                                                                                                              AMD

                                                                                                              AMD fTPM, läuft im Platform Security Processor

                                                                                                              Ein diskreter Chip hängt an einem physischen Bus, den man anzapfen kann. Ein fTPM hat diesen Bus nicht, dafür hat er andere Probleme. Beides kommt im Angriffs-Abschnitt zurück.

                                                                                                              Für mein Testsystem ist die Sache klar: IFX, also ein diskreter Infineon SLB 9670. Aus Linux-Sicht hängt er als memory-mapped TIS an der ACPI-Kennung MSFT0101 und wird von tpm_tis bedient. Ob die physische Leitung dahinter LPC oder SPI ist, lässt sich aus dem Betriebssystem allein nicht entscheiden, weil der PCH einen SPI-TPM auch als MMIO-TIS durchreichen kann. Das ist also plausibel, aber nicht gemessen. Die einzige echte Antwort wäre ein Foto vom offenen Gerät, und dafür müsste das Notebook auseinander.

                                                                                                              32 Fehlversuche, und deshalb reicht eine kurze PIN

                                                                                                              Jetzt der Zustand, und das ist der wichtigste einzelne Abschnitt des ganzen Beitrags, weil er später alles trägt.

                                                                                                              # tpm2_getcap properties-variable
                                                                                                              TPM2_PT_PERMANENT:
                                                                                                                ownerAuthSet:              0
                                                                                                                endorsementAuthSet:        0
                                                                                                              TPM2_PT_STARTUP_CLEAR:
                                                                                                                phEnable:                  1
                                                                                                                shEnable:                  1
                                                                                                              TPM2_PT_LOCKOUT_COUNTER: 0x0
                                                                                                              TPM2_PT_MAX_AUTH_FAIL: 0x20
                                                                                                              TPM2_PT_LOCKOUT_INTERVAL: 0x1C20
                                                                                                              TPM2_PT_LOCKOUT_RECOVERY: 0x15180

                                                                                                              Diese drei Werte werden fast immer verwechselt, also einmal sauber.

                                                                                                              • MAX_AUTH_FAIL: 0x20 sind 32 fehlgeschlagene Authentifizierungsversuche, danach sperrt der Chip.
                                                                                                              • LOCKOUT_INTERVAL: 0x1C20 sind 7200 Sekunden, also 2 Stunden. Nach dieser Zeit wird der Fehlerzähler um genau eins verringert.
                                                                                                              • LOCKOUT_RECOVERY: 0x15180 sind 86400 Sekunden, also 24 Stunden. Das ist aber nicht die Erholung des normalen Zählers, sondern die Wartezeit, bevor nach einem fehlgeschlagenen Versuch mit lockoutAuth erneut mit lockoutAuth gearbeitet werden darf.

                                                                                                              Einmal vorgerechnet, weil die Zahlen so viel deutlicher sind: ein einzelner Fehlversuch altert nach 2 Stunden aus. Von 32 verbrauchten Versuchen zurück auf null dauert also 64 Stunden und nicht 24.

                                                                                                              Und das ist der eigentliche Mehrwert des ganzen Bauteils. Der Chip zählt Fehlversuche und sperrt. Deshalb reicht bei einem TPM eine sechsstellige PIN, wo ein Passwort-Hash auf der Platte eine Passphrase mit hoher Entropie bräuchte. Wer die Platte hat, probiert Millionen Passphrasen pro Sekunde durch. Wer vor dem TPM sitzt, bekommt 32 Versuche und darf dann zwei Stunden warten, um einen einzigen zurückzubekommen. Die Stärke kommt nicht aus dem Geheimnis, sie kommt aus der Hardware, die das Raten unterbindet. Fast jeder Text über TPM lässt diesen Punkt weg, und dann klingt die kurze PIN nach Leichtsinn.

                                                                                                              Das Geburtszertifikat des Chips

                                                                                                              Jetzt kommt der Teil, den ich in keinem der üblichen TPM-Howtos gesehen habe. In dem Chip liegt ab Werk ein Zertifikat, ausgestellt vom Hersteller auf den Endorsement Key. Erst die Liste der belegten NV-Indizes, dann das Zertifikat selbst.

                                                                                                              # tpm2_getcap handles-nv-index
                                                                                                              - 0x1410001
                                                                                                              - 0x1410002
                                                                                                              - 0x1410003
                                                                                                              - 0x1800100
                                                                                                              - 0x1810008
                                                                                                              - 0x1820002
                                                                                                              - 0x1880001
                                                                                                              - 0x1880011
                                                                                                              - 0x1C00002
                                                                                                              - 0x1C0000A
                                                                                                              - 0x1C10102
                                                                                                              - 0x1C10103
                                                                                                              - 0x1C10104
                                                                                                              - 0x1C10105
                                                                                                              
                                                                                                              # tpm2_nvreadpublic 0x1C00002
                                                                                                              0x1c00002:
                                                                                                                name: 000bcfecbb34d24d7356b39b8a0fb0c82c7b052a0335fc8ca2fa602cf1395e5ff804
                                                                                                                hash algorithm:
                                                                                                                  friendly: sha256
                                                                                                                  value: 0xB
                                                                                                                attributes:
                                                                                                                  friendly: ppwrite|writedefine|ppread|ownerread|authread|no_da|written|platformcreate
                                                                                                                  value: 0x62072001
                                                                                                                size: 1184

                                                                                                              0x1C00002 ist der TCG-Standardindex für das RSA-EK-Zertifikat, 0x1C0000A derselbe für ECC. 1184 Bytes, das passt zu einem X.509-Zertifikat. Also raus damit und mit gewohnten Werkzeugen anschauen.

                                                                                                              # tpm2_nvread 0x1C00002 -o ek_rsa.der
                                                                                                              WARN: Reading full size of the NV index
                                                                                                              
                                                                                                              # openssl x509 -inform der -in ek_rsa.der -noout -subject -issuer -dates
                                                                                                              subject=
                                                                                                              issuer=C = DE, O = Infineon Technologies AG, OU = OPTIGA(TM) TPM2.0, CN = Infineon OPTIGA(TM) RSA Manufacturing CA 035
                                                                                                              notBefore=Aug 21 14:09:40 2019 GMT
                                                                                                              notAfter=Aug 21 14:09:40 2034 GMT

                                                                                                              Zwei Dinge fallen sofort auf. Der Aussteller ist eine echte Hersteller-CA, „Infineon OPTIGA(TM) RSA Manufacturing CA 035“, und Infineon hat diesen Chip am 21. August 2019 signiert. Und der Subject ist leer. Ein TPM hat keinen Namen. Die Identität steckt woanders, nämlich in den Erweiterungen.

                                                                                                              # openssl x509 -inform der -in ek_rsa.der -noout -text
                                                                                                                          X509v3 Key Usage: critical
                                                                                                                              Key Encipherment
                                                                                                                          X509v3 Subject Alternative Name: critical
                                                                                                                              DirName:/2.23.133.2.1=id:49465800/2.23.133.2.2=SLB 9670 TPM2.0/2.23.133.2.3=id:073f
                                                                                                                          X509v3 Basic Constraints: critical
                                                                                                                              CA:FALSE
                                                                                                                          X509v3 CRL Distribution Points:
                                                                                                                              Full Name:
                                                                                                                                URI:http://pki.infineon.com/OptigaRsaMfrCA035/OptigaRsaMfrCA035.crl
                                                                                                                          X509v3 Certificate Policies:
                                                                                                                              Policy: 1.2.276.0.68.1.20.1
                                                                                                                          X509v3 Extended Key Usage:
                                                                                                                              2.23.133.8.1

                                                                                                              Der Subject Alternative Name trägt drei TCG-OIDs, und die decken sich exakt mit dem, was der Chip vorher selbst über sich gesagt hat. 2.23.133.2.1 ist der Hersteller, id:49465800, also wieder IFX. 2.23.133.2.2 ist das Modell, SLB 9670 TPM2.0. 2.23.133.2.3 ist die Firmware, id:073f, was genau die 7.63 von oben bestätigt. Die Extended Key Usage 2.23.133.8.1 ist tcg-kp-EKCertificate, dieses Zertifikat darf also nichts anderes sein als der Nachweis eines Endorsement Keys. Und Infineon veröffentlicht dazu eine Sperrliste.

                                                                                                              Was ich hier bewusst weglasse, sind die Zertifikats-Seriennummer und der öffentliche EK-Schlüssel. Beide kennzeichnen dauerhaft und eindeutig genau dieses eine Notebook, und die TCG behandelt den EK aus genau diesem Grund als datenschutzrelevant. Damit erklärt sich beiläufig, warum es überhaupt Attestierungsschlüssel gibt: damit man für eine Attestierung nicht jedes Mal die dauerhafte Chip-Identität vorzeigen muss.

                                                                                                              Das hier ist die Wurzel, auf der Fernattestierung aufsetzt. Ein Prüfer kann feststellen, dass in dieser Maschine ein echter, von Infineon signierter TPM sitzt, ohne dem Betriebssystem eine einzige Zeile zu glauben. Genau formuliert beweist das Zertifikat aber nur die Echtheit des Chips. Dass ein bestimmter Attestierungsschlüssel wirklich in diesem Chip liegt, ist ein zusätzlicher Schritt, und den nehme ich mir im Server-Teil vor.

                                                                                                              Drei Dinge, alles andere ist Kombination

                                                                                                              Bevor irgendein Anwendungsfall kommt: ein TPM bietet im Kern nur drei Dinge an. Alles, was danach als Feature verkauft wird, ist eine Kombination daraus.

                                                                                                              • Schlüssel, die nicht herauskommen. Ein Schlüssel mit dem Attribut fixedTPM wird im Chip erzeugt und verlässt ihn nie. Man kann ihn benutzen, man kann ihn nicht kopieren.
                                                                                                              • PCRs, Register die nur wachsen. 24 Register, hier mit SHA-1- und SHA-256-Bank. Man kann sie nicht setzen, nur erweitern, und die Rechenvorschrift dafür ist neu = hash(alt || messwert). Bei den Registern, auf die es ankommt, nämlich PCR 0 bis 15 auf einer PC-Client-Plattform, geht es nur über einen Neustart zurück. Deshalb kann man die Boot-Historie nicht nachträglich fälschen. Zwei Ausnahmen gehören dazu, sonst wird es ungenau: PCR 16 und PCR 23 sind zur Laufzeit zurücksetzbar. PCR 16 ist ausdrücklich als Debug-Register vorgesehen, und genau deshalb benutze ich es weiter unten für die Demonstration. Gegen ein zurücksetzbares PCR versiegelt niemand etwas Echtes.
                                                                                                              • Sealing, Geheimnisse an einen Zustand binden. Ein Geheimnis wird so verschlüsselt, dass der Chip es nur herausgibt, wenn eine Policy erfüllt ist, typischerweise ein bestimmter PCR-Zustand.

                                                                                                              Dazu kommen als Nebenfunktionen die schon erwähnten monotonen Zähler, ein winziger NV-Speicher, ein Zufallszahlengenerator und die Lockout-Logik von oben.

                                                                                                              Und weil es das häufigste Missverständnis überhaupt ist, gleich früh und deutlich: ein TPM ist kein Krypto-Beschleuniger, keine Secure Enclave mit eigener Rechenumgebung und kein Schutz gegen einen kompromittierten laufenden Kernel. Er schützt Schlüssel im Ruhezustand und er misst den Startvorgang. Wenn der laufende Kernel übernommen ist, benutzt der Angreifer den TPM einfach mit, ganz höflich über dieselbe Schnittstelle.

                                                                                                              Measured Boot in acht Befehlen

                                                                                                              Genug Theorie, jetzt der Beweis. Ich baue eine Policy aus dem aktuellen Zustand von PCR 7, erzeuge einen Primary Key im Chip und versiegle damit ein Geheimnis.

                                                                                                              # tpm2_startauthsession -S session.ctx
                                                                                                              # tpm2_policypcr -S session.ctx -l sha256:7 -L pcr7.policy
                                                                                                              76a916a90c7c0906a930cd5cd3e501cb43007331a8b7444222d8aa4c5475f53f
                                                                                                              # tpm2_flushcontext session.ctx

                                                                                                              Der Hash ist die Policy, und er hängt am Inhalt von PCR 7. Dann der Schlüssel, und ich messe gleich mit, weil die Zahl später noch gebraucht wird.

                                                                                                              # time tpm2_createprimary -C o -g sha256 -G ecc256 -c primary.ctx
                                                                                                                value: aes
                                                                                                                raw: 0x6
                                                                                                              sym-mode:
                                                                                                                value: cfb
                                                                                                                raw: 0x43
                                                                                                              sym-keybits: 128
                                                                                                              x: 2be770ed8755bf6f454cb1fea18ba722526d1ee3e9080ab94edda0480b73529d
                                                                                                              y: af840b9c69dcac45c9aa3a04085ced5c750bfef5e70c470e4481592ff3026dc7
                                                                                                              
                                                                                                              real	0m0.537s
                                                                                                              # echo -n "geheim-nur-bei-diesem-boot" > secret.txt
                                                                                                              # tpm2_create -C primary.ctx -g sha256 -u seal.pub -r seal.priv -L pcr7.policy -i secret.txt
                                                                                                              keyedhash: ef1dc0bffd0d7529a6d0b44f79bdd14fb8829995c998ffb14d88936f82d3e9f3
                                                                                                              authorization policy: 76a916a90c7c0906a930cd5cd3e501cb43007331a8b7444222d8aa4c5475f53f
                                                                                                              
                                                                                                              # tpm2_load -C primary.ctx -u seal.pub -r seal.priv -c seal.ctx
                                                                                                              name: 000b50ac9b197a947de6d2ff47d9d80748d4fa1453754bee5f3a8627e307cf8c84fd
                                                                                                              
                                                                                                              # tpm2_startauthsession --policy-session -S s.ctx
                                                                                                              # tpm2_policypcr -S s.ctx -l sha256:7
                                                                                                              # tpm2_unseal -p session:s.ctx -c seal.ctx
                                                                                                              geheim-nur-bei-diesem-boot

                                                                                                              Das Geheimnis kommt zurück, weil PCR 7 noch genau den Wert hat, gegen den versiegelt wurde. Schön, beweist aber noch nichts. Interessant wird es erst, wenn sich die Messung ändert.

                                                                                                              Dafür wechsle ich auf PCR 16, das Debug-Register. Der Grund ist praktisch: PCR 16 lässt sich ohne Neustart und ohne Firmware-Änderung erweitern, damit ist die Demonstration in einer einzigen Terminal-Sitzung reproduzierbar. Der Mechanismus ist derselbe wie bei PCR 7.

                                                                                                              # tpm2_pcrread sha256:16
                                                                                                                sha256:
                                                                                                                  16: 0x0000000000000000000000000000000000000000000000000000000000000000
                                                                                                              
                                                                                                              # tpm2_startauthsession -S t.ctx
                                                                                                              # tpm2_policypcr -S t.ctx -l sha256:16 -L pcr16.policy
                                                                                                              # tpm2_flushcontext t.ctx
                                                                                                              # echo -n "unlock-key-material" > s16.txt
                                                                                                              # tpm2_create -C primary.ctx -g sha256 -u s16.pub -r s16.priv -L pcr16.policy -i s16.txt
                                                                                                              # tpm2_load -C primary.ctx -u s16.pub -r s16.priv -c s16.ctx
                                                                                                              # tpm2_startauthsession --policy-session -S p.ctx
                                                                                                              # tpm2_policypcr -S p.ctx -l sha256:16
                                                                                                              # tpm2_unseal -p session:p.ctx -c s16.ctx
                                                                                                              unlock-key-material
                                                                                                              # tpm2_flushcontext p.ctx

                                                                                                              Und jetzt ändere ich die Messung. Das folgende Kommando ist genau das, was ein ausgetauschter Bootloader auch täte, nur mit einem selbstgewählten Messwert.

                                                                                                              # tpm2_pcrextend 16:sha256=$(echo -n "boese-veraenderung" | sha256sum | cut -d" " -f1)
                                                                                                              # tpm2_pcrread sha256:16
                                                                                                                sha256:
                                                                                                                  16: 0xC6FE6738E4DDC92E1C8E18E290469CCB6B6D305BC1295C4F72B85D0922C25930

                                                                                                              Derselbe Unseal-Aufruf wie zwei Blöcke vorher, Zeichen für Zeichen identisch:

                                                                                                              # tpm2_startauthsession --policy-session -S p2.ctx
                                                                                                              # tpm2_policypcr -S p2.ctx -l sha256:16
                                                                                                              # tpm2_unseal -p session:p2.ctx -c s16.ctx
                                                                                                              WARNING:esys:src/tss2-esys/api/Esys_Unseal.c:295:Esys_Unseal_Finish() Received TPM Error
                                                                                                              ERROR:esys:src/tss2-esys/api/Esys_Unseal.c:98:Esys_Unseal() Esys Finish ErrorCode (0x0000099d)
                                                                                                              ERROR: Esys_Unseal(0x99D) - tpm:session(1):a policy check failed
                                                                                                              ERROR: Unable to run tpm2_unseal
                                                                                                              exit=1

                                                                                                              0x99D ist TPM_RC_POLICY_FAIL. Das Geheimnis liegt noch im Blob, es ist nicht gelöscht, es ist nur unerreichbar, solange PCR 16 diesen Wert trägt. Und jetzt der Punkt, auf den es mir ankommt: das ist keine Zugriffskontrolle im Betriebssystem. Da hat kein Dateisystem eine Berechtigung geprüft und kein Dienst eine Regel angewendet. Das ist eine Weigerung der Hardware. Sudo hilft hier nicht, weil root für diese Entscheidung überhaupt nicht zuständig ist.

                                                                                                              Wer was misst, und was am Ende über das Entsiegeln entscheidet.

                                                                                                              Und wenn ich das Register einfach zurücksetze?

                                                                                                              Das ist die Frage, die jeder aufmerksame Leser an dieser Stelle stellt, und sie ist völlig berechtigt. Bei PCR 16 geht das tatsächlich, ohne Neustart.

                                                                                                              # tpm2_pcrread sha256:16
                                                                                                                sha256:
                                                                                                                  16: 0xC6FE6738E4DDC92E1C8E18E290469CCB6B6D305BC1295C4F72B85D0922C25930
                                                                                                              # tpm2_pcrreset 16
                                                                                                              # echo $?
                                                                                                              0
                                                                                                              # tpm2_pcrread sha256:16
                                                                                                                sha256:
                                                                                                                  16: 0x0000000000000000000000000000000000000000000000000000000000000000

                                                                                                              Dasselbe Kommando gegen PCR 7 lehnt die Hardware ab.

                                                                                                              # tpm2_pcrreset 7
                                                                                                              ERROR: Esys_PCR_Reset(0x907) - tpm:warn(2.0): bad locality
                                                                                                              ERROR: Could not reset PCR index: 7
                                                                                                              ERROR: Unable to run tpm2_pcrreset

                                                                                                              0x907 ist TPM_RC_LOCALITY. Der Chip unterscheidet, aus welcher Vertrauensstufe ein Kommando kommt, und root auf dem laufenden System hat die Locality, die zum Zurücksetzen eines Boot-Mess-Registers nötig wäre, gar nicht. Das ist der ganze Unterschied zwischen einem Debug-Register und einem Boot-Mess-Register, ausgedrückt in einer Fehlermeldung.

                                                                                                              PCR 16 lässt sich zurücksetzen, PCR 7 nicht. Root ändert daran nichts.

                                                                                                              Die Platte startet ohne Passphrase, aber nur mit PIN

                                                                                                              Der Klassiker am Arbeitsplatz ist LUKS2 zusammen mit systemd-cryptenroll. Der Nutzen ist echt: das Notebook startet ohne Eingabe, und ein ausgebautes Laufwerk bleibt trotzdem verschlüsselt.

                                                                                                              # systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 --tpm2-with-pin=yes /dev/nvme0n1pX

                                                                                                              Ehrlichkeit an dieser Stelle: dieses Kommando habe ich nicht ausgeführt, und ich konnte es auch nicht. Die Maschine hat gar kein LUKS, die Wurzel liegt auf ZFS mit der ZFS-eigenen Verschlüsselung, aes-256-gcm. Der Befehl steht hier also als dokumentiertes Verfahren nach Manpage und nicht als Messung.

                                                                                                              Das Wichtigste daran ist das --tpm2-with-pin=yes. Ohne PIN entsperrt sich das Gerät für jeden, der es einschaltet, und die Festplattenverschlüsselung schützt dann nur noch gegen den Ausbau der SSD, nicht gegen den Diebstahl des Rechners. Mit PIN greift die Lockout-Logik von weiter oben, und genau dadurch wird eine kurze PIN sicher.

                                                                                                              Bei der Auswahl der PCRs gibt es dann einen echten Zielkonflikt, der meist verschwiegen wird.

                                                                                                              • Nur PCR 7 gebunden übersteht Kernel-Updates, misst aber im Kern nur den Secure-Boot-Zustand. Das ist wenig Aussage für viel Bequemlichkeit.
                                                                                                              • PCR 7 plus 11 gebunden, zusammen mit einem Unified Kernel Image, erfasst tatsächlich Kernel und initrd. Dafür bricht jedes Kernel-Update die Bindung, wenn man nicht mit signierter Policy arbeitet. Eine wichtige Präzisierung dazu, sonst erklärt man die Folgen falsch: PCR 11 ist kein reines Kernel-Register. systemd-stub misst dort das UKI hinein, danach schreibt systemd-pcrphase im Verlauf des Startvorgangs weitere Phasen-Messungen in dasselbe Register. Der Wert von PCR 11 hängt also davon ab, in welcher Boot-Phase man ihn liest, und genau darauf beruht der Trick, dass ein Geheimnis nur im initrd aufgeht und im laufenden System nicht mehr.
                                                                                                              • PCR 0 bis 7 gebunden ist die strengste Variante, und dann sperrt euch jedes BIOS-Update aus. Das ist der Grund, warum es systemd-pcrlock gibt, das die erwarteten Messwerte vorab berechnet und die Policy nachzieht. Dieselbe Manpage bezeichnet sich allerdings selbst noch als experimentell.

                                                                                                              Wer welches Register wofür benutzt, hat die UAPI Group in einer PCR-Registry für Linux zusammengetragen. Das ist die Tabelle, die man beim Basteln offen haben will.

                                                                                                              Eine Lücke betrifft ziemlich viele Linux-Nutzer, deshalb sage ich sie deutlich: systemd-cryptenroll und clevis luks bind schreiben beide in einen LUKS2-Header. Wer seine Wurzel auf ZFS-Native-Encryption hat, hat keinen. Upstream-ZFS bringt keine TPM-Integration mit. Ein TPM-gestütztes Entsperren bräuchte dort ein eigenes tpm2_unseal, das zfs load-key füttert, gebaut ins initramfs. Das ist eine echte offene Baustelle und kein Rezept, das ich hier nebenbei hinschreibe.

                                                                                                              Ein SSH-Schlüssel, der keine Datei hat

                                                                                                              Das ist mein Lieblings-Anwendungsfall am Arbeitsplatz, weil der Nutzen in einem Satz erklärt ist. Ein Angreifer mit Lesezugriff auf ~/.ssh bekommt nichts Verwendbares. Der Schlüssel kann die Maschine nicht verlassen. Er ist nicht gestohlen, er ist an das Blech gebunden.

                                                                                                              # export TPM2_PKCS11_STORE=/root/tpm-demo/pkcs11store
                                                                                                              # mkdir -p $TPM2_PKCS11_STORE
                                                                                                              # tpm2_ptool init --path=$TPM2_PKCS11_STORE
                                                                                                              action: Created
                                                                                                              id: 1
                                                                                                              
                                                                                                              # tpm2_ptool addtoken --pid=1 --label=ssh --sopin=sopin123 --userpin=userpin123 --path=$TPM2_PKCS11_STORE
                                                                                                              # tpm2_ptool addkey --algorithm=ecc256 --label=ssh --userpin=userpin123 --path=$TPM2_PKCS11_STORE
                                                                                                              public:
                                                                                                                CKA_ID: '63316131396137363763316531666439'

                                                                                                              Die CKA_ID wird pro Schlüssel erzeugt, bei euch steht dort etwas anderes. Den öffentlichen Teil holt man sich in einem Format, das sshd versteht, direkt über den PKCS#11-Provider.

                                                                                                              # ssh-keygen -D /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so
                                                                                                              ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO+enW3ZwHsSq8vHLKliloTMR/fpDgWPfti+UQuad0YA8rIXGE8Q9adJqjO6PmZO1DCavBiJgttOE24qrO6BX/0=

                                                                                                              Diese Zeile wandert wie gewohnt in authorized_keys. Und damit der Nachweis auch etwas wert ist, zeige ich ihn als Vorher und Nachher. Auf dieser Maschine liegt in /root/.ssh nämlich kein einziger privater Schlüssel, es gibt also keine zweite Erklärung für einen erfolgreichen Public-Key-Login.

                                                                                                              # ls /root/.ssh/id_*
                                                                                                              ls: cannot access '/root/.ssh/id_*': No such file or directory
                                                                                                              
                                                                                                              # ssh -o BatchMode=yes root@localhost true
                                                                                                              root@localhost: Permission denied (publickey,password).

                                                                                                              Derselbe Login, nur mit dem Provider dazu:

                                                                                                              # ssh -o PKCS11Provider=/usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so root@localhost 'echo LOGIN-OK-VIA-TPM; hostname; id -un'
                                                                                                              LOGIN-OK-VIA-TPM
                                                                                                              ErrorLap
                                                                                                              root

                                                                                                              Die PIN habe ich für diesen Test über SSH_ASKPASS nicht interaktiv geliefert, im Alltag fragt ssh einfach danach. Richtig sehenswert wird es aber mit -v, denn da erzählt OpenSSH selbst, mit welchem Bauteil es gerade arbeitet.

                                                                                                              debug1: provider /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so: manufacturerID <tpm2-software.github.io> cryptokiVersion 2.40 libraryDescription <TPM2.0 Cryptoki> libraryVersion 1.9
                                                                                                              debug1: provider /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so slot 0: label <ssh> manufacturerID <Infineon> model <SLB9670> serial <0000000000000000> flags 0x40d
                                                                                                              debug1: Will attempt key:  ECDSA SHA256:otJuTNX5LzFzJKqbTu9UoYROpZSXMMWIWMZUe02v1D4 token
                                                                                                              debug1: Will attempt key: /root/.ssh/id_rsa
                                                                                                              debug1: Will attempt key: /root/.ssh/id_ecdsa
                                                                                                              debug1: Will attempt key: /root/.ssh/id_ed25519
                                                                                                              debug1: Will attempt key: /root/.ssh/id_dsa
                                                                                                              debug1: Offering public key:  ECDSA SHA256:otJuTNX5LzFzJKqbTu9UoYROpZSXMMWIWMZUe02v1D4 token
                                                                                                              debug1: Server accepts key:  ECDSA SHA256:otJuTNX5LzFzJKqbTu9UoYROpZSXMMWIWMZUe02v1D4 token

                                                                                                              Drei Sachen daran finde ich stark. Erstens nennt OpenSSH den Chip beim Namen, manufacturerID <Infineon> model <SLB9670>. Der SSH-Client sagt dir, welches Bauteil da gerade unterschreibt. Zweitens steht der TPM-Schlüssel in der Kandidatenliste mit dem Wort token, wo bei allen anderen ein Dateipfad steht, und diese Dateien existieren nicht einmal. Dieser Kontrast in einem Bildschirm ist das ganze Argument: dieser Schlüssel hat keine Datei. Drittens wird der Token-Schlüssel zuerst probiert, noch vor den nicht existierenden Dateien.

                                                                                                              OpenSSH nennt Hersteller und Modell des Chips. Der Schlüssel steht als token in der Liste, alle anderen Kandidaten sind Dateien, die es nicht gibt.

                                                                                                              Lasst mal kurz etwas heraus zoomen 😀 Meine Frau weist mich grade auf mein RBF hin. Wenn ich so konzentriert am Computer sitze und wie in diesem Fall etwas schreibe, dann schaue ich wohl meinen Monitor an, als wenn ich ihn gleich töten möchte. Tjo, und nun? Nun zoomen wir wieder ins Thema!

                                                                                                              Die Zahl, die meine eigene Erwartung widerlegt hat

                                                                                                              Meine Annahme vor der Messung war schlicht: eine ECDSA-Signatur kostet im Chip rund 97 Millisekunden, also merkt man beim Login nichts. Gemessen kommt etwas anderes heraus.

                                                                                                              Weg

                                                                                                              5 Logins

                                                                                                              pro Login

                                                                                                              Aufschlag

                                                                                                              Schlüssel auf der Platte, Referenzwert

                                                                                                              1,552 s

                                                                                                              etwa 310 ms

                                                                                                              Referenz

                                                                                                              PKCS11Provider bei jedem Aufruf

                                                                                                              8,013 s

                                                                                                              etwa 1603 ms

                                                                                                              etwa 1293 ms

                                                                                                              Token einmal im ssh-agent

                                                                                                              2,806 s

                                                                                                              etwa 561 ms

                                                                                                              etwa 251 ms

                                                                                                              Die Ursache ist lehrreich. Bei PKCS11Provider baut ssh bei jedem einzelnen Login die komplette Kette neu auf: Store öffnen, Primary Key im TPM erzeugen, Kindschlüssel laden, signieren. Allein die Erzeugung des Primary Keys habe ich weiter oben mit 0,537 Sekunden gemessen. Die eigentliche Signatur ist damit der kleinste Posten in der Rechnung.

                                                                                                              # ssh-add -s /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so
                                                                                                              Card added: /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so
                                                                                                              # ssh-add -l
                                                                                                              256 SHA256:otJuTNX5LzFzJKqbTu9UoYROpZSXMMWIWMZUe02v1D4 /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1.9.0 (ECDSA)
                                                                                                              # time (for i in 1 2 3 4 5; do ssh root@localhost true; done)
                                                                                                              real	0m2.806s

                                                                                                              Mit ssh-add -s passiert diese Initialisierung einmal pro Sitzung statt einmal pro Verbindung, und die PIN wird auch nur einmal abgefragt. Zwei Gründe, dieselbe Empfehlung, also ganz klar: nehmt ssh-add -s und nicht PKCS11Provider bei jedem Aufruf.

                                                                                                              Zur Messhygiene, wie immer: fünf Logins pro Zeile über Loopback, jeweils mit vollem Verbindungsaufbau und Prozessstart, kleine Stichprobe, keine Streuung berechnet. Das sind Größenordnungen und keine Benchmarks.

                                                                                                              Der Nebeneffekt, den niemand erwähnt

                                                                                                              Diesen Punkt habe ich selbst erst beim Aufräumen gemerkt, und jeder, der dem SSH-Abschnitt folgt, läuft hinein. tpm2_ptool init legt stillschweigend einen Primary Key an und macht ihn persistent im Chip. Vor der Demo waren drei persistente Handles belegt, danach vier.

                                                                                                              # tpm2_getcap handles-persistent
                                                                                                              - 0x81000000
                                                                                                              - 0x81000001
                                                                                                              - 0x81000002
                                                                                                              - 0x81010001

                                                                                                              Und jetzt zurück zu einer Zahl von weiter oben: TPM2_PT_HR_PERSISTENT_MIN ist auf diesem Chip 0x7. Garantiert sind also nur sieben persistente Plätze, und drei davon waren schon vorher weg. Wer bei jedem Basteln ein Handle liegen lässt, macht den Chip irgendwann voll. Den eigenen Müll findet und räumt man so weg:

                                                                                                              # tpm2_evictcontrol -C o -c 0x81000000
                                                                                                              persistent-handle: 0x81000000
                                                                                                              action: evicted
                                                                                                              
                                                                                                              # tpm2_getcap handles-persistent
                                                                                                              - 0x81000001
                                                                                                              - 0x81000002
                                                                                                              - 0x81010001

                                                                                                              Dazu eine Warnung, die ich nicht deutlich genug schreiben kann: räumt niemals Handles weg, die ihr nicht selbst angelegt habt. Die drei anderen lagen auf meinem Gerät schon vorher dort, vermutlich aus der Hersteller-Provisionierung oder aus einem früheren Windows-Leben. Wer einen fremden Primary Key entfernt, vernichtet alles, was darunter versiegelt war. Der sichere Weg führt über den Token-Store, denn dort steht das Handle drin, das zum eigenen Werkzeug gehört. Bei mir war es genau das 0x81000000 aus der Ausgabe oben, und ich habe vor dem Entfernen im Store nachgesehen, statt der Reihenfolge zu vertrauen.

                                                                                                              Schlüssel im Chip, benutzt über OpenSSL

                                                                                                              Für alles, was kein PKCS#11 spricht, gibt es den OpenSSL-3-Provider. Der schönste Moment daran ist ein PEM-Header.

                                                                                                              # openssl list -providers -provider tpm2
                                                                                                              Providers:
                                                                                                                tpm2
                                                                                                                  name: TPM 2.0 Provider
                                                                                                                  version: 1.2.0
                                                                                                                  status: active
                                                                                                              
                                                                                                              # openssl genpkey -provider tpm2 -algorithm EC -pkeyopt group:P-256 -out tpmkey.pem
                                                                                                              # head -2 tpmkey.pem
                                                                                                              -----BEGIN TSS2 PRIVATE KEY-----
                                                                                                              MIHPBgZngQUKAQOgAwEBAQIEQAAAAQRYAFYAIwALAAYAcgAAABAAEAADABAAINLL

                                                                                                              Diese Datei enthält keinen privaten Schlüssel. Sie enthält einen Blob, den ausschließlich dieser eine Chip auspacken kann. Kopiert die Datei auf eine andere Maschine und sie ist wertlos. Signieren geht im Chip, prüfen geht überall.

                                                                                                              # printf "attestiere-mich" > d.bin
                                                                                                              # openssl pkeyutl -provider tpm2 -provider default -sign -inkey tpmkey.pem -rawin -digest sha256 -in d.bin -out d.sig
                                                                                                              # stat -c%s d.sig
                                                                                                              70
                                                                                                              # openssl pkey -provider tpm2 -provider default -in tpmkey.pem -pubout -out tpmkey.pub.pem
                                                                                                              # openssl pkeyutl -verify -pubin -inkey tpmkey.pub.pem -rawin -digest sha256 -in d.bin -sigfile d.sig
                                                                                                              Signature Verified Successfully

                                                                                                              Zum Prüfen habe ich nur den Standard-Provider gebraucht. Es ist eine ganz normale ECDSA-Signatur, die Gegenseite muss von einem TPM überhaupt nichts wissen. Deshalb lässt sich das in bestehende PKI einbauen, ohne irgendetwas umzustellen, und damit gehen Client-Zertifikate für VPN, 802.1X, mTLS und auch AWS IAM Roles Anywhere.

                                                                                                              Der Zufallsgenerator, ehrlich klein geredet

                                                                                                              Auf diesem System ist der TPM tatsächlich der Hardware-Zufallsgenerator, den der Kernel benutzt.

                                                                                                              # cat /sys/class/misc/hw_random/rng_available
                                                                                                              tpm-rng-0 none
                                                                                                              # cat /sys/class/misc/hw_random/rng_current
                                                                                                              tpm-rng-0

                                                                                                              Der Nutzen davon ist vorhanden, aber klein. Moderne CPUs haben RDRAND, der Kernel hat einen guten Entropiepool, und rund 67 Millisekunden pro tpm2_getrandom-Aufruf sind für nichts geeignet, was Durchsatz braucht. Als zusätzliche, unabhängige Quelle im Pool ist es geschenkt und in Ordnung. Mehr würde ich daraus nicht machen.

                                                                                                              Fernattestierung, der eigentliche große Fall

                                                                                                              Auf Servern liegt der größere Nutzen, nicht am Arbeitsplatz. Das Problem zuerst: bei einer Kiste im Rechenzentrum oder in der Colo weiß man normalerweise nicht, ob sie noch die Software fährt, die man dort installiert hat. Alles, was man fragen kann, ist der Server selbst. Und wenn er kompromittiert ist, lügt er.

                                                                                                              Der TPM löst das, weil er eine Aussage über den Startvorgang signiert, die das Betriebssystem nicht fälschen kann. Zwei Schlüssel braucht es dafür: den Endorsement Key als Chip-Identität und einen Attestierungsschlüssel, mit dem tatsächlich signiert wird.

                                                                                                              # tpm2_createek -c ek.ctx -G rsa -u ek.pub
                                                                                                              # tpm2_createak -C ek.ctx -c ak.ctx -G rsa -g sha256 -s rsassa -u ak.pub -n ak.name
                                                                                                              loaded-key:
                                                                                                                name: 000b76c23ef9e6c736e89085381db5c9303c6aca84dd4b18785cbcd5820666146650
                                                                                                                qualified name: 000bfce15794118492a81739a638c4745d23eeffda268ef1d016f22bc07c7a0b5e65

                                                                                                              Der qualified name ist didaktisch schön, weil er die Abstammung des Schlüssels von seinem Elternschlüssel mit einbezieht. Jetzt das Quote, mit einer Nonce, die sich der Prüfer ausdenkt. Ich nehme deadbeef in Hex.

                                                                                                              # tpm2_quote -c ak.ctx -l sha256:0,1,4,7 -q 6465616462656566 -m quote.msg -s quote.sig -o pcr.bin -g sha256
                                                                                                              quoted: ff54434780180022000bfce15794118492a81739a638c4745d23eeffda268ef1d016f22bc07c7a0b5e650008646561646265656600000002acc0c6460000020500000000010007003f000d190000000001000b0393000000201a782856983a34bde88eb32ea706d6863119ee0309e3e8296f0021d34ec896d5
                                                                                                              pcrs:
                                                                                                                sha256:
                                                                                                                  0 : 0x7DE4ABE4ED8D8291D9B58D71F3B2988F5DA81EBE58D4AE518012E877FA1E04F1
                                                                                                                  1 : 0x41CBF90AFF5CEEFAA9E9C52E7A3D5B4C8518EA65861C753AF8DB005C5330F53F
                                                                                                                  4 : 0xCDB9366A1664E6B6AE408E3DF98F2E5FF47BCD6F0EA19ACBABE643DE586853DD
                                                                                                                  7 : 0xF5841722D3DCC8886F14E92CA2D7304932CF17E2247A85D3B7BB41FE2C02CB4E
                                                                                                              calcDigest: 1a782856983a34bde88eb32ea706d6863119ee0309e3e8296f0021d34ec896d5

                                                                                                              Der quoted-Blob sieht wie Rauschen aus, ist aber lesbar, wenn man weiß wo man hinschaut.

                                                                                                              • ff544347 ist die Konstante TPM_GENERATED_VALUE und markiert die Struktur als im TPM entstanden. Wichtig für das Verständnis: sie allein verhindert keine Fälschung. Der Schutz entsteht daraus, dass ein Attestierungsschlüssel ein restricted Signaturschlüssel ist, der nur Daten unterschreibt, die der Chip selbst erzeugt hat. Diese Konstante ist das Erkennungsmerkmal dafür und nicht der Mechanismus.
                                                                                                              • 8018 ist TPM2_ST_ATTEST_QUOTE, der Strukturtyp.
                                                                                                              • 6465616462656566 ist meine Nonce, unverändert zurück. Genau das schlägt einen Replay.
                                                                                                              • 07003f000d1900 ist die Firmware-Version, die in jedem Quote mitläuft. Das ist wieder die 7.63 von oben.

                                                                                                              Geprüft wird offline, und zwar mit nichts als dem öffentlichen Attestierungsschlüssel.

                                                                                                              # tpm2_readpublic -c ak.ctx -o ak.pem -f pem
                                                                                                              # tpm2_checkquote -u ak.pem -m quote.msg -s quote.sig -f pcr.bin -g sha256 -q 6465616462656566
                                                                                                              pcrs:
                                                                                                                sha256:
                                                                                                                  0 : 0x7DE4ABE4ED8D8291D9B58D71F3B2988F5DA81EBE58D4AE518012E877FA1E04F1
                                                                                                                  1 : 0x41CBF90AFF5CEEFAA9E9C52E7A3D5B4C8518EA65861C753AF8DB005C5330F53F
                                                                                                                  4 : 0xCDB9366A1664E6B6AE408E3DF98F2E5FF47BCD6F0EA19ACBABE643DE586853DD
                                                                                                                  7 : 0xF5841722D3DCC8886F14E92CA2D7304932CF17E2247A85D3B7BB41FE2C02CB4E
                                                                                                              exit=0

                                                                                                              Der Ablauf einer Attestierung. Der Prüfer glaubt dem Knoten nichts, er rechnet nach.

                                                                                                              Die Lücke, die fast jedes Howto verschweigt

                                                                                                              Und hier muss ich mich selbst bremsen, denn die Versuchung ist groß, die beiden vorherigen Abschnitte einfach nebeneinanderzulegen und „echte Hardware bestätigt echten Bootzustand“ daraus zu machen. Das wäre eine Beweiskette mit einem Loch in der Mitte.

                                                                                                              tpm2_checkquote mit dem öffentlichen Attestierungsschlüssel beweist genau eine Sache: irgendjemand, der diesen Schlüssel besitzt, hat dieses Quote signiert. Es beweist nicht, dass dieser Schlüssel in demselben Chip steckt, dessen Infineon-Zertifikat ich weiter oben gezeigt habe.

                                                                                                              Die fehlende Verbindung heißt Credential Activation. Der Prüfer verschlüsselt dabei ein Geheimnis so, dass es nur ausgepackt werden kann, wenn Endorsement Key und Attestierungsschlüssel im selben TPM liegen, klassisch über TPM2_MakeCredential auf der Prüferseite und TPM2_ActivateCredential auf der Knotenseite. Erst wenn der Knoten das Geheimnis zurückmelden kann, ist bewiesen, dass der Schlüssel zu diesem zertifizierten Chip gehört. Alternativ stellt eine Attestierungs-CA ein echtes AK-Zertifikat aus, nachdem sie diese Prüfung einmal gemacht hat. Wie das im Detail aussieht, steht in RFC 9683. Diesen Schritt habe ich hier nicht durchgeführt. Gemessen sind Quote und Signaturprüfung, die Bindung ist dokumentiertes Verfahren.

                                                                                                              Keylime, vier Rollen und ein Prüfer der nicht aufhört

                                                                                                              Genau diesen Schritt macht Keylime, und genau deshalb ist Keylime mehr als ein Skript um tpm2_quote herum. Die Architektur hat vier Rollen: einen Agent auf dem Knoten, einen Registrar, einen Verifier und einen Tenant. Der Agent schickt Event-Log, IMA-Hashes und Measured-Boot-Daten, der lokale TPM bürgt für die Echtheit, und über das EK-Zertifikat lässt sich beweisen, dass es überhaupt ein echter TPM ist. Der Verifier prüft dann fortlaufend und nicht nur einmal beim Start.

                                                                                                              Damit das nicht nach Bastelei klingt: Keylime läuft in der IBM Cloud als Teil der Compliance-Anforderungen für FedRAMP und HITRUST, und SUSE dokumentiert es offiziell für SUSE Linux Micro. Das ist kein Laborspielzeug.

                                                                                                              IMA und EVM, zwei Dinge die ständig verwechselt werden

                                                                                                              Beide gehören zur Laufzeit-Integrität, machen aber Verschiedenes.

                                                                                                              • IMA, die Integrity Measurement Architecture, hasht Dateien beim Zugriff. Im Messmodus schreibt sie die Hashes in ein Kernel-Log und erweitert damit PCR 10. Im Appraisal-Modus verweigert sie zusätzlich die Ausführung, wenn Hash oder Signatur nicht passen.
                                                                                                              • EVM schützt die zugehörigen erweiterten Attribute, also die Sicherheits-Metadaten der Datei, mit einem HMAC oder einer Signatur. Ohne EVM könnte ein Angreifer mit Schreibrechten die IMA-Attribute einfach mitfälschen.

                                                                                                              Der TPM-Bezug liegt bei IMA und bei PCR 10. Eine veränderte Binärdatei erzeugt eine Messung, die im TPM landet und rückwirkend nicht mehr zu entfernen ist, weil PCRs nur wachsen. Zusammen mit Secure Boot und Measured Boot entsteht so eine Kette von der Firmware bis zur einzelnen ausgeführten Datei. Ohne TPM wäre dieses Logbuch fälschbar, mit TPM nicht.

                                                                                                              Verschlüsselte Server, die allein neu starten können

                                                                                                              Operativ ist das der handfesteste Nutzen im Rechenzentrum. Ein verschlüsselter Server, der nach einem Reboot auf eine Passphrase wartet, ist ein Betriebsproblem, spätestens um drei Uhr nachts. Mit TPM-Bindung startet er durch. Der Zielkonflikt dahinter ist eine echte Architekturentscheidung.

                                                                                                              • TPM allein. Der Server startet ohne Menschen. Wer den ganzen Server stiehlt, bekommt einen Server, der sich selbst entsperrt.
                                                                                                              • Tang und Clevis, netzgebunden. Entsperrt nur, wenn der Server einen Tang-Server im eigenen Netz erreicht. Aus dem Rack getragen bleibt er zu. Braucht dafür einen erreichbaren Tang-Server, was beim Kaltstart eines ganzen Rechenzentrums ein Henne-Ei-Problem ist.
                                                                                                              • Beides kombiniert über Shamir Secret Sharing in Clevis, also zum Beispiel TPM und Tang zusammen.

                                                                                                              Meine Empfehlung, und die ist unspektakulär: im eigenen Rack mit eigenem Netz nehmt Tang plus TPM über Clevis, weil dann beide Bedingungen gleichzeitig gelten müssen. Bei einer einzelnen Kiste in fremder Colo nehmt TPM mit PIN und tippt die eben ein, wenn es tatsächlich einen Kaltstart gibt. Ein Server, der sich ohne jede Bedingung selbst entsperrt, ist Verschlüsselung fürs Protokoll und nicht gegen einen Angreifer.

                                                                                                              Maschinenidentität, die man nicht in eine VM klonen kann

                                                                                                              Ein Schlüssel der die Maschine nicht verlassen kann ist eine Identität, die man nicht mitkopieren kann. Für Zero-Trust-Architekturen ist das der interessante Teil: SPIRE hat dafür einen TPM-Node-Attestor, und für Kubernetes-Knoten, die sich beim Beitritt beweisen sollen, ist das der saubere Weg. Verglichen mit einem Token in einer Cloud-Init-Datei, das jeder mitlesen und in eine beliebige VM kopieren kann, ist das ein anderes Sicherheitsniveau.

                                                                                                              Ein TPM für jede VM, und was er nicht leistet

                                                                                                              Ein physischer TPM hat genau eine Instanz und lässt sich nicht sinnvoll auf viele Gäste aufteilen. Die Lösung ist ein virtueller TPM pro VM. swtpm stellt dafür eine TPM-2.0-Implementierung im Userspace bereit, QEMU und libvirt binden sie als Gerät in die VM ein. Der Gast sieht ein ganz normales /dev/tpm0 und braucht keine Anpassung. Der Kernel bringt dazu den vTPM-Proxy-Treiber mit, /dev/vtpmx, über den Container und VMs eigene TPM-Instanzen bekommen. Genau so machen es die Cloud-Anbieter, und genau so kommt Windows 11 in einer VM überhaupt an seine TPM-2.0-Voraussetzung.

                                                                                                              Die ehrliche Einordnung gehört dazu, weil das in Cloud-Architekturen regelmäßig falsch verstanden wird. Ein vTPM ist Software. Sein Zustand liegt als Datei auf dem Hypervisor. Wer den Hypervisor kontrolliert, kontrolliert den vTPM, und ein Angreifer mit root auf dem Host kann den Schlüsselzustand kopieren. Ein vTPM löst also das Problem „der Gast braucht ein TPM-Interface“, er liefert aber keine Hardware-Vertrauenswurzel für den Gast. Wer echte Attestierung einer VM will, braucht eine Kette, die beim TPM des Hosts beginnt, oder Confidential-Computing-Technik wie AMD SEV-SNP oder Intel TDX.

                                                                                                              Zum Schluss noch ein kleiner Anwendungsfall, der technisch nichts Neues ist und praktisch viel bringt: die Datenbank-Zugangsdaten eines Dienstes so versiegeln, dass sie nur auf dieser Maschine und nur in diesem Bootzustand aufgehen. Derselbe Seal-Mechanismus wie oben, nur mit einem anderen Geheimnis. Ein kopiertes Image oder eine in eine VM gehobene Platte bringt die Zugangsdaten dann nicht mit.

                                                                                                              Was geht, aber nichts bringt

                                                                                                              Dieser Abschnitt ist mir genauso wichtig wie der Nutzen-Teil, also kürze ich ihn nicht ab. Zuerst das Missverständnis, das sich am leichtesten messen lässt.

                                                                                                              1. Der TPM als Krypto-Beschleuniger. Gemessen und erledigt.

                                                                                                              Operation

                                                                                                              Wo

                                                                                                              Zeit

                                                                                                              RSA-2048-Schlüssel erzeugen

                                                                                                              TPM

                                                                                                              19,703 s

                                                                                                              RSA-2048-Schlüssel erzeugen

                                                                                                              CPU, openssl

                                                                                                              0,220 s

                                                                                                              ECC-P-256-Primary erzeugen

                                                                                                              TPM

                                                                                                              0,537 s

                                                                                                              ECDSA P-256 signieren, 50 mal

                                                                                                              TPM

                                                                                                              4,862 s

                                                                                                              ECDSA P-256 signieren, 50 mal

                                                                                                              CPU, openssl

                                                                                                              0,286 s

                                                                                                              # time tpm2_createprimary -C o -g sha256 -G rsa2048 -c rsa_primary.ctx
                                                                                                              real	0m19.703s
                                                                                                              user	0m0.039s
                                                                                                              sys	0m0.016s
                                                                                                              
                                                                                                              # time openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out /dev/null
                                                                                                              real	0m0.220s
                                                                                                              user	0m0.210s
                                                                                                              sys	0m0.010s

                                                                                                              Rund 90 mal langsamer bei der RSA-Schlüsselerzeugung. Ein Detail zur Messhygiene ist mir dabei wichtig: während der 19,7 Sekunden liegen user und sys bei 0,039 und 0,016 Sekunden. Die CPU langweilt sich also, die Zeit vergeht wirklich im Chip. Das ist eine Messung des TPM und nicht des Prozess-Overheads.

                                                                                                              Die richtige Schlussfolgerung ist nicht, dass der TPM schlecht wäre, sondern dass er kein Beschleuniger ist und nie einer war. Das ist die interessante Kehrseite zu der Krypto-Beschleunigerkarte, die ich neulich gegen dieselbe Klasse moderner CPU gemessen habe. Dort verlor Spezial-Hardware, die schnell sein wollte. Hier verliert sie noch deutlicher, nur ist das kein Befund, sondern die Bauart. Der TPM wollte nie schnell sein, er wollte stur sein.

                                                                                                              2. Massendaten im TPM verschlüsseln. Es gibt keinen Datenpfad dafür, und bei den Zahlen von oben erübrigt sich die Diskussion.

                                                                                                              3. LUKS nur am TPM, ohne PIN. Technisch drei Minuten Arbeit. Ergebnis ist ein Notebook, das sich für jeden entsperrt, der den Deckel aufmacht. In Kombination mit dem Bus-Sniffing weiter unten ist das nahe an Sicherheitstheater. Wer die Passphrase-Eingabe loswerden will, nimmt die PIN.

                                                                                                              4. Der TPM als Passwortspeicher oder Secret Store. Ein einzelner NV-Index kann auf diesem Chip höchstens 1664 Bytes halten, und es gibt genau 8 NV-Zähler. NV im TPM ist Flash mit begrenzten Schreibzyklen und als Ablage für Inhalte nicht gedacht. Der richtige Weg ist immer derselbe: die Geheimnisse liegen verschlüsselt auf der Platte, und nur der Schlüssel dafür wird im TPM versiegelt. Genau das tun systemd-cryptenroll und Clevis auch.

                                                                                                              5. Sealing gegen PCR 0 bis 7 auf einem Gerät, das Firmware-Updates bekommt. Jedes BIOS-Update ändert die Messungen und sperrt euch aus. Ein Fall, in dem die Technik funktioniert und die Betriebspraxis daran zerbricht. Der Ausweg heißt signierte Policies und systemd-pcrlock, und im selben Atemzug gehört dazu, dass sich systemd-pcrlock selbst noch als experimentell bezeichnet.

                                                                                                              6. Attestierung ohne unabhängigen Prüfer. Ein Quote, das auf derselben Maschine geprüft wird, beweist nichts. Wenn die Maschine übernommen ist, ist die Prüfung übernommen. Attestierung ergibt nur mit einem separaten Verifier und mit bekannten Referenzwerten Sinn. Sehr viele Aussagen der Art „wir nutzen TPM“ sind bei genauem Hinsehen genau das, eine Selbstprüfung.

                                                                                                              7. TPM 1.2 im Jahr 2026. SHA-1 und RSA-2048, kein ECC, keine Algorithmen-Agilität, ein völlig anderer Software-Stack, nämlich TrouSerS statt tpm2-tss. Wer noch einen findet, sollte darauf nichts Neues bauen.

                                                                                                              8. Die Erwartung, ein TPM schütze ein laufendes System. Das ist das größte Missverständnis, deshalb steht es hier noch einmal als eigener Punkt. Ein TPM schützt Schlüssel im Ruhezustand und misst den Start. Er tut nichts gegen einen Angreifer, der schon im Kernel sitzt, denn der fragt den Chip einfach ganz normal.

                                                                                                              Fünf häufige Vorhaben und die kurze Antwort dazu.

                                                                                                              Die Grenzen, und die Angriffe die es wirklich gibt

                                                                                                              Ohne diesen Abschnitt wäre der Beitrag Werbung. Der Kern des Problems bei diskreten Chips ist unangenehm einfach: nach dem Entsiegeln gibt der TPM das Geheimnis über den Bus heraus, und klassisch liegt es dort im Klartext. Wer LPC oder SPI anzapft, liest den Schlüssel mit. Für BitLocker ist das seit Jahren praktisch demonstriert, und es ist ausdrücklich nicht auf Windows beschränkt. Securitum hat im September 2024 in einem echten Penetrationstest genau das gegen ein Linux-System mit LUKS und Clevis gezeigt.

                                                                                                              Das betrifft mein Testsystem direkt, und ich schreibe das lieber offen hin, als es zu verstecken: der SLB 9670 ist ein diskreter Chip auf dem Board. Der Angriff braucht physischen Zugriff und Löterfahrung, aber er ist kein Papier-Szenario.

                                                                                                              Die Gegenmaßnahme kann TPM 2.0 von sich aus: Sessions mit HMAC-Absicherung und Parameter-Verschlüsselung, und systemd benutzt das inzwischen. Die Grenze davon wird oft zu großzügig beschrieben, deshalb genau: das ist keine Vollverschlüsselung des Bus-Protokolls. Parameter Encryption schützt gezielt einzelne sensible Parameter in Kommandos und Antworten, also genau die Stelle, an der ein entsiegelter Schlüssel herauskäme. Kommandocodes, Handles und die übrigen Parameter bleiben sichtbar. Gegen das passive Mitlesen des Schlüssels ist es wirksam, gegen Verkehrsanalyse nicht, und gegen einen aktiven Interposer hilft es nur insofern, als die HMAC-Absicherung Manipulationen auffallen lässt. Der Kernel hat zu dieser Interposer-Frage eine eigene Dokumentationsseite. Und noch eine Einschränkung, die systemd selbst dokumentiert: die Art der Einbindung entwickelt sich weiter, alte Enrollments profitieren nicht rückwirkend. Wer vor Jahren enrolliert hat, sollte das neu machen.

                                                                                                              Und dann eine Ironie, die zeigt wie dünn das Eis ist: CVE-2023-1017 saß genau in CryptParameterDecryption, also in dem Code, der diese verschlüsselten Parameter auspackt. Die Schutzfunktion war selbst der Angriffsweg.

                                                                                                              Wer jetzt denkt, ein fTPM in der CPU sei automatisch besser, hat nur andere Probleme. faulTPM hat gezeigt, dass sich AMDs fTPM über Spannungs-Glitching am Platform Security Processor angreifen lässt. Und TPM-Fail demonstrierte 2019 Timing-Seitenkanäle, mit denen sich private ECDSA-Schlüssel rekonstruieren ließen, und zwar aus Intel PTT (CVE-2019-11090) und aus dem ST33 von STMicroelectronics (CVE-2019-16863). Zwei Details daran tragen den Punkt: der lokale Angriff auf Intels fTPM brauchte je nach Zugriffsrechten 4 bis 20 Minuten, und der ST33 trug eine Common-Criteria-Zertifizierung nach EAL 4+, die Schutz gegen Seitenkanäle ausdrücklich einschließt. Ein Zertifikat ist also kein Beweis.

                                                                                                              Auch die Referenz-Implementierung selbst hatte Löcher. CVE-2023-1017 war ein Out-of-bounds-Write, CVE-2023-1018 ein Out-of-bounds-Read, beide in der TPM-2.0-Module-Library, also im Referenzcode der TCG. Betroffen waren dadurch gleichzeitig Software-TPMs wie libtpms und eine Reihe von Hardware-TPMs, deren Firmware auf diesem Code aufbaut. Gefunden hat sie Quarkslab und meldete sie im November 2022. Zwei Bytes über den Puffer hinaus, im ungünstigen Fall Codeausführung im TPM-Kontext, also genau in dem Bauteil, dessen einzige Aufgabe es ist, eine Vertrauensgrenze zu ziehen.

                                                                                                              Was bleibt also unterm Strich: ein TPM hebt die Messlatte von „Platte ausbauen und kopieren“ auf „an das Board löten oder den SoC glitchen“. Das ist ein echter Fortschritt und kein magischer Schild. Mit PIN wird es deutlich stärker, weil dann die Lockout-Logik greift und Bus-Sniffing allein nicht mehr reicht.

                                                                                                              Der Zustand dieses Testsystems, unbequem und aufschlussreich

                                                                                                              Und jetzt der Teil, der mir selbst am meisten zu denken gibt. Der Chip in diesem Notebook arbeitet einwandfrei, wie alles hier oben zeigt. Benutzt wird er von diesem System für praktisch nichts.

                                                                                                              Baustein

                                                                                                              Zustand

                                                                                                              Secure Boot

                                                                                                              aus, und als 00 in PCR 7 gemessen

                                                                                                              Wurzel-Dateisystem

                                                                                                              ZFS-Native-Encryption, aes-256-gcm, nirgends LUKS

                                                                                                              systemd-cryptenroll

                                                                                                              vorhanden, systemd 255.4, ohne LUKS2 aber nutzlos

                                                                                                              clevis

                                                                                                              nicht installiert, würde hier auch nicht helfen

                                                                                                              Unified Kernel Image

                                                                                                              nicht im Einsatz

                                                                                                              systemd-pcrextend.socket

                                                                                                              übersprungen, ConditionSecurity=measured-uki nicht erfüllt

                                                                                                              systemd-pcrmachine.service

                                                                                                              übersprungen, dieselbe Bedingung

                                                                                                              systemd-tpm2-setup-early.service

                                                                                                              übersprungen, dieselbe Bedingung

                                                                                                              die elf systemd-pcrlock-*-Units

                                                                                                              alle disabled

                                                                                                              TPM als /dev/hwrng

                                                                                                              aktiv, tpm-rng-0

                                                                                                              Die drei übersprungenen Units sind der interessanteste Eintrag in dieser Tabelle. Die Bedingung ConditionSecurity=measured-uki prüft nicht das Dateiformat, sondern den Bootweg. Weil dieses System nicht als gemessenes Unified Kernel Image über systemd-stub gestartet ist, überspringt systemd die halbe TPM-Infrastruktur einfach lautlos, ohne Fehler und ohne Warnung. Das ist genau die These aus der Einleitung, jetzt belegt: der Chip ist da, er funktioniert, und die Distribution benutzt ihn nicht.

                                                                                                              Der Event-Log, und die Falle mit ls

                                                                                                              Zum Abschluss noch eine Kleinigkeit, über die ich zuerst gestolpert bin. Der Event-Log, dessen Adresse die Firmware ganz oben in der ersten dmesg-Zeile übergeben hat, liegt im securityfs. Und ls behauptet, die Datei sei leer.

                                                                                                              # ls -la /sys/kernel/security/tpm0/
                                                                                                              total 0
                                                                                                              -r--r----- 1 root tss 0 Aug 10 09:30 binary_bios_measurements
                                                                                                              
                                                                                                              # tpm2_eventlog /sys/kernel/security/tpm0/binary_bios_measurements | grep -c EventNum
                                                                                                              120

                                                                                                              Null Bytes laut ls, und trotzdem 120 Events darin. securityfs gibt für diese Datei einfach keine Größe an. Was in den 120 Einträgen steckt, sortiert sich so:

                                                                                                              # tpm2_eventlog /sys/kernel/security/tpm0/binary_bios_measurements | grep EventType | sort | uniq -c | sort -rn
                                                                                                                   81   EventType: EV_IPL
                                                                                                                   12   EventType: EV_EFI_VARIABLE_BOOT
                                                                                                                    8   EventType: EV_SEPARATOR
                                                                                                                    5   EventType: EV_EFI_VARIABLE_DRIVER_CONFIG
                                                                                                                    3   EventType: EV_EFI_ACTION
                                                                                                                    2   EventType: EV_POST_CODE
                                                                                                                    2   EventType: EV_EVENT_TAG
                                                                                                                    2   EventType: EV_EFI_BOOT_SERVICES_APPLICATION
                                                                                                                    1   EventType: EV_S_CRTM_VERSION
                                                                                                                    1   EventType: EV_NO_ACTION
                                                                                                                    1   EventType: EV_EFI_VARIABLE_AUTHORITY
                                                                                                                    1   EventType: EV_EFI_HANDOFF_TABLES
                                                                                                                    1   EventType: EV_EFI_GPT_EVENT

                                                                                                              Der lehrreichste Eintrag im ganzen Log ist aber die Nummer 2, weil er ein abstraktes Konzept in vier Zeilen greifbar macht.

                                                                                                              - EventNum: 2
                                                                                                                PCRIndex: 7
                                                                                                                EventType: EV_EFI_VARIABLE_DRIVER_CONFIG
                                                                                                                DigestCount: 2
                                                                                                                Digests:
                                                                                                                - AlgorithmId: sha1
                                                                                                                  Digest: "57cd4dc19442475aa82743484f3b1caa88e142b8"
                                                                                                                - AlgorithmId: sha256
                                                                                                                  Digest: "115aa827dbccfb44d216ad9ecfda56bdea620b860a94bed5b7a27bba1c4d02d8"
                                                                                                                  UnicodeName: SecureBoot
                                                                                                                  VariableData: "00"

                                                                                                              Da steht der Secure-Boot-Zustand meiner Maschine als 00 im Log, und gehasht wandert genau dieser Wert in PCR 7. Das ist die Brücke zwischen dem Firmware-Setup und dem Chip: was ihr im BIOS umschaltet, wird gemessen und landet im TPM. Schaltet Secure Boot ein, und PCR 7 ändert sich. Alles, was gegen PCR 7 versiegelt war, geht danach nicht mehr auf. Wer den Zusammenhang einmal so gesehen hat, versteht auch, warum die Wahl der PCRs weiter oben ein Zielkonflikt ist und keine Geschmacksfrage.

                                                                                                              Eine Nebenbemerkung, weil sie so schön zeigt, wie Secure-Boot-PKI in der Praxis funktioniert: im Log steckt auch der Platform Key des Boards, ein „Fujitsu ODM Quanta BIOS PK Certificate“, gültig von August 2012 bis August 2022. Es ist also seit Jahren abgelaufen. Die Firmware interessiert sich nicht dafür.

                                                                                                              Was offen bleibt

                                                                                                              • Ob der SLB 9670 auf diesem Board über LPC oder über SPI angebunden ist. Aus dem Betriebssystem heraus nicht entscheidbar.
                                                                                                              • Warum der Login über PKCS11Provider rund 1,3 Sekunden Aufschlag kostet, ist plausibel erklärt, aber nicht einzeln nachgemessen. Ein strace oder ein Trace über tpm2_ptool würde es belegen.
                                                                                                              • systemd-cryptenroll mit LUKS2 konnte ich nicht testen, weil hier kein LUKS existiert.
                                                                                                              • Keylime habe ich nicht aufgesetzt. Die Beschreibung stützt sich auf Dokumentation von SUSE, Red Hat und dem Keylime-Projekt.
                                                                                                              • Die Bindung des Attestierungsschlüssels an den zertifizierten EK, also TPM2_MakeCredential und TPM2_ActivateCredential, habe ich nicht durchgeführt. Gemessen sind nur Quote und Signaturprüfung.
                                                                                                              • Wie viel NV-Speicher der SLB 9670 insgesamt hat, habe ich nicht ermittelt. NV_INDEX_MAX beantwortet diese Frage nicht.
                                                                                                              • Kein vTPM aufgesetzt. Der Abschnitt dazu ist dokumentiert und nicht gemessen.
                                                                                                              • Ob verschlüsselte TPM-Sessions Bus-Sniffing auf diesem konkreten Chip vollständig verhindern, habe ich nicht überprüft. Dafür bräuchte es einen Logic Analyzer.
                                                                                                              • Ein TPM-gestütztes Entsperren einer ZFS-Native-Encryption-Wurzel habe ich nicht gebaut.
                                                                                                              • Wie sich PCR 7 auf diesem Gerät nach dem Aktivieren von Secure Boot verändert. Das wäre ein naheliegender zweiter Teil.

                                                                                                              Siehe auch

                                                                                                              Wenn ich hier etwas falsch dargestellt habe, oder wenn ihr einen der offenen Punkte schon gelöst habt, dann korrigiert mich gerne. Dann lerne ich selbst etwas. Ihr dürft mich dazu jederzeit fragen.

                                                                                                              Und weil mich das wirklich interessiert: setzt ihr den TPM-Chip selbst ein, ignoriert ihr ihn bisher, oder nutzt ihr ihn eher zufällig?

                                                                                                              mmu_man boosted

                                                                                                              [?]Paolo Amoroso » 🌐
                                                                                                              @amoroso@oldbytes.space

                                                                                                              Can you recommend Linux tools for extracting the text of scanned, OCRed PDFs?

                                                                                                                [?]Camille Roux » 🌐
                                                                                                                @camilleroux@mastodon.social

                                                                                                                Dembrandt : extrait le design system d'un site en une commande, couleurs, typo, ombres, logo. Export en tokens W3C, intégration MCP pour Claude Code ou Cursor, suivi du drift via CI. ⬇️
                                                                                                                github.com/dembrandt/dembrandt

                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Duf

                                                                                                                Dembrandt est un outil qui convertit automatiquement le design d'un site web en tokens de design réutilisables, permettant d'extraire couleurs, typographies, bordures et autres éléments visuels en une seule commande.

                                                                                                                Alt...Dembrandt est un outil qui convertit automatiquement le design d'un site web en tokens de design réutilisables, permettant d'extraire couleurs, typographies, bordures et autres éléments visuels en une seule commande.

                                                                                                                  [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                                                  @Steve12L@mamot.fr

                                                                                                                  ⋅ Multiplier par 4 et en 4 ans l’adoption de Linux chez le particulier !

                                                                                                                  − linuxfr.org/news/multiplier-pa

                                                                                                                    [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                    @gamingonlinux@mastodon.social

                                                                                                                    AodeRelay boosted

                                                                                                                    [?]iX Magazin » 🌐
                                                                                                                    @iX_Magazin@social.heise.de

                                                                                                                    heise+ | Softwarelieferkette: "Bill of Behavior" als Packungsbeilage für Container

                                                                                                                    Die Software Bill of Behavior (SBOB) beschreibt das Laufzeitverhalten von Software präskriptiv – als signierte Absichtserklärung des Herstellers.

                                                                                                                    heise.de/hintergrund/Softwarel

                                                                                                                      AodeRelay boosted

                                                                                                                      [?]LinuxNews.de » 🌐
                                                                                                                      @linuxnews@social.anoxinon.de

                                                                                                                      AodeRelay boosted

                                                                                                                      [?]LinuxNews.de » 🌐
                                                                                                                      @linuxnews@social.anoxinon.de

                                                                                                                      [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                      @gamingonlinux@mastodon.social

                                                                                                                      [?]Camille Roux » 🌐
                                                                                                                      @camilleroux@mastodon.social

                                                                                                                      Posta : plateforme d'envoi et de réception d'e-mails self-hosted, alternative à SendGrid ou Mailgun. API HTTP, templates versionnés, gestion des bounces, tracking, campagnes, webhooks inbound, sans dépendre d'un tiers pour votre infrastructure mail. ⬇️
                                                                                                                      github.com/goposta/posta

                                                                                                                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-3Fx

                                                                                                                      Tableau de bord de Posta, une plateforme d'envoi d'e-mails auto-hébergée, affichant des statistiques clés : 579 e-mails envoyés, un taux de livraison de 88,1%, ainsi que des graphiques de volume d'envoi et des métriques de webhooks avec un taux de succès de 100%.

                                                                                                                      Alt...Tableau de bord de Posta, une plateforme d'envoi d'e-mails auto-hébergée, affichant des statistiques clés : 579 e-mails envoyés, un taux de livraison de 88,1%, ainsi que des graphiques de volume d'envoi et des métriques de webhooks avec un taux de succès de 100%.

                                                                                                                        [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                        @gamingonlinux@mastodon.social

                                                                                                                        [?]ValK. 🐚 🦣 Proxy d'UHTG. » 🌐
                                                                                                                        @ValK@piaille.fr

                                                                                                                        Tails a réparé une faille de sécurité critique du noyau Linux. Cette faille permettait à un site internet de désanonymiser un·e utilisateur·ice utilisant Tails. Il est donc urgent de mettre à jour sa version de Tails à 7.10.1

                                                                                                                        stuut.info/Tech-Une-grave-fail

                                                                                                                        AodeRelay boosted

                                                                                                                        [?]Steven Saus [he/him] » 🌐
                                                                                                                        @StevenSaus@faithcollapsing.com

                                                                                                                        Fix, Find, And Generate Contact Avatars On Linux Without (You) Using AI

                                                                                                                        Both introducing a useful script and talking about harm reduction with AI use.

                                                                                                                        Archive: ia: s.faithcollapsing.com/y26ho

                                                                                                                        -ml
                                                                                                                        ideatrash.net/2026/08/fix-find

                                                                                                                        Fix, Find, And Generate Contact Avatars On Linux Without (You) Using AI

                                                                                                                        Alt...Fix, Find, And Generate Contact Avatars On Linux Without (You) Using AI

                                                                                                                          AodeRelay boosted

                                                                                                                          [?]Marcel Stritzelberger » 🌐
                                                                                                                          @marzlberger@neander.social

                                                                                                                          "Almost There Games" has released the Ruff (Ruff´N Tumble) for and

                                                                                                                          This looks amazing!
                                                                                                                          It requires legally obtained original game disks!

                                                                                                                          almost-there-games.itch.io/ruff

                                                                                                                          Level overview

                                                                                                                          Alt...Level overview

                                                                                                                            [?]vermaden » 🌐
                                                                                                                            @vermaden@mastodon.bsd.cafe

                                                                                                                            New 𝗙𝗿𝗲𝗲𝗕𝗦𝗗 𝗦𝘁𝗼𝗿𝗮𝗴𝗲 𝗳𝗼𝗿 𝗢𝗽𝗲𝗻𝗦𝗵𝗶𝗳𝘁 𝘄𝗶𝘁𝗵 𝗗𝗲𝗺𝗼𝗰𝗿𝗮𝘁𝗶𝗰 𝗖𝗦𝗜 [FreeBSD Storage for OpenShift with Democratic CSI] article on vermaden.wordpress.com blog.

                                                                                                                            vermaden.wordpress.com/2026/08

                                                                                                                              AodeRelay boosted

                                                                                                                              [?]Dark*:*Star :antifa: » 🌐
                                                                                                                              @2ndStar@astronomy.social

                                                                                                                              Wusstet ihr das Nordkorea eine eigene Linux-Distro entwickelt hat, namens Red Star OS?
                                                                                                                              Ist als iso-Datei zum Download verfügbar ... wenn wer sich traut :-)

                                                                                                                                AodeRelay boosted

                                                                                                                                [?]Marcel Stritzelberger » 🌐
                                                                                                                                @marzlberger@neander.social

                                                                                                                                unter mit

                                                                                                                                Da war einfach:
                                                                                                                                ```
                                                                                                                                sudo apt install steam-installer
                                                                                                                                steam
                                                                                                                                ```

                                                                                                                                Quake installieren
                                                                                                                                Starten

                                                                                                                                Quake ingame

                                                                                                                                Alt...Quake ingame

                                                                                                                                  [?]Alain MICHEL 🤓 » 🌐
                                                                                                                                  @alainmi11@mamot.fr

                                                                                                                                  @tanavit @sebsauvage @jenesuispersonne @marnic

                                                                                                                                  Mouais... je vais éviter de faire des trucs hasardeux.

                                                                                                                                  Je suis sous depuis plus de 15 ans, je n'ai jamais eu de gros plantage ni vu de BSOD Linux depuis qu'il existe, et je vis très bien avec.
                                                                                                                                  😂

                                                                                                                                    [?]Alain MICHEL 🤓 » 🌐
                                                                                                                                    @alainmi11@mamot.fr

                                                                                                                                    @sebsauvage @jenesuispersonne @marnic
                                                                                                                                    J'ai jamais eu / vu de BSOD de sur mes ordis...
                                                                                                                                    🤨

                                                                                                                                      AodeRelay boosted

                                                                                                                                      [?]Jay 🚩 :runbsd: » 🌐
                                                                                                                                      @jaypatelani@bsd.network

                                                                                                                                      AodeRelay boosted

                                                                                                                                      [?]joany » 🌐
                                                                                                                                      @joany@mastodon.bsd.cafe

                                                                                                                                      champion's. I need some inspiration.

                                                                                                                                      -LAN on or to connect two sites?

                                                                                                                                      Except the man pages I also like to hear how you have done it

                                                                                                                                        Nore715 boosted

                                                                                                                                        [?]Nicolas Delsaux » 🌐
                                                                                                                                        @Riduidel@framapiaf.org

                                                                                                                                        Il semble que ce logiciel fasse sous Linux ce que fait l'excellent Spacedesk ... Ca n'est évidement pas si simple, mais je pense que ça mérite d'être testé. github.com/adiimanav/moreland

                                                                                                                                          [?]Tomáš » 🌐
                                                                                                                                          @prahou@merveilles.town

                                                                                                                                          can't sleep

                                                                                                                                          Surrealchan can't sleep. She invokes the Fossangel by a prayer. It appears.

Fossangel: "I heard a prayer... You wanted to ask something?"

Surrealchan: "Fossangel, why do AI generated penguins have human hands?"

Fossangel: "Are you fucking serious?"

Surrealchan: "I guess..."

Fossangel: "Do you have an idea how much power is wasted on me answering to such a meaningless prayer?"

Surrealchan: "Nowhere close to generating a penguin?"

Fossangel: "Smartass."

                                                                                                                                          Alt...Surrealchan can't sleep. She invokes the Fossangel by a prayer. It appears. Fossangel: "I heard a prayer... You wanted to ask something?" Surrealchan: "Fossangel, why do AI generated penguins have human hands?" Fossangel: "Are you fucking serious?" Surrealchan: "I guess..." Fossangel: "Do you have an idea how much power is wasted on me answering to such a meaningless prayer?" Surrealchan: "Nowhere close to generating a penguin?" Fossangel: "Smartass."

                                                                                                                                            AodeRelay boosted

                                                                                                                                            [?]katzenjens » 🌐
                                                                                                                                            @katzenjens@social.tchncs.de

                                                                                                                                            für alte Nischenprudukte und Interfaces? Nö, nun nicht mehr. Alle Treiber für ältere Hardware, welche keine mehr haben werden entfernt, wenn KI-Bugreports für eben diese eintreffen. Wobei in fast allen Fällen die Treiber keine Updates benötigen. Gleichschaltung durch KI. Leck mich am Arsch... 🤬
                                                                                                                                            phoronix.com/news/Linux-7.1-PR
                                                                                                                                            youtube.com/watch?v=8vDSSxaQ7ZU

                                                                                                                                              Martouf boosted

                                                                                                                                              [?]Séleste 🚲 🏳️‍⚧️🔧 » 🌐
                                                                                                                                              @missbullitt@masto.bike

                                                                                                                                              Il y a des expert.e.s débuggage ?
                                                                                                                                              Depuis quelques temps j'ai mon système qui rame avec un coeur en permanence au taquet et des IO stratosphériques. Même après une mise à jour du système sur une session qui ne lance rien (voir captures d'images).
                                                                                                                                              Le process coupable est kworker mais je ne sais pas ce qui lui fait avoir ce comportement.

                                                                                                                                              Capture d'écran de la commande htop où on voit le premier coeur à 98.7% d'utilisation alors que les 11 autres sont à 0 ou presque.
Il est aussi indiqué un uptime de 1min 16s

                                                                                                                                              Alt...Capture d'écran de la commande htop où on voit le premier coeur à 98.7% d'utilisation alors que les 11 autres sont à 0 ou presque. Il est aussi indiqué un uptime de 1min 16s

                                                                                                                                              Capture d'écran de la commande top où on voit 2 process : kworker/0:2+kacpid et irp/9-acpi qui à eux deux prennent 91% de CPU

                                                                                                                                              Alt...Capture d'écran de la commande top où on voit 2 process : kworker/0:2+kacpid et irp/9-acpi qui à eux deux prennent 91% de CPU

                                                                                                                                                AodeRelay boosted

                                                                                                                                                [?]𝗣𝗠𝗝 ⚫ » 🌐
                                                                                                                                                @pmj@social.pmj.rocks

                                                                                                                                                es müsste übrigens mal ne verbindliche konvention für benutzer konfigurationsdateien in geben - jedes programm, desktop und distro macht einfach wie's gerade lustig ist
                                                                                                                                                ich hab da irgend 2 duzend .directory in meinem home verzeichnis 🙄

                                                                                                                                                  AodeRelay boosted

                                                                                                                                                  [?]𝗣𝗠𝗝 ⚫ » 🌐
                                                                                                                                                  @pmj@social.pmj.rocks

                                                                                                                                                  ist schon ein feines, kleines tool

                                                                                                                                                  man kann vom aus den pc steuern und vom pc aus anrufe machen und sms lesen und schreiben

                                                                                                                                                  apps.kde.org/de/kdeconnect/

                                                                                                                                                    AodeRelay boosted

                                                                                                                                                    [?]-=Kernel-Error=- » 🌐
                                                                                                                                                    @kernel-error.de@www.kernel-error.de

                                                                                                                                                    Sieben Einstellungen, kein Setup-Besuch: die BIOS-Konfiguration meines Supermicro-Boards ändern

                                                                                                                                                    Im letzten Beitrag habe ich die BIOS-Konfiguration meines Boards als XML-Datei ausgelesen. Lesen ist die eine Hälfte. Diesmal schreibe ich zurück: sieben Einstellungen, ohne den Rechner auch nur einmal ins Setup zu booten. Warum ich genau diese sieben genommen habe, welche vier ich bewusst in Ruhe gelassen habe, drei Fallstricke, die mich Zeit gekostet haben, und die Frage, ob es dafür nicht einfach eine grafische Oberfläche gibt. [SENSITIVE CONTENT]

                                                                                                                                                    Im letzten Beitrag ging es darum, die BIOS-Einstellungen meines Supermicro X12SPi-TF überhaupt erst als Datei in die Hand zu bekommen. Das Ergebnis war eine XML mit 372 Einstellungen, und der Weg dorthin führte über eine Lizenz für 28,17 Euro.

                                                                                                                                                    Damit war die halbe Arbeit getan. Eine Konfiguration auslesen zu können ist schön, aber der eigentliche Gewinn liegt darin, sie auch zurückschreiben zu können. Genau das habe ich jetzt gemacht, und zwar zum ersten Mal überhaupt an dieser Maschine: sieben Einstellungen geändert, ohne den Rechner ins Setup zu booten, ohne Tastatur, ohne die Fernkonsole des Management-Controllers.

                                                                                                                                                    Vorweg die gute Nachricht für alle, die schon rechnen: die kleine Lizenz deckt das Schreiben mit ab. Ich hatte damit gerechnet, dass Supermicro genau an dieser Stelle noch einmal die Hand aufhält, und das tut es auch, aber nur an einer sehr kleinen Ecke. Von den 372 Einstellungen tragen 21 den Vermerk, dass sie die große Lizenz verlangen. Es sind ausschliesslich Zertifikatseinträge für KMIP-Server und HTTPS-Boot. Nichts davon betrifft normale Setup-Optionen.

                                                                                                                                                    Was ich ändern wollte, und warum

                                                                                                                                                    Der langweiligste Teil eines solchen Artikels ist die Liste der geänderten Werte. Der interessante Teil ist die Begründung, deshalb fange ich damit an.

                                                                                                                                                    Mein Rechner bootet von einer NVMe-SSD. Er hat das noch nie anders gemacht und wird es auch nicht. Trotzdem lädt das BIOS bei jedem Start die Pre-Boot-Netzwerktreiber für vier Netzwerkanschlüsse, jeweils für IPv4 und IPv6, und baut daraus Boot-Einträge, die niemand benutzt. Dazu kommen die Option-ROMs von drei leeren Steckplätzen.

                                                                                                                                                    Ein Option-ROM ist ein kleines Stück Firmware auf einer Steckkarte, das beim Start ins BIOS geladen wird, damit die Karte schon vor dem Betriebssystem funktioniert. Für eine Netzwerkkarte heisst das Netzwerk-Boot, für einen Speichercontroller das Booten von daran angeschlossenen Platten. Wer von keinem dieser Geräte bootet, braucht den Code nicht.

                                                                                                                                                    Also:

                                                                                                                                                    – Network Stack von *Enabled* auf *Disabled*. Damit fällt die komplette UEFI-Netzwerkinitialisierung weg. – Onboard LAN1 Option ROM aus. Der Pre-Boot-Treiber der onboard X550 wird nicht gebraucht. – CPU SLOT6 OPROM aus. Dort steckt meine X710. Dazu gleich mehr, das ist der eigentliche Grund für die Aktion. – CPU SLOT1, SLOT2 und SLOT7 OPROM aus. Alle drei Steckplätze sind leer.

                                                                                                                                                    Bei den drei leeren Steckplätzen bin ich ehrlich: der Zeitgewinn ist exakt null. Wo keine Karte steckt, gibt es auch kein Option-ROM zu laden. Ich habe sie trotzdem mitgenommen, weil ich einen dokumentierten Sollzustand haben will und nicht eine Mischung aus bewusst gesetzt und zufällig übrig.

                                                                                                                                                    Die siebte Änderung ist die, um die es mir wirklich ging.

                                                                                                                                                    Die eine Zeile, die eine Woche Rätselraten beendet hat

                                                                                                                                                    Beim Schreiben meiner BIOS-Serie ist mir etwas aufgefallen, das ich mir lange nicht erklären konnte. Mein Prozessor ist ein Xeon Gold 5315Y, Ice Lake-SP. Diese Generation beherrscht Hardware P-States, kurz HWP. Die CPU regelt ihren Takt dabei selbst, in feineren Stufen und deutlich schneller, als das Betriebssystem es könnte.

                                                                                                                                                    Nur meldete mein Kernel davon nichts. In /proc/cpuinfo fehlte das hwp-Flag, der Treiber intel_pstate lief im passiven Modus, und die Taktregelung machte der Governor schedutil. Also genau der Zustand, den man auf einer CPU erwartet, die HWP gar nicht kann.

                                                                                                                                                    Ich habe eine Weile in Richtung Kernel gesucht. Das war die falsche Richtung. Der Schalter sass im BIOS, ziemlich tief vergraben:

                                                                                                                                                    Advanced > CPU Configuration > Advanced Power Management Configuration
                                                                                                                                                            > Hardware PM State Control > Hardware P-States   [Disable]

                                                                                                                                                    Der Auslieferungszustand dieser Option ist tatsächlich *Disable*. Es gibt vier Werte, und der Hilfetext im BIOS beschreibt sie so:

                                                                                                                                                    Disable                              hardware will choose a P-state setting for
                                                                                                                                                                                         the system based on an OS request
                                                                                                                                                    Native Mode                          hardware will choose a P-state setting
                                                                                                                                                                                         based on OS guidance
                                                                                                                                                    Native Mode with No Legacy Support   hardware will choose a P-state setting
                                                                                                                                                                                         independently without OS guidance
                                                                                                                                                    Out of Band Mode                     hardware autonomously choose a P-state
                                                                                                                                                                                         without OS guidance

                                                                                                                                                    Ich habe Native Mode genommen, also die zahmste der drei aktiven Varianten. Der Unterschied zu den beiden anderen ist wichtig: bei *Native Mode* behält das Betriebssystem seinen Einfluss, es wandert nur die Feinsteuerung in die CPU. Bei den beiden anderen wird der Kernel bei der Taktwahl übergangen, und dann kann er dir auch nicht mehr sinnvoll sagen, was die CPU gerade tut.

                                                                                                                                                    Was ich bewusst nicht angefasst habe

                                                                                                                                                    Diese Liste finde ich wichtiger als die Liste der Änderungen, denn hier hätte ich mir den Rechner unbedienbar machen können.

                                                                                                                                                    Das Option-ROM von SLOT4 bleibt an. Dort sitzt die Grafikkarte. Ihr GOP-Modul ist das, was beim Start überhaupt ein Bild auf den Monitor bringt. Wer es abschaltet, sitzt bis zum Laden des Grafiktreibers im Dunkeln, und wenn dabei etwas schiefgeht, sitzt er dauerhaft im Dunkeln.

                                                                                                                                                    Onboard Video Option ROM bleibt an. Das ist die Grafik des Management-Controllers, und daran hängt die Fernkonsole. Schaltet man sie ab, bleibt beim Start das Fenster schwarz, über das man aus der Ferne ins Setup kommt. Das ist genau der Rettungsweg, den man sich nicht abschneiden will, wenn man gerade anfängt, das BIOS aus dem laufenden Betrieb heraus umzukonfigurieren.

                                                                                                                                                    Beide NVMe-Option-ROMs bleiben an. Das erste trägt das Betriebssystem. Auf das zweite soll irgendwann Windows, und auch wenn der Bootloader auf der ersten Platte das Kommando behält, muss die zweite dem Firmware-Bootmanager sichtbar bleiben.

                                                                                                                                                    Legacy USB Support bleibt an. Hier hätte ich vermutlich etwas Startzeit gewinnen können. Ich habe es gelassen, weil ich den Gewinn nicht gemessen habe und das Risiko eine tote Tastatur im Setup wäre. Eine Einstellung, deren Nutzen man nicht beziffern kann, deren Schaden aber konkret ist, ändert man nicht.

                                                                                                                                                    Der Weg: eine Teildatei, nicht die ganze

                                                                                                                                                    Naheliegend wäre, die ausgelesene XML zu bearbeiten und komplett zurückzuschreiben. Bei 372 Einstellungen und 260 Kilobyte ist das unnötig riskant, und es ist auch nicht der vorgesehene Weg.

                                                                                                                                                    Das Werkzeug kennt einen Filter, der genau die Einstellungen ausgibt, die vom Auslieferungszustand abweichen:

                                                                                                                                                    ./saa -c GetCurrentBiosCfg --file nondefault.xml --overwrite --filter nondefault

                                                                                                                                                    Heraus kommt eine kleine Datei mit derselben Struktur wie die grosse, nur eben mit den Menüzweigen, die auch wirklich etwas enthalten. Und genau diese Struktur nimmt das Schreibkommando entgegen. Teildateien sind also kein Trick, sondern der normale Betriebsfall.

                                                                                                                                                    Hier der erste Fallstrick, und der hat mich ehrlich geärgert: die eingebaute Hilfe des Werkzeugs beschreibt den Filter als Ziffer.

                                                                                                                                                    --filter    Sets filter type to: 1 = nondefault

                                                                                                                                                    Die Ziffer 1 wird abgewiesen. Das Kommando bricht ab und wirft den Hilfetext aus, der einem gerade die Ziffer empfohlen hat. Akzeptiert wird ausschliesslich das ausgeschriebene Wort nondefault. Wenn du also an dieser Stelle hängst, liegt es nicht an dir.

                                                                                                                                                    Meine Änderungsdatei habe ich nicht getippt, sondern mit einem kleinen Python-Skript aus dem Auslesestand erzeugt. Das klingt nach Übertreibung für sieben Werte, hat aber einen handfesten Grund: die Einstellungen müssen im richtigen Menüzweig stehen, und die Menünamen sind lang und fehleranfällig. CPU SLOT2 PCI-E 4.0 X8(IN X16) OPROM vertippt sich schneller, als man denkt, und ein Tippfehler im Namen führt nicht zu einer Fehlermeldung, sondern dazu, dass die Einstellung stillschweigend nicht gesetzt wird.

                                                                                                                                                    Das Schreiben selbst ist unspektakulär:

                                                                                                                                                    ./saa -c ChangeBiosCfg --file change-boot-oprom-hwp.xml
                                                                                                                                                    
                                                                                                                                                    Status: The BIOS configuration is updated for the managed system
                                                                                                                                                    Note: You have to reboot or power up the system for the changes to take effect.

                                                                                                                                                    Es gibt eine Option --reboot, die den Neustart gleich mit erledigt. Die habe ich weggelassen. Wann ein Rechner neu startet, entscheide ich lieber selbst.

                                                                                                                                                    Der zweite Fallstrick, und der ist gemein

                                                                                                                                                    Nach dem Schreiben will man natürlich nachsehen, ob es geklappt hat. Also dasselbe Auslesekommando noch einmal, und dann steht da:

                                                                                                                                                    Hardware P-States              = Disable     (geschrieben: Native Mode)
                                                                                                                                                    Network Stack                  = Enabled     (geschrieben: Disabled)
                                                                                                                                                    CPU SLOT6 PCI-E 4.0 X16 OPROM  = EFI         (geschrieben: Disabled)

                                                                                                                                                    Nichts. Alle alten Werte, unverändert.

                                                                                                                                                    Der erste Reflex ist, das Schreibkommando noch einmal laufen zu lassen. Tu das nicht. Das Auslesen liefert die aktive Konfiguration, und die ändert sich erst beim nächsten Start. Deine Änderung liegt so lange in einem Bereich, den das Werkzeug nicht anzeigt. Zwischen dem Schreiben und dem Neustart gibt es damit keine Möglichkeit, die Änderung zu überprüfen, ausser dem Rückgabewert des Kommandos.

                                                                                                                                                    Das ist unschön, aber es ist logisch. Die Einstellungen werden erst beim Start aus dem Speicher gelesen, und vorher gibt es schlicht nichts Aktives, das anders wäre.

                                                                                                                                                    Nach dem Neustart

                                                                                                                                                    Und dann stimmt alles. Die Zahl der Abweichungen vom Auslieferungszustand ist von sechs auf dreizehn gestiegen, also genau um meine sieben:

                                                                                                                                                    Quiet Boot                            Unchecked
                                                                                                                                                    Restore on AC Power Loss              Stay Off
                                                                                                                                                    Power Button Function                 4 Seconds Override
                                                                                                                                                    Hardware P-States                     Native Mode
                                                                                                                                                    Network Stack                         Disabled
                                                                                                                                                    Re-Size BAR Support                   Enabled
                                                                                                                                                    VGA Priority                          Offboard
                                                                                                                                                    CPU SLOT1 PCI-E 4.0 X8 OPROM          Disabled
                                                                                                                                                    CPU SLOT2 PCI-E 4.0 X8(IN X16) OPROM  Disabled
                                                                                                                                                    CPU SLOT6 PCI-E 4.0 X16 OPROM         Disabled
                                                                                                                                                    CPU SLOT7 PCI-E 4.0 X8 OPROM          Disabled
                                                                                                                                                    Onboard LAN1 Option ROM               Disabled
                                                                                                                                                    WHEA Support                          Disabled

                                                                                                                                                    Die Netzwerk-Booteinträge sind verschwunden, übrig bleibt der Bootloader und die eingebaute Shell:

                                                                                                                                                    BootCurrent: 000F
                                                                                                                                                    BootOrder: 000F,0001
                                                                                                                                                    Boot0001* UEFI: Built-in EFI Shell
                                                                                                                                                    Boot000F* ubuntu

                                                                                                                                                    Und der Punkt, um den es mir ging, ist eingetreten. Der Prozessor meldet jetzt Fähigkeiten, die er die ganze Zeit hatte:

                                                                                                                                                    $ grep -o ' hwp[_a-z]*' /proc/cpuinfo | sort -u
                                                                                                                                                     hwp
                                                                                                                                                     hwp_act_window
                                                                                                                                                     hwp_epp
                                                                                                                                                     hwp_pkg_req
                                                                                                                                                    
                                                                                                                                                    $ cat /sys/devices/system/cpu/intel_pstate/status
                                                                                                                                                    active

                                                                                                                                                    Der Treiber ist damit vom passiven in den aktiven Modus gewechselt. Was dabei kurz irritiert: der Governor heisst jetzt powersave statt schedutil, und das sieht nach einem Rückschritt aus. Ist es nicht. Bei intel_pstate im aktiven Modus ist powersave der Name für den Betrieb, bei dem die Hardware regelt. Wie sie das tut, steuert ein separater Wert:

                                                                                                                                                    $ cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
                                                                                                                                                    balance_performance

                                                                                                                                                    Die CPU geht im Leerlauf auf 800 MHz und hat den vollen Turbo bis 3600 MHz zur Verfügung. Genau so soll es sein.

                                                                                                                                                    Wichtig war mir noch die Gegenprobe, dass ich mir das Netzwerk nicht zerschossen habe. Die Karte, deren Option-ROM ich abgeschaltet habe, ist schliesslich die, über die diese Maschine am Netz hängt:

                                                                                                                                                    $ ethtool ens6f1np1 | grep -E 'Speed|Link detected'
                                                                                                                                                    	Speed: 10000Mb/s
                                                                                                                                                    	Link detected: yes

                                                                                                                                                    Unverändert. Das ist auch zu erwarten, denn der Treiber im laufenden Betrieb kommt aus dem Kernel und hat mit dem Option-ROM nichts zu tun. Das Option-ROM ist reiner Startcode. Trotzdem ist das der Punkt, an dem die meisten zögern, deshalb steht die Messung hier.

                                                                                                                                                    Ein Punkt ist noch offen, und den will ich nicht verschweigen: der ursprüngliche Anlass für das Abschalten von SLOT6 war eine Meldung auf der Treiberstatus-Seite im Setup, wo meine Netzwerkkarte seit einem Firmware-Update als *Failed* geführt wird. Ob die Meldung jetzt weg ist, kann ich von aussen nicht sehen. Das prüfe ich beim nächsten Setup-Besuch nach.

                                                                                                                                                    Gibt es dafür keine Oberfläche?

                                                                                                                                                    Diese Frage lag für mich die ganze Zeit im Raum, und die Antwort ist unbefriedigend.

                                                                                                                                                    Es gäbe einen herstellerneutralen Weg unter Linux. Der Kernel kennt eine Geräteklasse namens firmware-attributes, über die sich BIOS-Einstellungen als ganz normale Dateien lesen und schreiben lassen. Der Firmware-Updater fwupd kann das seit Version 1.8.4 direkt bedienen. Das wäre die Lösung: ein Kommando, egal welcher Hersteller.

                                                                                                                                                    Auf meiner Maschine sieht das so aus:

                                                                                                                                                    $ ls /sys/class/firmware-attributes/
                                                                                                                                                    ls: cannot access '/sys/class/firmware-attributes/': No such file or directory
                                                                                                                                                    
                                                                                                                                                    $ fwupdmgr get-bios-setting
                                                                                                                                                    This system doesn't support firmware settings

                                                                                                                                                    Das Hilfsmodul dafür liegt im Kernel, es ist also nicht so, dass die Infrastruktur fehlen würde:

                                                                                                                                                    /lib/modules/7.0.0-28-generic/kernel/drivers/platform/x86/firmware_attributes_class.ko.zst

                                                                                                                                                    Was fehlt, ist der Treiber des Herstellers. Der Kernel bringt genau drei mit:

                                                                                                                                                    drivers/platform/x86/dell/dell-wmi-sysman     Dell
                                                                                                                                                    drivers/platform/x86/lenovo/think-lmi         Lenovo
                                                                                                                                                    drivers/platform/x86/hp/hp-bioscfg            HP

                                                                                                                                                    Supermicro ist nicht dabei. Statt eines Treibers, der diese Kernel-Schnittstelle bedient, gibt es ein eigenes Werkzeug und eine Lizenz. Auf einem Dell oder Lenovo wäre der Inhalt dieses Beitrags ein Einzeiler ohne Zusatzkosten.

                                                                                                                                                    Ganz ohne Oberfläche ist man aber nicht. Das Werkzeug bringt einen textbasierten Editor mit, der das Setup im Terminal nachbaut:

                                                                                                                                                    ./saa -c GetCurrentBiosCfg --tui

                                                                                                                                                    Dazu gibt es --compact, das anschliessend nur die geänderten Zeilen herausschreibt. Über eine SSH-Pipe blieb das Fenster bei mir schwarz, es braucht ein echtes Terminal. Ausprobiert habe ich es deshalb noch nicht richtig. Und es gibt das Werkzeug ausserdem als Windows-Version und als Variante für die UEFI-Shell, also für den Fall, dass überhaupt kein Betriebssystem installiert ist.

                                                                                                                                                    Eine echte grafische Oberfläche gibt es auch, sie heisst SSM. Die will dann allerdings wieder die grosse Lizenz.

                                                                                                                                                    Zurück auf Anfang

                                                                                                                                                    Das Wichtigste zum Schluss, und man legt es sich besser vorher zurecht als hinterher. Vor dem Schreiben habe ich den vollständigen Stand weggesichert. Der Rückweg ist dann dasselbe Kommando mit dieser Datei:

                                                                                                                                                    ./saa -c ChangeBiosCfg --file bios-current-2026-08-09.xml

                                                                                                                                                    Als Notnagel gibt es darunter noch LoadDefaultBiosCfg, das alles auf den Auslieferungszustand zurücksetzt. Das ist aber ein grober Hebel: es wirft auch die sechs Abweichungen weg, die ich absichtlich eingestellt habe, und die stehen dann eben nicht mehr so, wie ich sie haben will. Die Teildatei ist der bessere Weg, der Vollreset die letzte Reserve.

                                                                                                                                                    Und weil es hier um Firmware geht, der offensichtliche Hinweis: bei einem Rechner, an den du nicht rankommst, änderst du keine Boot-Einstellungen, ohne dass jemand vor Ort ist oder die Fernkonsole zuverlässig läuft. Ich habe das Option-ROM der Grafik und das des Management-Controllers genau deshalb nicht angefasst.

                                                                                                                                                    Was bleibt

                                                                                                                                                    Sieben Einstellungen, ein Neustart, kein Setup-Besuch. Das klingt nach wenig, ändert aber die Arbeitsweise. BIOS-Einstellungen waren für mich bisher etwas, das man beim Aufbau einmal einstellt und danach ungern anfasst, weil jede Änderung einen Neustart mit Tastatur und Monitor bedeutet. Jetzt sind sie eine Datei, die ich versionieren, vergleichen und zurückspielen kann.

                                                                                                                                                    Der schönste Nebeneffekt war die Sache mit den Hardware P-States. Ich hatte das Verhalten meiner CPU wochenlang für eine Eigenheit des Kernels gehalten und in die falsche Richtung gesucht. Es war eine einzige Zeile in einem Menü, das vier Ebenen tief liegt und das ich beim Durchklicken nie geöffnet hatte. Eine durchsuchbare Datei aller 372 Einstellungen hätte mir das in dreissig Sekunden gezeigt.

                                                                                                                                                    Falls du auf demselben Board sitzt: das Auslesen ist der Beitrag davor, das Schreiben braucht keine weitere Lizenz, und die drei Stolperstellen sind der Filter, der nur als Wort funktioniert, die Gegenprobe, die vor dem Neustart nichts zeigt, und die Versuchung, mehr auf einmal zu ändern, als man beim nächsten Start noch reparieren kann.

                                                                                                                                                    Siehe auch: Achtundzwanzig Euro für eine Textdatei: die BIOS-Konfiguration meines Supermicro-Boards auslesen und die Serie BIOS erklärt.

                                                                                                                                                    Wenn dazu etwas unklar ist oder du es auf deinem Board anders erlebt hast, dürft ihr mich sehr gerne fragen.

                                                                                                                                                    AodeRelay boosted

                                                                                                                                                    [?]Lex Takuna » 🌐
                                                                                                                                                    @LexTakuna@burningboard.net

                                                                                                                                                    Da hat er mir gegeben!!

                                                                                                                                                    Mir geht's das Herz auf. Wenn man mit seinen Videos zu und solche Bauern fängt, hat man genau die Zielgruppe getriggert, die man wollte ;-)

                                                                                                                                                      AodeRelay boosted

                                                                                                                                                      [?]heise online » 🌐
                                                                                                                                                      @heiseonline@social.heise.de

                                                                                                                                                      heise+ | Framework Laptop 13 Pro: Modulares Notebook im Test

                                                                                                                                                      Framework macht beim Laptop 13 Pro einiges neu und bewirbt es als Alternative zum MacBook Pro. Wir haben das Notebook mit vorinstalliertem Ubuntu getestet.

                                                                                                                                                      heise.de/tests/Framework-Lapto

                                                                                                                                                        AodeRelay boosted

                                                                                                                                                        [?]iX Magazin » 🌐
                                                                                                                                                        @iX_Magazin@social.heise.de

                                                                                                                                                        heise+ | Linux fürs Firmennetz: Von Protokollstack bis Switch-Hardware

                                                                                                                                                        Nicht alle Distributionen eignen sich gleichermaßen: Routing-Stacks erweitern die Protokollunterstützung, Switching-Betriebssysteme steuern die Netzwerkhardware

                                                                                                                                                        heise.de/hintergrund/Linux-fue

                                                                                                                                                          AodeRelay boosted

                                                                                                                                                          [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™ » 🌐
                                                                                                                                                          @kubikpixel@chaos.social

                                                                                                                                                          «Neue Malware-Welle — Arch Linux blockiert AUR-Updates:
                                                                                                                                                          Erneut verbreitet sich Malware über Arch User Repositorys. Daher gibt es vorerst überhaupt keine Updates für AUR.»

                                                                                                                                                          Das Linux einfach per-se sicherer ist glauben keine vernüpftige Admins und doch viele Nutzer*innen aber sicherlich nicht alle.

                                                                                                                                                          🐧 heise.de/news/Neue-Malware-Wel

                                                                                                                                                            AodeRelay boosted

                                                                                                                                                            [?]dewomser » 🌐
                                                                                                                                                            @dewomser@social.tchncs.de

                                                                                                                                                            :tux:
                                                                                                                                                            Heute am am Dienstag 04.08.26 gibts wieder einen Linux User Stammtisch in Worms.

                                                                                                                                                            3 Rentner und 1 Server sind nicht genug.
                                                                                                                                                            Wir sind Studenten, Bachelor, Berufsanfänger und ich
                                                                                                                                                            Komm vorbei, und bring dich ein !
                                                                                                                                                            wolust.de

                                                                                                                                                            LUG in Worms trifft sich

                                                                                                                                                            Alt...LUG in Worms trifft sich

                                                                                                                                                              AodeRelay boosted

                                                                                                                                                              [?]AllAboutSecurity » 🌐
                                                                                                                                                              @allaboutsecurity@mastodon.social

                                                                                                                                                              Arch Linux sperrt AUR-Uploads nach Malware-Welle

                                                                                                                                                              Grund ist ein erneuter Angriff auf die Software-Lieferkette: Unbekannte hatten mehr als 100 Pakete manipuliert und darüber gezielt Schadsoftware verteilt, die Passwörter, Browserdaten und Krypto-Wallets ausliest.

                                                                                                                                                              all-about-security.de/arch-lin

                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                [?]PlayingTux » 🌐
                                                                                                                                                                @playingtux@mastodon.social

                                                                                                                                                                OpenLogi: open-source alternative to Logitech Options+ released in version v0.6.23 playingtux.com/en/articles/202

                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                  [?]LinuxNews.de » 🌐
                                                                                                                                                                  @linuxnews@social.anoxinon.de

                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                  [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™ » 🌐
                                                                                                                                                                  @kubikpixel@chaos.social

                                                                                                                                                                  «Lazyjournal vereinfacht den Zugriff auf Log-Dateien:
                                                                                                                                                                  Nur ein fauler Admin ist ein guter Admin. In diesem Sinne vereinfacht Lazyjournal die Arbeit mit Log-Dateien, indem es sie in einer TUI bündelt. Damit lassen sich Protokolle von lokalen und entfernten Rechnern unter einer Oberfläche gezielt anschauen, filtern und auswerten.»

                                                                                                                                                                  Ich muss zugeben, ich als TUI-Fanboy, dass ich noch nicht kenne obwohl dies was für mich ist.

                                                                                                                                                                  🦦 linuxnews.de/lazyjournal-verei

                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                    [?]LinuxNews.de » 🌐
                                                                                                                                                                    @linuxnews@social.anoxinon.de

                                                                                                                                                                    [?]Camille Roux » 🌐
                                                                                                                                                                    @camilleroux@mastodon.social

                                                                                                                                                                    pdf-inspector permet aux agents de traiter des PDFs sans attendre l'OCR : classification en ~20ms, extraction Markdown locale, 200 PDFs en 2,8s. Tables et graphiques bien gérés. Open source, écrit en Rust. ⬇️
                                                                                                                                                                    github.com/firecrawl/pdf-inspe

                                                                                                                                                                    📬 Ma veille dev de la semaine → l.camilleroux.com/veille-G49

                                                                                                                                                                      [?]Sohrab Behdani :freebsd: » 🌐
                                                                                                                                                                      @sohrab@mastodon.bsd.cafe

                                                                                                                                                                      After a grueling 2,000-hour nationwide internet shutdown in Iran, international connectivity has finally returned to the Parch Linux servers.

                                                                                                                                                                      This prolonged outage completely destroyed our SEO. Searching for our project yielded zero results for months, which took a massive toll on our visibility and progress. Now that we are back online, I am trying to figure out how to rebuild the lost trust of our international users and effectively promote the project again. Unfortunately, open-source news outlets have rarely covered us unless we directly request a feature.

                                                                                                                                                                      Despite these hurdles, I am incredibly relieved that the connection is restored and people outside of Iran can finally see our work once more.

                                                                                                                                                                      Hoping for freedom.

                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                        [?]Hiker » 🌐
                                                                                                                                                                        @hiker@akk.fedcast.ch

                                                                                                                                                                        Uff - ich hab es gewagt - mein Uralt-Laptop ThinkPad T460s hat das Upgrade auf Ubuntu 26.04 LTS überstanden. Noch nicht alles getestet, aber soweit laufen Dinge noch. 👍
                                                                                                                                                                        #linux #ubuntu

                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                          [?]dch :flantifa: :flan_hacker: » 🌐
                                                                                                                                                                          @dch@bsd.network

                                                                                                                                                                          a couple of months ago I worked on hooking github.com/apple/container up so it could run FreeBSD which is obviously far more useful to my community.

                                                                                                                                                                          This was a relatively trivial exercise involving adding an additional tty and abusing it with a JSON line protocol to exchange messages with a crappy little daemon.

                                                                                                                                                                          That worked enough, and was enough to nerd snipe much smarter people than me to look at doing it properly, using the VSOCK API.

                                                                                                                                                                          Here’s a nice article on doing that for with go - mdlayher.com/blog/linux-vm-soc

                                                                                                                                                                          Keep an eye out on CURRENT as other parts of this land for FreeBSD:

                                                                                                                                                                          ⁃ Danilo‘s original work freebsd.org/status/report-2024
                                                                                                                                                                          ⁃ Mina‘s work which I only just discovered codeberg.org/meena/vsock-tests & codeberg.org/meena/freebsd-src
                                                                                                                                                                          ⁃ Faraz‘s recent additions github.com/freebsd/freebsd-src & github.com/freebsd/freebsd-src

                                                                                                                                                                            Fred de CLX boosted

                                                                                                                                                                            [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                            @gamingonlinux@mastodon.social

                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                            [?]-=Kernel-Error=- » 🌐
                                                                                                                                                                            @kernel-error.de@www.kernel-error.de

                                                                                                                                                                            Achtundzwanzig Euro für eine Textdatei: die BIOS-Konfiguration meines Supermicro-Boards auslesen

                                                                                                                                                                            Mein Serverboard hat 372 Einstellungen im Setup. Ich wollte sie als Datei haben, nicht als Fotoserie. Drei Wege dorthin waren verschlossen, alle drei mit derselben Begründung. Diese Begründung nannte den Preis, und der lag bei 28,17 Euro. Was ich dafür bekommen habe, was weiterhin gesperrt bleibt, und warum ich vorher eine falsche Schlussfolgerung gezogen hatte. [SENSITIVE CONTENT]

                                                                                                                                                                            In meiner Serie BIOS erklärt arbeite ich mich durch das Setup eines Supermicro X12SPi-TF. Die Grundlage dafür war bisher eine Bildschirmaufnahme: ich bin durch alle Menüs gelaufen, habe das Video in Einzelbilder zerlegt und die Werte abgetippt. Das funktioniert, ist aber Handarbeit, und Handarbeit übersieht Dinge.

                                                                                                                                                                            Was ich eigentlich wollte, ist eine Datei. Eine Liste aller Optionen mit ihrem aktuellen Wert, maschinenlesbar, damit ich sie durchsuchen und mit einem späteren Stand vergleichen kann. Das Board kann das. Es rückt es nur nicht heraus.

                                                                                                                                                                            Drei Wege, drei Absagen

                                                                                                                                                                            Der erste Weg führt über Redfish, die HTTP-Schnittstelle des Management-Controllers. Der passende Endpunkt existiert, antwortet aber nicht mit Daten:

                                                                                                                                                                            GET /redfish/v1/Systems/1/Bios
                                                                                                                                                                            HTTP 403
                                                                                                                                                                            
                                                                                                                                                                            "MessageId": "SMC.1.0.OemLicenseNotPassed",
                                                                                                                                                                            "Message": "Not licensed to perform this request. The following licenses DCMS were needed"

                                                                                                                                                                            Der zweite Weg ist Supermicros eigenes Kommandozeilenwerkzeug. Es heißt inzwischen SAA, SuperServer Automation Assistant, und liegt dem BIOS-Paket bei. Es kann genau das, was ich suche, und arbeitet dabei nicht über das Netz, sondern direkt über die Firmware:

                                                                                                                                                                            ./saa -c GetCurrentBiosCfg --file bios-current.xml
                                                                                                                                                                            ExitCode 80
                                                                                                                                                                            Node product key is not activated.
                                                                                                                                                                            One of the node product key (SFT-OOB-LIC or SFT-DCMS-SINGLE) should be activated

                                                                                                                                                                            Der dritte Weg wäre, die UEFI-Variablen selbst zu lesen. Die liegen unter /sys/firmware/efi/efivars/, und tatsächlich gibt es dort Einträge, die nach BIOS-Einstellungen aussehen. Nur sind das undurchsichtige Datenblöcke ohne die Zuordnungstabelle des Boards. Man sieht Bytes, aber man weiß nicht, welches Byte welcher Menüpunkt ist.

                                                                                                                                                                            Drei unabhängige Wege, dieselbe Sperre. An dieser Stelle habe ich in meinen Notizen etwas geschrieben, das sich später als falsch herausstellte. Dazu komme ich am Ende.

                                                                                                                                                                            Zwei Lizenzen, und sie sind nicht dasselbe

                                                                                                                                                                            Lies die beiden Fehlermeldungen oben noch einmal nebeneinander. Sie verlangen nicht das Gleiche. Redfish nennt namentlich DCMS. SAA nennt SFT-OOB-LIC oder SFT-DCMS-SINGLE, also eine von zweien.

                                                                                                                                                                            Das ist der Punkt, an dem man leicht zu viel Geld ausgibt. Supermicro verkauft für diese Board-Generation zwei Lizenzen. Die kleine heißt Out of Band, kurz OOB. Die große heißt DCMS und kostet etwa das Fünffache. Wer nur die Fehlermeldung von Redfish liest, kauft DCMS. Wer die Fehlermeldung von SAA liest, merkt, dass es für seinen Zweck auch die kleine tut.

                                                                                                                                                                            Nebenbei taucht dieselbe Lizenz an einer Stelle auf, die ich nicht erwartet hätte. Im Handbuch zum Board stehen bei zwei Sicherheitseinstellungen, nämlich beim Abschalten der vorderen und der hinteren USB-Anschlüsse, die Worte *available for configuration if the SFT-DCMS-SINGLE license is installed*. Es fehlen also nicht nur Management-Schnittstellen. Es fehlen zwei Menüpunkte im Setup selbst.

                                                                                                                                                                            Warum man den Schlüssel nicht selbst baut

                                                                                                                                                                            Bei dieser Recherche stößt man unweigerlich auf ein Werkzeug auf GitHub, das Supermicro- Produktschlüssel behandelt. Für die Generationen 9 bis 11 kann es welche erzeugen, denn dort war der Schlüssel ein berechneter Wert über die MAC-Adresse des Management-Controllers.

                                                                                                                                                                            Für die zwölfte Generation, also mein Board, kann es das nicht, und das Projekt schreibt es selbst deutlich hin: dieses Format lässt sich mit dem Werkzeug prüfen, aber nicht erzeugen. Der Grund ist, dass Supermicro umgestellt hat. Der Schlüssel ist heute eine von Supermicro signierte Datei, und der Management-Controller prüft die Signatur gegen einen öffentlichen Schlüssel in seiner eigenen Firmware. Ohne den privaten Schlüssel des Herstellers entsteht da nichts Gültiges.

                                                                                                                                                                            Mein Board bestätigt das Format auf Nachfrage:

                                                                                                                                                                            Node Product Key Format..........JSON

                                                                                                                                                                            Damit ist die naheliegende Abkürzung nicht moralisch, sondern rechnerisch verschlossen. Man muss die Frage also wirklich beantworten.

                                                                                                                                                                            Der Kauf, und eine Überraschung beim Erzeugen

                                                                                                                                                                            Gekauft habe ich im Supermicro eStore. 23,67 Euro netto, 28,17 Euro brutto. Bei der Bestellung wählt man das Mainboard-Modell aus einer Liste, und mein X12SPi-TF steht darin. Das ist erwähnenswert, weil mehrere Händlerbeschreibungen dieser Lizenz nur X10 und X11 nennen. Diese Texte sind veraltet.

                                                                                                                                                                            Jetzt kommt der Teil, den ich falsch erwartet hatte. Ich dachte, ich kaufe und bekomme einen Schlüssel. So läuft es nicht. Man bekommt zunächst nur eine Zertifikatsnummer und die Aufforderung, den Schlüssel selbst zu erzeugen. Dafür meldet man sich im Store an, wählt die Bestellung aus und gibt an, für welches Gerät der Schlüssel gelten soll: entweder die MAC-Adresse des Management-Controllers oder die Seriennummer des Boards.

                                                                                                                                                                            Die Bindung an die Hardware entsteht also nicht beim Verkauf, sondern beim Käufer, im Moment des Erzeugens. Das ist konsequent, denn Supermicro weiß beim Verkauf ja gar nicht, in welchem Gerät die Lizenz landen soll. Es heißt aber auch, dass man sich vertippen kann, und dann hat man einen Schlüssel für ein Gerät, das es nicht gibt.

                                                                                                                                                                            Der Ablauf war zügig. Bestellbestätigung um 14:17, die Freigabe zum Erzeugen um 14:42, der fertige Schlüssel um 14:44, aktiv im Board um 14:46. Unter einer halben Stunde vom Klick bis zur Funktion, und die zugesagte Stunde war damit nicht zu optimistisch.

                                                                                                                                                                            Der Schlüssel selbst ist eine kleine Textdatei, benannt nach der MAC-Adresse, mit einem JSON-Objekt darin: Lizenzname, Ausstellungsdatum und eine lange Signatur. Mehr ist es nicht.

                                                                                                                                                                            Eine Kuriosität am Rande: die Mail mit dieser Textdatei trägt einen Ausfuhrhinweis der US-Regierung. Die Ware sei nur für das Bestimmungsland freigegeben und dürfe nicht weiterveräußert oder an Dritte weitergegeben werden. Das gilt hier für eine Datei von wenigen hundert Byte, deren einzige Wirkung darin besteht, in einem Verwaltungscontroller einen Menüpunkt sichtbar zu machen.

                                                                                                                                                                            Aktivieren

                                                                                                                                                                            Supermicro nennt vier Wege, den Schlüssel einzuspielen: die Weboberfläche des Management-Controllers, das Werkzeug SUM, die Verwaltungssoftware SSM und Redfish. Die Weboberfläche ist der ruhigste Weg, weil sie eine Bestätigungsseite hat, und bei einem Schlüssel, der genau einmal auf genau ein Gerät passt, will man die haben.

                                                                                                                                                                            Wer es lieber skriptet, findet die passenden Endpunkte im Management-Controller, und die sind auch ohne Lizenz erreichbar:

                                                                                                                                                                            POST /redfish/v1/Managers/1/LicenseManager/Actions/LicenseManager.ActivateLicense
                                                                                                                                                                            POST /redfish/v1/Managers/1/LicenseManager/Actions/LicenseManager.ClearLicense
                                                                                                                                                                            GET  /redfish/v1/Managers/1/LicenseManager/QueryLicense

                                                                                                                                                                            Die Abfrage danach gibt genau den Inhalt der Datei zurück, die man hochgeladen hat. Der Controller speichert den Schlüssel also unverändert und prüft ihn bei Bedarf.

                                                                                                                                                                            Das Kommando, auf das es ankommt

                                                                                                                                                                            Nach der Aktivierung meldet SAA einen anderen Zustand:

                                                                                                                                                                            Node Product Key Activated.......SFT-OOB-LIC
                                                                                                                                                                            Feature Toggled On...............Yes
                                                                                                                                                                            BMC Supports OOB BIOS Config.....Yes
                                                                                                                                                                            BIOS Supports OOB BIOS Config....Yes

                                                                                                                                                                            Und dasselbe Kommando, das vorher mit ExitCode 80 abgebrochen ist, läuft durch:

                                                                                                                                                                            ./saa -c GetCurrentBiosCfg --file bios-current.xml
                                                                                                                                                                            File "bios-current.xml" is created.

                                                                                                                                                                            Heraus kommt eine Datei von 260 Kilobyte mit 60 Menüs und 372 Einstellungen. Zum Vergleich: das offizielle Handbuch beschreibt 180 Optionen. Und die Datei enthält pro Eintrag mehr, als man im Setup sieht, nämlich zusätzlich den Auslieferungszustand und den Hilfetext:

                                                                                                                                                                            <Setting name="Quiet Boot" checkedStatus="Unchecked" type="CheckBox">
                                                                                                                                                                              <Information>
                                                                                                                                                                                <DefaultStatus>Checked</DefaultStatus>
                                                                                                                                                                                <Help>Enables or disables Quiet Boot option</Help>
                                                                                                                                                                              </Information>
                                                                                                                                                                            </Setting>

                                                                                                                                                                            Der Auslieferungszustand ist der eigentliche Gewinn. Damit sehe ich auf einen Blick, welche Einstellungen an dieser Maschine vom Werkszustand abweichen, und das ist genau die Liste, die man nach einem BIOS-Update wiederherstellen will.

                                                                                                                                                                            Zwei komplette Hauptmenüs standen darin, die ich beim Durchklicken schlicht nie geöffnet hatte. Und ein Untermenü, das ich in meinen Notizen als offene Lücke geführt habe, war vollständig enthalten. So viel zum Thema Handarbeit übersieht Dinge.

                                                                                                                                                                            Was die Lizenz nicht freischaltet

                                                                                                                                                                            Jetzt der ehrliche Teil, und der ist mir wichtiger als der Erfolg. Ich hatte vor dem Kauf drei Messungen aufgeschrieben, damit ich hinterher vergleichen kann. Drei von vier Erwartungen sind eingetroffen, und die vierte war die interessante.

                                                                                                                                                                            Der Redfish-Endpunkt, mit dem alles anfing, antwortet weiterhin mit 403 und verlangt weiterhin DCMS. Die kleine Lizenz öffnet den Weg über SAA und eben nicht den über Redfish. Wer also ausdrücklich die Netzwerkschnittstelle braucht, etwa weil er hunderte Server ohne Betriebssystem konfigurieren will, kommt um die große Lizenz nicht herum.

                                                                                                                                                                            Das hat eine Nebenwirkung, die ich nicht auf dem Zettel hatte. Der Firmware-Updater fwupd kann inzwischen mit Supermicros Redfish-Schnittstelle sprechen. Er sieht bei mir aber nur zwei von zwölf Firmware-Komponenten, und die beiden BIOS-Einträge fehlen. Der Grund ist, dass er zur Identifikation eines Geräts das Objekt lesen muss, das hinter genau diesem gesperrten Endpunkt liegt. Die Lizenz sperrt hier also nicht das Aktualisieren, sondern das Erkennen, und das Aktualisieren scheitert dann als Folge. Nach der Aktivierung sind es unverändert zwei von zwölf.

                                                                                                                                                                            Und der dritte Weg, den ich vorher gar nicht gesehen hatte: fwupd sieht den BIOS-Speicher auch ganz direkt am Chipsatz, liest die Version korrekt aus und verweigert trotzdem den Dienst:

                                                                                                                                                                            Internal SPI Controller (BIOS):
                                                                                                                                                                                Aktuelle Version: 2.5
                                                                                                                                                                                Probleme:         Device firmware has been locked

                                                                                                                                                                            Das ist keine Lizenzsache, und daran hat sich erwartungsgemäß nichts geändert. Der Speicher ist auf Chipsatzebene schreibgeschützt, weil das Board mit aktivem Root of Trust läuft. Ein BIOS, das sich aus einem laufenden Betriebssystem heraus überschreiben lässt, wäre genau die Lücke, die dieser Schutz verhindern soll. Der Reflex sagt hier Hersteller blockiert Linux. Tatsächlich blockiert eine Sicherheitsfunktion, die ich selbst haben will.

                                                                                                                                                                            Mein Denkfehler

                                                                                                                                                                            Bleibt der Satz, den ich weiter oben angekündigt habe. In meinen Notizen stand nach der dritten Absage sinngemäß: drei unabhängige Wege, dieselbe Sperre, nicht erneut versuchen.

                                                                                                                                                                            Gemessen hatte ich: ohne Lizenz gibt es keinen Weg. Aufgeschrieben hatte ich: es gibt keinen Weg. Und die dritte Möglichkeit, nämlich die Lizenz einfach zu kaufen, kam in meiner Aufzählung der drei gesperrten Wege überhaupt nicht vor, obwohl das Werkzeug sie mir wörtlich genannt hatte.

                                                                                                                                                                            Dass drei Wege an derselben Sperre scheitern, beweist, dass es eine Sperre gibt. Es beweist nicht, dass sie unüberwindbar ist. Wenn eine Fehlermeldung den Namen der fehlenden Berechtigung nennt, ist das ein Hinweis und kein Schlusspunkt.

                                                                                                                                                                            Lohnt sich das?

                                                                                                                                                                            Für einen einzelnen Rechner zu Hause: nur, wenn man Freude daran hat. Ich hätte die Werte auch weiter abschreiben können, und der Screencast hat mir immerhin eine fünfzehnteilige Serie eingebracht, die aus einer XML-Datei nie entstanden wäre. Man liest eine Datei nicht so aufmerksam wie ein Menü, durch das man sich selbst klicken muss.

                                                                                                                                                                            Für alles, was mehr als eine Handvoll Maschinen betrifft, sieht es anders aus. Konfiguration auslesen, versionieren, nach einem Update wieder einspielen und im Zweifel gegen einen bekannten Stand vergleichen, das ist bei 28 Euro pro Board keine Diskussion. Ärgerlich finde ich nur, dass man diese Rechnung überhaupt aufmachen muss. Es geht um das Auslesen der eigenen Einstellungen auf der eigenen Hardware.

                                                                                                                                                                            Wenn du auf demselben Board sitzt und dieselbe Fehlermeldung vor dir hast, ist die Kurzfassung: für die Konfiguration reicht die kleine Lizenz, für Redfish brauchst du die große, und für Firmware-Updates brauchst du bei einem X12 mit Root of Trust vermutlich gar keine.

                                                                                                                                                                            Siehe auch: BIOS erklärt, Teil 1: ein Serverboard als Workstation und der Weg ins Setup und die übrigen Folgen unter BIOS & Firmware.

                                                                                                                                                                            Wenn dazu etwas unklar ist oder du es auf deinem Board anders erlebt hast, dürft ihr mich sehr gerne fragen.

                                                                                                                                                                            Fred de CLX boosted

                                                                                                                                                                            [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                            @gamingonlinux@mastodon.social

                                                                                                                                                                            [?]Camille Roux » 🌐
                                                                                                                                                                            @camilleroux@mastodon.social

                                                                                                                                                                            Alexandrie : wiki self-hosted open source à déployer en une commande Docker, avec un éditeur Markdown étendu (LaTeX, diagrammes, blocs personnalisés), gestion multi-équipes, SSO OIDC et backups S3. PWA offline-first, fonctionne sans dépendance cloud. ⬇️
                                                                                                                                                                            github.com/Smaug6739/Alexandrie

                                                                                                                                                                            📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Qi6

                                                                                                                                                                              [?]Camille Roux » 🌐
                                                                                                                                                                              @camilleroux@mastodon.social

                                                                                                                                                                              Kaneo : un outil de gestion de projet open source (MIT) pensé pour rester hors du chemin. Interface minimaliste, self-hosted, déploiement via Docker Compose ou en une commande avec le CLI drim. 4 000 étoiles sur GitHub. ⬇️
                                                                                                                                                                              github.com/usekaneo/kaneo

                                                                                                                                                                              📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Vey

                                                                                                                                                                              Capture d'écran de l'interface de Kaneo, un outil open source de gestion de projet, affichant un tableau Kanban avec des colonnes "To Do", "In Progress", "In Review" et "Done", accompagné du slogan "All you need. Nothing you don't."

                                                                                                                                                                              Alt...Capture d'écran de l'interface de Kaneo, un outil open source de gestion de projet, affichant un tableau Kanban avec des colonnes "To Do", "In Progress", "In Review" et "Done", accompagné du slogan "All you need. Nothing you don't."

                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                [?]dewomser » 🌐
                                                                                                                                                                                @dewomser@social.tchncs.de

                                                                                                                                                                                Mein Computerzirkus mit
                                                                                                                                                                                3.) Medion Akoya E2228T mit Touch von 2017.
                                                                                                                                                                                360° umklappbar. Akku ausreichend, CPU schwach, RAM schwach, für mobilen Einsatz z.B. Wolust

                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                  [?]Lioh » 🌐
                                                                                                                                                                                  @Lioh@social.anoxinon.de

                                                                                                                                                                                  Das Team von Anoxinon hat ganze Arbeit geleistet und den Mastodon Server wieder in einen funktionsfähigen Zustand gebracht. Lange hat es gedauert bis der ganze Queue abgearbeitet wurde, doch nun ist es so weit. Ich freue mich euch wieder von hier aus mit frischen News zu und mehr zu versorgen. Folgt mir auch auf PeerTube wenn ihr direkt über neue Videos von mir informiert werden möchtet: tube.sp-codes.de/c/tuxwiz/vide

                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                    [?]Larvitz :fedora: » 🌐
                                                                                                                                                                                    @Larvitz@burningboard.net

                                                                                                                                                                                    [?]Camille Roux » 🌐
                                                                                                                                                                                    @camilleroux@mastodon.social

                                                                                                                                                                                    superfile : un gestionnaire de fichiers pour le terminal, construit avec Go et Bubble Tea. Panneaux multiples, recherche fuzzy, prévisualisation d'images, thèmes (Catppuccin, Nord, Dracula…), plugins. Open source, MIT. ⬇️
                                                                                                                                                                                    superfile.dev/

                                                                                                                                                                                    📬 Ma veille dev de la semaine → l.camilleroux.com/veille-iB7

                                                                                                                                                                                    Capture d'écran de **Superfile**, un gestionnaire de fichiers moderne pour terminal, affichant une interface multi-panneaux avec arborescence de fichiers et code source Go, sur fond sombre.

                                                                                                                                                                                    Alt...Capture d'écran de **Superfile**, un gestionnaire de fichiers moderne pour terminal, affichant une interface multi-panneaux avec arborescence de fichiers et code source Go, sur fond sombre.

                                                                                                                                                                                      [?]Camille Roux » 🌐
                                                                                                                                                                                      @camilleroux@mastodon.social

                                                                                                                                                                                      usbtree : visualiser l'arbre de périphériques USB dans le terminal, sans root, sans libusb. Binaire statique en Rust, moins de 2 Mo. Sur Linux, on obtient en plus des métriques d'activité en temps réel par device (URBs/s, et bytes/s via usbmon en root). ⬇️
                                                                                                                                                                                      github.com/gnomeria/usbtree

                                                                                                                                                                                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-3Ha

                                                                                                                                                                                      Alt...Capture d'écran de l'outil en ligne de commande **usbtree**, un moniteur USB en interface TUI (terminal) développé en Rust, affichant l'arborescence des périphériques USB connectés (hub, clavier Keychron K8, souris MX Master 3S, webcam HD Pro C920, etc.) avec leurs métriques de bande passante en temps réel.

                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                        [?]Radio_Azureus » 🌐
                                                                                                                                                                                        @Radio_Azureus@ioc.exchange

                                                                                                                                                                                        Signal updates like this are nice.

                                                                                                                                                                                        I installed it again on my desktop

                                                                                                                                                                                        signal.org/blog/linked-devices

                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                          [?]Hacker News » 🤖 🌐
                                                                                                                                                                                          @h4ckernews@mastodon.social

                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                          [?]Lioh » 🌐
                                                                                                                                                                                          @Lioh@social.anoxinon.de

                                                                                                                                                                                          Früher haben wir lange Listings aus Computerzeitschriften abgetippt. Heute macht man das wohl von T-Shirts.

                                                                                                                                                                                          Was da wohl rauskommt?

                                                                                                                                                                                          uniqlo.com/nl/en/products/E480

                                                                                                                                                                                          Ein T-Shirt mit base64 encodeten Inhalt.

                                                                                                                                                                                          Alt...Ein T-Shirt mit base64 encodeten Inhalt.

                                                                                                                                                                                            DamonHD boosted

                                                                                                                                                                                            [?]Nicolas Hoizey » 🌐
                                                                                                                                                                                            @nhoizey@mamot.fr

                                                                                                                                                                                            Less than an hour later, MX Linux — a lightweight distro — is running smoothly on my 11-inch MacBook Air from 2010, I'm impressed! 🤩

                                                                                                                                                                                            Photo of my 11-inch MacBook Air running on MX Linux, with Firefox open on my Mastodon instance, with my previous post

                                                                                                                                                                                            Alt...Photo of my 11-inch MacBook Air running on MX Linux, with Firefox open on my Mastodon instance, with my previous post

                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                              [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                              @gnulinux@social.anoxinon.de

                                                                                                                                                                                              Zum Wochenende: Die Shortstory

                                                                                                                                                                                              Was haltet ihr von der Idee, bei uns gelegentlich Kurzgeschichten zu lesen? Könnt ihr euch selbst vorstellen, bei diesem Format mitzuwirken?

                                                                                                                                                                                              gnulinux.ch/zum-wochenende-die

                                                                                                                                                                                                [?]Camille Roux » 🌐
                                                                                                                                                                                                @camilleroux@mastodon.social

                                                                                                                                                                                                CCapture.js v2.0 capture des animations canvas à framerate fixe sans que le rendu temps réel ne fausse le résultat. Rewrite finalisé avec ES modules, WebCodecs et motion blur GPU. ⬇️
                                                                                                                                                                                                github.com/spite/ccapture.js

                                                                                                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-HWE

                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                  [?]Michael » 🌐
                                                                                                                                                                                                  @mkleger@swissodon.ch

                                                                                                                                                                                                  Über 600'000 gebannte IPs auf einem Forgejo-System. Was zunächst nur als dauerhaft hohe CPU-Last in Checkmk auffiel, entpuppte sich als massiver Crawler-Traffic.

                                                                                                                                                                                                  Mit Log-Analyse und gezielten Fail2Ban-Jails konnten wir die Zugriffe automatisiert blockieren. Die CPU-Last fiel danach drastisch.

                                                                                                                                                                                                  Den technischen Ablauf habe ich im Blog festgehalten:
                                                                                                                                                                                                  onesystems.ch/blog/wie-monitor

                                                                                                                                                                                                    [?]Dublin Linux Community » 🌐
                                                                                                                                                                                                    @dublinlinux@mastodon.ie

                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                    [?]dewomser » 🌐
                                                                                                                                                                                                    @dewomser@social.tchncs.de


                                                                                                                                                                                                    Gerade wieder neu der (Zwischenablage) hat Aktion. Mit etwas grep und Bash-Geschick kann man sich eine Videodownloader basteln. zB. Eine URL direkt an yt-dlp schicken. 😃 👍
                                                                                                                                                                                                    userbase.kde.org/Klipper/de

                                                                                                                                                                                                      mmu_man boosted

                                                                                                                                                                                                      [?]Camille Roux » 🌐
                                                                                                                                                                                                      @camilleroux@mastodon.social

                                                                                                                                                                                                      MorphoHDL : un langage minimaliste pour faire "pousser" des circuits booléens par division cellulaire plutôt que par câblage manuel. ⬇️
                                                                                                                                                                                                      paradigms-of-intelligence.gith

                                                                                                                                                                                                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-jns

                                                                                                                                                                                                        Debacle boosted

                                                                                                                                                                                                        [?]AlexxC » 🌐
                                                                                                                                                                                                        @AlexxandroiD@mamot.fr

                                                                                                                                                                                                        Installation de sur le OnePlus6t mais cette fois avec comme DE.
                                                                                                                                                                                                        A tester ce week-end 😄

                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                          [?]c't Magazin » 🌐
                                                                                                                                                                                                          @ct_Magazin@social.heise.de

                                                                                                                                                                                                          heise+ | FAQ: Desinfec’t 2026

                                                                                                                                                                                                          Wir haben Desinfec’t 2026 vollständig überarbeitet. Hier bündeln wir die Antworten auf häufig gestellte Fragen.

                                                                                                                                                                                                          heise.de/ratgeber/FAQ-Desinfec

                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                            [?]🏳️‍🌈 | Schenkl | 🦄 » 🌐
                                                                                                                                                                                                            @schenklklopfer@chaos.social

                                                                                                                                                                                                            Suche ein UI, das mit merkwürdigen Auflösungen zurecht kommt.

                                                                                                                                                                                                            480 x 1920

                                                                                                                                                                                                            Mint und ist leider raus.

                                                                                                                                                                                                            Ist da vielleicht das UI der Wahl?

                                                                                                                                                                                                            Eins zufällig damit Erfahrung?

                                                                                                                                                                                                            Will nur einen Bowser haben, der mir anzeigt, so wie im Bild.

                                                                                                                                                                                                            Kleiner Hochkant Monitor, der Gauges aus HASS anzeigt

                                                                                                                                                                                                            Alt...Kleiner Hochkant Monitor, der Gauges aus HASS anzeigt

                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                              [?]Verfassungklage@troet.cafe » 🌐
                                                                                                                                                                                                              @Verfassungklage@troet.cafe

                                                                                                                                                                                                              - & einfach erklärt (inkl. USB-Stick einbinden!)

                                                                                                                                                                                                              Du steigst gerade bei ein und verstehst die nicht? Welcher Ordner macht was? Wo liegt mein -Stick? Und was bedeutet dieses ominöse / (Root) eigentlich? 🐧

                                                                                                                                                                                                              In diesem Video bringen wir endlich Licht ins Dunkel! Wir schauen uns die - verständlich an und demonstrieren das Ganze direkt am praktischen Beispiel: Einem USB-Stick.

                                                                                                                                                                                                              youtube.com/watch?v=UhTZn7ydhhQ

                                                                                                                                                                                                                [?]Camille Roux » 🌐
                                                                                                                                                                                                                @camilleroux@mastodon.social

                                                                                                                                                                                                                scriptc : un compilateur TypeScript-to-native par Vercel Labs, pas de Node, pas de V8 dans le binaire. Le même TypeScript que vous écrivez pour Node, compilé en exécutable natif de 170 Ko, démarrage en 2 ms, 1 à 4 Mo de RAM. ⬇️
                                                                                                                                                                                                                github.com/vercel-labs/scriptc

                                                                                                                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-wVT

                                                                                                                                                                                                                Capture d'écran du dépôt GitHub **vercel-labs/scriptc**, un compilateur TypeScript vers code natif, affichant 5 contributeurs, 3 issues, 1k étoiles et 12 forks, accompagné du logo Vercel (triangle blanc sur fond noir).

                                                                                                                                                                                                                Alt...Capture d'écran du dépôt GitHub **vercel-labs/scriptc**, un compilateur TypeScript vers code natif, affichant 5 contributeurs, 3 issues, 1k étoiles et 12 forks, accompagné du logo Vercel (triangle blanc sur fond noir).

                                                                                                                                                                                                                  [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                  @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                  MiniDebConf Winterthur - Debian macht Schule!

                                                                                                                                                                                                                  Am 29. und 30. August 2026 findet die MiniDebConf Winterthur statt. Veranstaltungsort ist der „CAMPO“ in Winterthur.

                                                                                                                                                                                                                  gnulinux.ch/minidebconf-winter

                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                    [?]Janek helps indie games [He/him] » 🌐
                                                                                                                                                                                                                    @hardpenguin13@mastodon.gamedev.place

                                                                                                                                                                                                                    Imagine not supporting Linux gaming in 2026. Every game no matter how new and advanced gets Steam Deck Verified status these days and yet League of Legends or Fortnite or EA Sports FC or Call of Duty have this arbitrary thing blocking out an increasingly significant percentage of players. It's getting more ridiculous with each month.

                                                                                                                                                                                                                      nicolas boosted

                                                                                                                                                                                                                      [?]elekis :verified: » 🌐
                                                                                                                                                                                                                      @elekis@mamot.fr

                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                      [?]Johannes » 🌐
                                                                                                                                                                                                                      @jom@social.kontrollapparat.de

                                                                                                                                                                                                                      Boosts willkommen: Ein Kleinunternehmen sucht IT Betreuung.

                                                                                                                                                                                                                      Setup: 1 Server, 6 PCs/Laptops, Windows und Linux gemischt, Fernzugriff, Benutzer und Berechtigungen, ERP, Backup.

                                                                                                                                                                                                                      Gesucht ist kein Großanbieter, sondern ein kleines Team mit persönlicher Betreuung. Vor Ort im Raum Nürnberg wäre ideal.

                                                                                                                                                                                                                      Kennt jemand jemanden? Gerne per DM.

                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                        [?]dewomser » 🌐
                                                                                                                                                                                                                        @dewomser@social.tchncs.de


                                                                                                                                                                                                                        Wenn man beim merkt, dass es ein wenig hakt, kann man die Quelle auch mehrfach kontaktieren. kann das.
                                                                                                                                                                                                                        Ein Kommando mit mehreren Parametern um einen Server zu starten und eine Firefoxerweiterung dazu.
                                                                                                                                                                                                                        gist.github.com/dewomser/65162

                                                                                                                                                                                                                          [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                                                                                                                                                          @Steve12L@mamot.fr

                                                                                                                                                                                                                          ⋅ Your favorite Linux distro probably descends from one of these three operating systems

                                                                                                                                                                                                                          − makeuseof.com/favorite-linux-d

                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                            [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                            @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                            Tastenkombinationen in der Desktop-Umgebung

                                                                                                                                                                                                                            Der Artikel beschreibt, wie ich mit Tastenkombinationen z. B. Anwendungen in den Vordergrund hole bzw. starte. Grundlage sind ein sehr einfaches Bash-Skript und die Einstellungsmöglichkeiten der Desktop-Umgebung.

                                                                                                                                                                                                                            gnulinux.ch/tastenkombinatione

                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                              [?]Jon S. von Tetzchner » 🌐
                                                                                                                                                                                                                              @jon@social.vivaldi.net

                                                                                                                                                                                                                              RE: social.vivaldi.net/@Vivaldi/11

                                                                                                                                                                                                                              Another unique @Vivaldi service. Enjoy!

                                                                                                                                                                                                                              Taggart :ifin: boosted

                                                                                                                                                                                                                              [?]Vivaldi Browser » 🌐
                                                                                                                                                                                                                              @Vivaldi@social.vivaldi.net

                                                                                                                                                                                                                              We've been working on a fun little project for a while and we'd love to welcome you to take the first look at it:

                                                                                                                                                                                                                              Everyone, this is our newest community service: Vivaldi Radio.
                                                                                                                                                                                                                              Vivaldi Radio, this is the fediverse!! :tony_wee:

                                                                                                                                                                                                                              Vivaldi Radio is a free radio streaming service where you can discover radio stations from all over the world without being tracked, just like how radio used to be. No popups, no suggestions. Just you and the music.

                                                                                                                                                                                                                              This is a work in progress, we're still adding stations and polishing things, but we’re excited to hear about your first impressions and improvement suggestions. ❤️

                                                                                                                                                                                                                              Visit radio.vivaldi.net to start exploring! 🎧

                                                                                                                                                                                                                              radio.vivaldi.net

                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                  [?]KaiXin » 🌐
                                                                                                                                                                                                                                  @kaixin@snac.bsd.cafe

                                                                                                                                                                                                                                  Any or expert on fedi? I heard a lot about it and few days ago when I spotted a new release of the 9front and there was images, I started to look at it. However I never get the session to work. I am starting the by:

                                                                                                                                                                                                                                  qemu-system-x86_64 \
                                                                                                                                                                                                                                  -machine q35 -enable-kvm \
                                                                                                                                                                                                                                  -m 2g -cpu host \
                                                                                                                                                                                                                                  -vga std \
                                                                                                                                                                                                                                  -drive "media=disk,if=virtio,file=$HOME/Downloads/9front-11952.amd64.qcow2" \
                                                                                                                                                                                                                                  -netdev user,id=vioif0,hostfwd=tcp::5699-:22 \
                                                                                                                                                                                                                                  -device virtio-net-pci,netdev=vioif0 \
                                                                                                                                                                                                                                  -no-reboot \
                                                                                                                                                                                                                                  -daemonize
                                                                                                                                                                                                                                  my host system is running on . The error message after login with glenda was not very informative though:

                                                                                                                                                                                                                                  hjfs: fs is /dev/sd00/fs

                                                                                                                                                                                                                                  init: starting /bin/rc
                                                                                                                                                                                                                                  bind: : no frame buffer
                                                                                                                                                                                                                                  rio: cannot open display: initdisplay: /dev/draw/new: file does not exist: '/dev/draw'
                                                                                                                                                                                                                                  init: rc exit status: rc 217: rio 326: display open
                                                                                                                                                                                                                                  init: starting /bin/rc


                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                    [?]KDE » 🌐
                                                                                                                                                                                                                                    @kde@floss.social

                                                                                                                                                                                                                                    "This Quarter in KDE " brings the news that...

                                                                                                                                                                                                                                    Automated testing for , and KDE's suite of PIM apps (email, calendars, contacts, etc.) has been boosted; the work that will automatically configure accounts is under way; users will be able to restore data from Btrfs snapshots from apps like Dolphin; and much more.

                                                                                                                                                                                                                                    blogs.kde.org/2026/08/06/this-

                                                                                                                                                                                                                                    @sovtechfund

                                                                                                                                                                                                                                    A laptop showing KDE Plasma and the KDE logo superimposed on it.

Image of laptop kindly provided by Kubuntu Focus/KFocus and distributed under a CC By-SA license.

                                                                                                                                                                                                                                    Alt...A laptop showing KDE Plasma and the KDE logo superimposed on it. Image of laptop kindly provided by Kubuntu Focus/KFocus and distributed under a CC By-SA license.

                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                      [?]Minetosh 🇪🇺 🇩🇪 🇨🇵 🐧 🎶 🤘 » 🌐
                                                                                                                                                                                                                                      @Minetosh@ieji.de

                                                                                                                                                                                                                                      [?]Monospace Mentor » 🌐
                                                                                                                                                                                                                                      @monospace@floss.social

                                                                                                                                                                                                                                      🚨LIVE NOW!🚨 DevOps/SRE Instructor Livestream

                                                                                                                                                                                                                                      On this lovely Thursday, let's chat about , , or any other topic in the and space you're interested in!

                                                                                                                                                                                                                                      Owncast: live.monospacementor.com/

                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                        [?]dewomser » 🌐
                                                                                                                                                                                                                                        @dewomser@social.tchncs.de


                                                                                                                                                                                                                                        Schmierblatt, ein Einzeiler. Kann man wunderbar mit einem Alias ins .bashrc einbauen.
                                                                                                                                                                                                                                        cat << eof > notiz_$(date '+%Y_%m_%d_%H_%M_%S').txt
                                                                                                                                                                                                                                        gist.github.com/dewomser/c5e7a

                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                          [?]r1w1s1 » 🌐
                                                                                                                                                                                                                                          @r1w1s1@snac.bsd.cafe

                                                                                                                                                                                                                                          Finding out what a program is doing on Linux often means remembering several ps options and piping the result through grep.

                                                                                                                                                                                                                                          With px, it can be as simple as:

                                                                                                                                                                                                                                          ./px -t cwm

                                                                                                                                                                                                                                          PID USER %CPU VSZ RSS START ELAPSED CPUTIME COMMAND
                                                                                                                                                                                                                                          15077 r1w1s1 0.0 64M 9.1M 10:16 5h33m 0:00 /usr/bin/cwm

                                                                                                                                                                                                                                          The -t option displays threads as well, making it easy to see which one is using CPU and how long the process has been running.

                                                                                                                                                                                                                                          px does not try to replace ps, top, or htop. It focuses on one common daily task: finding a process quickly and getting useful information without memorizing complex options or using grep.

                                                                                                                                                                                                                                          px firefox
                                                                                                                                                                                                                                          px -f "python app"
                                                                                                                                                                                                                                          px 11690
                                                                                                                                                                                                                                          px -t firefox
                                                                                                                                                                                                                                          Small, direct, and very useful for everyday terminal work.

                                                                                                                                                                                                                                          Project:
                                                                                                                                                                                                                                          https://github.com/leahneukirchen/px


                                                                                                                                                                                                                                            [?]nsi_xyz » 🌐
                                                                                                                                                                                                                                            @nsi_xyz@mathstodon.xyz

                                                                                                                                                                                                                                            L'essayer c'est l'adopter.

                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                              [?]Bryan Steele :flan_beard: » 🌐
                                                                                                                                                                                                                                              @brynet@bsd.network

                                                                                                                                                                                                                                              Claudio Jeker (claudio@) has announced the release of OpenBGPD 9.2 -portable.

                                                                                                                                                                                                                                              Release notes: cdn.openbsd.org/pub/OpenBSD/Op

                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                                                @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                                                Die Shortstory: Klebezettel 007

                                                                                                                                                                                                                                                Eine Shortstory und ein Experiment erwarten euch. Wir möchten gerne sehen, ob - jenseits von Technik-Artikeln - auch hin und wieder Kurzgeschichten für euch interessant sind.

                                                                                                                                                                                                                                                gnulinux.ch/tatort-klebezettel

                                                                                                                                                                                                                                                  [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                  @camilleroux@mastodon.social

                                                                                                                                                                                                                                                  Himalaya v2 : un CLI en Rust pour gérer ses emails depuis le terminal. IMAP, SMTP, JMAP, Gmail, Outlook, config auto au premier lancement, sortie JSON, support multi-comptes en TOML. ⬇️
                                                                                                                                                                                                                                                  github.com/pimalaya/himalaya

                                                                                                                                                                                                                                                  📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Mrn

                                                                                                                                                                                                                                                  Capture d'écran d'une interface en ligne de commande du client email Himalaya, affichant une liste d'emails avec leurs identifiants, drapeaux, sujets, expéditeurs et dates, datant de juin à juillet 2024.

                                                                                                                                                                                                                                                  Alt...Capture d'écran d'une interface en ligne de commande du client email Himalaya, affichant une liste d'emails avec leurs identifiants, drapeaux, sujets, expéditeurs et dates, datant de juin à juillet 2024.

                                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                                    [?]-=Kernel-Error=- » 🌐
                                                                                                                                                                                                                                                    @kernel-error.de@www.kernel-error.de

                                                                                                                                                                                                                                                    Intel QuickAssist 8950-SCCP: Krypto-Beschleuniger von 2013 gegen eine CPU von heute

                                                                                                                                                                                                                                                    Eine PCIe-Krypto-Beschleunigerkarte, gekauft für einen FreeBSD-Server, dessen Atom-CPU kein AES-NI hatte. Heute steckt sie in meinem Linux Mint und verliert gegen die CPU um Faktor 8,6. Warum dm-crypt sie trotzdem nicht anfasst und was der PLX-Switch auf der Karte zu suchen hat. [SENSITIVE CONTENT]

                                                                                                                                                                                                                                                    Manche Bauteile überleben ihren eigenen Sinn. Diese Karte liegt seit Jahren bei mir herum, hat einmal einen echten Job gemacht, und heute ist sie ein Stück Technikgeschichte mit Kühlkörper. Also habe ich sie in meine Workstation gesteckt, einfach um zu sehen, was sie noch kann und wie sie sich gegen eine aktuelle CPU schlägt. Das Ergebnis ist interessanter geworden als erwartet, aber nicht auf die Art, die ich erwartet hatte.

                                                                                                                                                                                                                                                    Die Vorgeschichte: irgendwann lief bei mir ein FreeBSD-Server mit einer Intel-Atom-CPU, und diese CPU hatte kein AES-NI. Auf so einer Maschine verschlüsselte Platten zu betreiben ist zäh. Also kam eine Intel QuickAssist Adapter 8950-SCCP rein, eine PCIe-Steckkarte, die genau das in Hardware macht. Und sie hat ihren Job gut gemacht: weniger CPU-Last, mehr Durchsatz am Storage. Später wanderte sie in einen älteren Xeon, immer noch FreeBSD, immer noch GELI. FreeBSD 14 hat sie produktiv nie gesehen.

                                                                                                                                                                                                                                                    So hing sie im Server: Low Profile, PCIe x8, ein gerippter Aluklotz über fast der ganzen Platine. Lüfter gibt es keinen, den soll das Rack liefern.

                                                                                                                                                                                                                                                    Warum das damals überhaupt ein Problem war

                                                                                                                                                                                                                                                    Das ist der Teil, den heute fast keiner mehr auf dem Schirm hat: AES in der CPU war jahrelang keine Selbstverständlichkeit. AES-NI kam 2010 mit Westmere, aber Intel hat den Befehlssatz danach als Segmentierungsmerkmal benutzt. Bei vielen Atom-, Celeron- und Pentium-Modellen fehlte er, und zwar genau in den stromsparenden Storage- und Firewall-Plattformen, in denen man ihn am dringendsten gebraucht hätte. Ohne AES-NI rechnet eine CPU AES über Tabellen-Lookups, also grob eine Größenordnung langsamer, und obendrein mit Cache-Timing-Seitenkanälen, die man erst mit Aufwand wieder zubekommt.

                                                                                                                                                                                                                                                    Bei ARM war es lange genauso, und da ist es sogar noch besser zu greifen. ARMv7 hatte überhaupt keine AES-Befehle. Die Cryptography Extensions von ARMv8-A sind bis heute optional, ein Chiphersteller kann sie einfach weglassen. Der Raspberry Pi ist das schönste Beispiel: alle 64-Bit-fähigen Pis bis einschließlich Modell 4 haben keine AES-Beschleunigung, erst der BCM2712 im Pi 5 bringt sie mit. Wer sich mal gefragt hat, warum verschlüsselte Backups auf einem Pi 4 so quälend langsam sind: das ist der Grund, und es ist kein Softwareproblem.

                                                                                                                                                                                                                                                    Dazu kommt der zweite Teil der Geschichte. Verschlüsselung war lange die Ausnahme, nicht die Regel. Wer 2010 eine Webseite betrieben hat, hat HTTPS für den Loginbereich angeschaltet und sonst nirgends, weil es teuer war, weil Zertifikate Geld kosteten und weil TLS auf schwacher Hardware wirklich weh tat. Erst mit Snowden und vor allem mit dem Druck, den die Browserhersteller danach aufgebaut haben, kippte das ins Gegenteil. Plötzlich sollte alles verschlüsselt sein, und zwar sofort. In dieser Phase steckten in Loadbalancern und Reverse Proxies routinemäßig Offload-Karten, für Krypto oder für Kompression, weil die Allzweck-CPU dahinter das schlicht nicht mitgemacht hat. Diese Karte kommt aus genau dieser Zeit.

                                                                                                                                                                                                                                                    Was das für eine Karte ist

                                                                                                                                                                                                                                                    Auf dem Aufkleber steht INTEL(R) QUICK ASSIST ADAPTER 8950-SCCP, Bestellnummer IQA89501G1P5, Intel MM 929848, Herstelldatum 09/2017, Made in Malaysia. Der Chip darauf ist allerdings älter als die Karte: die Generation stammt aus Q4 2013.

                                                                                                                                                                                                                                                    Die Rückseite mit dem Typenschild. Der blaue Aufkleber ist ein Echtheitsmerkmal von yottamark, dazu KCC-Zulassung, UL-Nummer und das PCI-Express-Logo.

                                                                                                                                                                                                                                                    SCCP steht für Single Coleto Creek PCIe. Coleto Creek ist der interne Codename, der Beschleunigerchip heißt DH895xCC, und Intel hat ihn als Intel Communications Chipset 8955 verkauft. Die PCI-ID ist 8086:0435. Bei Intel ist die Karte längst End of Life, abgekündigt zusammen mit ihrem Nachfolger 8960.

                                                                                                                                                                                                                                                    Die Datenblattwerte, also Herstellerangaben und nichts von mir Gemessenes:

                                                                                                                                                                                                                                                    Angabe

                                                                                                                                                                                                                                                    Wert

                                                                                                                                                                                                                                                    Bulk-Krypto

                                                                                                                                                                                                                                                    bis 50 Gbit/s

                                                                                                                                                                                                                                                    Kompression

                                                                                                                                                                                                                                                    bis 24 Gbit/s

                                                                                                                                                                                                                                                    Host-Interface

                                                                                                                                                                                                                                                    PCIe Gen3 x8

                                                                                                                                                                                                                                                    SR-IOV

                                                                                                                                                                                                                                                    1 Physical Function, 32 Virtual Functions

                                                                                                                                                                                                                                                    Leistungsaufnahme

                                                                                                                                                                                                                                                    maximal etwa 40 W

                                                                                                                                                                                                                                                    Umgebungstemperatur

                                                                                                                                                                                                                                                    0 bis 55 Grad Celsius

                                                                                                                                                                                                                                                    Gebaut wurde das Ding nicht für Workstations, sondern für Telco und Netzwerk: VPN-Konzentratoren, IPsec-Gateways, TLS-Terminierung, Deduplizierungs-Appliances. 50 Gbit/s Bulk-Krypto in einer Low-Profile-Karte war 2013 eine Ansage. Mein Lieblingsdetail aus dem Featureset ist aber ein anderes: die Karte kann Kasumi und Snow 3G in Hardware, also die Mobilfunkchiffren aus 3G und LTE. Das ist so wunderbar spezifisch, dass man sofort weiß, in welchem Blech sie eigentlich stecken sollte, und das ist bestimmt kein Tower unter einem Schreibtisch.

                                                                                                                                                                                                                                                    Kühlkörper ab: zwei Chips, nicht einer

                                                                                                                                                                                                                                                    Jetzt wird es hübsch. Unter dem Kühlkörper sitzen nämlich nicht ein großer Chip, sondern zwei, und dazu eine Leerstelle.

                                                                                                                                                                                                                                                    Links U5, der Coleto Creek als Flip-Chip ohne Heatspreader. Mittig U1, der PLX PEX 8724. Rechts neben dem Slotblech die leere Fläche, um die es weiter unten geht.

                                                                                                                                                                                                                                                    Links auf Position U5 liegt der Coleto Creek als Flip-Chip-BGA ohne Heatspreader. Das nackte Silizium liegt frei, man schaut direkt auf den Die. Das sieht man heute selten und es ist genau der Grund, warum ich den Kühlkörper überhaupt abgeschraubt habe.

                                                                                                                                                                                                                                                    Mittig auf U1 sitzt aber ein Chip, den ich dort nicht erwartet hätte: ein PLX Technology PEX8724-CA80BC G, Fertigungscode 1703, also Kalenderwoche 3 in 2017, gefertigt in Taiwan. Das ist ein PCIe-Gen3-Switch mit 24 Lanes und 6 Ports. Auf einer Karte, die nur einen einzigen Beschleunigerchip trägt, ist ein Switch zunächst mal erklärungsbedürftig.

                                                                                                                                                                                                                                                    Rechts, direkt neben dem Slotblech, liegt dann noch eine komplett unbestückte BGA-Fläche. Ein vollständiges, leeres Lötpad-Raster in Chipgröße. Da war offensichtlich mal etwas geplant.

                                                                                                                                                                                                                                                    Der leere Platz aus der Nähe. Ein Platz in Chipgröße, alles drumherum bestückt, nur hier fehlt der Chip.

                                                                                                                                                                                                                                                    Wenn man Switch und Leerstelle zusammennimmt, geht eine Rechnung verdächtig glatt auf:

                                                                                                                                                                                                                                                    PEX 8724 = 24 Lanes
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                      x8  Upstream zum Slot
                                                                                                                                                                                                                                                    + x8  zum bestückten Coleto Creek (U5)
                                                                                                                                                                                                                                                    + x8  zu einem weiteren, unbestückten Platz
                                                                                                                                                                                                                                                    = 24

                                                                                                                                                                                                                                                    Und der Kernel liefert dazu tatsächlich einen passenden Befund: der Downstream-Port c4:08.0 des Switches existiert, hat LnkCap Width x8 und ist untrainiert, also LnkSta Width x0. Da hängt nichts dran.

                                                                                                                                                                                                                                                    Und hier muss ich mich selbst bremsen, denn die Versuchung ist groß. Belegt ist nur: in der Switch-Konfiguration sind diesem Port acht Lanes zugewiesen, und es hängt nichts daran. Nicht belegt ist, dass diese acht Lanes zu dem leeren Platz führen. Das könnte genauso ein nie herausgeführter Port sein oder für etwas völlig anderes gedacht gewesen sein. Die Lötfläche macht die Deutung attraktiv, und mehr ist es nicht. Wer es wirklich wissen will, müsste die Lanes am Board durchmessen oder das EEPROM des PEX8724 auslesen und dort in die Port Configuration schauen. Beides habe ich nicht gemacht.

                                                                                                                                                                                                                                                    Genauso vorsichtig muss man mit der naheliegenden Erzählung sein, Intel habe hier dieselbe Platine für eine Dual-Chip-Variante vorgesehen. Das passt zur Namenslogik, das S in SCCP steht ja für Single, und es passt zum leeren Platz. Eine offizielle Bestätigung für ein 8950-DCCP oder Ähnliches habe ich trotzdem nicht gefunden. Also: plausible Deutung, kein Faktum.

                                                                                                                                                                                                                                                    Am Rand der Platine sitzt außerdem noch ein schwarzer, geschirmter Steckverbinder mit der Bezeichnung J8. Der macht das, was bei einer Grafikkarte der Zusatzstecker macht: Stromversorgung direkt vom Netzteil. Das passt zu den bis zu 40 Watt aus dem Datenblatt, denn ein PCIe-Steckplatz dieser Bauform liefert nach Spezifikation nur 25 Watt. Dazu mehrere Spannungsregler mit Speicherdrosseln, ein 100-MHz-Quarz und Siebdruck-Markierungen für x1, x4 und x8 am Kartenrand.

                                                                                                                                                                                                                                                    Einbau: erfreulich langweilig

                                                                                                                                                                                                                                                    Die Karte steckt jetzt in einem Slot mit PCIe 4.0 x8 an einem Xeon Gold 5315Y, unter Linux Mint mit Kernel 7.0. Und dann passiert genau das, was man sich von einem In-Kernel-Treiber wünscht: nichts Besonderes.

                                                                                                                                                                                                                                                    [   36.915329] dh895xcc 0000:c5:00.0: enabling device (0140 -> 0142)
                                                                                                                                                                                                                                                    [   37.744772] dh895xcc 0000:c5:00.0: qat_dev0 started 12 acceleration engines

                                                                                                                                                                                                                                                    Kein Paket installiert, keine Firmware nachgeladen, keine Konfigurationsdatei, kein adf_ctl. Die Module qat_dh895xcc und intel_qat laden von allein, die Firmware qat_895xcc.bin.zst lag über linux-firmware längst auf der Platte. Zwölf Acceleration Engines starten, alle Selftests bestehen, der Heartbeat meldet sich gesund. Ein Chip von 2013 auf einer Karte von 2017 in einem Board von 2021 unter einem Kernel von 2026, und es ist ein Nichtereignis. Das ist ein starkes Argument für In-Tree-Treiber, und es wird weiter unten noch bitter kontrastiert.

                                                                                                                                                                                                                                                    Was man zum Prüfen braucht:

                                                                                                                                                                                                                                                    lspci -nn | grep -i qat
                                                                                                                                                                                                                                                    dmesg | grep -i dh895
                                                                                                                                                                                                                                                    grep -c qat /proc/crypto
                                                                                                                                                                                                                                                    ls /sys/kernel/debug/qat_dh895xcc_0000:c5:00.0/

                                                                                                                                                                                                                                                    Das debugfs-Verzeichnis ist die interessanteste Fundstelle der ganzen Karte. Dort liegt in dev_cfg die komplette, vom Treiber selbst generierte Instanzkonfiguration: 16 Krypto-Instanzen, 16 Kompressions-Instanzen, je Instanz 512 gleichzeitige symmetrische oder 128 asymmetrische Requests, dazu Interrupt-Coalescing und ein Heartbeat-Timer. In fw_counters stehen Requests und Responses pro Acceleration Engine, und das ist später mein Beweis, dass die Karte wirklich rechnet und nicht die CPU heimlich einspringt. Dazu heartbeat/status, cnv_errors und 32 Ring-Banks unter transport/.

                                                                                                                                                                                                                                                    Ein PCIe-Switch, der Generationen übersetzt

                                                                                                                                                                                                                                                    Jetzt löst sich auch auf, warum der PLX-Switch da ist. So sieht der Baum aus:

                                                                                                                                                                                                                                                    c2:02.0  Root Port #17          LnkCap Gen4 x8  ->  LnkSta Gen3 x8
                                                                                                                                                                                                                                                      c3:00.0  PLX PEX 8724 Upstream                 ->  LnkSta Gen3 x8
                                                                                                                                                                                                                                                        c4:00.0  Downstream Port #0                  ->  LnkSta Gen2 x8
                                                                                                                                                                                                                                                          c5:00.0  Intel DH895XCC Series QAT   [8086:0435]
                                                                                                                                                                                                                                                        c4:08.0  Downstream Port #8                  ->  LnkSta x0   (leer)

                                                                                                                                                                                                                                                    Host-seitig läuft die Karte mit Gen3 x8, also 8 GT/s. Chip-seitig kommen aber nur Gen2 x8 an, also 5 GT/s. Der Coleto Creek ist ein Gen2-Baustein, und damit die Karte am Steckplatz trotzdem als moderne Gen3-x8-Karte auftritt, sitzt der PEX 8724 als Übersetzer dazwischen. Der QAT-Endpunkt behauptet in seiner LnkCap sogar x16, verdrahtet sind aber acht Lanes.

                                                                                                                                                                                                                                                    Das ist der erste wirklich belastbare Befund des Tages: das Nadelöhr sitzt auf der Karte, nicht im Steckplatz und nicht in der CPU. Dafür braucht man die Dual-Chip-Spekulation von oben überhaupt nicht.

                                                                                                                                                                                                                                                    Zwei weitere Kleinigkeiten aus dem laufenden System, die ich hübsch finde. Die Karte sitzt allein in ihrer IOMMU-Gruppe und unterstützt Function Level Reset, sie lässt sich also ohne ACS-Override-Gebastel per VFIO an eine VM durchreichen. Und sie meldet 32 Virtual Functions, aktiv sind davon null.

                                                                                                                                                                                                                                                    Der praktisch wichtigste Nebeneffekt des Einbaus hat aber gar nichts mit Krypto zu tun. Der PLX-Switch belegt vier Busnummern, und dadurch ist meine NVMe von c3:00.0 auf c7:00.0 gewandert. Auf der alten Adresse sitzt jetzt der Upstream-Port des Switches. Ich hatte mir ein setpci-Kommando mit der alten Adresse notiert, und das hätte nach dem Einbau munter in die Register des Switches geschrieben statt in die der SSD. Merke: PCI-Adressen sind nichts, was man sich aufschreibt. Die holt man sich jedes Mal frisch aus lspci. Ist ja jetzt nicht so, als wenn mir das schon mal untergekommen ist bzw. ich so was gefettfingert habe 😛

                                                                                                                                                                                                                                                    Die Prioritäten-Tabelle, oder: der Kernel hat schon entschieden

                                                                                                                                                                                                                                                    Der Treiber registriert zehn Algorithmen in der Crypto-API des Kernels, alle mit selftest: passed:

                                                                                                                                                                                                                                                    xts(aes)                        qat_aes_xts               skcipher   prio=100
                                                                                                                                                                                                                                                    ctr(aes)                        qat_aes_ctr               skcipher   prio=100
                                                                                                                                                                                                                                                    cbc(aes)                        qat_aes_cbc               skcipher   prio=100
                                                                                                                                                                                                                                                    authenc(hmac(sha1),cbc(aes))    qat_aes_cbc_hmac_sha1     aead       prio=100
                                                                                                                                                                                                                                                    authenc(hmac(sha256),cbc(aes))  qat_aes_cbc_hmac_sha256   aead       prio=100
                                                                                                                                                                                                                                                    authenc(hmac(sha512),cbc(aes))  qat_aes_cbc_hmac_sha512   aead       prio=100
                                                                                                                                                                                                                                                    rsa                             qat-rsa                   akcipher   prio=1000
                                                                                                                                                                                                                                                    dh                              qat-dh                    kpp        prio=1000
                                                                                                                                                                                                                                                    pkcs1(rsa,sha512)               pkcs1(qat-rsa,sha512)     sig        prio=1000
                                                                                                                                                                                                                                                    deflate                         qat_deflate               acomp      prio=4001

                                                                                                                                                                                                                                                    Diese Prioritäten sind die halbe Geschichte des Beitrags. Die Linux Crypto API wählt bei gleichem Algorithmusnamen immer die Implementierung mit der höchsten Priorität. Wenn man das mit den CPU-Implementierungen auf derselben Maschine vergleicht, wird es sehr deutlich:

                                                                                                                                                                                                                                                    Algorithmus

                                                                                                                                                                                                                                                    QAT

                                                                                                                                                                                                                                                    bester CPU-Wert

                                                                                                                                                                                                                                                    wer gewinnt

                                                                                                                                                                                                                                                    xts(aes)

                                                                                                                                                                                                                                                    100

                                                                                                                                                                                                                                                    xts-aes-vaes-avx2 = 600

                                                                                                                                                                                                                                                    CPU

                                                                                                                                                                                                                                                    cbc(aes)

                                                                                                                                                                                                                                                    100

                                                                                                                                                                                                                                                    cbc-aes-aesni höher

                                                                                                                                                                                                                                                    CPU

                                                                                                                                                                                                                                                    authenc(...)

                                                                                                                                                                                                                                                    100

                                                                                                                                                                                                                                                    CPU-Kombis höher

                                                                                                                                                                                                                                                    CPU

                                                                                                                                                                                                                                                    rsa

                                                                                                                                                                                                                                                    1000

                                                                                                                                                                                                                                                    rsa-generic = 100

                                                                                                                                                                                                                                                    Karte

                                                                                                                                                                                                                                                    dh

                                                                                                                                                                                                                                                    1000

                                                                                                                                                                                                                                                    dh-generic = 100

                                                                                                                                                                                                                                                    Karte

                                                                                                                                                                                                                                                    deflate

                                                                                                                                                                                                                                                    4001

                                                                                                                                                                                                                                                    deflate-generic = 0

                                                                                                                                                                                                                                                    Karte

                                                                                                                                                                                                                                                    Übersetzt heißt das: für symmetrische Massenverschlüsselung wird diese Karte nie von allein benutzt. Für rsa, dh und deflate dagegen immer. Das ist kein Zufall und kein Konfigurationsfehler, sondern eine Aussage der Kernel-Entwickler darüber, wo Offload bei einer aktuellen CPU überhaupt noch etwas bringt. Man kann diese Tabelle lesen wie ein Urteil über die Karte, und genau so ist sie auch gemeint.

                                                                                                                                                                                                                                                    Ein Detail nur mit Vorsicht: pkcs1(qat-rsa,sha512) steht mit Priorität 1000 registriert und hat den Selftest bestanden. Daraus folgt noch nicht, dass Kernel-Modul-Signaturprüfung tatsächlich über die Karte läuft. Die Registrierung macht es möglich, die Priorität spricht dafür, aber um es zu belegen müsste man den Verifikationspfad tracen und dabei die Zähler in fw_counters beobachten. Habe ich nicht gemacht, also behaupte ich es auch nicht.

                                                                                                                                                                                                                                                    Bevor die Zahlen kommen: was meine Messung nicht zeigt

                                                                                                                                                                                                                                                    Diesen Absatz gibt es, weil die Tabellen danach sonst präziser wirken als sie sind. Wer mir eine Zahl vorhält, soll wissen, wie sie entstanden ist.

                                                                                                                                                                                                                                                    • Alle Kryptomessungen laufen über AF_ALG aus einem Python-Skript mit einem synchronen Request-Loop. Das ist ungefähr der Worst Case für eine asynchrone Offload-Karte: pro Request wird gewartet, statt die Queue tief zu halten, für die die Hardware gebaut wurde. Die Zahlen charakterisieren also diesen Zugangsweg, nicht die Karte an sich.
                                                                                                                                                                                                                                                    • Kein Warmup, keine Wiederholungen, keine Streuung, kein CPU-Pinning. Angaben mit einer Nachkommastelle tragen eine Genauigkeit, die statistisch nicht gedeckt ist. Für belastbare Latenzen bräuchte es Median und P95 über mehrere Läufe.
                                                                                                                                                                                                                                                    • Die Skalierung über Worker nutzt Prozesse, nicht Threads. Kontextwechsel und Speicherkopien gehen also mit in die Zahl ein.
                                                                                                                                                                                                                                                    • cryptsetup benchmark ist selbst nur ein Indikator. Es misst im Speicher über die Crypto-API und ist laut eigener Manpage nicht direkt auf reale Storage-Verschlüsselung übertragbar.
                                                                                                                                                                                                                                                    • Hart sind dagegen die fw_counters. Die kommen aus der Hardware und belegen, dass und wie oft die Karte gerechnet hat. Und die Form der Ergebnisse ist robust: Latenz pro Request hoch, Skalierung über Worker fast linear, CPU bei kleinen Blöcken weit vorn. Nur die absoluten Werte sind weich.

                                                                                                                                                                                                                                                    Als Gegner steht bewusst der ungünstigste Fall für die Karte: ein Xeon Gold 5315Y mit acht Kernen und vollem VAES-Befehlssatz. Wenn eine 13 Jahre alte Karte gegen die Rechenwerke einer aktuellen CPU antritt, dann bitte richtig.

                                                                                                                                                                                                                                                    Ein Strom, synchron: die Karte verliert deutlich

                                                                                                                                                                                                                                                    Zuerst die CPU-Basislinie mit cryptsetup benchmark, damit die Größenordnung steht:

                                                                                                                                                                                                                                                    aes-cbc   128b   1168,2 MiB/s enc   3936,0 MiB/s dec
                                                                                                                                                                                                                                                    aes-cbc   256b   1004,5 MiB/s enc   3729,8 MiB/s dec
                                                                                                                                                                                                                                                    aes-xts   256b   5494,4 MiB/s enc   5510,1 MiB/s dec
                                                                                                                                                                                                                                                    aes-xts   512b   5045,2 MiB/s enc   5053,6 MiB/s dec

                                                                                                                                                                                                                                                    Und dann der direkte Vergleich über AF_ALG, ein einzelner synchroner Strom:

                                                                                                                                                                                                                                                    Implementierung

                                                                                                                                                                                                                                                    Block

                                                                                                                                                                                                                                                    Durchsatz

                                                                                                                                                                                                                                                    Latenz pro Operation

                                                                                                                                                                                                                                                    xts-aes-vaes-avx2

                                                                                                                                                                                                                                                    4 KiB

                                                                                                                                                                                                                                                    1157,2 MiB/s

                                                                                                                                                                                                                                                    3,4 µs

                                                                                                                                                                                                                                                    xts-aes-vaes-avx2

                                                                                                                                                                                                                                                    16 KiB

                                                                                                                                                                                                                                                    2681,2 MiB/s

                                                                                                                                                                                                                                                    5,8 µs

                                                                                                                                                                                                                                                    xts-aes-vaes-avx2

                                                                                                                                                                                                                                                    64 KiB

                                                                                                                                                                                                                                                    4327,2 MiB/s

                                                                                                                                                                                                                                                    14,4 µs

                                                                                                                                                                                                                                                    qat_aes_xts

                                                                                                                                                                                                                                                    4 KiB

                                                                                                                                                                                                                                                    100,3 MiB/s

                                                                                                                                                                                                                                                    38,9 µs

                                                                                                                                                                                                                                                    qat_aes_xts

                                                                                                                                                                                                                                                    16 KiB

                                                                                                                                                                                                                                                    244,9 MiB/s

                                                                                                                                                                                                                                                    63,6 µs

                                                                                                                                                                                                                                                    qat_aes_xts

                                                                                                                                                                                                                                                    64 KiB

                                                                                                                                                                                                                                                    308,8 MiB/s

                                                                                                                                                                                                                                                    201,6 µs

                                                                                                                                                                                                                                                    cbc-aes-aesni

                                                                                                                                                                                                                                                    4 KiB

                                                                                                                                                                                                                                                    583,5 MiB/s

                                                                                                                                                                                                                                                    6,7 µs

                                                                                                                                                                                                                                                    qat_aes_cbc

                                                                                                                                                                                                                                                    4 KiB

                                                                                                                                                                                                                                                    79,8 MiB/s

                                                                                                                                                                                                                                                    48,9 µs

                                                                                                                                                                                                                                                    Pro Einzelrequest ist die Karte also grob elfmal langsamer als die CPU, ungefähr 39 gegen 3,4 Mikrosekunden bei 4 KiB. Für ein Bauteil, das mal genau dafür gekauft wurde, ist das eine ernüchternde Zahl.

                                                                                                                                                                                                                                                    Nur: das ist nicht die Hardwarelatenz der Karte. Gemessen ist die Latenz dieses Pfades, und der ist lang: Python, sendmsg über AF_ALG, Socket-Puffer, Kernel-Copy, Treiber, PCIe, Karte, und alles wieder zurück, plus Scheduling und Aufwecken des wartenden Prozesses. Ein erheblicher Teil davon kann im Socket-Pfad stecken. Die CPU-Variante läuft durch denselben Overhead, profitiert aber davon, dass sie synchron im selben Kontext rechnet und überhaupt nicht schlafen muss. Belastbar ist deshalb nur die relative Aussage für diesen Zugangsweg und die Form der Kurve. Wer die reine Hardwarelatenz will, braucht ein Frontend ohne Socket-Umweg, also praktisch den Userspace-Stack, und der existiert für diesen Chip nicht mehr. Dazu unten mehr. Das ist eine Messlücke, die ich mit den vorhandenen Mitteln nicht schließen kann, und ich schreibe sie lieber hin als sie zu verstecken.

                                                                                                                                                                                                                                                    Viele Ströme: jetzt zeigt sie, wofür sie gebaut wurde

                                                                                                                                                                                                                                                    Und dann wird es doch noch spannend. Dieselbe Messung mit parallelen Workern, Blockgröße 16 KiB:

                                                                                                                                                                                                                                                    Worker

                                                                                                                                                                                                                                                    qat_aes_xts

                                                                                                                                                                                                                                                    xts-aes-vaes-avx2

                                                                                                                                                                                                                                                    1

                                                                                                                                                                                                                                                    210,7 MiB/s

                                                                                                                                                                                                                                                    2632,6 MiB/s

                                                                                                                                                                                                                                                    2

                                                                                                                                                                                                                                                    454,1 MiB/s

                                                                                                                                                                                                                                                    5311,9 MiB/s

                                                                                                                                                                                                                                                    4

                                                                                                                                                                                                                                                    799,3 MiB/s

                                                                                                                                                                                                                                                    10777,5 MiB/s

                                                                                                                                                                                                                                                    8

                                                                                                                                                                                                                                                    1714,5 MiB/s

                                                                                                                                                                                                                                                    22056,0 MiB/s

                                                                                                                                                                                                                                                    16

                                                                                                                                                                                                                                                    2926,7 MiB/s

                                                                                                                                                                                                                                                    25229,7 MiB/s

                                                                                                                                                                                                                                                    Die Karte skaliert von einem auf 16 Worker um fast Faktor 14, also nahezu linear, und bei 16 Workern war sie noch nicht am Ende. Das ist exakt das Verhalten, für das so ein Baustein entworfen wurde: viele gleichzeitige, unabhängige Operationen, keine einzelne schnelle. Eine Karte in einem Loadbalancer sieht nie einen Strom, sie sieht tausende.

                                                                                                                                                                                                                                                    Nur skaliert die CPU eben auch. Und sie landet am Ende 8,6 mal höher. Das ist der ganze Punkt dieses Beitrags in einer Zahl. So fertig, feierabend, einpacken!

                                                                                                                                                                                                                                                    Dass wirklich die Karte gerechnet hat und nicht heimlich doch die CPU, zeigen die Firmware-Zähler nach dem Lauf:

                                                                                                                                                                                                                                                    QAT firmware requests in diesem Lauf: 1.340.416
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                    AE   Requests   Responses
                                                                                                                                                                                                                                                     0:    154181     154181
                                                                                                                                                                                                                                                     1:     94420      94420
                                                                                                                                                                                                                                                     2:     90590      90590
                                                                                                                                                                                                                                                     3:    154177     154177
                                                                                                                                                                                                                                                     ...
                                                                                                                                                                                                                                                    11:     90662      90662

                                                                                                                                                                                                                                                    Alle zwölf Acceleration Engines haben gearbeitet, Requests und Responses stimmen überall überein, kein verlorener Request. Die Verteilung ist nicht gleichmäßig, sondern fällt in Dreiergruppen von etwa 154k, 94k und 90k. Das kommt von der Zuordnung Ring-Bank zu Engine und ist so ein Detail, an dem man beim Lesen kleben bleibt.

                                                                                                                                                                                                                                                    Wo der Deckel liegen könnte, und warum ich mich da nicht festlege

                                                                                                                                                                                                                                                    Die 2926,7 MiB/s liegen auffällig nah an der Kapazität des internen Links:

                                                                                                                                                                                                                                                    2926,7 MiB/s Nutzdaten = 3069 MB/s
                                                                                                                                                                                                                                                    Jedes Byte muss zweimal über den Bus: rein zum Verschlüsseln, raus als Chiffrat.
                                                                                                                                                                                                                                                    Gen2 x8 = 5 GT/s x 8 Lanes x 8/10 = 4000 MB/s pro Richtung
                                                                                                                                                                                                                                                    3069 / 4000 = 77 % der theoretischen Richtungskapazität

                                                                                                                                                                                                                                                    77 Prozent Nutzlast auf einem PCIe-Link sind praktisch der Anschlag, mit dem TLP-Overhead bei 256 Byte MaxPayload liegt das erreichbare Maximum bei etwa 85 bis 90 Prozent. Das sieht also sehr nach einem Bus-Limit aus.

                                                                                                                                                                                                                                                    Aber: meine Messung kann das nicht trennen. Sie zeigt, dass dieser Zugangsweg in der Nähe eines Ceilings landet, und sie kann nicht sagen, ob das der PCIe-Link, der Treiber oder AF_ALG ist. Die Rechnung oben ist ein Plausibilitätsargument, keine Messung des Busses. Sauber wäre es, PCIe-Bandwidth-Events über die Uncore-Zähler mitzuschreiben. Das ist der wichtigste offene Messpunkt in diesem Beitrag, weil eine der Hauptaussagen daran hängt.

                                                                                                                                                                                                                                                    Noch eine Rechnung, die verlockend glatt aufgeht und bei der man aufpassen muss. Die gemessenen 2926,7 MiB/s sind 24,6 Gbit/s, das Datenblatt sagt 50 Gbit/s, das sind fast genau 49 Prozent. Und verdrahtet sind acht von 16 Lanes, also genau die Hälfte. Der Kurzschluss liegt auf der Zunge, und er ist falsch: „mit x16 wäre man auf dem Datenblattwert“ und „die Platine war für zwei Chips gedacht“ sind zwei verschiedene Hypothesen, nicht eine. In einer Dual-Chip-Bestückung bekäme jeder Chip x8, keiner käme je auf x16, und das Nadelöhr wäre dann der gemeinsame Gen3-x8-Upstream. Rechnerisch landet man auf beiden Wegen bei ungefähr 49 Gbit/s, aber über völlig verschiedene Mechanismen. Wer das zusammenrührt, argumentiert falsch, auch wenn das Ergebnis stimmt. Die Karte selbst hat ja auch nur einen PCIe 8x Anschluss.

                                                                                                                                                                                                                                                    Und es gibt eine zweite Lesart, an der der ganze Vergleich mit dem Marketing hängt. Wenn Intels 50 Gbit/s als Summe beider Richtungen gemeint sind, also 25 rein und 25 raus, dann reicht Gen2 x8 dafür aus, und meine gemessenen 24,6 Gbit/s pro Richtung sind aggregiert 49,2 Gbit/s. Dann lautet der richtige Satz nicht „die Karte erreicht die Hälfte“, sondern „die Karte erreicht ihre Spezifikation“. Intel dokumentiert nirgends, wie gezählt wird, also ist das aus den vorliegenden Unterlagen nicht entscheidbar. Die 24,6 Gbit/s stehen fest, nur ihre Deutung hängt an einer undokumentierten Konvention. Natürlich kann ich auch einfach dran vorbei gelesen haben oder ich messe falsch. Korrigiert mich gerne, dann lerne ich selbst etwas \o/

                                                                                                                                                                                                                                                    Und jetzt die Enttäuschung: dm-crypt will nicht

                                                                                                                                                                                                                                                    Der naheliegendste Anwendungsfall, und ausgerechnet genau der, für den die Karte in meinem FreeBSD-Server gearbeitet hat, funktioniert unter aktuellem Linux nicht:

                                                                                                                                                                                                                                                    # cryptsetup plainOpen /dev/ram0 probe --cipher capi:qat_aes_xts-plain64 --key-size 512 --key-file /dev/zero
                                                                                                                                                                                                                                                    device-mapper: reload ioctl on probe (252:3) failed: Datei oder Verzeichnis nicht gefunden

                                                                                                                                                                                                                                                    Der erste Reflex ist natürlich, dass ich den Namen falsch geschrieben habe. Also Gegenprobe mit derselben capi:-Syntax über sieben Varianten:

                                                                                                                                                                                                                                                    Angabe bei --cipher

                                                                                                                                                                                                                                                    Ergebnis

                                                                                                                                                                                                                                                    aes-xts-plain64

                                                                                                                                                                                                                                                    funktioniert

                                                                                                                                                                                                                                                    capi:xts(aes)-plain64

                                                                                                                                                                                                                                                    funktioniert

                                                                                                                                                                                                                                                    capi:xts-aes-aesni-plain64

                                                                                                                                                                                                                                                    funktioniert

                                                                                                                                                                                                                                                    capi:xts-aes-vaes-avx2-plain64

                                                                                                                                                                                                                                                    funktioniert

                                                                                                                                                                                                                                                    capi:xts-aes-vaes-avx512-plain64

                                                                                                                                                                                                                                                    funktioniert

                                                                                                                                                                                                                                                    capi:qat_aes_xts-plain64

                                                                                                                                                                                                                                                    Fehler, ENOENT

                                                                                                                                                                                                                                                    capi:qat_aes_cbc-plain64

                                                                                                                                                                                                                                                    Fehler, ENOENT

                                                                                                                                                                                                                                                    dm-crypt kann also sehr wohl einen konkreten Treiber adressieren, sogar xts-aes-vaes-avx512, das mit seiner niedrigen Priorität sonst nie zum Zug käme. Nur die beiden QAT-Treiber fliegen raus. Das ist kein Tippfehler und keine Namensauflösung.

                                                                                                                                                                                                                                                    Der Beweis kommt aus dem laufenden Kernel selbst, ausgelesen über die NETLINK_CRYPTO-Schnittstelle. Das ist die belastbare Quelle, denn sie sagt, was dieser Kernel registriert hat, und nicht, was irgendeine Quelldatei im Netz behauptet:

                                                                                                                                                                                                                                                    qat_aes_xts              flags=0x00010585   ASYNC | NEED_FALLBACK | TESTED | ALLOCATES_MEMORY
                                                                                                                                                                                                                                                    qat_aes_cbc              flags=0x00010485   ASYNC | TESTED | ALLOCATES_MEMORY
                                                                                                                                                                                                                                                    qat_aes_ctr              flags=0x00010485   ASYNC | TESTED | ALLOCATES_MEMORY
                                                                                                                                                                                                                                                    qat_aes_cbc_hmac_sha256  flags=0x00010483   ASYNC | TESTED | ALLOCATES_MEMORY
                                                                                                                                                                                                                                                    qat_deflate              flags=0x0001048a   ASYNC | TESTED | ALLOCATES_MEMORY
                                                                                                                                                                                                                                                    qat-rsa                  flags=0x00000406   TESTED
                                                                                                                                                                                                                                                    xts-aes-aesni            flags=0x00000405   TESTED
                                                                                                                                                                                                                                                    xts-aes-vaes-avx2        flags=0x00000405   TESTED
                                                                                                                                                                                                                                                    cbc-aes-aesni            flags=0x00000405   TESTED
                                                                                                                                                                                                                                                    deflate-generic          flags=0x0004040a   TESTED

                                                                                                                                                                                                                                                    Der Unterschied ist genau ein Bit: 0x00010000, also CRYPTO_ALG_ALLOCATES_MEMORY. Alle symmetrischen QAT-Implementierungen haben es, keine einzige CPU-Implementierung hat es. Die niedrigen Bits sind übrigens kein Flag, sondern der Algorithmustyp.

                                                                                                                                                                                                                                                    Und dm-crypt fordert seine Transforms genau mit diesem Bit als Maske an, an drei Stellen im Code:

                                                                                                                                                                                                                                                    cc->cipher_tfm.tfms[i]      = crypto_alloc_skcipher(ciphermode, 0, CRYPTO_ALG_ALLOCATES_MEMORY);
                                                                                                                                                                                                                                                    cc->cipher_tfm.tfms_aead[0] = crypto_alloc_aead(ciphermode, 0, CRYPTO_ALG_ALLOCATES_MEMORY);
                                                                                                                                                                                                                                                    mac                         = crypto_alloc_ahash(mac_alg, 0, CRYPTO_ALG_ALLOCATES_MEMORY);

                                                                                                                                                                                                                                                    Die Suche findet damit nichts und liefert ENOENT, und das kommt oben als „Datei oder Verzeichnis nicht gefunden“ an. Kette geschlossen, keine Hypothese mehr. Dass qat-rsa das Flag nicht hat, passt genau ins Bild: RSA läuft über die Karte, weil es kein Block-I/O-Pfad ist.

                                                                                                                                                                                                                                                    Die Wendung: das ist eine Leitplanke, kein Bürokratiefehler

                                                                                                                                                                                                                                                    An dieser Stelle wollte ich anfangen zu schimpfen. Die Karte kann AES-XTS in Hardware, der Kernel registriert es, und der eine Konsument, für den es gedacht war, weigert sich. Klingt nach Linux, das sich selbst im Weg steht. Ist es aber nicht.

                                                                                                                                                                                                                                                    Die Maske stammt von Mikulas Patocka, und die Begründung im Commit ist knapp:

                                                                                                                                                                                                                                                    Don’t use crypto drivers that have the flag CRYPTO_ALG_ALLOCATES_MEMORY set. These drivers allocate memory and thus they are unsuitable for block I/O processing.

                                                                                                                                                                                                                                                    Der Grund dahinter ist ein Low-Memory-Deadlock. Stell dir vor, es wird auf ein dm-crypt-Gerät geswappt. Der Kernel will Speicher freimachen, schickt die Swap-Out-BIO durch dm-crypt, dm-crypt fragt die Crypto-API, und die fordert daraufhin Speicher an, den es gerade nicht gibt. Ende der Vorstellung.

                                                                                                                                                                                                                                                    Und mit QAT ist genau das schon einmal schiefgegangen. Im März 2022 gibt es einen Bericht auf der Kernel-Mailingliste über massive Datenkorruption mit QAT plus dm-crypt plus XFS. Die Diagnose kam von Giovanni Cabiddu, Intel:

                                                                                                                                                                                                                                                    The implementations of aead and skcipher in the QAT driver are not properly supporting requests with the CRYPTO_TFM_REQ_MAY_BACKLOG flag set. If the HW queue is full, the driver returns -EBUSY but does not enqueue the request.

                                                                                                                                                                                                                                                    Die Folge: dm-crypt wartet endlos auf die Completion eines Requests, der nie an die Hardware gegangen ist. Und das Dateisystem war hinüber. Das ist kein theoretisches Risiko, das ist ein Schadensfall mit Datum.

                                                                                                                                                                                                                                                    Die Zeitleiste danach ist lehrreich, weil sie nicht so endet, wie man denkt:

                                                                                                                                                                                                                                                    Datum

                                                                                                                                                                                                                                                    Was passiert

                                                                                                                                                                                                                                                    Juli 2020

                                                                                                                                                                                                                                                    Das Flag CRYPTO_ALG_ALLOCATES_MEMORY wird auf QAT gesetzt

                                                                                                                                                                                                                                                    Juli 2020

                                                                                                                                                                                                                                                    dm-crypt schließt Treiber mit diesem Flag aus (Patocka)

                                                                                                                                                                                                                                                    März 2022

                                                                                                                                                                                                                                                    Der Schadensfall: Datenkorruption mit QAT, dm-crypt und XFS

                                                                                                                                                                                                                                                    Mai 2022

                                                                                                                                                                                                                                                    Intel liefert den eigentlichen Fix, ein Backlog-Mechanismus

                                                                                                                                                                                                                                                    Juli 2023

                                                                                                                                                                                                                                                    Intel will das Flag entfernen, um QAT für dm-crypt zurückzuholen. Nie gemerged.

                                                                                                                                                                                                                                                    Juni 2025

                                                                                                                                                                                                                                                    Stattdessen: Priorität von Skcipher und AEAD wird von 4001 auf 100 gesenkt

                                                                                                                                                                                                                                                    August 2026

                                                                                                                                                                                                                                                    Auf meinem Kernel gemessen: Flag gesetzt, Priorität 100, dm-crypt verweigert

                                                                                                                                                                                                                                                    Die Auflösung war also nicht „dm-crypt darf QAT wieder benutzen“, sondern „QAT wird per Priorität aus dem Weg geräumt“. Und die Begründung in diesem Commit ist der stärkste Absatz, den ich zu dieser Karte gelesen habe:

                                                                                                                                                                                                                                                    Most kernel applications utilizing the crypto API operate synchronously and on small buffer sizes, therefore do not benefit from QAT acceleration. Reduce the priority of QAT implementations for both skcipher and aead algorithms, allowing more suitable alternatives to be selected by default.

                                                                                                                                                                                                                                                    „Synchron und kleine Puffer“ ist exakt das, was ich oben unabhängig gemessen habe, 39 gegen 3,4 Mikrosekunden bei 4 KiB. Der Kernel hat 2025 formal festgestellt, was meine Messung 2026 auf dieser Maschine bestätigt. Und der Patch, der Intels eigene Hardware degradiert, kommt von Intel, mit Acked-by von Eric Biggers. Wenn man es wohlwollend liest, ist das ein Hersteller, der ehrlich ist. Zur Version muss man genau sein: der Commit ging in Mainline 6.17, wurde aber wegen Cc: stable auch in ältere Stable-Zweige zurückportiert, war dort also schon vor dem 6.17-Release wirksam.

                                                                                                                                                                                                                                                    Und damit ist die Pointe eine viel bessere als „Linux ist im Weg“: was wie eine willkürliche Blockade aussieht, ist eine Leitplanke aus einem echten Schadensfall. Das erklärt übrigens auch, warum FreeBSD hier lockerer war. Dort gibt es diese Leitplanke nicht, es gibt keine Priority-Hierarchie, die den Beschleuniger aussortiert, und keine Maske, die ihn vom Blockgerät fernhält. Das heißt allerdings nicht, dass das Problem dort nicht existiert. Es heißt nur, dass niemand ein Geländer davor gebaut hat.

                                                                                                                                                                                                                                                    Ein Blick auf die FreeBSD-Seite lohnt an dieser Stelle sowieso, denn dort ist der Weg ein struktureller anderer. qat(4) ist ein Treiber für das OpenCrypto-Framework, also für crypto(9). Wer GELI benutzt, muss überhaupt nichts umkonfigurieren: GELI fragt das Framework, und das Framework nimmt den Beschleuniger. Deshalb war die Sache damals auch so unspektakulär, ich habe die Karte gesteckt und die Platten waren schneller.

                                                                                                                                                                                                                                                    Ganz so glatt war die Historie allerdings nicht. Im Basissystem gibt es qat(4) erst seit FreeBSD 13.0, und in 14.0 wurde dieser Treiber durch Intels Upstream-Variante ersetzt. Auf dem ersten Server, der noch älter war, kann es diesen Weg also nicht gegeben haben. Die aktuelle Manpage führt die Serie 8925 bis 8955 weiterhin als unterstützte Hardware, dieser Chip ist dort also nicht rausgefallen. Und noch etwas gegen zu viel Nostalgie: im FreeBSD-Forum gibt es einen Thread zur GELI-Performance, in dem QAT zunächst schlechter war als AES-NI. Erst nach dem Umstellen der QAT-Services berichtete der Autor rund 30 bis 34 Prozent Vorsprung bei AES-XTS mit SHA256, und bei anderen Lasten blieben Verluste. Die Karte war also auch damals kein bedingungsloser Gewinn, sondern eine, die zur Konfiguration passen musste.

                                                                                                                                                                                                                                                    Der zweite Dämpfer: Intels Userspace hat die Karte fallengelassen

                                                                                                                                                                                                                                                    Bleibt der andere große Anwendungsfall: TLS-Terminierung mit nginx oder HAProxy, OpenSSL-Offload. Dafür braucht man qatlib und dazu die QAT-Engine oder den Provider für OpenSSL. Auf meinem System ist davon nichts installierbar, kein Kandidat in den Repos, und OpenSSL 3.0.13 kennt nur den Default-Provider.

                                                                                                                                                                                                                                                    Schlimmer als „nicht gepackt“ ist aber der Grund: Intel hat dh895xcc aus qatlib entfernt. Die aktuellen Versionen unterstützen nur noch QAT Gen4, also die 4xxx- und 420xx-Serien. Die frühen Generationen sind nicht mehr dabei. Der Weg wäre der alte Out-of-Tree-Stack, und der baut gegen einen Kernel 7.0 nicht mehr.

                                                                                                                                                                                                                                                    Ich formuliere das bewusst nicht als „tot“. Behauptet ist: für diesen Chip ist der heutige Mainstream-Linux-Userspace praktisch abgehängt. Nicht behauptet ist, dass es global unmöglich wäre. Mit altem Kernel, altem Out-of-Tree-Treiber und passender Distribution ließe sich der Stack sicher noch aufbauen, und ältere DPDK-Versionen führten dh895xcc als unterstütztes Gerät. Es ist eine Frage von Aufwand und Kernel-Alter, nicht von Unmöglichkeit.

                                                                                                                                                                                                                                                    Die Ironie daran ist schön bitter. Intels eigener Userspace hat die Karte längst aufgegeben, während der Linux-Kernel sie weiter pflegt und beim Booten ohne ein einziges Paket zum Laufen bringt. Wer wissen will, warum In-Tree-Treiber so wertvoll sind: das hier ist der Beweis in einer Karte.

                                                                                                                                                                                                                                                    Ein dritter Befund noch, damit ihn niemand für einen Kartenfehler hält: ein einzelnes sendmsg über AF_ALG mit 256 KiB oder mehr blockiert dauerhaft. Aufgefallen ist mir das erst mit der Karte bei 1 MiB, reproduzieren lässt es sich aber mit dem CPU-Cipher genauso. Es ist also nicht die Hardware. Wo genau im AF_ALG-Pfad es hängt, habe ich nicht nachgewiesen, der Socket-Sendepuffer wäre die naheliegende Vermutung, aber eben eine ungeprüfte. Alle Messungen oben sind deshalb auf maximal 64 KiB begrenzt.

                                                                                                                                                                                                                                                    Kompression: der einzige Pfad, der von allein läuft, und er schadet

                                                                                                                                                                                                                                                    Erinnerst du dich an qat_deflate mit Priorität 4001 gegen deflate-generic mit 0? Jeder Kernel-Konsument, der nach deflate fragt, bekommt die Karte. Realistisch ist das zswap, die komprimierte Auslagerung im RAM.

                                                                                                                                                                                                                                                    Also nachgestellt: eine cgroup mit hartem Speicherlimit, 700 MiB gut komprimierbare anonyme Seiten, zswap auf deflate. Und tatsächlich, die Karte komprimiert die Auslagerung, 130.108 Firmware-Requests belegen das. Nur ist der direkte Vergleich bei gleicher Last ziemlich brutal:

                                                                                                                                                                                                                                                    zswap-Compressor

                                                                                                                                                                                                                                                    wall

                                                                                                                                                                                                                                                    user

                                                                                                                                                                                                                                                    sys

                                                                                                                                                                                                                                                    QAT-Requests

                                                                                                                                                                                                                                                    lzo (CPU)

                                                                                                                                                                                                                                                    0,85 s

                                                                                                                                                                                                                                                    0,11 s

                                                                                                                                                                                                                                                    0,72 s

                                                                                                                                                                                                                                                    0

                                                                                                                                                                                                                                                    deflate (QAT)

                                                                                                                                                                                                                                                    9,47 s

                                                                                                                                                                                                                                                    0,26 s

                                                                                                                                                                                                                                                    5,13 s

                                                                                                                                                                                                                                                    130.027

                                                                                                                                                                                                                                                    Elfmal langsamer. Und die System-CPU-Zeit steigt sogar von 0,72 auf 5,13 Sekunden, das Offload spart also nicht einmal CPU, es kostet zusätzlich welche. Der Grund ist derselbe wie überall in diesem Beitrag: zswap komprimiert eine 4-KiB-Seite pro Request, und das ist genau der Latenz-Worstcase.

                                                                                                                                                                                                                                                    Fair bleiben muss ich hier trotzdem: der Vergleich mischt zwei Effekte, denn Deflate ist algorithmisch auch schlicht teurer als LZO. Sauber wäre deflate auf CPU gegen deflate auf der Karte, und das habe ich nicht gemessen, weil sich deflate-generic bei Priorität 0 nicht ohne Weiteres erzwingen lässt. Die Aussage „QAT-zswap ist keine gute Idee“ trägt der Test, die Aufteilung zwischen Algorithmus und Latenz nicht.

                                                                                                                                                                                                                                                    Bleibt eine Frage, die ich hübsch finde: warum steht deflate überhaupt noch auf 4001? In der Datenkorruptions-Diskussion von 2022 schlug Intel vor, die Priorität der betroffenen Algorithmen auf 1 zu senken. Heute stehen Skcipher und AEAD bei 100, die Kompression aber weiter bei 4001. Die naheliegende Deutung: 4001 war ursprünglich die Politik „nimm immer den Beschleuniger“, sie wurde für Krypto nach dem Vorfall zurückgenommen und für Kompression nie. Damit wäre qat_deflate der letzte Überrest dieser alten Haltung, und ausgerechnet der Pfad, der heute noch stillschweigend gewinnt und dabei elfmal langsamer ist. Das ist allerdings meine Deutung, kein Beleg. Die Commit-Historie der Prioritätswerte für die Kompression habe ich nicht nachverfolgt.

                                                                                                                                                                                                                                                    Wer das nachbauen will: den Zustand danach wieder zurücksetzen, also enabled=N und compressor=lzo. Ein Dauerbetrieb mit dieser Einstellung wäre eine echte Verschlechterung der Maschine.

                                                                                                                                                                                                                                                    Die unvermeidliche Frage: kann man damit Bitcoin oder Monero minen?

                                                                                                                                                                                                                                                    Nein. Und zwar aus zwei völlig verschiedenen Gründen, und dieser Unterschied ist der eigentlich interessante Teil.

                                                                                                                                                                                                                                                    Monero geht prinzipiell nicht, nicht bloß langsam. Monero nutzt seit 2019 RandomX, und der Algorithmus wurde absichtlich so entworfen, dass Spezialhardware keinen Vorteil hat. Er generiert zur Laufzeit zufällige Programme aus Integer-, Fließkomma- und Branch-Instruktionen und führt sie in einer VM aus, teils JIT-compiliert. Er braucht 2 MiB Scratchpad pro Thread, permanent random-access beschrieben und gelesen. Und im Fast-Mode zusätzlich einen Datensatz von rund 2,08 GiB im RAM, aus dem die VM ständig liest. Das macht RandomX speichergebunden statt rechengebunden, und deshalb sind ASICs dort wirtschaftlich uninteressant.

                                                                                                                                                                                                                                                    Die QAT-Karte ist das exakte Gegenteil davon: eine Festfunktions-Pipeline. Sie kann AES, SHA, RSA, DH und Deflate, und nichts sonst. Sie hat keinen Befehlssatz, kein Scratchpad-Konzept und keinen Zugriff auf einen 2-GiB-Arbeitsdatensatz. AES kommt in RandomX zwar vor, aber als eingebetteter Schritt in der VM-Schleife, nicht als abtrennbare Massenoperation, die man an einen Coprozessor auslagern könnte. Die CPU dieser Maschine kann RandomX übrigens sehr wohl. Der Algorithmus ist ja genau für CPUs gemacht.

                                                                                                                                                                                                                                                    Bitcoin geht theoretisch, praktisch ist es absurd. Bitcoin ist doppeltes SHA-256 über einen 80 Byte großen Blockheader, und SHA-256 kann die Karte. Nur scheitert es an zwei harten Punkten.

                                                                                                                                                                                                                                                    Erstens ist es über diesen Stack nicht einmal ansprechbar. Der In-Kernel-Treiber registriert kein reines SHA-256, sondern nur authenc(hmac(sha256),cbc(aes)), also HMAC-authentifizierte Verschlüsselung. Nackte Hashes bekäme man nur über den Userspace-Stack, und der existiert für diesen Chip nicht mehr. Es gibt also gar keinen Weg, der Karte einen Blockheader zum Hashen zu geben.

                                                                                                                                                                                                                                                    Zweitens ist die Größenordnung hoffnungslos, und dafür genügt eine geschenkte Obergrenze. Selbst wenn die Karte ihre volle Datenblattleistung als reines Hashing liefern könnte, landet man bei realistischen 64 bis 128 Byte pro Hash-Operation in der Größenordnung von 10⁷ bis 10⁸ Hashes pro Sekunde, also höchstens einige zehn MH/s. Erreichen wird sie das nie, die gemessenen Latenzen zeigen ja, dass sie bei kleinen Nutzlasten zwei Größenordnungen unter ihrem Sweet Spot arbeitet.

                                                                                                                                                                                                                                                    Hashrate

                                                                                                                                                                                                                                                    Charakter der Zahl

                                                                                                                                                                                                                                                    QAT 8950

                                                                                                                                                                                                                                                    höchstens 10⁸ H/s

                                                                                                                                                                                                                                                    unerreichbare Obergrenze

                                                                                                                                                                                                                                                    ein aktueller ASIC-Miner

                                                                                                                                                                                                                                                    etwa 2 mal 10¹⁴ H/s

                                                                                                                                                                                                                                                    Produktangabe

                                                                                                                                                                                                                                                    Bitcoin-Gesamtnetz, 03.08.2026

                                                                                                                                                                                                                                                    9,3 mal 10²⁰ H/s

                                                                                                                                                                                                                                                    gemessen, 932 EH/s

                                                                                                                                                                                                                                                    Selbst mit der geschenkten Obergrenze liegt ein einzelner ASIC noch um mindestens sechs Größenordnungen über der Karte, und das Gesamtnetz um dreizehn. Der Anteil am Netz wäre günstigstenfalls in der Größenordnung 10⁻¹³, bei zehn Minuten Blockzeit also eine erwartete Wartezeit jenseits jeder sinnvollen Zeitskala, bei 40 Watt Dauerlast. Ich verzichte hier absichtlich auf eine konkrete Jahreszahl. Die klingt zwar gut, wäre aber Scheinpräzision auf einer geschätzten Grundlage. Größenordnungen sind hier die ehrlichere Währung, und sie sind genauso eindrucksvoll.

                                                                                                                                                                                                                                                    Die eigentliche Pointe ist aber eine sprachliche. Krypto-Beschleuniger heißt Kryptographie, nicht Kryptowährung. Die Karte ist für das gebaut, was Verbindungen und Platten schützt: TLS-Handshakes, IPsec-Tunnel, AES-XTS auf Blockgeräten. Dass beide Bedeutungen dasselbe Wort benutzen, ist ein Sprachunfall, und ich bin ziemlich sicher, dass er der Kryptographie mehr geschadet hat als der Kryptowährung.

                                                                                                                                                                                                                                                    Betrieb: man fliegt thermisch blind

                                                                                                                                                                                                                                                    Eine praktische Warnung, falls jemand auf die Idee kommt, so ein Ding in einen Desktop zu stecken: die Karte hat keinen Temperatursensor. sensors zeigt nichts, der BMC kennt sie nicht, in der SDR steht kein Eintrag. Man sieht also nicht, wie warm sie wird.

                                                                                                                                                                                                                                                    Und die Randbedingungen sind ungünstig: der Kühlkörper ist rein passiv und für den Querstrom eines Rackgehäuses ausgelegt, spezifiziert sind 0 bis 55 Grad Umgebungstemperatur, es dürfen bis zu 40 Watt Verlustleistung sein, und mein Gehäuse ist auf Ruhe optimiert, mit bewusst langsam drehenden Lüftern. Die Netzwerkkarte im Nachbarslot liegt schon im Leerlauf bei 61 Grad, und die beiden teilen sich denselben schlechten Luftstrom. Wie warm die Karte unter der Last aus diesem Beitrag wirklich geworden ist, weiß ich nicht. Ohne Sensor bräuchte es ein IR-Thermometer oder ein Thermoelement. Steht auf der Liste.

                                                                                                                                                                                                                                                    Überflüssig gewordene Technik, und warum mir das trotzdem naheliegt

                                                                                                                                                                                                                                                    Diese Karte ist für mich so etwas wie eine Soundkarte. Es gab eine Zeit, da war eine dedizierte Soundkarte selbstverständlich, weil der Rest der Maschine das einfach nicht konnte. Ich hänge immer noch an den alten Creative-Karten, nicht nur an den ISA-Dingern, auch an den späteren. Die hatten eine Wertigkeit, ein Gewicht, eine Bestückung, die man ansehen konnte. Man hat ein Bauteil gekauft, das eine Aufgabe hatte, und das hat man auch gesehen.

                                                                                                                                                                                                                                                    Heute steckt in meiner Workstation nicht einmal mehr eine Onboard-Lösung im Einsatz, sondern ein Behringer 302USB, also ein kleines Mischpult mit USB-Audiointerface. Für meinen Fall reicht das absolut. Die Aufgabe ist nicht verschwunden, sie hat nur ihren Platz gewechselt, und die CPU rechnet das nebenbei mit, ohne dass es jemandem auffällt. Genau das ist mit Krypto passiert. AES-NI und VAES haben die Beschleunigerkarte nicht besiegt, sie haben sie aufgesogen.

                                                                                                                                                                                                                                                    Immer kleiner, komplexer und leistungsfähiger ist total geil. Ohne diese Entwicklung gäbe es die Hälfte von dem nicht, was wir heute technisch machen. Aber sie macht das Verstehen sehr viel schwieriger. Mein alter C64 und der VC20 davor, die Dinger hat man noch verstanden. Eine CPU mit rund einem Megahertz in einem 40-Pin-Gehäuse, groß genug und langsam genug, dass man mit dem Oszilloskop an einzelne Pins konnte und dabei etwas gesehen hat. Man konnte am Speicher nachmessen. Das war begreifbar im wörtlichen Sinn. An dem Xeon in dieser Maschine messe ich nichts nach. Der Die ist unter einem Heatspreader, die Signale sind differentiell und liegen im Gigahertzbereich, und selbst wenn ich rankäme, wäre mein Oszilloskop zu langsam. Dass bei dieser Karte das nackte Silizium offen liegt, ist ein Zufall der Bauform, und trotzdem freut es mich jedes Mal.

                                                                                                                                                                                                                                                    Dafür haben wir heute AI, um uns Dinge erklären zu lassen, und das ist ein echter Gewinn. Ich komme damit an Ecken, an die ich vor zehn Jahren nur mit sehr viel mehr Zeit gekommen wäre. Wir müssen nur alle aufpassen, dass wir dabei nicht aufhören zu verstehen. Der Unterschied zwischen „ich habe es erklärt bekommen“ und „ich habe es verstanden“ ist genau der Unterschied zwischen diesem Beitrag und einer Feature-Liste. Und ein Teil davon passiert ja bereits in der AI-Entwicklung selbst: wir verstehen nicht mehr im Detail, was in diesen Systemen passiert. Stand jetzt halte ich das für ein Problem. Vielleicht ist es aber auch bald einfach das Normale, und ich bin der Typ, der dem Oszilloskop nachtrauert.

                                                                                                                                                                                                                                                    Ehrliche Gesamteinschätzung

                                                                                                                                                                                                                                                    Als Produktivkomponente ist die Karte in dieser Maschine sinnlos. Eine einzige moderne CPU der Einstiegsklasse schlägt sie bei symmetrischer Krypto um Faktor 8,6, der Anwendungsfall, für den sie gekauft wurde, ist unter Linux versperrt, Intels Userspace hat sie aufgegeben, sie zieht laut Datenblatt bis zu 40 Watt für etwas, das die CPU besser kann, und gekühlt wird sie für einen Luftstrom, den mein Gehäuse nicht liefert.

                                                                                                                                                                                                                                                    Als Lehr- und Erzählobjekt ist sie ausgezeichnet. An diesem einen Stück Platine lassen sich Krypto-Offload als Architektur, Latenz gegen Durchsatz, warum Queue-Tiefe alles ist, PCIe-Generationen und Lane-Budgets, PCIe-Switches, SR-IOV, IOMMU-Gruppen und die Prioritätslogik der Linux Crypto API erklären. Ich kenne wenige Bauteile, die auf so kleiner Fläche so viele Anknüpfungspunkte haben. Und sie funktioniert einfach, nach 13 Jahren, ohne ein einziges installiertes Paket.

                                                                                                                                                                                                                                                    Genau diese Spannung war der Grund, sie überhaupt noch einmal einzustecken.

                                                                                                                                                                                                                                                    Was offen bleibt

                                                                                                                                                                                                                                                    • Die Karte per VFIO an eine FreeBSD-VM durchreichen und dort GELI auf QAT laufen lassen, also die Original-Nutzung rekonstruieren. Sie ist allein in ihrer IOMMU-Gruppe, technisch steht dem nichts im Weg. Das ist der Versuch, auf den ich am meisten Lust habe.
                                                                                                                                                                                                                                                    • SR-IOV aktivieren und sehen, was der Treiber mit 32 Virtual Functions macht. Völlig ungetestet.
                                                                                                                                                                                                                                                    • PCIe-Zähler messen, um zu belegen oder zu widerlegen, dass wirklich der Bus limitiert und nicht der Zugangspfad. Der wichtigste offene Messpunkt.
                                                                                                                                                                                                                                                    • Die Benchmarks methodisch nachziehen: Warmup, mehrere Läufe, Median und P95, CPU-Pinning.
                                                                                                                                                                                                                                                    • Kernel-RSA über die Karte messen. qat-rsa gewinnt per Priorität, aber es gibt keinen AF_ALG-Zugang zu akcipher.
                                                                                                                                                                                                                                                    • Temperatur und echte Leistungsaufnahme, beides nur extern messbar.
                                                                                                                                                                                                                                                    • Das PLX-EEPROM auslesen, um die Lane-Aufteilung zu belegen statt zu vermuten.

                                                                                                                                                                                                                                                    Siehe auch

                                                                                                                                                                                                                                                    Hast du so eine Karte noch im Einsatz, vielleicht sogar noch produktiv? Dann würde mich das wirklich interessieren, und ihr dürft mich sehr gerne fragen.

                                                                                                                                                                                                                                                    adb boosted

                                                                                                                                                                                                                                                    [?]adb » 🌐
                                                                                                                                                                                                                                                    @adbenitez@mastodon.de

                                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                                    [?]▶️ 🇳 🇺 🇳 🇩 » 🌐
                                                                                                                                                                                                                                                    @nund@social.tchncs.de

                                                                                                                                                                                                                                                    -Hack: Videos, MIDI-Takeover und Custom-UI auf der Push 3, ganz ohne Abletons Segen

                                                                                                                                                                                                                                                    Federico Pepe öffnet Display, MIDI, Dateisystem und LEDs für eigene Modifikationen

                                                                                                                                                                                                                                                    Der Eingriff in die Hardware zeigt deren volles Potenzial, das bislang bewusst nicht offengelegt hat. Dieser Ansatz zeigt, was mit offiziellem API-Support möglich wäre.

                                                                                                                                                                                                                                                    Bei Ableton Move haben ähnliche Community-Projekte in der Vergangenheit gezeigt, wie viel kreatives Potenzial in offenerer Hardware steckt, von Custom-Devices bis zu Barrierefreiheits-Features.
                                                                                                                                                                                                                                                    gearnews.de/ableton-push-hack-

                                                                                                                                                                                                                                                      [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                      @camilleroux@mastodon.social

                                                                                                                                                                                                                                                      Checkmate : un outil self-hosted open source pour surveiller l'uptime, les temps de réponse et la santé de votre infrastructure en temps réel. Un agent Capture collecte les métriques hardware (CPU, RAM, température) depuis vos endpoints distants. ⬇️
                                                                                                                                                                                                                                                      github.com/bluewave-labs/Check

                                                                                                                                                                                                                                                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-49y

                                                                                                                                                                                                                                                        [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                        @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                        [?]AllAboutSecurity » 🌐
                                                                                                                                                                                                                                                        @allaboutsecurity@mastodon.social

                                                                                                                                                                                                                                                        Linux-Bridge: STP-Timer-Lücke geschlossen

                                                                                                                                                                                                                                                        Im Netzwerk-Code des Linux-Kernels wurde eine Speicherfehler-Schwachstelle entdeckt, die sich in der Spanning-Tree-Protocol-Verwaltung der Software-Bridge versteckte.

                                                                                                                                                                                                                                                        all-about-security.de/linux-br

                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                          [?]heise online » 🌐
                                                                                                                                                                                                                                                          @heiseonline@social.heise.de

                                                                                                                                                                                                                                                          heise+ | Auswirkungen der neuen Secure-Boot-Zertifikate für Linux

                                                                                                                                                                                                                                                          Nach 15 Jahren sind die Secure-Boot-Zertifikate abgelaufen, mit denen auch Linux-Bootloader signiert sind. Wir erklären, welche Auswirkungen das auf Linux hat.

                                                                                                                                                                                                                                                          heise.de/ratgeber/Auswirkungen

                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                            [?]dewomser » 🌐
                                                                                                                                                                                                                                                            @dewomser@social.tchncs.de


                                                                                                                                                                                                                                                            Einen NFS-Share mounten. gerade wiederentdeckt
                                                                                                                                                                                                                                                            Erst nfs-common installieren
                                                                                                                                                                                                                                                            dann sowas in die Konsole:

                                                                                                                                                                                                                                                            sudo mount -t nfs 192.168.0.2:/ /media

                                                                                                                                                                                                                                                            Bei mir hats damit schon gemountet.
                                                                                                                                                                                                                                                            Jetzt noch was in /etc/fstab reinschreiben damit es beim booten mountet -> fertig

                                                                                                                                                                                                                                                            Das war sehr kurz. Im Internet gibts tausende Erklärbärseiten dafür.

                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                              [?]c't Magazin » 🌐
                                                                                                                                                                                                                                                              @ct_Magazin@social.heise.de

                                                                                                                                                                                                                                                              heise+ | Okularkameras im Test: Das ganz Kleine auf dem Bildschirm

                                                                                                                                                                                                                                                              Spezialkameras ersetzen Lichtmikroskop-Okulare und übertragen Bilder per USB auf den PC. Ein Modell passt auch an Ferngläser und funkt das Bild aufs Smartphone.

                                                                                                                                                                                                                                                              heise.de/tests/Okularkameras-i

                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                [?]hatniX » 🌐
                                                                                                                                                                                                                                                                @hatnix@social.tchncs.de

                                                                                                                                                                                                                                                                Guten Morgen zusammen!
                                                                                                                                                                                                                                                                In meinem heutigen Video spiele ich die Demo des 2D-Plattformers „Maxwell's Odyssey“ von @cosmicvoid
                                                                                                                                                                                                                                                                Viel Vergnügen: tube.tchncs.de/w/eeYUxAxaJahpC
                                                                                                                                                                                                                                                                oder hier: hatnix.net/vod/2026-08-06.html

                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                  [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                                                                  @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                                                                  Einsatzbericht für Nitrokey 3A (No NFC)

                                                                                                                                                                                                                                                                  Ich habe diesen Nitrokey 3A (No NFC) als Geschenk von GNU/Linux.ch erhalten für den 5K Artikel. Am Wochenende hatte ich genug Zeit, um diesen Stick zu testen und hier nun meine Meinung.

                                                                                                                                                                                                                                                                  gnulinux.ch/einsatzbericht-nit

                                                                                                                                                                                                                                                                    [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                    @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                    Codeberg dit non au code majoritairement généré par IA : 71 % de la communauté a voté pour l'interdiction, entre flou juridique sur le droit d'auteur en Europe et coût de stockage multiplié par cinq. ⬇️
                                                                                                                                                                                                                                                                    clubic.com/actualite-622627-l-

                                                                                                                                                                                                                                                                    📬 Ma veille dev de la semaine → l.camilleroux.com/veille-tgY

                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                      [?]Jörg 🇩🇪🇬🇧🇪🇺 » 🌐
                                                                                                                                                                                                                                                                      @AlienJay@burningboard.net

                                                                                                                                                                                                                                                                      RE: social.heise.de/@heiseonline/1

                                                                                                                                                                                                                                                                      Ein NoGo, dass damit das sichere Booten für Systeme in der Hand hat. Wenn Microsoft sich entschließt morgen keine Linux Bootloader mehr zu zertifizieren, können die nicht mehr mit gebootet werden. Man kann das abschalten, kein Problem. Aber hier geht es um das Prinzip. Mit Schuld sind die PC Hersteller, die nur MS Zertifikate im BIOS installieren. Auf neueren PCs teilweise sogar nur die neueren von 2023 und nicht mehr die Alten von 2011, was dann zur Folge hat, das alte Kernels nicht mehr booten.

                                                                                                                                                                                                                                                                      Ich würde mal sagen das System ist „broken by design“
                                                                                                                                                                                                                                                                      Linux muss einen Weg finden sich hier aus der Geiselhaft von Microsoft zu befreien. Und die PC Hersteller sind ein Schlüssel dazu. Aber die haben wahrscheinlich alle die Hosen voll, weil sie, wenn sie das unterstützen, Repressalien von Microsoft befürchten müssen.
                                                                                                                                                                                                                                                                      Das ist auch der Grund, warum so gut wie jeder neue Rechner mit MS Lizenz ausgeliefert wird und der Käufer kämpfen muss das zurück erstattet zu bekommen.

                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                      [?]heise online » 🌐
                                                                                                                                                                                                                                                                      @heiseonline@social.heise.de

                                                                                                                                                                                                                                                                      heise+ | Auswirkungen der neuen Secure-Boot-Zertifikate für Linux

                                                                                                                                                                                                                                                                      Nach 15 Jahren sind die Secure-Boot-Zertifikate abgelaufen, mit denen auch Linux-Bootloader signiert sind. Wir erklären, welche Auswirkungen das auf Linux hat.

                                                                                                                                                                                                                                                                      heise.de/ratgeber/Auswirkungen

                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                          [?]heise online » 🌐
                                                                                                                                                                                                                                                                          @heiseonline@social.heise.de

                                                                                                                                                                                                                                                                          heise+ | Auswirkungen der neuen Secure-Boot-Zertifikate für Linux

                                                                                                                                                                                                                                                                          Nach 15 Jahren sind die Secure-Boot-Zertifikate abgelaufen, mit denen auch Linux-Bootloader signiert sind. Wir erklären, welche Auswirkungen das auf Linux hat.

                                                                                                                                                                                                                                                                          heise.de/ratgeber/Auswirkungen

                                                                                                                                                                                                                                                                            Fred de CLX boosted

                                                                                                                                                                                                                                                                            [?]LinuxNews.de » 🌐
                                                                                                                                                                                                                                                                            @linuxnews@social.anoxinon.de

                                                                                                                                                                                                                                                                            [?]Teddy / Domingo (🇨🇵/🇬🇧) » 🌐
                                                                                                                                                                                                                                                                            @TeddyTheBest@framapiaf.org

                                                                                                                                                                                                                                                                            « OvsWrap » : une élévation de root menace des milliers de Linux. Le composant noyau d'Open vSwitch, un logiciel réseau très répandu sur les serveurs Linux, contient la faille . Un compte utilisateur ordinaire, sans droit particulier, obtient par cette faille les privilèges root. Un correctif est disponible depuis le 24 juillet, mais toutes les distributions ne l'ont pas encore intégré.
                                                                                                                                                                                                                                                                            clubic.com/actualite-624253-fa

                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                            [?]KaiXin » 🌐
                                                                                                                                                                                                                                                                            @kaixin@snac.bsd.cafe

                                                                                                                                                                                                                                                                            No kidding, I have been using the Office NX for more than a year under an annual subscription license on my laptop that I use for both work and personal use. I use it almost every day and it has been great experience, by far the best office suit based on my desktop experience for over 10 years. Until recently, in their 4501 version where they announce to add feature, I started to get TONS of crashes, multiples times almost daily! I am annoyed, and sad...

                                                                                                                                                                                                                                                                              [?]Monospace Mentor » 🌐
                                                                                                                                                                                                                                                                              @monospace@floss.social

                                                                                                                                                                                                                                                                              🚨LIVE NOW!🚨 DevOps/SRE Instructor Livestream

                                                                                                                                                                                                                                                                              On this lovely Wednesday, let's chat about , , or any other topic in the and space you're interested in!

                                                                                                                                                                                                                                                                              Owncast: live.monospacementor.com/

                                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                                [?]BlablaLinux » 🌐
                                                                                                                                                                                                                                                                                @blablalinux@mastodon.blablalinux.be

                                                                                                                                                                                                                                                                                🔹 Plus de choix matériel : Idéal pour diversifier vos serveurs ou tester de nouvelles architectures.

                                                                                                                                                                                                                                                                                Une excellente nouvelle pour réduire la consommation d'énergie sans sacrifier les fonctionnalités !

                                                                                                                                                                                                                                                                                📖 Pour lire le communiqué officiel complet : proxmox.com/en/about/company-d

                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                  [?]Linux User Group Nürnberg ✅ » 🌐
                                                                                                                                                                                                                                                                                  @lug_nuernberg@mastodon.online

                                                                                                                                                                                                                                                                                  Am Donnerstag, den 06.08. findet KEIN Linux-Treff Nord beim Theo statt. Theo hat im August Urlaub und wir treffen uns wieder bei ihm am 03.09. zur gewohnten Zeit ab 18:00 Uhr.

                                                                                                                                                                                                                                                                                  Das nächste virtuelle Treffen findet am 13.08. statt. Wer teilnehmen möchte, einfach eine Mail an kontakt[at]lug-noris.de senden.

                                                                                                                                                                                                                                                                                  [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                  @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                  Dioxus : un framework Rust pour construire des apps web, desktop et mobile depuis un seul codebase, avec hot-reloading subseconde et une gestion d'état qui pioche dans React, Solid et Svelte. 37 000 étoiles sur GitHub, open source. ⬇️
                                                                                                                                                                                                                                                                                  github.com/DioxusLabs/dioxus

                                                                                                                                                                                                                                                                                  📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Q31

                                                                                                                                                                                                                                                                                  Capture d'écran du README du dépôt GitHub de **Dioxus**, un framework Rust open-source permettant de créer des applications web, desktop et mobile avec une seule base de code, accompagné d'un exemple de code illustrant la gestion d'état avec des signaux.

                                                                                                                                                                                                                                                                                  Alt...Capture d'écran du README du dépôt GitHub de **Dioxus**, un framework Rust open-source permettant de créer des applications web, desktop et mobile avec une seule base de code, accompagné d'un exemple de code illustrant la gestion d'état avec des signaux.

                                                                                                                                                                                                                                                                                    [?]smallsolar » 🌐
                                                                                                                                                                                                                                                                                    @smallsolar@techhub.social

                                                                                                                                                                                                                                                                                    Anyone with a amazon paperwhite 3 (2015, 7th Gen) who would be interested in installing 6.15 and getting rid of nearly all the Amazon bits?

                                                                                                                                                                                                                                                                                    I'm now looking for brave alpha testers to dig out their old kindle and test installation scripts (there is a chance of bricking which could be rescued by tapping the serial lines)

                                                                                                                                                                                                                                                                                    Let me know if you are interested.

                                                                                                                                                                                                                                                                                      [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                      @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                      DashBeam : transfert de fichiers en peer-to-peer, chiffré de bout en bout, sans compte, sans limite de taille, sans stockage cloud. Windows, macOS, Linux, Android et navigateur. Open source et gratuit. ⬇️
                                                                                                                                                                                                                                                                                      github.com/tonyantony300/dashb

                                                                                                                                                                                                                                                                                      📬 Ma veille dev de la semaine → l.camilleroux.com/veille-tCe

                                                                                                                                                                                                                                                                                        [?]Sohrab Behdani :freebsd: » 🌐
                                                                                                                                                                                                                                                                                        @sohrab@mastodon.bsd.cafe

                                                                                                                                                                                                                                                                                        I’ve been working on a native KDE client based on , and I’m happy to announce its release under the name .

                                                                                                                                                                                                                                                                                        The goal of this project is to provide a better Tor experience for KDE Plasma users with a client that fits naturally into the KDE ecosystem, without GNOME dependencies and with a focus on a more native, simple, and integrated experience.

                                                                                                                                                                                                                                                                                        In this release, several parts of Carburetor have been redesigned so Karburetor can run independently from GNOME. The settings, proxy management, and user interface have been adapted to better match KDE standards.

                                                                                                                                                                                                                                                                                        Karburetor now uses native KDE settings and integrates more smoothly with Plasma services. Proxy handling has also been improved, allowing Plasma and KDE applications to directly use the Tor connection.

                                                                                                                                                                                                                                                                                        New features include active Bridge detection, improved support for different Tor transports, and a more extensible architecture for future improvements.

                                                                                                                                                                                                                                                                                        GitHub:
                                                                                                                                                                                                                                                                                        github.com/kdefarsi/karburetor

                                                                                                                                                                                                                                                                                        P.S. Due to network limitations in Iran, Codeberg being censored, and GitLab being sanctioned, unfortunately the sources are temporarily hosted on Microsoft GitHub for now.

                                                                                                                                                                                                                                                                                        I may move the project to KDE Invent in the future if possible, after it becomes more stable.

                                                                                                                                                                                                                                                                                          [?]input » 🌐
                                                                                                                                                                                                                                                                                          @feed@igeek.gamer-geek-news.com

                                                                                                                                                                                                                                                                                          🐧 Perpetua – cross-platform software KVM

                                                                                                                                                                                                                                                                                          Perpetua is a cross-platform software KVM that lets you control multiple computers with a single keyboard and mouse. The post Perpetua – cross-platform software KVM appeared first on LinuxLinks.

                                                                                                                                                                                                                                                                                          📰 Source: LinuxLinks
                                                                                                                                                                                                                                                                                          🔗 Link: https://www.linuxlinks.com/perpetua-cross-platform-software-kvm/

                                                                                                                                                                                                                                                                                          #Linux #OpenSource

                                                                                                                                                                                                                                                                                            Dๅᴉĸo boosted

                                                                                                                                                                                                                                                                                            [?]Ordinateurs-secondemain.fr » 🌐
                                                                                                                                                                                                                                                                                            @ordinateurs_secondemain@framapiaf.org

                                                                                                                                                                                                                                                                                            Aujourd'hui, programme top 🤩
                                                                                                                                                                                                                                                                                            (Repouets acceptés avec plaisir, ça me donne un coup de pouce 😉)

                                                                                                                                                                                                                                                                                            Prépa de PC dont 1 PC personnalisé, j'aime bien ça !

                                                                                                                                                                                                                                                                                            Ceux-ci ont déjà trouvés leurs nouveaux propriétaires 😉
                                                                                                                                                                                                                                                                                            (À vous : ils vont bientôt être expédiés)

                                                                                                                                                                                                                                                                                            Bonne journée à tous / toutes

                                                                                                                                                                                                                                                                                            Pc personnalisé

                                                                                                                                                                                                                                                                                            Alt...Pc personnalisé

                                                                                                                                                                                                                                                                                            Pc personnalisé

                                                                                                                                                                                                                                                                                            Alt...Pc personnalisé

                                                                                                                                                                                                                                                                                            Linux Mint installé sur un ordinateur

                                                                                                                                                                                                                                                                                            Alt...Linux Mint installé sur un ordinateur

                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                              [?]PurpleGengar » 🌐
                                                                                                                                                                                                                                                                                              @Purplegengar25@lgbtqia.space

                                                                                                                                                                                                                                                                                              Other than , I'm fascinated to know about editors on . As a social science person, I didn't know about it. It seems many in the field of math and biology, for example, have been using it as the standard. Even though I had biologist colleagues, they never mentioned it. I'm practising on currently, but unfortunately in my field it will be the PDFs that are useful, I also could be asked to submit a Word document.

                                                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                                                [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                                                                                                @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                                                                                                Captain it's Wednesday - Folge 190 - Frei in den Ferien

                                                                                                                                                                                                                                                                                                Folge 190 des CIW Podcasts.
                                                                                                                                                                                                                                                                                                Wir sprechen über nützliche Urlaubs-Apps

                                                                                                                                                                                                                                                                                                gnulinux.ch/ciw190-podcast

                                                                                                                                                                                                                                                                                                  [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                  @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                  [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                  @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                  [?]Zachary Powell 🥑 » 🌐
                                                                                                                                                                                                                                                                                                  @zachary@social.devwithzachary.com

                                                                                                                                                                                                                                                                                                  After 10+ years, LinuxonAndroid is BACK!

                                                                                                                                                                                                                                                                                                  Powered by a native PRoot engine, Complete Linux Installer lets you run full Ubuntu environments, Python, Node.js, Neovim, and SSH servers directly on Android.

                                                                                                                                                                                                                                                                                                  Built with Jetpack Compose & POSIX PTY C++ bridge
                                                                                                                                                                                                                                                                                                  1-Click software stack installers
                                                                                                                                                                                                                                                                                                  Multi-arch: ARM64, x86_64, ARMv7

                                                                                                                                                                                                                                                                                                  Open Testing is now LIVE on Google Play!

                                                                                                                                                                                                                                                                                                  Website & Docs: linuxonandroid.com/

                                                                                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                                                                                    [?]BjoernAusGE » 🌐
                                                                                                                                                                                                                                                                                                    @bjoern@social.sengotta.net

                                                                                                                                                                                                                                                                                                    Keine Ahnung ob das schon ins Fediverse gelangt ist aber bei Manjaro ist man derzeit wohl bei der Vereinsgründung angelegt: https://forum.manjaro.org/t/manjaro-2-0-manifesto/186171/316  #manjaro #linux #opensource

                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                      [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                                                                                                      @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                                                                                                      DI.DAY - Essen fassen: Es gibt 4 neue Gerichte

                                                                                                                                                                                                                                                                                                      Was landet demnächst auf euren Tellern? E-Bücher, Videos, Shopping oder Gespräche? Geht den Umstieg auf eine gesunde Ernährung langsam an. Vier neue Rezepte warten auf eure Kochkünste.

                                                                                                                                                                                                                                                                                                      .DAY

                                                                                                                                                                                                                                                                                                      gnulinux.ch/di-day-essen-fasse

                                                                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                                                                        [?]dewomser » 🌐
                                                                                                                                                                                                                                                                                                        @dewomser@social.tchncs.de

                                                                                                                                                                                                                                                                                                        🎵
                                                                                                                                                                                                                                                                                                        Noch ein Musikplayer diesmal für die Shell .
                                                                                                                                                                                                                                                                                                        Ist mit dem Paketmanager installierbar.
                                                                                                                                                                                                                                                                                                        Bin voll begeistert, Wahnsinn 👍 👍 👍
                                                                                                                                                                                                                                                                                                        kewplayer.com/

                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                          [?]LinuxNews.de » 🌐
                                                                                                                                                                                                                                                                                                          @linuxnews@social.anoxinon.de

                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                          [?]Verfassungklage@troet.cafe » 🌐
                                                                                                                                                                                                                                                                                                          @Verfassungklage@troet.cafe

                                                                                                                                                                                                                                                                                                          zieht die Notbremse nach Angriffen auf das

                                                                                                                                                                                                                                                                                                          reagiert auf im AUR. Die Übernahme verwaister bleibt vorerst deaktiviert.

                                                                                                                                                                                                                                                                                                          Die Entwickler griffen nach einer Serie verdächtiger ein. Hintergrund sind manipulierte Änderungen an bislang verwaisten AUR-Paketen. Bis auf Weiteres können deshalb keine neuen Pakete übernommen werden.

                                                                                                                                                                                                                                                                                                          fosstopia.de/arch-linux-zieht-

                                                                                                                                                                                                                                                                                                          Marcos Dione boosted

                                                                                                                                                                                                                                                                                                          [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                          @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                          Device Database : savoir avant achat si un objet connecté fonctionne sans cloud, grâce à la télémétrie anonymisée de millions d'installations Home Assistant. 19 237 appareils référencés, données réelles d'usage, en preview publique. ⬇️
                                                                                                                                                                                                                                                                                                          korben.info/home-assistant-dev

                                                                                                                                                                                                                                                                                                          📬 Ma veille dev de la semaine → l.camilleroux.com/veille-kA7

                                                                                                                                                                                                                                                                                                          Un écran d'ordinateur affiche le site "Device Database" avec le slogan "Find the right device for your smart home", posé sur un bureau sombre aux côtés d'une tablette et d'une tasse arborant le logo Home Assistant.

                                                                                                                                                                                                                                                                                                          Alt...Un écran d'ordinateur affiche le site "Device Database" avec le slogan "Find the right device for your smart home", posé sur un bureau sombre aux côtés d'une tablette et d'une tasse arborant le logo Home Assistant.

                                                                                                                                                                                                                                                                                                            [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                            @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                            xyOps : job scheduling, monitoring, alerting et gestion d'incidents dans un seul outil self-hosted. Quand un job échoue, il ouvre un ticket avec logs, historique et métriques liées. BSD-3, tier gratuit sans restriction de fonctionnalités. ⬇️
                                                                                                                                                                                                                                                                                                            github.com/pixlcore/xyops

                                                                                                                                                                                                                                                                                                            📬 Ma veille dev de la semaine → l.camilleroux.com/veille-qsZ

                                                                                                                                                                                                                                                                                                            Capture d'écran de l'interface web de XyOps, un système d'automatisation de workflows, affichant un éditeur visuel de flux de travail complexe avec des nœuds interconnectés représentant des tâches automatisées telles que des scripts shell, des requêtes HTTP et des alertes.

                                                                                                                                                                                                                                                                                                            Alt...Capture d'écran de l'interface web de XyOps, un système d'automatisation de workflows, affichant un éditeur visuel de flux de travail complexe avec des nœuds interconnectés représentant des tâches automatisées telles que des scripts shell, des requêtes HTTP et des alertes.

                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                              [?]Uckermark MacGyver :nonazi: » 🌐
                                                                                                                                                                                                                                                                                                              @maxheadroom@hub.uckermark.social

                                                                                                                                                                                                                                                                                                              Bart Simpson writing on the chalkboard meme: systemd-journald failed to write

                                                                                                                                                                                                                                                                                                              Alt...Bart Simpson writing on the chalkboard meme: systemd-journald failed to write

                                                                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                                                                [?]LWN.net » 🌐
                                                                                                                                                                                                                                                                                                                @lwn@fedi.lwn.net

                                                                                                                                                                                                                                                                                                                An LLM agent attempts to compromise a project on GitHub

                                                                                                                                                                                                                                                                                                                lwn.net/Articles/1087162/

                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                  [?]Saustrup » 🌐
                                                                                                                                                                                                                                                                                                                  @saustrup@mstdn.dk

                                                                                                                                                                                                                                                                                                                  I love the old school desktop environments. It goes hand in hand with the server grade hardware I could never afford, and just oozes industrial quality. Think heavy and intimidating workstations by , and with the power consumption of a regular house hold and metal cooling fans that could slice fingers.

                                                                                                                                                                                                                                                                                                                  Back in the day, had some of the same vibe. Also, the original Common Desktop Environment (#CDE), created by some of the major vendors of Unix-like systems created back in the day is still available (sourceforge.net/projects/cdesk). If you're used to a modern desktop, it could be a rough experience for daily use though.

                                                                                                                                                                                                                                                                                                                  Honestly, I'm quite happy with , and would be thrilled by just the visuals. I'm sure you know where I'm going with this, so without further jibberjabber, I give you: The CDE Plasma Theme! It's delicious! :D

                                                                                                                                                                                                                                                                                                                  github.com/spacestate1/cde-pla

                                                                                                                                                                                                                                                                                                                  Screenshot of Debian running the latest KDE Plasma, skinned with the CDE Plasma Theme. LibreWolf (Firefox fork) and a terminal window running btop in a tmux session visible. Also, a bottom bar with various application icons, time, date and virtual desktop.

                                                                                                                                                                                                                                                                                                                  Alt...Screenshot of Debian running the latest KDE Plasma, skinned with the CDE Plasma Theme. LibreWolf (Firefox fork) and a terminal window running btop in a tmux session visible. Also, a bottom bar with various application icons, time, date and virtual desktop.

                                                                                                                                                                                                                                                                                                                    [?]matthew - retroedge.tech » 🌐
                                                                                                                                                                                                                                                                                                                    @matthew@social.retroedge.tech

                                                                                                                                                                                                                                                                                                                    I just shipped a refurbished ThinkPad T570 with Linux pre-installed.

                                                                                                                                                                                                                                                                                                                    Sold and shipped out-of-state to someone I have not met in person, but was referred to me by a friend.

                                                                                                                                                                                                                                                                                                                    #ThinkPad #Linux

                                                                                                                                                                                                                                                                                                                      controlc boosted

                                                                                                                                                                                                                                                                                                                      [?]Steven Saus [he/him] » 🌐
                                                                                                                                                                                                                                                                                                                      @StevenSaus@faithcollapsing.com

                                                                                                                                                                                                                                                                                                                      EU Age Verification Project Mandates Hardware-Bound Attestation

                                                                                                                                                                                                                                                                                                                      The EU’s age verification project confirms hardware-bound attestation is mandatory, raising concerns over Linux, custom ROMs, and open-source access.

                                                                                                                                                                                                                                                                                                                      Archive: ia: https://s.faithco...

                                                                                                                                                                                                                                                                                                                      -verification -&-open-source-news
                                                                                                                                                                                                                                                                                                                      linuxiac.com/eu-age-verificati

                                                                                                                                                                                                                                                                                                                      EU Age Verification Project Mandates Hardware-Bound Attestation

                                                                                                                                                                                                                                                                                                                      Alt...EU Age Verification Project Mandates Hardware-Bound Attestation

                                                                                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                                                                                        [?]Steven Saus [he/him] » 🌐
                                                                                                                                                                                                                                                                                                                        @StevenSaus@faithcollapsing.com

                                                                                                                                                                                                                                                                                                                        Linux Desktop Market Share Surpasses 10% in North America

                                                                                                                                                                                                                                                                                                                        Statcounter reports Linux at 10.65% of desktop usage in North America, with Cloudflare data lending further support to the milestone.

                                                                                                                                                                                                                                                                                                                        -&-open-source-news
                                                                                                                                                                                                                                                                                                                        linuxiac.com/linux-desktop-mar

                                                                                                                                                                                                                                                                                                                        Linux reaches 10.65% desktop share in North America.

                                                                                                                                                                                                                                                                                                                        Alt...Linux reaches 10.65% desktop share in North America.

                                                                                                                                                                                                                                                                                                                          [?]Ange des ténèbres 🐈 » 🌐
                                                                                                                                                                                                                                                                                                                          @angedestenebres@mastodon.tedomum.net

                                                                                                                                                                                                                                                                                                                          Sinon, avec , 8Go ça roule tout seul 😁

                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                            [?]Farooq [Master Patata] » 🌐
                                                                                                                                                                                                                                                                                                                            @farooqkz@mastodon.bsd.cafe

                                                                                                                                                                                                                                                                                                                            On this thread on Lemmy you can find a bunch of crazy nerds talking about self hosting things and so on:

                                                                                                                                                                                                                                                                                                                            realbitcoin.cash/post/347401

                                                                                                                                                                                                                                                                                                                            Like one of them:

                                                                                                                                                                                                                                                                                                                            I converted my gaming machine into a server a while back. I like to live dangerously though, no proxmox. Baremetal. If my blog is slow, sorry y’all, I’m gaming. Deal with it.

                                                                                                                                                                                                                                                                                                                            It's good to know you are not the only one xD

                                                                                                                                                                                                                                                                                                                            The 3 stages of self hostin

From left to right
1. I love Google Drive, Google Photos, Netflix, etc. Everything just works. Why would any one run a server at home?
2. I host my own Nextcloud, Jellyfin, Immich, Home Assistant. I own my data, save money and learn Linux along the way.
3. Cloud? What cloud? My Thinkpad under the stairs runs 27 Docker containers, Proxmox, Tailscale and a UPS. My family has accidentally become my beta testers.

                                                                                                                                                                                                                                                                                                                            Alt...The 3 stages of self hostin From left to right 1. I love Google Drive, Google Photos, Netflix, etc. Everything just works. Why would any one run a server at home? 2. I host my own Nextcloud, Jellyfin, Immich, Home Assistant. I own my data, save money and learn Linux along the way. 3. Cloud? What cloud? My Thinkpad under the stairs runs 27 Docker containers, Proxmox, Tailscale and a UPS. My family has accidentally become my beta testers.

                                                                                                                                                                                                                                                                                                                              [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                              @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                              [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                              @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                                              [?]alephoto85 :netbsd: :xmpp: » 🌐
                                                                                                                                                                                                                                                                                                                              @alephoto85@fedi.bobadin.icu

                                                                                                                                                                                                                                                                                                                              Unfortunately, for of my university mail account, I have to use Microsoft Outlook (I know, I know! Luckily, I’ve set up a redirect, so I hardly ever have to use it).

                                                                                                                                                                                                                                                                                                                              Tonight I tried using Firefox on NetBSD, but “Something went wrong.”

                                                                                                                                                                                                                                                                                                                              When I changed the user agent and set it to "Firefox on Linux", everything works fine, no problems, nothing "was wrong"!

                                                                                                                                                                                                                                                                                                                              In short, I think “Microsoft loves open source" but not NetBSD 😆.
                                                                                                                                                                                                                                                                                                                              One more reason to keep using it 😈

                                                                                                                                                                                                                                                                                                                              (Forgive the corny joke, I know MS doesn’t actually love open source at all 😆)

                                                                                                                                                                                                                                                                                                                              #bsd #netbsd #bsdunix #unix #unixITA #unixitalia #guuf #guufxmpp #guufITA #linux #linuxITA #linuxitalia

                                                                                                                                                                                                                                                                                                                                [?]Mathieu Goux » 🌐
                                                                                                                                                                                                                                                                                                                                @Gouximan@social.sciences.re

                                                                                                                                                                                                                                                                                                                                Dites, quelle distribution Linux vous me conseillerez pour :

                                                                                                                                                                                                                                                                                                                                - du jeu sur Steam / GOG etc.
                                                                                                                                                                                                                                                                                                                                - de la bureautique (beaucoup d'éditeurs continuent de bosser sur Word et utilisent Zoom...)
                                                                                                                                                                                                                                                                                                                                - de la radio / podcast
                                                                                                                                                                                                                                                                                                                                - du stream sur Twitch, et du montage vidéo light ?

                                                                                                                                                                                                                                                                                                                                J'ai été très longtemps sur Ubuntu, mais je suis ouvert à d'autres distributions.

                                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                  [?]Andreas » 🌐
                                                                                                                                                                                                                                                                                                                                  @andreasgoebel@bildung.social

                                                                                                                                                                                                                                                                                                                                  Ich bespiele im kommenden Schuljahr alle Rechner in der Schule und (!) die BYOD Geräte (bei denen, die das wollen) mit dem gleichen Image. Dafür waren ein paar Tricks nötig. von sorgt dafür, dass das gleiche Image auf BIOS und UEFI laufen kann, mit SATA und nvme. Ein Skript von mir erkennt, ob es sich um ein BYOD Gerät handelt, das dann einen permanenten User bekommt (ohne Netzwerk).

                                                                                                                                                                                                                                                                                                                                    [?]GinjFo » 🌐
                                                                                                                                                                                                                                                                                                                                    @GinjFo@mastodon.social

                                                                                                                                                                                                                                                                                                                                    vient-il réellement de franchir la barre historique des 10 % sur les ordinateurs de bureau en Amérique du Nord ? Le chiffre fait du bruit et il est largement partagé depuis ces derniers jours. ginjfo.com/actualites/windows-

                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                      [?]Genista :GlfOS: » 🌐
                                                                                                                                                                                                                                                                                                                                      @genista@social.genista.info

                                                                                                                                                                                                                                                                                                                                      Am 16.06.2026 hab ich GLFOS auf meinem Hauptrechner installiert.

                                                                                                                                                                                                                                                                                                                                      Ich bin so zufrieden und eine Erkenntnis, die ich bereits gewonnen habe, ist das es kein Zurück mehr auf Arch, Cachy oder gar Manjaro geben wird.
                                                                                                                                                                                                                                                                                                                                      Noch nie war ich mit einer Distro so zufrieden. ❤️❤️❤️
                                                                                                                                                                                                                                                                                                                                      JA es ist etwas Umstellung wobei es bei GLF etwas einfacher ist als bei Nix.

                                                                                                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                        [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                        @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                        Self-héberger son serveur mail en 2026 : SPF, DKIM, DMARC, et un LLM local (Gemma 4B) branché sur rspamd pour filtrer le spam sans envoyer vos emails à une API externe. ⬇️
                                                                                                                                                                                                                                                                                                                                        blog.haschek.at/2026/you-shoul

                                                                                                                                                                                                                                                                                                                                        📬 Ma veille dev de la semaine → l.camilleroux.com/veille-nkP

                                                                                                                                                                                                                                                                                                                                        Aperçu d'un article de blog de Christian Haschek intitulé « You should self-host your mail server – maybe even at home, because spam is a solved problem », illustré par une photo d'enveloppes roses dans un porte-courrier.

                                                                                                                                                                                                                                                                                                                                        Alt...Aperçu d'un article de blog de Christian Haschek intitulé « You should self-host your mail server – maybe even at home, because spam is a solved problem », illustré par une photo d'enveloppes roses dans un porte-courrier.

                                                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                          [?]Finns End » 🌐
                                                                                                                                                                                                                                                                                                                                          @alexberkman@kolektiva.social

                                                                                                                                                                                                                                                                                                                                          Hallo zusammen, ich bin auf kolektia social, weil es leider social anoxinon zerschossen hat (#socialanoxinon). Das Profil war @finnsend.

                                                                                                                                                                                                                                                                                                                                          Sollten die Daten wieder hergestellt werden, dann ziehe ich trotzdem hier um. Leider weiß ich nicht mehr, wer mir alles gefolgt ist. Aber ich will nicht 15 Tage warten, ihr geht mir im zu sehr ab. Besonders in Zeiten, in denen "Landnahme", "Angriff" und "Kontrollverlust" mehr Headlines machen als das humanitäre Desaster von mehr als 43 toten Menschen! In dieser Zeit alleine sein, ist nicht gut. Deswegen bin ich froh, wieder mit euch in Kontakt zu kommen (#notjustsad).

                                                                                                                                                                                                                                                                                                                                          Ich bin ein (mittel) alter Anarcho (he/him, bi) aus München, Interessen sind nach wie vor Antifa (#dankeantifa) (Wer verrät uns nie? Die Anarchie!) und und alles, was den fürchterlichen und verhindert.

                                                                                                                                                                                                                                                                                                                                          Ich hoffe, ich finde wieder die Leute, die ich verloren habe.

                                                                                                                                                                                                                                                                                                                                          Schön, zu sein. Und danke an das Team von @moderation für die Aufnahme!

                                                                                                                                                                                                                                                                                                                                          Solidarische Grüße!

                                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                            [?]C.H. » 🌐
                                                                                                                                                                                                                                                                                                                                            @c_th1@digitalcourage.social

                                                                                                                                                                                                                                                                                                                                            verändert sich zunehmend von einem klassischen zu einer Plattform für , -Dienste, und .

                                                                                                                                                                                                                                                                                                                                            Viele Nutzer sind davon wenig begeistert - doch ist nur der Anfang: Auch Autos, E-Book-Reader und andere Alltagsgeräte enthalten zunehmend unfreie .

                                                                                                                                                                                                                                                                                                                                            Die Hersteller nutzen das Machtungleichgewicht zunehmend extremer aus - und zeigen damit deutlich, wohin sich die Technikbranche entwickelt.

                                                                                                                                                                                                                                                                                                                                            In diesem Video analysiere ich anhand konkreter Beispiele, warum immer mehr Nutzer die Kontrolle über ihre eigenen Geräte verlieren – und weshalb freie Software für viele eine langfristige Alternative sein kann.

                                                                                                                                                                                                                                                                                                                                            Alle Infos mit mehr Hintergründen/Quellen im kompletten U-Labs Artikel:

                                                                                                                                                                                                                                                                                                                                            u-labs.de/portal/win11-kein-os/

                                                                                                                                                                                                                                                                                                                                            youtube.com/watch?v=S5bXrQCXRzE




                                                                                                                                                                                                                                                                                                                                            @opensource
                                                                                                                                                                                                                                                                                                                                            @linuxmagazine
                                                                                                                                                                                                                                                                                                                                            @foss

                                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                            [?]adminForge :cloud: » 🌐
                                                                                                                                                                                                                                                                                                                                            @adminforge@kanoa.de

                                                                                                                                                                                                                                                                                                                                            🎉 Neues Design für ipwho.de

                                                                                                                                                                                                                                                                                                                                            Die IP-Lookup-Seite aus der adminForge-Familie hat ein frisches, modernes Design bekommen mit eigenem violetten 🟣 Look.

                                                                                                                                                                                                                                                                                                                                            ✅ IPv4 & IPv6 auf einen Blick
                                                                                                                                                                                                                                                                                                                                            🖥️ Weiterhin 100% curl-freundlich, kein API-Key nötig
                                                                                                                                                                                                                                                                                                                                            🚫 Kein Tracking, keine Werbung, keine Cookies

                                                                                                                                                                                                                                                                                                                                            👉 ipwho.de

                                                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                              [?]Stephan » 🌐
                                                                                                                                                                                                                                                                                                                                              @stephan@sonomu.club

                                                                                                                                                                                                                                                                                                                                              Gerade habe ich vier Stunden damit zugebracht, herauszufinden, warum die letzten beiden Kanäle meines Behringer UMC1820 (plus Audiophile ADAT) unter Linux/Pipewire nicht funktionierten.

                                                                                                                                                                                                                                                                                                                                              Es stellte sich (natürlich) heraus, dass ich mit dem Befehl

                                                                                                                                                                                                                                                                                                                                              "cat /proc/asound/cards"

                                                                                                                                                                                                                                                                                                                                              die ID des Interfaces herauskriegen kann. Diese kann ich dann selbstverständlich in

                                                                                                                                                                                                                                                                                                                                              "amixer -c 2 contents"

                                                                                                                                                                                                                                                                                                                                              verwenden, um herauszubekommen, wie der Mixer für das Interface eingestellt ist.

                                                                                                                                                                                                                                                                                                                                              (…)

                                                                                                                                                                                                                                                                                                                                                [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                Databasement : interface self-hosted pour centraliser vos backups de bases de données. MySQL, PostgreSQL, MongoDB, SQLite, planification, rétention configurable, stockage S3/SFTP, restauration cross-serveur. Un seul container Docker à lancer. ⬇️
                                                                                                                                                                                                                                                                                                                                                david-crty.github.io/databasem

                                                                                                                                                                                                                                                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-GfM

                                                                                                                                                                                                                                                                                                                                                  [?]SiestⒶcorta » 🌐
                                                                                                                                                                                                                                                                                                                                                  @Siestacorta@mastodon.parleur.net

                                                                                                                                                                                                                                                                                                                                                  🍒
                                                                                                                                                                                                                                                                                                                                                  "C'est un cap que Linux n'a jamais franchi jusque-là. En juillet 2026, a atteint 10,65 % de parts de marché sur PC de bureau en Amérique du Nord selon Statcounter".

                                                                                                                                                                                                                                                                                                                                                  lesnumeriques.com/ordinateur-d

                                                                                                                                                                                                                                                                                                                                                    mathieui boosted

                                                                                                                                                                                                                                                                                                                                                    [?]Uckermark MacGyver :nonazi: » 🌐
                                                                                                                                                                                                                                                                                                                                                    @maxheadroom@hub.uckermark.social

                                                                                                                                                                                                                                                                                                                                                    Linux is running large advertising campaigns now in Berlin

                                                                                                                                                                                                                                                                                                                                                    A glowing digital display shows an error log from a system journal, listing multiple instances of "Failed to write entry" with details about byte sizes and item counts. The scene is set at night, with a visible city backdrop and foliage.

                                                                                                                                                                                                                                                                                                                                                    Alt...A glowing digital display shows an error log from a system journal, listing multiple instances of "Failed to write entry" with details about byte sizes and item counts. The scene is set at night, with a visible city backdrop and foliage.

                                                                                                                                                                                                                                                                                                                                                      [?]KaiXin » 🌐
                                                                                                                                                                                                                                                                                                                                                      @kaixin@snac.bsd.cafe

                                                                                                                                                                                                                                                                                                                                                      I did not even realize but now my has been running 15.1-RELEASE-p2, it simply upgrade from 15.1-RELEASE-p1 during regular pkg upg runs. I guess that it something impressive achieved by the new pkgbase tool. It feels like running a rolling-release distro now.


                                                                                                                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                        [?]The Late Night Linux Family » 🌐
                                                                                                                                                                                                                                                                                                                                                        @latenightlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                        Initial Steam Machine reviews are broadly positive, Jellyfin is losing some key project leaders, Sony deletes more movies that people “bought”, why you probably shouldn’t wipe your phone when the US authorities ask for access, Graham repurposes some discarded crypto hardware to play arcade games, Félim gets that old game working, a great terminal music player, and more.

                                                                                                                                                                                                                                                                                                                                                        latenightlinux.com/late-night-

                                                                                                                                                                                                                                                                                                                                                        Late Night Linux artwork

                                                                                                                                                                                                                                                                                                                                                        Alt...Late Night Linux artwork

                                                                                                                                                                                                                                                                                                                                                          [?]RobCampbell » 🌐
                                                                                                                                                                                                                                                                                                                                                          @RobCampbell@twit.social

                                                                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                          [?]leyrer » 🌐
                                                                                                                                                                                                                                                                                                                                                          @leyrer@23.social


                                                                                                                                                                                                                                                                                                                                                          Wenn dass der Sven Guckes noch gesehen hätte ...

                                                                                                                                                                                                                                                                                                                                                          A person turning off a fuse.

                                                                                                                                                                                                                                                                                                                                                          Alt...A person turning off a fuse.

                                                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                            [?]Earl » 🌐
                                                                                                                                                                                                                                                                                                                                                            @Earl@mast.john1126.com

                                                                                                                                                                                                                                                                                                                                                            Quick Demonstration:

                                                                                                                                                                                                                                                                                                                                                            Translating text without using a web browser, no logins, using free tools:





                                                                                                                                                                                                                                                                                                                                                            (This translation revealed something that the philosopher, Plato, said, which surprised me.... and his warning is a good one.)

                                                                                                                                                                                                                                                                                                                                                              [?]R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou: [he/him/my good fellow] » 🌐
                                                                                                                                                                                                                                                                                                                                                              @rl_dane@polymaths.social

                                                                                                                                                                                                                                                                                                                                                              Found an old screenshot of my #Sharp #Zaurus running #Linux back in #2004.

                                                                                                                                                                                                                                                                                                                                                              This was the shiz. XD

                                                                                                                                                                                                                                                                                                                                                              Screenshot of the Terminal application from the Sharp Zaurus taken on October 13, 2004.
Even though it's only 240x320 (scaled up 300% here), it looks remarkably like a desktop OS of the day with a blue lined titlebar with question mark an X window decorations, a menubar and toolbar, a drop-down menu for commands, the terminal output itself showing the output of ls, file, and less commands, then at the bottom a start menu and system tray.

This alt text was not generated by AI. I just have ADHD. 😆

                                                                                                                                                                                                                                                                                                                                                              Alt...Screenshot of the Terminal application from the Sharp Zaurus taken on October 13, 2004. Even though it's only 240x320 (scaled up 300% here), it looks remarkably like a desktop OS of the day with a blue lined titlebar with question mark an X window decorations, a menubar and toolbar, a drop-down menu for commands, the terminal output itself showing the output of ls, file, and less commands, then at the bottom a start menu and system tray. This alt text was not generated by AI. I just have ADHD. 😆

                                                                                                                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                [?]Rainer "friendica" Sokoll » 🌐
                                                                                                                                                                                                                                                                                                                                                                @rainer@friendica.sokoll.com

                                                                                                                                                                                                                                                                                                                                                                Jetzt muß nur noch jemand Linus was von zram erzählen.

                                                                                                                                                                                                                                                                                                                                                                ❯ zramctl
                                                                                                                                                                                                                                                                                                                                                                NAME       ALGORITHM DISKSIZE  DATA COMPR  TOTAL STREAMS MOUNTPOINT
                                                                                                                                                                                                                                                                                                                                                                /dev/zram0 zstd         15,7G  2,6G  625M 640,9M      10 [SWAP]
                                                                                                                                                                                                                                                                                                                                                                ❯

                                                                                                                                                                                                                                                                                                                                                                2,6 GB sind auf 625 MB plus Overhead zusammengestampft worden. Die Kiste hat 32 GB RAM, davon 16 GB für zramswap.
                                                                                                                                                                                                                                                                                                                                                                Bei diesem Verhältnis passen etwa 64 GB in den Swap plus 16 GB realer RAM, macht etwa 80 GB.


                                                                                                                                                                                                                                                                                                                                                                Does Linux use less RAM?

                                                                                                                                                                                                                                                                                                                                                                  mathieui boosted

                                                                                                                                                                                                                                                                                                                                                                  [?]Devin Prater :blind: » 🌐
                                                                                                                                                                                                                                                                                                                                                                  @pixelate@tweesecake.social

                                                                                                                                                                                                                                                                                                                                                                  Well y'all, Linux stuff is happening fast. Cthulhu is a fork of Orca with like lots of stuff. Wine runs Windows programs on Linux.

                                                                                                                                                                                                                                                                                                                                                                  If Cthulhu is running, the Wine Accessibility plugin is enabled, and the helper package is installed, you should only need to launch the Wine or Proton program normally.

                                                                                                                                                                                                                                                                                                                                                                  Cthulhu will automatically:

                                                                                                                                                                                                                                                                                                                                                                  - Detect the active Wine/Proton prefix.
                                                                                                                                                                                                                                                                                                                                                                  - Start the helper inside that prefix.
                                                                                                                                                                                                                                                                                                                                                                  - Read supported standard Windows controls.
                                                                                                                                                                                                                                                                                                                                                                  - Accept speech requests from programs using NVDA Controller or Tolk.

                                                                                                                                                                                                                                                                                                                                                                  It won’t automatically make custom-drawn or DirectX game interfaces accessible. Those need built-in self-voicing through NVDA Controller/Tolk or future game-specific support. There might also be a short delay of up to roughly two
                                                                                                                                                                                                                                                                                                                                                                  seconds while Cthulhu discovers a newly started Wine process.

                                                                                                                                                                                                                                                                                                                                                                  Cthulhu’s Git repository: git.stormux.org/storm/cthulhu

                                                                                                                                                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                    [?]Verfassungklage@troet.cafe » 🌐
                                                                                                                                                                                                                                                                                                                                                                    @Verfassungklage@troet.cafe

                                                                                                                                                                                                                                                                                                                                                                    So will mit Testing überzeugen

                                                                                                                                                                                                                                                                                                                                                                    TUXEDO OS stellt seine technische Basis auf um. Nicht nur Privat- sondern vor allem sollen von einer langfristig planbaren und modernen -Plattform profitieren. Der Fokus liegt auf Stabilität, Sicherheit und einfacher Verwaltung.

                                                                                                                                                                                                                                                                                                                                                                    Der Wechsel bedeutet keine Neuausrichtung des Betriebssystems. TUXEDO OS bleibt eng auf die eigene Hardware abgestimmt.

                                                                                                                                                                                                                                                                                                                                                                    fosstopia.de/so-will-tuxedo-os

                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                      [?]Linux User Group Nürnberg ✅ » 🌐
                                                                                                                                                                                                                                                                                                                                                                      @lug_nuernberg@mastodon.online

                                                                                                                                                                                                                                                                                                                                                                      Vollmondtreffen der ALIGN:

                                                                                                                                                                                                                                                                                                                                                                      Am Dienstag, den 04.08.2026 findet in Nürnberg wieder um 17:00 Uhr das Treffen der im Delphi, Innere Laufer Gasse 22 statt.

                                                                                                                                                                                                                                                                                                                                                                      , freie Software und andere Themen stehen auf der Agenda.

                                                                                                                                                                                                                                                                                                                                                                      Diese Info findet sich auch auf unserer Webseite unter Termine.

                                                                                                                                                                                                                                                                                                                                                                      Einfach vorbeischauen, auch "Neue" sind gerne gesehen. Wir freuen uns auf eine rege Teilnahme.

                                                                                                                                                                                                                                                                                                                                                                      Wegen der Tischreservierung bitte vorab eine Info an rqxzbader[at]gmx.de senden.

                                                                                                                                                                                                                                                                                                                                                                      Vielen Dank.

                                                                                                                                                                                                                                                                                                                                                                      Foto: Auf einem Tisch befinden sich ein brennendes Teelicht in einem Glas, Essbesteck, unser Tischkarte mit dem Frankentux sowie eine Speisekarte mit dem Aufdruck "Delphi".

                                                                                                                                                                                                                                                                                                                                                                      Alt...Foto: Auf einem Tisch befinden sich ein brennendes Teelicht in einem Glas, Essbesteck, unser Tischkarte mit dem Frankentux sowie eine Speisekarte mit dem Aufdruck "Delphi".

                                                                                                                                                                                                                                                                                                                                                                        Debacle boosted

                                                                                                                                                                                                                                                                                                                                                                        [?]LWN.net » 🌐
                                                                                                                                                                                                                                                                                                                                                                        @lwn@fedi.lwn.net

                                                                                                                                                                                                                                                                                                                                                                        [?]9to5Linux » 🌐
                                                                                                                                                                                                                                                                                                                                                                        @9to5linux@floss.social

                                                                                                                                                                                                                                                                                                                                                                        Massive 13 “Trixie” Kernel Update Addresses 68 Vulnerabilities, Patch Now 9to5linux.com/new-debian-13-tr

                                                                                                                                                                                                                                                                                                                                                                        Debian 13 default boot splash screen

                                                                                                                                                                                                                                                                                                                                                                        Alt...Debian 13 default boot splash screen

                                                                                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                          [?]Larvitz :fedora: » 🌐
                                                                                                                                                                                                                                                                                                                                                                          @Larvitz@burningboard.net

                                                                                                                                                                                                                                                                                                                                                                          Ansible is easy to install. A sane, reproducible development environment takes more thought.

                                                                                                                                                                                                                                                                                                                                                                          My downstream-first setup uses RHEL 10.2, Podman, VS Code Dev Containers, and Red Hat-packaged Ansible Development Tools, while keeping the boundaries between upstream projects, downstream products, development containers, and production Execution Environments explicit.

                                                                                                                                                                                                                                                                                                                                                                          blog.hofstede.it/sane-developm

                                                                                                                                                                                                                                                                                                                                                                            [?]ricardo :mastodon: » 🌐
                                                                                                                                                                                                                                                                                                                                                                            @governa@fosstodon.org

                                                                                                                                                                                                                                                                                                                                                                            How to Build Your Offline Knowledge Library with on

                                                                                                                                                                                                                                                                                                                                                                            ostechnix.com/kiwix-build-offl

                                                                                                                                                                                                                                                                                                                                                                              [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                              @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                              [?]BlablaLinux » 🌐
                                                                                                                                                                                                                                                                                                                                                                              @blablalinux@mastodon.blablalinux.be

                                                                                                                                                                                                                                                                                                                                                                              🎵 ASMR de geek : le chant du WD Velociraptor 10 000 tr/min ! 🦖💽
                                                                                                                                                                                                                                                                                                                                                                              Ce petit bijou de 2012 combinait la vitesse d'un SCSI et l'interface SATA... et surtout, ce bruit si particulier qu'on n'oublie jamais une fois entendu. Les anciens savent 😌
                                                                                                                                                                                                                                                                                                                                                                              🔊 À écouter (et à réentendre) ici : peertube.blablalinux.be/w/cXsS

                                                                                                                                                                                                                                                                                                                                                                                [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                Neko Master : un dashboard self-hosted pour visualiser et auditer le trafic réseau en temps réel, avec analyse par domaine, par IP (ASN + géolocalisation) et par nœud proxy. Support multi-backend OpenClash, PWA, dark mode. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                github.com/foru17/neko-master

                                                                                                                                                                                                                                                                                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-ate

                                                                                                                                                                                                                                                                                                                                                                                Capture d'écran de l'interface de Neko Master, un tableau de bord d'analyse de trafic réseau affichant des graphiques de distribution du trafic par règles, une liste des applications les plus consommatrices (YouTube, Spotify, GitHub) et un diagramme de flux de chaîne de règles, le tout sur fond sombre.

                                                                                                                                                                                                                                                                                                                                                                                Alt...Capture d'écran de l'interface de Neko Master, un tableau de bord d'analyse de trafic réseau affichant des graphiques de distribution du trafic par règles, une liste des applications les plus consommatrices (YouTube, Spotify, GitHub) et un diagramme de flux de chaîne de règles, le tout sur fond sombre.

                                                                                                                                                                                                                                                                                                                                                                                  Christian boosted

                                                                                                                                                                                                                                                                                                                                                                                  [?]Sascha Pallenberg 🇹🇼 ♻️ ⚡ » 🌐
                                                                                                                                                                                                                                                                                                                                                                                  @pallenberg@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                  2026 is the year of and

                                                                                                                                                                                                                                                                                                                                                                                  "Linux Desktop Market Share Surpasses 10% in North America"

                                                                                                                                                                                                                                                                                                                                                                                  linuxiac.com/linux-desktop-mar

                                                                                                                                                                                                                                                                                                                                                                                    [?]David Revoy » 🌐
                                                                                                                                                                                                                                                                                                                                                                                    @davidrevoy@framapiaf.org

                                                                                                                                                                                                                                                                                                                                                                                    It feels good to draw these two again for the next MiniFantasyTheater!

                                                                                                                                                                                                                                                                                                                                                                                    A screenshot of my main screen: on left, Beeref, with a collection of face of the casting of the Avian Intelligence series (the Parrot and Cepper, the Gothic Sorceress) On the center, Krita, with on the canvas a pencil study of Cepper painting a canvas , happy, while Parrot look at her. 
On a corner of the screen, neofetch in a terminal showing some spec of my GNU/Linux desktop.

                                                                                                                                                                                                                                                                                                                                                                                    Alt...A screenshot of my main screen: on left, Beeref, with a collection of face of the casting of the Avian Intelligence series (the Parrot and Cepper, the Gothic Sorceress) On the center, Krita, with on the canvas a pencil study of Cepper painting a canvas , happy, while Parrot look at her. On a corner of the screen, neofetch in a terminal showing some spec of my GNU/Linux desktop.

                                                                                                                                                                                                                                                                                                                                                                                      [?]Ecologia Digital » 🌐
                                                                                                                                                                                                                                                                                                                                                                                      @josemurilo@mato.social

                                                                                                                                                                                                                                                                                                                                                                                      “The Hardware & Software Survey for July 2026 is out now and going by the current data, has managed to jump back just over 4%.
                                                                                                                                                                                                                                                                                                                                                                                      Here's the current overall share:
                                                                                                                                                                                                                                                                                                                                                                                      Windows - 93.67%
                                                                                                                                                                                                                                                                                                                                                                                      Linux - 4.01%
                                                                                                                                                                                                                                                                                                                                                                                      macOS - 2.32%”

                                                                                                                                                                                                                                                                                                                                                                                      gamingonlinux.com/2026/08/linu

                                                                                                                                                                                                                                                                                                                                                                                        [?]Jen Fury MAXX 🏳️‍⚧️ » 🌐
                                                                                                                                                                                                                                                                                                                                                                                        @transcendentempress@eldritch.cafe

                                                                                                                                                                                                                                                                                                                                                                                        Ma chérie trouvait le son des PC portables pas terrible avec le passage sur donc j'ai gratté un peu sur ce qu'on a à disposition pour améliorer ça.

                                                                                                                                                                                                                                                                                                                                                                                        Alors je suis direct tombée sur EasyEffects, qui est un peu LE logiciel DSP pour Pipewire, hyper complet, le problème c'est que pour le coup un peu trop dense : y a certes les presets communautaires, mais ça sent le logiciel où vaudrait mieux prendre le temps de bien mettre le nez dedans pour avoir vraiment le résultat recherché.

                                                                                                                                                                                                                                                                                                                                                                                        Donc j'ai testé ensuite une autre recommandation, JamesDSP (à bien faire attention d'aller sur la version Linux, parce que ça partage la base avec une version Android). Celui-ci est nettement plus accessible, j'ai suivi le conseil activation de l'égaliseur avec le preset "Clear", et effectivement de suite juste avec ça, on a un résultat nettement plus quali à l'oreille.

                                                                                                                                                                                                                                                                                                                                                                                        Le seul truc avec JamesDSP, c'est qu'il est potentiellement le choix le plus simple et direct des deux si vous n'utilisez globalement que les haut-parleurs intégrés du PC portable. Si jamais vous switchez fréquemment entre haut-parleurs, casque, enceintes, etc. EasyEffects sera potentiellement un meilleur choix du fait de par défaut définir les presets et leur activation par périphérique.

                                                                                                                                                                                                                                                                                                                                                                                        EDIT : donc ouais, après test sur ThinkPad L440, L460 et L380, le preset "Clear" fait vraiment bien le taf. C'est sans doute pas le pas le plus accurate, mais je voulais vraiment un truc passe-partout et pas prise de tête, et franchement là pour une mise en place en 3 clics c'est impeccable.

                                                                                                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                          [?]WinFuture.de » 🌐
                                                                                                                                                                                                                                                                                                                                                                                          @WinFuture@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                          Laut StatCounter hat einen Marktanteil von 10 Prozent erreicht. Doch die Zahlen sind durch massiv verfälscht. Bereinigt bleibt der Anteil deutlich geringer. winfuture.de/news,160376.html?

                                                                                                                                                                                                                                                                                                                                                                                            [?]SiestⒶcorta » 🌐
                                                                                                                                                                                                                                                                                                                                                                                            @Siestacorta@mastodon.parleur.net

                                                                                                                                                                                                                                                                                                                                                                                            🍒

                                                                                                                                                                                                                                                                                                                                                                                            "C'est un cap que Linux n'a jamais franchi jusque-là. En juillet 2026, a atteint 10,65 % de parts de marché sur PC de bureau en Amérique du Nord selon Statcounter".

                                                                                                                                                                                                                                                                                                                                                                                            lesnumeriques.com/ordinateur-d

                                                                                                                                                                                                                                                                                                                                                                                              [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                              @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                              [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                              @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                              termcn : des composants de terminal UI pour React, dans le style shadcn/ui. Tables, graphiques, spinners, alertes, installables via `pnpm dlx shadcn add`, prêts à l'emploi et personnalisables. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                              termcn.dev/

                                                                                                                                                                                                                                                                                                                                                                                              📬 Ma veille dev de la semaine → l.camilleroux.com/veille-gSe

                                                                                                                                                                                                                                                                                                                                                                                              Capture d'écran promotionnelle de **termcn**, une bibliothèque de composants UI pour terminal, affichant plusieurs exemples de composants : tableau, graphique en barres, spinner de chargement, alerte, appel d'outil et badges colorés, sur fond sombre.

                                                                                                                                                                                                                                                                                                                                                                                              Alt...Capture d'écran promotionnelle de **termcn**, une bibliothèque de composants UI pour terminal, affichant plusieurs exemples de composants : tableau, graphique en barres, spinner de chargement, alerte, appel d'outil et badges colorés, sur fond sombre.

                                                                                                                                                                                                                                                                                                                                                                                                [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                [?]Michael Eickenboom » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                @m_eick@hessen.social

                                                                                                                                                                                                                                                                                                                                                                                                Yes, I did it: Am Wochenende den neuen Laptop (Lenovo ThinkPad 14') mit Debian stable und Gnome-Desktop ausgestattet. Und ich muss sagen, ich bin echt begeistert, wie sich Linux seit meinen ersten Versuchen damit entwickelt hat.

                                                                                                                                                                                                                                                                                                                                                                                                Am großartigsten imho: Zugangsdaten von Nextcloud einmal in den Einstellungen gespeichert und das Ding wird nahtlos als Laufwerk in jedem Dateimanager angezeigt - ohne, dass man fürchten muss, die Daten würden über irgendwelche Firmenserver geschleust.

                                                                                                                                                                                                                                                                                                                                                                                                  [?]Alice Pea (she/her) 🏳️‍⚧️ [she/her] » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                  @alice_pea_3526@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                  @gamingonlinux This is what happens when sabotages their own operating system with bloatware, unnecessarily overinflated "system requirements", forced online logins, forced subtier cloud shit, and unwanted slop.

                                                                                                                                                                                                                                                                                                                                                                                                  , you single-handedly accelerated the deployment phenomena that is "The Day of the Penguin" upon yourselves.

                                                                                                                                                                                                                                                                                                                                                                                                    [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                    @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                    CrawlSEO : monitoring SEO self-hosted qui regroupe Google Search Console, un crawler jusqu'à 2 000 pages, les Core Web Vitals et un serveur MCP pour agents IA. Open source, MIT, gratuit. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                                    github.com/crawlseo/crawlseo

                                                                                                                                                                                                                                                                                                                                                                                                    📬 Ma veille dev de la semaine → l.camilleroux.com/veille-rfv

                                                                                                                                                                                                                                                                                                                                                                                                    Tableau de bord SEO de l'outil open-source CrawlSEO affichant les métriques clés du site acme.com : santé du crawl (72/100), 38 500 clics, 462 800 impressions, position moyenne 8,5, ainsi que le top 10 des mots-clés organiques sur les 28 derniers jours.

                                                                                                                                                                                                                                                                                                                                                                                                    Alt...Tableau de bord SEO de l'outil open-source CrawlSEO affichant les métriques clés du site acme.com : santé du crawl (72/100), 38 500 clics, 462 800 impressions, position moyenne 8,5, ainsi que le top 10 des mots-clés organiques sur les 28 derniers jours.

                                                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                      [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                      @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                      [?]GNU/Linux.ch » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                      @gnulinux@social.anoxinon.de

                                                                                                                                                                                                                                                                                                                                                                                                      Übersetzen - Welche Apps empfehlen sich?

                                                                                                                                                                                                                                                                                                                                                                                                      Welche Apps gibt es, um Wörter auf dem Smartphone zu übersetzen? Wörterbücher, Übersetzungs-Apps oder KI?

                                                                                                                                                                                                                                                                                                                                                                                                      gnulinux.ch/uebersetzen-welche

                                                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                      [?]Repair Cafe Gröbenzell » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                      @repaircafe_g_zell@muenchen.social

                                                                                                                                                                                                                                                                                                                                                                                                      Linux Stammtisch am 19. August und 14. September um 19:00 Uhr im Restaurant Vinocchio Pinocchio Puchheimer Str. 10a

                                                                                                                                                                                                                                                                                                                                                                                                      Anmeldung:
                                                                                                                                                                                                                                                                                                                                                                                                      info@bundnaturschutz-groebenzell.de

                                                                                                                                                                                                                                                                                                                                                                                                      Linux Stammtisch am 19. August und 14. September um 19:00 Uhr im Restaurant Vinocchio Pinocchio Puchheimer Str. 10a

                                                                                                                                                                                                                                                                                                                                                                                                      Alt...Linux Stammtisch am 19. August und 14. September um 19:00 Uhr im Restaurant Vinocchio Pinocchio Puchheimer Str. 10a

                                                                                                                                                                                                                                                                                                                                                                                                      [?]vermaden » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                      @vermaden@mastodon.bsd.cafe

                                                                                                                                                                                                                                                                                                                                                                                                      Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟲/𝟬𝟴/𝟬𝟯 (Valuable News - 2026/08/03) available.

                                                                                                                                                                                                                                                                                                                                                                                                      vermaden.wordpress.com/2026/08

                                                                                                                                                                                                                                                                                                                                                                                                      Past releases: vermaden.wordpress.com/news/

                                                                                                                                                                                                                                                                                                                                                                                                        AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                        [?]hatniX » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                        @hatnix@social.tchncs.de

                                                                                                                                                                                                                                                                                                                                                                                                        Guten Morgen und einen schönen Start in die neue Woche!
                                                                                                                                                                                                                                                                                                                                                                                                        Im ersten Video diesen Monats spiele ich die Demo des Point & Click Adventures „The Mermaid Mask“ von SFB Games.
                                                                                                                                                                                                                                                                                                                                                                                                        Viel Vergnügen: tube.tchncs.de/w/6wZnDz2TJ62yM
                                                                                                                                                                                                                                                                                                                                                                                                        oder hier: hatnix.net/vod/2026-08-03.html

                                                                                                                                                                                                                                                                                                                                                                                                          [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                          @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                          AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                          [?]dewomser » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                          @dewomser@social.tchncs.de


                                                                                                                                                                                                                                                                                                                                                                                                          Zeigt Animationen an, die Benutzer korrigieren, die versehentlich „sl“ anstelle von „ls“ eingeben. „SL“ steht für „Steam Locomotive“
                                                                                                                                                                                                                                                                                                                                                                                                          Achtung ! Passagiere rufen um Hilfe.
                                                                                                                                                                                                                                                                                                                                                                                                          BASH-Kommando : sl -ale
                                                                                                                                                                                                                                                                                                                                                                                                          linuxcommandlibrary.com/man/sl

                                                                                                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                            [?]Farooq [Master Patata] » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                            @farooqkz@mastodon.bsd.cafe

                                                                                                                                                                                                                                                                                                                                                                                                            Alright. I am using spare bandwidth on me VPS to seed torrents!

                                                                                                                                                                                                                                                                                                                                                                                                            I have ordered 30GB of HDD space to move the files completely to it. Then I will be able to seed more.

                                                                                                                                                                                                                                                                                                                                                                                                            I am interested in seeding various underrated softwares and games. This includes derivatives, other independent operating systems like . As well as many open source games like SuperTuxKart, Wesnoth and Xonotic.

                                                                                                                                                                                                                                                                                                                                                                                                            I also seed offline versions of Persian Wikipedia.

                                                                                                                                                                                                                                                                                                                                                                                                            If you also have got some spare bandwidth and disk space, you can help other people.

                                                                                                                                                                                                                                                                                                                                                                                                            fosstorrents.com/ They create Unofficial torrents for many open source projects. I am seeding some of their torrents. They also include many BSD derivatives and independent operating systems.

                                                                                                                                                                                                                                                                                                                                                                                                            From library you can download offline versions of many popular websites such as , and so on. You can seed Wikipedia on your own language.

                                                                                                                                                                                                                                                                                                                                                                                                            Also many distros and BSD derivatives have official torrents.

                                                                                                                                                                                                                                                                                                                                                                                                            A screenshot from Transmission showing multiple files being seeded. This includes LibreOffice, Inkscape, SuperTuxKart, Warzone2100, Persian Wikipedia, HaikuOS and some other softwares.

                                                                                                                                                                                                                                                                                                                                                                                                            Alt...A screenshot from Transmission showing multiple files being seeded. This includes LibreOffice, Inkscape, SuperTuxKart, Warzone2100, Persian Wikipedia, HaikuOS and some other softwares.

                                                                                                                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                              [?]LinuxNews.de » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                              @linuxnews@social.anoxinon.de

                                                                                                                                                                                                                                                                                                                                                                                                              AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                              [?]LinuxNews.de » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                              @linuxnews@social.anoxinon.de

                                                                                                                                                                                                                                                                                                                                                                                                              [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                              @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                              Syncthing : synchronisation de fichiers en continu entre vos machines, sans serveur central, sans compte, chiffrement de bout en bout. Dispo sur tous les OS courants et via Docker. Open source, 86k ★ sur GitHub. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                                              github.com/syncthing/syncthing

                                                                                                                                                                                                                                                                                                                                                                                                              📬 Ma veille dev de la semaine → l.camilleroux.com/veille-icz

                                                                                                                                                                                                                                                                                                                                                                                                              Capture d'écran de la page GitHub du projet open source **Syncthing**, un outil de synchronisation continue de fichiers, affichant ses statistiques : 358 contributeurs, 88 utilisateurs, 87 000 étoiles et 5 000 forks.

                                                                                                                                                                                                                                                                                                                                                                                                              Alt...Capture d'écran de la page GitHub du projet open source **Syncthing**, un outil de synchronisation continue de fichiers, affichant ses statistiques : 358 contributeurs, 88 utilisateurs, 87 000 étoiles et 5 000 forks.

                                                                                                                                                                                                                                                                                                                                                                                                                [?]Nizar Kerkeni 🇹🇳 نزار القرقني » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                @nizarus@mastodon.tn

                                                                                                                                                                                                                                                                                                                                                                                                                Amérique du Nord : Le rejet de Windows 11 pousse Linux au-dessus des 10 % d'adoption pour la première fois de son histoire

                                                                                                                                                                                                                                                                                                                                                                                                                lesnumeriques.com/ordinateur-d

                                                                                                                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                  [?]koje71 🙂 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                  @koje71@darmstadt.social

                                                                                                                                                                                                                                                                                                                                                                                                                  Die App hat jetzt ein Menü, mit dem später die Level ausgesucht werden. Es wird halb transparent über dem Spielfeld angezeigt. Leider ist dadurch mancher Text nicht so gut lesbar. Aber wenn ich weniger Transparenz einstelle, sieht es nicht so schön aus. Muss noch ein bisschen rumprobieren.. 🤔

                                                                                                                                                                                                                                                                                                                                                                                                                  alles unter gebaut 😀

                                                                                                                                                                                                                                                                                                                                                                                                                  Alt...Eine Kugelbahn für Android in der Entwicklung, es gibt jetzt ein Menü

                                                                                                                                                                                                                                                                                                                                                                                                                    [?]Ekimia » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                    @ekimia@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                                    😻#Linux sur PC Pulvérise tous les record en Juillet 2026 avec 7.5% mais MacOS aussi avec 20%
                                                                                                                                                                                                                                                                                                                                                                                                                    👉 Effet Vacances : Moins de PCs entreprises
                                                                                                                                                                                                                                                                                                                                                                                                                    👉 Percée de chez les youtubers
                                                                                                                                                                                                                                                                                                                                                                                                                    👉 C'est surtout grace aux US et l'Asie , pas à l'Europe
                                                                                                                                                                                                                                                                                                                                                                                                                    On continue avec @ekimia a diffuser des Pcs Linux partout !
                                                                                                                                                                                                                                                                                                                                                                                                                    ekimia.fr/boutique/

                                                                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                      [?]Verfassungklage@troet.cafe » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                      @Verfassungklage@troet.cafe

                                                                                                                                                                                                                                                                                                                                                                                                                      verliert langjährigen und

                                                                                                                                                                                                                                                                                                                                                                                                                      Unter dem Namen gehörte Morten Linderud jahrelang zu den bekanntesten Gesichtern des Projekts. Er arbeitete als Entwickler, , -Maintainer und Mitglied des Sicherheitsteams. Nun zieht er einen Schlussstrich und verabschiedet sich von Arch Linux.

                                                                                                                                                                                                                                                                                                                                                                                                                      Während seiner Zeit übernahm Linderud zahlreiche wichtige Aufgaben. Er verantwortete unter anderem die .

                                                                                                                                                                                                                                                                                                                                                                                                                      fosstopia.de/arch-linux-verlie

                                                                                                                                                                                                                                                                                                                                                                                                                        Memnochs boosted

                                                                                                                                                                                                                                                                                                                                                                                                                        [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                        @Steve12L@mamot.fr

                                                                                                                                                                                                                                                                                                                                                                                                                        [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                        @Steve12L@mamot.fr

                                                                                                                                                                                                                                                                                                                                                                                                                        ⋅ COSMIC is doing what GNOME still can't, and it's only been out for a year

                                                                                                                                                                                                                                                                                                                                                                                                                        − xda-developers.com/cosmic-doin

                                                                                                                                                                                                                                                                                                                                                                                                                          Norry Nowt boosted

                                                                                                                                                                                                                                                                                                                                                                                                                          [?]Tomáš » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                          @prahou@merveilles.town

                                                                                                                                                                                                                                                                                                                                                                                                                          tall tales

                                                                                                                                                                                                                                                                                                                                                                                                                          girl, penguin, and openblade are eating sandwiches. openblade tells a story.

openblade: "and then the govcorp was all like: 'if you dont use ai, you support the chinese union!' and the kids were all like: 'what did china ever do to us?' it was hilarious."

                                                                                                                                                                                                                                                                                                                                                                                                                          Alt...girl, penguin, and openblade are eating sandwiches. openblade tells a story. openblade: "and then the govcorp was all like: 'if you dont use ai, you support the chinese union!' and the kids were all like: 'what did china ever do to us?' it was hilarious."

                                                                                                                                                                                                                                                                                                                                                                                                                            AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                            [?]-=Kernel-Error=- » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                            @kernel-error.de@www.kernel-error.de

                                                                                                                                                                                                                                                                                                                                                                                                                            Einen modernen OpenPGP-Schlüssel bauen: Ed25519, drei Unterschlüssel und die Härtung, die ihn geschwächt hat

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Schlüssel kann modern sein und trotzdem falsch konfiguriert. Teil A ist das Rezept: Ed25519, zertifizierender Hauptschlüssel, drei Unterschlüssel, gpg.conf, vier Exportformate, sieben Kanäle. Teil B erklärt, warum eine einzige Härtungszeile mir AES-128 statt AES-256 eingebrockt hat. [SENSITIVE CONTENT]

                                                                                                                                                                                                                                                                                                                                                                                                                            Moin. Im letzten Beitrag ging es darum, wie ich meinen OpenPGP-Schlüssel an Domain, GitHub und Matrix gebunden habe, also um die Frage, woher eigentlich irgendwer wissen soll, dass dieser Schlüssel mir gehört. Ganz am Ende stand dort die Ankündigung eines zweiten Teils: wie das Ding überhaupt gebaut ist und wie sicher es wirklich ist. Der Teil ist jetzt hier.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Beitrag hat zwei Hälften, und die kannst du unabhängig voneinander lesen. Teil A ist ein Rezept. Wenn du einen Schlüssel nach demselben Muster bauen willst, arbeitest du dich von oben nach unten durch, inklusive der kompletten GnuPG-Konfiguration, alles kopierbar und in der richtigen Reihenfolge. Teil B erklärt, was die einzelnen Bauteile bedeuten, und endet mit einer ehrlichen Einschätzung, wie sicher das alles am Ende ist.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der eigentliche Grund, warum ich das aufschreibe, ist aber ein anderer. Zwischen „mein Schlüssel ist modern“ und „mein Schlüssel ist richtig konfiguriert“ liegt eine Lücke, und in die bin ich mit Anlauf hineingesprungen. Der Schlüssel ist Lehrbuch: Ed25519, ein Hauptschlüssel, der ausschließlich zertifiziert, drei getrennte Unterschlüssel, fünf Jahre Laufzeit, über sieben Kanäle veröffentlicht, dazu eine eID-Zertifizierung. Und trotzdem wurde er vom ersten Tag an schwächer angesprochen als der Schlüssel, den er ablöst.

                                                                                                                                                                                                                                                                                                                                                                                                                            Aufgefallen wäre das niemandem, und genau das ist der interessante Teil. Das einzige Symptom war eine Warnzeile auf dem Terminal von jemandem, der mir eine verschlüsselte Mail schreibt. Also auf einem Rechner, den ich nie zu Gesicht bekomme. Und die Ursache war ausgerechnet eine Härtungsmaßnahme, die ich in bester Absicht eingebaut hatte, um einen musealen Algorithmus loszuwerden. Härtung, die etwas leise verschlechtert, finde ich als Geschichte deutlich spannender als noch eine Schlüsselerzeugungsanleitung. Nachbauen kannst du das übrigens in zwei Minuten, das Labor dazu steht weiter unten.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Schlüssel, um den es geht

                                                                                                                                                                                                                                                                                                                                                                                                                            Bestandteil

                                                                                                                                                                                                                                                                                                                                                                                                                            Wert

                                                                                                                                                                                                                                                                                                                                                                                                                            Hauptschlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            ed25519 0x893DE0CDDE986DEB, Verwendung [C], also nur zertifizieren

                                                                                                                                                                                                                                                                                                                                                                                                                            Fingerabdruck

                                                                                                                                                                                                                                                                                                                                                                                                                            45FC D081 ADB5 4872 EA5B 06B9 893D E0CD DE98 6DEB

                                                                                                                                                                                                                                                                                                                                                                                                                            Signatur-Unterschlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            ed25519 0xD788641D8588A674

                                                                                                                                                                                                                                                                                                                                                                                                                            Verschlüsselungs-Unterschlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            cv25519 0x429D03637892821A

                                                                                                                                                                                                                                                                                                                                                                                                                            Authentisierungs-Unterschlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            ed25519 0x22F2E3234664DDBE

                                                                                                                                                                                                                                                                                                                                                                                                                            UIDs

                                                                                                                                                                                                                                                                                                                                                                                                                            Sebastian van de Meer, dazu eine Foto-UID mit 10851 Byte

                                                                                                                                                                                                                                                                                                                                                                                                                            Gültigkeit

                                                                                                                                                                                                                                                                                                                                                                                                                            erzeugt am 24.07.2026, läuft am 23.07.2031 ab

                                                                                                                                                                                                                                                                                                                                                                                                                            Vorgänger

                                                                                                                                                                                                                                                                                                                                                                                                                            ed25519 0x5F279C362EEAB216, gültig bis 31.12.2026, zeichnet den neuen gegen

                                                                                                                                                                                                                                                                                                                                                                                                                            Fremdzertifizierung

                                                                                                                                                                                                                                                                                                                                                                                                                            Governikus/eID 0x5E5CCCB4A4BF43D7, Level 3

                                                                                                                                                                                                                                                                                                                                                                                                                            Umgebung

                                                                                                                                                                                                                                                                                                                                                                                                                            GnuPG 2.4.4, libgcrypt 1.10.3

                                                                                                                                                                                                                                                                                                                                                                                                                            Die Aufgabenteilung steht nicht nur in der Doku, die steht maschinenlesbar im Schlüssel selbst. Jede Bindungssignatur trägt ein Feld mit Schlüssel-Flags, und das sieht bei mir so aus:

                                                                                                                                                                                                                                                                                                                                                                                                                            primary  key flags: 01   certify
                                                                                                                                                                                                                                                                                                                                                                                                                            [S]      key flags: 02   sign
                                                                                                                                                                                                                                                                                                                                                                                                                            [E]      key flags: 0C   encrypt communications + encrypt storage
                                                                                                                                                                                                                                                                                                                                                                                                                            [A]      key flags: 20   authenticate

                                                                                                                                                                                                                                                                                                                                                                                                                            Teil A: den Schlüssel bauen

                                                                                                                                                                                                                                                                                                                                                                                                                            Teil A ist der Ablauf, den ich für richtig halte, und bis auf die markierten Stellen genau der, den ich gegangen bin. Dort, wo der Befehl unten besser ist als das, was ich damals getippt habe, steht ein Hinweis dazu.

                                                                                                                                                                                                                                                                                                                                                                                                                            Voraussetzungen

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --version
                                                                                                                                                                                                                                                                                                                                                                                                                            # gpg (GnuPG) 2.4.4
                                                                                                                                                                                                                                                                                                                                                                                                                            # libgcrypt 1.10.3

                                                                                                                                                                                                                                                                                                                                                                                                                            GnuPG 2.4.x ist die Annahme für den ganzen Beitrag. Zwei Dinge gleich vorweg, weil sie sonst später wehtun:

                                                                                                                                                                                                                                                                                                                                                                                                                            • --quick-generate-key verweigert den Dienst, wenn die UID bereits auf einem anderen Schlüssel im Schlüsselbund existiert. Genau deshalb ist dieser Schlüssel über eine Parameterdatei mit --batch --gen-key entstanden. Das trifft dich zuverlässig genau dann, wenn du einen Schlüssel rotierst, also in dem Moment, in dem der alte noch da ist.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Nichts hier braucht eine Smartcard, und nichts hier braucht root.

                                                                                                                                                                                                                                                                                                                                                                                                                            Wenn du bei GPG ganz am Anfang stehst, sind die Grundlagen zum Signieren und Verschlüsseln hier im Blog der bessere Einstieg. Dieser Beitrag setzt voraus, dass du weißt, was ein öffentlicher Schlüssel und ein Unterschlüssel sind.

                                                                                                                                                                                                                                                                                                                                                                                                                            Erst aufräumen, dann anfangen

                                                                                                                                                                                                                                                                                                                                                                                                                            Und zwar wirklich vorher, nicht hinterher. Mein ~/.gnupg war in einem Zustand, den ich hier nur ungern zugebe.

                                                                                                                                                                                                                                                                                                                                                                                                                            chmod 700 ~/.gnupg
                                                                                                                                                                                                                                                                                                                                                                                                                            find ~/.gnupg -type f -exec chmod 600 {} +
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # Erst alle GnuPG-Frontends schließen und die Daemons beenden, sonst löschst du
                                                                                                                                                                                                                                                                                                                                                                                                                            # unter Umständen echte, aktive Locks:
                                                                                                                                                                                                                                                                                                                                                                                                                            gpgconf --kill all
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # Übriggebliebene Lock-Dateien abgestürzter Läufe. Bei mir waren es 93 Stück.
                                                                                                                                                                                                                                                                                                                                                                                                                            find ~/.gnupg -name '.#lk*' -delete
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # Altlasten, die keine 2.4er Installation mehr braucht
                                                                                                                                                                                                                                                                                                                                                                                                                            mkdir -p ~/gnupg-attic-$(date +%F)
                                                                                                                                                                                                                                                                                                                                                                                                                            mv ~/.gnupg/{cert8.db,key3.db,secmod.db} ~/gnupg-attic-$(date +%F)/ 2>/dev/null

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein ~/.gnupg mit 775 und Dateien mit 664 ist erschreckend verbreitet, und ich will das gar nicht größer machen als es ist: Auf einem Einzelplatzrechner ist das keine Katastrophe. Es wird aber genau in dem Moment eine, in dem das Home-Verzeichnis in ein Backup, in einen Container-Mount oder in einen synchronisierten Ordner wandert. Und das passiert schneller, als man denkt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Die gpg.conf, komplett

                                                                                                                                                                                                                                                                                                                                                                                                                            Das ist die tatsächlich laufende Konfiguration, so wie sie bei mir liegt, mit ihren Originalkommentaren. Der Block mit dem Warnhinweis ist die wichtigste Stelle im gesamten Beitrag, warum, steht in Teil B.

                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- UX / output ----
                                                                                                                                                                                                                                                                                                                                                                                                                            keyid-format 0xlong
                                                                                                                                                                                                                                                                                                                                                                                                                            with-fingerprint
                                                                                                                                                                                                                                                                                                                                                                                                                            with-subkey-fingerprint
                                                                                                                                                                                                                                                                                                                                                                                                                            utf8-strings
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Key discovery (local first, then WKD/DANE; email-validated keyserver last) ----
                                                                                                                                                                                                                                                                                                                                                                                                                            auto-key-retrieve
                                                                                                                                                                                                                                                                                                                                                                                                                            auto-key-locate local,wkd,dane,keyserver
                                                                                                                                                                                                                                                                                                                                                                                                                            keyserver hkps://keys.openpgp.org
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Strong defaults ----
                                                                                                                                                                                                                                                                                                                                                                                                                            # cipher-algo / digest-algo are intentionally NOT forced: forcing them would override
                                                                                                                                                                                                                                                                                                                                                                                                                            # the recipient's stated capabilities. personal-*-preferences below select strong
                                                                                                                                                                                                                                                                                                                                                                                                                            # algorithms interoperably instead.
                                                                                                                                                                                                                                                                                                                                                                                                                            cert-digest-algo SHA512
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- KDF hardening for passphrase-derived symmetric keys (gpg -c / key export) ----
                                                                                                                                                                                                                                                                                                                                                                                                                            s2k-mode 3
                                                                                                                                                                                                                                                                                                                                                                                                                            s2k-digest-algo SHA512
                                                                                                                                                                                                                                                                                                                                                                                                                            s2k-cipher-algo AES256
                                                                                                                                                                                                                                                                                                                                                                                                                            s2k-count 65011712
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- WARNING. Legacy ciphers: do NOT disable 3DES here ----
                                                                                                                                                                                                                                                                                                                                                                                                                            # An earlier version of this file carried:
                                                                                                                                                                                                                                                                                                                                                                                                                            #     disable-cipher-algo 3DES
                                                                                                                                                                                                                                                                                                                                                                                                                            #     disable-cipher-algo IDEA
                                                                                                                                                                                                                                                                                                                                                                                                                            #     disable-cipher-algo CAST5
                                                                                                                                                                                                                                                                                                                                                                                                                            #     disable-cipher-algo BLOWFISH
                                                                                                                                                                                                                                                                                                                                                                                                                            #     disable-cipher-algo TWOFISH
                                                                                                                                                                                                                                                                                                                                                                                                                            # The 3DES line alone silently strips ALL algorithm preferences from every key you
                                                                                                                                                                                                                                                                                                                                                                                                                            # generate while it is active, and it also blocks DECRYPTION of old archives.
                                                                                                                                                                                                                                                                                                                                                                                                                            # New encryption never selects a legacy cipher anyway, because
                                                                                                                                                                                                                                                                                                                                                                                                                            # personal-cipher-preferences lists AES only.
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Privacy / minimal metadata ----
                                                                                                                                                                                                                                                                                                                                                                                                                            no-comments
                                                                                                                                                                                                                                                                                                                                                                                                                            no-emit-version
                                                                                                                                                                                                                                                                                                                                                                                                                            export-options export-minimal
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Listing/verification quality-of-life ----
                                                                                                                                                                                                                                                                                                                                                                                                                            verify-options show-uid-validity
                                                                                                                                                                                                                                                                                                                                                                                                                            list-options show-uid-validity
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Trust model ----
                                                                                                                                                                                                                                                                                                                                                                                                                            trust-model tofu+pgp
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Your key ----
                                                                                                                                                                                                                                                                                                                                                                                                                            default-key 0x45FCD081ADB54872EA5B06B9893DE0CDDE986DEB
                                                                                                                                                                                                                                                                                                                                                                                                                            # hidden-encrypt-to 0x45FCD081ADB54872EA5B06B9893DE0CDDE986DEB   # optional, off
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Local policy: what *you* prefer when sending ----
                                                                                                                                                                                                                                                                                                                                                                                                                            personal-cipher-preferences AES256 AES192 AES
                                                                                                                                                                                                                                                                                                                                                                                                                            personal-digest-preferences SHA512 SHA384 SHA256
                                                                                                                                                                                                                                                                                                                                                                                                                            weak-digest SHA1
                                                                                                                                                                                                                                                                                                                                                                                                                            force-ocb
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # ---- Preferences baked into keys you create from here on ----
                                                                                                                                                                                                                                                                                                                                                                                                                            default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei Zeilen darin sind Entscheidungen und keine Selbstverständlichkeiten, deshalb je ein Satz dazu.

                                                                                                                                                                                                                                                                                                                                                                                                                            • force-ocb ist keine Präferenz, sondern eine Erzwingung. Es sorgt dafür, dass ausgehende Nachrichten die OCB-Variante aus der LibrePGP-Linie benutzen, und setzt sich dabei über das hinweg, was der Empfängerschlüssel ankündigt. Sehr alte oder anders implementierte Empfänger können solche Nachrichten nicht lesen. Das steht in einer gewissen Spannung zu dem Prinzip ein paar Zeilen weiter oben, wo ich cipher-algo bewusst nicht erzwinge. Für mich ist das in Ordnung, in einer Konfiguration zum Abschreiben würde ich die Zeile weglassen.
                                                                                                                                                                                                                                                                                                                                                                                                                            • auto-key-retrieve holt unbekannte Schlüssel beim Prüfen automatisch nach. Sehr bequem, und es verrät dem Keyserver, welche signierten Nachrichten du wann liest. Für mich ein akzeptabler Tausch, bei einem anderen Bedrohungsmodell schaltest du das besser ab.

                                                                                                                                                                                                                                                                                                                                                                                                                            Dazu die beiden kleinen Geschwisterdateien. gpg-agent.conf:

                                                                                                                                                                                                                                                                                                                                                                                                                            enable-ssh-support
                                                                                                                                                                                                                                                                                                                                                                                                                            default-cache-ttl 180
                                                                                                                                                                                                                                                                                                                                                                                                                            max-cache-ttl 600
                                                                                                                                                                                                                                                                                                                                                                                                                            pinentry-program /usr/bin/pinentry-gnome3

                                                                                                                                                                                                                                                                                                                                                                                                                            Und dirmngr.conf:

                                                                                                                                                                                                                                                                                                                                                                                                                            honor-http-proxy
                                                                                                                                                                                                                                                                                                                                                                                                                            disable-ldap

                                                                                                                                                                                                                                                                                                                                                                                                                            Den Hauptschlüssel erzeugen

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Hauptschlüssel, der nur zertifiziert, über eine Parameterdatei. Die Zeile Preferences: war in meinem echten Lauf nicht drin, nimm sie mit. Sie kostet nichts und fängt genau den Fehler ab, um den es in Teil B geht. Das ist keine Vermutung, ich habe es nachgemessen: Mit dieser Zeile bleiben die Präferenzen selbst dann im Schlüssel, wenn die defekte Konfiguration aktiv ist. Die eigentliche Kontrolle bleibt trotzdem der Paket-Dump gleich darunter, denn eine Parameterdatei ersetzt nie die Prüfung des fertigen Artefakts.

                                                                                                                                                                                                                                                                                                                                                                                                                            cat > keyparams.txt <<'EOF'
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Type: eddsa
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Curve: Ed25519
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Usage: cert
                                                                                                                                                                                                                                                                                                                                                                                                                            Name-Real: Sebastian van de Meer
                                                                                                                                                                                                                                                                                                                                                                                                                            Name-Email: kernel-error@kernel-error.com
                                                                                                                                                                                                                                                                                                                                                                                                                            Expire-Date: 5y
                                                                                                                                                                                                                                                                                                                                                                                                                            Preferences: AES256 AES192 AES SHA512 SHA384 SHA256 ZLIB BZIP2 ZIP Uncompressed
                                                                                                                                                                                                                                                                                                                                                                                                                            %ask-passphrase
                                                                                                                                                                                                                                                                                                                                                                                                                            %commit
                                                                                                                                                                                                                                                                                                                                                                                                                            EOF
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --batch --gen-key keyparams.txt
                                                                                                                                                                                                                                                                                                                                                                                                                            shred -u keyparams.txt

                                                                                                                                                                                                                                                                                                                                                                                                                            Und jetzt sofort nachsehen, ob die Präferenzen auch wirklich im Schlüssel gelandet sind. Genau diese Prüfung fehlte bei mir im Juli, und deshalb steht sie hier direkt hinter der Erzeugung und nicht irgendwo weiter unten.

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export kernel-error@kernel-error.com | gpg --list-packets | grep -E 'pref-|features'

                                                                                                                                                                                                                                                                                                                                                                                                                            Du willst dort pref-sym-algos, pref-hash-algos, pref-zip-algos und ein features mit gesetztem Bit 0x01 sehen. Wenn dort nur eine features-Zeile steht und sonst nichts, dann hör hier auf und lies erst den Abschnitt über den Defekt in Teil B. Dann stimmt etwas mit deiner Konfiguration nicht, und der Schlüssel trägt den Fehler ab sofort dauerhaft mit sich herum.

                                                                                                                                                                                                                                                                                                                                                                                                                            Zum shred oben noch ein Wort, weil es sonst falsche Sicherheit erzeugt: Es entfernt die sichtbare Arbeitsdatei, mehr nicht. Auf SSDs, auf ZFS, bei Snapshots und auf journalenden Dateisystemen ist damit überhaupt nicht garantiert, dass keine alten Blöcke mehr herumliegen. Solche Zwischendateien sollten deshalb von vornherein nur auf einem verschlüsselten Dateisystem entstehen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Die drei Unterschlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            Interaktives --quick-add-key ist mir in einer nicht-interaktiven Shell mit einem /dev/tty-Fehler um die Ohren geflogen. Mit --batch läuft es durch.

                                                                                                                                                                                                                                                                                                                                                                                                                            FPR=45FCD081ADB54872EA5B06B9893DE0CDDE986DEB
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --batch --quick-add-key $FPR ed25519  sign 5y
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --batch --quick-add-key $FPR cv25519  encr 5y
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --batch --quick-add-key $FPR ed25519  auth 5y

                                                                                                                                                                                                                                                                                                                                                                                                                            Die Foto-UID

                                                                                                                                                                                                                                                                                                                                                                                                                            240×288 Pixel, Graustufen-JPEG, 10851 Byte. Halt das Bild klein, es reist in jedem vollständigen Export mit und ist der mit Abstand größte Posten in der Schlüsselgröße.

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --edit-key $FPR
                                                                                                                                                                                                                                                                                                                                                                                                                            > addphoto
                                                                                                                                                                                                                                                                                                                                                                                                                            > /pfad/zu/sebastian-photo-uid.jpg
                                                                                                                                                                                                                                                                                                                                                                                                                            > save

                                                                                                                                                                                                                                                                                                                                                                                                                            Eine Sache dazu, die man vorher wissen sollte: Keiner der drei Keyserver, die ich benutze, hat die Foto-UID nach dem Upload je wieder herausgerückt. Für jeden Keyserver da draußen lege ich die Hand nicht ins Feuer, für die drei, auf die es ankommt, schon. Das Bild überlebt damit nur auf den Kanälen, die ich selbst hoste. Damit ist die Foto-UID Dekoration und keine Funktion. Das ist ein völlig legitimer Grund, sie trotzdem mitzunehmen, man sollte sich nur nichts vormachen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Backup und Widerrufszertifikat, bevor irgendetwas veröffentlicht wird

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei Dinge müssen existieren, bevor der Schlüssel irgendwo landet: ein Backup des geheimen Schlüssels und ein Widerrufszertifikat. Beides später nachzuholen ist der Klassiker, den man genau einmal bereut.

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export-secret-keys --armor $FPR > secret-key-backup.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --output revoke.asc --gen-revoke $FPR

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Widerrufszertifikat legt GnuPG bei der Erzeugung ohnehin schon selbst unter ~/.gnupg/openpgp-revocs.d/<FPR>.rev ab. Das Backup dagegen ist erst dann eines, wenn du es einmal zurückgespielt hast. Also rein damit in ein Wegwerf-GNUPGHOME und nachsehen, ob der geheime Hauptschlüssel dort auch wirklich auftaucht und nicht bloß die Datei lesbar war. Danach wandern beide auf Offline-Medien.

                                                                                                                                                                                                                                                                                                                                                                                                                            RESTORE=$(mktemp -d); chmod 700 "$RESTORE"
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --homedir "$RESTORE" --import secret-key-backup.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --homedir "$RESTORE" --with-subkey-fingerprint --list-secret-keys $FPR
                                                                                                                                                                                                                                                                                                                                                                                                                            rm -rf "$RESTORE"

                                                                                                                                                                                                                                                                                                                                                                                                                            Wichtig, weil es ein sehr verbreitetes Missverständnis ist: Der s2k-*-Block aus der gpg.conf betrifft den passphrasenbasierten Schutz, also etwa gpg -c und den Export. Er sagt nichts darüber aus, wie der geheime Schlüssel in ~/.gnupg auf der Platte geschützt ist. Darum kümmert sich der gpg-agent mit eigenen Parametern, und bereits vorhandenes Schlüsselmaterial wird durch eine geänderte gpg.conf nicht rückwirkend neu verpackt. Wer die beiden verwechselt, glaubt an eine Härtung, die an dieser Stelle gar nicht wirkt. Was tatsächlich in deinem Backup steht, siehst du wie immer am Artefakt selbst, per gpg --list-packets secret-key-backup.asc.

                                                                                                                                                                                                                                                                                                                                                                                                                            Den Hauptschlüssel aus dem Alltag nehmen

                                                                                                                                                                                                                                                                                                                                                                                                                            Jetzt kommt der Schritt, der die ganze Aufteilung von oben überhaupt erst einlöst. Der Hauptschlüssel hat im Alltag nichts verloren. Gebraucht wird er nur, wenn ein Unterschlüssel verlängert, ersetzt oder widerrufen wird, wenn eine UID dazukommt oder wenn du einen fremden Schlüssel zertifizierst. Also fliegt sein geheimer Teil vom Arbeitsrechner herunter, und zwar genau jetzt, nachdem Backup und Widerrufszertifikat existieren und nicht vorher.

                                                                                                                                                                                                                                                                                                                                                                                                                            # nur die Unterschlüssel exportieren, ohne den geheimen Hauptschlüssel
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export-secret-subkeys --armor $FPR > subkeys.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # das gesamte geheime Material aus dem Alltags-Keyring werfen
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --delete-secret-keys $FPR
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # und danach ausschließlich die Unterschlüssel zurückholen
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --import subkeys.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            shred -u subkeys.asc

                                                                                                                                                                                                                                                                                                                                                                                                                            Kontrolliert wird das an einem einzigen Zeichen:

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg -K
                                                                                                                                                                                                                                                                                                                                                                                                                            # sec#  ed25519/0x893DE0CDDE986DEB
                                                                                                                                                                                                                                                                                                                                                                                                                            # ssb   ed25519/0xD788641D8588A674
                                                                                                                                                                                                                                                                                                                                                                                                                            # ssb   cv25519/0x429D03637892821A
                                                                                                                                                                                                                                                                                                                                                                                                                            # ssb   ed25519/0x22F2E3234664DDBE

                                                                                                                                                                                                                                                                                                                                                                                                                            Das Doppelkreuz hinter sec ist der ganze Punkt. Es bedeutet: GnuPG kennt den Hauptschlüssel, hat sein geheimes Gegenstück aber nicht mehr. Signieren, Entschlüsseln und Authentisieren laufen unverändert weiter, dafür sind die Unterschlüssel zuständig. Was nicht mehr geht, ist alles, was die Identität selbst betrifft, also neue Unterschlüssel anlegen, Laufzeiten verlängern, UIDs ergänzen und fremde Schlüssel zertifizieren.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der geheime Hauptschlüssel liegt ab hier zusammen mit dem Widerrufszertifikat auf verschlüsseltem Wechselmedium. Wenn ich ihn brauche, kommt er ausdrücklich nicht zurück nach ~/.gnupg, sondern in ein temporäres GNUPGHOME, das hinterher wieder verschwindet.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Detail dabei ist wichtig genug für einen eigenen Absatz, weil es sonst still danebengeht: Das Offline-Backup ist ein Schnappschuss. Es entstand oben, bevor der alte Schlüssel gegengezeichnet hat und bevor die Governikus-Zertifizierung da war. Diese Fremdsignaturen hängen am öffentlichen Teil, der im Alltags-Keyring liegt, nicht im Backup. Wer nur das Backup einspielt und dort arbeitet, exportiert hinterher einen Schlüssel, dem genau diese Signaturen fehlen. Also immer beides einspielen:

                                                                                                                                                                                                                                                                                                                                                                                                                            # aktuellen öffentlichen Stand samt Fremdsignaturen aus dem Alltags-Keyring mitnehmen
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --armor --export-options no-export-minimal --export $FPR > /tmp/pub-aktuell.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            export GNUPGHOME=$(mktemp -d); chmod 700 "$GNUPGHOME"
                                                                                                                                                                                                                                                                                                                                                                                                                            trap 'rm -rf "$GNUPGHOME"' EXIT HUP INT TERM   # auch bei Abbruch aufräumen
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --import /media/offline/secret-key-backup.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --import /tmp/pub-aktuell.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # hier die Arbeit am Schlüssel, etwa eine Laufzeit verlängern
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --armor --export-options no-export-minimal --export $FPR > /tmp/pub-neu.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            rm -rf "$GNUPGHOME"; unset GNUPGHOME

                                                                                                                                                                                                                                                                                                                                                                                                                            Danach importierst du die aktualisierte öffentliche Hälfte in den Alltags-Keyring und rollst sie über alle Veröffentlichungskanäle aus. Das ist unbequem. Es soll unbequem sein, denn genau diese Unbequemlichkeit ist der Grund, warum der Hauptschlüssel selten angefasst wird und deshalb schwer zu verlieren ist.

                                                                                                                                                                                                                                                                                                                                                                                                                            Den alten Schlüssel den neuen gegenzeichnen lassen

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein weicher Übergang statt einer harten Kante: Der alte Schlüssel bleibt bis zu seinem Ablauf gültig und zertifiziert den neuen. Wer dem alten Schlüssel schon vertraut, bekommt damit einen kryptografischen Pfad zum neuen, ohne mich irgendwo anrufen zu müssen.

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --default-key 0x5F279C362EEAB216 --sign-key $FPR

                                                                                                                                                                                                                                                                                                                                                                                                                            Die externe Zertifizierung über Governikus

                                                                                                                                                                                                                                                                                                                                                                                                                            Das ist ein eigenes Thema, deshalb hier nur zusammengefasst: Governikus ist nach meinem Stand vom August 2026 der einzige mir bekannte noch aktive Dienst in Deutschland, der OpenPGP-Schlüssel über die Online-Ausweisfunktion zertifiziert. Du schickst deinen öffentlichen Schlüssel hin, weist dich mit dem Personalausweis aus und bekommst eine Zertifizierung mit Level 3 zurück. Die Volksverschlüsselung fällt als Alternative aus, die macht ausschließlich S/MIME nach X.509, erzeugt die Schlüssel selbst und wird ohnehin eingestellt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Strukturell wichtig für den Rest des Beitrags ist nur ein Punkt: Diese Zertifizierung ist eine Fremdsignatur. Und die Hälfte meiner Veröffentlichungskanäle wirft Fremdsignaturen weg. Warum, steht gleich.

                                                                                                                                                                                                                                                                                                                                                                                                                            Vier Exporte für vier Aufgaben

                                                                                                                                                                                                                                                                                                                                                                                                                            Das ist der Teil, den fast alle Anleitungen überspringen, und ausgerechnet hier fallen die echten Entscheidungen. Vier verschiedene Exporte desselben Schlüssels für vier verschiedene Jobs, mit den gemessenen Größen der Artefakte, die tatsächlich ausgeliefert werden:

                                                                                                                                                                                                                                                                                                                                                                                                                            Artefakt

                                                                                                                                                                                                                                                                                                                                                                                                                            Befehl

                                                                                                                                                                                                                                                                                                                                                                                                                            Größe

                                                                                                                                                                                                                                                                                                                                                                                                                            Inhalt

                                                                                                                                                                                                                                                                                                                                                                                                                            minimal, ASCII

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --armor --export $FPR

                                                                                                                                                                                                                                                                                                                                                                                                                            16772 B

                                                                                                                                                                                                                                                                                                                                                                                                                            1 UID plus Foto, 3 Unterschlüssel, 5 Signaturen

                                                                                                                                                                                                                                                                                                                                                                                                                            vollständig, ASCII

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --armor --export-options no-export-minimal --export $FPR

                                                                                                                                                                                                                                                                                                                                                                                                                            17833 B

                                                                                                                                                                                                                                                                                                                                                                                                                            zusätzlich 3 Fremdsignaturen, also 8 Signaturen

                                                                                                                                                                                                                                                                                                                                                                                                                            WKD, binär

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --no-armor --export-options no-export-minimal --export $FPR

                                                                                                                                                                                                                                                                                                                                                                                                                            13108 B

                                                                                                                                                                                                                                                                                                                                                                                                                            wie vollständig, nur binär

                                                                                                                                                                                                                                                                                                                                                                                                                            DANE, binär minimal

                                                                                                                                                                                                                                                                                                                                                                                                                            siehe unten

                                                                                                                                                                                                                                                                                                                                                                                                                            1298 B

                                                                                                                                                                                                                                                                                                                                                                                                                            1 UID, kein Foto, 4 Signaturen

                                                                                                                                                                                                                                                                                                                                                                                                                            Alle vier Befehle habe ich gegen die live ausgelieferten Dateien geprüft, sie reproduzieren die Artefakte byteidentisch, sha256 stimmt jeweils überein. Du kannst sie also so übernehmen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Und jetzt die fiese Falle. In meiner gpg.conf steht global export-options export-minimal. Export-Optionen summieren sich, sie ersetzen einander nicht. --export-options export-clean hebt export-minimal also nicht auf. Du bekommst weiterhin einen minimalen Export, still und ohne Warnung, mit weggeworfenen Fremdsignaturen. Nur die ausdrückliche Verneinung funktioniert:

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export-options export-clean      --export $FPR | gpg --list-packets | grep -c '^:signature packet:'   # 5, immer noch minimal
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export-options no-export-minimal --export $FPR | gpg --list-packets | grep -c '^:signature packet:'   # 8, korrekt

                                                                                                                                                                                                                                                                                                                                                                                                                            Das ist genau die Sorte Fehler, bei der du fest davon überzeugt bist, einen Schlüssel mit allen Signaturen veröffentlicht zu haben, während in Wahrheit die eID-Zertifizierung nie das Haus verlassen hat.

                                                                                                                                                                                                                                                                                                                                                                                                                            Die zweite Stolperfalle beim Export: export-minimal wirft zwar Fremdsignaturen weg, behält aber die Foto-UID. Für den DANE-Record muss auch das Bild raus, sonst wächst der Record von rund einem Kilobyte auf gute zwölf. Dieser Befehl hat den ausgelieferten Record mit 1298 Byte erzeugt:

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --no-armor --export-options export-minimal --export-filter keep-uid='mbox = kernel-error@kernel-error.com' --export $FPR > openpgpkey.bin

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei Anmerkungen noch zu den Formaten, weil sich in der 2.4er Reihe etwas geändert hat:

                                                                                                                                                                                                                                                                                                                                                                                                                            • --print-dane-records gibt es nicht mehr. Der Nachfolger heißt --export-options export-dane.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Verwechsle die beiden Ausgaben aber nicht. export-dane liefert einen fertigen DNS-Präsentationsblock, also $ORIGIN, Kommentarzeilen und generische TYPE61-Rdata, bei mir 25642 Byte. Das ist kein binäres Schlüsselmaterial. Zum Lesen ist es praktisch, der ausgelieferte Record entstand aber aus dem binären Export oben plus base64 -w0 openpgpkey.bin. Beide Wege sind gültige Zonefile-Syntax, RFC 7929 definiert die base64-Präsentationsform und RFC 3597 die generische TYPE61-Form, BIND frisst beides. Der Einzeiler passte einfach besser in meine bestehende Zone.

                                                                                                                                                                                                                                                                                                                                                                                                                            Wo der Schlüssel liegt, und warum genau dort

                                                                                                                                                                                                                                                                                                                                                                                                                            Sieben Kanäle, und jeder existiert aus einem anderen Grund. Das „warum“ ist dabei die interessantere Hälfte:

                                                                                                                                                                                                                                                                                                                                                                                                                            Kanal

                                                                                                                                                                                                                                                                                                                                                                                                                            Format

                                                                                                                                                                                                                                                                                                                                                                                                                            Warum dieser Kanal

                                                                                                                                                                                                                                                                                                                                                                                                                            keys.openpgp.org

                                                                                                                                                                                                                                                                                                                                                                                                                            voll hochgeladen, Server wirft Signaturen und Foto weg

                                                                                                                                                                                                                                                                                                                                                                                                                            der einzige Keyserver, der die Mailadresse validiert, und der, den moderne Clients abfragen

                                                                                                                                                                                                                                                                                                                                                                                                                            keyserver.ubuntu.com

                                                                                                                                                                                                                                                                                                                                                                                                                            voll

                                                                                                                                                                                                                                                                                                                                                                                                                            klassischer SKS-Nachfolger, behält Fremdsignaturen

                                                                                                                                                                                                                                                                                                                                                                                                                            pgpkeys.eu

                                                                                                                                                                                                                                                                                                                                                                                                                            voll

                                                                                                                                                                                                                                                                                                                                                                                                                            zweiter Klassiker, Redundanz

                                                                                                                                                                                                                                                                                                                                                                                                                            DANE / OPENPGPKEY

                                                                                                                                                                                                                                                                                                                                                                                                                            minimal binär, 1298 B

                                                                                                                                                                                                                                                                                                                                                                                                                            Vertrauen hängt an DNSSEC statt an einem Signaturgraphen, muss klein bleiben, es ist ein DNS-Record

                                                                                                                                                                                                                                                                                                                                                                                                                            WKD advanced

                                                                                                                                                                                                                                                                                                                                                                                                                            kein eigener Export, CNAME auf wkd.keys.openpgp.org

                                                                                                                                                                                                                                                                                                                                                                                                                            spiegelt keys.openpgp.org automatisch, lässt sich hier nicht selbst hosten

                                                                                                                                                                                                                                                                                                                                                                                                                            WKD direct (Apex)

                                                                                                                                                                                                                                                                                                                                                                                                                            voll binär, 13108 B

                                                                                                                                                                                                                                                                                                                                                                                                                            selbst gehostet, deshalb die einzige Stelle mit Foto und Fremdsignaturen

                                                                                                                                                                                                                                                                                                                                                                                                                            security.txt und Direktdownload

                                                                                                                                                                                                                                                                                                                                                                                                                            voll ASCII, 17833 B

                                                                                                                                                                                                                                                                                                                                                                                                                            auffindbar für Menschen und für Scanner

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei abgeleitete Namen tauchen dabei auf, und die werden regelmäßig falsch gebildet. Beide habe ich unabhängig nachgerechnet, sie stimmen mit dem überein, was ausgeliefert wird:

                                                                                                                                                                                                                                                                                                                                                                                                                            # WKD: z-base32 des SHA-1 vom lokalen Teil, ASCII-Großbuchstaben vorher klein gemacht
                                                                                                                                                                                                                                                                                                                                                                                                                            #   sha1("kernel-error") -> z-base32 -> 3gyjbxx9xfdggpkmx5qdd793xy431w5u
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --with-wkd-hash -k kernel-error@kernel-error.com
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # DANE (RFC 7929): SHA-256 des kanonisierten UTF-8-Lokalteils, auf 28 Oktette gekürzt,
                                                                                                                                                                                                                                                                                                                                                                                                                            # hex-kodiert, dann ._openpgpkey.<domain>
                                                                                                                                                                                                                                                                                                                                                                                                                            #   70e1c7d87e825b3aba45e2a478025ea0d91d298038436abde5a4c2d0._openpgpkey.kernel-error.com

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei Präzisierungen, damit hier keine Regel steht, die breiter ist als die Spezifikationen: WKD bildet ASCII-Großbuchstaben auf Kleinbuchstaben ab, das ist kein allgemeines Unicode-Lowercasing. Und DANE übernimmt diese Abbildung nicht einfach, RFC 7929 hat seine eigene Kanonisierung des lokalen Teils. Bei mir fallen beide zusammen, weil kernel-error schon reines Kleinbuchstaben-ASCII ist. Genau deshalb ist mir der Unterschied nie begegnet. Wer einen Lokalteil mit Großbuchstaben oder Nicht-ASCII hat, darf die beiden auf keinen Fall gleichsetzen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Und weil ich schon dabei bin, mich zu blamieren: Bei einem früheren Review habe ich DANE als „fehlt“ markiert, weil ich den z-base32-Namen aus WKD gegen das DNS geprüft habe. Also den falschen Namen. DANE lief die ganze Zeit. Wenn du deinen eigenen Aufbau prüfst, prüfe bitte den Namen, den die jeweilige Spezifikation vorschreibt, und nicht den, den du gerade im Kopf hast. Wie man einen OPENPGPKEY-Record überhaupt in die Zone bekommt und wie man die Zone dafür mit BIND signiert, steht hier im Blog.

                                                                                                                                                                                                                                                                                                                                                                                                                            Eine Konsequenz aus der Tabelle überrascht die Leute regelmäßig, deshalb schreibe ich sie deutlich hin:

                                                                                                                                                                                                                                                                                                                                                                                                                            Die Governikus-Zertifizierung ist nur auf den klassischen Keyservern und auf den selbst gehosteten Kopien sichtbar. keys.openpgp.org wirft sie weg, und gpg bevorzugt die WKD-advanced-Methode, die wiederum auf keys.openpgp.org zeigt. Der Kanal, den die meisten Clients benutzen, ist also ausgerechnet der mit den wenigsten Signaturen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Prüfen wie ein Fremder

                                                                                                                                                                                                                                                                                                                                                                                                                            Der letzte Schritt in Teil A, und der wichtigste: Hol dir deinen eigenen Schlüssel so, wie es jemand tut, der dich nicht kennt. Einmal pro Suchpfad, jedes Mal in einem frischen Schlüsselbund.

                                                                                                                                                                                                                                                                                                                                                                                                                            # den Schlüssel holen wie ein Fremder, einmal pro Lookup-Pfad
                                                                                                                                                                                                                                                                                                                                                                                                                            for m in dane wkd keyserver; do
                                                                                                                                                                                                                                                                                                                                                                                                                              GNUPGHOME=$(mktemp -d) gpg --auto-key-locate clear,$m --locate-external-keys kernel-error@kernel-error.com
                                                                                                                                                                                                                                                                                                                                                                                                                            done
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # welche Präferenzen bewirbt der Schlüssel tatsächlich?
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --export $FPR | gpg --list-packets | grep -E 'pref-|features'
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            # welchen Cipher wählt ein Absender wirklich?
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --status-fd 1 -d message.gpg | grep DECRYPTION_INFO

                                                                                                                                                                                                                                                                                                                                                                                                                            Damit endet das Rezept. Ab hier geht es darum, was die Teile bedeuten, und um die Frage, wie sicher der Aufbau am Ende wirklich ist.

                                                                                                                                                                                                                                                                                                                                                                                                                            Teil B: was das alles bedeutet

                                                                                                                                                                                                                                                                                                                                                                                                                            Wenn du bis hierher gekommen bist, hast du ein funktionierendes Rezept. Was du noch nicht hast, ist ein Gefühl dafür, warum die Teile so und nicht anders geschnitten sind, und wo der Aufbau trotz allem nachgibt. Genau darum geht es jetzt, und zwar in dieser Reihenfolge: erst die Struktur, dann die Zahlen, dann der Fehler und am Ende die Rechnung ohne Schönfärberei.

                                                                                                                                                                                                                                                                                                                                                                                                                            Warum ein Hauptschlüssel, der nur zertifiziert

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Hauptschlüssel hat genau eine Aufgabe: zu sagen, wer zu diesem Schlüssel gehört. Er signiert die UIDs und er signiert die Unterschlüssel. Er signiert nie eine Mail und entschlüsselt nie irgendetwas. Alles Operative ist delegiert:

                                                                                                                                                                                                                                                                                                                                                                                                                            [C] certify   Identitätsanker. Wird selten benutzt. Eine Kompromittierung ist
                                                                                                                                                                                                                                                                                                                                                                                                                                          nicht reparierbar, ein Verlust nur über das Offline-Backup.
                                                                                                                                                                                                                                                                                                                                                                                                                            [S] sign      Signieren im Alltag
                                                                                                                                                                                                                                                                                                                                                                                                                            [E] encrypt   Entschlüsseln im Alltag
                                                                                                                                                                                                                                                                                                                                                                                                                            [A] auth      Authentisierung, etwa als SSH-Schlüssel

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Gewinn: Ein kompromittierter oder ausgedienter Unterschlüssel lässt sich widerrufen und ersetzen, ohne die Identität anzufassen, ohne die gesammelten Fremdsignaturen zu verlieren und ohne den Fingerabdruck zu ändern, der an sieben Stellen veröffentlicht ist. Dass [S] und [E] getrennt sind, hat noch einen zweiten Grund: Sie haben unterschiedliche Lebenszyklen. Einen alten Signaturschlüssel zu vernichten ist harmlos. Einen alten Verschlüsselungsschlüssel zu vernichten heißt, dass du an dein Archiv nicht mehr herankommst.

                                                                                                                                                                                                                                                                                                                                                                                                                            Das Ganze zahlt sich allerdings nur aus, wenn du auch die Konsequenz ziehst: Der volle Nutzen dieser Aufteilung stellt sich erst ein, wenn der Hauptschlüssel offline liegt. Genau deshalb liegt er hier offline, auf verschlüsseltem Wechselmedium und zusammen mit dem Widerrufszertifikat. Er kommt nur heraus, wenn ein Unterschlüssel verlängert, ersetzt oder widerrufen werden muss, und dann in ein temporäres GNUPGHOME und nicht zurück in den Alltags-Keyring. Auf der Arbeitsmaschine liegen ausschließlich die drei Unterschlüssel. Ein Hauptschlüssel, der nur zertifiziert, aber trotzdem neben dem Mailclient herumliegt, ist am Ende nur Kosmetik.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der [A]-Unterschlüssel existiert übrigens, ist aber bewusst nicht im gpg-agent für SSH verdrahtet, sshcontrol ist leer. Ich habe ihn erzeugt, um mir die Option offenzuhalten. Mehr ist es im Moment nicht.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ed25519 und X25519, was die Zahlen bedeuten

                                                                                                                                                                                                                                                                                                                                                                                                                            • Ed25519 zum Signieren und X25519, in GnuPG als cv25519 bezeichnet, zum Verschlüsseln liegen beide bei rund 128 Bit klassischem Sicherheitsniveau. Das ist vergleichbar mit RSA-3072 und deutlich oberhalb von RSA-2048.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Sie sind dramatisch kleiner und schneller. Deshalb passt der komplette Schlüssel mit drei Unterschlüsseln, Foto und drei Fremdsignaturen immer noch in 13 KB.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Curve25519 ist fehlbedienungsresistent entworfen: keine Parameter, die man falsch wählen kann, keine Invalid-Curve-Fallen, deterministische Nonces bei Ed25519. Ein großer Teil der historischen Signatur-Unfälle in der Praxis kam aus genau den Ecken, die diese Kurve wegräumt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Punkt dazu, den du im Kopf behalten solltest, weil er gleich noch wichtig wird: 128 Bit klassische Sicherheit sind die Obergrenze dieses Schlüssels. Merk dir die Zahl. Sie ist der Grund, warum die AES-Geschichte weiter unten weniger dramatisch ist, als sie zunächst klingt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Algorithmen-Präferenzen: was sie sind und wer sie liest

                                                                                                                                                                                                                                                                                                                                                                                                                            Dieses Konzept muss sitzen, sonst funktioniert die Geschichte danach nicht. Vorweg ein Satz, den viele nie gehört haben: Eine OpenPGP-Nachricht ist immer hybrid. Der asymmetrische Teil, also dein Ed25519- und X25519-Material, verpackt ausschließlich einen zufällig erzeugten symmetrischen Sitzungsschlüssel. Die eigentlichen Nutzdaten verschlüsselt ein symmetrisches Verfahren, in der Regel AES. Der Fehler, um den es gleich geht, saß in dieser symmetrischen Hälfte.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein OpenPGP-Schlüssel trägt nämlich nicht nur öffentliche Schlüssel spazieren. Die Selbstsignatur jeder UID enthält Subpakete, die ankündigen, was der Besitzer verarbeiten kann:

                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 11 (pref-sym-algos:  9 8 7)      AES256, AES192, AES128
                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 21 (pref-hash-algos: 10 9 8)     SHA512, SHA384, SHA256
                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 22 (pref-zip-algos:  2 3 1 0)    ZLIB, BZIP2, ZIP, unkomprimiert
                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 34 (pref-aead-algos: 2)          OCB, fehlt auf diesem Schlüssel
                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 30 (features: 05)                Feature-Bits, siehe unten
                                                                                                                                                                                                                                                                                                                                                                                                                            hashed subpkt 23 (keyserver preferences: 80)   "no-modify"

                                                                                                                                                                                                                                                                                                                                                                                                                            Das features-Oktett ist die Stelle, an der ich mich in meinen eigenen Notizen vertan hatte, deshalb hier die Dekodierung. In der Linie, die GnuPG 2.4 implementiert, bedeuten die Bits des ersten Oktetts:

                                                                                                                                                                                                                                                                                                                                                                                                                            0x01  SEIPD-v1 mit Modification Detection Code (MDC)
                                                                                                                                                                                                                                                                                                                                                                                                                            0x02  AEAD
                                                                                                                                                                                                                                                                                                                                                                                                                            0x04  Unterstützung für das v5-Schlüssel- und Fingerabdruckformat

                                                                                                                                                                                                                                                                                                                                                                                                                            features 05 ist also 0x01 + 0x04, das heißt MDC und kein AEAD. features 07 wäre 0x01 + 0x02 + 0x04, und genau das bekommt ein Schlüssel, den GnuPG 2.4 mit Standardeinstellungen erzeugt. Der kaputte Zustand war features 04, also 0x04 ganz allein: weder MDC noch AEAD angekündigt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Eine Versionsfußnote gehört dazu: Diese Bitbelegung und das Subpaket 34 stammen aus der LibrePGP-Linie, die GnuPG 2.4 umsetzt. RFC 9580 hat beides geändert, dort sind die AEAD-Präferenzen in Subpaket 39 umgezogen und das Feature-Modell wurde umgebaut. Diese Spaltung kommt weiter unten noch einmal zurück.

                                                                                                                                                                                                                                                                                                                                                                                                                            Wenn dir jemand etwas verschlüsselt, liest dessen GnuPG deine Präferenzliste und wählt daraus das stärkste Verfahren, das beide können. Das ist der ganze Mechanismus. Daraus folgen zwei Dinge, die den meisten Leuten gegen den Strich gehen:

                                                                                                                                                                                                                                                                                                                                                                                                                            • Deine eigenen personal-cipher-preferences schützen dich nicht. Die bestimmen, was du verschickst. Was Leute dir schicken, bestimmt allein das, was dein veröffentlichter Schlüssel ankündigt.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Die Präferenzen stehen in einer Signatur. Sie zu ändern heißt, die Selbstsignatur neu auszustellen. Und damit ist jede veröffentlichte Kopie deines Schlüssels veraltet, bis du sie erneuerst. Bei mir sind das sieben Kanäle und eine Änderung an der DNS-Zone.

                                                                                                                                                                                                                                                                                                                                                                                                                            Und wenn ein Schlüssel gar nichts ankündigt? Dann greift der Rückfall. RFC 4880 schreibt dafür 3DES vor, den verpflichtend zu implementierenden Algorithmus. Moderne GnuPG-Versionen landen dort allerdings nicht mehr: Seit der 2.3er Reihe verschlüsselt gpg grundsätzlich nicht mehr mit 64-Bit-Blockchiffren, dafür müsstest du ausdrücklich --allow-old-cipher-algos setzen. Der Rückfall endet deshalb bei AES-128. Nicht kaputt, aber eben auch nicht das, was der Schlüssel bekommen sollte.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Defekt, gemessen

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein x-beliebiger Absender, der meinem brandneuen Schlüssel etwas verschlüsselt, sah das hier:

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg: WARNING: cipher algorithm AES not found in recipient preferences
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg: AES.CFB encrypted data
                                                                                                                                                                                                                                                                                                                                                                                                                            [GNUPG:] DECRYPTION_INFO 2 7 0        # 7 = AES128

                                                                                                                                                                                                                                                                                                                                                                                                                            Derselbe Absender, wenn er dem Schlüssel von 2023 schreibt, den der neue gerade ablöst:

                                                                                                                                                                                                                                                                                                                                                                                                                            [GNUPG:] DECRYPTION_INFO 2 9 0        # 9 = AES256

                                                                                                                                                                                                                                                                                                                                                                                                                            Der neue Schlüssel hatte überhaupt keine pref-sym-algos, keine pref-hash-algos und keine pref-zip-algos, dazu features 04 statt 05. Er wurde also schwächer angesprochen als sein Vorgänger, lautlos, und der einzige Hinweis darauf erschien auf einem Terminal, das jemand anderem gehört.

                                                                                                                                                                                                                                                                                                                                                                                                                            Die Ursache, und eine Korrektur an mir selbst

                                                                                                                                                                                                                                                                                                                                                                                                                            In meinen Arbeitsnotizen stand als Ursache: „mit einer --batch --gen-key-Parameterdatei ohne Preferences:-Zeile gebaut“. Das ist falsch. Eine Parameterdatei ohne diese Zeile erzeugt völlig ordentliche Präferenzen aus den eingebauten Defaults von GnuPG. Nachgeprüft, es kommt das hier heraus:

                                                                                                                                                                                                                                                                                                                                                                                                                            pref-sym-algos: 9 8 7 2 · pref-aead-algos: 2 · pref-hash-algos: 10 9 8 11 2 · features: 07

                                                                                                                                                                                                                                                                                                                                                                                                                            Die echte Ursache saß in der gpg.conf. Ich habe die Juli-Konfiguration in einem Wegwerf-Schlüsselbund nachgestellt, der Defekt war sofort wieder da. Danach habe ich die Datei halbiert, bis eine einzige Zeile übrig blieb:

                                                                                                                                                                                                                                                                                                                                                                                                                            Konfiguration im Test

                                                                                                                                                                                                                                                                                                                                                                                                                            Ergebnis

                                                                                                                                                                                                                                                                                                                                                                                                                            Juli-gpg.conf, unverändert

                                                                                                                                                                                                                                                                                                                                                                                                                            features: 04, gar keine pref-*

                                                                                                                                                                                                                                                                                                                                                                                                                            ohne disable-cipher-algo 3DES

                                                                                                                                                                                                                                                                                                                                                                                                                            pref-sym-algos: 9 8 7 2, features: 07

                                                                                                                                                                                                                                                                                                                                                                                                                            ohne alle disable-cipher-algo-Zeilen

                                                                                                                                                                                                                                                                                                                                                                                                                            pref-sym-algos: 9 8 7 2, features: 07

                                                                                                                                                                                                                                                                                                                                                                                                                            ohne cipher-algo AES256

                                                                                                                                                                                                                                                                                                                                                                                                                            weiterhin kaputt, features: 04

                                                                                                                                                                                                                                                                                                                                                                                                                            nur disable-cipher-algo 3DES vorhanden

                                                                                                                                                                                                                                                                                                                                                                                                                            kaputt, features: 04

                                                                                                                                                                                                                                                                                                                                                                                                                            disable-cipher-algo 3DES plus explizite Preferences:-Zeile

                                                                                                                                                                                                                                                                                                                                                                                                                            sauber, pref-sym-algos: 9 8 7, features: 05

                                                                                                                                                                                                                                                                                                                                                                                                                            disable-cipher-algo 3DES ist also notwendig und hinreichend, um den Defekt auszulösen. Eine Zeile, mehr nicht.

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Mechanismus dahinter ist die eigentliche Pointe des ganzen Beitrags. 3DES ist in OpenPGP der verpflichtend zu implementierende Algorithmus, und in der Standardliste steht er auch sichtbar drin: pref-sym-algos: 9 8 7 2 endet auf der 2, und die 2 ist 3DES. Nimmst du GnuPG diesen einen Algorithmus lokal weg, verschwindet nicht nur er aus der Liste, sondern die Liste als Ganzes.

                                                                                                                                                                                                                                                                                                                                                                                                                            Beim Warum bleibe ich vorsichtig. Dass GnuPG intern keine gültige Liste mehr konstruieren kann und deshalb gar keine schreibt, ist die naheliegende Erklärung, beweisen lässt sie sich von der Kommandozeile aus nicht. Belegt ist der Auslöser, nicht der Code-Pfad dahinter. Der Effekt selbst ist dagegen eindeutig: Die Härtungszeile hat nicht einen schwachen Algorithmus aus der Liste entfernt, sie hat die komplette Liste entfernt. Und damit dafür gesorgt, dass Absender zurückfallen, und zwar auf etwas Schwächeres als das, was ich gerade weghärten wollte.

                                                                                                                                                                                                                                                                                                                                                                                                                            Das Labor zum Selbernachbauen

                                                                                                                                                                                                                                                                                                                                                                                                                            Zwei Minuten, kein echter Schlüssel wird angefasst, alles passiert in Wegwerf-Verzeichnissen unter /tmp. Wenn du mir nicht glaubst, ist das hier der schnellste Weg, es selbst zu sehen:

                                                                                                                                                                                                                                                                                                                                                                                                                            SP=$(mktemp -d)
                                                                                                                                                                                                                                                                                                                                                                                                                            mk() {  # $1 = Name, $2 = bad|good
                                                                                                                                                                                                                                                                                                                                                                                                                              export GNUPGHOME="$SP/$1"; mkdir -p "$GNUPGHOME"; chmod 700 "$GNUPGHOME"
                                                                                                                                                                                                                                                                                                                                                                                                                              [ "$2" = bad ] && echo "disable-cipher-algo 3DES" > "$GNUPGHOME/gpg.conf"
                                                                                                                                                                                                                                                                                                                                                                                                                              cat > "$SP/p.txt" <<EOF
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Type: eddsa
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Curve: Ed25519
                                                                                                                                                                                                                                                                                                                                                                                                                            Key-Usage: sign
                                                                                                                                                                                                                                                                                                                                                                                                                            Subkey-Type: ecdh
                                                                                                                                                                                                                                                                                                                                                                                                                            Subkey-Curve: cv25519
                                                                                                                                                                                                                                                                                                                                                                                                                            Subkey-Usage: encrypt
                                                                                                                                                                                                                                                                                                                                                                                                                            Name-Real: Demo $1
                                                                                                                                                                                                                                                                                                                                                                                                                            Name-Email: $1@example.invalid
                                                                                                                                                                                                                                                                                                                                                                                                                            Expire-Date: 1y
                                                                                                                                                                                                                                                                                                                                                                                                                            %no-protection
                                                                                                                                                                                                                                                                                                                                                                                                                            %commit
                                                                                                                                                                                                                                                                                                                                                                                                                            EOF
                                                                                                                                                                                                                                                                                                                                                                                                                              gpg --batch --gen-key "$SP/p.txt" 2>/dev/null
                                                                                                                                                                                                                                                                                                                                                                                                                              gpg --export -a "$1@example.invalid" > "$SP/$1.asc"
                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                            mk nopref bad
                                                                                                                                                                                                                                                                                                                                                                                                                            mk withpref good
                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                            export GNUPGHOME="$SP/sender"; mkdir -p "$GNUPGHOME"; chmod 700 "$GNUPGHOME"
                                                                                                                                                                                                                                                                                                                                                                                                                            echo "auto-key-locate local" > "$GNUPGHOME/gpg.conf"
                                                                                                                                                                                                                                                                                                                                                                                                                            gpg -q --import "$SP"/*.asc
                                                                                                                                                                                                                                                                                                                                                                                                                            echo hi > "$SP/m.txt"
                                                                                                                                                                                                                                                                                                                                                                                                                            for r in nopref withpref; do
                                                                                                                                                                                                                                                                                                                                                                                                                              gpg --trust-model always --yes -e -r "$r@example.invalid" -o "$SP/$r.gpg" "$SP/m.txt"
                                                                                                                                                                                                                                                                                                                                                                                                                              printf '%-9s ' "$r:"
                                                                                                                                                                                                                                                                                                                                                                                                                              GNUPGHOME="$SP/$r" gpg -q -d "$SP/$r.gpg" 2>&1 | grep -i 'encrypted data'
                                                                                                                                                                                                                                                                                                                                                                                                                            done

                                                                                                                                                                                                                                                                                                                                                                                                                            Bei mir kommt das hier heraus, und die eine Zeile Unterschied ist der ganze Defekt:

                                                                                                                                                                                                                                                                                                                                                                                                                            nopref:   gpg: WARNING: cipher algorithm AES not found in recipient preferences
                                                                                                                                                                                                                                                                                                                                                                                                                                      gpg: AES.CFB encrypted data
                                                                                                                                                                                                                                                                                                                                                                                                                            withpref: gpg: AES256.OCB encrypted data

                                                                                                                                                                                                                                                                                                                                                                                                                            Die Reparatur

                                                                                                                                                                                                                                                                                                                                                                                                                            Der Fix selbst ist unspektakulär, ein einziger Befehl im Editiermodus. Weil setpref die Selbstsignatur neu ausstellt, braucht er den Hauptschlüssel. Das Ganze läuft also einmal im temporären GNUPGHOME von weiter oben, mit dem Offline-Schlüssel und dem aktuellen öffentlichen Stand:

                                                                                                                                                                                                                                                                                                                                                                                                                            gpg --edit-key $FPR
                                                                                                                                                                                                                                                                                                                                                                                                                            > setpref AES256 AES192 AES SHA512 SHA384 SHA256 ZLIB BZIP2 ZIP Uncompressed
                                                                                                                                                                                                                                                                                                                                                                                                                            > y
                                                                                                                                                                                                                                                                                                                                                                                                                            > save

                                                                                                                                                                                                                                                                                                                                                                                                                            Danach steht da pref-sym 9 8 7, pref-hash 10 9 8, pref-zip 2 3 1 0 und features 05. Der Fingerabdruck bleibt unverändert, und die Governikus-Zertifizierung, die Gegensignatur des alten Schlüssels, die Foto-UID und sämtliche Ablaufdaten überleben. Das schreibe ich so ausdrücklich hin, weil viele Leute Angst vor setpref haben und glauben, es beschädige den Schlüssel. Tut es nicht. Was es tut: Es stellt die Selbstsignatur neu aus. Und damit müssen anschließend alle sieben Veröffentlichungskanäle aufgefrischt werden.

                                                                                                                                                                                                                                                                                                                                                                                                                            Zur Sicherheit gleich hinterher: default-preference-list in der gpg.conf festgenagelt, und die disable-cipher-algo-Zeilen sind endgültig raus.

                                                                                                                                                                                                                                                                                                                                                                                                                            Wie schlimm war es wirklich?

                                                                                                                                                                                                                                                                                                                                                                                                                            Hier will ich ehrlich sein statt dramatisch, sonst wird das hier auch nur wieder eine von diesen „ich habe einen Bug gefunden“-Geschichten.

                                                                                                                                                                                                                                                                                                                                                                                                                            AES-128 statt AES-256 ist real, aber überschaubar. AES-128 ist nicht gebrochen, es gibt keinen praktischen Angriff darauf. Und erinnere dich an die Zahl von weiter oben: Der asymmetrische Teil dieses Schlüssels liefert ohnehin rund 128 Bit klassische Sicherheit. Gemessen an der reinen Schlüsselsuche war AES-128 also nicht das schwächste Glied in der Kette, es hat lediglich mit dem Rest gleichgezogen. Über Implementierungsfehler, Seitenkanäle oder Protokollschwächen sagt dieser Vergleich nichts. Die faire Einordnung lautet: Das war ein Hygiene- und Signalisierungsfehler, keine ausnutzbare Schwachstelle. Bemerkenswert ist er, weil er lautlos war, automatisch passierte und von einer Härtungsmaßnahme verursacht wurde.

                                                                                                                                                                                                                                                                                                                                                                                                                            Das fehlende MDC-Bit sah schlimmer aus, als es war. features 04 heißt, dass das Bit 0x01 fehlte, mit dem ein Schlüssel Modification Detection ankündigt. Auf dem Papier lädt das einen Absender dazu ein, auf ein Paket ohne Integritätsschutz zurückzufallen, und das ist die Ecke, aus der EFAIL kam. Gemessen kam aber das hier heraus:

                                                                                                                                                                                                                                                                                                                                                                                                                            [GNUPG:] DECRYPTION_INFO 2 7 0
                                                                                                                                                                                                                                                                                                                                                                                                                            [GNUPG:] GOODMDC

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Absender mit GnuPG 2.4.x in Standardkonfiguration hat trotz des fehlenden Bits ein integritätsgeschütztes SEIPD-v1-Paket erzeugt und GOODMDC gemeldet. MDC ist dort schlicht immer an. Herauskommen aus dem Integritätsschutz muss man in dieser Version aktiv wollen, etwa über --rfc2440, das ausdrücklich den alten Modus ohne MDC erzeugt. Die tatsächliche Integritätslücke gegenüber einem 2.4.x-Absender mit Standardeinstellungen war damit null.

                                                                                                                                                                                                                                                                                                                                                                                                                            Diese Aussage gilt exakt so weit wie die Messung und keinen Meter weiter. Über andere Implementierungen oder ältere GnuPG-Versionen sagt sie nichts, und genau dort könnte ein fehlendes MDC-Signal im Prinzip sehr wohl noch eine Rolle spielen. „Kein aktueller Absender ist betroffen“ wäre schlicht gelogen, und irgendwer würde es nachprüfen.

                                                                                                                                                                                                                                                                                                                                                                                                                            Was wirklich Alarm verdient, ist keines von beiden für sich, sondern die Art des Versagens. Ein Schlüssel kann strukturell perfekt sein und trotzdem still auf den nackten Rückfallwert heruntergehandelt werden, ohne dass irgendwer etwas davon mitbekommt. Die einzige Diagnose erscheint auf einer Maschine, die dir nicht gehört. Weder gpg --list-keys noch --check-sigs noch irgendeine Keyserver-Seite zeigt dir das. Du musst dir Signatur-Subpakete ansehen, und das macht praktisch niemand.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ein Punkt bleibt offen: AEAD

                                                                                                                                                                                                                                                                                                                                                                                                                            Der reparierte Schlüssel steht bei features 05 und hat keine pref-aead-algos. Gemessen bedeutet das:

                                                                                                                                                                                                                                                                                                                                                                                                                            AES256.CFB encrypted data      # reparierter Schlüssel, features 05
                                                                                                                                                                                                                                                                                                                                                                                                                            AES256.OCB encrypted data      # frisch erzeugter Schlüssel, features 07 plus pref-aead-algos: 2

                                                                                                                                                                                                                                                                                                                                                                                                                            setpref hat das MDC-Bit zurückgeholt, aber nie eine AEAD-Ankündigung ergänzt, weil der Schlüssel aus dem kaputten Zustand heraus repariert und nicht neu erzeugt wurde. Nachrüsten ginge, setpref … OCB liefert pref-aead-algos: 2 und features 07, auch das habe ich geprüft.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ich lasse es trotzdem so. AES256-CFB mit MDC ist solide. Vor allem aber ist AEAD genau die Stelle, an der OpenPGP derzeit auseinanderläuft: Das AEAD von GnuPG 2.4 folgt der LibrePGP-Linie, RFC 9580 spezifiziert eine andere Konstruktion namens SEIPD v2. AEAD auf einem breit veröffentlichten Schlüssel anzukündigen bringt heute eine marginale Verbesserung und ein echtes Interoperabilitätsrisiko. Wer sich für die andere Baustelle im selben Themenfeld interessiert: Was in einem modernen Handshake steckt, habe ich am Beispiel X25519MLKEM768 auseinandergenommen. Dasselbe Argument gilt übrigens für force-ocb in meiner lokalen Konfiguration, das betrifft nur, was ich selbst verschicke, und ist eine bewusst etwas vorwärtsgewandte Entscheidung.

                                                                                                                                                                                                                                                                                                                                                                                                                            Ehrliche Gesamteinschätzung

                                                                                                                                                                                                                                                                                                                                                                                                                            • Die Kryptografie ist in Ordnung. Ed25519, X25519, SHA-512 und AES-256 sind eine moderne, unaufgeregte Auswahl ohne bekannte praktische Schwächen, bei rund 128 Bit klassischer Sicherheit.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Die Struktur ist besser als der Durchschnitt. Hauptschlüssel nur zum Zertifizieren, getrennte Unterschlüssel, begrenzte Laufzeit von fünf Jahren, vorab erzeugtes Widerrufszertifikat und ein Backup, das nachweislich wiederherstellbar ist.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Das schwächste Glied ist kein Algorithmus. Es ist die Tatsache, dass die drei Alltags-Unterschlüssel auf einer dauerhaft laufenden Arbeitsmaschine liegen. Wer diese Maschine und die Passphrase bekommt, erzeugt bis zum Widerruf vollgültige Signaturen in meinem Namen und liest mein Archiv mit. Nach außen ist er also erst einmal ich. Was er nicht bekommt, ist der Identitätsanker: keine neue UID zertifizieren, keinen neuen Unterschlüssel binden, und der Fingerabdruck bleibt meiner. Ein kompromittierter Unterschlüssel fliegt raus und wird ersetzt, die Identität überlebt. Eine Smartcard würde den Rest weiter verkleinern, weil sich Schlüsselmaterial von der Karte nicht kopieren lässt. Sie löst es nicht: Steckt die Karte und ist sie entsperrt, wird eben auf der Karte signiert. Auf der Liste steht sie trotzdem.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Das Vertrauen in die Bindung ist geschichtet, nicht absolut. DNSSEC-signiertes DANE und selbst gehostetes WKD sind stark. Die Governikus-Zertifizierung ist die einzige echte Namens-Bindung. Das klassische Web of Trust trägt praktisch nichts mehr bei, die persönlichen Signaturen auf dieser Identität hängen an einem Schlüssel von 2011.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Post-Quantum: bewusst nicht adressiert. GnuPG 2.4.4 kann kein PQC, und die PQC-Arbeit in OpenPGP steckt noch im Entwurfsstadium mit praktisch keiner Interoperabilität. Curve25519 bietet gegen einen kryptografisch relevanten Quantencomputer keinerlei Widerstand, „heute sammeln, später entschlüsseln“ trifft also auf alles zu, was heute an diesen Schlüssel verschlüsselt wird. Ein hybrider Unterschlüssel lässt sich später ergänzen, ohne den Schlüssel neu zu bauen. Das ist eine der Auszahlungen des Unterschlüssel-Aufbaus von oben.

                                                                                                                                                                                                                                                                                                                                                                                                                            Was man daraus mitnimmt

                                                                                                                                                                                                                                                                                                                                                                                                                            Vier Punkte, und die gelten weit über OpenPGP hinaus:

                                                                                                                                                                                                                                                                                                                                                                                                                            • Härtung kann schwächen. Einen verpflichtenden Basisalgorithmus zu entfernen hat die Verhandlung nicht verengt, sondern zerstört. Bevor du etwas abschaltest, das eine Spezifikation vorschreibt, sieh nach, was die Maschinerie drumherum macht, wenn es fehlt.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Prüfe das Artefakt, nicht den Befehl. gpg --batch --gen-key ist mit Rückgabewert 0 durchgelaufen und hat einen wunderschön aussehenden Schlüssel erzeugt. Sichtbar war der Defekt ausschließlich in --list-packets.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Konfiguration und Schlüssel sind nicht unabhängig. Der Schlüssel hat einen Defekt dauerhaft von der Konfiguration geerbt, die in den fünfzehn Sekunden aktiv war, in denen er entstand.
                                                                                                                                                                                                                                                                                                                                                                                                                            • Manche Defekte sieht man nur von außen. Das Symptom erschien auf dem Terminal des Absenders. Teste deinen eigenen Schlüssel so, wie ein Fremder ihn benutzt. Genau dafür ist die Schleife mit mktemp -d und --locate-external-keys weiter oben da.

                                                                                                                                                                                                                                                                                                                                                                                                                            Und die Kurzfassung für alle, die nur bis hierher gescrollt haben: Ein moderner Schlüssel ist nicht automatisch ein korrekt konfigurierter Schlüssel. Der Unterschied steckt in Signatur-Subpaketen, die dir kein einziges Standardwerkzeug von sich aus zeigt.

                                                                                                                                                                                                                                                                                                                                                                                                                            Siehe auch

                                                                                                                                                                                                                                                                                                                                                                                                                            Wenn du deinen eigenen Schlüssel gerade nachgeprüft hast und dort etwas anderes steht als erwartet, oder wenn ich mich irgendwo irre, dann dürft ihr mich sehr gerne fragen.

                                                                                                                                                                                                                                                                                                                                                                                                                            [?]R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou: [he/him/my good fellow] » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                            @rl_dane@polymaths.social

                                                                                                                                                                                                                                                                                                                                                                                                                            Found an old screenshot of my #Sharp #Zaurus running #Linux back in #2004.

                                                                                                                                                                                                                                                                                                                                                                                                                            This was the shiz. XD

                                                                                                                                                                                                                                                                                                                                                                                                                            Screenshot of the Terminal application from the Sharp Zaurus taken on October 13, 2004.
Even though it's only 240x320 (scaled up 300% here), it looks remarkably like a desktop OS of the day with a blue lined titlebar with question mark an X window decorations, a menubar and toolbar, a drop-down menu for commands, the terminal output itself showing the output of ls, file, and less commands, then at the bottom a start menu and system tray.

This alt text was not generated by AI. I just have ADHD. 😆

                                                                                                                                                                                                                                                                                                                                                                                                                            Alt...Screenshot of the Terminal application from the Sharp Zaurus taken on October 13, 2004. Even though it's only 240x320 (scaled up 300% here), it looks remarkably like a desktop OS of the day with a blue lined titlebar with question mark an X window decorations, a menubar and toolbar, a drop-down menu for commands, the terminal output itself showing the output of ls, file, and less commands, then at the bottom a start menu and system tray. This alt text was not generated by AI. I just have ADHD. 😆

                                                                                                                                                                                                                                                                                                                                                                                                                              [?]Herr TurTur » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                              @messieass@procial.tchncs.de

                                                                                                                                                                                                                                                                                                                                                                                                                              @StephanMatthiesen@troet.cafe
                                                                                                                                                                                                                                                                                                                                                                                                                              Du hast "Have you tried
                                                                                                                                                                                                                                                                                                                                                                                                                              ❤️ ?" vergessen.

                                                                                                                                                                                                                                                                                                                                                                                                                                [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                                                Clawk : donner à un agent de code sa propre VM Linux jetable, pas votre machine. L'agent tourne en root dans un environnement isolé, le réseau est filtré par liste blanche, vos clés SSH restent sur l'hôte. Une VM grillée se réinitialise en une commande. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                                                                github.com/clawkwork/clawk

                                                                                                                                                                                                                                                                                                                                                                                                                                📬 Ma veille dev de la semaine → l.camilleroux.com/veille-Fbo

                                                                                                                                                                                                                                                                                                                                                                                                                                Alt...Capture d'écran de la page GitHub du projet open source **clawkwork/clawk**, un outil permettant de fournir aux agents de codage une machine virtuelle Linux jetable, comptant 768 étoiles et 25 forks.

                                                                                                                                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                                  [?]DerReparierer » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                  @DerReparierer@social.tchncs.de

                                                                                                                                                                                                                                                                                                                                                                                                                                  Hier wird das Internet repariert!

                                                                                                                                                                                                                                                                                                                                                                                                                                  Heute ist digitaler Unabhängigkeitstag. Viele Freiwillige helfen euch beim Umstieg auf Open-Source Software.

                                                                                                                                                                                                                                                                                                                                                                                                                                  Die Themen sind vielfältig: Messenger, Suchmaschine, Browser, Smartphone, Betriebssystem, Cloud, Passwortverwaltung, Shopping, ....

                                                                                                                                                                                                                                                                                                                                                                                                                                  Heute und die nächsten Tage in ... und vielen weiteren Städten!

                                                                                                                                                                                                                                                                                                                                                                                                                                  Schaut gerne mal vorbei!

                                                                                                                                                                                                                                                                                                                                                                                                                                  Zu den Events:
                                                                                                                                                                                                                                                                                                                                                                                                                                  events.diday.org/

                                                                                                                                                                                                                                                                                                                                                                                                                                  Zu den Anleitungen:
                                                                                                                                                                                                                                                                                                                                                                                                                                  di.day/de

                                                                                                                                                                                                                                                                                                                                                                                                                                  Karte mit den nächsten Digital Independence Day Veranstaltungen.

                                                                                                                                                                                                                                                                                                                                                                                                                                  Alt...Karte mit den nächsten Digital Independence Day Veranstaltungen.

                                                                                                                                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                                  [?]C.H. » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                  @c_th1@digitalcourage.social

                                                                                                                                                                                                                                                                                                                                                                                                                                  [?]GamingOnLinux 🐧🎮 » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                  @gamingonlinux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                                                  AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                                  [?]dewomser » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                  @dewomser@social.tchncs.de


                                                                                                                                                                                                                                                                                                                                                                                                                                  So folgt man einem Yt-Kanal Yt-Playliste automatisch ohne Anmeldung und ohne Glocke aber inklusive Desktop-Nachricht und Download.

                                                                                                                                                                                                                                                                                                                                                                                                                                  Nach der Installation einfach Lesezeichen in den geforderten Ordner legen -- > fertig
                                                                                                                                                                                                                                                                                                                                                                                                                                  (Script gibts auch für Chromium)

                                                                                                                                                                                                                                                                                                                                                                                                                                  github.com/dewomser/FF-auto-yo
                                                                                                                                                                                                                                                                                                                                                                                                                                  Copilot-KI hat meinen Code verbessert.

                                                                                                                                                                                                                                                                                                                                                                                                                                    AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                                    [?]heinelo » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                    @heinelo@pixelfed.social

                                                                                                                                                                                                                                                                                                                                                                                                                                    #DailyDesktop
                                                                                                                                                                                                                                                                                                                                                                                                                                    Meinen Desktop unter Fedora 44 Gnome 50.3 die Nutzung von Linux und Open Source Software mit entsprechenden Messengern und Mail Anwendungen und ohne Google / Microsoft / Apple und mit KI dann wenn ich sie haben möchte ist und bleibt einfach eine bessere und auch Nachhaltigerer und vor allem Selbst bestimmender Umgang mit Informationstechnologie.

                                                                                                                                                                                                                                                                                                                                                                                                                                    Bild Bearbeitung ist mit den zur Verfügung stehen Tools unter Linux gar kein Problem funzt viel schneller als unter Windows
                                                                                                                                                                                                                                                                                                                                                                                                                                    #darktable #gimp #shotwell
                                                                                                                                                                                                                                                                                                                                                                                                                                    #DailyDesktop
                                                                                                                                                                                                                                                                                                                                                                                                                                    #ShareYourDesktop
                                                                                                                                                                                                                                                                                                                                                                                                                                    #UnixPorn
                                                                                                                                                                                                                                                                                                                                                                                                                                    #mywork
                                                                                                                                                                                                                                                                                                                                                                                                                                    #duisburg
                                                                                                                                                                                                                                                                                                                                                                                                                                    #fedora44 #gnulinux #Linux #mydesktop #opensource #fedora #libreoffice #fairphone4 #murenacloud #evolution #digitaleselbstbestimmung #onlyoffice #digitaleselbstverteidigung #digitalenachhaltigkeit #signal #telegram #element #linphone #Verschlüsselung #openpgp #rkhunter #lynis #firewall

                                                                                                                                                                                                                                                                                                                                                                                                                                    auf dem Bild zu sehen ist mein Fedora Linux Desktop mit einem von mir selbst aufgenommen Hintergrundbild mit Leuchtenden wilden Margeriten am Straßenrand von Düsseldorf Angermund im Hintergrund sind ein bedeckter Himmel und Felder zu sehen.

                                                                                                                                                                                                                                                                                                                                                                                                                                    Alt...auf dem Bild zu sehen ist mein Fedora Linux Desktop mit einem von mir selbst aufgenommen Hintergrundbild mit Leuchtenden wilden Margeriten am Straßenrand von Düsseldorf Angermund im Hintergrund sind ein bedeckter Himmel und Felder zu sehen.

                                                                                                                                                                                                                                                                                                                                                                                                                                      AodeRelay boosted

                                                                                                                                                                                                                                                                                                                                                                                                                                      [?]Michael » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                      @mschfr@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                                                      Die Daten von Cloudflare vermelden übrigens einen Linux-Anteil auf dem Desktop von 5,9% für Deutschland und 6% für Nordamerika

                                                                                                                                                                                                                                                                                                                                                                                                                                      Statcounter meldet 7,2% Linux in DE.

                                                                                                                                                                                                                                                                                                                                                                                                                                      radar.cloudflare.com/explorer?

                                                                                                                                                                                                                                                                                                                                                                                                                                        [?]Camille Roux » 🌐
                                                                                                                                                                                                                                                                                                                                                                                                                                        @camilleroux@mastodon.social

                                                                                                                                                                                                                                                                                                                                                                                                                                        deja améliore l'autocomplétion zsh : suggestions inline prédictives avec fuzzy matching, scoring fréquence/récence et contexte du répertoire courant. ⬇️
                                                                                                                                                                                                                                                                                                                                                                                                                                        github.com/Giammarco-Ferranti/

                                                                                                                                                                                                                                                                                                                                                                                                                                        📬 Ma veille dev de la semaine → l.camilleroux.com/veille-thz

                                                                                                                                                                                                                                                                                                                                                                                                                                        Alt...Capture d'écran d'un terminal sombre affichant la commande `go run ./cmd/deja`, utilisée pour lancer le daemon Go du projet **deja**, un outil d'autosuggestions prédictives pour le shell zsh.

                                                                                                                                                                                                                                                                                                                                                                                                                                          Back to top - More...