인터넷을 이동하는 동안 다운로드와 함께 MD5, SHA-1 또는 SHA-256 해시가 표시되는 경우가 있지만 실제로 무엇인지는 알 수 없습니다. 이러한 임의의 텍스트 문자열을 사용하여 다운로드 한 파일이 손상되거나 변조되지 않았는지 확인할 수 있습니다. Windows, macOS 및 Linux에 내장 된 명령을 사용하여이 작업을 수행 할 수 있습니다.
해시의 작동 방식 및 데이터 검증에 사용되는 방식
해시는 암호화의 산물입니다. 알고리즘 문자열을 생성하도록 설계되었습니다. 종종 이러한 문자열은 입력 데이터의 크기에 관계없이 고정 된 길이를 갖습니다. 위의 차트를 살펴보면 "Fox"와 "The red fox jumps over the blue dog"가 모두 동일한 길이의 출력을 산출하는 것을 볼 수 있습니다.
이제 차트의 두 번째 예를 세 번째, 네 번째, 다섯 번째와 비교하십시오. 입력 데이터의 사소한 변경에도 불구하고 결과 해시가 모두 서로 매우 다르다는 것을 알 수 있습니다. 누군가가 입력 데이터의 아주 작은 부분을 수정하더라도 해시는 크게 변경됩니다.
MD5, SHA-1 및 SHA-256은 모두 다른 해시 함수입니다. 소프트웨어 제작자는 종종 Linux .iso 파일 또는 Windows .exe 파일과 같은 파일을 다운로드하여 해시 함수를 통해 실행합니다. 그런 다음 웹 사이트에 공식 해시 목록을 제공합니다.
이렇게하면 파일을 다운로드 한 다음 해시 기능을 실행하여 실제 원본 파일이 있는지, 다운로드 프로세스 중에 손상되지 않았는지 확인할 수 있습니다. 위에서 살펴본 것처럼 파일을 조금만 변경해도 해시가 크게 변경됩니다.
비공식 소스에서 가져온 파일이 합법적인지 확인하려는 경우에도 유용 할 수 있습니다. 어딘가에서 가져온 Linux .ISO 파일이 있으며 변조되지 않았는지 확인하려고한다고 가정 해 보겠습니다. Linux 배포 웹 사이트에서 온라인으로 특정 ISO 파일의 해시를 찾을 수 있습니다. 그런 다음 컴퓨터의 해시 함수를 통해 실행하고 예상되는 해시 값과 일치하는지 확인할 수 있습니다. 이는 보유한 파일이 수정없이 Linux 배포 웹 사이트에서 다운로드 할 수 있도록 제공되는 것과 똑같은 파일임을 확인합니다.
MD5 및 SHA-1 기능에서 "충돌"이 발견되었습니다. 이러한 파일은 동일한 MD5 또는 SHA-1 해시를 생성하는 여러 개의 다른 파일 (예 : 안전한 파일 및 악성 파일)입니다. 그렇기 때문에 가능하면 SHA-256을 선호해야합니다.
모든 운영 체제에서 해시 함수를 비교하는 방법
이를 염두에두고 다운로드 한 파일의 해시를 확인하고받은 파일과 비교하는 방법을 살펴 보겠습니다. 다음은 Windows, macOS 및 Linux 용 방법입니다. 동일한 파일에서 동일한 해싱 기능을 사용하는 경우 해시는 항상 동일합니다. 사용하는 운영 체제는 중요하지 않습니다.
윈도우
이 프로세스는 PowerShell 덕분에 Windows의 타사 소프트웨어 없이도 가능합니다.
시작하려면 시작 메뉴에서 "Windows PowerShell"바로 가기를 실행하여 PowerShell 창을 엽니 다.
다음 명령어를 실행하여 'C : \ path \ to \ file.iso'를 해시를 보려는 파일의 경로로 바꿉니다.
Get-FileHash C : \ path \ to \ file.iso
파일의 크기, 사용중인 알고리즘 및 파일이있는 드라이브의 속도에 따라 파일의 해시를 생성하는 데 다소 시간이 걸립니다.
기본적으로이 명령은 파일에 대한 SHA-256 해시를 표시합니다. 하지만 MD5, SHA-1 또는 기타 유형의 해시가 필요한 경우 사용하려는 해싱 알고리즘을 지정할 수 있습니다.
다음 명령 중 하나를 실행하여 다른 해싱 알고리즘을 지정하십시오.
Get-FileHash C : \ path \ to \ file.iso-알고리즘 MD5
Get-FileHash C : \ path \ to \ file.iso-알고리즘 SHA1
Get-FileHash C : \ path \ to \ file.iso-알고리즘 SHA256
Get-FileHash C : \ path \ to \ file.iso-알고리즘 SHA384
Get-FileHash C : \ path \ to \ file.iso-알고리즘 SHA512
Get-FileHash C : \ path \ to \ file.iso -Algorithm MACTripleDES
Get-FileHash C : \ path \ to \ file.iso-알고리즘 RIPEMD160
해시 함수의 결과를 예상 한 결과와 비교하십시오. 값이 같으면 파일이 손상되거나 변경되지 않았거나 원본에서 변경되지 않은 것입니다.
맥 OS
macOS에는 다양한 유형의 해시를보기위한 명령이 포함되어 있습니다. 액세스하려면 터미널 창을 시작하십시오. Finder> 애플리케이션> 유틸리티> 터미널에서 찾을 수 있습니다.
그만큼
스모키
명령은 파일의 MD5 해시를 보여줍니다.
md5 / 경로 / 대상 / 파일
그만큼
Shasum
명령은 기본적으로 파일의 SHA-1 해시를 표시합니다. 이는 다음 명령이 동일 함을 의미합니다.
shasum / path / to / file
shasum -a 1 / path / to / file
파일의 SHA-256 해시를 표시하려면 다음 명령을 실행하십시오.
shasum -a 256 / path / to / file
리눅스
Linux에서는 보려는 해시 유형에 따라 터미널에 액세스하고 다음 명령 중 하나를 실행하여 파일의 해시를 봅니다.
md5sum / 경로 / 대상 / 파일
sha1sum / 경로 / 대상 / 파일
sha256sum / 경로 / 대상 / 파일
일부 해시는 보안 강화를 위해 암호화 방식으로 서명됩니다.
해시는 파일이 변조되지 않았 음을 확인하는 데 도움이 될 수 있지만 여기에는 여전히 하나의 공격 방법이 있습니다. 공격자는 Linux 배포판의 웹 사이트를 제어하고 여기에 나타나는 해시를 수정할 수 있습니다. 또는 공격자는 중간자 (man-in-the-middle) 공격을 수행하고 사용자가 대신 HTTP를 통해 웹 사이트에 액세스하는 경우 전송중인 웹 페이지를 수정할 수 있습니다. 암호화 된 HTTPS .
이것이 바로 최신 Linux 배포판이 웹 페이지에 나열된 해시보다 더 많은 것을 제공하는 이유입니다. 해시 수정을 시도 할 수있는 공격자로부터 보호하기 위해 이러한 해시에 암호화 방식으로 서명합니다. 해시와 파일이 변조되지 않았는지 절대적으로 확인하려면 해시 파일이 실제로 Linux 배포에서 서명되었는지 확인하기 위해 암호화 서명을 확인하는 것이 좋습니다.
관련 : Linux ISO의 체크섬을 확인하고 변조되지 않았는지 확인하는 방법
암호화 서명을 확인하는 것은 더 복잡한 프로세스입니다. 읽다 Linux ISO 확인 가이드가 변조되지 않았습니다. 전체 지침을 위해.
이미지 크레딧 : 호르헤 스톨 피 / Wikimedia