

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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) 的身分[登入](key_mgmt_util-log-in.md) HSM。

## 語法
<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
```

## Parameters
<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：[三重 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**  
尋找指定的使用者和目前的使用者共用的金鑰。輸入以逗號分隔的 HSM 使用者 ID 清單，例如 `-u 3` 或 `-u 4,7`。若要尋找 HSM 上的使用者 ID，請使用 [listUsers](key_mgmt_util-listUsers.md)。  
當您指定一個使用者 ID 時，**findKey** 會傳回該使用者的金鑰。當您指定多個使用者 ID 時，**findKey** 會傳回所有指定之使用者可以使用的金鑰。  
由於 **findKey** 只會傳回目前使用者可以使用的金鑰，`-u` 結果一律與目前使用者的金鑰相同或為其中一部分。如要取得任何使用者所擁有或共用的所有金鑰，加密管理員 (CO) 可使用 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 使用以下標準方法產生金鑰檢查值：  
+ **對稱密鑰**：使用金鑰加密零塊的結果的前 3 個位元組。
+ **非對稱金鑰配對**：公有金鑰 SHA-1 雜湊的前 3 個位元組。
+ **HMAC 金鑰**：目前不支援 HMAC 金鑰的 KCV。
必要：否

## Output
<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)