およそ20年にわたり、wolfSSLライブラリは組み込み環境においてパフォーマンスに優れたあらゆる暗号機能を提供し続けてきました。2015年以降、wolfSSLは組み込み領域における非常に優れたFIPS認証取得向け暗号化ソフトウェアモジュールとなっています。そして現在、私たちはその深い経験をLinuxカーネルにも展開しています。
wolfSSLが開発するLinuxカーネルモジュール「libwolfssl.ko」には、私たちのアプリケーションライブラリと同等のアルゴリズムセットを実装しています。AES-NIやAVXのようなアクセラレーションオプションについても同様です。もちろん、ML-KEMやML-DSAを含む、ネイティブの高性能実装を使用した新しい耐量子暗号アルゴリズムも利用できます。
libwolfssl.koには、AES-XTS、AES-GCM、SHA256-HMAC、SHA3-HMAC、HASH-DRBG、ECDSA/ECDH、RSA、DHといった私たちの全FIPS認証取得実績のある認証取得向け暗号スイートが、追加コードなしに認証取得できるように実装されています。コンフィギュレーションオプション--enable-linuxkm-lkcapi-registerを使用して有効化することで、私たちのモジュールはカーネルにFIPS認証取得向けの実装を登録します。これには、LUKS/dm-cryptディスク暗号化のためのAES-XTSとAES-CBC、およびVPN、MACsec、802.11 WPA3、TLSカーネルオフロードのためのAES-GCMが含まれます。
これらの登録は、他のカーネルモジュールやKCAPI/AF_ALGユーザに対して完全に透過的に実行されます。つまり、libwolfssl.koがロードされると、システムで新たにインスタンス化されるすべてのカーネル暗号処理にwolfCrypt FIPS認証取得対応の実装が使用されるようになります。
WireGuardをベースとしたwolfSSLのオープンソースカーネルVPNソフトウェアwolfGuardは、libwolfssl.koのカーネル用AES-GCM、ECDH、SHA256-HMAC、HASH-DRBG実装を直接使用しています。このときFIPS libwolfssl.koと組み合わせることで、wolfGuardはWireGuardと同じシンプルさを保ちつつ、FIPSに準拠したVPNを提供します。付属のwolfGuard-GoはWindowsおよびMacとの相互運用性を提供します。
私たちのカーネルモジュールには、FIPS認証のランダム性とエントロピー収集を完全に実装するロジックも含まれており、/dev/random、/dev/urandom、getrandom()をFIPS準拠のDRBGソースに変換します。
私たちのDRBGコールバック実装は、内部ユーティリティ整数生成器を含むカーネルネイティブの非FIPSエントロピー収集とDRBG生成を、NIST SP 800-90B真のエントロピー導出と永続的なFIPS 140-3 DRBGインスタンスに置き換えます。
FIPS版libwolfssl.koには、必須のアルゴリズム自己テスト、オンデマンド再テスト、インメモリバイナリイメージの安定化と整合性検証、秘密鍵アクセス制御、継続的なDRBGヘルスチェックといった、すべての通常のFIPS機能が含まれています。
私たちの広範なカーネルモジュールテストプログラムでは、ユーザのカーネルと構成を自動テストハーネスに統合し、アップグレードサイクル全体を通じて各機能が正しく動作することを検証しています。
私たちのテストハーネスでは、デバッグレベルの動作テスト、FIPS自己テスト、ネイティブファジングテストを含むカーネルネイティブアルゴリズムテスト、KCAPIを通じたユーザ空間テスト、LUKSファイルシステム演習などを実行し、包括的に正しく相互運用可能な実装であることを確認し、それぞれの機能を徹底的にテストしています。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/the-wolfcrypt-linux-kernel-module-fips-full-crypto-stack-replacement