HTTP 와 HTTPS

kimjaewon·2023년 4월 17일
0
post-thumbnail

HTTP, HTTPS 인터넷에서 데이터를 주고 받는데 사용되는 프로토콜이며

TCP(연결지향적인 프로토콜)/IP(데이터 라우팅하고 전송)
위에서 작동한다

HTTP(80번 포트), HTTPS(443번 포트) 를 사용

HTTPS 확인방법
브라우저 URL 도메인 이름 앞에 자물쇠 아이콘 확인


차이점

HTTP: ( Hyper Text Transfer Protocol )
데이터가 암호화 없이 전송되어 중간에 데이터가 가로채어져
데이터 노출(해킹)의 가능성이 있다
보통 일반적인 웹페이지 같은 곳에 사용이 된다

HTTPS: ( Hyper Text Transfer Protocol Secure )
HTTP와 동일한 프로토콜이지만
SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 를 사용해
데이터가 암호화 되어 통신하기 때문에 보안성이 향상된다

온라인 결제, 개인정보 등 민감한 데이터를 통신할때 암호화나 인증절차를 거쳐 사용되며 정보 보호를 위해 반드시 사용 되어야 하는 기술이다

SSL v3.0 에서 취약점이 발견되어 이후로 TLS 로 대체되었다고 한다
TLS 는 SSL 후속 프로토콜로 현재 1.0 부터 1.3 까지 버전이 있고
SSL 에서 발견된 보안 취약점을 보안하고 강화하면서도 호환성을 유지하기 위해 개발 되었다고 한다

TLS 안에 SSL 이 있음

인증서 종류
1. 싱글 도메인(Single Domain) 인증서: 한 개의 도메인 또는 그 서브도메인을 위해 발행

  1. 멀티 도메인(Multiple Domain) 인증서: 통합 커뮤니케이션(Unified Communications) 인증서라고도 불리는데 메인 도메인 이름을 비롯해 최대 99개 까지의 대체 도메인을 보호할 수 있게 해줌

  2. 와일드카드(Wildcard) 인증서: 웹사이트 URL은 물론이고 서브 도메인도 무제한으로 보호할 수 있게 해줌


암호화

대칭키 암호화
클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함
키가 노출되면 매우 위험하지만 연산 속도가 빠름

비대칭키 암호화
1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
키가 노출되어도 비교적 안전하지만 연산 속도가 느림

비대칭키 암호화는 공개키/개인키 암호화 방식을 이용해 데이터를 암호화한다 공개키와 개인키는 서로를 위한 1쌍의 키이다

공개키: 모두에게 공개가능한 키
공개키는 두 개의 키를 갖게 되는데 A키로 암호화하면 B키로 복호화가 가능하고 반대로 B키로 암호화 하면 A키로 복호화 도 가능
개인키: 나만 가지고 알고 있어야 하는 키


HTTPS 동작원리
1. 클라이언트가 서버에 연결요청을 한다
2. 서버는 클라이언트에게 공개키 제공
3. 클라이언트는 공개키를 사용하여 (인증서 유효성 검사) 암호화된 세션키를 생성
4. 클라이언트는 세션키를 서버로 보내고 서버는 개인키를 사용해 복호화 하면
5. 이제 클라이언트와 서버 양쪽이(서로의 ) 세션키를 알고 있어서 모든 통신은 세션키를 통해 암호화가 된다
장점: 암호화를 사용해 보안성이 더 좋다
단점: 데이터를 암호화 하기 때문에 약간의 성능저하가 발생할 수 있고(하지만 속도 차이가 못느낄 정도의 차이이다) 인증서 때문에 추가 비용이 발생

HTTPS 발급 과정
서버가 비대칭키를 발급받는 과정이다
서버는 클라리언트와 세션키를 공유하기 위한 공개키를 생성해야 하는데
일반적으로는 인증된 기관(Certificate Authority) 에 공개키를 전송하여 인증서를 발급 받는다

  1. A 기업은HTTP 기반의 애플리케이션에 HTTPS를 적용하기 위해 공개키/개인키를 발급함
  2. CA 기업에게 돈을 지불하고, 공개키를 저장하는 인증서의 발급을 요청함
  3. CA 기업은 CA기업의 이름, 서버의 공개키, 서버의 정보 등을 기반으로 인증서를 생성하고, CA 기업의 개인키로 암호화하여 A 기업에게 이를 제공함
  4. A기업은 클라이언트에게 암호화된 인증서를 제공함
  5. 브라우저는 CA기업의 공개키를 미리 다운받아 갖고 있어, 암호화된 인증서를 복호화함
  6. 암호화된 인증서를 복호화하여 얻은 A기업의 공개키로 세션키를 공유함

인증서는 CA의 개인키로 암호화되었기 때문에 신뢰성을 확보할 수 있고 클라이언트는 A 기업의 공개키로 데이터를 암호화하였기 때문에 A기업만 복호화하여 원본의 데이터를 얻을 수 있다 여기서 인증서에는 A 기업의 공개키가 포함되어 있으므로 A 기업의 공개키라고 봐도 무방하다 또한 브라우저에는 인증된 CA 기관의 정보들이 사전에 등록되어 있어 인증된 CA 기관의 인증서가 아닐 경우에는 다음과 같은 형태로 브라우저에서 보여지게 된다


HTTPS의 좋은 효과들

1. 사용자에게 더 나은 환경 제공
사용자들이 검색을 통해 웹 사이트에 방문했을때 지나치게 깜박거리는 텍스트나 수많은 팝업 광고 등이 먼저 등장하게 된다면
오래 머물고 싶은 마음이 사라진다
(나의 예시로는 가끔 페이스북에 재밌어 보이는 글의 링크가 달려 있는데 타고 들어가면 수 많은 광고들이 뜨는게 거슬렸다)

2. 사용자의 사이트 사용시간 증가
체류시간은 SEO에 중요한 요소이다 체류시간은 사용자가 검색결과로 돌아가기 전에 웹 페이지를 분석하는데 걸리는 시간이다
웹 페이지의 체류시간이 짧다면 페이지가 사용자의 검색의도와 일치하지 않는다는 의미일 수 있다
HTTPS가 없는 웹 사이트는 사용자가 “안전하지 않음” 이라는 메시지를 직면하게 하여 페이지 체류시간을 줄이는데 영향을 미칠 수 있다

profile
올라가자

0개의 댓글