웹 서비스 보안 개선사항

WebSphere® Application Server에는 웹 서비스 보안을 위한 다수의 개선사항이 포함됩니다. 예를 들어, 정책 세트는 웹 서비스의 보안 구성을 단순화하기 위해 WebSphere Application Server 버전 6.1 Feature Pack for Web Services 이상에서 지원됩니다.

애플리케이션 빌드

WebSphere Application Server 버전 8에서 사용되는 웹 서비스 보안 런타임 구현은 JAX-WS(Java™ API for XML Web Services) 프로그래밍 모델을 기반으로 합니다. JAX-WS 런타임은 Apache Open Source Axis2에 기반하며 데이터 모델은 AXIOM입니다. 배치 디스크립터 및 바인딩 대신 정책 세트가 구성에 사용됩니다. WebSphere Application Server 관리 콘솔을 사용하여 정책 세트와 연관된 애플리케이션 바인딩 파일을 편집할 수 있습니다. JAX-WS 런타임은 WebSphere Application Server V6.1 Feature Pack for Web Services 이상에서 지원됩니다.

배치 디스크립터 및 바인딩을 사용하는 JAX-RPC 프로그래밍 모델은 여전히 지원됩니다. 자세한 정보는 "메시지 레벨 보안을 사용한 JAX-RPC 웹 서비스 보안" 주제를 읽어보십시오.

정책 세트 사용

정책 세트를 사용하여 웹 서비스의 서비스 품질 구성을 단순화하십시오.

참고: 정책 세트는 WebSphere Application Server V6.1 Feature Pack for Web Services 이상에서 JAX-WS 애플리케이션에만 사용할 수 있습니다. 정책 세트는 JAX-RPC 애플리케이션에는 사용할 수 없습니다.

정책 세트는 전송용을 포함한 구성 설정값과 WS-SecureConversation(Secure Conversation)이 포함된 메시지 레벨 구성(예: WS-Addressing(Web Services Addressing), WS-ReliableMessaging(Web Services Reliable Messaging) 및 WS-Security(Web Services Security))을 결합합니다.

신뢰 정책 관리

WS-Trust(Web Services Security Trust)는 WS-SecureConversation(Web Services Secure Conversation)의 보안 컨텍스트 토큰을 발행하기 위해 엔드포인트에 대한 기능을 제공합니다. 토큰 발행 지원은 보안 컨텍스트 토큰으로 제한됩니다. 신뢰 정책 관리는 토큰을 발생, 취소, 유효성 검증 및 갱신하는 등 각 신뢰 서비스 조작에 대한 정책을 정의합니다. 클라이언트의 부트스트랩 정책은 WebSphere Application Server 신뢰 서비스 정책에 해당해야 합니다.

세션 기반 메시지 보안

웹 서비스 보안 통신은 메시지 교환을 장기 실행하고 대칭 암호화 알고리즘을 활용하기 위한 보안 세션을 제공합니다. WS-SecureConversation은 WS-ReliableMessaging(Web Services Security Reliable Messaging)과 같은 세션 기반 메시지 교환 패턴을 보안할 수 있는 기본 보안을 제공합니다.

메시지 레벨 보안 업데이트

WS-Security(Web Services Security) 버전 1.1은 메시지 레벨 보안을 업데이트하는 다음 기능을 지원합니다.
  • 서명 확인
  • 암호화된 헤더

서명 확인은 XML 디지털 서명 보안을 향상시킵니다. <SignatureConfirmation> 요소는 응답자가 요청에 서명을 처리했음을 나타내며 서명 확인을 통해 의도한 받는 사람이 실제로 서명을 처리했는지 확인할 수 있습니다. 서명 확인을 올바르게 처리하려면 요청 생성을 처리하는 동안 초기자가 서명을 보존해야 하며 웹 서비스의 Stateless 네이처 및 다른 메시지 교환 패턴을 확인 검사할 수 있는 서명을 검색해야 합니다. 정책을 구성하여 서명 확인을 사용 가능하게 합니다.

암호화된 헤더 요소는 SOAP 헤더를 암호화하기 위한 표준 방법을 지원하여 상호 운용성을 지원합니다. SOAP 메시지 보안 스펙에 정의된 대로, <EncryptedHeader> 요소는 특정 SOAP 헤더(또는 헤더 세트)를 보호 설정해야 하는 함을 표시합니다. SOAP 헤더 및 파트를 암호화하면 보다 안전한 메시지 레벨 보안을 제공할 수 있습니다. EncryptedHeader 요소를 사용하여 SOAP mustUnderstand 처리 지침을 준수하고 SOAP 헤더 블록의 속성에 포함된 정보가 공개되지 않도록 합니다.

ID 어설션 사용

보안 환경(인트라넷, SSL(Secure Sockets Layer) 연결 또는 VPN(Virtual Private Network)을 통한 연결)에서 요청 ID를 비밀번호와 같은 신임 정보없이 서버 ID와 같은 기타 신뢰 신임 정보만을 포함하여 전송하는 것이 유용합니다. WebSphere Application Server는 다음 유형의 ID 어설션을 지원합니다.
  • 비밀번호 포함하지 않는 사용자 이름 토큰
  • X.509 인증의 X.509 토큰

ID 어설션에 대한 자세한 정보는 "신뢰 ID 평가자" 주제를 읽어보십시오.

사용자 정의 토큰으로 데이터 서명 또는 암호화

JAX-RPC 프로그래밍 모델의 경우, Key Locator 또는 com.ibm.wsspi.wssecurity.keyinfo.KeyLocator Java 인터페이스가 스펙의 유연성을 지원하도록 확장되었습니다. Key Locator에 키를 찾는 책임이 있습니다. 로컬 JAAS Subject가 컨텍스트의 KeyLocator.getKey() 메소드에 전달됩니다. Key Locator 구현은 토큰 생성자 또는 토큰 이용자가 작성한 토큰에서 키를 파생시켜 메시지의 서명을 확인하고 메시지를 암호화하거나 메시지를 복호화할 수 있습니다. com.ibm.wsspi.wssecurity.keyinfo.KeyLocator Java 인터페이스는 WebSphere Application Server 버전 5.x에 있는 버전과 다릅니다. 버전 5.x의 com.ibm.wsspi.wssecurity.config.KeyLocator 인터페이스는 더 이상 사용되지 않습니다. 버전 5.x에서 버전 6 이상으로 Key Locator의 자동 마이그레이션이 없습니다. 버전 5.x Key Locator 구현의 소스 코드를 버전 6 이상의 Key Locator 프로그래밍 모델로 마이그레이션시켜야 합니다.

JAX-WS 프로그래밍 모델의 경우 플러그 가능 토큰 프레임워크가 WSS API로부터 동일한 프레임워크를 재사용합니다. 보안 토큰을 작성하고 유효성 검증하는 데 사용되는 동일한 구현을 웹 서비스 보안 런타임 및 WSS API 애플리케이션 둘 모두에 사용할 수 있습니다. 이는 SPI 프로그래밍 모델을 단순화하고 보안 토큰 유형을 보다 쉽게 사용자 정의하거나 새로 추가할 수 있습니다. 재설계된 SPI는 다음 인터페이스로 구성됩니다.
  • JAAS CallbackHandler 및 JAAS 로그인 모듈은 생성자 측에서 보안 토큰을 작성하고 이용자 측에서 보안 토큰을 유효성 검증하거나 인증합니다.
  • 보안 토큰 인터페이스(com.ibm.websphere.wssecurity.wssapi.token.SecurityToken)는 XML 형식 및 비밀번호 키를 얻기 위한 메소드가 있는 보안 토큰을 표시합니다.
JAX-WS를 사용할 때 다음 인터페이스가 더 이상 필요하지 않습니다.
  • 토큰 생성자(com.ibm.wsspi.wssecurity.token.TokenGeneratorComponent)
  • 토큰 이용자(com.ibm.wsspi.wssecurity.token.TokenConsumerComponent)
  • Key Locator(com.ibm.wsspi.wssecurity.keyinfo.KeyLocator)
사용자 정의 보안 토큰에 대한 자세한 정보는 IBM® developerWorks® 웹 사이트에서 다음 문서를 참조하십시오.

임의의 XML 요소 서명 또는 암호화

XPath 표현식은 서명 또는 암호화할 XML 요소를 선택하는 데 사용됩니다. 그러나 SOAP 엔벨로프(envelope), SOAP 헤더 또는 웹 서비스 보안 헤더에 서명하는 경우에는 엔벨로프 서명이 사용됩니다. JAX-RPC 웹 서비스에서 XPath 표현식은 애플리케이션 배치 디스크립터에 지정됩니다. JAX-WS 웹 서비스에서 XPath 표현식은 정책 세트의 WS-Security 정책에 지정됩니다.

JAX-WS 프로그래밍 모델은 정책 세트를 사용하여 보안이 적용되어야 하는 메시지 파트를 표시합니다. 예를 들어 <body> 어설션을 사용하여 SOAP 메시지의 본문이 서명되거나 암호화됨을 표시합니다. 다른 예제는 서명하거나 암호화할 SOAP 헤더의 QName이 지정된 <header> 어설션입니다.

SOAP 헤더 서명 또는 암호화

OASIS 웹 서비스 보안(WS-Security) 버전 1.1 지원은 SOAP 헤더를 암호화하고 서명하기 위한 표준 방법을 제공합니다. SOAP 메시지를 서명 또는 암호화하려면, QName을 지정하여 SOAP 메시지의 SOAP 헤더에서 헤더 요소를 선택하십시오.

관리 콘솔 또는 웹 서비스 보안 API(WSS API)를 사용하여 서명 또는 암호화에 대한 정책 세트를 구성할 수 있습니다. 자세한 내용은 "관리 콘솔을 사용하여 메시지 파트 보호" 주제를 참조하십시오.

서명의 경우, 다음을 지정하십시오.
이름
이 선택적 속성은 무결성 보호를 설정할 SOAP 헤더의 로컬 이름을 표시합니다. 이 속성을 지정하지 않으면, 네임스페이스가 네임스페이스 속성을 일치시키는 모든 SOAP 헤더가 보호 설정됩니다.
네임스페이스
이 필수 속성은 무결성 보호를 설정할 SOAP 헤더의 네임스페이스를 표시합니다.
암호화의 경우, 다음을 지정하십시오
이름
이 선택적 속성은 기밀성 보호를 설정할 SOAP 헤더의 로컬 이름을 표시합니다. 이 속성을 지정하지 않으면, 네임스페이스가 네임스페이스 속성을 일치시키는 모든 SOAP 헤더가 보호 설정됩니다.
네임스페이스
이 필수 속성은 기밀성 보호를 설정할 SOAP 헤더의 네임스페이스를 표시합니다.
그러면 <EncryptedData> 요소를 포함하는 <EncryptedHeader> 요소가 생성됩니다.

웹 서비스 보안 버전 1.0 동작에서는 바인딩의 EncryptionInfo에서 com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.0 특성을 true 값으로 지정하십시오. 이 특성을 지정하면 <EncryptedData> 요소가 생성됩니다.

버전 7.0 이전의 WebSphere Application Server 버전과 동일한 웹 서비스 보안 버전 1.1 작동의 경우, 바인딩의 <encryptionInfo> 요소에서 com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.1.pre.V7 특성을 true 값으로 지정하십시오. 이 특성을 지정할 때 <EncryptedHeader> 요소는 wsu:Id 매개변수를 포함하고 <EncryptedData> 요소는 ID 매개변수를 제거합니다. 이 특성은 기본 보안 프로파일 1.1에 대한 준수가 필요하지 않고 WebSphere Application Server 버전 5.1 Feature Pack for Web Services를 사용하는 클라이언트 또는 서버에 <EncryptedHeader> 요소를 전송해야 하는 경우에만 사용되어야 합니다.

LTPA 지원

LTPA(Lightweight Third Party Authentication)는 웹 서비스 보안에서 2진 보안 토큰으로서 지원됩니다. 웹 서비스 보안은 LTPA(버전 1) 및 LTPA 버전 2 토큰을 모두 지원합니다. 버전 1보다 보안이 강화된 LTPA 버전 2 토큰은 WebSphere Application Server 버전 7.0 이상에서 지원됩니다.

시간소인 지원 확장

웹 서비스 보안 헤더 외에 서명 프로세스 중에 기타 요소에 시간소인을 삽입할 수 있습니다. 이 시간소인이 요소에 시간 제한을 추가하는 메커니즘을 제공합니다. 이 지원은 WebSphere Application Server에 대한 확장입니다. 기타 벤더 구현은 메시지에 삽입된 추가 시간소인으로 생성된 메시지를 소비할 능력이 없을 수 있습니다.

Nonce 지원 확장

사용자 이름 토큰 외의 기타 요소의 임의로 생성된 값인 Nonce를 삽입할 수 있습니다. Nonce를 사용하여 다시 반복 공격의 가능성을 줄입니다. 이 지원은 WebSphere Application Server에 대한 확장입니다. 기타 벤더 구현은 사용자 이름 토큰 이외의 요소에 삽입되는 Nonce로 메시지를 처리하지 못할 수 있습니다.

분배 Nonce 캐싱 지원

분배 Nonce 캐시는 클러스터의 서버 간 Nonce 데이터를 복제할 수 있도록 하는 WebSphere Application Server 버전 6 이상에 있는 웹 서비스의 새 기능입니다. 예를 들어, 클러스터 C에 애플리케이션 서버 A와 애플리케이션 서버 B가 있을 수 있습니다. 애플리케이션 서버 A가 값이 X인 Nonce를 승인한 경우, 애플리케이션 서버 B가 지정한 시간에 동일한 값의 Nonce를 수신하면 SoapSecurityException을 작성합니다.

중요사항: 분배 Nonce 캐시 기능이 WebSphere Application Server DRS(Data Replication Service)를 사용합니다. 로컬 캐시의 데이터가 동일한 복제 도메인의 기타 서버에 있는 캐시로 이동됩니다. 복제는 프로세스 외부 호출이며, 일부 경우에는 원격 호출입니다. 그러므로, 클러스터에 있는 각 애플리케이션 서버의 캐시 내용이 업데이트되는 동안 복제가 지연될 가능성이 있습니다. 네트워크 통신량, 네트워크 워크로드, 시스템 워크로드 등으로 인해 지연될 수도 있습니다. 적절한 보안 보호를 위해 DRS 캐시에 대해 적절한 보안을 사용해야 합니다. 자세한 정보는 "멀티브로커 복제 도메인" 주제를 참조하십시오.

X.509 인증 캐싱

WebSphere Application Server는 기본적으로 수신하는 X.509 인증을 캐시하여 인증 경로의 유효성 검증을 피하고 성능을 개선합니다. 그러나 이 변경으로 보안 노출이 초래될 수 있습니다. 다음 단계를 사용하여 X.509 인증 캐싱을 사용 불가능하게 할 수 있습니다.

셀 레벨에서:
  • 보안 > 웹 서비스를 클릭하십시오.
  • 추가 특성 아래에서 특성 > 새로 작성을 클릭하십시오.
  • 특성 이름 필드에 com.ibm.ws.wssecurity.config.token.certificate.useCache를 입력하십시오.
  • 특성 값 필드에 false를 입력하십시오.
서버 레벨에서:
  • 서버 > 애플리케이션 서버 > server_name을 클릭하십시오.
  • 보안 아래에서 웹 서비스: 웹 서비스 보안의 기본 바인딩을 클릭하십시오.
  • 추가 특성 아래에서 특성 > 새로 작성을 클릭하십시오.
  • 특성 이름 필드에 com.ibm.ws.wssecurity.config.token.certificate.useCache를 입력하십시오.
  • 특성 값 필드에 false를 입력하십시오.

인증 취소 목록 지원 제공

WebSphere Application Server의 인증 취소 목록(CRL)은 인증 경로의 유효성 검증을 향상시키는 데 사용됩니다. 유효성 검증을 위해 콜렉션 인증 저장소에 CRL을 지정할 수 있습니다. PKCS#7 인코딩을 사용하여 X.509 토큰의 CRL을 인코딩할 수도 있습니다. 그러나 WebSphere Application Server 버전 6 이상은 X.509 토큰에서 X509PKIPathv1 CRL 인코딩을 지원하지 않습니다.
중요사항: PKCS#7 인코딩이 IBM 인증 경로(IBM CertPath) 제공자로만 테스트됩니다. 해당 인코딩은 기타 인증 경로 제공자에 대해 지원되지 않습니다.

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wssv6enhance
파일 이름:cwbs_wssv6enhance.html