[참고]HMAC-SHA256이란?
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo / Updated: 2025-04-20
✳️ HMAC = Hash-based Message Authentication Code
"해시 기반 메시지 인증 코드"
데이터의 무결성과 인증을 동시에 보장하는 기법
HMAC 자체는 특정 해시 알고리즘을 기반으로 동작함
예)
HMAC-SHA256
→ HMAC 방식에서 SHA-256 해시 함수 사용
⚙️ 어떻게 작동하나?
입력:
message
(예: MAVLink 메시지 전체)secret key
(서명 시 공유된 비밀 키)SHA-256
해시 함수
출력:
32바이트(256비트)짜리 고유한 해시값
🔁 내부 동작 요약
비밀 키와 메시지를 조합
내부적으로 두 번 SHA-256 해싱 수행 (inner, outer)
결과는 메시지와 키가 완벽히 동일하지 않으면 절대 일치하지 않는 해시값
🔒 왜 HMAC-SHA256이 강력한가?
특성
설명
✅ 인증성
누가 보냈는지 확인 가능 (비밀 키 공유한 상대만 생성 가능)
✅ 무결성
메시지가 중간에 변조되었는지 탐지 가능
🚫 키 없음
해시값만 봐서는 원본 메시지도, 키도 절대 알 수 없음
🔁 비결정성 방지
같은 입력에는 항상 같은 출력 (Deterministic), 예측 가능
📦 MAVLink 2에서 HMAC-SHA256 쓰는 이유
MAVLink는 오픈된 프로토콜이라 누구든지 sniff(도청) 가능
HMAC-SHA256으로 서명하면, 도청자는 서명을 위조할 수 없음
드론이 수신 시 서명을 검증하여 위조된 명령 거부
🧪 서명 생성 코드 (예제)
결과는 항상 64자리(= 32바이트) 16진수 문자열입니다. (16진수=4bit)
🧪 검증 코드 (예제)
🧪 실제 MAVLINK 서명 활용 (예제)
Last updated