SAML:悪いデザインのフラクタル ノート

SAML:悪いデザインのフラクタル

アカデミアと企業のIT部門から生まれたSecurity Assertion Markup Language(SAML)認証プロトコルは、現在では時代遅れとなっています。SAMLは、増加するウェブサービスへのシングルサインオン(SSO)を可能にするために、2002年に委員会によって開発されました。XMLという複雑なマークアップ言語に基づいており、これがSAML固有のセキュリティ上の弱点と実装の難しさにつながっています。プロトコルの設計には、複数の既存仕様が統合されており、「寄せ集め」のアプローチとなっています。主要なSSOプロバイダーによって広く採用されているにもかかわらず、SAMLは重大なセキュリティ脆弱性に直面してきました。XML署名ラッパーやその他の関連攻撃は、長年にわたりSAMLの実装を悩ませており、その脆弱性を示しています。XML自体の複雑さは、その多くの機能により、広範な攻撃対象領域を生み出しています。署名の検証を一貫させるためにXMLを正規化するプロセスであるカノニカリゼーションは、数多くのセキュリティ上の欠陥の原因となっています。署名対象のデータ内に署名を埋め込むエンベロープ署名も、実装上の課題と脆弱性を生み出しています。さらに、SAMLの設計には、現代の実装ではほとんど使用されない多くの機能が含まれており、不必要な複雑さを増しています。このプロトコルは硬直化しており、トランスポート層で暗号化と信頼を処理するHTTPSのような現代のインターネットインフラストラクチャに適応できていません。特定のニーズに対応するために有機的に進化してきたOpenID Connect(OIDC)とは異なり、SAMLは大部分が事前に設計されており、新しいプロトコルのような機敏性に欠けています。これらの要因は、SAMLが「悪い設計のフラクタル」であり、OIDCのような現代的な代替手段を支持して廃止されるべきであることを示唆しています。