비트코인의 신기술이 업데이트되면 어떻게 클라이언트를 검증할 수 있나요? 많은 분들이 클라이언트 검증 방법을 모르고 계시네요. 이 글이 도움이 되셨으면 좋겠습니다. .
설치한 비트코인 클라이언트가 안전한지 확인하는 세 가지 중요한 단계가 있습니다.
OpenPGP 키를 확인하세요.
서명을 확인하세요.
문서 자체를 확인하십시오.
예를 들어, 나는 ppc64le Linux용 Bitcoin Knots v0.19.0.1.knots20200104 클라이언트에서 내 서명을 확인하는 반면, 다른 사람의 서명이나 기타 파일을 확인하려면 명령줄을 다음을 사용하도록 변경해야 합니다. 지문 또는 파일 이름.
0단계: 암호화 소프트웨어 GNU Privacy Guard(GPG) 설치
시작하기 전에 파일 암호화 확인에 필요한 GPG(GNU Privacy Guard) 도구가 설치되어 있는지 확인해야 합니다.
일반적으로 운영 체제 공급업체를 통해 설치되는 Linux 기반 시스템을 실행하는 경우(최근에는 일반적으로 기본으로 설치됨) gpg –version을 실행하여 이를 확인할 수 있습니다. 그렇지 않은 경우 다음 명령 중 하나를 사용하여 설치해 보십시오(실패할 경우 다음 명령으로 이동).
apt-get 설치 gnupg
dnf 설치 gnupg2
냠 gnupg2를 설치하세요
이머지 앱 크립트/gnupg
팩맨 -S gnupg
apk gnupg 추가
불행하게도 Windows 또는 macOS 운영 체제를 사용하는 경우 공식 웹사이트에서 GnuPG를 다운로드할 수 있지만 이러한 다운로드를 확인할 수 있는 안전한 방법은 없으며 물론 서명도 제공합니다. 하지만 여기에 문제가 있습니다. 문제는 좋은 사본을 설치할 때까지 이러한 서명을 확인할 수 없다는 것입니다!
1단계: OpenPGP 키 확인
이 단계는 아마도 확인 과정에서 가장 어려운 부분일 것입니다. 실제로 사용하고 있는 키가 신뢰할 수 있는 사람이 발급한 올바른 키인지 확인해야 합니다. 조심하지 않으면 가짜 "Luke Dashjr" 열쇠를 얻을 수도 있습니다!
각 OpenPGP 키에는 40개의 16진수 문자(숫자 0-9 및 aF)로 구성된 "지문"이 있으며 읽기 쉽게 공백이 표시되는 경우도 있습니다. 사용하는 키 지문이 신뢰할 수 있는 서명자의 지문과 일치하는지 확인하면 올바른 키를 가지고 있는 것입니다.
열쇠 또는 지문 받기
열쇠를 확인하는 가장 안전한 방법은 직접 만나 열쇠의 '지문'을 확인하는 것입니다. 자신의 키 지문을 기억하는 사람이 거의 없기 때문에 우리는 자신의 노트북이나 휴대폰에서 지문을 찾아야 할 수도 있습니다. 때로는 (보통 컨퍼런스에서) "키 서명자"가 있을 수도 있습니다. 지문이 있는 경우 각 참가자는 자신의 지문을 소리내어 읽거나 모든 사람이 보고 들은 내용이 올바른지 수동으로 확인합니다. 이런 회의에 참여하게 된다면 한 번에 많은 키를 확인할 수 있는 좋은 방법입니다.
관심이 없거나 직접 만날 기회가 없다면 이상적으로는 여러 소스에서 키를 확인해야 합니다. 때때로 회의에서는 슬라이드에 주요 지문이 나타날 수 있는 프레젠테이션 비디오를 게시합니다. 물론, '딥페이크' 등 신기술의 존재로 인해 영상 속 슬라이드는 쉽게 조작될 수 있다는 점을 유의하시기 바랍니다.
개발자는 일반적으로 자신의 웹사이트에 키나 지문을 게시하거나 다른 방법으로 게시할 수도 있습니다(예: 내 키나 지문은 내 개인 웹사이트인 bitcoinknots.org, bitcoin.org 및 GitHub에 있습니다).
신뢰하는 소프트웨어 사본을 설치한 경우 업데이트를 확인하는 데 필요한 키가 포함되어 있는 경우도 있습니다(현재 비트코인 코어에는 소스 코드만 포함되어 있음).
키 파일의 지문 확인
키 파일의 지문을 보려면 다음 명령을 사용할 수 있습니다.
gpg –import-options 표시 전용 –import –지문 인쇄 포함 luke-jr.asc
그러면 키 파일에 대한 많은 정보가 상단에 관련 정보와 함께 출력됩니다.
pub rsa8192 2012-03-23 [SC] [만료일: 2020-06-09]
E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
이 예에서는 E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F가 내 키 지문입니다.
참고: GPG에서 키가 만료되었다고 표시되면 괜찮습니다. 2단계에서 동일한 키의 최신 버전으로 업데이트하면 일반적으로 만료 날짜가 연장됩니다.
확인된 키 가져오기
키를 확인하는 방법에 관계없이 향후 업데이트에서 동일한 키가 사용되었는지 확인할 수 있도록 어떤 키를 사용했는지 기억해야 합니다. 키 확인 단계(안전하지 않음)를 건너뛰더라도 최소한 업데이트에 동일한 서명자가 있는지 확인합니다.
올바른 키가 있다고 확신하면 다음과 같이 키를 가져올 수 있습니다(원하는 키가 포함된 파일 이름으로 luke-jr.asc를 바꾸십시오).
gpg –import < 루크-jr.asc
또는 다음과 같이 지문만 있는 경우(사용하려는 키의 지문을 입력하세요!):
gpg –키서버 hkp://keyserver.ubuntu.com –recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
2단계: 서명 확인
이제 확인에 사용할 키를 알았으므로 다음 단계는 서명이 유효한지 확인하는 것입니다.
이 단계를 진행하기 전에 서명자 키 사본이 최신인지 확인해야 합니다. 이렇게 하지 않으면 키가 만료되었다는 메시지가 나타날 수 있습니다. 실행(원하는 지문 사용):
gpg –키서버 hkp://keyserver.ubuntu.com –refresh-key E463A93F5F3117EEDE6C7316BD02942421F4889F
다음으로 (검사 중인 프로그램 파일 외에도) 파일 지문 목록이 포함된 ".assert" 파일과 해당 목록의 서명이 포함된 ".assert.sig" 파일이라는 두 개의 파일이 필요합니다. 우리가 하는 일은 프로그램 파일 자체에 서명하는 것이 아니라 모든 파일을 지문 채취한 다음 해당 목록에 서명하는 것이기 때문입니다. 따라서 두 파일이 모두 필요합니다.
비트코인 코어의 "assert" 파일 쌍은 여기에 게시되어 있습니다: https://github.com/Bitcoin-Core/gitian.sigs/find/master;
비트코인 매듭에 대한 "assert" 파일 쌍은 여기에 게시되어 있습니다: https://github.com/bitconinkots/gitian.sigs/find/Knots
각 서명자마다 별도의 파일 쌍이 있다는 점에 유의하세요. 여러 사람이 파일에 서명했는지 확인하는 경우(필요함) 각 파일 쌍을 확인해야 합니다. 또한 확인하려는 파일 버전을 받고 있는지 확인해야 합니다!
목록에서 원하는 파일을 찾으면 링크를 클릭하여 브라우저에서 파일을 연 다음 "Raw" 또는 "다운로드" 버튼을 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 링크 저장"을 선택하세요.
이 두 개의 "assert" 파일이 있으면 다음을 실행하여 서명을 확인할 수 있습니다(파일 이름을 특정 .assert.sig로 조정).
gpg – bitcoin-core-linux-0.19-build.assert.sig 확인
이 단계가 성공하면 다음 결과를 얻게 됩니다.
gpg: 서명 작성 2020년 1월 19일 일요일 오전 3:47:15 UTC
gpg: RSA 키 E463A93F5F3117EEDE6C7316BD02942421F4889F 사용
gpg: “Luke Dashjr”의 좋은 서명 [ultimate]
키의 지문은 굵게 표시되어 있습니다. 지문은 1단계에서 확인한 키와 일치해야 합니다. 그렇지 않으면 다른 사람이 서명할 수 있습니다! "좋은 서명"에 관한 부분도 중요하지만 이름과 이메일 주소는 중요하지 않으며 지문이 잘못되면 둘 다 가짜가 될 수 있습니다.
모든 것이 잘 진행되었다고 가정하면 이제 ".assert" 파일이 해당 키의 컨트롤러에 의해 보장된다는 것을 알 수 있으며 실제 프로그램 파일이 해당 ".assert" 파일에 나열된 파일인지 확인할 수 있습니다.
3단계: 파일 자체 확인
프로그램 파일을 인증하려면 먼저 암호화 방식으로 해시되어야 합니다(기본적으로 지문 추출).
이 작업은 간단한 명령으로 수행됩니다(검증하는 실제 파일 이름을 바꾸도록 주의하세요!).
리눅스: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Windows: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256
macOS: shasum -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg
그러면 다음과 같이 출력됩니다.
d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
이는 파일 내용의 지문이며 그 뒤에 지정된 파일 이름이 옵니다.
이제 일반 텍스트 편집기/뷰어에서 ".assert" 파일을 열고 지문을 찾으세요. 상단의 "out_manifest" 섹션에 있어야 합니다. "in_manifest" 또는 "base_manifests"에 도달하면 너무 멀리 간 것입니다.
".assert" 파일에서 해당 파일을 찾으면 보유하고 있는 파일이 서명자가 보증한 파일과 동일한 파일임을 확인한 것입니다(지문 파일 이름 오른쪽에 있는 ".assert" 파일에서 해당 파일을 볼 수 있습니다). , 이는 귀하의 것과 동일할 수 있습니다).
".assert" 파일에 해당 파일이 없으면 잘못된 ".assert" 파일을 사용하고 있거나 파일이 일치하지 않는다는 의미일 수 있습니다(이 경우 예상되는 파일 이름 옆에 다른 파일 이름이 표시됩니다). 지문). 파일이 목록에 있지만 지문이 다른 경우 파일을 열지 말고 저장한 후(사본 제공을 요청할 수 있음) 영향을 받는 프로젝트의 보안 팀에 문의하세요.