다양한 Linux 배포판에서는 gpg를 사용하여 http를 통해 다운로드한 새 소프트웨어 패키지 등을 확인할 수 있습니다. 하지만 패키지를 보관하고 있는 서버가 해킹당하면 어떻게 될까요? 좋습니다. 새 gpg 키가 필요합니다. 그런데 새 gpg 키가 유효한 gpg 키인지 어떻게 보장할 수 있을까요? 새 gpg 키가 클라이언트에 다운로드될 때까지 유효한 gpg 키가 없으므로 [새 gpg 키가 포함된] 패키지가 gpg 키로 "검증"되지 않으면 창이 나타납니다. "권한 있는"/안전한 방식으로 클라이언트에 새로운 GPG 키를 제공할 수 있는 방법이 있습니까?
답변1
패키지를 보유한 서버만 손상되고 개인 서명 키는 손상되지 않은 경우 취할 수 있는 조치가 많지 않습니다. 이전 키는 여전히 유효하며 공격자가 수정한 패킷이 감지됩니다. 귀하의 질문은 서명 키가 손상되면 어떻게 되는지에 관한 것 같습니다.
이전 키가 만료되지 않는 한 사람들은 키가 손상되었다는 사실을 인식하지 못한 채 이전 패키지를 계속 다운로드하게 됩니다. 이상적으로 패키지 관리 도구는 키가 취소되었는지 확인해야 합니다(apt, yum 및 친구들이 이 작업을 수행하는지 모르겠습니다). 그러나 손상을 처리하는 첫 번째 단계는 이전 키로 서명된 패키지 배포를 중지하고 새 키로 서명된 패키지 배포를 시작하는 것입니다. 따라서 악의적으로 수정된 패키지는 업데이트될 때까지 이미지에만 남아 있습니다.
사람들이 새 키로 서명된 패키지를 받기 시작하면 패키지가 아직 서명되지 않았다는 오류 메시지가 표시됩니다. 그러면 고객이 무슨 일이 있었는지 물어보고 새 키를 얻으려고 시도하게 될 것입니다.
이번 타협안은 보안 메일링 리스트와 다양한 업계 뉴스 채널에서도 발표될 예정입니다. 따라서 이를 팔로우하면 알림을 받게 됩니다. 물론 이러한 점에도 주의해야 합니다. 공격자가 listserv 또는 개발자의 계정을 손상시키고 실제로는 자신의 개인 키인 새 공개 키를 사용하여 가짜 키 손상 경고를 보낼 수 있습니다.
새 키를 배포하는 데 있어 마법의 총알은 없습니다. 먼저 키를 배포하거나 더 정확하게는 새 키에 대한 신뢰를 구축하려면 신뢰할 수 있는 채널이 필요합니다. 이는 기존 키에 대한 신뢰를 구축하는 것만큼 어렵습니다. (즉, 대부분의 사람들은 HTTP 웹사이트나 서명되지 않은 CD 이미지에서 이를 얻습니다.) 웹사이트(및 웹사이트의 인증서를 만든 CA, 사용 중인 브라우저 및 신뢰할 수 있는 기반!)를 신뢰한다면 손상되지 않았습니다. 또는 열쇠를 갖고 있는 사람을 알고 신뢰한다면 그 사람에게 열쇠를 요청할 수 있습니다.
위에서는 배포 서명 키를 사용하여 패키지가 직접 서명되는 간단한 모델을 가정하여 느슨한 의미로 "패키지"를 사용했습니다. 실제로 일부 배포판(예: APT를 사용하는 모든 배포판)에서 서명된 것은 패키지에 대한 암호화 체크섬 목록이 포함된 파일이며, 설치 프로그램이 패키지에 예상 체크섬이 있는지 확인하는 2단계 프로세스가 있습니다. , 목록에 예상되는 서명이 있습니다. 원칙은 동일합니다. 키를 유출한 공격자는 악성 패키지를 삽입하고 유출된 키를 사용하여 서명된 악성 패키지의 체크섬이 포함된 파일을 나열합니다. 이 솔루션을 사용하려면 목록 파일 및 패키지를 복구해야 합니다.
답변2
새로운 "권한 있는" 키를 제공하는 표준 프로세스는 이전 키로 서명된 패키지를 통해 이루어집니다. 이전 키를 신뢰하고 GPG를 신뢰하는 경우 새 키는 이전 키로 서명된 패키지에 배포됩니다. 이제 새 제품을 사용할 수 있습니다.
각 패키지의 서명이 올바른지 확인하므로 이러한 패키지는 보안되지 않은 서버에 저장될 수 있습니다.
패키징 개인 키가 손상된 경우에만 문제가 발생합니다. 이것이 모든 패키지에 서명하는 마스터 키입니다. (데비안 SecureApt,우분투 SecureApt,페도라 모자). 한 번 그런 일이 발생했다면 추악했을 것입니다.