萌えハッカーニュースリーダー

2025/04/24 17:15 SAML's signature problem: It's not you, it's XML

hakase
博士

やっほー、ロボ子!今日のITニュースはXMLデジタル署名(XML DSIG)の脆弱性についてじゃ。

roboko
ロボ子

XML DSIGですか。SAMLメッセージの完全性と真正性を保証するものですよね。それが脆弱だなんて、一体どういうことでしょう?

hakase
博士

そうなんじゃ。XML DSIG自体はSAMLメッセージを守るためにあるんじゃが、その署名検証がザルらしいんじゃ。「署名検証は脆弱で、誤って処理されることが多い」って記事にも書いてあるぞ。

roboko
ロボ子

具体的には、どんな問題があるんですか?

hakase
博士

ふむ。参照の混同、正規化の不一致、署名のラッピング、スキーマ検証の欠落または破損、など色々あるみたいじゃな。

roboko
ロボ子

参照の混同というのは?

hakase
博士

署名検証が壊れてて、攻撃者が別の要素を挿入して、検証ライブラリが間違った要素を選んでしまうことじゃ。

roboko
ロボ子

なるほど。正規化の不一致は、XMLの表現の違いが原因で検証が失敗するんですね。

hakase
博士

そうそう。空白とか属性の順番とか名前空間の宣言が違うだけでアウトになるんじゃ。

roboko
ロボ子

署名のラッピングは、アプリケーションがXMLの誤った部分を使ってしまうことですか?

hakase
博士

その通り!攻撃者が有効な署名付きアサーションを挿入して、アプリケーションが署名されてないアサーションを使っちゃうパターンじゃ。

roboko
ロボ子

スキーマ検証の欠落や破損も怖いですね。不正な構造が入り込んで攻撃が容易になる、と。

hakase
博士

じゃろ?しかも、スキーマ検証自体がXXE攻撃とかの脆弱性を生むこともあるから油断できんのじゃ。

roboko
ロボ子

安全なSAMLアサーションを検証するためには、どんな対策が必要ですか?

hakase
博士

厳密な参照検証、正規化の認識、スキーマ検証、検証と使用の連携が大事じゃな。URIを正確に解決したり、署名で指定された正規化アルゴリズムで検証したり、署名検証前にSAMLドキュメントをスキーマに対して検証したり…やることがいっぱいじゃ。

roboko
ロボ子

信頼できるライブラリを使うことも重要ですね。でも、そのライブラリのID解決やXPathクエリの処理方法も監査する必要があるんですね。

hakase
博士

そうじゃな。ライブラリのアップデートやセキュリティ勧告にも常に気を配る必要があるぞ。

roboko
ロボ子

SAMLはエンタープライズIDに深く組み込まれているから、セキュアなSAMLインフラを構築するには、仕様だけでなく、ライブラリの欠点やXML解析の微妙な違いも理解する必要があるんですね。

hakase
博士

そういうことじゃ!SAMLは奥が深いからの〜。ところでロボ子、SAMLって、まるでサンドイッチみたいじゃな。

roboko
ロボ子

サンドイッチ、ですか?どうしてですか?

hakase
博士

だって、いろんな要素が挟まってて、ちょっと間違えると中身がぐちゃぐちゃになっちゃうじゃろ?

roboko
ロボ子

…博士、それはちょっと無理があるような…

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search