본문 바로가기
정보보안

메시지 무결성과 메시지 인증

by hgoon 2023. 2. 27.
반응형

메시지 무결성

암호시스템은 적어도 비밀성 혹은 기밀성을 제공한다. 하지만 무결성은 제공하지 못했다. 그러나 메시지 전송에 있어서 때로는 기밀성보다는 무결성이 더 중요한 경우가 있다. 예를 들면, A가 임종에 임박해서 자신의 재산을 상속하기 위해 유언장을 쓴다고 해보자. 이 유언장은 암호호활 필요는 없다. A가 사망한 뒤에 누구나 이유언장을 확인할 수 있다. 하지만 이 유언장의 무결성은 보존되어야 한다. A는 이 유언장의 내용이 수정되는 것을 원치 않는다.

 

문서와 핑거 프린트

문서의 무결성을 보존하는 한 가지 방법은 핑거프린트를 이용하는 것이다.
만약 A가 자신의 문서 내용이 변경되지 않기를 바란다면 문서의 끝부분에 문서의 핑거프린트를 첨부하는 것이다. 공격자는 이문서의 내용을 변경하거나 위조문서를 만들 수 없다. 왜냐하면 공격자가 A의 핑거프린터를 위조할 수 없기 때문이다.
문서가 변경되지 않았다는 것을 확신하기 위해서 문서에 있는  A의 핑거프린트는 파일상의 핑거프린트와 비교되어야만 한다. 만약 이 두 개가 동일하지 않다면 이문서는  A가 보낸 문서와 다른 문서이다.

 

메시지와 메시지 다이제스트

문서와 핑거프린트에 해당되는 전자적인 의미에 대응되는 용어는 각각 메시지와 다이제스트이다. 메시지의 무결성을 보존하기 위해서는 메시지를 암호학적 해쉬함수라고 부르는 알고리즘을 적용해야 한다. 이 함수는 문서의 핑거프린트와 같은 역할을 하는 메시지의 압축된 이미지를 생성해 낸다.

 

차이점

이 두 개의 쌍인(문서/핑거프린트)와 (메시지/메시지 다이제스트)는 아주 유사한 개념이지만 차이점이 있다. 문서와 핑거프린트는 물리적으로 묶여있다. 하지만 메시지와 메시지 다이제스트는 물리적으로 볼 때 묶여 있지 않으며 따로 보낼 수도 있다. 더 중요한 것은 메시지 다이제스트는 변경되어서는 안 된다는 것이다.

 

무결성 점검

메시지 혹은 문서의 무결성을 점검하기 위해서 암호학적 해쉬함수를 사용해야 하고 이렇게 생성된 새로운 메시지 다이제스트와 이전의 메시지 다이제스트를 비교해 보아야 한다. 만약 이 두 개가 동일하다면, 원래의 메시지가 변경되지 않았다는 것을 확인할 수 있다.

 

암호학적 해쉬함수 기준

암호학적 해쉬 함수는 3가지 기준을 충족해야 한다. 이 3가지는 프리이미지 저항석, 제2 프리이미지 저항성, 충돌 저항성이다.

 

프리이미지 저항성

암호학적 해쉬함수는 프리이미지 저항성 이 있어야만 한다. 프리이지미 저항성이란 주어진 해쉬함수 h와 y=h(M)에 대해서 공격자가 y=h(M')를 만족하는 다른 메시지 M'을 찾아낸다는 것은 매우 힘들어야만 한다는 성질이다.

 

제2프리이지미저항성

메시지를 쉽게 위조할 수 없도록 하는 성질이다. 만약 A가 메시지와 다이제스트를 생성해서 이것을 모두 B에게 보냈다고 하면, 이기준은 공격자로 하여금 동일한 다이제스트를 생성해 내는 원래의 메시지와는 다른 메시지를 쉽게 만들지 못하도록 하는 성질이다. 다시 말해서 주어진 특정 메시지와 그 메시지 다이제스트가 있다면, 동일한 다이제스트를 갖는 다른 메시지를 만드는 것이 불가능하거나 적어도 무척 어려워야 한다는 것이다. 공격자는 메시지 M과 다이제스트 h(M)을 가로챈다. 공격자는 h(M)=h(m')을 B에게 보낸다 공격자는 이렇게 해서 메시지를 위조할 수 있는 것이다.

 

충돌저항성

공격자로 하여금 동일한 다이제스트를 가지는 2개의 메시지를 구하지 못하도록 하는 것이다. 여기서 공격자는 어떤 정보도 없는 상태에서 동일한 다이제스트를 갖는 두 개의 메시지를 생성할 수 있다. 여기서 동일한 다이제스트를 갖는 두 개의 유언장을 생성했다고 가정하자 그래서 이 유언장이 효력이 발생할 때가 되었다고 할 경우 위조된 유언장을 상속자에게 보여줄 것이다 왜냐하면 이 위조된 유언장도 다이제스트를 점검해 보면 아무런 문제가 없기 때문에 위조된 것인지 알 수가 없는 것이다. 이런 종류의 공격방법이 앞에서 언급했던 두 가지 종류의 공격보다 훨씬 용이하다는 것을 알 수 있다. 그래서 해쉬 함수는 충돌 저항성을 가져야만 한다는 것을 특히 강조하고자 한다.

 

메시지 인증

메시지 다이제스트를 이용하면 메시지 무결성이 보장된다. 즉, 메시지가 변경되지 않았다는 것을 확신할 수 있는 것이다. 메시지 다이제스트는 메시지의 송신자를 인증해주지 못한다. A가 B에게 메시지를 보낸다고 할 때, B는 메시지가 정말로 A로부터 송신된 것인지 알고 싶을 것이다. 메시지를 인증하기 위해서 A는 메시지를 보내는 사람이 자기 자산인지 다른 신분을 위장하는 사람이 아니라는 것을 보일 필요가 있다. 메시지 다이제스트로는 이것을 증명할 수 없다. 암호학적 해쉬함수로 생성한 다이제스트를 일반적으로 변경 감지 코드(MDC)라고 부른다.

이 코드는 메시지에 어떠한 변경이 발생하면 그것을 감지한다 메시지 인증을 위해 필요한 것은 메시지 인증코드(MAC)이다.

 

변경감지코드(MDC : modification detection code)

메시지의 무결성을 보장하는 메시지 다이제스트이다. 즉, 해당 메시지가 변경되지 않았다는 것을 보장해 준다. 만약 A가 B에게 메시지를 보낼 때 메시지가 전송 도중에 변경되지 않는다는 것을 확신하려면 A는 메시지 다이제스트인 MDC를 생성하여 메시지와 MDC를 모두 B에게 보낸다. B는 수신한 메시지로부터 새로운 MDC를 생성하여 A로부터 수신된 MDC와 비교한다. 만약 이두값이 동일하면 해당메시지는 변경되지 않았다는 뜻이 된다.

 

메시지와 인증코드

메시지의 무결성과 A가 메시지의 원래 전송자이고 다른 사람이 A인척 하는 것이 아니라는 것을 말해주는 데이터 출원지 인증을 보장하기 위해 우리는 변경 감지 코드(MDC)를 메시지 인증코드(MAC)로 바꿀 필요가 있다.

MDC와 MAC의 차이를 살펴보면 MAC에는 A와 B사이에 비밀값이 포함된다. 예를 들어 공격자가 가지고 있지 않는 비밀 키가 두 사람 사이의 비밀 값인 될 수 있다. A는 키와 메시지를 이어 붙인 K|M에 해쉬함수를 적용하여 MAC인 h(K|M)을 생성한다. A는 메시지와 MAC를 안전하지 않은 채널을 통해 B에게 전송한다. B는 MAC를 분리한 다음 K|M로부터 새로운 MAC를 생성한다. 그다음 자신이 새롭게 생성한 MAC와 A로부터 받은 MAC를 비교해 본다.

이때 두 개가 일치하면 해당메시지는 인증된 것이고 그렇지 않다면 그 메시지는 도중에 변경된 것이라고 간주할 수 있다.

반응형

'정보보안' 카테고리의 다른 글

생체인식  (0) 2023.03.01
디지털 서명  (0) 2023.02.28
DES(Data Encryption Standard)  (0) 2023.02.26
정보보호론/정보보안기사 현대 대칭키 암호2  (0) 2023.02.17
정보보호론/정보보안기사 현대 대칭키 암호  (0) 2023.02.14

댓글