SafeNet Luna Client 사용
    • PDF

    SafeNet Luna Client 사용

    • PDF

    기사 요약

    VPC 환경에서 이용 가능합니다.

    SafeNet Luna Client를 구성하고 사용하는 방법을 설명합니다.

    SafeNet Luna Client 구성

    SafeNet Luna Client를 설치 및 설정하는 방법에 대해 설명합니다.

    지원 운영 체제

    SafeNet Luna Client를 구동할 수 있는 운영 체제는 다음과 같습니다.

    운영 체제버전
    Windows Server Standard2016
    Windows Server Standard2012
    Redhat-based Linux (CentOS, Oracle Enterprise Linux)7
    Ubuntu18
    Ubuntu14.04
    참고

    SafeNet Luna Client에 대한 자세한 정보는 Luna HSM 매뉴얼을 참고해 주십시오.

    클라이언트 설치

    SafeNet Luna Client를 서버에 설치해 주십시오.

    CentOS

    CentOS 클라이언트 서버를 신규 구성하는 방법은 HSM 클라이언트 서버 생성을 참고해 주십시오.

    Ubuntu

    Ubuntu 클라이언트 서버를 신규 구성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Ubuntu 서버를 생성해 주십시오.
    2. Ubuntu 서버에 접속해서 다음의 스크립트를 'init.sh' 파일로 저장해 주십시오.
      #!/bin/bash
      
      (echo y) | apt update
      (echo y) | apt-get install build-essential alien
      
      result=$(curl --location --request GET 'https://hardwaresecuritymodule.apigw.gov-ntruss.com/api/v1/client/configs')
      
      IFS=',' read -ra ADDR <<< "$result"
      
      DOWNLOAD_URL=${ADDR[0]}
      HSM1_URL=${ADDR[2]}
      HSM2_URL=${ADDR[3]}
      HSM3_URL=${ADDR[4]}
      
      cd ~
      
      wget $DOWNLOAD_URL
      
      tar -xvf 610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA.tar
      
      rm -rf 610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA.tar
      
      cd 610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA/64/
      
      (echo y) | sudo sh install.sh -p network -c all
      
      mv ~/610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA/008-010068-001_EULA_HSM7_SW_revC.txt /usr/safenet/lunaclient/008-010068-001_EULA_HSM7_SW_revC.txt
      
      /usr/safenet/lunaclient/bin/vtl addServer -n $HSM1_URL -c ~/610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA/cert/gov-hsm001.pem
      /usr/safenet/lunaclient/bin/vtl addServer -n $HSM2_URL -c ~/610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA/cert/gov-hsm002.pem
      /usr/safenet/lunaclient/bin/vtl addServer -n $HSM3_URL -c ~/610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA/cert/gov-hsm003.pem
      
      cd ~
      
      rm -rf 610-000397-003_SW_Linux_Luna_Client_V10.3.0_RevA
      
    3. 'init.sh' 파일로 저장한 스크립트를 실행해 주십시오.
      chmod 755 init.sh
      sh init.sh
      
      • 스크립트 실행 결과로 SafeNet Luna Client가 서버에 설치됩니다. 동시에 개인 키와 CSR(Certificate Signing Request) 파일이 생성됩니다. 개인 키와 CSR 파일은 HSM 장비와 SafeNet Luna Client 간 연결에 필요한 인증서를 생성하는 데 요구되므로, 파일 경로와 파일명을 수정할 수 없습니다.
        • 파일 생성 경로
          /usr/safenet/lunaclient/cert/client 
          
        • 생성되는 파일
          • {Common Name}Key.pem: 개인 키
          • {Common Name}-hsmCSR.pem: CSR
          • {Common Name}-hsm.pem: 인증서 파일

    Windows

    Windows 클라이언트 서버를 신규 구성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼에서 Windows 서버를 생성해 주십시오.
    2. Windows 서버에 접속해서 다음 스크립트를 ps1 확장자 파일로 저장해 주십시오.
      $response = Invoke-RestMethod 'https://hardwaresecuritymodule.apigw.gov-ntruss.com/api/v1/client/configs'
      
      $ADDR = $response -split","
      
      $DOWNLOAD_URL = $ADDR[1]
      $HSM1_URL = $ADDR[2]
      $HSM2_URL = $ADDR[3]
      $HSM3_URL = $ADDR[4]
      
      powershell "(New-Object System.Net.WebClient).DownloadFile('$DOWNLOAD_URL','C:\Users\Administrator\Downloads\Luna_Client.zip')"
      
      Expand-Archive -Force 'C:\Users\Administrator\Downloads\Luna_Client.zip' 'C:\Users\Administrator\Downloads\Luna_Client\'
      
      del C:\Users\Administrator\Downloads\Luna_Client.zip
      
      cd C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\
      
      (echo y) | .\LunaHSMClient.exe /install /quiet ADDLOCAL=NETWORK,CSP_KSP,JSP,SDK,JCProv
      
      Start-Sleep -Seconds 5
      
      & 'C:\Program Files\SafeNet\LunaClient\VTL.exe' addServer -n $HSM1_URL -c 'C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\cert\gov-hsm001.pem'
      & 'C:\Program Files\SafeNet\LunaClient\VTL.exe' addServer -n $HSM2_URL -c 'C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\cert\gov-hsm002.pem'
      & 'C:\Program Files\SafeNet\LunaClient\VTL.exe' addServer -n $HSM3_URL -c 'C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\cert\gov-hsm003.pem'
      
      Start-Sleep -Seconds 3
      
      cd C:\Users\Administrator\Downloads\Luna_Client
      
      del -Force -Recurse *
      
      cd ..
      
      del .\Luna_Client\
      
    3. ps1 확장자 파일로 저장한 스크립트를 실행해 주십시오.
      C:\> powershell -file C:\luna_config.ps1
      
      • 스크립트 실행 결과 SafeNet Luna Client가 서버에 설치됩니다. 동시에 개인 키와 CSR(Certificate Signing Request) 파일이 생성됩니다. 파일이 생성되는 경로는 다음과 같습니다. 개인 키와 CSR 파일은 HSM 장비와 SafeNet Luna Client 간 연결에 필요한 인증서를 생성하는 데 요구되는 파일이므로 파일 경로와 파일명을 수정할 수 없습니다.
        • 파일 생성 경로
        C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\cert\client
        
        • 생성되는 파일
          • {Common Name}Key.pem: 개인 키
          • {Common Name}-hsmCSR.pem: CSR
          • {Common Name}-hsm.pem: 인증서 파일

    연결 설정

    클라이언트 설치 후에는 네이버 클라우드 플랫폼 콘솔에서 HSM 파티션과 SafeNet Luna Client 서버 간 연결을 설정한 후, 서버에 저장되어 있는 인증서를 업데이트합니다.

    CentOS

    CentOS 인증서의 업데이트 방법은 연결 설정을 참고해 주십시오.

    Ubuntu

    Ubuntu 클라이언트 연결 설정 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔의 Region 메뉴와 Platform 메뉴에서 이용 중인 환경을 클릭해 주십시오.
    2. Services > Security > Hardware Security Module 메뉴를 차례대로 클릭해 주십시오.
    3. Connection 메뉴를 클릭해 주십시오.
    4. [연결 생성] 버튼을 클릭해 주십시오.
    5. 연결 생성을 위한 기본 정보를 입력해 주십시오.
      • VPC: HSM 클라이언트 서버가 배치된 VPC 선택
      • 서버명: Ubuntu 클라이언트 서버 선택
      • HSM Tag: 연결하려는 HSM Tag 선택
      • CSR: 서버에서 확인한 CSR 데이터 입력. 복사해 둔 pem 포맷의 스트링 그대로 붙여 넣기
    6. 입력을 완료했다면 [생성] 버튼을 클릭해 주십시오.
      • 연결이 생성되어 Connection 목록에 표시됩니다.
    7. Connection 목록에서 생성된 연결을 선택한 후 [인증서 확인] 버튼을 클릭해 주십시오.
    8. 인증서 상세 정보 팝업 창에서 인증서 본문 옆의 [다운로드] 버튼을 클릭해 주십시오.
      • 인증서 파일이 다운로드됩니다.
      • 팝업 창에 표시된 인증서 본문을 복사해서 서버 인증서 파일에 붙여 넣을 수도 있습니다.
    9. HSM 클라이언트 서버에 접속하여 /usr/safenet/lunaclient/cert/client/ 경로에 인증서 파일을 저장해 주십시오.
      • 인증서 파일명 형식: {Common Name}.pem
      • <예시> Common Name이 '374589-hsm'일 경우
        [root@hsm-test ~]# mv ./374589-hsm.pem /usr/safenet/lunaclient/cert/client/
        
      • 동일 경로에 인증서와 개인 키(파일명 형식: {Common Name}Key.pem)가 모두 위치하는지 확인해 주십시오.
      • <예시> Common Name이 '374589-hsm'일 경우
        [root@hsm-test client]# pwd
        /usr/safenet/lunaclient/cert/client
        [root@hsm-test client]# ls
        374589-hsmKey.pem  374589-hsm.pem
        
    10. SafeNet Luna Client vtl 유틸리티를 실행하여 HSM이 정상적으로 매핑되었는지 확인해 주십시오.
    • HSM 고유 식별자인 HSM Tag 뒷부분에 표시되는 시리얼 번호가 vtl 커맨드로 확인한 slot serial no.와 같아야 합니다.
    • <예시> HSM Tag가 'b1f83780-d3d99e8o-1451531153118'일 경우
      [root@hsm-test bin]# ./vtl verify
      vtl (64-bit) v10.3.0-275. Copyright (c) 2020 SafeNet. All rights reserved.
      
      
      The following Luna SA Slots/Partitions were found:
      
      Slot	Serial #        	Label
      ====	================	=====
          0	   1451531153118
      
    :::(Info) (참고)
    HSM Tag는 콘솔의 **Services > Security > Hardware Security Module > HSM** 메뉴에서 확인할 수 있습니다.
    :::
    
    1. 콘솔의 HSM 메뉴에서 연결 상태가 정상적으로 반영되었는지 확인해 주십시오.
      • HSM 목록에서 해당 항목이 운영중 상태로 표시되어야 합니다.

    Windows

    Windows 클라이언트 연결 설정 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔의 Region 메뉴와 Platform 메뉴에서 이용 중인 환경을 클릭해 주십시오.
    2. Services > Security > Hardware Security Module 메뉴를 차례대로 클릭해 주십시오.
    3. Connection 메뉴를 클릭해 주십시오.
    4. [연결 생성] 버튼을 클릭해 주십시오.
    5. 연결 생성을 위한 기본 정보를 입력해 주십시오.
      • VPC: HSM 클라이언트 서버가 배치된 VPC 선택
      • 서버명: 생성한 HSM 클라이언트 서버 선택
      • HSM Tag: 연결하려는 HSM Tag 선택
      • CSR: 서버에서 확인한 CSR 데이터 입력. 복사해 둔 pem 포맷의 스트링 그대로 붙여 넣기.
    6. 입력을 완료했다면 [생성] 버튼을 클릭해 주십시오.
      • 연결이 생성되어 Connection 목록에 표시됩니다.
    7. Connection 목록에서 생성된 연결을 선택한 후 [인증서 확인] 버튼을 클릭해 주십시오.
    8. 인증서 상세 정보 팝업 창에서 인증서 본문 옆의 [다운로드] 버튼을 클릭해 주십시오.
      • 인증서 파일이 다운로드됩니다.
      • 팝업 창에 표시된 인증서 본문을 복사해서 서버 인증서 파일에 붙여 넣을 수도 있습니다.
    9. HSM 클라이언트 서버에 접속하여 C:\Users\Administrator\Downloads\Luna_Client\610-000396-003_SW_Windows_Luna_Client_V10.3.0_RevA\cert\client 경로에 인증서 파일을 저장해 주십시오.
      • 인증서 파일명 형식: {Common Name}.pem
      • <예시> Common Name이 '374589-hsm'일 경우
        [root@hsm-test ~]# mv ./374589-hsm.pem /usr/safenet/lunaclient/cert/client/
        
      • 동일 경로에 인증서와 개인 키(파일명 형식: {Common Name}Key.pem)가 모두 위치하는지 확인해 주십시오.
      • <예시> Common Name이 '374589-hsm'일 경우
        [root@hsm-test client]# pwd
        /usr/safenet/lunaclient/cert/client
        [root@hsm-test client]# ls
        374589-hsmKey.pem  374589-hsm.pem
        
    10. SafeNet Luna Client vtl 유틸리티를 실행하여 HSM이 정상적으로 매핑되었는지 확인해 주십시오.
    • HSM 고유 식별자인 HSM Tag 뒷부분에 표시되는 시리얼 번호가 vtl 커맨드로 확인한 slot serial no.와 같아야 합니다.
    • <예시> HSM Tag가 'b1f83780-d3d99e8o-1451531153118'일 경우
      [root@hsm-test bin]# ./vtl verify
      vtl (64-bit) v10.3.0-275. Copyright (c) 2020 SafeNet. All rights reserved.
      
      
      The following Luna SA Slots/Partitions were found:
      
      Slot	Serial #        	Label
      ====	================	=====
          0	   1451531153118
      
    :::(Info) (참고)
    HSM Tag는 콘솔의 **Services > Security > Hardware Security Module > HSM** 메뉴에서 확인할 수 있습니다.
    :::
    
    1. 콘솔의 HSM 메뉴에서 연결 상태가 정상적으로 반영되었는지 확인해 주십시오.
      • HSM 목록에서 해당 항목이 운영중 상태로 표시되어야 합니다.

    SafeNet Luna Client 제공 기능

    HSM 파티션과 HSM 클라이언트 간에 연결이 정상적으로 완료되면 SafeNet Luna Client를 통해 HSM을 이용할 수 있습니다. SafeNet Luna Client에서는 어플라이언스 레벨(LunaSH)의 역할을 수행할 수 없고 파티션 레벨(LunaCM)의 역할만 수행할 수 있습니다. SafeNet Luna Client에서 사용할 수 있는 기능은 다음과 같습니다.

    사용자 역할기능SafeNet Luna Client 제공 기능
    어플라이언스 레벨(LunaSH)HSM 이용 신청X
    HSM 생성X
    HSM 연결X
    파티션 레벨(LunaCM)HSM 사용자 관리O
    HSM 파티션 초기화O
    Luna Client Utilities, REST API, SDK를 통한 파티션 사용O
    HA 구성O
    연동 설정O
    참고

    SafeNet Luna Client에서 제공하는 CLI(Command Line Interface), REST API, SDK(Software Development Kit) 사용 방법에 대한 안내는 SafeNet Luna Network HSM Client Manual을 참고해 주십시오.

    HSM 초기 설정

    HSM과 SafeNet Luna Client 간 연결을 설정한 후에는 HSM 파티션과 사용자에 대한 초기 설정 작업을 진행합니다. 초기화 작업을 수행하지 않을 경우 HSM을 정상적으로 사용할 수 없습니다.

    사용자 관리

    사용자를 추가 또는 삭제할 수 있습니다.

    사용자 추가

    root 사용자가 아닌 사용자는 hsmuser 그룹에 추가되어야만 SafeNet Luna Client에 접근할 수 있습니다. 다른 사용자의 접근을 허용하려면, 다음의 명령을 통해 사용자를 추가해 주십시오.

    sudo gpasswd --add <username> hsmusers
    

    사용자 삭제

    사용자를 삭제하려면 다음의 명령을 실행해 주십시오. 삭제된 사용자는 서버 재시작 전까지만 SafeNet Luna Client에 접근할 수 있습니다.

    sudo gpasswd -d <username> hsmusers
    

    파티션 초기화

    HSM 파티션을 초기화하는 방법은 다음과 같습니다.

    1. SafeNet Luna Client에서 연결된 HSM 파티션 정보를 확인해 주십시오.
      [root@s177243bfe5d bin]# ./vtl verify
      vtl (64-bit) v10.3.0-275. Copyright (c) 2020 SafeNet. All rights reserved.
      
      
      The following Luna SA Slots/Partitions were found:
      
      Slot    Serial #            Label
      ====    ================    =====
        0       1464895629433
        1       1467067938950
      
    2. 파티션을 초기화해 주십시오. 파티션 초기화 시 파티션 관리자(Partition Security Officer) 권한이 초기화됩니다. 파티션 관리자의 비밀번호를 재설정하고 도메인 네임을 재설정해 주십시오.
      [root@s177243bfe5d bin]# ./lunacm
      lunacm (64-bit) v10.3.0-275. Copyright (c) 2020 SafeNet. All rights reserved.
      
      
          Available HSMs:
      
          Slot Id ->              0
          Label ->
          Serial Number ->        1464895629433
          Model ->                LunaSA 7.7.0
          Firmware Version ->     7.7.0
          Bootloader Version ->   1.1.2
          Configuration ->        Luna User Partition With SO (PW) Key Export With Cloning Mode
          Slot Description ->     Net Token Slot
          FM HW Status ->         FM Ready
      
          Slot Id ->              1
          Label ->
          Serial Number ->        1467067938950
          Model ->                LunaSA 7.7.0
          Firmware Version ->     7.7.0
          Bootloader Version ->   1.1.2
          Configuration ->        Luna User Partition With SO (PW) Key Export With Cloning Mode
          Slot Description ->     Net Token Slot
          FM HW Status ->         FM Ready
      
      
          Current Slot Id: 0
         
      lunacm:>partition init -label ha-part1
      
          You are about to initialize the partition.
          All contents of the partition will be destroyed.
      
          Are you sure you wish to continue?
      
          Type 'proceed' to continue, or 'quit' to quit now ->proceed
      
      
          Enter password for Partition SO: *********
      
      
          Re-enter password for Partition SO: *********
      
      
          Option -domain was not specified.  It is required.
      
      
          Enter the domain name: *********
      
      
          Re-enter the domain name: *********
      
      
      Command Result : No Error    
      
    참고

    파티션 초기화에 대한 자세한 정보는 partition init을 참고해 주십시오.

    사용자 권한 초기화

    암호화 관리자(Crypto Officer)와 암호화 사용자(Crypto User)의 권한을 초기화할 수 있습니다. 초기화 시 비밀번호를 재설정해야 합니다.

    암호화 관리자 권한 초기화

    파티션 관리자의 권한으로 암호화 관리자의 계정을 초기화할 수 있습니다. 파티션 관리자로 로그인한 후에 암호화 관리자의 권한을 초기화해야 합니다. 권한을 초기화하는 방법은 다음과 같습니다.

    1. lunacm에서 파티션 관리자 권한으로 로그인해 주십시오.
      lunacm:>role login -name Partition so
      
      
          enter password: *********
      
      
      Command Result : No Error
      
    2. 다음의 명령을 실행하여 암호화 관리자를 초기화해 주십시오.
      lunacm:>role init -name Crypto Officer
      
      
          enter new password: *********
      
      
          re-enter new password: *********
      
    3. 암호화 관리자로 로그인해 주십시오.
      lunacm:>role logout
      
      Command Result : No Error
      
      lunacm:>role login -name Crypto Officer
      
      
          enter password: *********
      
      
      Command Result : No Error
      
    4. 암호화 관리자의 비밀번호를 변경해 주십시오.
      • 암호화 관리자 계정을 사용하기 위해서는 초기화 이후 비밀번호를 반드시 변경해야 합니다.
      lunacm:>role changepw -name co
      
      
          enter existing password: *********
      
      
      
          enter new password: *********
      
      
          re-enter new password: *********
      

    암호화 사용자 권한 초기화

    암호화 관리자의 권한으로 암호화 사용자의 계정을 초기화할 수 있습니다. 암호화 관리자로 로그인한 후에 암호화 사용자 계정을 초기화해야 합니다. 권한을 초기화하는 방법은 다음과 같습니다.

    1. lunacm에서 암호화 관리자 권한으로 로그인해 주십시오.
      lunacm:>role login -name Crypto Officer
      
      
          enter password: *********
      
      
      Command Result : No Error
      
    2. 다음의 명령을 실행하여 암호화 사용자를 초기화해 주십시오.
      lunacm:>role init -name cu
      
          enter new password: ********
      
      
          re-enter new password: ********
      
      
      Command Result : No Error
      
    3. 암호화 사용자로 로그인해 주십시오.
      lunacm:>role logout
      
      Command Result : No Error
      
      lunacm:>role login -name cu
      
      
          enter password: ********
      
      
      Command Result : No Error
      
      
    4. 암호화 사용자의 비밀번호를 변경해 주십시오.
      • 암호화 사용자 계정을 사용하기 위해서는 초기화 이후 비밀번호를 반드시 변경해야 합니다.
      lunacm:>role changepw -name cu
      
      
          enter existing password: ********
      
      
      
          enter new password: ********
      
      
         re-enter new password: ********
      
      
      Command Result : No Error
      
    참고
    • 권한 설정 명령어에 대한 자세한 정보는 role을 참고해 주십시오.
    • Java SDK 사용에 대한 자세한 정보는 Java Interfaces를 참고해 주십시오.
      • Java SDK 사용 시 userpin 암호에는 암호화 관리자의 비밀번호를 사용해 주십시오.

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.