Network Security - SSL

2026. 4. 8. 22:31·#컴공에서살아남기/201 보안기초

보안 기술들이 실생활에서 사용되는 사례들,,, 

IPSec, SSL or TLS

어떤 계층에 속하느냐에 따라 할 수 있는 것이 달라진다.

 

Secure Sockets Layer (SSL)

운영체제 안에 있는 서비스 정도로 생각하면 된다. 어플리케이션에게 transparent(투명한) 하다. 즉, 존재감이 잘 느껴지지 않는다.

(동작은 하는데, 사용자가 느끼기 힘듦)

http가 ssl와 같이 동작하는게 https이고, 최근에 TLS로 넘어가는 추세이다.

어플리케이션을 위한 보안

  • Confidentiality : 기밀성 (암호화 적용)
  • Integrity : 무결성 (보장)
  • Authentication : 인증 (문제 신경 씀)

을 제공한다. 

 

PGP Pretty Good Privacy ; 이메일 안전하게 보낼 때 사용하는 방식

1회성으로 사용할 때는 쓸만 하지만, 긴 시간에 걸쳐 사용하기에는 한계...

이메일은 작성해서 send하면 끝.

근데 인터넷은(게임, 넷플릭스)... 계속해서 이어진다. (byte stream이나 interactive data가 왔다갔다 함)

 

SSL 구조?

  1. Handshake : 양자간 통신을 안전하게 하기 위해서는 인증서 교환 단계가 필요하다. (서로 인증 안하면 MITM당함)
    상대의 공개키를 가지고 데이터를 암호화하는 건 속도가 너무 떨어진다
    → 상대의 공개키를 가지고 앞으로 사용할 중요한 키(세션키)를 암호화 하는데 사용..
    근데 키를 만들어서 공유하는 것 보다 seed값을 공유하고 seed에서 생성을 하면 주고받는 데이터 양이 줄것이다!
  2. Key derivation (키 도출 단계) : seed값 기준으로 필요한 키 생성 (세션키 생성했다는 건 대칭키가 나왔다는 것)
  3. Data transfer : 데이터 주고받기
  4. Connection closure : 연결 종료

*Session Key 세션키 : 공개키를 이용해서 대칭키를 공유하자! 사용 빈도가 높기 때문에 일회용(노출이 많이돼서)

1. Handshake

인증서 교환 !!!!

MS (master secret) : 가장 중요한 seed. 일회성이 아님 (노출 잘 안된다)
EMS (encrypted master secret) : ms를 암호화한 것. 넘겨주기 위해서 암호화함

2. Key Derivation 키 도출

MS를 세션키로 바로 쓸 수는 없다...

세션키도 방향성을 따진다!!! 서버 →  클라이언트, 클라이언트 → 서버

한쪽이 뚫려도 다른 한쪽은 쉽게 무너지지 않게 하겠다!

MS부터 키를 만들어서 사용하며, 키는 총 4개가 생성된다.

  • \(K_{c}\) : encryption key. client → server
  • \(K_{s}\) : encryption key. server → client
  • \(M_{c}\) : MAC(Message Authentication Code) key. client → server
  • \(M_{s}\) : MAC key. server → client (MAC도 대칭키 기반이라서)

KDF(Key Derivation Function)를 만들어놓고 필요한 만큼 키를 만들어서 사용한다.

3.1 data records

TCP의 설계 원칙 자체는 세그먼트가 단위가 아니라 바이트의 흐름을 다루는 프로토콜이다.

영화를 볼 때 영화 정보가 바이트 흐름 형태로 계속 날아올텐데 그럼 무결성 체크는 언제? 다 끝나고? ㅋㅋ 그럼 2시간 보고 마지막에 체크.. 중간에 깨진게 있으면 다시 리플레이하겠다는건가?

— 영화가 끝날 때 까지는 기다릴 수 없다! SSL에서 무결성을 다루기 위한 단위가 record

(SSL이 하나의 프로토콜이고 바이트의 흐름을 레코드 단위로 나눔) 

→ record 단위마다 데이터가 깨졌는지 체크한다.

 

잘린 데이터의 길이가 천차만별일 수 있다. 보내는 사람은 문제가 없지만 받는 사람은 데이터의 길이를 제대로 알지 못하면 MAC을 제대로 만들어 낼 수 없다. (MAC의 길이는 항상 일정함)

→ length 필드를 만들어주면 된다!

3.2 sequence numbers 

레코드를 여러개 만들어서 보냈다.

  • 해커가 순서를 바꾸거나(re-order) 하나를 삭제하거나 하나를 더 붙여서 공격한다면? (순서가지고 장난치기)
    — 보내는 사람은 잘 알지만 순서가 이게 맞는지 받는 사람은 모른다.
    → sequence(record) number를 헤더에다 집어넣으면 해결! MAC을 만들 때 순서 번호를 넣어서 만들면 조작이 불가능해진다.
    (MAC은 대칭키에 기반하기에 해커가 이 비밀키를 모르면 장난칠 수 없다)
    💡 근데 사실은 헤더에 시퀀스 넘버를 헤더에 따로 만들고 집어넣어서 보내지는 않는다? 안집어넣으면 어떻게 해결하겠다는 거냐?
  • 해커가 전체를 녹음해서 replay attack을 한다면?
    → Nonce를 사용한다.

3.3 control information

  • 해커가 맨 끝 녀석 또는 n번 이후로 다 날려버림.. 하지만 받는 사람은 끝이 몇번인지 모른다!! truncation attack
    → type 필드를 추가해서 마지막일 때만 값을 1로 변경(default 0)

Summary

Web server와 Web client (Web Browser) 사이에 SSL이 항상 돌아간다.

하지만 SSL은 완벽하지 않다! 왜???????

  • 레코드 길이를 얼마나 길게 할 것인가
  • 암화 알고리즘의 종류는 무엇을 사용할 것이냐?
    → 서버에서 지원하는 암호화 알고리즘과 브라우저에서 지원하는 암호화 알고리즘이 다르면 조율negotiation이 필요하다. handshake 단계에서 일어난다.

암호화 알고리즘들을 합쳐서 Cipher suite(암호 제품군)라고 한다. 대칭키 암호화 알고리즘, 개인키 알고리즘, MAC 알고리즘이 포함되어 있다. 암호 알고리즘 세트 메뉴 같은 것. 

 

저작자표시 비영리 변경금지 (새창열림)

'#컴공에서살아남기 > 201 보안기초' 카테고리의 다른 글

네트워크 보안 - DoS, DDoS  (1) 2026.04.15
네트워크 보안 - IPsec  (1) 2026.04.14
암호의 이해  (0) 2026.04.05
Internet (TCP/IP)  (0) 2026.04.05
악성코드  (0) 2026.04.05
'#컴공에서살아남기/201 보안기초' 카테고리의 다른 글
  • 네트워크 보안 - DoS, DDoS
  • 네트워크 보안 - IPsec
  • 암호의 이해
  • Internet (TCP/IP)
권 한
권 한
포렌식 같이 하실래요?
  • 권 한
    Kwon5an.log
    권 한
    • 분류 전체보기 (115) N
      • @Xpert (28)
        • 2025 (23)
        • 2026 (5)
      • Forensic (26)
        • Windows (7)
        • Linux (3)
        • Memory (4)
        • Network (0)
      • System Hacking (6)
      • Reversing (0)
      • STUDY (11)
        • 컴퓨터 구조 (2)
        • 운영체제 (0)
        • 알고리즘 자료구조 (0)
        • CS (7)
      • #컴공에서살아남기 (15) N
        • 201 C++ (3)
        • 201 보안기초 (12) N
        • 201 OSS (0)
      • Write-up (15)
        • H4CKING GAME (1)
        • DreamHack (12)
        • bandit (0)
      • PROGRAM (0)
        • K-shield.jr (0)
      • PROJECT (0)
      • 사담.생각.끄적끄적 (7)
  • 공지사항

    • Notice
  • 링크

    • DAILY BLOG
    • Velog
    • NOTION
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.6
권 한
Network Security - SSL
상단으로

티스토리툴바