ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JCA(Java Cryptography Architecture) & JCE(Java Cryptography Extension)
    카테고리 없음 2019. 8. 1. 15:33

    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 이전 버전
      •  자바 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 이후부터는
        • 기본설정으로 들어가 있다고 함.

    출처

     

    댓글

Designed by Tistory.