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 사용자 정의
사용자 정의 가능 항목 | 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 특성은 다음 디렉토리에 있습니다.
app_server_root/java/jre/lib/security 디렉토리.
app_server_root/properties 디렉토리.
profile_root/properties 디렉토리.
API(Application Programming Interface)
- 소켓 및 SSL 소켓
- 소켓 및 SSL 소켓 작성 팩토리
- 안전 소켓 팩토리에 대한 팩토리로 사용되는 안전 소켓 컨텍스트
- 키 및 신뢰 관리자 인터페이스
- 안전 HTTP URL 연결 클래스
- 공개 키 인증서 API
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- 버전 1.6
- http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트에 액세스하십시오.
- Java 1.6을 클릭하십시오.
- Javadoc HTML 문서를 Java Secure Socket Extension(JSSE) 안내서 절에서 클릭하십시오.
Java Secure Socket Extension 사용 샘플
- 버전 1.6
- http://www.ibm.com/developerworks/java/jdk/security/ 웹 사이트에 액세스하십시오.
- Java 1.6을 클릭하십시오.
- jssedocs_samples.zip을 Java Secure Socket Extension(JSSE) 안내서 절에서 클릭하십시오.
파일 | 설명 |
---|---|
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의 권한
- 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"
- java.security.SecurityPermission "putProviderProperty.IBMJSSE"
- java.security.SecurityPermission "insertProvider.IBMJSSE"
- java.security.SecurityPermission "putProviderProperty.SunJSSE"
- java.security.SecurityPermission "insertProvider.SunJSSE"
디버깅
javax.net.debug 시스템 특성을 구성하여 JSSE는 다음과 같은 동적 디버깅 추적을 제공합니다. -Djavax.net.debug=true.
true 값은 JSSE의 디버그 버전이 설치된 경우
추적 기능을 설정합니다.
true 값은
추적 기능을 설정합니다. 관리 콘솔을 사용하여 애플리케이션 서버 디버깅을 위한
시스템 특성을 설정하십시오.
문서
보안: JSSE에 대한 참조 문서에 대한 주제 학습 자원을 참조하십시오.
JCE
Java Cryptography Extension(JCE)은 WebSphere Application Server를 위한 암호 작성, 키, 해시 알고리즘을 제공합니다. JCE는 암호화, 키 생성, 키 동의, Message Authentication Code(MAC) 알고리즘에 대한 프레임워크 및 구현을 제공합니다. 암호화 지원에는 비대칭, 블록, 스트림 암호가 포함됩니다.
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 전용])
자세한 정보는 다음 웹 사이트에서 JCE 정보를 참조하십시오. http://www.ibm.com/developerworks/java/jdk/security/60/.
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)
- 대칭 벌크 암호화(예: DES, RC2, and IDEA)
- 대칭 스트림 암호화(예: RC4)
- 비대칭 암호화(예: RSA)
- 비밀번호 기반 암호화(PBE)
- 키 계약
- 메시지 인증 코드
http://www.ibm.com/developerworks/java/jdk/security/
웹 사이트에 대해 JCE API에 대한 추가 정보가 문서로 제공됩니다.
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의 문서에 대한 주제 학습 자원을 참조하십시오.