인디노트
HMAC (Hash-based Message Authentication Code) 본문
HMAC 은 원본 데이터에 특정한 값 (이 값은 비공개 비밀정보여야 하기 때문에 이 값을 HMAC 키라고 함) 을 더해서 함께 해시하는 키 기반 해시 (Keyed Hash) 로 일반적인 해시 함수로만 수행할 때보다 더 높은 안정성을 확보할 수 있다.
키 기반 해시는 난수 형태인 비밀값을 키 값으로 사용한다.
안정성의 확보 뿐 아니라 해당 해시를 자신이 생성 했음을 인증하려는 목적에서 키를 추가하여 해시하기도 한다. 키를 추가하면 역상 저항성이 높아져 원본 데이터를 알아내기가 그만큼 더 어려워진다.
충돌 저항성의 관점에서 같은 해시값을 생성하는 원본 데이터를 노출해도 키를 제외한 부분은 알 수 없으므로 다른 서비스까지 위험하게 하지 않는다.
즉. HMAC 은 제2 역상 저항성과 비밀키의 안정성에 따라 보안 강도를 향상 시킬 수 있다.
키 기반 해시에 필요한 키 값을 생성하기 위해 “키 생성기” 로서 키 유도함수를 사용한다. 일종의 난수 발생기라고 할 수 있다.
키 유도함수는 키를 생성하는 입력 값의 안정성과 해시 함수의 역상 저항성에 따라 보안 강도가 다르게 된다.
실예로써 하기의 캡춰와 같은 사이트에서 알 수 있듯이 OTP 키를 생성하기 위해서 Secret 를 사용하게 되는데 여기서 Secret 값이 비밀키로 사용된다.

'인증기술 > 보안기술' 카테고리의 다른 글
| KMIP 관련 문서 연결 링크 (0) | 2021.07.14 |
|---|---|
| Q#기반 양자난수생성기를 OpenVPN 에 적용하기 (0) | 2021.07.02 |
| Q#에서 퀀텀 난수 생성기 구현 (0) | 2021.07.02 |
| SSH Private Key 패스워드 없애기 (0) | 2021.05.30 |
| How to parse the attestationObject in Node.js (0) | 2020.12.21 |
Comments