-
JCA(Java Cryptography Architecture)
-
JCA 자바 암호화를 위한 프레임워크
-
JDK1.1 java.security 패키지에 소개됨.
-
암호화, 키생성 및 관리, 인증서 검등의 API 포함
-
전자 서명과 메시지 다이제스트 같은 기능에 대한 일반적인 API 제공
-
'Provider"-based architecture'
-
암호 서비스를 정의하고 지원하기 위한 'Provider Framework'(java.security, javax.crypto, javax.crypto.spec, javax.crypto.interfaces 패키지)
-
실제 암호 구현 내용이 포함된 Provider (Sun, SunRsaSign, SunJCE 패키지등)를 제공
JCE(Java Cryptography Extension)
-
JCA보다 더 강력한 확장된 보안 기능 제공
-
미국에서 보안상 이유로 2000년 이후에 해외 보급
-
JDK1.4 부터는 JDK에 포함됨
-
주요 클래스: Cipher, KeyGenerator, SecretKeyFactor, KeyAgreement, MAC
-
대표적인 JCE provider > Bouncy Castle
-
Bouncy Castle은 암호화에 사용되는 API 모음. Java 및 C # 프로그래밍 언어 모두에 대한 API가 포함되어 있습니다.
BouncyCastle 사용법
-
설정방법
-
정적방법
-
$JAVA_HOME\lib\ext 에 jar 포함 >> bcprov-djk15on-162.jar (bcprov-ext-jdk15on-162.jar)
-
$JAVA_HOME\lib\security\java.security 파일 열어서 추가> security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
-
소스사용 > Security.getProvider("BC")
-
동적방법
-
이클립스 클래스패스에 jar파일 포함 > bcprov-djk15on-162.jar
-
소스사용 > Security.addProvider(new BouncyCastleProvider());
-
정책파일 설정 ( 암호알고리즘사용제한 제거 설정, 보다 강력한 암호화를 사용하기 위해서 필요함)
-
자바 8 151 이전 버전
-
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files Download 다운로드 > https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
-
다운로드 파일 압축 푼후 정책 파일(local_policy.jar, US_export_policy.jar) copy > C:\Program Files\Java\jre1.8.0_211\lib\security 에 카피
-
자바 8 151 버전 이후
-
폴더 구조가 변경되어 C:\Program Files\Java\jre1.8.0_211\lib\security\policy\limited, unlimed 폴더 하위에 정책 파일 있음.
-
$JAVA_HOME\lib\security\java.security 파일에서 crypto.policy=unlimited 부분 주석 제거하면 됨.
-
또는 소스에서 Security.setProperty("crypto.policy", "unlimited");
-
자바 9 이후부터는
-
기본설정으로 들어가 있다고 함.
출처
-