Network security (2)

이태곤·2023년 12월 8일
0

컴퓨터망

목록 보기
31/32
post-thumbnail

1. Digital signature

  • 송신자의 개인키를 사용하여 메시지를 암호화하는 프로세스로, 암호화된 메시지는 공용 키로 해독될 수 있다.
    → 밥이 자신의 개인키로 메시지를 암호화하여 앨리스에게 전송하면, 앨리스는 밥의 공개키를 사용하여 해당 메시지를 해독

2. Message digests

  • Hash function: 데이터의 크기에 관계없이 항상 고정된 길이의 해시 값을 반환하는 함수

  • 긴 데이터를 암호화하는 데 오래 걸릴 수 있는 공개키 암호화 방식과 달리, 해시 함수는 비교적 빠르게 데이터를 변환하고 고정된 길이의 해시 값을 생성

  • 과정

    1. 밥이 원본 메시지 m을 해시 함수를 통해 H(m)으로 변환하고, 이를 밥의 개인키로 암호화하여 Kb(H(m))으로 만든 후 원본 데이터 m과 함께 앨리스에게 전송
    2. 앨리스는 받은 원본 데이터 m을 사용하여 다시 한번 해시 함수를 적용하여 H(m)을 얻은 후, 밥의 공개키로 암호화된 Kb(H(m))을 해독
    3. 해독된 값과 새롭게 계산된 H(m) 값을 비교하여 두 값이 일치하는지 확인

3. CA (Certification authority)

  • 공개키와 해당 공개키를 소유한 개체의 신원을 확인하고 보증하는 역할을 수행하기 위해서 디지털 인증서를 발급

    • 디지털 인증서: (사용자의 개인 정보 + 공개키) → CA의 개인키로 암호화
  • CA 활용 과정

    1. 밥이 CA에게 인증서 발급을 요청
    2. CA는 밥의 신원을 확인하고, 밥의 공개키와 신원 정보를 포함한 디지털 인증서를 생성
    3. CA는 개인키로 이 인증서에 서명하여 밥에게 제공
    4. 앨리스는 밥으로부터 받은 인증서를 확인하기 위해 CA의 공개키를 사용하여 해당 인증서의 유효성을 검증

4. Securing e-mail

  1. Confidentiality

    1. 앨리스는 대칭키 Ks를 생성
    2. 메시지 m을 Ks를 사용하여 대칭키 암호화 방식으로 암호화
    3. 앨리스는 밥의 공개키를 사용하여 Ks를 공개키 암호화 방식으로 암호화
    4. 앨리스는 암호화된 메시지와 함께 밥에게 암호화된 Ks를 전송
    5. 밥은 자신의 개인키를 사용하여 암호화된 Ks를 복호화하여 원래의 대칭키 Ks를 획득
    6. 대칭키 Ks를 사용하여 앨리스가 암호화한 메시지 m을 대칭키 복호화 방식으로 해독
  2. Integrity, Authentication

    1. 앨리스는 원본 데이터 m을 해시 함수에 입력하여 해시 값을 생성
    2. 앨리스는 해당 해시 값을 본인의 개인키로 암호화 후 전송
    3. 앨리스는 함께 원본 데이터 m을 밥에게 전송
    4. 받은 원본 데이터 m을 해시 함수에 입력하여 나온 해시 값과 앨리스의 공개키를 사용하여 암호화된 해시 값을 복호화 후 비교
      • 두 해시 함수 값을 비교하는 부분: 데이터의 무결성
      • 앨리스의 공개키를 이용하여 복호화 (앨리스의 개인키로 암호화 됨): 인증
  3. Confidentiality, Integrity, Authentication

    1. 앨리스는 원본 데이터 m을 해시 함수에 넣어 나온 값을 자신의 개인키로 암호화
    2. 원본 데이터 m을 대칭키 Ks를 이용하여 암호화
    3. 대칭키 Ks를 밥의 공개키로 암호화
    4. 암호화된 원본 데이터 m과 앨리스의 개인키로 암호화된 H(m)을 더해서 밥에게 전송
    5. 밥은 자신의 개인키를 사용하여 암호문에서 대칭키 Ks를 획득
    6. 획득한 대칭키 Ks를 사용하여 앨리스가 보낸 메시지에서 원본 데이터 m과 앨리스의 개인키로 암호화된 H(m) 획득
    7. 밥은 앨리스의 개인키로 암호화된 H(m)을 앨리스의 공개키로 복호화
    8. 복호화된 H(m) 값과 원본 데이터 m을 해시 함수에 입력하여 얻은 해시 값을 비교

5. TLS

  • 클라이언트와 서버 간 통신을 보호하고 보안을 제공하는 전송계층의 암호화 프로토콜

  • 전송 계층의 보안을 위해 필요한 4가지 요소

    1. Handshake: 클라이언트와 서버가 인증서나 개인키를 통해 서로를 인증하고, 통신에 사용할 공유 비밀키를 생성하여 교환
    2. Derivation: 핸드셰이크에서 생성된 공유 비밀키를 이용하여 여러 개의 키를 유도
      → 다양한 보안 기능을 수행하기 위해 사용
    3. Data Transfer: 암호화된 키를 사용하여 클라이언트와 서버 간 데이터를 안전하게 주고 받는다.
    4. Connection Closure: 통신이 종료될 때 안전하게 연결을 닫기 위한 특별한 메시지를 교환하여 연결을 종료
  • TLS 1.3: 취약한 보안 알고리즘을 제거하여 Cipher Suite의 수를 줄이고 보안을 강화
    → Cipher Suite: TLS에서 사용되는 다양한 암호화 알고리즘들을 조합하여 나타내는 방식
    → Diffie-Hellman: 주요한 보안 키 교환 방법


6. IPsec

  • 네트워크 계층에서 보안성을 제공하기 위한 프로토콜

  • Mode

    1. Transport Mode: 이 모드에서는 데이터그램의 페이로드만을 암호화하고 인증
      → IP 페이로드만을 보호하여 데이터의 기밀성과 무결성을 보장
    2. Tunnel Mode: 전체 IP 데이터그램을 암호화하고 인증
      → 암호화된 IP 패킷은 새로운 IP 패킷으로 캡슐화되어 다른 네트워크로 전송
  • Two IPsec protocols

    1. Authentication Header: 인증과 무결성을 제공하지만 기밀성(암호화)은 제공하지 않는다.
    2. Encapsulating Security Payload: ESP는 인증, 무결성, 그리고 기밀성을 제공하므로, AH보다 널리 사용된다.
  • IPsec에서는 보안 연결을 설정하기 위해 Security Association (SA) 사용
    • 통신하는 두 호스트 간에 보안적으로 신뢰할 수 있는 통신 경로를 설정하는 데 사용
      → 암호화 알고리즘 및 키, 인증 알고리즘 및 키, 통신 경로와 방향, SA의 수명과 시간 제한

7. Stateful & Stateless packet filtering

  • 내부 네트워크가 인터넷에 연결된 경우, 라우터 방화벽은 패킷 단위로 정보를 필터링하며 패킷을 전달하거나 삭제하는 결정을 내린다.

  • Stateless Packet Filter: 각 패킷을 독립적으로 처리하여 필터링

    • 모든 패킷은 개별적으로 확인되며, 연결 상태를 추적하지 않기 때문에 일부 패킷은 연결 설정과 무관하게 허용될 수 있다.
      예를 들어, 목적지 포트가 80으로 설정된 패킷이 허용될 수 있지만, 실제 TCP 연결이 설정되지 않았을 수 있다.
      → 상태를 추적하지 않기 때문에 일부 무의미한 패킷이 허용될 수 있다.
  • Stateful Packet Filter: 모든 TCP 연결의 상태를 추적하고 관리

    • 패킷이 들어오거나 나가는 동안에도 연결 설정(SYN), 해제(FIN)를 추적하여 패킷이 올바른 연결인지 확인한다.
      비활성화된 연결은 일정 시간 후에 폐기되어 해당 연결의 패킷을 더 이상 허용하지 않는다.
      → 유효한 연결에 대해서만 패킷을 허용하고, 무의미한 패킷이 허용되는 경우를 방지할 수 있다.

8. IDS (intrusion detection system)

  • 네트워크나 시스템 내에서의 침입을 탐지하고 신속하게 대응하기 위한 시스템

  • Deep Packet Inspection: 패킷 내용을 분석하여 바이러스나 공격 문자열과 일치 여부를 확인하여 침입을 감지

  • Examine correlation among multiple packets

    • Port Scanning, Network Mapping, DoS Attack

0개의 댓글