- [Network] 암호화 해시 함수(Cryptographic hash function)
- [Network] MAC 과 Digital Signatures
- [Network] HTTP vs HTTPS, SSL 의 통신흐름
1. MAC (Message Authentication Code)
이전 글([Network] 암호화 해시 함수(Cryptographic hash function))을 통해 암호화 해시 함수가 왜 필요한지, 어떻게 쓰이는지 알아보았습니다. 암호화 해시 함수를 이용한 메시지 전달 과정과 MAC 이 하는 역할이 무엇인지 다시 살펴보겠습니다.
- Alice 가 메시지 m 에 secret key 인 s 를 이어붙여 (m + s) 를 생성한 후 , 그에 대한 해시값인 H(m + s) 을 생성합니다. 이 때 H(m + s) 를 MAC (message authentication code) 이라 부릅니다.
- 그 후, Alice 는 MAC 을 원래 메시지 m 에 붙여 (m, H(m + s)) 를 Bob 에게 전송합니다.
- (m, h) 을 받은 Bob 은 secret key 인 s 를 알고 있기 때문에, m 과 s 를 이용하여 H(m + s) 를 계산합니다. 만약 H(m + s) = h 라면, Bob 은 전송 과정에 문제가 없다고 생각합니다.
MAC 은 암호화 해시 함수를 통해 계산되며, Alice 와 Bob 이 서로 공유한 secret key 없이는 해시값을 얻을 수 없기 때문에 중간에서 데이터를 변조할 수 없으며 (integrity), 또한 secret key 를 공유한 Alice 와 Bob 외에는 해시값을 얻을 수 없기 때문에 데이터를 보낸 곳의 신원을 보장받을 수 있습니다 (authentication).
2. Digital Signature, 디지털 서명
현실에서 '서명' 이 그 서명을 한 사람이 누구인지를 증명해주듯이, '디지털 서명' 은 디지털 세상에서 그와 동일한 역할을 하기 위한 암호학적 기술이며, 중요한 응용 역할 중 하나는 공개키 인증 (public key certification), 즉 공개키가 특정 누군가에게 속한다는 것을 증명하는 것입니다.
공개키가 특정 누군가의 것이라고 증명해주는 것은 신원을 증명하고, 인증서를 발급하는 Certification Authority (CA) 에서 수행합니다. CA 에서는 다음과 같은 과정을 통해 공개키를 인증합니다.
- entity (사람, 라우터, 사이트 등등) 는 CA 에게 자신의 정보와 공개키를 전송합니다.
- CA 는 받은 정보와 공개키를 자신의 개인키로 서명합니다. 이것이 인증서입니다.
- CA 는 이 인증서를 다시 entity 에게 전송합니다.
예를 들어 발급받은 인증서가 어떤 사이트에 대한 사이트 인증서라고 하겠습니다. 이 때, 어떤 사용자가 사이트에 대한 접속을 요청한다면, 사이트는 이 인증서를 사용자에게 전송하고, 사용자는 웹 브라우저에 내장된 CA 공개키 목록 중, 인증서에 해당하는 인증기관의 공개키를 이용하여 사이트의 인증서를 복호화하여 사이트의 정보, 사이트의 공개키 등을 얻게 됩니다. 이 과정은 SSL 의 통신과정 의 일부에 속하게 됩니다.
'Computer Science > Computer Network' 카테고리의 다른 글
[Network] HTTP/1.0 vs HTTP/1.1 vs HTTP/2 (0) | 2022.12.29 |
---|---|
[Network] 암호화 해시 함수(Cryptographic hash function) (0) | 2022.10.12 |
[Network] HTTP vs HTTPS, SSL 의 통신과정 (0) | 2022.10.11 |
[Network] CDN 이란? CDN 을 사용하는 이유 (0) | 2022.10.05 |
[Network] GSLB 란? GSLB 를 사용하는 이유 (0) | 2022.10.05 |
댓글