SAML:欠陥設計の連鎖を解剖する
原題: SAML: A fractal of bad design
なぜ重要か
OktaなどSSOプロバイダーが支える企業認証の根幹プロトコルの移行論は、セキュリティ投資と製品戦略に直結する重大論点だ。
セキュリティ企業Trail of BitsのMatt Schwager氏が2026年9月21日、2002年生まれの認証プロトコル「SAML」の構造的欠陥を詳細に分析した技術記事を公開した。XML署名検証の根本的な複雑さ、委員会設計による肥大化、そして時代遅れとなった設計思想を論拠に、OpenID Connect(OIDC)への移行を強く訴えている。
SAMLは2002年、OASIS(構造化情報標準促進機構)のセキュリティサービス技術委員会が策定したXMLベースの認証プロトコルだ。Schwager氏はその誕生の経緯から問題点を指摘する。Netegrity、Securant、VeriSign、Jamcrackerという4社が別々に開発した4つのXMLセキュリティ仕様を統合した結果、「kitchen-sink(なんでも詰め込み)」設計になったという。
2000年代初頭、インターネットがWeb 1.0からWeb 2.0へ移行する中で、多数のWebサービスへの統合認証ニーズが高まった。Yale大学のCAS(2002年)、Internet2のShibboleth IdP(2003年)、MicrosoftのADFS(2003年)、NorwayのUninettによるsimpleSAMLphp(2007年頃)など、大学・学術機関が普及を牽引した。その後、Ping Identity(2002年)、OneLogin(2009年)、Okta(2009年)など商業SSOプロバイダーがSAMLを基盤に数十億ドル規模の市場を形成した。
Schwager氏が最大の問題として挙げるのはXML署名検証の複雑さだ。セキュリティ研究者のThomas Ptacek氏(2023年)は「SAMLはXML署名検証が信頼できると仮定すれば動くが、その検証は深く呪われており、ほとんどの実装はlibxmlsecというC言語の難解なコードベースをラップしているだけ」と評した。エンベロープ署名の仕様、XML正規化(Canonicalization)の難解さ、実装ごとのバリエーションが重なり、脆弱性が繰り返し発見されてきた。
さらに記事は「ossification(硬直化)」も指摘する。すでに広く普及したSAMLを変更するコストが高すぎるため、問題が分かっていても修正が進まない状態だ。Schwager氏はこうした問題すべてを踏まえ、よりシンプルで現代的なOIDCへの完全移行を提唱している。