XML 암호화(XML Encryption) 또는 XML-Enc는 W3C 권장 사항에 따라 관리되는 사양으로, XML 요소의 콘텐츠를 암호화하는 방법을 정의한다.
XML 암호화를 사용하여 모든 종류의 데이터를 암호화할 수 있지만 그럼에도 불구하고 XML 요소(EncryptedData
또는 EncryptedKey
요소)가 암호 텍스트, 키 정보 및 알고리즘을 포함하거나 참조하기 때문에 "XML 암호화"라고 한다.
XML 서명과 XML 암호화는 모두 SignedInfo
, EncryptedData
또는 EncryptedKey
요소의 하위 요소로 나타나는 KeyInfo
요소를 사용하며 서명을 검증하거나 암호화된 데이터를 해독하는 데 사용할 키 입력 자료에 대한 정보를 수신자에게 제공한다.
KeyInfo
요소는 선택 사항이다. 메시지에 첨부하거나 보안 채널을 통해 전달될 수 있다.
XML 암호화는 인터넷을 통해 암호화된 메시지(암호화된 XML 콘텐츠 포함)를 보내는 데 사용되는 전송 계층 보안(TLS)과 다르며 관련이 없다.
이 사양에는 심각한 보안 문제가 있는 것으로 보고되었다.[1][2]