macOS에서 ISO 이미지 유효성 검사: 합계 및 서명 검증

  • 체크섬과 해시 함수를 사용하면 데이터의 변경 사항을 감지하여 ISO 및 DMG 파일의 무결성을 확인할 수 있습니다.
  • macOS에서는 shasum이나 md5 같은 명령어를 사용하여 이미지의 유효성을 검사하고, 디지털 서명과 인증서를 통해 진위 여부를 확인할 수 있습니다.
  • balenaEtcher나 Ventoy 같은 도구는 USB 드라이브에 기록된 내용을 원본 ISO 파일과 비교하여 복사본이 원본과 동일한지 확인합니다.
  • SHA-256과 같은 최신 알고리즘을 사용하고 공식 출처에서 해시값을 얻는 것은 데이터 손상이나 조작 위험을 최소화하는 데 핵심적인 요소입니다.

macOS에서 ISO 이미지 체크섬을 확인하세요

macOS, Windows 또는 Linux에 소프트웨어를 설치하기 위해 ISO 이미지나 DMG 파일을 다운로드할 때, 모든 것이 "겉보기에" 잘 된 것만으로는 충분하지 않습니다. 개발자가 게시한 데이터와 정확히 일치하는지 , 다운로드 과정에서 손상되지 않았는지, 그리고 누군가 악의적으로 데이터를 변조하지 않았는지 확인해야 합니다 .

이러한 맥락에서 체크섬, 암호화 해시, 그리고 macOS의 경우 디지털 서명 및 인증서 유효성 검사가 중요한 역할을 합니다 . 이 모든 것이 어떻게 작동하는지 확실히 이해하는 것은 설치 프로그램을 신뢰하고, balenaEtcher 또는 Ventoy를 사용하여 USB 드라이브에 구울 ISO 파일의 유효성을 검사하고, 일반적으로 중요한 파일을 문제없이 이동하는 데 필수적입니다.

체크섬이란 정확히 무엇이며 어떤 역할을 하나요?

체크섬은 기본적으로 파일 내용을 요약하는 영숫자 문자열 입니다 . 파일의 비트에 수학적 알고리즘(암호화 해시 함수)을 적용하여 얻어지며, 파일의 무결성을 검증하는 고유한 식별자 역할을 합니다.

소프트웨어 공급업체가 설치 프로그램, ISO 파일 또는 주요 업데이트를 배포할 때 일반적으로 체크섬을 포함합니다. 사용자는 파일을 다운로드하고 동일한 유형의 해시 값을 로컬에서 계산한 다음 두 값을 비교합니다 . 두 값이 일치하면 파일이 원본과 매우 동일할 가능성이 높습니다. 일치하지 않으면 다운로드 중 손상, 악의적인 조작, 저장 오류 등과 같은 문제가 발생한 것입니다.

이러한 합계는 해시 값, 해시 코드, 해시 합계 또는 간단히 해시 라고도 합니다 . 해시는 다운로드 외에도 다양한 용도로 사용됩니다. 네트워크에서 패킷을 검증하거나, 데이터베이스에 비밀번호를 안전하게 저장하거나, 이메일에 서명하거나, 전체 디스크의 포렌식 이미지 무결성을 보장하는 데 사용됩니다.

체크섬

해시 함수의 작동 원리: 파일에서 지문까지

암호화 해시 함수는 단방향 알고리즘입니다. 즉, 크기에 상관없이 입력을 받아 고정된 길이의 출력을 생성합니다 . 입력 파일의 크기가 몇 킬로바이트이든 수 기가바이트이든 상관없이, 예를 들어 SHA-256의 결과는 항상 256비트 시퀀스(64개의 16진수 문자)가 됩니다.

핵심적인 특징은 소위 '눈사태 효과'입니다. 입력 데이터의 아주 작은 변화에도 해시값이 완전히 달라지는 현상입니다 . 예를 들어 "This is a test."라는 문구의 MD5 해시값을 계산한 후 마침표를 제거하면 결과값이 완전히 달라지므로 아주 미세한 변화까지 감지할 수 있습니다.

또한, 좋은 해시 함수는 해시 값으로부터 원본 내용을 복원하는 것이 계산적으로 불가능 하도록 설계되었으며 , 동일한 값을 생성하는 두 개의 서로 다른 입력값(충돌)을 찾는 것도 매우 어렵게 설계되었습니다. MD5나 SHA-1에서처럼 알고리즘에서 실제 충돌이 발견되면 특정 용도에 사용하기에 안전하지 않은 것으로 간주됩니다.

체크섬 알고리즘의 종류와 차이점

모든 체크섬 뒤에는 특정한 알고리즘이 숨어 있습니다. 모든 체크섬이 동일한 목적을 가지거나 동일한 수준의 신뢰도를 제공하는 것은 아니므로 , 현재 사용 중인 체크섬을 이해하려면 최소한 가장 일반적인 범주들을 알아두는 것이 유용합니다.

간단한 오류 제어 알고리즘

기본 네트워크 및 시스템에서는 진정한 의미의 암호화 방식은 아니지만 전송 오류를 감지하는 데 도움이 되는 경량 메커니즘이 수십 년 동안 사용되어 왔습니다. 대표적인 예로 종방향 패리티 워드 또는 바이트가 있는데 , 이는 데이터를 n비트 워드로 그룹화하고, 각 워드에 대해 XOR 연산을 수행한 후, 그 결과를 추가 워드로 데이터 끝에 덧붙이는 방식입니다.

수신 시, 합산 워드를 포함하여 XOR 연산을 다시 계산하고, 결과가 모두 0이 아니면 오류가 발생한 것으로 간주합니다 . 이 방법은 계산 비용이 저렴하고 단일 비트 또는 홀수 비트 오류에 대해서는 비교적 효과적이지만, 특정 패턴(예: 두 워드의 대칭적 변화 또는 블록 재배열)을 잘 감지하지 못합니다.

2의 보수 알고리즘은 기존 방식을 개선하려는 시도였습니다. 이 알고리즘은 단어들을 부호 없는 이진 정수로 더하고, 그 합의 2의 보수를 체크섬으로 더합니다. 목적지에 도착하면 체크섬을 포함한 모든 값을 다시 더하고, 그 결과가 모두 0으로 이루어진 단어가 아니면 오류가 발생한 것으로 판단합니다. 이 알고리즘은 간단하며, 패리티 검사처럼 단순한 오류는 감지할 수 있지만, 의도적인 조작에는 취약합니다.

위치 종속 체크섬

오류가 간과되는 사례를 줄이기 위해 단어의 값뿐만 아니라 순서까지 고려하는 알고리즘이 등장했습니다. 위치 종속 체크섬은 순서에서의 위치에 따라 각 블록에 서로 다른 가중치를 부여합니다.

이 계열의 예로는 Adler-32, 다양한 유형의 CRC(순환 중복 검사), 그리고 Fletcher의 체크섬이 있습니다. 이러한 알고리즘은 반복적인 오류, 블록 삽입 또는 삭제를 감지하는 데 상당한 이점을 제공하기 때문에 네트워크 프로토콜, 압축 파일 및 저장 시스템에서 매우 흔하게 사용됩니다 . 하지만 이러한 알고리즘들은 여전히 ​​암호학적으로 강력한 알고리즘은 아닙니다.

퍼지 체크섬

스팸 필터링 및 협업 스팸 탐지 분야에서는 퍼지 체크섬과 같은 다양한 기술이 사용됩니다 . 이 기술은 아주 작은 변화라도 값을 완전히 바꿔놓는 것을 찾는 대신, 그 반대로 매우 유사한 이메일들이 동일하거나 매우 유사한 해시값을 생성하도록 하는 데 중점을 둡니다.

이를 위해 메시지 내용을 정규화하고 최소 버전으로 축소한 다음(가변 부분, 서식 등을 제거) 체크섬을 계산합니다. DCC와 같은 서비스는 여러 이메일 제공업체로부터 수백만 개의 이러한 해시값을 수신하고 , 동일한 값이 특정 임계값 이상으로 반복될 경우 해당 패턴을 스팸으로 분류합니다.

현대 암호화 해시 함수

ISO 이미지, 설치 프로그램 또는 펌웨어의 유효성을 검증할 때 일반적으로 MD5, SHA-1, SHA-2 또는 SHA-3과 같은 암호화 해시 알고리즘을 접하게 됩니다. 이러한 알고리즘은 우발적인 오류를 감지하는 것뿐만 아니라, 정상적인 원본 파일과 동일한 해시 값을 가진 악성 파일을 생성하려는 특정 공격에 대응하는 데에도 사용됩니다.

예를 들어 MD5는 128비트 해시를 사용하여 다운로드 유효성 검사를 위한 사실상의 표준으로 수년간 사용되었습니다. 그러나 실제 충돌이 발생하는 사례가 보고되었으며, 오늘날 MD5는 공격자로부터 무결성을 보호하는 데 안전하지 않은 것으로 간주됩니다 . 하지만 우발적인 손상 감지만 중요한 상황에서는 여전히 사용되고 있습니다.

SHA-1(160비트)도 비슷한 경로를 밟았습니다. 인증서, 서명, 파일 유효성 검사에 널리 사용되었지만, 현재는 취약점 때문에 새로운 시스템에서는 사용이 권장되지 않습니다. SHA-2 계열(SHA-224, SHA-256, SHA-384, SHA-512)은 MD5와 SHA-1을 대부분 대체했으며, SHA-256은 NIST 권장 표준이 되어 웹 브라우저, TLS와 같은 프로토콜, VPN, 심지어 비트코인과 같은 네트워크에서도 사용되고 있습니다.

SHA-3는 최신 표준 알고리즘으로, 출력 길이는 SHA-2와 유사하지만 내부 설계 방식이 다릅니다. BLAKE2 및 BLAKE3와 같은 최신 알고리즘은 고속 및 보안 기능을 제공하여 대용량 파일 검증 도구 및 극한의 성능이 요구되는 애플리케이션에서 널리 사용됩니다.

윈도우

윈도우에서 체크섬을 확인하는 방법

Windows에서는 기본적인 파일 해시값을 계산하기 위해 별도의 프로그램을 설치할 필요가 없습니다. 명령 프롬프트나 PowerShell에서 `certutil` 명령어를 사용 하거나, 더 간편하게 PowerShell에서 `Get-FileHash` cmdlet을 사용할 수 있습니다.

certutil을 사용하려면 명령 프롬프트를 열고 `certutil -hashfile "path\to\file.iso" SHA256` 과 같은 명령을 실행하기만 하면 됩니다. 이 도구는 사용자가 지정한 알고리즘(MD5, SHA1, SHA256, SHA384, SHA512 등)을 사용하여 체크섬을 생성하며, 생성된 체크섬을 개발자 웹사이트에서 제공하는 체크섬과 비교하기만 하면 됩니다.

PowerShell에서 Get-FileHash C:\path\to\file.iso 명령은 기본적으로 파일의 SHA-256 해시값을 반환하지만, -Algorithm 매개변수를 사용하여 다른 알고리즘(MD5, SHA1, SHA384, SHA512, RIPEMD160, MACTripleDES 등)을 지정할 수도 있습니다.

표시된 값이 공식 웹사이트에 게시된 값과 문자 그대로 일치하면 파일이 손상되지 않았다고 볼 수 있습니다. 만약 값이 다르다면, 파일이 손상되었거나 악의적인 의도를 가진 제3자에 의해 변조되었을 가능성이 있으므로 파일을 삭제하고 다시 다운로드하는 것이 좋습니다.

macOS에서 체크섬을 검증하는 방법: 터미널, ISO 및 DMG 파일

macOS에는 ISO, DMG 및 기타 형식의 파일 해시를 생성하고 비교하는 데 필요한 모든 것이 기본적으로 포함되어 있습니다. 추가 소프트웨어 설치는 필요하지 않으며, 터미널 앱을 사용하기만 하면 됩니다.

가장 활용도가 높은 명령어는 `shasum`으로, SHA 계열 알고리즘 중에서 원하는 알고리즘을 선택할 수 있습니다. 예를 들어, `vlc-3.0.6.dmg`와 같은 설치 프로그램을 다운로드했고 해당 프로젝트 웹사이트에 SHA-256 해시값이 게시되어 있다면 macOS에서는 다음과 같이 할 수 있습니다.

샤숨 -a 256 vlc-3.0.6.dmg

터미널에 해시 값과 파일 이름이 한 줄로 표시됩니다. 웹사이트에 표시된 파일 이름과 나란히 놓고 차이가 없는지 확인하십시오. 다른 알고리즘의 경우, `md5`는 MD5, `shasum -a 1`은 SHA-1, `-a 384`는 SHA-384, `-a 512`는 SHA-512 등과 같은 직접 명령어를 사용할 수 있습니다 .

md5sum.txt 파일 또는 이와 유사한 파일이 포함된 ISO 이미지의 경우, 이 파일에는 일반적으로 이미지 자체뿐만 아니라 ISO 이미지에 포함된 각 내부 파일의 해시값이 포함되어 있습니다. ISO 이미지를 USB 드라이브에 기록한 후, 드라이브를 마운트하고 Linux에서는 `md5sum -c md5sum.txt` 명령어를, macOS에서는 이에 상응하는 명령어를 사용하여 각 파일의 해시값을 개별적으로 확인할 수 있습니다. 하지만 macOS에서는 일반적으로 ISO 이미지를 USB 드라이브에 복사하기 전에 전체 ISO 이미지의 해시값을 확인하는 것이 더 일반적입니다.

macOS의 서명 및 인증서: 해시 그 이상

macOS는 해시값 외에도 키체인 접근(Keychain Access)과 게이트키퍼(Gatekeeper)를 통해 관리되는 디지털 서명, 인증서 및 신뢰 정책 시스템에 크게 의존합니다 . 설치 프로그램의 해시값이 올바르다고 해서 해당 설치 프로그램이 정식 개발자로부터 온 것이라고 보장할 수는 없습니다. 바로 이러한 검증을 위해 코드 서명이 사용됩니다.

키체인 접근 앱을 사용하면 인증서 도우미를 통해 특정 인증서를 검사하고, 신뢰 정책을 검토하고, 유효성을 확인할 수 있습니다. macOS는 인증서가 신뢰할 수 있는 루트 기관에서 발급되었는지, 만료되지 않았는지, 또는 해지되지 않았는지 확인한 후, 이를 바탕으로 특정 바이너리의 실행을 허용하거나 차단합니다.

일상적인 사용 환경에서 DMG 파일을 열거나 인터넷에서 다운로드한 앱을 실행할 때 macOS는 개발자 서명 확인을 Gatekeeper 및 공증과 같은 메커니즘과 결합합니다 . 해시 구성 요소는 파일 무결성에 중점을 두고, 서명 및 인증서 구성 요소는 발급자의 진위 여부를 처리합니다.

balenaEtcher나 Ventoy 같은 도구는 USB 드라이브의 내용을 어떻게 검증하나요?

balenaEtcher나 Ventoy 같은 유틸리티를 사용하여 부팅 가능한 USB 드라이브를 만들 때, 단순히 바이트를 복사하고 결과를 기다리는 방식이 아닙니다. 이러한 도구들은 후처리 과정을 거쳐 드라이브에 기록된 내용이 원본과 일치하는지 확인합니다 . 일반적으로 드라이브에서 읽어온 내용을 원본 ISO 파일의 내용과 비교하는 방식으로 검증합니다.

일반적인 작업 흐름은 `dd` 명령어를 사용하여 수동으로 수행하는 작업과 매우 유사합니다. ISO 파일을 다운로드하고, 드라이브를 정리하고, 데이터를 기록한 다음 다시 읽어옵니다. 예를 들어 balenaEtcher는 일반적으로 USB 드라이브에서 블록을 읽어 디스크 이미지의 동일한 블록과 직접 비교합니다 . 차이점이 감지되면 ISO 파일에 md5sum.txt 파일이 없어도 프로세스를 실패로 표시합니다.

Ventoy는 ISO 파일을 드라이브에 "굽는" 방식이 아니라, 특수 파티션에 그대로 복사한 후 부팅 메뉴를 표시하여 사용할 ISO 파일을 선택하도록 하는 다른 전략을 사용합니다 . 이 경우, USB 드라이브에 저장된 ISO 파일의 해시값과 원본 컴퓨터에 있던 동일한 파일의 해시값을 비교하여 무결성을 확인할 수 있으며, 이미지 내부 내용을 검사할 필요가 없습니다.

리눅스 배포판의 ISO 파일에 md5sum.txt나 SHA256SUMS 같은 파일이 포함되어 있고, 설치 부트로더가 이러한 파일을 지원하도록 구성되어 있다면, 부팅 과정에서 이미지 내부 파일의 유효성을 검사할 수 있습니다 . 하지만 디스크 굽기 유틸리티는 이러한 파일에 의존하지 않습니다. 디스크 굽기 유틸리티의 유효성 검사는 주로 블록 수준에서 기록된 데이터와 원본 데이터를 비교하는 방식으로 이루어집니다.

ISO 규격에 내부 체크섬 파일이 포함되어 있지 않은 경우 어떻게 해야 할까요?

모든 ISO 이미지에 내용의 해시값이 담긴 md5sum.txt 또는 유사한 파일이 포함되어 있는 것은 아닙니다. 하지만 공식 웹사이트 에서 다운로드 페이지나 별도의 파일(SHA256SUMS, CHECKSUMS 등)에 전체 ISO 이미지의 해시값(일반적으로 SHA-256)을 제공하도록 요청하는 것이 좋습니다.

파일별 체크섬이 포함된 내부 파일이 없는 경우, 유효성 검사 과정은 ISO 이미지의 해시값을 비교하는 것으로 간소화됩니다. 다운로드한 파일의 SHA-256 해시값을 시스템에서 계산하여 공개된 값과 비교합니다 . 두 값이 일치하면 전체 이미지가 개발자가 생성한 것과 동일하다는 것을 의미하며, 안심하고 USB 드라이브에 구울 수 있습니다.

벤더가 체크섬이나 서명과 같은 정보를 공개하지 않으면 상황이 복잡해집니다. 다른 네트워크에서 다운로드했거나 다른 사람이 배포한 ISO 파일의 해시값과 비교해 볼 수는 있지만 , 공식적인 참조 자료는 확보할 수 없습니다. 이러한 경우, 특히 민감한 소프트웨어(운영체제, 보안 도구, 암호화폐 지갑 등)라면 더욱 주의해야 하며, 신뢰할 수 있는 출처를 찾는 것이 현명합니다.

공개된 해시값이 있더라도, 보안은 신뢰할 수 있는 출처에서 안전한(HTTPS) 연결을 통해 해시값을 얻는 것에 달려 있다는 점을 기억하세요 . 공격자는 악성 ISO 파일과 자체 해시값을 이용해 가짜 웹사이트를 만들 수 있으므로, 해시값 검증은 프로젝트의 공식 웹사이트에서 직접 진행하는 경우에만 의미가 있습니다.

퀵해시

해시를 다루고 무결성을 검증하기 위한 특정 도구

각 운영 체제에 내장된 유틸리티 외에도, 특히 여러 파일의 합계를 계산하거나, 전체 폴더를 비교하거나, 검증된 복사본을 자동화 해야 할 때 해시 처리를 용이하게 하는 다양한 특수 프로그램이 있습니다.

QuickHash 와 같은 애플리케이션은 Windows, Linux 및 macOS용으로 포괄적인 그래픽 인터페이스를 제공하며 MD5, SHA-1, SHA-2(256 및 512), SHA-3, BLAKE2, BLAKE3 등을 지원합니다 . 이러한 프로그램을 사용하면 텍스트 해시, 단일 파일 해시, 다중 파일 해시를 생성하고, 두 파일 또는 두 디렉터리를 비교하고, 해시 검증된 복사본을 만들 수 있습니다.

HashMyFiles, MultiHasher, MD5 & SHA Checksum Utility와 같은 다른 도구들은 Windows에 초점을 맞추고 있으며, 전체 폴더와 하위 폴더에 대한 해시를 일괄적으로 생성할 수 있고 , 심지어 탐색기 컨텍스트 메뉴에 통합하여 마우스 오른쪽 클릭으로 실행할 수도 있습니다.

명령어를 기억하거나 터미널을 열 필요 없이 다운로드한 설치 프로그램을 빠르게 확인하는 것과 같은 특정 요구 사항을 충족하는 경량 또는 휴대용 솔루션(HashCalc, MD5 Hash Check, Hasher Lite, DeadHash, Hash Generator, FCIV, Checksum Control 등)도 있습니다.

해시의 위험, 공격 및 보안 한계

해시는 흔히 "깨뜨릴 수 없다"고 설명되지만, 이를 해독하려는 기술이 존재한다는 점을 이해하는 것이 중요합니다. 가장 직접적인 방법은 무차별 대입 공격으로 , 원하는 해시값을 생성하는 모든 가능한 입력 조합을 시도하는 것입니다. 하지만 최신 알고리즘을 사용하는 긴 비밀번호의 경우 이러한 무차별 대입 공격은 현실적으로 불가능합니다.

사전 공격과 레인보우 테이블 공격은 공격자가 입력 유형(예: 일반적인 사람의 비밀번호)을 예상할 때 공격 속도를 높입니다. 무작위 문자열을 테스트하는 대신 미리 컴파일된 목록과 미리 계산된 해시를 사용하므로 취약한 키를 찾아내는 데 필요한 시간을 크게 단축합니다.

충돌 공격은 유한한 출력 개수를 가진 알고리즘에서 동일한 해시값을 생성하는 서로 다른 입력값이 반드시 존재한다는 사실을 악용합니다. 알고리즘에 수학적 취약점이 있다면, 충돌을 비교적 효율적으로 찾아낼 수 있어 동일한 해시값을 가진 두 개의 서로 다른 파일을 생성할 수 있습니다. MD5와 SHA-1이 바로 이러한 이유로 중요한 애플리케이션에 사용하기에 부적합하게 된 사례입니다.

이러한 위험을 완화하기 위해 여러 전략이 사용됩니다. 강력하고 최신 해시 함수를 사용하거나, 해싱 전에 입력값에 임의의 "솔트"를 추가하거나, 병렬 처리가 의도적으로 느리고 비용이 많이 들도록 설계된 특정 암호 알고리즘(bcrypt, scrypt, Argon2)을 사용하는 것 등이 있습니다.

macOS에서 ISO 및 DMG 이미지 검증을 위한 모범 사례

macOS에서 사용할 ISO 또는 DMG 파일을 다운로드할 경우, 특히 민감한 시스템이나 도구를 설치하는 경우에는 명확한 절차를 따르는 것이 가장 좋습니다. 먼저, 항상 프로젝트의 공식 웹사이트에서 다운로드하고 URL과 HTTPS 인증서가 올바른지 확인하십시오.

다음으로, 체크섬 또는 관련 PGP 서명이 게시된 섹션을 찾으십시오. SHA-256 이상의 최신 알고리즘을 사용하는 것이 좋으며 , 중요하지 않은 파일의 우발적인 손상만 감지하려는 경우가 아니라면 MD5 또는 SHA-1은 사용하지 마십시오.

ISO 또는 DMG 파일이 다운로드 폴더에 있으면 터미널을 열고 해당 폴더로 이동한 다음 shaSum 또는 MD5 명령어를 사용하여 해시값을 계산합니다 . 계산된 해시값을 공식 해시값과 비교하되, 숫자를 누락하거나 유사한 문자를 혼동하지 않도록 주의해야 합니다. 해시값이 일치하지 않으면 즉시 파일을 삭제하십시오.

balenaEtcher, Ventoy 또는 다른 도구를 사용하여 이미지를 USB 드라이브에 기록할 계획이라면, 해당 애플리케이션에 기록 후 유효성 검사 단계가 있는지 확인하십시오 . 이렇게 하면 ISO 파일이 올바를 뿐만 아니라 플래시 드라이브에 저장된 복사본이 원본 데이터를 정확하게 재현하는지 확인할 수 있습니다.

다소 번거롭게 느껴질 수 있지만, 이러한 검증 과정을 통해 여러 가지 문제를 예방하고 손상되거나 변조된 코드를 실행할 위험을 줄일 수 있습니다. macOS에서 체크섬, 서명 및 인증서가 어떻게 작동하는지 확실히 이해하면 ISO 및 DMG 파일을 훨씬 더 안심하고 사용할 수 있습니다 . 설치하는 내용이 개발자가 의도한 정확한 내용이며 그 외의 다른 내용은 아니라는 것을 확신할 수 있기 때문입니다.

텍스트 파일을 비교하고 미묘한 변화를 감지하는 도구
관련 기사 :
텍스트 파일을 비교하고 미묘한 변화를 감지하는 도구

Google에서 선호하는 검색 엔진으로 추가