SSL과 TSL

단비·2023년 5월 9일
1

학습

목록 보기
41/66

원래 웹에서의 데이터는 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송되었음

SSL (Secure Scokets Layer)

  • 암호화 기반 인터넷 보안 프로토콜
  • 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 1995년에 개발
  • 전달되는 모든 데이터를 암호화하고 특정한 유형의 사이버 공격도 차단
  • TLS(Transport Layer Security) 암호화의 전신이기도 함

SSl/TLS 를 사용하는 웹사이트 URL은 HTTP 대신 HTTPS을 사용



SSL은 1996년 SSL 3.0 이후 업데이트되지 않았으며,
알려진 취약성이 여러가지가 있어 보안 전문가들은 SSL 사용 중단을 권장

SSL의 대안으로는 TLS가 있음



TLS

  • 최신 암호화 프로토콜
  • SSL 암호화로 혼용해서 부르는 경우도 많음
    (SSL의 최종버전인 3.0과 TLS의 최초버전의 차이는 크지않음
    TLS는 SSL의 업데이트 버전이며 명칭만 다르다고 볼 수 있음 )





SSL/TLS 의 작동 방식

  • 클라이언트와 서버간에 핸드셰이크를 통해 인증이 이루어짐
  • 데이터 무결성을 위해 데이터에 디지털 서명을 하여 데이터가 의도적으로 도착하기 전에 조작된 여부를 확인

SSL/TLS 핸드셰이크

  • 클라이언트와 서버간의 메세지 교환
  • HTTPS 웹에 처음 커넥션할 때 진행
  • 일반적으로는 RSA 키 교환 알고리즘을 사용

RSA 키 교환 알고리즘 순서

  1. 클라이언트 -> 서버 메세지 전송

    • 핸드셰이크 시작
      (이 메세지에는 TLS 버전, 암호화 알고리즘, 무작위 바이트 문자열이 포함되어 있음)
  2. 서버 -> 클라이언트 메세지 전송

    • 클라이언트의 메세지에 응답으로 서버의 SSL인증서, 선택한 암호화 알고리즘, 서버에서 생성한 무작위 바이트 문자열을 포함한 메세지를 전송
  3. 인증

    • 클라이언트가 서버의 SSL인증서를 인증 발행 기관에 검증
  4. 예비 마스터 암호

    • 클라이언트는 premater secret 키(공개키로 암호화한 무작위 바이트 문자열)를 서버로 전송
  5. 개인 키 사용

    • 서버가 개인 키로 premaster secret 키를 복호화
      (개인 키로만 복호화 가능)
  6. 세션 키 생성

    • 클라이언트와 서버는 클라이언트가 생성한 무작위 키, 서버가 생성한 무작위 키, premaster secret 키를 통해 세션 키를 생성
      (양쪽은 같은 키가 생성되어야 함)
  7. 클라이언트 완료 전송

    • 클라이언트는 세션 키로 암호화된 완료 메세지를 전송
  8. 서버 완료 전송

    • 서버도 세션 키로 암호화된 완료 메세지를 전송
  9. 핸드셰이크 완료

    • 핸드셰이크가 완료되고, 세션 키를 이용해 통신을 진행





SSL/TLS 인증서

  • SSL은 SSL인증서(=TLS인증서)가 있는 웹사이트만 실행할 수 있음
  • SSL인증서에는 공개 키가 포함됨
  • 공개키: 클라이언트의 요청 (암호화) -> 서버
    개인키: 서버의 개인키를 이용해 복호화

CA(certificate authority)
인증서를 발급하는 기관





참고사이트

SSL이란?, SSL과 TLS 정의 및 차이 - Burger 메모장

profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글