WS-Security

WS-Security(Web Services Security)는 메시지 무결성, 메시지 기밀성 및 단일 메시지 인증을 통한 QoP(Quality of Protection)을 제공하기 위해 SOAP메시징에 대한 개선사항을 설명합니다. WS-Security 메커니즘은 다양한 보안 모델 및 암호화 기술을 받아들이기 위해 사용할 수 있습니다.

IBM® App Connect Enterprise Java 8을 사용하도록 구성된 통합 서버에서 WS-Security를 지원합니다. 통합 서버는 기본적으로 Java 17을 IBM App Connect Enterprise 13.0 사용하지만, 를 사용하여 Java 8을 ibmint에서 JRE 지정 명령어사용하도록 구성할 수 있습니다.

WS-Security는 XML 디지털 서명을 통한 SOAP 메시지 보안, XML 암호화를 통한 기밀성 및 보안 토큰을 통한 신임 정보 전파를 기반으로 하는 메시지 레벨 표준입니다. 웹 서비스 보안 스펙은 메시지의 무결성과 기밀성을 보호하기 위한 기능을 정의하고 보안 관련 청구를 메시지와 연관시키기 위한 메커니즘을 제공합니다. WS-Security는 보안 토큰과 메시지를 연관시키기 위한 다용도 메커니즘을 제공합니다. WS-Security에서는 특정 유형의 보안 토큰을 요구하지 않습니다. 다중 보안 토큰 형식 지원과 같은 확장이 가능하도록 디자인됩니다.

WS-Security는 2진 보안 토큰을 인코딩하고 이를 SOAP 메시지에 첨부하는 방법에 대해서도 설명합니다. 특히, WS-Security 프로파일 스펙은 다음 토큰을 인코딩하는 방법을 설명합니다.
  • 사용자 이름 토큰
  • X.509 인증서
  • SAML 어설션
  • Kerberos 티켓
  • LTPA 2진 토큰

WS-Security에서는 인증 정보를 웹 서비스 요청에 포함시켜 이러한 메커니즘의 도메인을 확장할 수 있습니다. WS-Security는 메시지에 포함되는 신임 정보를 추가로 설명하는 데 사용할 수 있는 확장성 메커니즘도 포함합니다. WS-Security는 다양한 애플리케이션 보안 요구사항을 처리하기 위해 다른 웹 서비스 프로토콜과 함께 사용할 수 있는 빌딩 블록입니다.

WS-Security 사용에는 많은 장점이 있습니다.
  • 메시지의 여러 부분을 다양한 방법으로 보안 설정할 수 있습니다. 예를 들어, 보안 토큰(사용자 ID 및 비밀번호)의 무결성 및 SOAP 메시지 본문에 대한 기밀성을 사용할 수 있습니다.
  • 중개를 사용하고 원하는 수의 중개를 통해 엔드-투-엔드 메시지 레벨 보안을 제공할 수 있습니다.
  • WS-Security는 여러 전송에 걸쳐 작동하고 기본 전송 프로토콜과는 관계가 없습니다.
  • 개별 사용자와 다중 당사자 ID 둘 다의 인증이 가능합니다.

HTTPS와 같은 기존 웹 보안 메커니즘으로는 모든 웹 서비스 시나리오의 보안 요구사항을 관리하는 데 충분하지 않을 수 있습니다. 예를 들어, 애플리케이션이 HTTPS를 사용하여 SOAP 메시지를 송신하는 경우 이 메시지는 서비스 요청자(클라이언트)와 서비스 간 메시지 전송 중임을 의미하는 HTTPS 연결에 대해서만 보안 설정됩니다. 그러나 이 애플리케이션에서는 메시지 데이터가 HTTPS 연결보다 보안성이 높거나 심지어 전송 계층보다도 보안성이 높게 메시지 데이터를 보안 설정해야 될 수도 있습니다. 메시지 레벨에서 웹 서비스를 보안 설정함으로써 메시지 레벨 보안은 이러한 확장된 요구사항을 충족시킬 수 있습니다.

메시지 레벨 보안 또는 메시지 레벨에서의 웹 서비스 보안은 기존 웹 보안에 대해서와 같은 보안 요구사항을 처리합니다. 이러한 보안 요구사항에는 ID, 인증, 권한 부여, 무결성, 기밀성, 부인 방지 및 기본 메시지 교환 등이 있습니다. 기존의 웹 및 메시지 레벨 보안 둘 다 보안 핸들링에 있어 같은 메커니즘을 다수 공유합니다. 여기에는 디지털 인증서, 암호화 및 디지털 서명이 포함됩니다.

메시지 레벨 보안에서 SOAP 메시지 그 자체가 메시지를 보안 설정하는 데 필요한 정보를 포함하거나 보안 요구를 핸들링하기 위해 해당 정보를 가져올 위치에 대한 정보를 포함합니다. SOAP 메시지는 지정된 메시지 레벨 보안을 처리하기 위한 프로토콜 및 프로시저 관련 정보도 포함합니다. 그러나 메시지 레벨 보안은 어떠한 특정 전송 메커니즘에도 관련되지 않습니다. 보안 정보는 메시지의 일부이므로 HTTPS와 같은 전송 프로토콜과는 상관없습니다.

해당 특정 메시지에 적용되는 SOAP 메시지 헤더 보안 정보에 클라이언트도 추가됩니다. 메시지가 수신되면 웹 서비스 엔드 포인트는 헤더의 보안 정보를 사용하여 보안 설정된 메시지를 확인하고 정책에 대해 이 메시지를 유효성 검증합니다. 예를 들어, 서비스 엔드 포인트는 메시지 서명을 확인하고 메시지가 변조되었는지 검사할 수 있습니다. SOAP 메시지 헤더에 서명 및 암호화 정보뿐만 아니라 SOAP 메시지 컨텐츠에 바인드된 ID의 보안 토큰(예: X.509 인증서)과 같은 다른 정보도 추가할 수 있습니다.

메시지 레벨 보안이 없으면 SOAP 메시지는 일반 텍스트로 송신되고 사용자 ID 또는 계정 번호와 같은 개인 정보는 보호되지 않습니다. 메시지 레벨 보안을 적용하지 않으면 SOAP 메시지의 SOAP 엔벨로프에 SOAP 본문만 있습니다. WS-Security 스펙의 기능을 적용하면 SOAP 본문에 서명하고 암호화할 때 SOAP 보안 헤더가 SOAP 메시지의 SOAP 엔벨로프 아래 삽입됩니다.

메시지의 무결성 또는 기밀성을 유지하기 위해 일반적으로 디지털 서명 및 암호화가 적용됩니다.
  • 기밀성은 생성된 메시지에 적용되는 기밀성 제한조건을 지정합니다. 이 제한조건에는 생성된 메시지 중 암호화해야 하는 메시지 부분 및 암호화된 난스(nonce)와 시간소인 요소를 첨부할 메시지 부분 지정이 포함됩니다.
  • 무결성은 SOAP 메시지에 디지털 서명을 적용하여 제공됩니다. 기밀성은 SOAP 메시지 암호화에 의해 적용됩니다.

사용자 이름 토큰(요소)과 같은 다양한 유형의 보안 토큰을 삽입하여 인증 메커니즘을 추가할 수 있습니다. 웹 서비스 서버에 사용자 이름 토큰이 수신되면 사용자 이름 및 비밀번호를 추출하고 확인합니다. 사용자 이름 및 비밀번호 결합이 올바른 경우에만 서버에서 메시지가 승인되어 처리됩니다. 사용자 이름 토큰을 사용하는 것은 인증을 구현하는 방법 중 하나일 뿐입니다. 이 메커니즘을 기본 인증이라고도 합니다.

OASIS 웹 서비스 보안 스펙은 웹 서비스 보안 SOAP 메시지 교환의 개발자를 지원하기 위한 일련의 메커니즘을 제공합니다. OASIS 웹 서비스 보안 사양에 대한 자세한 내용은 WS-보안 사양에 대한 OASIS 표준을 참조하세요.