XML 디지털 서명

XML-Signature Syntax and Processing(XML 디지털 서명)은 디지털 컨텐츠에 대한 디지털 서명을 입력 및 검증하는 데 사용되는 XML 구문과 처리 규칙을 정의하는 스펙입니다. 이 스펙은 W3C(World Wide Web Consortium)와 IETF(Internet Engineering Task Force)에서 공동으로 개발되었습니다.

XML 디지털 서명은 새로운 암호화 알고리즘을 필요로 하지 않습니다. WebSphere® Application Server는 RSA, HMAC 및 SHA1과 같은 기존의 알고리즘을 사용하는 XML 디지털 서명을 사용합니다. XML 서명은 키 정보를 기술하는 다양한 메소드를 정의하며 XML 서명을 통해 새로운 메소드를 정의할 수 있습니다.

XML 서명을 사용할 경우 XML 표준화(c14n)가 필요할 수 있습니다. 직렬화된 XML 문서에서 다양한 방법으로 정보를 표시할 수 있습니다. 예를 들어 아래의 두 항목은 서로 동일하지만 각각 다른 옥텟 표시를 갖습니다.

C14n은 XML 정보를 표준화하는 프로세스입니다. 정보는 c14n 알고리즘에 따라 표준화되므로 적절한 c14n 알고리즘을 선택해야 합니다. 주요 c14n 알고리즘 중 하나인 Exclusive XML Canonicalization은 문자 인코딩 스키마, 속성 순서, 네임스페이스 선언 등을 표준화합니다. 이 알고리즘은 태그 외부 공백, 네임스페이스 접두부 또는 데이터 유형 표시를 표준화하지 않습니다.

Web Services Security-Core 스펙의 XML 서명

WSS-Core(Web Services Security-Core) 스펙은 SOAP(Simple Object Access Protocol) 메시지와 XML 서명을 통합하는 표준 방법을 정의합니다. 외포형(enveloped) 서명과 내포형(enveloping) 서명을 제외한 WSS-Core의 모든 XML 서명 기능을 사용할 수 있습니다. 그러나 WSS-Core에서는 c14n 알고리즘으로 독점 표준화를 사용하고 SecurityTokenReferenceKeyIdentifier와 같은 추가 기능을 사용하도록 권장합니다. KeyIdentifier는 X.509 인증에 포함된 SubjectKeyIdentifier 필드의 값입니다. KeyIdentifier에 대한 자세한 정보는 OASIS Web Services Security X.509 Certificate Token Profile 문서에서 "Reference to a Subject Key Identifier"를 참조하십시오.

SOAP 메시지에 XML 서명을 포함시키면 다음과 같은 결과를 얻을 수 있습니다.
메시지 무결성
키를 사용하여 특정 메시지 파트에 서명하면, 메시지 수신자는 해당 메시지 파트가 공격 또는 실수로 인해 변경되지 않았음을 확인할 수 있습니다.
인증
유효한 서명은 소유 증명으로 간주할 수 있습니다. 인증 기관에서 발행한 디지털 인증서가 포함된 메시지 및 인증서 내의 비밀 키로 유효성이 검증된 메시지의 서명은 서명자가 이에 부합되는 개인 키를 소유하고 있음을 증명합니다. 수신자는 인증서의 신뢰 여부를 확인하여 서명자를 인증할 수 있습니다.

피드백