0Pricing
Cryptology Academy · 강의

해시 활용: 체크섬, HMAC 및 Git

비밀번호 저장, 데이터 무결성 및 버전 관리에서 해시가 사용되는 방식을 살펴봅니다.

해시 활용: 체크섬, HMAC 및 Git은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

해시 함수는 실제 시스템에서 세 가지 중요한 역할을 합니다. 데이터 무결성 확인(체크섬), 메시지 인증(HMAC), 코드 이력 추적(Git)입니다.

파일 체크섬

소프트웨어를 다운로드할 때 제공자는 SHA-256 해시를 공개합니다. 다운로드한 후 해시를 계산하고 다음과 같이 비교합니다. sha256sum ubuntu-24.04.iso # Should match published value exactly

저장 데이터의 무결성

ZFS와 Btrfs 같은 데이터베이스는 모든 데이터 블록에 대해 SHA-256 체크섬을 계산합니다. 데이터를 읽을 때 체크섬을 확인하므로, 감지되지 않는 디스크 손상을 자동으로 찾아낼 수 있습니다.

콘텐츠 주소 지정 저장소

Git, IPFS, Docker는 콘텐츠 주소 지정 저장소를 사용합니다. 각 객체의 이름은 IS, 즉 해시입니다. SHA-256(content) = 고유한 ID입니다. 동일한 콘텐츠는 한 번만 저장되고 중복은 즉시 감지됩니다.

Git의 SHA-1 사용(및 SHA-256)

모든 Git 커밋, 트리, 블롭에는 SHA-1 해시가 있습니다. 커밋 해시는 콘텐츠 + 메타데이터 + 부모 해시를 포함합니다. 어느 비트 하나라도 변경하면 해시가 달라지므로 이력 변조를 감지할 수 있습니다.

HMAC 구조

HMAC-SHA256(key, msg) = SHA256((key' XOR opad) || SHA256((key' XOR ipad) || msg)) XOR 패드를 사용하는 이중 해시 구조는 키가 사용된 MAC에 대한 길이 확장 공격을 방지합니다.

Python에서의 HMAC

import hmac, hashlib def create_mac(key: bytes, msg: bytes) -> str: return hmac.new(key, msg, hashlib.sha256).hexdigest() mac = create_mac(b'secret', b'Hello!')

상수 시간 비교

HMAC는 항상 hmac.compare_digest()로 비교하고, NOT ==로 비교해야 합니다. 타이밍 공격: 조기 종료 비교는 일치한 부분의 길이를 노출합니다. hmac.compare_digest는 모든 바이트를 일정한 시간에 비교합니다.

API 인증에서의 HMAC

GitHub 웹훅에서는 공유 비밀을 사용해 각 페이로드에 HMAC-SHA256 서명을 추가합니다. 웹훅 수신 → HMAC 계산 → X-Hub-Signature-256 헤더와 비교의 순서로 처리합니다.

해시를 사용한 비밀번호 확인

로그인 흐름: 사용자가 비밀번호 제출 → 서버가 해시 계산 → 저장된 해시와 비교. 서버는 비밀번호를 복호화하지 않고 다시 해시한 뒤 비교합니다. 저장된 해시만으로는 비밀번호가 노출되지 않습니다.

머클 트리의 활용

머클 트리는 데이터 위에 해시 트리를 구성합니다. Bitcoin 블록에는 모든 트랜잭션의 머클 루트가 들어 있습니다. Certificate Transparency는 변조를 감지할 수 있는 감사 로그를 위해 머클 트리를 사용합니다.

간단한 확인

HMAC 비교에는 왜 == 대신 hmac.compare_digest()를 사용해야 합니까?

복습

훌륭합니다! 실제 상황에서 해시를 적용하는 방법을 살펴보았습니다. 다음으로 세계에서 가장 널리 배포된 대칭 암호화 표준인 AES를 더 깊이 알아보겠습니다.

자주 묻는 질문

“해시 활용: 체크섬, HMAC 및 Git” 강의는 무료인가요?

네 — “해시 활용: 체크섬, HMAC 및 Git” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“해시 활용: 체크섬, HMAC 및 Git”에서 뭘 배우나요?

비밀번호 저장, 데이터 무결성 및 버전 관리에서 해시가 사용되는 방식을 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“해시 활용: 체크섬, HMAC 및 Git” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 좋은 해시 함수의 조건
  2. MD5: 역사, 용도 및 폐기된 이유
  3. SHA-1 및 SHA-2 계열 이해하기
  4. 해시 활용: 체크섬, HMAC 및 Git
← Cryptology Academy(으)로 돌아가기