생성기 바인딩에 대한 암호화 메소드 선택
생성기 바인딩의 요청 암호화를 위해 클라이언트를 구성하려면 클라이언트가 SOAP 메시지를 암호화할 때 사용할 암호화 메소드를 지정해야 합니다.
시작하기 전에
이러한 단계를 완료하기 전에 XML 암호화 정보를 읽고 SOAP 메시지 암호화 및 복호화에 대해 익히십시오.
- WSSEncryption API를 사용하여 데이터 암호화 알고리즘 및 키 암호화 알고리즘 메소드를 구성하십시오.
- 필요에 따라 WSSEncryptPart API를 사용하여 변환 알고리즘 메소드를 구성하십시오. 기본값은 변환 알고리즘이 없음입니다.
이 태스크 정보
암호화 관련 정의 중 일부는 XML 암호화 스펙을 기반으로 합니다. 다음 정보는 일부 데이터 암호화 관련 용어를 정의합니다.
- 데이터 암호화 방법 알고리즘
- 데이터 암호화 알고리즘은 데이터 암호화 메소드의 알고리즘 URI(Uniform Resource Identifier)를 지정합니다. 이 알고리즘은
데이터를 고정 크기의 복수 8진 블록으로 암호화 및 복호화합니다.
기본적으로, JCE(Java™ Cryptography Extension)가 길이가 제한된 암호와 함께 제공됩니다. 192비트와 256비트 고급 암호화 표준(AES) 암호화 알고리즘을 사용하려면 제한 없는 관할 정책 파일을 적용해야 합니다.
AES256-cbc 및 AES192-cbc 알고리즘의 경우 다음 웹 사이트에서 무제한 JCE(Java™ Cryptography Extension) 정책 파일을 다운로드해야 합니다. http://www.ibm.com/developerworks/java/jdk/security/index.html.
- 키 암호화 방법 알고리즘
- 키 암호화 알고리즘은 데이터를 암호화하는 데 사용되는 키를 암호화하기 위한 메소드의 알고리즘 URI(Uniform Resource Identifier)를 지정합니다. 이 알고리즘은 키의
암호화 및 복호화를 위해 지정되는 공개 키 암호화 알고리즘을 나타냅니다.
기본적으로, RSA-OAEP 알고리즘은 암호화 조작의 일부로 메시지 다이제스트를 계산하기 위해 SHA1 메시지 요약 알고리즘을 사용합니다. 선택적으로, 키 암호화 알고리즘 특성을 지정하여 SHA256 또는 SHA512 메시지 다이제스트 알고리즘을 사용할 수 있습니다.
특성 이름은 com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod입니다. 특성 값은 다이제스트 메소드의 다음 uri 중 하나입니다.- http://www.w3.org/2001/04/xmlenc#sha256
- http://www.w3.org/2001/04/xmlenc#sha512
기본적으로, RSA-OAEP 알고리즘은 OAEPParams를 위한 선택적 인코딩 옥텟 문자열에 대해 널 문자열을 사용합니다. 키 암호화 알고리즘 특성을 지정하여 명시적 인코딩 8진수 문자열을 제공할 수 있습니다. 특성 이름의 경우, com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams을 지정할 수 있습니다. 특성 값은 8진수 문자열의 기본 64-인코딩된 값입니다.
중요사항: 이러한 다이제스트 메소드와 OAEPParams 특성을 생성기 측면으로만 설정할 수 있습니다. 이용자 측면에, 이러한 특성은 수신 SOAP 메시지에서 읽혀집니다.KW_AES256 및 KW_AES192 키 암호화 알고리즘의 경우 다음 웹 사이트에서 무제한 JCE 정책 파일을 다운로드해야 합니다. http://www.ibm.com/developerworks/java/jdk/security/index.html.
중요사항: 사용자의 국가마다 암호화 소프트웨어의 수입, 소유권, 사용 또는 다른 국가로의 재수출에 대한 제한사항이 있을 수 있습니다. 제한되지 않은 정책 파일을 다운로드하거나 사용하기 전에 허용 여부를 결정하려면 암호화 소프트웨어의 수입, 소유권, 사용 및 재수출에 관한 해당 국가의 법률, 규정 및 정책을 확인해야 합니다.
사용법 유형 | 설명 |
---|---|
데이터 암호화 | 암호화 및 복호화 모두에 사용되는 알고리즘 URI를 지정합니다. 수정된 크기, 여러 옥텟 블록에서 데이터를 암호화하고 복호화합니다. |
키 암호화 | 키 암호화 및 복호화 모두에 사용되는 알고리즘 URI를 지정합니다. |
데이터 암호화
WebSphere® Application Server는 다음 사전 구성된 데이터 암호화 알고리즘을 지원합니다.
데이터 암호화 이름 | 알고리즘 URI |
---|---|
WSSEncryption.AES128(기본값) | 데이터 암호화 알고리즘의 URI, AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSEncryption.AES192 | 데이터 암호화 알고리즘의 URI, AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSEncryption.AES256 | 데이터 암호화 알고리즘의 URI, AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSEncryption.TRIPLE_DES | 데이터 암호화 알고리즘의 URI, 3DES: http://www.w3.org.2001/04/xmlenc#tripledes-cbc |
키 암호화
WebSphere Application Server는 다음 사전 구성된 키 암호화 알고리즘을 지원합니다.
키 암호화 이름 | 알고리즘 URI |
---|---|
WSSEncryption.KW_AES128 | 키 암호화 알고리즘의 URI, 키 랩 AES 128: http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSEncryption.KW_AES192 | 키 암호화 알고리즘의 URI, 키 랩
AES 192: http://www.w3.org/2001/04/xmlenc#kw-aes192 제한사항: 구성된
애플리케이션에서 기본 보안 프로파일(BSP)을 준수하려면 192비트 키 암호화 알고리즘을 사용하지
마십시오.
|
WSSEncryption.KW_AES256 | 키 암호화 알고리즘의 URI, 키 랩 AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSEncryption.KW_RSA_OAEP(기본값) | 키 암호화 알고리즘의 URI, 키 랩 RSA OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSEncryption.KW_RSA15 | 키 암호화 알고리즘의 URI, 키 랩 RSA 1.5: http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
WSSEncryption.KW_TRIPLE_DES | http://www.w3.org/2001/04/xmlenc#kw-tripledes |
암호화 및 암호화된 파트 알고리즘 메소드를 구성하려면 WSSEncryption API를 사용하거나 관리 콘솔을 사용하여 정책 세트를 구성하십시오.
WSS API 프로세스는 다음 상위 레벨 단계를 완료하여 요청 암호화를 위한 클라이언트를 구성할 때 사용할 암호화 메소드를 지정합니다.
프로시저
결과
예
다음 예에서는 WSSEncryption.setEncryptionMethod() 및 WSSEncryption.setKeyEncryptionMethod()를 사용하는 샘플 WSS API 코드를 제공합니다.
// Get the message context
Object msgcontext = getMessageContext();
// Generate the WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
// Generate the WSSGenerationContext instance
WSSGenerationContext gencont = factory.newWSSGenerationContext();
// Generate callback handler
X509GenerateCallbackHandler callbackHandler = new
X509GenerateCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"bob",
null,
"CN=Bob, O=IBM, C=US",
null);
// Generate the security token used for encryption
SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler);
// Generate WSSEncryption instance
WSSEncryption enc = factory.newWSSEncryption(token);
// Set the data encryption method
// DEFAULT: WSSEncryption.AES128
enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES);
// Set the key encryption method
// DEFAULT: WSSEncryption.KW_RSA_OAEP
enc.setEncryptionMethod(WSSEncryption.KW_RSA15);
// Add the WSSEncryption to the WSSGenerationContext
gencont.add(enc);
// Generate the WS-Security header
gencont.process(msgcontext);
다음에 수행할 작업
그런 다음 변환 알고리즘을 추가하고 싶은 경우 WSSEncryptPart API 프로세스 태스크를 검토하십시오.