개발자 도구 · SHA 해시 계산기
SHA-1 충돌 설명: 여전히 안전한 것과 마이그레이션해야 하는 것
· 그것이 중요한 이유
샤-256 암호화 보안
스캐너가 SHA-1 플래그를 지정하고 경영진이 얼마나 긴급한지 묻습니다. 이 게시물에서는 충돌 공격이 수행하는 작업과 중단되지 않는 작업, SHA-1이 여전히 허용되는 위치 및 마이그레이션 계획 방법을 설명합니다.
스캐너에 SHA-1이(가) 손상되었다고 표시됩니다. 하지만 무엇 때문에 손상되었습니까? 마이그레이션의 긴급성을 결정하는 질문
네트워크 보안 스캐너는 인프라에 SHA-1 플래그를 지정합니다. 경영진은 그것이 얼마나 긴급한지 묻습니다. 대답은 전적으로 SHA-1을(를) 사용하는 목적에 따라 달라지며, 해당 질문은 규정 준수 문제, 활성 보안 문제 또는 단순히 목록화해야 하는 레거시 아티팩트가 있는지 여부를 나타냅니다. SHA-1는 암호화되어 있습니다. 학술적 시연을 통해 충돌이 입증되었습니다. 그러나 "손상"은 시스템에서 SHA-1의 역할에 따라 다른 의미를 갖습니다.
암호화 해시는 다양한 상황에서 다양한 용도로 사용됩니다. 때로는 우발적인 손상을 방지하는 체크섬이기도 합니다. 때로는 사용자가 게시자가 의도한 파일을 받았는지 확인할 수 있는 게시된 다운로드 체크섬과 같은 약속이기도 합니다. 때로는 충분한 제어권을 가진 공격자가 동일한 해시를 공유하는 의미 있는 두 개의 문서를 생성하여 인증을 위조할 수 있는 서명 또는 인증서 체인의 일부인 경우도 있습니다. SHA-1 충돌의 심각도는 SHA-1이 시스템에서 어떤 역할을 갖고 있는지에 따라 크게 달라집니다.
충돌 대 사전 이미지 — 공개적으로 입증된 공격이 충돌을 표적으로 삼는 이유와 이것이 기존 해시에 미치는 영향
충돌 공격은 동일한 출력으로 두 개의 서로 다른 입력을 생성합니다. 공격자는 미리 결정된 값으로 해시되는 메시지를 찾지 못합니다. 이는 사전 이미지 공격이 되며 SHA-1에 대해서는 여전히 실행 불가능합니다. 대신, 충돌 공격은 공격자가 동일하게 해시하는 두 개의 문서를 생성할 수 있음을 의미합니다. 시스템이 두 가지가 동일하다는 것을 증명하기 위해 해시에 의존하는 경우 충돌로 인해 해당 증명이 깨집니다. 공격자는 두 가지 입력을 모두 작성해야 하며 여기에는 시간과 계산이 필요하지만 결과적으로 해시 아래에서 동일하게 보이는 두 가지 별개의 항목이 생성됩니다.
사전 이미지 공격은 공격자가 게시된 SHA-1 해시를 가져와서 이와 일치하는 입력을 찾을 수 있음을 의미합니다. 이는 SHA-1 공격이 작동하는 방식이 아닙니다. SHA-1 다이제스트 저장소가 있고 파일이 실제로 일치하는지 걱정하는 경우 충돌 공격은 위협이 아닙니다. 위협은 저장소에 액세스할 수 있는 누군가가 동일한 다이제스트에 대해 다른 파일을 위조할 수 있는지 여부입니다. 대부분의 경우 해싱 프로세스 자체를 제어하지 않으면 이는 현실적이지 않습니다. 구체적인 공격 모델은 알고리즘만큼 중요합니다.
2017 데모 — 질적으로 설명된 동일한 SHA-1을 포함하는 두 개의 서로 다른 파일과 그에 따른 선택된 접두사 작업
2017의 SHAttered 공격은 실제 충돌을 보여주었습니다. 즉, 동일한 SHA-1 다이제스트를 가진 두 개의 서로 다른 PDF 파일입니다. 연구원들은 두 파일을 모두 신중하게 구성하여 충돌하는 동안 유효한 PDF로 만들었습니다. 이 작업에는 상당한 계산 노력과 특수 하드웨어가 필요했습니다. 중요한 것은 그것이 가능했다는 것입니다. 보안을 위해 SHA-1 사용을 정당화하는 충돌 저항이 사라졌습니다. 이 공격은 의미가 다른 두 문서가 다이제스트를 공유할 수 있음을 입증했으며, 이로 인해 다이제스트를 신원 증명으로 신뢰하는 모든 시스템이 손상되었습니다.
"SHA-1 is a Shambles"라고 불리는 2020에서 이어진 공격은 다음 단계인 선택 접두사 충돌을 수행했습니다. 이 변형은 공격자가 두 개의 임의 문서를 가져와 각각에 서로 다른 접미사를 연결하고 충돌을 일으킬 수 있음을 의미합니다. 이는 서명과 인증서에 대한 위험한 공격입니다. 공격자는 처음부터 시작할 필요가 없습니다. 두 개의 의미 있고 별개의 문서가 충돌할 수 있습니다. 이는 SHA-1 다이제스트에 서명하는 모든 시스템의 보안 모델을 깨뜨립니다. 공격자는 해시가 동일하고 의미가 다른 두 개의 문서를 생성할 수 있습니다.
SHA-1이 허용되지 않는 경우 — 서명, 인증서 및 공격자가 양쪽 모두에 영향을 미칠 수 있는 모든 것
SHA-1은 일부 역할에서는 여전히 허용되지만 다른 역할에서는 절대 허용되지 않기 때문에 구별이 중요합니다. Git에서는 SHA-1이 콘텐츠 주소(파일의 특정 스냅샷 이름)로 사용됩니다. Git은 인증을 위해 SHA-1를 사용하지 않습니다. 그것은 명명 체계입니다. 공격자는 이론적으로 동일한 ID를 사용하여 두 가지 다른 저장소 상태를 계산할 수 있지만 이를 위해서는 전체 콘텐츠 생성 프로세스를 제어하고 누군가가 알아차리기 전에 두 버전을 모두 푸시해야 합니다. 대부분의 팀에서 해당 수준의 공격자 제어는 위협 모델이 아닙니다. 이것이 Git이 긴급 상황으로 처리하지 않고 의도적으로 SHA-256로 전환하는 이유입니다.
웹 다운로드 확인 시나리오에서 게시자는 파일과 해당 SHA-1 체크섬을 동일한 서버에 게시합니다. 해당 서버를 손상시키는 공격자는 파일과 체크섬을 모두 제어합니다. 파일을 업로드하고 SHA-1을 게시할 수 있으며 충돌이 필요하지 않습니다. 체크섬이 안전한 VPN에 게시되거나 서명된 이메일로 인쇄되거나 다른 인프라에 게시되는 경우 공격자는 충돌해야 하며 이는 불가능해집니다. 체크섬은 해당 채널만큼만 신뢰할 수 있습니다. 이것이 다운로드 확인에 해시 이상이 필요한 이유입니다.
위험이 적은 경우 - 비적대적 설정에서 콘텐츠 식별 및 Git의 SHA-256로의 단계적 전환
서명 및 인증서의 경우 SHA-1은 방어할 수 없습니다. 신뢰할 수 있는 루트의 인증서 체인입니다. CA가 동일한 SHA-1 다이제스트를 사용하여 두 개의 서로 다른 인증서에 서명하는 경우 충돌 공격을 통해 공격자는 둘 중 하나를 위조할 수 있습니다. 이는 이론적인 것이 아닙니다. 중간 CA에 대한 공격이 문서화되어 있습니다. SHA-1를 사용하는 모든 서명 체계는 리소스가 충분한 공격자가 위조할 가능성이 있습니다. 모든 주요 브라우저 및 OS 공급업체는 인증서에서 SHA-1을 더 이상 사용하지 않습니다. 새 인증서는 SHA-256를 사용해야 합니다. 위협이 현실적이고 즉각적이기 때문에 플랫폼 공급업체는 명확하게 말했습니다.
미국 표준 기관인 NIST는 명시적인 일정을 명시했습니다. 2024부터 SHA-1은(는) 새로운 애플리케이션에 사용되어서는 안 됩니다. 2030부터 SHA-1은(는) 연방 시스템에서 완전히 폐기될 예정입니다. 이는 막연한 비추천이 아닙니다. 이는 정부 계약업체에 대한 구체적인 의무 사항이자 업계에 대한 신호입니다. NIST의 타임라인을 따르면 시스템이 마감일 이후 뒤섞이지 않고 지원 중단 곡선보다 앞서 나갈 수 있습니다.
리포지토리 증거는 읽지 않은 NIST 게시 또는 만료 날짜가 아닌 SHA-1 지원 중단을 지원합니다.
저장소 소스는 SHA-1을 레거시 상호 운용성과 이름으로 입증된 충돌 작업으로 문서화하지만 표준 기관 폐기 일정은 포함하지 않습니다. 따라서 이 섹션에서는 읽지 않은 발행 번호나 준수 날짜를 인용하는 대신 지원 중단을 엔지니어링 인벤토리 문제로 처리하여 개요를 수정합니다.
정책 제어 환경의 경우 해당 배포를 관리하는 기관에 문의하고 검토된 정확한 문서를 기록하십시오. 여기서 제품 증거는 더 좁은 작업을 지원합니다. 즉, SHA-1을(를) 기존 값을 재현할 수 있도록 유지하고, 새로운 보안 용도에 적합하지 않은 것으로 레이블을 지정하고, 주변 프로토콜이 마이그레이션을 허용하는 곳마다 SHA-256 대체를 계산합니다.
작업 예시 — 레거시 다운로드 확인 페이지에 적용된 마이그레이션 체크리스트
SHA-1의 마이그레이션 경로는 일반적으로 인벤토리로 시작합니다. SHA-1은 어디에 사용됩니까? 인증서와 서명? 즉각적인 우선순위. Git 저장소와 콘텐츠 주소 지정? 중간 우선순위, Git 마이그레이션 속도를 따릅니다. 다운로드에 대한 체크섬이 게시되었습니까? 신뢰 모델에 따라 다릅니다. 중복 제거 또는 보관을 위한 내부 체크섬이 있습니까? 우선순위가 낮을수록 계획에 더 많은 시간을 할애할 수 있습니다. 인벤토리 단계에서는 실제 표면적을 드러내고 추상적인 긴급성이 아닌 실제 위험을 기준으로 우선순위를 정하는 데 도움이 됩니다.
역할마다 마이그레이션이 다르게 보입니다. 인증서는 즉시 SHA-256로 업그레이드됩니다. 이전 버전과의 호환성을 위해 SHA-1를 유지하면서 SHA-256 참조의 Git 리포지토리 단계는 점진적으로 진행됩니다. 다운로드 체크섬은 SHA-1 및 SHA-256 모두에 게시되기 시작하고 결국에는 SHA-256에만 게시됩니다. 체크섬 데이터베이스의 레거시 SHA-1 다이제스트는 ToolAcre SHA 해시 계산기로 확인할 수 있으며 새 항목은 SHA-256을 사용해야 합니다. 이 도구는 전환의 양면을 지원하므로 이전 해시를 확인하고 새 해시를 생성할 수 있습니다.
요약: 비교용 SHA-1, 새 작업용 SHA-256 — ToolAcre SHA 해시 계산기에는 SHA-1가 포함되어 있으므로 보증이 아닌 레거시 다이제스트를 확인할 수 있습니다.
대부분의 조직에서 마이그레이션은 '내일 SHA-1 끄기'가 아닙니다. "어디에서 사용되는지 이해하고 보안에 중요한 역할의 우선순위를 정하며 다년간의 계획을 세우는 것"입니다. 수년간 SHA-1 커밋을 수행한 Git 저장소는 두 가지를 모두 처리하는 도구를 사용하여 점진적으로 전환해야 합니다. 인증서 인프라가 이미 마이그레이션되어 있어야 합니다. 게시된 체크섬은 전환 기간 동안 이중 알고리즘이어야 합니다. 점진적인 마이그레이션은 주요 변경 사항을 줄이고 시스템이 새로운 현실에 적응할 수 있는 시간을 제공합니다.
ToolAcre SHA 해시 계산기는 해당 전환의 양면을 제공합니다. 레거시 시스템의 기존 SHA-1 다이제스트를 확인하여 파일이 일치하는지 확인할 수 있습니다. SHA-256 해시를 계산하여 마이그레이션 경로 게시를 시작할 수 있습니다. 이 도구는 SHA-1가 안전한 척하지 않습니다. 깨진 것으로 표시하고 그 이유를 설명합니다. 하지만 이를 통해 SHA-256에 대한 연결을 구축하고 지원 중단을 계획할 때 여전히 유지 관리해야 하는 레거시 해시로 작업할 수 있습니다.