Software Courses/Network

Network security : Authentication, Integrity

김 정 환 2021. 1. 12. 23:24
반응형
본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 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가 있을 수 있습니다.

man in the middle attack

 

 

공인 인증

    - 위 인증 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가 보장되는 것입니다. 

 

 

 

참고

    - 자료

    - Message digest

반응형

'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