본문 바로가기

IT Note/Note

[IT Note] TLS(Transport Layer Security)

728x90

TLS(Transport Layer Security) 개요

  • 인터넷에서의 정보를 암호화해서 송수신하는 프로토콜
  • Netscape가 개발한 SSL(Secure Sockets Layer)에 기반한 기술
  • IETF에서 SSLv3을 기반으로 표준화를 진행하면서 TLS로 명칭 변경
  • 무선 환경에서는 WTLS가 사용됨



TLS 기본 구성

  • 공개키 알고리즘 기반으로 동작
  • X.509 인증서 지원
  • 기본적으로 TCP 443 포트를 이용
  • OSI 7계층 중 4계층(Transport)부터 7계층(Application)에 걸쳐 동작
  • RSA, MD5, SHA-1 등을 사용하지만 SHA-1은 최근에 SHA-256으로 대부분 교체



프로토콜 구성

  • Record 프로토콜
    • 기밀성을 위해 데이터 암호화 수행
    • 무결성을 위해 MAC 생성
    • 실질적인 보안을 수행
    • 동작 순서
      • 단편화 → 압축 → MAC추가 → 암호화
  • Handshake 프로토콜
    • 세션에 대한 세션정보와 연결 정보를 공유하기 위한 프로토콜
    • 초기 연결 시 세션 형성 관장
    • 동작순서 
      원칙 설명 방향
      Client Hello 클라이언트 SSL 버전, 클라이언트 생성 난수, 세션 식별자, Cipher Suit 리스트 클라이언트 > 서버
      Server Hello 서버의 SSL 버전,서버 생성 난수, 세션 식별자, 클라이언트의 Cipher Suit 중 선택 서버 > 클라이언트
      Server Certificate 서버 인증서, 공개키 서버 > 클라이언트
      Certificate Request 서버에서 클라이언트 인증서 요청(생략 가능) 서버 > 클라이언트
      Server Hello Done 서버에서 필요한 내용을 모두 전송했음을 알림 서버 > 클라이언트
      Client Certificate 서버에서 클라이언트 인증서를 요청한 경우 인증서 송신(생략 가능) 클라이언트 > 서버
      Client Key Exchange 세션키 생성용 pre_master_secret 을 서버 공개키로 암호화하여 전송 클라이언트 > 서버
      Certificate Verify 클라이언트 인증서를 확인할 수 있도록 전자서명 발송, 서버에서 검증 클라이언트 > 서버
      Client Finish 서버에 Change Cipher Spec을 전송하고 Finished 알림 클라이언트 > 서버
      Server Finish 클라이언트에 Change Cipher Spec 전송하고 Finished 알림 서버 > 클라이언트
    • Cipher Suite
      • 서버와 클라이언트가 어떤 암호화 방식을 사용할지 정하기 위해 교환하는 문자열 값
      • 형식 : SSL/TLS_(키 교환 알고리즘)(인증 알고리즘)_WITH(대칭키 알고리즘)(블록 암호 운용 방식)(해시 알고리즘)
        • 예 : TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • 단축된 핸드셰이크(Abbreviated Handshake)
      • 한동안 통신을 하지 않다가 다시 통신할 때(Session Resumption) 사용되는 프로토콜
      • RFC5077
      • 원칙 설명 방향
        Client Hello 클라이언트 SSL 버전, 클라이언트 생성 난수, 세션 식별자, Cipher Suit 리스트 클라이언트 > 서버
        Server Hello 서버의 SSL 버전,서버 생성 난수, 세션 식별자, 클라이언트의 Cipher Suit 중 선택 서버 > 클라이언트
        Server Finish 클라이언트에 Change Cipher Spec 전송하고 Finished 알림 서버 > 클라이언트
        Client Finish 서버에 Change Cipher Spec을 전송하고 Finished 알림 클라이언트 > 서버
  • Change Cipher Spec 프로토콜
    • 서버와 클라이언트 상호간의 Cipher Spec 확인을 위한 메시지 교환에 사용
  • Alert 프로토콜
    • 메시지의 암호화 오류, 인증서 오류 등 전달



인증서 종류

  • 보증 범위에 따른 구분
    구분 설명
    Wild Card 인증서 - 서브도메인의 개수와 상관없이 모든 서브도메인을 다 보증
    - 가격이 비쌈
    일반 인증서 - 특정 한 도메인에 대해서만 보증
    - 서브도메인도 하나의 도메인으로 간주
  • 보증 강도에 따른 종류
    구분 설명
    DV(Domain Validation) 실제 도메인의 소유주인지만 확인
    OV(Organization Validation) 신청 시 업체로부터 담당자(신청자)의 정보와 사용자 등록을 통해 기업의 실체 인증
    EV(Extended Validation) 업체의 사업자등록증과 기업 신용정보 등 기업의 신뢰도까지 검증하여 피싱, 파밍 방지



728x90
반응형