암호화 메소드
요청 생성기 바인딩을 설정하는 경우 암호화 메소드가 SOAP 메시지를 암호화하는 데 사용할 데이터 및 키 암호화 알고리즘을 지정합니다. WSSEncryption(WSS API for encryption)은 데이터 및 키 암호화 메소드의 일치하는 알고리즘 URI(Uniform Resource Identifier) 및 알고리즘 이름을 지정합니다. 데이터 및 키 암호화 알고리즘이 지정된 경우 해당 알고리즘으로 암호화된 요소만 승인됩니다.
데이터 암호화 알고리즘
데이터 암호화 알고리즘은 본문 및 서명을 포함하여 SOAP 메시지의 파트를 암호화하는 데 사용됩니다. 데이터 암호화 알고리즘은 각 데이터 암호화 알고리즘 유형에 URI(Uniform Resource Identifier)를 지정합니다.
데이터 암호화 알고리즘 이름 | 알고리즘 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 | 데이터 암호화 알고리즘 TRIPLE DES의 URI: http://www.w3.org/2001/04/xmlenc#tripledes-cbc |
기본적으로, JCE(Java™ Cryptography Extension)가 길이가 제한된 암호와 함께 제공됩니다. 192비트와 256비트 고급 암호화 표준(AES) 암호화 알고리즘을 사용하려면 제한 없는 관할 정책 파일을 적용해야 합니다.
AES256-cbc 및 AES192-CBC 알고리즘의 경우, 웹 사이트 http://www.ibm.com/developerworks/java/jdk/security/index.html에서 무제한 JCE(Java™ Cryptography Extension) 정책 파일을 다운로드해야 합니다.
생성기측의 암호화에 구성된 데이터 암호화 알고리즘이 이용자측의 암호 해독에 구성되는 데이터 암호화 알고리즘과 일치해야 합니다.
키 암호화 알고리즘
이 알고리즘은 키를 암호화 및 암호 해독하는 데 사용됩니다. 이 키 정보는 디지털 서명 및 암호화의 키를 생성하는 데 필요한 구성을 지정하는 데 사용합니다. 서명 정보와 암호화 정보 구성이 키 정보를 공유할 수 있습니다. 이용자측의 키 정보는 수신된 메시지의 디지털 서명에 대한 유효성 검증 또는 메시지의 암호화된 파트를 암호 해독하는 데 사용하는 키에 대한 정보를 지정하는 데 사용합니다. 요청 생성기는 클라이언트에 대해 구성됩니다.
키 암호화 알고리즘은 키 암호화 메소드의 알고리즘 URI(Uniform Resource Identifier)를 지정합니다. 다음 사전 구성된 키 암호화 알고리즘이 지원됩니다.
WSS API | 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 | 키 암호화 알고리즘인 키 줄 바꾸기 TRIPLE DES의 URI: http://www.w3.org/2001/04/xmlenc#kw-tripledes |
- algorithmName
- keyLength
- 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-인코딩된 값입니다.
KW_AES256 및 KW_AES192 키 암호화 알고리즘의 경우 다음 웹 사이트에서 무제한 JCE 정책 파일을 다운로드해야 합니다. http://www.ibm.com/developerworks/java/jdk/security/index.html.
생성기의 키 암호화 알고리즘이 이용자에 구성된 키 암호화 알고리즘과 일치해야 합니다.
다음 예제에서는 키 암호화 메소드에 RSA1.5를 사용하고 데이터 암호화 메소드에 Triple DES를 사용할 수 있는 암호화 샘플 코드를 제공합니다.
// get the message context
Object msgcontext = getMessageContext();
// generate WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
// generate 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 to the encryption
SecurityToken token = factory.newSecurityToken(X509Token.class,
callbackHandler);
// generate WSSEncryption instance to encrypt the SOAP body content
WSSEncryption enc = factory.newWSSEncryption(token);
enc.addEncryptPart(WSSEncryption.BODY_CONTENT);
// 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);