2013-06-06 6 views
1

저는 java keytool 명령에 익숙하지만 OAEP가 패딩 된 RSA 인증서를 생성하는 방법을 알 수 없습니다. SAML 채널을 확보하기 위해 하나를 생성하려고합니다. 패딩 방식을 지정하는 방법을 잘못 이해하고 있다는 느낌이 들게됩니다.KeyTool을 사용하여 RSA-OAEP (opensaml)로 CSR을 작성하는 방법

RSA SHA256으로 서명되고 AES256으로 암호화 된 채널로 이상적으로 끝나고 키 전송 알고리즘에 OAEP 패딩이 있습니다.

이 질문은 opensaml 구현과 관련이 있습니까? 왜 그것이 유효한 X509 인증서 일 뿐이 기 때문에 나는 그렇게 생각하지 않습니다.

keytool -genkey -alias myalias -keyalg RSA -keysize 512 -sigalg SHA256withRSA -keystore sample.jks -dname "CN=C, O=O, L=L, ST=S, C=US" -storepass changeit 

답변

1

OAEP 패딩 인증서를 당신의 암호문에 적용되지 않습니다.

인증서는 keytool 매개 변수에서 SHA256을 사용해야합니다.

Assertion assertion = createAssertion(); 

// Assume this contains a recipient's RSA public key 
Credential keyEncryptionCredential = getKEKCredential(); 

EncryptionParameters encParams = new EncryptionParameters(); 
encParams.setAlgorithm(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256); 

KeyEncryptionParameters kekParams = new KeyEncryptionParameters(); 
kekParams.setEncryptionCredential(keyEncryptionCredential); 
kekParams.setAlgorithm(EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP); 
KeyInfoGeneratorFactory kigf = 
    Configuration.getGlobalSecurityConfiguration() 
    .getKeyInfoGeneratorManager().getDefaultManager() 
    .getFactory(keyEncryptionCredential); 
kekParams.setKeyInfoGenerator(kigf.newInstance()); 

Encrypter samlEncrypter = new Encrypter(encParams, kekParams); 
samlEncrypter.setKeyPlacement(KeyPlacement.PEER);  
:하지만 당신의 SAML DSIG 매개 변수 내가 사용 AES256 & RSAOAEP를 사용하는 암호화 매개 변수를 변경할 수 있습니다 생각 OpenSaml 예 here 수정 SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256

가 필요합니다 생각