Sun Java System Application Server 9.1 관리 설명서

메시지 보안을 위한 Application Server 구성

요청 및 응답 정책 구성 작업

다음 표에서는 메시지 보호 정책 구성과 해당 구성의 WS-Security SOAP 메시지 보안 공급자가 수행한 메시지 보안 작업 결과를 보여줍니다.

표 10–1 메시지 보호 정책과 WS-Security SOAP 메시지 보안 작업 매핑

메시지 보호 정책 

WS-Security SOAP 메시지 보호 작업 결과 

auth-source="sender" 

메시지에는 wsse:UsernameToken(비밀번호 포함)을 포함하는 wsse:Security 헤더가 들어 있습니다.

auth-source="content" 

SOAP 메시지 본문의 내용을 서명합니다. 메시지에는 ds:Signature로 표시되는 메시지 본문 서명을 포함하는 wsse:Security 헤더가 들어 있습니다.

auth-source="sender" 

auth-recipient="before-content" 

또는 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 wsse:UsernameToken(비밀번호 포함)xenc:EncryptedKey가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-source="content" 

auth-recipient="before-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. xenc:EncryptedData가 서명됩니다. 메시지에는 xenc:EncryptedKeyds:Signature가 포함된 wsse:Security 헤더가 포함됩니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-source="content" 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 서명 및 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 xenc:EncryptedKeyds:Signature가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-recipient="before-content" 

또는 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 xenc:EncryptedKey가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

지정된 정책이 없습니다. 

모듈에서 보안 작업을 수행하지 않습니다. 

다른 보안 기능 구성

Application Server는 SOAP 처리 계층에 통합된 메시지 보안 공급자를 사용하여 메시지 보안을 구현합니다. 메시지 보안 공급자는 Application Server의 다른 보안 기능에 따라 달라집니다.

  1. Java SDK 1.5.0 이전의 버전을 사용하고 암호화 기술을 사용할 경우 JCE 공급자를 구성합니다.

  2. JCE 공급자 구성은 JCE 공급자 구성에 설명되어 있습니다.

  3. 사용자 이름 토큰을 사용할 경우 필요하면 사용자 데이터베이스를 구성합니다. 토큰을 사용할 경우 해당하는 영역을 구성하고 영역에 해당하는 사용자 데이터베이스를 구성해야 합니다.

  4. 필요한 경우 인증서 및 개인 키를 관리합니다.

작업 완료 후

Application Server의 기능이 메시지 보안 공급자가 사용할 수 있도록 구성되면 Application Server와 함께 설치된 공급자가 메시지 보안을 위한 공급자 활성화에 설명된 대로 활성화될 수 있습니다.

JCE 공급자 구성

J2SE 1.4.x가 포함된 JCE(Java Cryptography Extension) 공급자는 RSA 암호화를 지원하지 않습니다. WS-Security에서 정의한 XML 암호화는 대개 RSA 암호화를 기반으로 하기 때문에 WS-Security를 사용하여 SOAP 메시지를 암호화하려면 RSA 암호화를 지원하는 JCE 공급자를 다운로드 및 설치해야 합니다.


주 –

RSA는 RSA Data Security, Inc.에서 개발한 공개 키 암호화 기술입니다. RSA는 기술 발명자인 Rivest, Shamir, Adelman의 약자입니다.


Application Server를 1.5 버전의 Java SDK에서 실행할 경우 JCE 공급자는 이미 올바르게 구성되어 있습니다. Application Server를 1.4.x 버전의 Java SDK에서 실행할 경우 다음과 같이 JCE 공급자를 정적으로 JDK 환경의 일부로 추가할 수 있습니다.

  1. JCE 공급자 JAR(Java ARchive) 파일을 다운로드하여 설치합니다.

    다음 URL에서는 RSA 암호화를 지원하는 JCE 공급자 목록을 제공합니다. http://java.sun.com/products/jce/javase_providers.html

  2. JCE 공급자 JAR 파일을 java-home/jre/lib/ext/에 복사합니다.

  3. Application Server를 중지합니다.

    Application Server를 중지하지 않고 나중에 이 프로세스에서 다시 시작하면 Application Server가 JCE 공급자를 인식하지 않습니다.

  4. 텍스트 편집기에서 java-home/jre/lib/security/java.security 등록 정보 파일을 편집합니다. 다운로드한 JCE 공급자를 이 파일에 추가합니다.

    java.security 파일에는 이 공급자를 추가하기 위한 자세한 지침이 포함되어 있습니다. 기본적으로 유사한 등록 정보를 가진 위치에 다음 형식의 행을 추가해야 합니다.


    security.provider.n=provider-class-name
    

    이 예에서 n은 보안 공급자를 평가할 때 Application Server에서 사용하는 기본 설정 순서입니다. 추가한 JCE 공급자에 대해 n2로 설정합니다.

    예를 들어, Legion of the Bouncy Castle JCE 공급자를 다운로드한 경우 다음 행을 추가합니다.


    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider

    Sun 보안 공급자가 값 1을 가진 가장 높은 기본 설정을 유지하는지 확인합니다.


    security.provider.1=sun.security.provider.Sun

    다른 보안 공급자의 수준을 하향 조정하여 각 수준에 하나의 보안 공급자만 있도록 합니다.

    다음은 필요한 JCE 공급자를 제공하고 기존 공급자를 올바른 위치에 보관하는 java.security 파일의 예입니다.


    security.provider.1=sun.security.provider.Sun
    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.rsajca.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
  5. 파일을 저장하고 닫습니다.

  6. Application Server를 다시 시작합니다.