

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# KMU를 사용하여 속성별로 AWS CloudHSM 키 검색
<a name="key_mgmt_util-findKey"></a>

 AWS CloudHSM key\_mgmt\_util의 **findKey** 명령을 사용하여 키 속성의 값으로 키를 검색합니다. 키가 설정한 모든 기준과 일치하면 **findKey**가 키 핸들을 반환합니다. 파라미터가 없으면 **findKey**는 HSM에서 사용할 수 있는 모든 키의 키 핸들을 반환합니다. 특정 키의 속성 값을 찾으려면 [getAttribute](key_mgmt_util-getAttribute.md)를 사용하십시오.

모든 key\_mgmt\_util 명령과 같이 **findKey**도 사용자별 명령입니다. 따라서 현재 사용자가 암호화 작업에서 사용할 수 있는 키만 반환합니다. 여기에는 현재 사용자가 소유한 키 및 현재 사용자와 공유된 키가 포함됩니다.

key\_mgmt\_util 명령을 실행하기 전에 [key\_mgmt\_util을 시작](key_mgmt_util-setup.md#key_mgmt_util-start)하고 CU(Crypto User)로 HSM에 [로그인](key_mgmt_util-log-in.md)해야 합니다.

## 구문
<a name="findKey-syntax"></a>

```
findKey -h 

findKey [-c {{<key class>}}] 
        [-t {{<key type>}}]
        [-l {{<key label>}}] 
        [-id {{<key ID>}}]
        [-sess (0 | 1)] 
        [-u {{<user-ids>}}]
        [-m {{<modulus>}}]
        [-kcv {{<key_check_value>}}]
```

## 예제
<a name="findKey-examples"></a>

이 예제에서는 **findKey**를 사용하여 HSM에서 키를 찾고 식별하는 방법을 보여 줍니다.

**Example : 모든 키 찾기**  
이 명령은 HSM에서 현재 사용자의 모든 키를 찾습니다. 출력에는 사용자가 소유 및 공유하는 키와 HSM의 모든 퍼블릭 키가 포함됩니다.  
특정 키 핸들이 있는 키의 속성을 가져오려면 [getAttribute](key_mgmt_util-getAttribute.md)를 사용합니다. 현재 사용자가 특정 키를 소유하거나 공유하는지 확인하려면 cloudhsm\_mgmt\_util에서 [getKeyInfo](key_mgmt_util-getKeyInfo.md) 또는 [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)를 사용합니다.  

```
Command: findKey

Total number of keys present 13

 number of keys matched from start index 0::12
6, 7, 524296, 9, 262154, 262155, 262156, 262157, 262158, 262159, 262160, 262161, 262162

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : 유형, 사용자, 세션 기준으로 키 찾기**  
이 명령은 현재 사용자와 사용자 3이 사용할 수 있는 영구 AES 키를 찾습니다. (사용자 3은 현재 사용자가 볼 수 없는 다른 키를 사용할 수 있습니다.)  

```
Command: findKey -t 31 -sess 0 -u 3
```

**Example : 클래스 및 라벨 기준으로 키 찾기**  
이 명령은 `2018-sept` 라벨이 있는 현재 사용자의 모든 퍼블릭 키를 찾습니다.  

```
Command: findKey -c 2 -l 2018-sept
```

**Example : 모듈러스를 기준으로 RSA 키 찾기**  
이 명령은 `m4.txt` 파일에서 모듈러스를 사용하여 생성된 현재 사용자의 RSA 키(유형 0)를 찾습니다.  

```
Command: findKey -t 0 -m m4.txt
```

## 파라미터
<a name="findKey-parameters"></a>

**-h**  
명령에 대한 도움말을 표시합니다.  
필수 항목 여부: 예

**-t**  
지정된 유형의 키를 찾습니다. 키 클래스를 나타내는 상수를 입력합니다. 예를 들어 3DES 키를 찾으려면 `-t 21`을 입력합니다.  
유효한 값:   
+ 0: [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem))
+ 1: [DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)
+ 3: [EC](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography)
+ 16: [GENERIC\_SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962)
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4)
+ 21: [Triple DES(3DES)](https://en.wikipedia.org/wiki/Triple_DES)
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
필수 여부: 아니요

**-c**  
지정된 클래스에서 키를 찾습니다. 키 클래스를 나타내는 상수를 입력합니다. 예를 들어 퍼블릭 키를 찾으려면 `-c 2`를 입력합니다.  
각 키 유형에 유효한 값:  
+ 2: 퍼블릭. 이 클래스는 퍼블릭-프라이빗 키 페어의 퍼블릭 키를 포함합니다.
+ 3: 프라이빗. 이 클래스는 퍼블릭-프라이빗 키 페어의 프라이빗 키를 포함합니다.
+ 4: 보안. 이 클래스는 모든 대칭 키를 포함합니다.
필수 여부: 아니요

**-l**  
지정된 라벨을 가진 키를 찾습니다. 정확한 라벨을 입력합니다. `--l` 값에서는 와일드카드 문자나 정규식을 사용할 수 없습니다.  
필수 여부: 아니요

**-id**  
지정된 ID를 가진 키를 찾습니다. 정확한 ID 문자열을 입력합니다. `-id` 값에서는 와일드카드 문자나 정규식을 사용할 수 없습니다.  
필수 여부: 아니요

**-sess**  
세션 상태를 기준으로 키를 찾습니다. 현재 세션에서만 유효한 키를 찾으려면 `1`을 입력합니다. 영구 키를 찾으려면 `0`을 입력합니다.  
필수 여부: 아니요

**-u**  
지정된 사용자와 현재 사용자가 공유하는 키를 찾습니다. `-u 3` 또는 `-u 4,7`과 같이 쉼표로 구분된 HSM 사용자 ID 목록을 입력합니다. HSM에 있는 사용자의 ID를 찾으려면 [listUsers](key_mgmt_util-listUsers.md)를 사용합니다.  
한 사용자 ID를 지정하면 **findKey**가 해당 사용자의 키를 반환합니다. 여러 사용자 ID를 지정하면 **findKey**가 지정된 모든 사용자가 사용할 수 있는 키를 반환합니다.  
**findKey**는 현재 사용자가 사용할 수 있는 키만 반환하므로 `-u` 결과는 항상 현재 사용자의 키와 동일하거나 현재 사용자 키의 하위 집합입니다. CO(Crypto Officer)는 cloudhsm\_mgmt\_util에서 [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)를 사용하여 사용자가 소유하거나 다른 사용자와 공유하는 모든 키를 가져올 수 있습니다.  
필수 여부: 아니요

**-m**  
지정된 파일에서 RSA 모듈러스를 사용하여 생성된 키를 찾습니다. 모듈러스를 저장하는 파일의 경로를 입력합니다.  
-m은 일치시킬 RSA 모듈러스가 포함된 바이너리 파일을 지정합니다(선택 사항).  
필수 여부: 아니요

**-kcv**  
지정된 키 확인 값을 가진 키를 찾습니다.  
*키 확인 값*(KCV)은 HSM이 키를 가져오거나 생성할 때 생성된 키의 3바이트 해시 또는 체크섬입니다. 또한 키를 내보낸 후와 같이 HSM 밖에서 KCV를 계산할 수 있습니다. 그 다음에는 KCV 값을 비교하여 키의 자격 증명 및 무결성을 확인할 수 있습니다. 키의 KCV를 확인하려면 [getAttribute](key_mgmt_util-getAttribute.md)를 사용합니다.  
AWS CloudHSM 는 다음 표준 메서드를 사용하여 키 검사 값을 생성합니다.  
+ **대칭 키**: 키를 사용하여 0 블록을 암호화한 결과의 처음 3바이트.
+ **비대칭 키 페어**: 퍼블릭 키 SHA-1 해시의 처음 3바이트.
+ **HMAC 키**: HMAC 키의 KVC는 현재 지원되지 않습니다.
필수 여부: 아니요

## 출력
<a name="findKey-output"></a>

**findKey** 출력은 일치하는 키 및 키 핸들의 총 수를 나열합니다.

```
        Command:  findKey
Total number of keys present 10

 number of keys matched from start index 0::9
6, 7, 8, 9, 10, 11, 262156, 262157, 262158, 262159

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

## 관련 주제
<a name="findKey-seealso"></a>
+ [findSingleKey](key_mgmt_util-findSingleKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ cloudhsm\_mgmt\_util에서 [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)
+ [키 속성 참조](key-attribute-table.md)