파이썬 스크립트를 이용한 네이티브 워크스페이스 키 백업 및 복구(Native Workspace Key Backup and Recovery with Python Script)
원본 URL: https://support.fireblocks.io/hc/en-us/articles/360012223159-Native-Workspace-Key-Backup-and-Recovery-with-Python-Script
참고
이 문서는 키 생성 및 재해 복구에 사용되는 Python 스크립트(Legacy)에 대해 다룹니다. 그러나 네이티브 복구 유틸리티(Native Recovery Utility) 도구를 사용하는 것을 강력히 권장합니다 (06-generating-workspace-key-backup-package.md참조).Python 스크립트는 향후 폐기될 예정입니다. 새 Recovery Utility 도구는 출금, 파생, 키 백업 생성에 대해 더 간단한 사용자 경험을 제공합니다. 오프라인 머신으로 macOS 또는 Ubuntu (M1/M2 칩)를 사용할 수 없는 경우에만 아래 지침을 따르세요.
개요
워크스페이스 키 백업 및 복구 프로세스는 워크스페이스 전체 개인키의 두 클라우드 키 공유분이 Fireblocks의 별도 데이터 센터에만 저장되지 않도록 보장합니다. 두 키 공유분이 Fireblocks 서버에만 저장되지 않음으로써, Fireblocks Vault에서 자산을 복구해야 할 경우 워크스페이스 전체 개인키에 대한 완전한 통제권을 유지할 수 있습니다.
중요
워크스페이스의 전체 개인키에 대한 워크스페이스 키 백업을 반드시 실행해야 합니다.
Fireblocks MPC 지갑을 사용할 때 고객사는 자산에 대한 직접 수탁을 유지합니다. 자기 수탁자로서 개인키에 대한 독립적 접근성을 보장할 책임이 있습니다. 워크스페이스 생성 후 14일 이내에 키를 백업할 것을 강력히 권장합니다.
워크스페이스 키 백업 및 복구 프로세스
워크스페이스 키 백업 및 복구는 두 개의 프로세스로 구성됩니다:
- 테스트넷 워크스페이스에서 설정 및 테스트
- 프로덕션 워크스페이스에서 재해 복구(DR) 계획 실행
테스트넷 워크스페이스에서의 워크스페이스 키 복구
중요
프로덕션 워크스페이스의 전체 개인키를 백업하는 과정은 자산을 위험에 노출시킬 수 있습니다. 이러한 이유로 프로덕션 워크스페이스 키를 사용한 테스트는 권장하지 않습니다. 워크스페이스 키 백업 및 복구 프로세스는 항상 테스트넷 워크스페이스에서 테스트해야 합니다.
Fireblocks 고객에게는 테스트넷 워크스페이스가 제공되어야 합니다. 제공되지 않았다면 Customer Success Manager에게 문의하여 백업 시뮬레이션을 수행할 수 있는 워크스페이스를 받으세요.
워크스페이스 키 백업 생성 방법 (Python 스크립트, Legacy)
1단계: 오프라인 복구 장비 설정
조직에서 워크스페이스 키 백업 패키지를 요청하기 전 필수 단계:
- 워크스페이스 Owner가 Fireblocks 복구 패스프레이즈를 즉시 사용 가능하도록 준비합니다. 기억하지 못하는 경우 백업 수행 전 재설정할 수 있습니다.
- 오프라인 백업을 위한 안전한 에어갭 머신(air-gapped machine)을 설정합니다. 타사 라이브러리 및 의존성에 대한 의존도가 최소이기 때문에 Ubuntu 18.04 이상을 권장합니다. 그러나 컴퓨터가 오프라인 상태를 유지하고 다시 온라인에 연결되지 않는다면 다른 OS도 적합합니다. 추가 보안 조치:
- 필요한 허가된 인력만 접근 가능하게 함
- 매우 강력한 암호로 보호
- 모든 파티션 암호화
- 사용하지 않을 때 물리적 금고에 보관
- 오프라인 머신으로/으로부터 파일을 안전하게 전송하기 위한 전용 하드웨어(USB 메모리 스틱 등) 구매를 권장합니다.
- 오프라인 머신에서 Fireblocks의 "Key Backup and Recovery Tool" GitHub 저장소로 이동하여 지침에 따라 도구를 설치 및 실행합니다.
- 복구 프로세스 중 생성할 별도의 키페어 패스프레이즈를 보관할 물리적 금고를 사용하여, 주기적 백업 검증 또는 실제 복구 시 사용합니다.
기본 설정 (Basic setup)
기본 설정에는 다음 장비가 필요합니다:
- 금고에 보관할 오프라인 머신 1대 — 세 가지 주요 구성 요소를 보유 및 실행:
- Fireblocks Support가 제공한 워크스페이스 키 백업 패키지
- Fireblocks Key Backup and Recovery Tool
- 복구 키페어 저장용 두 번째 오프라인 머신 또는 안전한 이동식 미디어 (USB 메모리 스틱 등)
- 복구 패스프레이즈 저장용 또 다른 오프라인 머신, 안전한 이동식 미디어, 또는 종이
- 오프라인 머신으로/으로부터 파일 전송용 안전한 USB
고급 설정 (Advanced setup)
기본 설정과 동일한 오프라인 머신 3대를 사용하되, 중복성을 위해 모든 파일을 추가 전용 오프라인 머신에도 복사합니다. 고급 설정 프로세스에서도 파일 전송에는 단 하나의 안전한 USB 메모리 스틱만 사용할 수 있습니다.
2단계: 복구 키페어 생성
Fireblocks Key Backup and Recovery Tool은 AES-128 암호화 표준을 사용합니다. 도구를 통해 실행하는 대신 OpenSSL을 사용하여 AES-128, AES-196, AES-256 암호화 수준을 사용할 수도 있습니다.
복구 키페어는 두 클라우드 키 공유분을 암호화하고 오프라인 환경에서 복호화할 수 있게 합니다. 지정된 오프라인 머신에서 명령 프롬프트를 사용하여 다음 단계를 완료하세요.
참고: Windows 머신을 사용하는 경우 디바이스에 OpenSSL을 먼저 설치해야 합니다.
- Fireblocks Key Backup and Recovery Tool 실행:
bash ./fireblocks_key_backup_and_recovery.py - "What do you want to do?" 프롬프트에서 Create a recovery keypair를 선택하고 지침을 따릅니다.
경고
키페어 패스프레이즈를 반드시 암기하고 별도의 안전한 장소(예: 금고)에 사본을 보관하세요.
이 프로세스가 완료되면 복구 키페어가 도구 실행 디렉터리에 저장됩니다.
3단계: Fireblocks 콘솔로 복구 공개 키 전송
백업 프로세스를 시작하기 전에 "Security and Maintenance Best Practices" 문서를 검토하여 권장 역할을 이해하세요.
네이티브 인하우스 키 백업 프로세스를 완료하려면 다음 단계를 따르세요:
- Owner가 공개 키 파일을 콘솔에 접근할 수 있는 온라인 머신으로 추출합니다.
- Fireblocks 콘솔에서 Owner가 Settings > General > In-house key backup으로 이동한 다음 Create backup을 선택합니다.
- 위에서 생성한 공개 키 파일을 선택한 후 Upload key를 선택합니다.
- 워크스페이스 Owner는 Admin Quorum과 함께 Fireblocks 모바일 앱에서 공개 복구 키를 검증 및 승인해야 한다는 확인 이메일을 받습니다.
- Admin Quorum은 Fireblocks 모바일 앱을 사용하여 키를 승인하라는 알림을 받습니다. 48시간 이내에 승인하지 않으면 이 프로세스를 다시 시작해야 합니다.
- 요청이 승인 대기 중인 동안 노란색 Awaiting approval 배지를 선택하면 남은 승인 요청과 여전히 승인할 수 있는 Admin이 표시됩니다.
- 아직 Fireblocks Key Backup and Recovery Tool을 실행하지 않았다면 아래 명령어를 사용하여 실행합니다. 도구 사용 전 필수 설정 단계를 완료했는지 확인하세요.
bash ./fireblocks_key_backup_and_recovery.py - 첫 번째 프롬프트 "What do you want to do?"에서 네 가지 옵션을 볼 수 있습니다. 옵션 2 - Verify the public backup key (for self-service backups)를 선택합니다. (이 단계의 목적은 도구에서 생성된 공개 키가 Admin Quorum이 모바일 앱에서 보는 것과 동일한지 검증하는 것입니다.)
- 위에서 생성한 공개 키 파일 이름을 입력합니다.
- 검증 방법을 선택합니다:
- (a) Display a scannable public key QR code:
pub_key_qr.png파일이 생성되어 자동으로 열립니다. - (b) Obtain a public key short phrase: 8자 짧은 구문(short phrase)이 도구에서 생성되어 표시됩니다.
- (a) Display a scannable public key QR code:
- Admin Quorum이 워크스페이스 Owner와 협력하여 Fireblocks 모바일 앱의 프롬프트에 따라 키 백업을 검증 및 승인합니다:
- View > Get Started > I'm ready to approve 선택
- Admin Quorum이 승인 방법(QR 코드 스캔 또는 짧은 키 입력)을 선택하고 Owner에게 알림
- QR 코드를 스캔하거나 짧은 키를 입력 (적합한 방법에 따라)
- 검증이 성공하면 Fireblocks 모바일 앱에서 키가 검증되었음을 알림
- 공개 키가 일치하면 Fireblocks 모바일 앱에서 Approve를 선택합니다. 일치하지 않으면 Deny를 선택합니다 — 이는 Owner가 실수로 잘못된 복구 공개 키를 수정하거나 업로드했을 수 있음을 의미합니다.
- Admin Quorum과 Owner가 Fireblocks 모바일 앱 PIN 코드를 입력하고 생체 인식 인증을 완료하여 요청을 승인합니다.
- Fireblocks 콘솔에서 백업 상태가 Awaiting completion으로 업데이트됩니다. Admin이 Deny를 선택한 경우 상태는 Denied로 업데이트됩니다.
- 모바일 앱에서 승인 프로세스가 완료되면 워크스페이스 Owner는 이메일로 암호화된 키트를 받으며, 이를 다운로드하여 에어갭 머신으로 전송해야 합니다.
- 이메일의 지침을 수행한 후 콘솔에서 백업을 완료로 표시합니다.
- 콘솔에서 상태가 Completed로 업데이트됩니다.
이제 인하우스 키 백업 패키지 생성을 완료했습니다. 복구 패키지 검증에 대해서는 "Verifying a recovery package" 문서를 참조하세요.