란디의 메모장

 

메세지 인증 코드 이용 예시

IPsec, SSL, TLS

 

본문

앨리스는 A은행에 한 고객인 앨리스로부터 네트워크를 통해서 공금 의뢰가 도착했다.

A은행이 읽어보니 다음과 같은 내용이었다.

"내 계좌 앨리스-5374에서 B 은행 계좌 밥-6671로 1억 원을 송금바랍니다"
A은행은 이 메세지가 분명히 자신의 고객인 앨리스로부터 왔다는 것과 송금액인 1억 원과 수신자인 B은행의 계좌 밥-6671의 내용이 네트워크를 통해 전송되는 도중에 변경되지 않았다는 것을 확인해야 한다.

만약 고객 앨리스가 A은행에 보낸 송금 의뢰를 적극적 공격자 맬로리가 도중에 변경했다고 하면, A은행은 내용이 조작되었다는 것을 검출할 수 있어야 한다.

송금처가 맬로리의 계좌로 조작되어 있다면 1억 원을 도난당하기 때문이다.
과연 이 송금 의뢰는 정말로 앨리스가 A은행에 보낸 것일까? 고객 앨리스는 애당초 송금 의뢰 같은 것은 하지도 않았는데, 적극적 공격자 맬로리가 앨리스인 것처럼 거짓 행세를 하며 송금 의뢰를 한 것은 아닐까? 만약 송금 의뢰가 앨리스로부터 온 것이 아니라면 A은행은 절대로 이 송금을 해서는 안 된다.

지금 필요한 것은 송금 의뢰의 무결성인증이라는 2개의 성질이다.

메세지의 무결성이란 메세지가 변경되지 않았다는 성질을 가리킨다. 송금 의뢰의 내용이 고객 앨리스가 요청한 원래의 내용과 완전히 동일함을 A은행이 확인할 수 있으면, 메세지의 무결성이 검증되게 된다. 즉 메세지가 조작되지 않았다고 결론을 내려도 되는 것이다.

메세지 인증이란 메세지가 올바른 송신자로부터 온 것이다 라는 성질을 가리킨다. 

송금 의뢰가 정말로 고객 앨리스로부터 왔다는 것을 A은행이 확인할 수 있으면 메세지 인증이 이루어지게 된다.

송신자 이외의 누군가가 위장을 하지 않았다고 해도 좋을 것이다.

1. 송신자 앨리스와 수신자 A은행은 사전에 키를 공유해 둔다.
2. 송신자 앨리스는 송금 의뢰 메세지를 작성한 뒤 공유키를 이용해 이 메세지의 MAC값을 계산한다
3. 송신자 앨리스는 수신자 A은행에 송금 의뢰 메세지와 MAC 값을 보낸다.
4. 수신자 A은행은 수신한 송금 의뢰 메세지를 기초로 해서 MAC 값을 계산한다.
5. 수신자 A은행은 앨리스로부터 수신한 MAC 값과 자신이 계산해서 얻은 MAC값을 비교한다.
6. 수신자 A은행은 이 2개의 MAC 값이 동일하면 송금 의뢰가 틀림 없이 앨리스로부터 온 것이라고 판단한다.
동일하지 않다면 앨리스로부터 온 것이 아니라고 판단한다.

 

 

메세지 인증 코드로 해결할 수 없는 문제

제 3자에게 증명부인 방지를 할 수가 없다.

 

예를 들면 앨리스로부터 메세지를 받은 밥이 이 메세지는 앨리스가 보낸 것이다 라는 것을 제 3자인 검증자 빅터에게 증명하고 싶다고 하자. 그러나 메세지 인증 코드로 그 증명을 행할 수는 없다.

 

우선 빅터가 MAC 값을 인증하기 위해서는 앨리스와 밥만이 알고 있어야 하는 키를 빅터에게도 가르쳐줘야 하기 때문이다.

 

만약 밥이 빅터를 신용해서 빅터에게 키를 가르쳐 줬다고 하자. 그래도 빅터는 그메세지가 앨리스의 것인지 어떤지를 판단할 수는 없다. MAC 값은 바르지만 어쩌면 이 메세지를 쓴 것은 앨리스가 아니라 밥일지도 모른다고 생각할 수도 있기 때문이다. 앨리스나 밥이 메세지를 생성할 수 있기 때문이다.

 

밥이 MAC 값이 딸린 메세지를 받았다고 하자. 이 MAC 값은 앨리스와 밥이 공유하고 있는 키를 사용해서 계산한 것이다. 밥은 이 메세지는 앨리스로부터 온 것이다라고 알 수 있다

 

앨리스는 그 메세지는 밥이 스스로 만든 것이야라고 주장하거나 밥이 적극적 공격자 맬로리에게 키를 도난당했을지도 몰라. 나는 키를 잘 관리하고 있거든이라고 주장할 수 도 있다. 앨리스와 밥의 싸움이다.

 

이러한 이유로 빅터에게 증명할 수는 없다. 

'기타' 카테고리의 다른 글

단축키  (1) 2020.02.24
추상클래스와 인터페이스 차이는?  (0) 2020.02.22
[보안] MD5의 원리, 일방향 해시 함수  (0) 2020.02.20
[보안] 대칭키 비밀키  (0) 2020.02.19
면접 준비  (0) 2020.01.27

공유하기

facebook twitter kakaoTalk kakaostory naver band