웹 서비스 보안 스펙 - 연대기
웹 서비스 보안 스펙 개발에는 OASIS(Organization for the Advancement of Structured Information Standards) 웹 서비스 보안 스펙의 정보가 포함됩니다. OASIS 웹 서비스 보안 스펙은 WebSphere® Application Server의 웹 서비스 보안에 대한 기초 역할을 수행합니다.

- 정책 세트를 사용하는 경우 서비스 품질(QoS) 구성이 단순해집니다. 정책 세트는 전송용을 포함한 구성 설정값과 메시지 레벨 구성을 결합합니다. 정책 세트 및 일반 바인딩을 여러 애플리케이션에서 재사용할 수 있으므로 웹 서비스 QoS 사용을 촉진합니다.
- JAX-WS용 WS-Security는 Java EE 컨테이너 같은 관리 환경 및 Java Platform, Standard Edition(Java SE 6) 같은 비관리 환경 모두에서 지원됩니다. JAX-WS 클라이언트에서 WS-Security를 사용 가능하게 하는 API도 있습니다.
비OASIS 활동
- 웹 서비스 보안
- 이 스펙은 SOAP 메시지에서 보안 토큰을 사용하는 방법, 암호화 사용 방법 및 디지털 서명을 첨부하는 방법을 정의합니다.
- WS-Policy
- 이 스펙은 보안 제한 및 매개체 정책 또는 엔드포인트를 설명하는데 사용하는 언어를 정의합니다.
- WS-Trust
- 이 스펙은 웹 서비스 간 신뢰를 설정하도록 신뢰 모델의 프레임워크를 정의합니다.
- WS-Privacy
- 이 스펙은 웹 서비스 및 요청자의 기밀 정책을 표현하는 방법에 대한 모델을 정의합니다.
- WS-SecureConversation
- 이 스펙은 웹 서비스 간 세션 키를 파생하는 보안 컨텍스트를 설정 및 교환하는 방법을 정의합니다.
- WS-Authorization
이 스펙은 웹 서비스의 권한 정책을 정의합니다. 그러나 WS-Authorization 스펙은 공개되지 않았습니다. 웹 서비스 보안의 기존 구현은 Java EE(Java Platform, Enterprise Edition)용 웹 서비스 및 JSR(Java Specification Requirements) 109 스펙을 기본으로 합니다. 웹 서비스 보안의 구현은 Java EE 역할 기반 권한 검사를 활용합니다. 개념 정보는 역할 기반 권한에 대해 읽어보십시오. 메소드 레벨 권한 검사를 필요로 하는 웹 서비스를 개발하는 경우 Stateless 세션 Bean을 사용하여 웹 서비스를 구현해야 합니다. 자세한 정보는 엔터프라이즈 Bean 애플리케이션 보안에 대해 읽어보십시오.
서블릿으로 구현된 웹 서비스를 개발하는 경우 웹 컨테이너에서 입자성 또는 URL 기반 권한을 사용할 수 있습니다. 그러나 이 상황에서는 권한 검사에 웹 서비스 보안의 ID를 사용할 수 없습니다. 대신 전송의 ID를 사용할 수 있습니다. HTTP를 통해 SOAP를 사용하는 경우 ID는 HTTP 전송에 있습니다.
다음 그림에서는 이러한 스펙 간의 관계를 보여줍니다.
- 스펙에서는 웹 서비스 보안 프로세서가 XML 디지털 서명과 XML 암호화 간의 ID 속성을 구별할 수 있도록 해당 프로세서가 스키마를 정확히 이해하도록 요구하고 있습니다.
- 메시지가 미리 정의된 시간 제한조건으로 컴파일되었는지 여부를 나타내는 메시지의 업데이트 여부를 결정할 수 없습니다.
- 요약된 비밀번호 문자열은 보안을 강화하지 않습니다.
- XML 서명 및 XML 암호화를 위해 글로벌 ID 속성이 필요합니다.
- 메시지의 작성, 수신 또는 만기 시간을 나타내는 시간소인 헤더 요소를 사용합니다.
- 임의로 생성된 토큰인 Nonce 및 시간소인으로 요약된 비밀번호 문자열을 사용합니다.
이전 그림에 있는 파란색 상자의 스펙은 제안된 스펙을 확인하고 향상하도록 벤더가 체계화한 다양한 업계 벤더 및 다양한 상호 운용성 이벤트로 제안되었습니다.
OASIS 활동
2002년 6월, OASIS는 IBM, Microsoft 및 VeriSign으로부터 웹 서비스 보안 스펙을 제안 받았습니다. 스펙이 제출된 즉시 OASIS에서는 WSS TC(Web Services Security Technical Committee)가 열렸습니다. 기술 위원회에는 IBM, Microsoft, VeriSign, Sun Microsystems 및 BEA 시스템과 같은 여러 회사가 포함되었습니다.
2002년 9월 WSS TC는 첫 번째 스펙인 웹 서비스 보안 코어 스펙, 작업 초안 01을 공개했습니다. 이 스펙에는 원본 웹 서비스 보안 스펙과 부칙의 내용이 모두 포함되어 있습니다.
토론이 진행됨에 따라 기술 위원회가 다루는 범위는 점점 커져 갔습니다. 웹 서비스 보안 코어 스펙을 사용하면 임의의 유형의 보안 토큰을 사용할 수 있으므로 제안서는 프로파일로서 공개되었습니다. 프로파일은 SAML(Security Assertion Markup Language) 토큰 및 웹 서비스 보안 메시지에 임베디드된 Kerberos 토큰을 포함하여 임베딩 토큰의 메소드를 설명했습니다. 결과적으로, 원래 웹 서비스 보안 스펙에 정의된 사용자 이름 토큰 및 X.509 2진 보안 토큰 사용법 정의는 프로파일로 구분됩니다.
- 웹 서비스 보안: SOAP 메시지 보안 작업 초안 13(구 웹 서비스 보안 코어 스펙)
- 웹 서비스 보안: 사용자 이름 토큰 프로파일 초안 2
다음 스펙에서는 웹 서비스 보안 메시지 보안 스펙과 관련된 Kerberos 토큰 사용에 대해 설명합니다. 스펙은 Kerberos 토큰을 사용하여 인증 및 메시지 보호를 지원하는 방법을 정의합니다. OASIS: 웹 서비스 보안 Kerberos 토큰 프로파일 1.1 OASIS 표준 스펙, 2006년 2월 1일.
다음 그림은 다양한 웹 서비스 보안 관련 스펙을 보여줍니다.
WebSphere Application Server는 또한 보안 제공자가 런타임 성능을 확장하고 웹 서비스 보안 스택에서 일부 보다 높은 레벨 스펙을 구현할 수 있도록 하는 플러그인 성능을 제공합니다. 플러그인 위치는 SPI(Service Provider Programming Interface)로 공개됩니다. 이러한 SPI에 대한 자세한 정보는 웹 서비스 보안 서비스 제공자 프로그래밍 인터페이스의 기본 구현의 내용을 참조하십시오.
웹 서비스 보안 스펙 1.0 개발
- XML 서명 구문 및
처리
W3C 권장사항, 2002년 2월(또한 IETF RFC 3275, 2002 3월)
- 표준
XML 버전 1.0
W3C 권장사항, 2001년 3월
- 독점 XML 표준화 버전 1.0
W3C 권장사항, 2002년 7월
- XML-Signature
XPath Filter 버전 2.0
2002년 11월, W3C 권장사항
- XML 암호화 구문 및 처리
W3C 권장사항, 2002년 12월
- XML 서명의 복호화 변환
W3C 권장사항, 2002년 12월
이러한 스펙은 웹 서비스 보안 컨텍스트의 WebSphere Application Server에서 지원됩니다. 예를 들어, 배치 디스크립터에 무결성 옵션을 지정하여 SOAP 메시지에 서명할 수 있습니다. SOAP 메시지 보안용 웹 서비스 보안을 사용 가능하게 하기 위해 애플리케이션에서 사용할 수 있는 클라이언트측 API(Application Programming Interface)가 있습니다.
OASIS 웹 서비스 보안 버전 1.0 스펙이 메시지 무결성 및 기밀성을 제공하는 데 사용하는 개선사항을 정의합니다. 보안 토큰과 SOAP 메시지를 연관시키는 일반 프레임워크도 제공합니다. 이 스펙은 여러 보안 토큰 포맷을 지원하도록 확장 가능하게 설계되어 있습니다. 특정 보안 토큰 사용법은 보안 토큰 프로파일을 사용하여 설명합니다.
WebSphere Application Server의 스펙 및 프로파일 지원
OASIS가 다양한 프로파일에서 작업합니다. 자세한 정보는 Organization for the Advancement of Structured Information Standards Committees의 내용을 참조하십시오.
다음 목록은 처리 중인 OASIS 웹 서비스 보안 기술 협회 작업 및 출판된 초안 프로파일을 포함합니다.
WebSphere Application Server는 다음 프로파일을 지원하지 않습니다.
- 웹 서비스 보안: SAML 토큰 프로파일 1.0
- 웹 서비스 보안: REL(Rights Expression Language) 토큰 프로파일 1.0
- 웹 서비스 보안: SwA(SOAP Messages with Attachments) 프로파일 1.0
웹 서비스 보안 버전 1.0의 웹 서비스 보안을 사용하는 SOAP 메시지의 wire 포맷이 변경되었으며 OASIS 웹 서비스 보안 스펙의 이전 초안과 호환되지 않습니다. OASIS 웹 서비스 보안 버전 1.0 및 이전 웹 서비스 보안 초안 간 상호 운용성이 지원되지 않습니다. 그러나 WebSphere Application Server 버전 6 이상의 웹 서비스 보안 초안 13을 기반으로 하는 애플리케이션을 실행하는 것은 가능합니다. 해당 애플리케이션은 WebSphere Application Server 버전 5.0.2, 5.1 또는 5.1.1의 웹 서비스 보안 초안 13을 기반으로 하는 애플리케이션과 상호 운용될 수 있습니다.
WebSphere Application Server는 OASIS 웹 서비스 보안 초안 13과 OASIS 웹 서비스 보안 1.0 스펙을 모두 지원합니다. 그러나 WebSphere Application Server 버전 6 이상에서는 OASIS 웹 서비스 보안 초안 13의 지원이 더 이상 사용되지 않습니다. WebSphere Application Server 5.0.2, 5.1.0 및 5.1.1의 OASIS 웹 서비스 보안 초안 13을 사용하여 개발된 애플리케이션은 WebSphere Application Server 버전 6 이상에서 실행될 수 있습니다. OASIS 웹 서비스 보안 버전 1.0 지원은 Java EE(Java Platform, Enterprise Edition) 버전 1.4 이상 애플리케이션에서만 사용 가능합니다. 배치 디스크립터 및 바인딩의 구성 포맷은 WebSphere Application Server의 이전 버전과 다릅니다. 기존 애플리케이션을 Java EE 1.4로 마이그레이션하고 웹 서비스 보안 구성을 WebSphere Application Server 버전 6 포맷으로 마이그레이션해야 합니다.
기타 웹 서비스 보안 스펙 개발
- WS-Trust 버전 1.3
웹 서비스 신뢰 언어(WS-Trust)는 웹 서비스 보안의 보안 메시징 기능 메커니즘을 사용하여 보안 토큰의 발행, 교환 및 유효성 검증을 위한 추가 기초 및 확장을 정의합니다. WS-Trust를 사용하면 다른 신뢰 도메인 내의 신임을 발행 및 보급할 수 있습니다. 이 스펙은 브로커 신뢰 관계를 설정하고 평가하는 방법을 정의합니다.
- WS-SecureConversation 버전 1.3
웹 서비스 보안 통신 언어(WS-SecureConversation)은 서비스 간에 보안 통신을 제공할 수 있도록 WS-Security 및 WS-Policy 모델에 구축됩니다. WS-Security는 보안 컨텍스트가 아닌 메시지 인증 모델에 중점을 두므로 여러 보안 침입 양식에 적용됩니다. 이 스펙은 보안 통신을 사용 할 수 있도록 보안 컨텍스트를 설정 및 공유하고 보안 컨텍스트에서 키를 파생할 수 있는 메커니즘을 정의합니다. SOAP 확장성 모델을 사용하면 모듈 SOAP 기반 스펙이 다양한 메시징 환경을 제공하기 위해 서로 구성되도록 설계됩니다.
- WS-SecurityPolicy 버전 1.2
웹 서비스 보안 정책(WS-Policy)은 웹 서비스의 정책을 설명하고 통신할 수 있도록 일반적인 용도의 모델과 구문을 제공합니다. WS-Policy 어설션은 특정 웹 서비스의 기능과 제한조건을 나타냅니다. WS-PolicyAttachments는 웹 서비스(예: WSDL)와 WS-Policy 표현식을 연관시키기 위한 여러 메소드를 정의합니다. 2005년 7월, WS-Security, WSTrust 및 WS-SecureConversation을 사용하는 웹 서비스의 기능 및 제한조건을 반영하기 위해 WS-Security 정책 재공개에 따라 웹 서비스 보안 스펙이 업데이트되었습니다. 또한 2005년에 WS-ReliableMessaging 정책이 WS-ReliableMessaging을 구현하는 웹 서비스의 기능 및 제한조건을 나타내기 위해 재공개되었습니다.
웹 서비스 상호 운용성 조직(WS-I) 활동
WS-I(Web Services Interoperability Organization)는 벤더, 플랫폼, 프로그래밍 언어 및 애플리케이션 간 웹 서비스 상호 운용성을 강화하기 위한 개방된 업계 노력입니다. 해당 조직은 IBM, Microsoft, Oracle, Sun, Novell, VeriSign 및 Daimler Chrysler를 포함하는 여러 업계에 걸친 회사의 컨소시엄입니다. WS-I는 BSP(Basic Security Profile) 1.0 및 1.1 버전을 개발했습니다. BSP 1.0 및 1.1 버전 모두는 여러 벤더 구현에 걸쳐 웹 서비스 보안 상호 운용성을 강화하기 위해 해당 스펙을 명료하게 하고 확대하는 비독점적 웹 서비스 스펙 세트로 구성됩니다.
- BP 1.2(Basic Profile 버전 1.2): http://ws-i.org/profiles/basicprofile-1.2-2010-11-09.html
- BP 2.0(Basic Profile 버전 2.0): http://ws-i.org/profiles/basicprofile-2.0-2010-11-09.html
- BSP 1.0(Basic Security Profile 버전 1.0): http://www.ws-i.org/profiles/basicsecurityprofile-1.0.html
- BSP 1.1(Basic Security Profile 버전 1.1): http://www.ws-i.org/profiles/basicsecurityprofile-1.1.html
- RSP 1.0(Reliable Secure Profile 1.0): http://www.ws-i.org/profiles/ReliableSecureProfile-1.0-2010-11-09.html