본문 바로가기
Computer Science/Computer Network

[Network] MAC 과 Digital Signatures

by domo7304 2022. 10. 12.
  1. [Network] 암호화 해시 함수(Cryptographic hash function)
  2. [Network] MAC 과 Digital Signatures
  3. [Network] HTTP vs HTTPS, SSL 의 통신흐름

 

1. MAC (Message Authentication Code)

이전 글([Network] 암호화 해시 함수(Cryptographic hash function))을 통해 암호화 해시 함수가 왜 필요한지, 어떻게 쓰이는지 알아보았습니다. 암호화 해시 함수를 이용한 메시지 전달 과정과 MAC 이 하는 역할이 무엇인지 다시 살펴보겠습니다.

  1. Alice 가 메시지 m 에 secret key 인 s 를 이어붙여 (m + s) 를 생성한 후 , 그에 대한 해시값인 H(m + s) 을 생성합니다. 이 때 H(m + s) 를 MAC (message authentication code) 이라 부릅니다.
  2. 그 후, Alice 는 MAC 을 원래 메시지 m 에 붙여 (m, H(m + s)) 를 Bob 에게 전송합니다.
  3. (m, h) 을 받은 Bob 은 secret key 인 s 를 알고 있기 때문에, m 과 s 를 이용하여 H(m + s) 를 계산합니다. 만약 H(m + s) = h 라면, Bob 은 전송 과정에 문제가 없다고 생각합니다.

MAC 을 이용한 데이터 전달 과정

MAC 은 암호화 해시 함수를 통해 계산되며, Alice 와 Bob 이 서로 공유한 secret key 없이는 해시값을 얻을 수 없기 때문에 중간에서 데이터를 변조할 수 없으며 (integrity), 또한 secret key 를 공유한 Alice 와 Bob 외에는 해시값을 얻을 수 없기 때문에 데이터를 보낸 곳의 신원을 보장받을 수 있습니다 (authentication).

 

2. Digital Signature, 디지털 서명

현실에서 '서명' 이 그 서명을 한 사람이 누구인지를 증명해주듯이, '디지털 서명' 은 디지털 세상에서 그와 동일한 역할을 하기 위한 암호학적 기술이며, 중요한 응용 역할 중 하나는  공개키 인증 (public key certification), 즉 공개키가 특정 누군가에게 속한다는 것을 증명하는 것입니다.

공개키가 특정 누군가의 것이라고 증명해주는 것은 신원을 증명하고, 인증서를 발급하는 Certification Authority (CA) 에서 수행합니다. CA 에서는 다음과 같은 과정을 통해 공개키를 인증합니다.

인증서 발급 과정

  1. entity (사람, 라우터, 사이트 등등) 는 CA 에게 자신의 정보와 공개키를 전송합니다.
  2. CA 는 받은 정보와 공개키를 자신의 개인키로 서명합니다. 이것이 인증서입니다.
  3. CA 는 이 인증서를 다시 entity 에게 전송합니다.

예를 들어 발급받은 인증서가 어떤 사이트에 대한 사이트 인증서라고 하겠습니다. 이 때, 어떤 사용자가 사이트에 대한 접속을 요청한다면, 사이트는 이 인증서를 사용자에게 전송하고, 사용자는 웹 브라우저에 내장된 CA 공개키 목록 중, 인증서에 해당하는 인증기관의 공개키를 이용하여 사이트의 인증서를 복호화하여 사이트의 정보, 사이트의 공개키 등을 얻게 됩니다. 이 과정은 SSL 의 통신과정 의 일부에 속하게 됩니다.

댓글