본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다.
Athentication (인증)
- '나'임을 증명하는 과정
인증 protocol
1. Protocol 1.0
- Alice가 Bob에게 확인 메시지를 보내는 방법
- Bob은 'I am Alice'라고 보낸 메시지가 누구로부터 왔는지 확인할 수 없다. Trudy가 같은 메시지를 보낼 수 있기 때문이다.
2. Protocol 2.0
- Alice가 Bob에게 확인 메시지와 IP address를 보내는 방법
- Bob은 'I am Alice'라고 보낸 메시지와 IP address가 누구로부터 왔는지 확인할 수 없다. Trudy는 IP datagram에 Alice의 IP address를 넣어서 보낼 수 있기 때문이다.
3. Protocol 3.0
- 비밀번호를 보내는 방법
- Trudy가 Alice's의 통신을 도청하여 비밀번호를 알아낼 수 있기 때문에 위험할 수 있다.
4. Protocol 3.1
- 암호화된 비밀번호를 보내는 방법
- Trudy가 Alice's의 통신을 도청하여 암호화된 비밀번호를 알아낼 수 있기 때문에 위험할 수 있다.
- 같은 비밀번호가 계속 이용되기 때문에 도청당하면 보안에 문제가 생긴다.
5. Protocol 4.0
- 같은 비밀번호 사용 문제를 해결하기 위해서 nonce(임의의 숫자)라는 것을 이용합니다. nonce는 1회성입니다.
- 동작
* Alice가 Bob에게 'I am Alice'라고 메시지를 보낸다.
* Bob은 임의로 R를 골라서 Alice에게 보냅니다.
* Alice는 R을 symmetric key로 암호화하고 Bob에게 다시 보냅니다.
* Bob은 암호화된 메시지를 복호화합니다.복호화 했을 때, 자신이 보낸 R과 동일하다면, 통신한 사람은 Alice가 맞습니다.
- 문제 : Symmetric key를 어떻게 둘이 공유할까라는 문제가 존재합니다.
6. Protocol 5.0
- Public key를 이용해서 protocol 4.0의 문제를 보완합니다.
- 동작
* Alice가 Bob에게 'I am Alice'라고 메시지를 보낸다.
* Bob은 임의로 R를 골라서 Alice에게 보냅니다.
* Alice는 자신의 private key로 R을 암호화하여 Bob에게 보냅니다.
* Bob은 Alice에게 public key를 달라고 합니다.
* Alice는 public key를 Bob에게 보냅니다.
* Bob은 public key로 메시지를 복호화하고 R을 확인합니다.
- 문제 : 과연 Bob이 통신한 사람이 Alice일까요? 아래와 같이 처음부터 Trudy와 통신했을 수 있습니다.
- 문제 : 또는, Alice와 Bob이 통신하지만 중간에 Trudy가 있을 수 있습니다.
공인 인증
- 위 인증 protocol에서 근복적인 문제는 'Alice라고 말한 사람이 진짜 Alice인가' 이다.
- '이 사람은 Alice이다'라고 증명해줄 인증서가 필요하다.
- 인증기관에서 인증된 사용자의 정보를 인증기관의 private key로 암호화하여 사용자들에게 제공한다. 인증기관의 private key로 암호화된 사용자 정보는 다른 사용자에게 자신임을 증명하는 수단으로 사용된다.
- 암호화된 사용자 정보는 인증기관의 public key로 복호화 할 수 있다. 인증기관의 public key는 브라우저의 제조사가 하드코딩으로 입력해 놓았기 때문에 신뢰 가능하다.
- 예시 : 공인 인증서
Integrity
- 보낸 메시지의 내용이 바뀌지 않고 안전하게 도착해야 한다.
- 위 인증과 유사한 과정
* 메시지가 중간에 다른 누군가로부터 방해 받지 않게 암호화
- 가장 간단한 방법은 보내는 사람의 private key로 암호화하는 것이다. 그러나 비대칭키 암호화는 처리 시간이 오래 걸리는 방법입니다. 따라서, 쉽게 바꿀 수 있는 방법이 필요합니다.
- Message digest
* 해시 함수는 임의의 길이를 가지고 있는 메시지를 고정된 길이의 값으로 바꿔주는 함수입니다. 이 해시 함수를 적용하여 긴 메시지를 짧은 해시 값으로 바꿔줍니다. 이렇게 나온 값을 messge digest라고 합니다.
* 해시 함수 특징
+ 해시 함수는 같은 입력에 대해 항상 같은 출력이 나옵니다.
+ 같은 해시 값을 갖는 두 개의 다른 입력 메시지(해시 충돌 상황)에 대해 해시 값을 가지고 원래 메시지들을 알아 내는 것은 불가능 합니다.
+ 위 2가지 특징을 통해서 원래 메시지와 비교하면 데이터의 무결성을 확인할 수 있다.
* 해시 함수 종류
+ MD5
+ SHA
- 해시 함수를 이용한 Integrity 확인
* Bob은 2개의 메시지를 합쳐서 보냅니다. 따로 보내면, 중간에 방해를 받을 수 있습니다.
* 첫 번째로, 메시지를 그냥 Alice에게 보냅니다.
* 두 번째로, 메시지의 일부를 해시 함수를 이용해서 message digest를 구하고, 암호화하고 Alice에게 보냅니다.
* Alice은 Bob의 public key로 암호화된 메시지에서 message digest를 얻습니다. 그리고 그냥 온 메시지를 해시 함수에 넣어서 message digest을 얻습니다. 둘을 비교해서 같다면, Bob이 보낸 것이 맞고, 메시지가 변하지 않았다는 것을 증명합니다. Integrity가 보장되는 것입니다.
참고
- 자료
'Software Courses > Network' 카테고리의 다른 글
Network security : Securing TCP connection, SSL (0) | 2021.01.13 |
---|---|
Network security : securing e-mail (0) | 2021.01.13 |
Network security : cryptography (0) | 2021.01.12 |
Network security : overview (0) | 2021.01.12 |
Link layer : wireless (0) | 2021.01.11 |