JSSE 및 JCE 프로그래밍 인터페이스를 사용하는 안전 전송

Java™ Secure Socket Extension(JSSE) 및 Java Cryptography Extension(JCE) 프로그래밍 인터페이스를 사용하는 전송 보안에 대한 자세한 정보가 제공됩니다. 이 주제 내에는 Java Cryptography Extension Federal Information Processing Standard(IBMJCEFIPS)의 IBM® 버전에 대한 설명이 제공됩니다.

Java Secure Socket Extension

JSSE는 WebSphere® Application Server에 대한 전송 보안을 제공합니다. JSSE는 API(Application Programming Interface) 프레임워크와 데이터 암호화 기능, 메시지 무결성, 인증을 포함하여 SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security)에 대한 API(Application Programming Interface) 구현을 제공합니다.

JSSE API는 Java 2 SDK, Standard Edition(J2SDK), 버전 5에 통합됩니다. JSSE API용 API 패키지는 javax.net.ssl.*입니다. JSSE API 사용 문서는 http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html에 있는 J2SE 6 API 문서에서 제공됩니다.

몇 개의 JSSE 제공자가 WebSphere Application Server에서 제공되는 Java 2 SDK 버전 5와 같이 제공됩니다. IBMJSSE 제공자는 이전 WebSphere Application Server 릴리스에서 사용됩니다.

새 IBMJSSE2 제공자에 대한 자세한 정보는 http://www.ibm.com/developerworks/java/jdk/security/60/에 있는 문서를 검토하십시오.

Java Secure Socket Extension 사용자 정의

Cryptography Package Provider, X509Certificate 및 HTTPS 프로토콜의 다른 구현을 플러그인하거나 다른 기본 키 저장소 파일, 키 관리자 팩토리, 신뢰 관리자 팩토리를 지정하여 JSSE의 몇 개 관점을 사용자 정의할 수 있습니다. 다음 테이블은 사용자 정의 가능한 관점, 기본값, 사용자 정의 제공에 사용되는 메커니즘에 대해 요약합니다.
표 1. 사용자 정의 가능한 항목. 다음 주요 관점을 사용자 정의할 수 있습니다.
사용자 정의 가능 항목 Default 사용자 정의 방법
X509Certificate IBM에서 X509Certificate 구현 cert.provider.x509v1 보안 특성
HTTPS 프로토콜 IBM에서 구현 java.protocol.handler.pkgs 시스템 특성
암호 작성 패키지 제공자 IBMJSSE2 보안 특성 파일의 security.provider.n= 라인. 설명 참조.
기본 키 저장소 없음 * javax.net.ssl.keyStore 시스템 특성
기본 신뢰 저장소 jssecacerts(있는 경우). 없으면 cacerts * javax.net.ssl.trustStore 시스템 특성
기본 키 관리자 팩토리 IbmX509 ssl.KeyManagerFactory.algorithm 보안 특성
기본 신뢰 관리자 팩토리 IbmX509 ssl.TrustManagerFactory.algorithm 보안 특성

시스템 특성을 설정하여 사용자 정의할 수 있는 관점에 대해 Java 명령의 -D 옵션을 사용하여 시스템 특성을 정적으로 설정하십시오. 관리 콘솔을 사용하여 시스템 특성을 설정하거나 System.setProperty(propertyName,"propertyValue") 코드에서 java.lang.System.setProperty 메소드를 호출하여 동적으로 시스템 특성을 설정하십시오.

Java 보안 특성을 설정하여 사용자 정의할 수 있는 관점에 대해 java.security 특성 파일의 보안 특성 값을 정적으로 지정하십시오. 보안 특성은 propertyName=propertyValue입니다. 코드에서 java.security.Security.setProperty 메소드를 호출하여 Java 보안 특성을 동적으로 설정하십시오.

java.security 특성은 다음 디렉토리에 있습니다.

[AIX Solaris HP-UX Linux Windows]app_server_root/java/jre/lib/security 디렉토리.

[z/OS]app_server_root/properties 디렉토리.

[IBM i]profile_root/properties 디렉토리.

API(Application Programming Interface)

JSSE는 javax.net 파일 및 javax.net.ssl 파일, javax.security.cert 파일에서 패키지로 사용할 수 있는 표준 API(Application Programming Interface)를 제공합니다. API는 다음에 적용됩니다.
  • 소켓 및 SSL 소켓
  • 소켓 및 SSL 소켓 작성 팩토리
  • 안전 소켓 팩토리에 대한 팩토리로 사용되는 안전 소켓 컨텍스트
  • 키 및 신뢰 관리자 인터페이스
  • 안전 HTTP URL 연결 클래스
  • 공개 키 인증서 API
[AIX Solaris HP-UX Linux Windows][IBM i]다음 정보에 액세스하면 JSSE API에 대한 더 자세한 정보가 문서로 제공됩니다.
버전 1.6
  1. http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트에 액세스하십시오.
  2. Java 1.6을 클릭하십시오.
  3. Javadoc HTML 문서를 Java Secure Socket Extension(JSSE) 안내서 절에서 클릭하십시오.

Java Secure Socket Extension 사용 샘플

Java Secure Socket Extension(JSSE)은 해당 기능을 시현하는 샘플도 제공합니다. Java Secure Socket Extension(JSSE)은 해당 기능을 시현하는 샘플도 제공합니다. 다음 위치에서 샘플에 액세스할 수 있습니다.
버전 1.6
  1. http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트에 액세스하십시오.
  2. Java 1.6을 클릭하십시오.
  3. jssedocs_samples.zip을 Java Secure Socket Extension(JSSE) 안내서 절에서 클릭하십시오.
표 2. 추출된 파일. 이 테이블에서는 다음과 같은 추출 파일을 나열합니다.
파일 설명
ClientJsse.java 단순 클라이언트 및 JSSE를 사용하는 서버 상호 운용을 시현합니다. 모든 사용 가능한 암호 스위트가 사용됩니다.
OldServerJsse.java 백엔드 샘플
ServerPKCS12Jsse.java 단순 클라이언트 및 PKCS12 키 저장소 파일이 포함된 JSSE를 사용하는 서버 상호 운용을 시현합니다. 모든 사용 가능한 암호 스위트가 사용됩니다.
ClientPKCS12Jsse.java 단순 클라이언트 및 PKCS12 키 저장소 파일이 포함된 JSSE를 사용하는 서버 상호 운용을 시현합니다. 모든 사용 가능한 암호 스위트가 사용됩니다.
UseHttps.java com.ibm.net.ssl.www.protocol 클래스의 Java 프로토콜 핸들러를 사용하여 SSL 또는 SSL 이외의 웹 서버 액세스를 시현합니다. URL은 http 또는 https 접두부로 지정됩니다. 이 사이트에서 리턴되는 HTML이 표시됩니다.
소스 코드에서 추가 지시사항을 참조하십시오. 샘플 실행 전에 다음 지시사항에 따라 수행하십시오.

Java 2 security의 권한

JSSE로 애플리케이션을 실행하려면 다음 권한이 필요할 수 있습니다. 이 목록은 참조 전용입니다.
  • java.util.PropertyPermission "java.protocol.handler.pkgs", "write"
  • java.lang.RuntimePermission "writeFileDescriptor"
  • java.lang.RuntimePermission "readFileDescriptor"
  • java.lang.RuntimePermission "accessClassInPackage.sun.security.x509"
  • java.io.FilePermission "${user.install.root}${/}etc${/}.keystore", "read"
  • java.io.FilePermission "${user.install.root}${/}etc${/}.truststore", "read"
IBMJSSE 제공자:
  • java.security.SecurityPermission "putProviderProperty.IBMJSSE"
  • java.security.SecurityPermission "insertProvider.IBMJSSE"
For the SUNJSSE provider:
  • java.security.SecurityPermission "putProviderProperty.SunJSSE"
  • java.security.SecurityPermission "insertProvider.SunJSSE"

디버깅

javax.net.debug 시스템 특성을 구성하여 JSSE는 다음과 같은 동적 디버깅 추적을 제공합니다. -Djavax.net.debug=true.

[AIX Solaris HP-UX Linux Windows][IBM i]true 값은 JSSE의 디버그 버전이 설치된 경우 추적 기능을 설정합니다.

[z/OS]true 값은 추적 기능을 설정합니다. 관리 콘솔을 사용하여 애플리케이션 서버 디버깅을 위한 시스템 특성을 설정하십시오.

문서

보안: JSSE에 대한 참조 문서에 대한 주제 학습 자원을 참조하십시오.

JCE

Java Cryptography Extension(JCE)은 WebSphere Application Server를 위한 암호 작성, 키, 해시 알고리즘을 제공합니다. JCE는 암호화, 키 생성, 키 동의, Message Authentication Code(MAC) 알고리즘에 대한 프레임워크 및 구현을 제공합니다. 암호화 지원에는 비대칭, 블록, 스트림 암호가 포함됩니다.

IBMJCE

Java Cryptography Extension(IBMJCE)의 IBM 버전은 WebSphere Application Server에서 사용되는 JCE 서비스 제공자 구현입니다. IBMJCE는 SunJCE와 유사하며 IBMJCE가 더 많은 알고리즘을 제공하는 점만 다릅니다.
  • 암호 알고리즘(AES, DES, TripleDES, PBEs, Blowfish 및 기타)
  • 서명 알고리즘(SHA1withRSA, MD5withRSA, SHA1withDSA)
  • 메시지 다이제스트 알고리즘(MD5, MD2, SHA1, SHA-256, SHA-384, SHA-512)
  • 메시지 인증 코드(HmacSHA1, HmacMD5)
  • 키 계약 알고리즘(DiffieHellman)
  • 난수 생성 알고리즘(IBMSecureRandom, SHA1PRNG)
  • 키 저장소(JKS, JCEKS, PKCS12, JCERACFKS [z/OS 전용])
IBMJCE는 com.ibm.crypto.provider.* 패키지에 속합니다.

자세한 정보는 다음 웹 사이트에서 JCE 정보를 참조하십시오. http://www.ibm.com/developerworks/java/jdk/security/60/.

IBMJCEFIPS

Java Cryptography Extensionxtension Federal Information Processing Standard(IBMJCEFIPS)의 IBM 버전은 WebSphere Application Server에서 사용되는 JCE 서비스 제공자 구현입니다. IBMJCEFIPS 서비스 제공자는 다음을 구현합니다.
  • 서명 알고리즘(SHA1withDSA, SHA1withRSA)
  • 암호 알고리즘(AES, TripleDES, RSA)
  • 키 계약 알고리즘(DiffieHellman)
  • 키(쌍) 생성기(DSA, AES, TripleDES, HmacSHA1, RSA, DiffieHellman)
  • 메시지 인증 코드(MAC) (HmacSHA1)
  • 메시지 다이제스트(MD5, SHA-1, SHA-256, SHA-384, SHA-512)
  • 알고리즘 매개변수 생성기(DiffieHellman, DSA)
  • 알고리즘 매개변수(AES, DiffieHellman, DES, TripleDES, DSA)
  • 키 팩토리(DiffieHellman, DSA, RSA)
  • 비밀 키 팩토리(AES, TripleDES)
  • 인증서(X.509)
  • 안전 랜덤(IBMSecureRandom)

API(Application Programming Interface)

Java Cryptography Extension(JCE)에는 제공자 기반의 아키텍처가 있습니다. 제공자는 JCE로 정의되는 API를 구현하여 JCE 프레임워크에 플러그인할 수 있습니다. JCE API는 다음에 적용됩니다.
  • 대칭 벌크 암호화(예: DES, RC2, and IDEA)
  • 대칭 스트림 암호화(예: RC4)
  • 비대칭 암호화(예: RSA)
  • 비밀번호 기반 암호화(PBE)
  • 키 계약
  • 메시지 인증 코드

[AIX Solaris HP-UX Linux Windows][IBM i]http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트에 대해 JCE API에 대한 추가 정보가 문서로 제공됩니다.

Java Cryptography Extension 사용 샘플

http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트의 jceDocs_samples.zip 파일에 샘플이 있습니다. 파일은 압축 해제하고 다음 샘플을 jceDocs/samples 디렉토리에서 찾으십시오.
표 3. Java Cryptography Extension 사용 샘플. 이 테이블은 Java Cryptography Extension 사용 샘플을 설명합니다.
파일 설명
SampleDSASignature.java DSA 키 쌍 생성 방법(공개 키 및 개인 키) 및 SHA1withDSA 알고리즘을 사용하여 디지털로 메시지를 서명하기 위해 키를 사용하는 방법에 대해 설명합니다.
SampleMarsCrypto.java Mars 비밀 키 생성 방법 및 Mars 암호화 및 복호화 방법에 대해 설명합니다.
SampleMessageDigests.java MD2 및 MD5 알고리즘에 대해 메시지 다이제스트 사용 방법에 대해 설명합니다.
SampleRSACrypto.java RSA 키 쌍 생성 방법 및 RSA 암호화 및 복호화 방법에 대해 설명합니다.
SampleRSASignatures.java RSA 키 쌍 생성 방법(공개 키 및 개인 키) 및 SHA1withRSA 알고리즘을 사용하여 디지털로 메시지를 서명하기 위해 키를 사용하는 방법에 대해 설명합니다.
SampleX509Verification.java X.509 인증서 확인 방법에 대해 설명합니다.

문서

보안: JCE의 문서에 대한 주제 학습 자원을 참조하십시오.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_jsse
파일 이름:csec_jsse.html