네트워크

8. Network Security

YJH3968 2021. 10. 6. 16:08
728x90

Network Security의 조건

  • confidentiality : 메시지는 수신자와 송신자 이외에는 알 수 없어야 한다.
  • authentication : 통신 상대가 실제 원하는 상대인지를 확인해야 한다. 즉, 인증을 말함
  • message integrity : 메시지가 중간에 변형되지 않도록 해야 한다.
  • access and availability : 사용자가 항상 접근 및 사용 가능해야 한다.

Cryptography

  • 대칭키 암호
    • 암호화와 복호화에 같은 키를 사용하는 방식
    • 송신자와 수신자가 사전에 만나 키를 공유해야 한다는 단점이 있다.
  • 공개키 암호
    • 각 네트워크 edge는 모든 사람이 공유할 수 있는 공용 키와 각자가 가지고 있는 비밀 키가 있다.
    • 수신자로부터 공용 키를 받아 암호화해 데이터를 보내고 수신자가 데이터를 받으면 비밀 키를 이용해 복호화한다.
    • 이를 이용해 authentication을 구현할 수 있다.
      • 메시지를 보내는 사람이 송신자 자신임을 증명한다고 하자.
      • 수신자가 random 메시지를 보내면 해당 메시지를 자신이 가지고 있는 비밀 키로 암호화하고 수신자는 해당 메시지를 송신자의 공유 키로 복호화해 원래 메시지와 동일한지 확인하면 된다.
    • 이를 이용해 message integrity를 구현할 수 있다. 이 방식을 digital signature라고 한다.
      • 보내는 메시지를 hash function을 통해 작은 메시지로 만들어 이를 비밀 키로 암호화해 보내고 수신자는 송신자의 공용 키로 복호화한 결과가 원래 메시지에 hash function을 적용한 결과와 같은지를 확인한다.

SSL

  • Secure Socket Layer
  • TLS(Trasport Layer Security)라고도 한다.
  • TCP에서는 Security 기능을 제공하지 않기 때문에 이를 별도로 만들었다.
  • application layer에서 존재하는 library로 HTTP 메시지를 TCP 소켓을 통해 보내기 전에 보안과 관련된 처리를 해준다.
  • HTTPS : HTTP 메시지를 SSL을 통해 TCP로 보낸다.
  • TCP 연결을 시작한 뒤 클라이언트가 서버에게 SSL 연결을 요청하면 서버는 공용 키 인증서를 보내 서버의 공용 키를 알려준다. 이를 이용해 암호화된 메시지를 보낸다.
  • HTTP 메시지를 SSL을 통해 record로 만든다. record는 length - type - data - MAC(Message Authentication Code)으로 구성된다. MAC은 data, 클라이언트와 서버 사이의 key, sequence(record의 순서를 바꾸는 것을 막음), type(보낼 데이터가 남아 있는지를 알려줌)을 hash function을 적용한 결과이다. TCP의 payload에는 이 record를 담는다.

Firewall

  • gateway에서 모든 패킷을 감시하는 장치
  • IP 뿐만 아니라 TCP port도 확인할 수 있어야 한다.(layering violation)

 

출처 : 컴퓨터네트워크 강의

728x90