SSL과 TLS의 이해

SSL(Secure Socket Layer) 인터넷 상에서의 보안 통신을 얘기하며, 전자서명 기술을 기반으로 한 암호화 프로토콜을 이용한다.

 

- SSL이란 Secure Socket Layer의 약어로 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜
- 클라이언트가 서버에 접속하면 HTTPS 포트로 Redirect
- 클아이언트는 HTTPS 포트인 443번으로 연결

- Security Socket Layer의 약자 / TLS : Transport Layer Security
  > 1.0, 2.0, 3.0으로 구성되어 있으며 TLS 버전으로 변경되면서 TLS 1.0 ~ 1.3 버전까지 공개
  > CA(Certifiacte Authority)라 불리는 인증 기관으로부터 서버를 검증
  > 성능상의 이유로 대칭키 암호화 방식과 공개키 암호화 방식을 사용
    - 대칭키
      > 암호화 또는 복호화 수행 시 동일한 키를 가지고 수행 
    - 공개키 
      > 비밀키와 공개키를 서로 교환하여 암호화와 복호화를 수행

 

HTTPS의 이해

- HyperText Transfer Protocol over Secure Socket Layer의 약어로 사용
HTTP 통신 프로토콜의 보안이 강화된 버전으로 SSL이나 TLS 프로토콜을 통해 암호화 통신 수행
- 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발하였으며 전자 상거래에서 널리 사용

 

통신 원리

- 인증서
  > 사이트에서의 발급
    >> 인증서가 필요한 사이트는 CA 기관에게 사이트 공개키와 사이트 정보를 제공
     >> CA에서 검증 후 인증기관 개인키로 인증서 발급 후 사이트에 전달

- 이용자와 CA
  > 사용자는 CA으로부터 CA의 인증서와 CA의 공개키를 받음
    >> 브라우저 설치 또는 OS 설치 시 가져오는 경우도 존재

- 사이트와 이용자
  > 이용자는 사이트에 접속 요청 수행 후 사이트가 CA에서 발급받은 인증서 전달
  > 이용자는 CA로부터 받은 공개키로 인증서 복호화
  > 사용자는 대칭키를 생성하여 사이트의 공개키로 암호화 후 전송
  > 사이트의 개인키로 복호화하여 대칭키 획득
  > 대칭키를 이용해 암호화하여 서로 간의 통신 수행

- 인증서
 > 저장된 브라우저 확인 
     >> Chrome : 브라우저 설정 -> 고급 탭 -> 인증서 관리
 > 인증서가 보장되지 않은 경우 경고창과 함께 연결 확인

- 어플리케이션의 인증서 
  > 사용되는 프로그램의 신뢰성을 보장하기 위해 exe 파일 내 인증서가 포함
      ex) 안티바이러스 프로그램
  > 인증서가 포함되지 않은 프로그램 실행 시 예외로 두지 않은 일부 프로그램의 경우 신뢰하지 않은 프로그램 경고장 팝업 (UAC:사용자 계정 컨트롤0 

 

오해와 진실

- SSH와 SSL
 SSH
 - SSH는 Secure shell을 의히마며 연결을 수립하기 위해 사용자 이름과 암호 인증 시스템을 보유
 - 22번 포트를 사용하며 인터넷을 통해 명령을 안전하게 실행하는 것이 목적

SSL
 - SSL은 암호화 및 보안 기능을 제공하기 위해 특정 프로토콜 계층을 사용하는 구조
 - SSL은 신용 카드 및 은행과 같이 중요한 정보를 안전하게 전송하기 위해 사용
 - SSH와 달리 인증을 필요로 하지 않음