Oracle® Solaris 11.2의 암호화 및 인증서 관리

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

파일을 암호화 및 해독하는 방법

파일을 암호화할 때 원본 파일은 제거되거나 변경되지 않습니다. 출력 파일이 암호화됩니다.

encrypt 명령과 관련된 공통적인 오류 해결 방법은 예 다음에 오는 절을 참조하십시오.


주 -  파일을 암호화하고 해독할 때 가능한 FIPS 승인 알고리즘을 승인된 키 길이와 함께 사용하십시오. Using a FIPS 140 Enabled System in Oracle Solaris 11.2 의 FIPS 140 Algorithms in the Cryptographic Framework에서 목록을 참조하십시오. encrypt -l 명령을 실행하여 사용 가능한 알고리즘과 해당 키 길이를 확인합니다.
  1. 적절한 길이의 대칭 키를 만듭니다.

    키 생성에 사용하거나 키를 제공할 수 있는 문장암호를 제공할 수 있습니다.

    • 문장암호를 제공하는 경우 문장암호를 저장하거나 기억해야 합니다. 문장암호를 온라인으로 저장할 경우 본인만 문장암호 파일을 읽을 수 있어야 합니다.

    • 키를 제공하는 경우 방식에 맞는 올바른 크기여야 합니다. pktool 명령을 사용할 수 있습니다. 절차 및 일부 예제는 pktool 명령을 사용하여 대칭 키를 생성하는 방법을 참조하십시오.

  2. 파일을 암호화합니다.

    encrypt 명령으로 키를 제공하고 대칭 키 알고리즘을 사용합니다.

    % encrypt -a algorithm [-v] \
    [-k keyfile | -K key-label [-T token]] [-i input-file] [-o output-file]
    –a algorithm

    파일을 암호화하는 데 사용할 알고리즘입니다. encrypt -l 명령의 출력에 나타난 대로 알고리즘을 입력합니다. 가능하면 Using a FIPS 140 Enabled System in Oracle Solaris 11.2 의 FIPS 140 Algorithms in the Cryptographic Framework에서 목록별 FIPS 승인 알고리즘을 선택하십시오.

    –k keyfile

    알고리즘이 지정된 길이의 키를 포함하는 파일입니다. encrypt -l 명령의 출력에 각 알고리즘의 키 길이가 비트 단위로 나열됩니다.

    –K key-label

    PKCS #11 키 저장소에서 키의 레이블입니다.

    –T token

    토큰 이름입니다. 기본적으로 토큰은 Sun Software PKCS#11 softtoken입니다. –K key-label 옵션을 사용할 때만 사용됩니다.

    –i input-file

    암호화하려는 입력 파일입니다. 이 파일은 명령에 의해 바뀌지 않습니다.

    –o output-file

    입력 파일의 암호화된 형태인 출력 파일입니다.

예 3-8  파일을 암호화하기 위한 AES 키 만들기

다음 예에서 사용자가 암호화 및 해독에 사용할 AES 키를 만들고 기존 PKCS #11 키 저장소에 저장합니다. 키가 존재하는지 확인하고 키를 사용할 수 있지만, 키 자체를 볼 수는 없습니다.

% pktool genkey label=MyAESkeynumber1 keytype=aes keylen=256
Enter PIN for Sun Software PKCS#11 softtoken  :Type password

% pktool list objtype=key
Enter PIN for Sun Software PKCS#11 softtoken  :Type password
No.      Key Type      Key Len.      Key Label
----------------------------------------------------
Symmetric keys:
1        AES           256           MyAESkeynumber1

키를 사용하여 파일을 암호화하려면 레이블로 키를 검색합니다.

% encrypt -a aes -K MyAESkeynumber1 -i encryptthisfile -o encryptedthisfile

encryptedthisfile 파일을 해독하려면 레이블로 키를 검색합니다.

% decrypt -a aes -K MyAESkeynumber1 -i encryptedthisfile -o sameasencryptthisfile
예 3-9  AES 및 문장암호로 암호화 및 해독

다음 예에서는 AES 알고리즘으로 파일이 암호화됩니다. 키가 문장암호에서 생성됩니다. 문장암호가 파일에 저장된 경우 사용자 이외의 다른 사람이 파일을 읽을 수 없어야 합니다.

% encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride
Enter passphrase:    Type passphrase
Re-enter passphrase: Type passphrase again

입력 파일 ticket.to.ride가 여전히 원본 형태로 존재합니다.

출력 파일을 해독하려면 파일을 암호화한 것과 동일한 문장암호 및 암호화 방식을 사용합니다.

% decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride
Enter passphrase: Type passphrase
예 3-10  AES 및 키 파일로 암호화 및 해독

다음 예에서 AES 알고리즘으로 파일이 암호화됩니다. AES 방식은 128비트 또는 16바이트 키를 사용합니다.

% encrypt -a aes -k ~/keyf/05.07.aes16 \
-i ticket.to.ride -o ~/enc/e.ticket.to.ride 

입력 파일 ticket.to.ride가 여전히 원본 형태로 존재합니다.

출력 파일을 해독하려면 파일을 암호화한 것과 동일한 키 및 암호화 방식을 사용합니다.

% decrypt -a aes -k ~/keyf/05.07.aes16  \
-i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride

문제 해결

다음 메시지는 encrypt 명령에 제공한 키가 사용 중인 알고리즘에서 허가되지 않음을 나타냅니다.

  • encrypt: unable to create key for crypto operation:(암호화 작업에 대한 키를 작성할 수 없습니다.) CKR_ATTRIBUTE_VALUE_INVALID

  • encrypt: failed to initialize crypto operation:(암호화 작업을 초기화하지 못했습니다.) CKR_KEY_SIZE_RANGE

알고리즘에 요구 사항에 맞지 않는 키를 전달할 경우 다음 방법 중 하나를 사용하여 더 적합한 키를 제공해야 합니다.

  • 문장암호를 사용합니다. 그러면 프레임워크가 요구 사항을 충족하는 키를 제공합니다.

  • 알고리즘에 적합한 키 크기를 전달합니다. 예를 들어, DES 알고리즘에 64비트 키가 필요합니다. 3DES 알고리즘에 192비트 키가 필요합니다.