Sun Java System Application Server 9.1 관리 설명서

Application Server에 하드웨어 암호화 가속기 사용

하드웨어 가속기 토큰을 사용하면 암호화 성능을 향상시킬 수 있으며 보안 키 저장소 기능을 제공할 수 있습니다. 또한, 스마트 카드를 통해 최종 사용자에게 이동식 보안 키 저장소를 제공할 수도 있습니다.

Sun Java System Application Server는 SSL 또는 TLS 통신에 대한 PKCS#11 토큰 사용 및 키와 PKCS#11 토큰을 관리하는 데 필요한 NSS(Network Security Services) 도구를 지원합니다. 이 절에서는 Application Server가 해당 지원을 제공하는 방법에 대해 설명하며 관련 구성에 대한 절차를 안내합니다.

J2SE 5.0 PKCS#11 공급자는 Application Server 런타임과 쉽게 통합할 수 있습니다. 이 공급자를 통해 Application Server에서 하드웨어 가속기 및 다른 PKCS#11 토큰을 사용함으로써 빠른 성능을 얻을 수 있으며 SSL 또는 TLS 통신의 고유 개인 키를 보호할 수 있습니다.

이 절은 다음 내용으로 구성되어 있습니다.

하드웨어 암호화 가속기 구성 정보

Sun Java System Application Server는 Sun Crypto Accelerator 1000(SCA-1000) 및 SCA-4000 테스트를 거쳤습니다.

Application Server는 J2SE 5.0과 함께 사용하는 경우 PKCS#11 토큰과 통신할 수 있습니다. NSS PKCS#11 토큰 라이브러리(NSS 내부 PKCS#11 모듈의 경우 일반적으로 NSS 소프트 토큰으로 알려져 있음) 및 NSS 명령줄 관리 도구는 Application Server에 패키지화되어 있습니다. 자세한 내용은 NSS(Network Security Services) 도구 사용을 참조하십시오.

런타임 시 토큰 키와 인증서에 액세스할 수 있도록 NSS 도구를 사용하여 PKCS#11 토큰 및 J2SE PKCS#11 공급자에 키와 인증서를 만듭니다. PKCS#11 공급자는 원시 PKCS#11 라이브러리에 대한 래퍼 역할을 하는 암호화 서비스 공급자입니다. PKCS#11 토큰은 일반적으로 원시 PKCS#11 인터페이스를 가진 모든 하드웨어 및 소프트웨어 토큰을 나타냅니다. 하드웨어 토큰은 하드웨어 가속기 및 스마트 카드와 같은 물리적 장치에서 구현되는 PKCS#11 토큰입니다. 소프트웨어 토큰은 전적으로 소프트웨어에서 구현되는 PKCS#11 토큰입니다.


주 –

J2SE 1.4.x 플랫폼에서 Application Server를 실행하면 하나의 PKCS#11 토큰(NSS 소프트 토큰)만 지원됩니다.


Microsoft Windows 환경의 경우, NSS 라이브러리 AS_NSS의 위치와 NSS 도구 디렉토리 AS_NSS_BIN의 위치를 PATH 환경 변수에 추가합니다. 작업상 편의를 위해 이 절의 절차에서는 UNIX 명령만 사용합니다. 적절한 위치에서 UNIX 변수를 Windows 변수로 바꿔야 합니다.

하드웨어 암호화 가속기를 구성하려면 다음의 두 가지 주요 절차를 수행합니다.

PKCS#11 토큰 구성

이 절에서는 NSS 보안 도구 modutil을 사용하여 PKCS#11 토큰을 구성하는 방법에 대해 설명합니다. 다음 절차를 사용하여 PKCS#11 토큰을 구성합니다.

다음 명령을 모두 한 줄로 입력합니다.

modutil -dbdir AS_NSS_DB -nocertdb -force -add moduleName -libfile
 absolute_path_of_pkcs11_library -mechanisms list_of_security_mechanisms

여기서, AS_NSS_DB는 NSS 데이터베이스 디렉토리입니다(DAS(Domain Administration Server)를 사용하는 경우 AS_DOMAIN_CONFIG와 동일함).

예를 들어, 하드웨어 가속기 토큰을 구성하려면 다음을 모두 한 줄로 입력합니다.

modutil -dbdir AS_NSS_DB -nocertdb -force -add "Sun Crypto Accelerator" -libfile
 /opt/SUNWconn/crypto/lib/libpkcs11.so -mechanisms RSA:DSA:RC4:DES

이 예에서 하드웨어 가속기는 SCA–1000 암호화 가속기입니다. 해당 PKCS#11 라이브러리는 기본적으로 /opt/SUNWconn/crypto/lib/libpkcs11.so에 있습니다.

mechanisms는 해당 토큰에 사용할 수 있는 암호화 메커니즘에 대한 전체 목록이어야 합니다. 몇 개의 암호화 메커니즘만 사용하려면 J2SE 5.0 PKCS#11 공급자 구성을 참조하십시오. 지원되는 모든 메커니즘 목록을 보려면 NSS 보안 도구 사이트(http://www.mozilla.org/projects/security/pki/nss/tools)의 modutil 설명서를 참조하십시오.

다음 예에서는 토큰 설치 시 지정한 토큰 이름이 mytoken이라고 가정합니다.

하드웨어 가속기가 제대로 구성되었는지 확인하려면 다음 명령을 입력합니다.

modutil -list -dbdir AS_NSS_DB

표준 출력은 다음과 유사합니다.


Using database directory /var/opt/SUNWappserver/domains/domain1/config ...

Listing of PKCS#11 Modules
-----------------------------------------------------------
  1. NSS Internal PKCS#11 Module
         slots: 2 slots attached
        status: loaded

         slot: NSS Internal Cryptographic Services                            
        token: NSS Generic Crypto Services

         slot: NSS User Private Key and Certificate Services                  
        token: NSS Certificate DB

  2. Sun Crypto Accelerator
        library name: /opt/SUNWconn/crypto/lib/libpkcs11.so
         slots: 1 slot attached
        status: loaded

         slot: Sun Crypto Accelerator:mytoken
        token: mytoken
-----------------------------------------------------------

 

키 및 인증서 관리

이 절에서는 certutilpk12util을 사용하여 키 및 인증서를 만들고 관리하는 몇 가지 일반 절차에 대해 설명합니다. certutilpk12util에 대한 자세한 내용은 NSS(Network Security Services) 도구 사용 및 NSS 보안 도구 사이트(http://www.mozilla.org/projects/security/pki/nss/tools)의 설명서를 참조하십시오.


주 –

또한 java.security 등록 정보 파일(Java 런타임의 JAVA_HOME/jre/lib/security 디렉토리에 있음)에 PKCS#11 공급자를 구성하면 J2SE keytool 유틸리티를 사용하여 키와 인증서를 관리할 수 있습니다. keytool 사용에 대한 자세한 내용은 http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.html의 Java PKCS#11 Reference Guide를 참조하십시오.


이 절은 다음 내용으로 구성되어 있습니다.

키 및 인증서 나열

개인 키 및 인증서 작업

certutil을 사용하여 자체 서명된 인증서를 만들고 인증서를 가져오거나 내보냅니다. 개인 키를 가져오거나 내보내려면 pk12util 유틸리티를 사용합니다. 자세한 내용은 NSS(Network Security Services) 도구 사용을 참조하십시오.


주의 – 주의 –

Application Server에서 NSS 도구 certutilmodutil을 사용하여 NSS 비밀번호를 직접 수정하지 마십시오. NSS 비밀번호를 직접 수정하면 Application Server의 보안 데이터가 손상될 수 있습니다.


J2SE 5.0 PKCS#11 공급자 구성

Application Server는 J2SE PKCS#11 공급자를 사용하여 런타임 시 PKCS#11 토큰에 있는 키 및 인증서에 액세스합니다. 기본적으로 Application Server는 NSS 소프트 토큰에 J2SE PKCS#11 공급자를 구성합니다. 이 절에서는 J2SE PKCS#11 공급자의 기본 구성을 대체하는 방법에 대해 설명합니다.

Application Server에서 각 PKCS#11 토큰에 다음과 같은 기본 PKCS#11 구성 매개 변수가 생성됩니다.

이 구성은 Java PKCS#11 Reference Guide에 설명된 구문을 준수합니다.


주 –

이름 매개 변수는 고유해야 하며, 이외의 다른 요구 사항은 없습니다. J2SE 5.0과 같은 이전의 특정 버전은 영숫자 문자만 지원합니다.


사용자 정의 구성 파일을 만들어 기본 구성 매개 변수를 대체할 수 있습니다. 예를 들어, SCA–1000의 RSA 암호화 및 RSA 키 쌍 생성기를 명시적으로 비활성화할 수 있습니다. RSA 암호화 및 RSA 키 쌍 생성기를 비활성화하는 방법에 대한 자세한 내용은 http://www.mozilla.org/projects/security/pki/nss/tools를 참조하십시오.

사용자 정의 구성 파일을 만들려면 다음을 수행합니다.

  1. 다음 코드를 사용하여 as-install/mypkcs11.cfg라는 구성 파일을 만들고 저장합니다.


    name=HW1000
    library=/opt/SUNWconn/crypto/lib/libpkcs11.so
    slotListIndex=0
    disabledMechanisms = {
    	CKM_RSA_PKCS
    	CKM_RSA_PKCS_KEY_PAIR_GEN
    }
    omitInitialize=true
  2. 필요한 경우 NSS 데이터베이스를 업데이트합니다. 여기서는 RSA를 비활성화하기 위해 NSS 데이터베이스를 업데이트합니다.

    다음 명령을 실행합니다.


    modutil -undefault "Sun Crypto Accelerator" -dbdir AS_NSS_DB -mechanisms RSA

    mechanisms 목록의 알고리즘 이름은 기본 구성의 알고리즘 이름과 다릅니다. NSS의 유효한 mechanisms 목록을 보려면 NSS 보안 도구 사이트(http://www.mozilla.org/projects/security/pki/nss/tools)의 modutil 설명서를 참조하십시오.

  3. 다음과 같이 등록 정보를 해당 위치에 추가하여 서버에 이 변경 사항을 업데이트합니다.


    <property name="mytoken" value="&InstallDir;/mypkcs11.cfg"/>

    등록 정보의 위치는 다음 중 하나일 수 있습니다.

    • 공급자가 DAS 또는 서버 인스턴스용인 경우, 연관된 <security-service> 아래에 등록 정보를 추가합니다.

    • 공급자가 노드 에이전트용인 경우, domain.xml 파일에서 연관된 <node-agent> 요소 아래에 등록 정보를 추가합니다.

  4. Application Server를 다시 시작합니다.

    사용자 정의한 구성을 적용하려면 서버를 다시 시작합니다.