Wichtigste Erkenntnisse
- Die FIPS-Konformität hängt von der gesamten Betriebssystemumgebung ab, nicht nur von der Installation einer kryptografischen Bibliothek.
- „FIPS-Container“ sind nur dann konform, wenn der Host-Kernel im validierten FIPS-Modus ausgeführt wird.
- Im Vergleich zur nativen Betriebssystemkryptografie verursachen aufgeschraubte Kryptomodule häufig Instabilität und Komplexität.
Erreichen der FIPS-Konformität in Linux-Umgebungen ist oft komplizierter, als es scheint. Viele Unternehmen verlassen sich auf kryptografische Module oder Container-Images von Drittanbietern, die FIPS-Unterstützung versprechen, aber diese Konfigurationen erfüllen möglicherweise nicht die Anforderungen des FIPS 140-3-Validierungsprogramms oder bieten keine echte FIPS 140-3-Konformität.
Der Unterschied zwischen nativen FIPS-Implementierungen und nachgerüsteter Kryptografie kann darüber entscheiden, ob eine Compliance-Prüfung bestanden wird oder nicht.
Native FIPS-Module vs. Drop-In-Kryptomodule
Wir haben kürzlich mit einem Kunden gesprochen, der CentOS 7 einsetzt und validierte Kryptografie benötigte, um mehrere Kunden aus dem Bundesbereich zu unterstützen und strenge FedRAMP-Kryptografieanforderungenzu erfüllen. Da CentOS selbst nicht FIPS-validiert war, vertrauten sie auf OpenSSL- und Java-FIPS-Anbieter von Drittanbietern.
Seitdem sind sie auf TuxCares FIPS-validiertes AlmaLinux 9 ESU (eine FIPS-validierte Linux-Umgebung) und waren erfreut festzustellen, dass sie aufgrund der systemweiten Konfiguration der Kryptografie vom Kernel aufwärts keine zusätzliche Software mehr erwerben mussten, um die Anforderungen von FIPS 140-3 zu erfüllen, da das Betriebssystem dies für sie übernimmt. Der Wechsel zu ESU, das nur 159 US-Dollar pro Jahr kostet, anstelle von Software, die zwischen 100 US-Dollar pro Monat und 25.000 US-Dollar pro Jahr kosten kann, ist ein Kinderspiel!
Sie stellten außerdem fest, dass ihre MySQL-Datenbank aufgrund dieser engen Integration und der Verknüpfung mit Systembibliotheken wie OpenSSL zuverlässiger läuft als mit zusätzlich installierter Software, die nicht speziell für das Betriebssystem entwickelt wurde. Tatsächlich hatten sie zuvor Serverabstürze erlebt, als sie versuchten, im FIPS-Modus zu arbeiten. Durch die Umstellung auf ESU wurde ihre FedRAMP-Bereitstellung möglich.
Mehrere Kunden haben uns gegenüber erwähnt, dass die Verwendung der in das AlmaLinux-Betriebssystem integrierten Software anstelle von Forks von Drittanbietern ihnen eine bessere Leistung gebracht und die Migration von älteren Betriebssystemen vereinfacht hat.
Die FIPS-Zertifikate von TuxCare für AlmaLinux 9 ESU basieren auf dem Standard FIPS 140-3 und nicht auf dem früheren Standard 140-2, den die meisten dieser Zusatzsoftware verwendet. Da FIPS 140-2-Zertifikate zunehmend in die historische Liste aufgenommen werden, werden sie für neue Beschaffungen des Bundes immer seltener akzeptiert. Mit der Lösung von TuxCare ist dies kein Problem mehr – Ihre Infrastruktur ist mit FIPS 140-3-validierter Kryptografie zukunftssicher.
Mythologie der Behälter
Wir haben auch mit Leuten gesprochen, denen „FIPS-Container-Images” verkauft wurden – oft vermarktet als FIPS-Container vermarktet werden –, die nicht einmal in einer Betriebsumgebung (OE) laufen, die von einem akkreditierten Cryptographic & Security Testing Lab (CSTL) getestet wurde, und daher auch nicht in einem FIPS-Zertifikat aufgeführt oder vom NIST abgenommen sind – sie sind ungültig und funktionieren möglicherweise nicht einmal.
Da Container den Kernel des Host-Betriebssystems übernehmen, müssen sie auf einem Host mit einem FIPS-validierten Kernel , der im FIPS-Modus arbeitet. Diese Umgebung macht die /proc/sys/crypto/fips_{enabled,name,version} , die von Bibliotheken und Anwendungen verwendet werden, um den FIPS-Modus zu erkennen und zu erzwingen. Wenn Ihr Host-Betriebssystem nicht im FIPS-Modus läuft, tun dies Ihre Container ebenfalls nicht.
Dies ist besonders wichtig bei Containern, die VPNs wie IPSEC oder OpenVPN ausführen, da diese Protokolle die kryptografische API des Kernels verwenden. Wenn Sie also den falschen Host-Kernel verwenden, ist Ihr VPN nicht konform und darf keine Verbindung zu DoD-Netzwerken herstellen.
Die Ausführung von OpenSSL 3.1.2 in einem Container auf einem Ubuntu 24.04-Host (mit oder ohne aktiviertem FIPS) ist keine gültige Umgebung – Sie werden ein FedRAMP-Audit nicht bestehen und Ihre Lösung nicht an die US-amerikanische oder kanadische Regierung verkaufen können.
Wie AlmaLinux FIPS systemweit durchsetzt
Da der Kernel und verschiedene Bibliotheken und Systemkomponenten (GnuTLS, Libgcrypt, NSS, NSPR, OpenSSL, libkcapi, nettle…) von AlmaLinux 9 ESU FIPS-validiert sind, bietet das Betriebssystem eine validierte Umgebung anstelle einer bestimmten Software. Dies ist einer der Vorteile der Verwendung einer FIPS-validierte Linux-Distribution, bei der die kryptografische Umgebung in das Betriebssystem selbst integriert ist.
Beispielsweise wurde CentOS Linux nie FIPS-validiert, sodass man versuchte, eine Art FIPS-„Konformität“ durch den Einsatz von Zusatzmodulen und komplizierten Konfigurations- und Softwareanpassungen zu erreichen, was in der Regel nur dazu führte, dass das System instabil wurde.
Mit den systemweiten Kryptografie-Richtlinien von AlmaLinux wird die Kryptografie zentral an einem Ort konfiguriert. Dadurch entfällt die Notwendigkeit, einzelne Dienste oder Anwendungen separat zu konfigurieren. Es ist so einfach wie die Installation mit dem Befehl fips=1 oder die Ausführung von fips-mode-setup –enableauszuführen. Mit einem ordnungsgemäß konfigurierten FIPS-fähigen Kernelkönnen Sie OpenSSH, Kerberos, bind9 usw. automatisch auf eine zugelassene Weise konfigurieren lassen. Weitere Informationen finden Sie in den Dateien unter /usr/share/crypto-policies/FIPS/.
Die Probe aufs Exempel macht's
Im Rahmen unserer internen Tests unserer FIPS-Module (eine Voraussetzung dafür, dass wir Rocky Linux 9.6 als vom Anbieter zugelassenes OE zu unseren FIPS-Zertifikaten hinzufügen können), die traditionell in C geschrieben sind, haben wir beschlossen, auch einige der Endless Lifecycle Support for Runtimes-Produkte von TuxCare mit unseren FIPS-Modulen zu testen. Wir haben eine Reihe von Skripten in interpretierten Sprachen erstellt, die belegen sollten, dass das Betriebssystem und seine zentralisierte Kryptografie die Ausführung solcher Software in einer FIPS-konformen Weise ermöglichen, wobei die für Anwendungen verfügbaren Algorithmen und Protokolle weitgehend auf die vom NIST-Programm zugelassenen beschränkt sind, ohne dass die Programme selbst geändert werden müssen.
Um zu überprüfen, wie gut sich reale Anwendungen in dieser Umgebung verhalten, und um die FIPS 140-3-Konformitätzu gewährleisten, haben wir mehrere gängige Laufzeitumgebungen getestet, die in Unternehmensbereitstellungen verwendet werden und im Folgenden näher beschrieben werden. Darüber hinaus können wir Kunden auf Anfrage Testskripte und technischen Support zur Verfügung stellen.
.NET
Wir haben festgestellt, dass in einigen Fällen die in .NET integrierte System.Security.Cryptography die FIPS 140-3-Konformität auf Linux-Hosts nicht vollständig durchsetzt. Daher empfehlen wir, auf die native Verwendung von OpenSSL umzusteigen.
Java
OpenJDK verfügt über eine Reihe von Krypto-Anbietern, von denen jeder seine eigenen Schwächen in Bezug auf die FIPS-Konformität hat. Wir empfehlen SunPKCS11-NSS-FIPS für Enterprise-Linux-Distributionen, aber selbst dann müssen Sie sicherstellen, dass Sie die von NSS verwendeten FIPS-Indikatoren überprüfen, anstatt einfach zu blockieren und einen Fehler zurückzugeben.
Python
Das Kryptografie-Modul von Python verwendet native OpenSSL-Bibliotheksaufrufe und ist daher sofort einsatzbereit.
PHP
PHP verwendet ebenfalls das System OpenSSL, weist jedoch einige Besonderheiten auf, die Sie beachten müssen – beispielsweise listet es mehr elliptische Kurven als unterstützt auf, als OpenSSL im FIPS-Modus zurückgibt, da „unterstützt” in diesem Fall bedeutet, dass PHP diese Kurven kennt, nicht jedoch, dass sie verwendet werden dürfen. Im Allgemeinen sollten Sie die Verschlüsselungsalgorithmen und Digests, die Sie verwenden möchten und von denen Sie wissen, dass sie FIPS-konform sind, ausdrücklich benennen.
Node.js
Das Node.js-Krypto-Paket verknüpft sich erneut mit dem System OpenSSL und führt Bibliotheksaufrufe wie EVP_PKEY_keygen() , sodass es sehr gut funktioniert.
Abschließende Überlegungen
Bei der FIPS-Konformität geht es nicht nur um die Installation einer kryptografischen Bibliothek. Sie hängt von der gesamten Betriebsumgebung ab – vom Kernel bis zu den Laufzeitbibliotheken, auf die Ihre Anwendungen angewiesen sind.
Die native FIPS-Validierung auf Systemebene beseitigt die Komplexität und Instabilität, die häufig mit nachträglich hinzugefügter Kryptografie einhergehen.
Wenn Ihre Umgebung für Regierungsaufträge oder Compliance-Rahmenwerke wie FedRAMP auf FIPS angewiesen ist, ist es am sichersten, mit einem FIPS-validierten Linux-Betriebssystem zu beginnen, das von Grund auf validierte Kryptografie bietet und moderne FIPS 140-3-Konformität .
Weitere Informationen zu FIPS und erweiterten Sicherheitsupdates finden Sie in unseren FIPS für AlmaLinux .






