2013-03-19 2 views
1

난수 생성 (예 : 스마트 카드)과 같은 일부 암호화 기능을 구현하는 하드웨어가 있습니다. TLS를 사용하는 동안이 하드웨어를 사용하고 싶습니다. TLS 핸드 셰이크를 직접 구현하지 않고도이 작업을 수행 할 수 있습니까?자바에서 자신의 난수로 TLS- 핸드 셰이크

"SecureRandom"클래스를 확장하려고 시도했지만 "다음"메서드가 final이므로이를 재정의 할 수 없으므로 'genetrated numbers'가 반환됩니다.

그래서 기본적으로 자바에서 TLS 핸드 셰이크를 구현하지 않고 모든 암호화 기능을 "아웃소싱"하고 싶습니다.

감사

+0

정말로 SecureRandom에 중요한 것은 시드입니다. 알고리즘은 변경되지 않으므로 나머지는 예측할 수 있습니다. 따라서 StarmtCard를 사용하여 임의의 시드를 생성하고 SecureRandom (byte [] seed)을 대신 사용할 수 있다고 생각합니다. – BlackJoker

답변

1

대신 SecureRandomSpi을 확장합니다. 다음 중 하나를

그런 다음 SSLContext.initSecureRandom로 인수를 패스 Provider을 구현하거나 싼 SecureRandom

public MySecureRandom() 
    throws NoSuchAlgorithmException, NoSuchProviderException { 
     super(new MySecureRandom(),null); 
    } 

로 ( next의 구현이 주어진 SPI에 의존) 할.