KMU를 사용하여 AWS CloudHSM DSA 키 페어 생성
AWS CloudHSM key_mgmt_util 도구의 genDSAKeyPair 명령을 사용하여 하드웨어 보안 모듈(HSM)에 디지털 서명 알고리즘
key_mgmt_util 명령을 실행하기 전에 먼저 key_mgmt_util을 시작하고 HSM에 Crypto User(CU)로 로그인해야 합니다.
작은 정보
생성한 키의 속성(예: 형식, 길이, 레이블, ID)을 찾으려면 getAttribute를 사용합니다. 특정 사용자의 키를 찾으려면 getKeyInfo를 사용합니다. 속성 값에 따라 키를 찾으려면 findKey를 사용합니다.
구문
genDSAKeyPair -h genDSAKeyPair -m
<modulus length>
-l<label>
[-id<key ID>
] [-min_srv<minimum number of servers>
] [-m_value<0..8>
] [-nex] [-sess] [-timeout<number of seconds>
] [-u<user-ids>
] [-attest]
예시
이 예제에서는 genDSAKeyPair를 사용하여 DSA 키 페어를 생성하는 방법을 보여 줍니다.
예 : DSA 키 페어 생성
이 명령은 라벨이 DSA
인 DSA 키 페어를 생성합니다. 출력은 퍼블릭 키의 키 핸들이 19
이고 프라이빗 키의 핸들이 21
임을 보여 줍니다.
Command:
genDSAKeyPair -m 2048 -l DSA
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 19 private key handle: 21 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
예 : 세션 전용 DSA 키 페어 생성
이 명령은 현재 세션에서만 유효한 DSA 키 페어를 생성합니다. 이 명령은 필수 (고유하지 않은) 라벨 외에 DSA_temp_pair
의 고유한 ID를 할당합니다. 세션 전용 토큰 서명 및 확인을 위해서는 이와 같은 키 페어를 생성하는 것이 좋습니다. 출력은 퍼블릭 키의 키 핸들이 12
이고 프라이빗 키의 핸들이 14
임을 보여 줍니다.
Command:
genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 12 private key handle: 14 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
키 쌍이 세션에만 존재하는지 확인하려면 1
(참) 값과 함께 findKey의 -sess
매개 변수를 사용합니다.
Command:
findKey -sess 1
Total number of keys present 2 number of keys matched from start index 0::1 12, 14 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
예 : 추출할 수 없는 공유 DSA 키 페어 생성
이 명령은 DSA 키 페어를 생성합니다. 프라이빗 키는 세 명의 다른 사용자와 공유되며, HSM에서 내보낼 수 없습니다. 퍼블릭 키는 모든 사용자가 사용할 수 있으며, 항상 추출이 가능합니다.
Command:
genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 11 private key handle: 19 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
예 : 쿼럼 제어 키 페어 생성
이 명령은 라벨이 DSA-mV2
인 DSA 키 페어를 생성합니다. 이 명령은 -u
파라미터를 사용하여 프라이빗 키를 사용자 4 및 6과 공유합니다. 이 명령은 -m_value
파라미터를 사용하여 프라이빗 키를 사용하는 암호화 작업에 대한 최소 2개의 승인을 쿼럼에 요청합니다. 또 -attest
파라미터를 사용하여 키 페어가 생성되는 펌웨어의 무결성을 확인합니다.
출력은 이 명령이 키 핸들이 12
인 퍼블릭 키와 키 핸들이 17
인 프라이빗 키를 생성하며, 클러스터 펌웨어에서의 증명 확인에 통과했음을 보여 줍니다.
Command:
genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 12 private key handle: 17 Attestation Check : [PASS] Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
이 명령은 개인 키(키 핸들 17
)에 대해 getKeyInfo를 사용합니다. 출력은 키를 현재 사용자(사용자 3)가 소유하고 있고 사용자 4 및 6(그 외에는 없음)과 공유하고 있음을 확인합니다. 또한 쿼럼 인증이 활성화되어 있고 쿼럼 크기가 2라는 것도 보여 줍니다.
Command:
getKeyInfo -k 17
Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS Owned by user 3 also, shared to following 2 user(s): 4 6 2 Users need to approve to use/manage this key
파라미터
- -h
-
명령에 대한 도움말을 표시합니다.
필수 항목 여부: 예
- -m
-
모듈러스 길이를 비트 단위로 지정합니다. 유일한 유효 값은
2048
입니다.필수 항목 여부: 예
- -l
-
키 페어에 대해 사용자 정의 레이블을 지정합니다. 문자열을 입력합니다. 같은 레이블이 페어의 두 키에 적용됩니다.
label
에 허용되는 최대 크기는 127자입니다.키 식별을 지원하는 임의의 문구를 사용할 수 있습니다. 레이블이 고유할 필요는 없으므로 이를 그룹에 사용하여 키를 분류할 수 있습니다.
필수 항목 여부: 예
- -id
-
키 페어에 대해 사용자 정의 식별자를 지정합니다. 클러스터에 고유한 문자열을 입력합니다. 기본값은 빈 문자열입니다. 사용자가 지정하는 ID는 페어의 두 키에 모두 적용됩니다.
기본값: ID 값이 없음.
필수 항목 여부: 아니요
- -min_srv
-
-timeout
파라미터의 값이 만료되기 전에 키가 동기화되는 HSM의 최소 개수를 지정합니다. 할당된 시간에 지정된 서버 개수에 키가 동기화되지 않으면 키가 생성되지 않습니다.AWS CloudHSM은 자동으로 모든 키를 클러스터의 각 HSM과 동기화합니다. 이 과정을 더 빠르게 진행하려면
min_srv
의 값을 클러스터의 HSM 개수보다 적게 설정하고 낮은 제한 시간 값을 설정합니다. 그러나 일부 요청은 키를 생성하지 않을 수 있음을 주의하십시오.기본값: 1
필수 항목 여부: 아니요
- -m_value
-
페어의 프라이빗 키를 사용하는 모든 암호화 작업을 승인해야 하는 사용자의 수를 지정합니다.
0
에서8
까지의 값을 입력합니다.이 파라미터는 프라이빗 키에 대해 쿼럼 인증 요구 사항을 설정합니다. 기본값
0
은 키에 대한 쿼럼 인증 기능을 비활성화합니다. 쿼럼 인증이 활성화되면 지정된 사용자 수는 토큰에 서명하여 그 프라이빗 키를 사용하는 암호화 작업과 그 프라이빗 키를 공유 또는 공유 해제하는 모든 작업을 승인해야 합니다.키의
m_value
를 찾으려면 getKeyInfo를 사용합니다.이 파라미터는 명령의
-u
파라미터가m_value
요구 사항을 충족할 만큼 충분히 많은 사용자와 키 페어를 공유할 때만 유효합니다.기본값: 0
필수 항목 여부: 아니요
- -nex
-
프라이빗 키를 추출할 수 없도록 합니다. 생성된 프라이빗 키는 HSM에서 내보내기를 수행할 수 없습니다. 퍼블릭 키는 항상 추출할 수 있습니다.
기본값: 키 페어의 퍼블릭 및 프라이빗 키를 모두 추출할 수 있습니다.
필수 항목 여부: 아니요
- -sess
-
현재 세션에만 존재하는 키를 생성합니다. 세션이 종료된 후에는 키를 복구할 수 없습니다.
다른 키를 암호화한 후 다시 재빨리 암호를 해독하는 래핑 키와 같이 키가 일시적으로 필요한 경우 이 파라미터를 사용합니다. 세션 종료 후에 암호를 해독해야 할 수 있는 데이터를 암호화하는 데 세션 키를 사용해서는 안 됩니다.
세션 키를 영구적인 (토큰) 키로 변경하려면 setAttribute를 사용합니다.
기본값: 키는 영구적입니다.
필수 항목 여부: 아니요
- -timeout
-
명령이
min_srv
파라미터에서 지정한 HSM의 수에 키가 동기화하기를 기다리는 시간(단위: 초)을 지정합니다.이 파라미터는 명령에서
min_srv
파라미터도 사용되는 경우에만 유효합니다.기본값: 제한 시간 없음. 명령은 무기한 기다리다가 최소 서버 개수에 키가 동기화될 때만 복귀합니다.
필수 항목 여부: 아니요
- -u
-
지정된 사용자와 페어의 프라이빗 키를 공유합니다. 이 파라미터는 다른 HSM CU(Crypto User)에게 암호화 작업에 프라이빗 키를 사용할 수 있는 권한을 부여합니다. 퍼블릭 키는 공유하지 않고도 모든 사용자와 공유할 수 있습니다.
u 5,6
과 같이 쉼표로 구분된 HSM 사용자 ID 목록을 입력합니다. 현재 사용자의 HSM 사용자 ID는 포함하지 마십시오. HSM에서 CU의 HSM 사용자 ID를 찾으려면 listUsers를 사용하십시오. 기존 키를 공유 및 공유 해제하려면 cloudhsm_mgmt_util에서 shareKey를 사용합니다.기본값: 현재 사용자만 프라이빗 키를 사용할 수 있습니다.
필수 항목 여부: 아니요
- -attest
클러스터가 실행되는 펌웨어가 변조되지 않았는지 확인하는 무결성 점검을 실행합니다.
기본값: 증명 점검은 없음.
필수 항목 여부: 아니요