버전 6용 웹 서비스 보안 스펙 - 연대기

이 문서에서는 웹 서비스 보안 스펙의 발달에 대해 설명합니다. 이 문서는 OASIS(Organization for the Advancement of Structured Information Standards) Web Services Security 버전 1.0 스펙에 대한 정보를 제공합니다. 이 스펙은 WebSphere® Application Server 버전 6 이상에서 웹 서비스 보안을 설정하는 데 사용되는 기본 스펙입니다.

비OASIS 활동

웹 서비스는 상호 운용성과 통합에 필요한 유망한 기술로 빠르게 인정받고 있습니다. 그러나 웹 서비스 보안은 웹 서비스의 채택을 비즈니스의 실용적인 업계 및 상업 솔루션이 되게 하는 가장 중요한 QoS(Quality of Service) 중 하나입니다. IBM®과 Microsoft는 웹 서비스에 대한 보안 백서를 공동으로 공개했습니다(제목: Security in a Web Services World: A Proposed Architecture and Roadmap). 이 백서는 제안된 웹 서비스 보안 로드맵의 초기 및 후속 스펙에 대해 설명합니다.
웹 서비스 보안
이 스펙은 SOAP(Simple Object Access Protocol) 메시지에서 디지털 서명을 첨부하고 암호화를 사용하며, 보안 토큰을 사용하는 방법을 정의합니다.
WS-Policy
이 스펙은 중개자 또는 엔드포인트의 보안 제한조건과 정책을 기술하는 데 사용되는 언어를 정의합니다.
WS-Trust
이 스펙은 웹 서비스 간 신뢰를 설정하도록 신뢰 모델의 프레임워크를 정의합니다.
WS-Privacy
이 스펙은 웹 서비스 및 요청자의 개인정보 보호 정책을 표현하기 위한 방법 모델을 정의합니다.
WS-SecureConversation
이 스펙은 웹 서비스 간 세션 키를 파생하는 보안 컨텍스트를 설정하고 교환하는 방법을 정의합니다.
WS-Federation
이 스펙은 연합 ID 관리를 비롯한 이기종 연합 환경에서의 신뢰 관계 모델을 정의합니다.
WS-Authorization
이 스펙은 웹 서비스에 대한 권한 정책을 정의합니다. 그러나 WS-Authorization 스펙은 공개되지 않았습니다. 기존의 웹 서비스 보안 구현은 J2EE(Java™ 2 Platform, Enterprise Edition) 또는 JSR(Java Specification Requirements) 109 스펙에 대한 웹 서비스에 기초합니다. 웹 서비스 보안 구현은 J2EE 역할 기반 권한 검사를 활용합니다. 역할 기반 권한에 대한 개념적 정보는 역할 기반 권한을 참조하십시오. 메소드 레벨 권한 검사가 필요한 웹 서비스를 개발할 경우 Stateless 세션 Bean을 사용하여 웹 서비스를 구현해야 합니다. Stateless 세션 Bean을 사용한 웹 서비스 구현에 대한 자세한 정보는 엔터프라이즈 Bean에서 웹 서비스 개발엔터프라이즈 Bean 애플리케이션 보안 설정을 참조하십시오. 서블릿으로 구현되는 웹 서비스를 개발할 경우 웹 컨테이너에서 Coarse-Grained 또는 URL 기반 권한을 사용할 수 있습니다. 그러나 이 경우에는 웹 서비스 보안 ID를 권한 검사에 사용할 수 없습니다. 그 대신 전송 ID를 사용할 수 있습니다. HTTP를 통한 SOAP를 사용할 경우 ID는 HTTP 전송 ID입니다.

다음 그림은 이러한 스펙 간의 관계를 보여줍니다.

다양한 스펙의
관계

위 그림의 녹색 상자에 표시된 것처럼, 2002년 4월에 IBM, Microsoft, VeriSign은 각 웹 사이트에 Web Service Security(WS-Security) 스펙을 제안했습니다. 이 스펙에는 보안 토큰, XML 디지털 서명, XML 암호화의 기본 개념이 들어 있었습니다. 또한 사용자 이름 토큰과 인코드된 2진 보안 토큰의 형식도 정의되어 있었습니다. 이 스펙에 대한 토론과 상호 운용성 테스트를 거친 결과, 다음과 같은 문제가 발견되었습니다.
  • 이 스펙을 사용하려면 웹 서비스 보안 프로세서가 스키마를 올바르게 이해하여 XML 디지털 서명과 XML 암호화의 ID 속성을 서로 구별할 수 있어야 합니다.
  • 메시지가 사전 정의된 시간 제한조건을 준수하는지를 표시하는 메시지의 신선도를 판별할 수 없습니다.
  • 요약된 비밀번호 문자열이 보안을 강화하지 않습니다.
2002년 8월, IBM, Microsoft, VeriSign은 이와 같은 문제들을 해결하고자 Web Services Security Addendum을 공개했습니다. 이 추가사항에 포함된 솔루션은 다음과 같습니다.
  • XML 서명 및 XML 암호화에 글로벌 ID 속성을 사용합니다.
  • 메시지의 작성, 수신 또는 만기 시간을 표시하는 시간소인 헤더 요소를 사용합니다.
  • 시간소인 및 임시값(임의 생성 토큰)이 포함된 요약된 비밀번호 문자열을 사용합니다.

위의 그림에서 파란색 상자로 표시된 스펙은 여러 업계 벤더들에 의해 제안되었으며, 이러한 벤더들이 이 스펙을 검증하고 조정하는 과정에서 다양한 상호 운용성 이벤트가 구성되었습니다.

OASIS 활동

2002년 6월, OASIS는 IBM, Microsoft, Verisign으로부터 제안된 웹 서비스 보안 스펙을 받았습니다. 얼마 지나지 않아, OASIS에서는 WSS TC(Web Services Security Technical Committee)가 조직되었습니다. 이 기술 위원회는 IBM, Microsoft, VeriSign, Sun Microsystems 및 BEA Systems와 같은 여러 기업들로 구성되었습니다.

2002년 9월, WSS TC에서 첫 번째 스펙인 Web Services Security Core Specification, Working Draft 01을 공개했습니다. 이 스펙에는 원래의 웹 서비스 보안 스펙과 이에 대한 추가사항의 내용이 모두 포함되었습니다.

토론이 계속될수록 기술 위원회의 비중은 점점 커졌습니다. Web Services Security Core Specification은 임의의 보안 토큰 유형을 허용했기 때문에, 제안은 프로파일로 공개되었습니다. 프로파일에는 웹 서비스 보안 메시지에 임베드되는 SAML(Security Assertion Markup Language) 토큰과 Kerberos 토큰을 비롯한 여러 토큰을 임베드하기 위한 메소드가 기술되었습니다. 그 후에는 원래의 Web Services Security Specification에 정의되었던 사용자 이름 토큰 및 X.509 2진 보안 토큰의 사용법 정의가 여러 개의 프로파일로 분할되었습니다.

WebSphere Application Server 버전 5.0.2, 5.1 및 5.1.1은 다음과 같은 스펙을 지원합니다.
  • Web Services Security: SOAP Message Security Draft 13(이전의 Web Services Security Core Specification)
  • Web Services Security: Username Token Profile Draft 2

2004년 4월에는 웹 서비스 보안 스펙(공식 명칭: Web Services Security: SOAP Message Security 버전 1.0)이 버전 1.0 OASIS 표준이 되었습니다. 사용자 이름 토큰 및 X.509 토큰 프로파일도 버전 1.0 스펙입니다.

WebSphere Application Server 6에서 지원되는 OASIS의 웹 서비스 보안 스펙은 다음과 같습니다.

다음 그림은 웹 서비스 보안과 관련된 다양한 스펙을 보여줍니다.

OASIS 스펙

WebSphere Application Server 버전 6은 확장된 플러그인 기능을 제공함으로써 보안 제공자가 웹 서비스 보안 스택의 런타임 기능을 확장하여 고급 스펙 중 일부를 구현할 수 있도록 지원합니다. 플러그인 지점은 SPI(Service Provider Programming Interfaces)로 노출됩니다. 이러한 SPI에 대한 자세한 내용은 웹 서비스 보안 서비스 제공자 프로그래밍 인터페이스의 기본 구현을 참조하십시오.

웹 서비스 보안 스펙의 발달

OASIS Web Services Security 버전 1.0 스펙은 메시지 무결성 및 기밀성을 제공하기 위한 개선사항을 정의합니다. 또한 보안 토큰과 SOAP(Simple Object Access Protocol) 메시지를 연관시킬 수 있는 일반 프레임워크를 제공합니다. 이 스펙은 확장이 가능하여 여러 가지 보안 토큰 형식을 지원할 수 있도록 설계되었습니다. 특정한 보안 토큰을 사용할 경우 보안 토큰 프로파일로 해결할 수 있습니다. OASIS 웹 서비스 보안 스펙은 다음과 같은 W3C(World Wide Web Consortium) 스펙을 기초로 합니다. 대부분의 W3C 스펙은 표준 본문에서 권장되는 상태를 갖습니다.

이러한 스펙은 WebSphere Application Server 6에서 웹 서비스 보안을 설정할 때 지원됩니다. 예를 들어 배치 디스크립터에 무결성 옵션을 지정하여 SOAP 메시지에 서명할 수 있습니다. 그러나 애플리케이션에서 SOAP 메시지의 XML 요소에 XML 서명할 때 사용 가능한 API(Application Programming Interface)는 없습니다.

OASIS Web Services Security 버전 1.0 스펙은 메시지 무결성 및 기밀성을 제공하기 위한 개선사항을 정의합니다. 또한 보안 토큰과 SOAP(Simple Object Access Protocol) 메시지를 연관시킬 수 있는 일반 프레임워크를 제공합니다. 이 스펙은 확장이 가능하여 여러 가지 보안 토큰 형식을 지원할 수 있도록 설계되었습니다. 특정한 보안 토큰을 사용할 경우 보안 토큰 프로파일로 해결할 수 있습니다.

WebSphere Application Server 버전 6 이상에서 지원되는 스펙 및 프로파일

OASIS는 다양한 프로파일을 지원합니다. 자세한 정보는 OASIS(Organization for the Advancement of Structured Information Standards) 위원회 . WebSphere Application Server 버전 6은 다음과 같은 프로파일을 지원하지 않습니다. 다음 목록은 공개된 초안 프로파일과 현재 진행 중인 OASIS 웹 서비스 보안 기술 위원회의 작업 중 일부를 나열합니다.
  • Web Services Security: SAML 토큰 프로파일
  • Web Services Security: REL 토큰 프로파일
  • Web Services Security: Kerberos 토큰 프로파일
  • Web Services Security: SwA(SOAP Messages with Attachments) 프로파일
WebSphere Application Server 버전 6은 다음과 같은 스펙을 지원하므로, WebSphere Application 5.0.2, 5.1.0, 5.1.1에서 제공되는 Web Services Security Draft 13 및 Username Token Profile Draft 2 지원은 더 이상 사용되지 않습니다.
  • OASIS Web Services Security 버전 1.0 스펙
  • Web Services Security Username Token 프로파일
  • X.509 Token 프로파일

Web Services Security 버전 1.0에서 제공되는 SOAP 메시지와 웹 서비스 보안의 연결 형식이 변경되어 이전의 OASIS 웹 서비스 보안 스펙 초안과 호환되지 않습니다. OASIS Web Services Security 버전 1.0과 이전의 웹 서비스 보안 초안은 상호 운용되지 않습니다. 그러나 Web Services Security Draft 13에 기초한 애플리케이션을 WebSphere Application Server 버전 6에서 실행할 수 있습니다. 이 애플리케이션은 Web Services Security Draft 13에 기초한 WebSphere Application Server 버전 5.0.2, 5.1 또는 5.1.1의 애플리케이션과 상호 운용됩니다.

WebSphere Application Server 버전 6은 OASIS Web Services Security Draft 13 스펙과 OASIS Web Services Security 1.0 스펙을 모두 지원합니다. 그러나 WebSphere Application Server 버전 6에서 OASIS Web Services Security Draft 13에 대한 지원은 더 이상 사용되지 않습니다. 그러나 OASIS Web Services Security Draft 13을 사용하여 WebSphere Application Server 5.0.2, 5.1.0, 5.1.1에서 개발된 애플리케이션을 WebSphere Application Server 버전 6에서 실행할 수 있습니다. OASIS Web Services Security 버전 1.0에 대한 지원은 J2EE(Java 2 Platform, Enterprise Edition) 버전 1.4 애플리케이션에만 제공됩니다. 배치 디스크립터 및 바인딩의 구성 형식은 이전 버전의 WebSphere Application Server와 다릅니다. 기존의 애플리케이션을 J2EE 1.4로, 웹 서비스 보안 구성을 WebSphere Application Server 버전 6 형식으로 각각 마이그레이션해야 합니다. 자세한 정보는 웹 서비스 보안을 사용하는 버전 5.x 애플리케이션을 버전 6 애플리케이션으로 마이그레이션을 참조하십시오.

WS-I(Web Services Interoperability Organization) 활동

WS-I(Web Services Interoperability Organization)는 벤더, 플랫폼, 프로그래밍 언어 및 애플리케이션 간 웹 서비스 상호 운용성을 강화하기 위한 개방된 업계 노력입니다. 이 조직은 IBM, Microsoft, Oracle, Novell, VeriSign 및 Daimler Chrysler를 비롯한 다양한 업계의 여러 기업들로 조직된 공동체입니다. WS-I는 2003년 봄에 기본 보안 프로파일(BSP)의 개발을 시작했습니다. BSP는 여러 벤더 구현에 걸쳐 웹 서비스 보안을 상호 운용하기 위한 스펙을 규명하고 증강하는 비독점적 웹 서비스 스펙 세트로 구성됩니다. BSP의 초안은 2004년 6월에 공개되었습니다. 자세한 정보는 WS-I(Web Services Interoperability Organization) .

특히, BSP에 대한 자세한 정보는 Basic Security Profile 버전 1.0을 참조하십시오. WebSphere Application Server는 BSP 준수를 지원합니다. BSP를 준수하는 애플리케이션을 구성하기 위한 자세한 정보는 BSP(Basic Security Profile) 준수를 참조하십시오.


피드백