티스토리 뷰

Information Security

HTTPS란

DevES 2017. 2. 19. 06:22

HTTPS 란 HTTP의 가장 유명한 보안 버전이고 그냥 보안 전송 계층(SSL; Secure Socket Layer)를 통해 전송되는 HTTP다.


기존의 HTTP가 암호화되지 않은 메시지를 TCP를 통해 다른 곳으로 전송했다면, HTTPS는 HTTP 메시지를 TCP로 보내기 전에 먼저 이걸 암호화 하는 보안 계층으로 보낸다.



보안 계층은 SSL과 이것의 현대적 대체품인 TLS로 구현되었는데, 이 둘을 모두 의미하는 단어로 SSL이 자주 불린다고 한다.


URL이 https스킴을 가지고 있다면 클라이언트는 서버에 443번 포트로 연결하고 서버와 바이너리 포맷으로 된 몇개의 SSL 보안 매개변수를 교환하면서 핸드쉐이크를 하고 그 후에 암호화된 HTTP 명령이 뒤를 잇는다.


SSL 트래픽은 바이너리 프로토콜이기에 기존의 HTTP 프로토콜과는 다르다.


SSL 핸드셰이크

  • 프로토콜 버전 번호 교환
  • 양쪽이 알고 있는 암호 선택
  • 양쪽의 신원을 인증
  • 채널을 암호화하기 위한 임시 세션 키 생성

HTTPS 트랜잭션은 항상 서버 인증서를 요구한다.
서버 인증서는 해당 조직의 이름, 주소, 서버 DNS 도메인 명 등등의 정보를 보여주는 X.509 v3에서 파생된 인증서이다.

X.509는 오늘날 사용되는 대부분의 인증서가 그들의 정보를 저장하고 있는 표준화된 서식이다. 
인증서의 내부에는 
  • 대상의 이름(사람, 서버, 조직...)
  • 유효 기간
  • 인증서 발급자(인증서를 보증하는 사람) 
  • 인증서 발급자의 디지털 서명
등이 포함되어 있다.


사용자가 HTTPS를 통한 안전한 웹 트랙잭션을 시작할 때 최신 브루아저는 자동으로 접속한 서버에서 디지털 인증서를 가져온다. 만약 서버가 인증서를 갖고 있지 않는다면 보안 커넥션은 실패한다.

서버 인증서가 가지고 있는 정보
  • 웹 사이트의 이름과 호스트 명
  • 웹 사이트의 공개키
  • 서명 기관의 이름
  • 서명 기관의 서명



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함