[ Java ] 충분하지 않은 키 길이
포스트
취소

[ Java ] 충분하지 않은 키 길이

취약한 코드


1
2
3
4
5
6
7
8
9
10
11
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;

public class InsufficientKeySizeController {
	public void target() throws NoSuchAlgorithmException {
		KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
		keyGen.initialize(512);
		KeyPair myKeys = keyGen.generateKeyPair();
	}
} 



취약점 분석


1
keyGen.initialize(512);

해당 부분에서 길이가 짧은 키를 사용하여 암호화 알고리즘을 취약하게 하고 있다. 충분한 길이의 키를 사용하여 안전한 암호화 알고리즘을 만들어야 한다.



안전한 코드


1
2
3
4
5
6
7
8
9
10
11
12
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;

public class InsufficientKeySizeControllerSec {
	public void target() throws NoSuchAlgorithmException {
		KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
		// KISA에서 제안하는 RSA 알고리즘 키 길이의 최소값을 구하세요.
		keyGen.initialize(2048);
		KeyPair myKeys = keyGen.generateKeyPair();
	}
}