1. ブログ
  2. 記事

Canonical
15 April 2026


アップストリームの変更でスマートカードのFIPS認証が機能しなくなったときの対処方法

ある行政機関が組織内で運用しているUbuntuデバイスすべてにスマートカード認証を義務付けました。ところがコンプライアンス要件を満たすためにFIPSモードを有効にすると、スマートカード認証の機能が停止してしまい、1,000台近いシステムがFIPS認証への対応を待つことになりました。

Canonicalのサポートチームは、まずOpenSCのアップストリームでの変更が意図せずFIPSとの互換性を損なっていることを突き止めました。次に、すべてのディストリビューションのアップストリームの開発者と連携し、緊急用のホットフィックスと正式な修正の両方を提供しました。このときの対応を以下にご紹介しましょう。

はじめに:原因を突き止める

当初のエラーメッセージは一般的な認証失敗と同じでした。根本的な原因を示すものはありません。

Canonicalのサポートエンジニアはまず、Noble(24.04 LTS)テストシステムで問題を再現しました。pkcs11ツールはNobleのFIPS環境でセグメンテーションフォールトを起こしましたが、Jammy(22.04 LTS)では問題なく動作しました。この行政機関は、OpenSC、つまり各種のオペレーティングシステムで暗号用スマートカードを利用するためのオープンソースのソフトウェアツールキットを認証に使用していました。Ubuntu 22.04 LTSと24.04 LTSの間で、このOpenSCパッケージに何かの変更があったに違いありません。でも何でしょう?

問題の原因がFIPS対応の実装ではなく、アップストリームのOpenSCコードベースの変更にあると突き止めるまでに、数日もかかりませんでした。OpenSCのプロバイダー初期化におけるアップストリームの変更が、FIPSモードのOpenSSLとぶつかって障害を起こしていたのです。

調査:根本原因の確認

Canonicalは、OpenSSLとOpenSCの両方にアップストリームのバグを報告し、情報を求めました。そしてさらにデバッグを継続しました。

まもなく、FIPSに対応するOpenSSLプロバイダーの初期化に誤りがあることがわかりました。OpenSCがバックエンドでOpenSSLプロバイダーをFIPSプロバイダーではなくデフォルトのプロバイダーに設定していたため、スマートカード認証に必要なハッシュ処理がブロックされていたのです。

Canonicalは、これが根本原因であることを確認するテストを作成しました。そして依頼者の環境でテストしたところ、間違いはありませんでした。

この問題の原因は、エンタープライズLinuxにおけるアップストリーム依存の管理にありました。OpenSCが新しいリリースでプロバイダーの処理に変更を加えた結果、FIPSとの互換性を損なう動作が生じたのです。アップストリームにおける開発上の判断が、意図せず特定のコンプライアンス環境に影響を与えたということです。

このような場合に、アップストリームのどの変更が不具合を引き起こしたのかを特定し、理由を特定して最終的な修正を行うのがエンタープライズ向けのバグ修正サポートです。

修正:今すぐ対処、後で完全に解決

Canonicalは、OpenSCのメンテナンス担当者と協力し、最終的な診断に至りました。つまりアップストリームの変更により、OpenSCがFIPSポリシーに許可されないアルゴリズムをロードしようとしたことが問題の原因でした。OpenSSLは正しくNULLポインタを返しましたが、OpenSCはそれを有効なオブジェクトとして扱おうとしていました。しかも別の暗号オプションを試したり利用できる機能を確認したりすべきところを、エラーで終わっていました。

Canonicalのエンタープライズ向けバグ修正サポートは、機能を復旧する一般的な対策としてホットフィックスを共有しました。顧客のブロック状態を解消し、FIPSの導入を進めてもらうためです。

しかしホットフィックスは包括的な修正ではありません。この問題にはアップストリームでの対処が必要でした。つまり特定のディストリビューション向けのパッチではなく、OpenSC自体を修正し、UbuntuだけでなくFIPS環境でOpenSCを使用するあらゆるディストリビューションに対処する必要がありました。

今週、Canonicalは最終的な修正について合意しました。アップストリームのPRは現在マージ待ちです。マージが終わり次第、Ubuntuにバックポートします。これにより、同じ根本原因による3件の問題が解決される見込みです。

重要な要素:エコシステム全体での協力

この事例に対応したサポートチームのDariusz Gadomskiは、うまくいった理由を次のように振り返っています。

今回のケースでは、複数のグループによる協力が功を奏しました。みんな経歴は異なりますが、ユーザーの問題を解決するという目標は同じです。これがオープンソースの真の力です。多くの人が力を合わせ、みんなのために良いソフトウェアを作ります。

このバグの修正には、サポートエンジニアリング、Canonicalのセキュリティチーム、OpenSCのアップストリームコミュニティの協力が必要でした。最初は認証エラーに見えましたが、実際にはプロバイダー初期化に関するアップストリームの変更がFIPSとの互換性を損なっていました。診断には、OpenSC、OpenSSL、FIPSモードの相互作用を理解する必要があり、さらにアップストリームのメンテナンス担当者と協力して最終的な解決策を開発する必要がありました。

Ubuntu Pro +サポートによるバグ修正サポートについて


関連記事

ワットあたりのトークン数だけではない:Ubuntu 26.04 LTSをAIに利用するメリット

TpW(Tokens per Watt)、つまり消費電力1ワットあたりの生成トークン数は、企業のCEO、AI責任者、インフラストラクチャ担当者が最も重視する指標です。GPUクラスターの運用には莫大なコストがかかるため、投資から可能な限り大きな価値を引き出すことが重要なのです。...

Ubuntu Proとは?

Ubuntu Proは、オープンソースのセキュリティ、サポート、コンプライアンスに対応したCanonicalの包括的なサブスクリプションです。ここでは、15年間のセキュリティメンテナンス、24時間サポート、自動堅牢化ツールなど、Ubuntu ProサブスクリプションがIT管理者に提供するメリットの数々をご紹介します。 Ubuntu...

Ubuntu 16.04 LTSのUbuntu Pro標準Expanded Security Maintenanceが終了。この後はどうする?

Ubuntu 16.04 LTS(Xenial Xerus)の5年間のExpanded Security Maintenance(ESM)が2026年4月に終了しました。16.04をまだお使いのお客様は、引き続きセキュリティとコンプライアンスを保つため、必ずサポートステータスを更新してください。 サポートのオプション...

Ubuntu ProをNutanixのベアメタルKubernetesで提供

NutanixとCanonicalのパートナーシップ拡大によりコンテナ化されたワークロードの選択肢が増加 Enterprise...