GPG 개인 키를 어떻게 안전하게 백업합니까?


25

pass 라는 매우 흥미로운 CLI 암호 관리자를 찾았습니다 . 이를 사용하려면 GPG2 키 페어를 생성하고 도구를 사용하여 gpg2 암호화 파일에 비밀번호를 저장하는 데 도움이됩니다.

파일을 암호화하려면 (새 비밀번호 추가) 공개 키를 사용합니다.

파일을 해독하려면 (저장된 비밀번호 검색) 비밀번호가 필요한 개인 키를 사용합니다.

이것은 잘 작동합니다.

도구가 내 비밀번호를 모두 저장 했으므로이 모든 데이터를 백업하여 컴퓨터가 고장 나더라도 모든 온라인 계정이 잠기지 않도록하고 싶습니다.

이 도구는 git과 잘 통합되어 .gpg 파일을 다른 컴퓨터의 개인 git repo로 쉽게 푸시 할 수있었습니다. 내가 이해 한 바에 따르면,이 파일들은 암호 해독을위한 개인 키 없이는 쓸모가 없습니다.

내 질문은 이것입니다 : 개인 및 공개 키를 안전한 방법으로 백업하여 필요한 경우 다른 컴퓨터에서 "데이터베이스"를 복원 할 수 있습니까? git repo에 공개 키와 개인 키를 모두 저장하고 나중에 다른 컴퓨터에서 가져올 수 있습니까? 아니면 개인 키를 개인 로컬 자식 저장소에 저장하는 것이 안전하지 않은 관행으로 간주됩니까? git repo에 액세스하려면 암호가 필요합니다. 개인 키는 암호화되어 있으며 열려면 암호가 필요합니다. 그러면 안전하게 보관할 수 있습니까?

답변:


10

개정 제어 시스템에 PGP 개인 키를 저장해도 그 자체로 중요한 보안 문제는 없습니다. 개인 키를 로컬 비공개 (게시되지 않은) git 리포지토리에 저장하면 개인 키를 동일한 컴퓨터에 있지만 git 리포지토리 외부에 저장하는 것과 비교하여 보안 상 중요한 의미는 없습니다.

내가 생각할 수있는 유일한 문제는 개인 키를 버전 제어 방식으로 저장하면 발생합니다. 이전 버전을 어떻게 든 파괴 할 수 없다면 키 암호 문구 변경으로 인해 그렇지 않은 경우보다 훨씬 적은 보호 기능이 필요하다는 것입니다.

자체 보안 영향 으로 얻을 수있는 것은 다른 사람이 키 파일에 액세스 할 수있는 방식으로 개인 키 저장 하는 것입니다. 이러한 상황에서 공격자와 키 사이에있는 것은 암호의 강점입니다.

스토리지 보안이 완벽하지 않다는 사실을 인식하고 사람들이 클라우드 서비스 (문자 그대로 "다른 사람의 컴퓨터"를 의미 함)로 정기적으로 백업하는 현대적인 환경에서는 일반적으로 암호 키로 비밀 키를 보호합니다. 예를 들어 gpg-agent를 실행하더라도 동일한 작업을 수행한다는 것을 신뢰합니다.

결론은 암호문이 좋은 한 다른 사람의 컴퓨터에 암호화 된 키 파일의 사본을 저장하는 것조차 비교적 안전해야한다는 것입니다.

그러나 다음과 같은 경우가 꽤 큰입니다 대부분의 사람들의 암호 또는 암호 구가 그들에게 갈 균열에까지 전산화 시도로 오히려 형편이다. GnuPG는 당신이 그것을 줄 것과 물론이 할 수있는 일을하려고 꽤 길이로 이동하지만, 고체 데이터 보호를 위해, 당신은 필요 좋은 암호를, 그리고 당신이 필요 로 설정하기 전에 망할 놈의 저장소에 개인 키를 가져. 키를 가져온 후에는 공격자가 원칙적으로 모든 버전을 공격 할 수 있으며 특정 개정판에 품질이 낮은 암호가 있다고 생각할만한 이유가있을 수 있습니다. 따라서 암호를주의해서 선택하십시오. 암호를 처리하는 방법에 대한 작은 입문서를 작성했습니다.기억해야 할 비밀번호 나 비밀번호 문구를 선택하는 방법에 대한 제안은 유용 할 수 있습니다.


6

최근 비슷한 설정을 고려하고 있습니다. 당신의 질문을 다루기 전에, 내가 그것에 대해 귀찮게하는 것을 지적하겠습니다. 이것에 대한 자세한 설명은 여기에 있습니다 . 단, Pass가 GPG를 호출 하면 후드 아래에서 불필요한 비대칭 (RSA / EC) 암호를 수행합니다. 불필요 -여기에 신뢰할 수없는 당사자가 없기 때문에.

비대칭 암호화는 대칭 암호화보다 미래 보장성이 낮기 때문에 성가신 일입니다. 예를 들어, 오늘날의 비대칭 암호화는 아직 존재하지 않는 충분히 큰 양자 컴퓨터에 의해 파괴됩니다. 더 일반적으로, 비대칭 암호화는 대칭 수학보다 훨씬 더 해결하는 방법을 모르는 "수학 문제"에 의존합니다.

예를 들어 (잠재적) 양자 공격은이 공개 키를 필요로하기 때문에 Pass와 함께 사용 된 GPG 공개 키를 비공개로 유지하는 것이이 취약점을 완화하기 위해 할 수있는 최소한의 방법 입니다. 여기를 참조하십시오 .

실제 질문에 따르면, git repo (비밀번호 포함)를 공개 또는 비공개로 저장할 것인지 확실하지 않습니다. 비공개로 유지하려면 원하는 것을 거의 수행하고 GPG 개인 키의 보안을 저장소를 백업하는 매체의 보안으로 줄이십시오. 그러나 그것은 닭고기와 달걀 문제가 될 수 있습니다. 저장소가 비공개 인 경우 충돌이 발생했을 때 어떻게 되 찾을 수 있습니까? 즉, "나쁜 충돌"의 경우에, 당신은 검색 할 뭔가가 있어야합니다 첫째 . 따라서 git repo를 비공개로 유지하고 싶을 수도 있지만 GPG 키를 다른 것과 상관없이 먼저 검색 할 수있는 방식으로 백업하십시오.

오프라인 백업 솔루션은 수많은 변호사, 지하실 등 입니다. 여기를 참조하십시오 . 그러나 지하실은 모든 사람을위한 것이 아니므로 온라인 솔루션을 제안하겠습니다.

  • 수년간 타이핑하지 않는 매우 강력한 암호를 만드십시오. 제안 : 개인적으로 중요한 문구가 있거나 문구를 찾아야 할 경우 사본이 소진되지 않은 책에서 길고 기억에 남는 철자가 잘못되었습니다.

  • 내 보낸 GPG 비밀 키와 SSH 자격 증명으로 타르볼을 만듭니다.

  • 비밀번호 문구를 사용하여 대칭으로 암호화하십시오 gpg --symmetric --armor.

  • 무료 git 호스팅 계정을 만듭니다.

  • 신임 정보없이 복제 할 수 있는 공용 저장소를 작성하십시오 .

  • 거기에 암호화 및 장갑 타르 볼을 넣습니다.

"나쁜 충돌"후에 검색하려면

  • 라이브 USB 스틱을 부팅하십시오.

  • 공개 리포지토리 복제

  • gpg --decrypt.

대칭 암호는 좀비에 대한 주요 보호 기능이됩니다. 사람들은 때때로 암호문을 선택할 때 의심의 혜택을 당신이나 익명의 독자에게주지 않습니다. 그러나 암호가 좋으면 대칭 암호화가 견고해야합니다.

GPG 개인 키를 내 보내면 자체 암호로 암호화됩니다. 최신 버전의 GPG는 암호화되지 않은 내보내기를 허용하지 않습니다. "일반"GPG 암호를 여기에서 사용할 수 있습니다. 충돌이 발생할 경우 GPG 개인 키에 액세스하려면 두 암호가 모두 필요합니다.


4

내가 사용하는 다른 옵션은 다음과 같습니다 . 키를 종이에 인쇄하십시오 .

자세한 내용은 링크 된 답변에 있습니다. 가장 큰 장점은 다음과 같습니다. 원하는 곳 어디에서나 쉽게 보관할 수 있으며,보기 만해도 모양이 양호한 지 확인할 수 있습니다. 그러나 가장 큰 장점은 실제로 백업을 저장하고 가져가는 장소에 실제로 있지 않으면 아무도 해킹 할 수 없다는 것입니다.


내가 알 수있는 한,이 경우 용지는 이동식 미디어보다 유리하지 않으며 키 를 복구 해야하는 경우 키에 대한 모든 횡설수설을 입력 해야한다는 단점이 있습니다 .
MAP

장점은 훨씬 내구성이 뛰어나서 컴퓨터 없이도 눈으로 읽을 수 있는지 확인할 수 있다는 것입니다. 복구 할 수없는 데이터 오류가있는 사용한 모든 플로피 디스크, CD 또는 DVD에 대해 1 달러가 있다면 그 돈으로 휴일을 갈 수 있습니다. 아무 것도 입력 할 필요가 없습니다! PaperBack은 오류 수정이 추가 된 2D 코드로 인쇄합니다. 당신은 그것을 스캔하거나 사진을 찍고 프로그램은 이전에 당신이 그것을 인쇄하기 위해 당신이 그것을 준대로 돌아갑니다.
Josef는 Reinstate Monica

물론 여전히 그렇게 할 수있는 기술이 있다고 가정합니다.
MAP

글쎄, 20 년 안에 오픈 소스 소프트웨어의 사본으로 Wine과 함께 Windows VM 또는 Linux를 쉽게 얻을 수있는 확률은 하드웨어가 플로피 디스크 / CD를 읽을 수있는 확률보다 훨씬 높다고 생각합니다. /DVD. 내가 1990 년을했다고 가정 해 봅시다. 이제는 브라우저에서 소프트웨어를 실행할 수도 있습니다 . 그러나 현대 PC에서 5 1/4 인치 플로피를 읽을 수있는 하드웨어를 얻으려고 노력하는 것은 행운입니다.
Josef는 Reinstate Monica

2

이에 대한 또 다른 대답은 "오프라인"입니다. 즉, 컴퓨터에 연결되지 않은 안전한 장소에 저장합니다. 은행의 안전 금고에 모든 키의 전체 암호화되지 않은 복사본을 플로피 디스크에 보관합니다 (오랫 동안 이런 방식으로 사용하고 있습니다). 은행의 미디어에서 암호화되지 않은 상태로 유지하는 이유는 키를 "잃어버린"잠재적 인 시나리오 중 하나는 패스 문구를 잊어 버리는 것입니다 (내 패스 문구에는 이상한 문장 부호와 철자가 많이 포함되어 있고 그 중 하나만 잊어 버리면 쓸 수 없는). 나는 그 사본에서 그것을 되 찾을 필요가 없었지만 최악의 계획을 세웠다.

또한 미디어에 대한 주요 취소와 상속인에게 더 이상 사용할 수없는 경우이를 어떻게 처리해야하는지 알려주는 메모가 있습니다.


마스터 서명 개인 키를 백업하면 해지 인증서를 생성하는 데 사용할 수 없습니까? 해지 인증서를 백업하는 것이 어떤 시나리오에서 유용합니까?
Matei David

아 네,하지만 당신은 내가 컴퓨터를 잘 아는 사람이 요청을 실행하는 사람이 얼마나 될지 확신 할 수 없다는 것을 이해해야합니다. 따라서 해지가 이미 생성되어 있고 "이 파일을 첨부 한 상태로 전자 메일 보내기"지침이 잘못 관리 될 가능성이 적습니다.
MAP

@MateiDavid 처음 키 페어를 생성 할 때 해지 인증서를 생성하고 해당 해지 인증서를 저장하면 키를 사용할 수없는 경우 키를 해지 할 수 있습니다. 이러한 상황이 발생할 수있는 유효한 시나리오가 있습니다. 물론 해지 인증서를 잘 보호해야합니다. 해지 인증서를 발급받은 사람은 누구나 인증서를 게시 할 수 있으므로 키 페어를 해지 할 수 있기 때문입니다. 그래도 해지 인증서가 OP의 상황에 어떻게 적용되는지 확실하지 않습니다.
CVn

예, 우리는 쥐 구멍을 내려갔습니다. 사과합니다. 해지 인증서에 대한 언급은 내가 취한 단계를 완벽하게 설명하기위한 것이며 원래의 질문과는 아무 관련이 없습니다.
MAP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.