[Computer network] Chapter 10 - Network Security

이한량·2024년 12월 12일

Computer Network

목록 보기
11/11

1. Network Security

  • Attacks : 공격은 크게 Confidentiality(기밀성), Integrity(무결성), Availability(유효성) 세 가지 공격 목표로 나누어진다.

1-1. Confidentiality

  • Confidentiality(기밀성) : 허용되지 않은 사용자나 시스템이 정보에 접근하지 못하도록 보호하는 것으로, 주로 암호화를 통해 기밀성을 보장한다. 암호화 방식은 크게 대칭 키(Symmetric-key) 방식과 비대칭 키(Asymmetric-key) 방식으로 나뉜다.

1-1-1. Symmetric-key Cipher

  • Symmetric-key Cipher (대칭 키 암호) : 데이터의 암호화와 복호화에 동일한 키를 사용하는 방식이다.

    • 송신자와 수신자가 동일한 키를 공유하여 데이터를 암호화하거나 복호화한다.

    • 이는 단순하지만, 상대적으로 key를 쉽게 유추해낼 수 있다는 문제점이 있다.

    • 또한 키를 어떻게 전달하느냐도 문제이다. 중간에 키가 노출될 경우, 기밀성을 전혀 보장할 수 없다.

  • 예시 - 시저 암호화 : Additive cipher 방식의 시저 암호화 예시를 살펴보자.

    • 암호화 표

    • key = 15, 'hello' 암호화

      • 결과 : 'WTAAD'
    • key = 15, 'WTAAD' 복호화

  • 예시 - Monoalphabetic Substitution Cipher : 특정 문자를 다른 문자로 매핑하는 암호화 방식이다.

    • 위와 같은 암호화 방식은 알파벳의 특성상 어떤 문자가 어느 문자와 매핑되는지 유추할 수 있다.

      • E는 가장 빈번하게 사용되는 알파벳이므로, E와 매핑된 R이 가장 빈번하게 사용될 것이다.
    • Autokey cipher 방식으로 어느정도 해결 가능하다.

      • 예를 들어, "Attack is today"라는 평문에선 't'가 세 번 사용되었지만, 자동 키 암호화 방식을 사용하면 같은 t에 대해서도 각기 다른 알파벳이 매핑될 것이다.
  • Data Encryption Standard (DES) : 1971년 IBM에서 LUCIFER라는 암호화 알고리즘이 개발되었고, 이는 1977년 NSA, NIST에 의해 데이터 암호화 표준(DES)로 채택되었다.

    • 64비트 블록 단위로 데이터를 처리한다.

    • 암호화 : 128비트 키 사용(초기) \rarr 56비트 키 사용(개선)

    • 이 방식은 Computing power가 증가함에 따라, 쉽게 풀 수 있는 알고리즘으로 전락하였다.

      • 좀 더 복잡한 암호화를 위해 Triple DES 방식을 도입함.

      • Triple DES : 192비트 키(64비트 DES 키를 3개 사용)를 사용하여 암호화하는 방식이지만, 오버헤드가 크다는 단점이 존재하였다.

  • AES : DES를 대체하기 위한 암호화 기법으로 128 블록 단위로 데이터를 처리하며, 3가지 종류의 암호화 키(128, 192, 256 비트)를 지원한다.

    • "S-box"와 permutation을 혼합한 방식을 사용하여 데이터의 복잡성을 높였다.

1-1-2. Asymmetric key cipher

  • Asymmetric key cipher (비대칭 키 암호화) : 서로 다른 키를 사용하여 데이터를 암호화 및 복호화 하는 방식이다.

    • 공개 키 (Public key) : 데이터를 암호화하는 데 사용

    • 개인 키 (Private key) : 데이터를 복호화하는 데 사용

    • Public key로 암호화된 데이터는 매핑된 Private key로만 복호화 할 수 있음.

  • 예시

    • Bob : Key-generation procedure를 통해 공개키와 개인키를 생성

      • 공개키 : 암호화를 위해 공개적으로 배포

      • 개인키 : 복호화를 위한 개인키

    • 생성된 공개키는 보안이 보장되지 않는 채널을 통해 모든 사람에게 배포됨

    • Alice : 공개키를 사용하여 문서를 암호화한 뒤, 보안이 보장되는 채널로 메시지를 전달함

    • Bob은 개인키를 사용하여 복호화

  • RSA : 비대칭 키 암호화 방식의 대표적인 암호화 알고리즘이다.

    • RSA는 매우 큰 소수(1024비트 이상의 정수)를 이용하여 암호화와 복호화를 진행한다.

    • RSA의 보안성은 큰 정수를 소인수분해하는 계산 난이도에 의존한다.

      • 소인수분해의 시간 복잡도는 O(elognloglogn)O(e^{logn*loglogn})이다.

1-2. Integrity

  • Integrity (무결성) : 무결성은 데이터가 전송 도중 손상되거나 변조되지 않았음을 보장하는 보안 속성이다.

    • 기밀성보다 무결성이 중요한 메시지또한 존재한다.

      • 예를 들면, 계약서, 공공 데이터, 유언장, ...

      • 이러한 문서들은 누구나 읽을 수 있지만, 내용이 변경되면 안된다.

    • 무결성 보장 예시

      • 메시지를 생성한 뒤, Hash function을 사용하여 메시지의 고유한 Digest를 생성한다.

      • 메시지는 안전하지 않은 채널로 전송하고, Digest는 안전한 채널로 전송한다.

      • 수신측은 동일한 해시 함수를 사용해 받은 메시지로부터 Digest를 생성한다.

      • 두 Digest가 일치할 경우, 무결성이 보장된다.

      • 위 경우, 메시지의 내용에 대한 무결성은 보장되나 실제 저자가 동일한지에 대한 무결성은 보장하지 못함.

  • Message Authentication : 메시지 인증은 메시지의 내용과 출처 둘 다 무결성을 보장하는 것을 의미한다.

    • 공캐기를 통해 해쉬 함수를 생성하고, 메시지로부터 해쉬 함수를 통해 MAC을 생성한다.

    • 생성된 MAC과 메시지를 함께 안전한 채널로 전송한다.

    • 수신측에서 메시지로부터 MAC을 생성하고, 생성된 MAC과 수신된 MAC의 일치 여부를 확인한다.

      • 일치 : 메시지 내용과 출처의 무결성 보장

      • 불일치 : 메시지 혹은 출처의 무결성이 보장되지 않음

    • 위 방식은 대칭키 암호화 방식이므로, key를 안전하게 공유하고 관리하는 데 여전히 어려움이 존재함.

  • Digital Signature (전자 서명) : 전자 서명은 메시지 무결성, 메시지 인증을 포함한 추가적인 보안 서비스를 제공하는 매우 강력한 기술이다.

    • MAC과는 달리, 비대칭 암호화 기법을 사용한다.

    • 예시

      • Alice는 메시지에 해쉬 함수를 적용하여 생성한 Digest를 자신의 개인 키로 전자 서명을 생성한 뒤, 안전한 채널로 전송한다.

      • Bob은 수신한 Alice의 메시지에 해쉬 함수를 적용한 Digest와 Alice의 전자 서명을 공개키로 복호화 한 Digest를 비교한다.

      • 두 값이 같으면 메시지 무결성과 메시지 인증을 모두 만족한다.

    • 인증 센터를 거치는 방식도 존재

2. Network Layer Security

  • Network Layer Security : 네트워크 계층에서의 보안은 네트워크 계층 서비스를 직접적으로 이용하는 애플리케이션(호스트-호스트, 라우터-라우터, 호스트-라우터 간 통신)을 보호하는 데 초점을 맞추고 있다.

    • 주로 IPv6 환경을 기준으로 고안되었다.
  • IPSec Transport Mode : 호스트 간 직접적인 통신에서 데이터의 보안을 보장하기 위해 사용된다.

    • Payload 부분만 보호하며, IP 헤더는 그대로 유지한다.

      • 보안을 위한 IPSec 헤더와 트레일러가 Payload에 추가됨.
  • IPSec Tunnel Mode : 네트워크 간 통신의 보안을 보장하기 위해, 혹은 VPN을 구현하기 위해 사용된다.

    • 기존의 패킷 전체를 암호화하고, 새로운 헤더를 붙여 캡슐화한다.

      • 기존 패킷을 암호화하여 페이로드로 만든다.

      • 새로운 IPSec 헤더를 붙여 새로운 패킷으로 만든다.

  • Security Protocols : IPSec은 네트워크 계층에서 IP 패킷의 인증 및 암호화를 제공하기 위해 두 가지 주요한 보안 프로토콜을 정의한다.

    • Authentication Header (AH) Protocol : AH 프로토콜은 패킷의 무결성과 인증을 보장하기 위해 사용된다.

      • 암호화는 제공하지 않는다.

      • 무결성과 인증을 보장

    • Encapsulating Header Protocol (ESP) : ESP 프로토콜은 데이터 암호화와 무결성, 인증을 보장한다.

      • 암호화 기능을 제공한다.

      • 무결성과 인증을 보장한다.

  • Security Association (SA) : 보안 연관은 IPSec에서 매우 중요한 개념으로, 두 호스트 간의 논리적 보안 관계를 정의한다.

    • SA는 암호화와 인증 등의 보안 기능을 정의하고, 이를 기반으로 IPSec이 동작한다.

    • 쉽게 말해, 두 호스트 간 보안 범위와 규칙을 설정하는 것으로 이해할 수 있으며, IPSec은 이를 기반으로 어느 범위까지 보안 기능을 제공할지 결정한다.

  • Virtual Private Networks (VPN) : VPN은 공용 네트워크와 IPSec을 활용해 프라이빗 네트워크를 확장하는 기술이다.

    • 물리적인 전용선 없이, 인터넷과 같은 공용 네트워크에 IPSec을 활용해 논리적인 사설 네트워크를 생성한다.

      • IPSec은 VPN 구현을 위해 보안 터널을 생성한다. 이때 Tunnel mode가 사용된다.

      • VPN으로 연결된 두 네트워크 간 데이터는 암호화되어 안전하게 전송된다.

    • 이는 마치 서로 떨어져 있는 두 라우터가 같은 네트워크에 위치하는 것과 같은 효과를 나타낸다.

3. Transport Layer Security

  • Transport Layer Security : 운송 계층의 보안은 애플리케이션 계층의 데이터를 보호하기 위해 크게 두 가지 주요 프로토콜을 사용한다.

    • Secure Sockets Layer (SSL) : HTTP와 같은 애플리케이션 계층 프로토콜에서 생성된 데이터를 받아 압축, 서명, 암호화를 진행한 후 신뢰할 수 있는 운송 계층(예를 들면, TCP)에 전달하는 방식이다.

      • Handshake protocol

      • Record Protocol

    • Transport Layer Security (TLS) : SSL을 개선한 방식으로, 현대 시스템에서 주로 사용되는 보안 방식이다.

4. Firewall

  • Firewall : 네트워크 보안의 핵심 요소인 방화벽은 내부 네트워크와 외부 네트워크(인터넷) 간의 트래픽을 제어하기 위해 설치되는 장치 또는 소프트웨어이다.

    • 네트워크 트래픽을 제어하여 일부 패킷은 전달하며, 일부 패킷은 차단한다.

      • 허용된 트래픽만 전달한다.
    • 네트워크의 경계(라우터)에 설치된다.

  • Packet-Filter Firewall : 패킷 필터 방화벽은 패킷의 헤더를 분석하여, 패킷을 허용하거나 차단하는 방식으로 동작한다.

    • 라우터에 설치되어 동작한다.

    • 필터링 테이블에 정의된 규칙(Rule)에 따라 패킷을 차단하거나 허용한다.

      • 예를 들어, 출발지 IP가 특정 범위에 속하면 차단하는 식이다.
  • Proxy Firewall : 프록시 방화벽은 애플리케이션 계층의 정보를 기반으로 메시지를 필터링하는 방화벽이다.

    • 패킷 필터링 방화벽과 달리, 헤더 정보 뿐만 아니라 메시지의 내용(Payload)를 분석하여 차단/전달 여부를 결정한다.

      • 외부 인터넷에서 내부 HTTP 서버로 들어오는 모든 HTTP 패킷은 먼저 프록시 방화벽에 전달된다.

      • 프록시 방화벽은 모든 HTTP 패킷을 검사하고, 허용되지 않은 패킷은 차단하여 외부 방화벽으로 전달한다.

      • 허용된 패킷은 HTTP 서버로 전달한다.

profile
한량 극복 프로젝트

0개의 댓글