네트워크 메시지 암호화 및 방식 (중간자 공격, HMAC, 대칭, 비대칭 키)

이동욱

2021/03/28

Categories: 보안

네트워크(전송) 레벨 암호화


download

download

메시지 본문 암호화


1. 서버에서 공개 키 KA1과 비공개 키 KA2 쌍을 생성한다.
2. 클라이언트에게 공개 키 KA1을 네트워크를 통해서 내려 보낸다.
3. 클라이언트는 새로운 비공개 대칭 키 KB를 생성하고 KA1을 이용하여 암호화하여 서버로 전송한다.
4. 서버는 전송된 암호화 메세지를 `KA2`로 복호화하여 그 안에 있는 비 공개 키 KB를 꺼낸다.
5. 향후 클라이언트와 서버는 상호 API 통신시 비공개 대칭 키 KB를 이용하여 암호화와 복호화를 진행한다.

메시지 무결성 보장


download

1. 먼저 클라이언트는 호출하고자 하는 REST API의 메시지를 앞에서 정의한 키를 이용하여 HMAC 알고리즘을 이용하여 해시 값을 추출한다.

2. API를 호출할 때, 메시지에 추출한 HMAC을 포함해서 호출한다.
3. 서버는 호출된 메시지를 보고 HMAC을 제외한 나머지 메시지를 미리 정의된 키를 이용해서 HMAC 알고리즘으로 해시 값을 추출한다.
4. 서버는 3버에서 생성된 HMAC 값과 API 호출시 같이 넘어온 HMAC 갑을 비교해서 값이 같으면 이 호출이 유효한 호출이라고 판단한다.
http://service.myapi.com/restapiservice?xxxxx&hmac={hashvalue}&timestamp={호출시간}

참고 문헌


>> Home