반응형
스케줄에서 상태 값을 넘겨주는 API가 실패하여 프로세스를 확인하던 중 HMAC을 사용하고 있는데 잘 알지 못하여 찾아보았다.
해당 프로세스는 URL, Key, Message(Timestamp) 값을 해시(SHA-1)로 변환하여 통신을 해주고 있다.
(원인은 HMAC에서 Key값을 읽어 올 때 스케줄 권한 문제였다)
HMAC (Hash-based Message Authentication Code) 이란
간단히 HMAC을 설명하면, 송신자와 수신자만이 공유하고 있는 Key값과 Message를 혼합하여 Hash값을 만들어 비교하는 것.
MAC의 특성상 역산이 불가능 하므로, 수신된 메시지와 공유하고 있는 Key값을 조합하여 만들어진 값을 수신된 Hash와 비교하는 방식
ALICE
1. 해쉬 생성
내가 가지고 있는 Key와 Message를 hash 값으로 만듦
2. 요청 보내기
생성된 Hash와 Message를 가지고 api로 요청
BOB
3. 해쉬 생성
받은 Message와 내가 가지고 있는 Key와 조합하여 Hash값 생성
4. 비교
클라이언트에서 보내준 Hash값과 내가 생성한 Hash값 비교 동일하면 인증 성공
<참조>
반응형
'n년차 개발자' 카테고리의 다른 글
로드밸런싱, L2, L3, L4, L7 스위치, HAProxy 란? (0) | 2021.06.06 |
---|---|
CDN(Content Delivery Network) 콘텐츠 전송 네트워크 란 (0) | 2021.05.14 |
IntelliJ IDEA 설치방법 (0) | 2020.10.26 |
MSA(Microservices) Architecture (마이크로서비스 아키텍처) (0) | 2020.08.03 |
Edit 프로그램 Notepad++ 다운로드 (0) | 2020.02.29 |