http는 HyperText Transfer Protocol의 약자로, 하이퍼텍스트를 빠르게 교환하기 위해 네트워크 장치 간 정보를 전송하도록 설계된 프로토콜입니다.
http는 클라이언트와 서버 간 요청-응답 모델을 기반으로, 클리아언트가 서버에 요청을 보내면, 서버는 응답을 반환합니다.
일반적으로 http는 80번 port를 사용합니다.
http는 무상태(stateless)프로토콜로 각 요청은 독립적이적이며 이전 요청 상태를 기억하지 않아 서버의 부담이 작지만, 사용자 세션 관리에 추가적인 메커니즘이 필요합니다.
https는 HyperText Transfer Protocol over Secure socket layer의 약자로, http를 보안한 버전으로, 웹에서 데이터를 안전하게 전송하기 위해 설계되었습니다.
때문에 https는 HTTP over TLS, HTTP over SSL, HTTP Secure로 불립니다.
https는 SSL 또는 TLS 프로토콜을 통해 데이터를 암호화하여 데이터 전송하여 보안을 강화하고, 신뢰성을 보장합니다.
https는 일반적으로 443번 port를 사용합니다.
https 역시 무상태(stateless) 프로토콜로 각 요청은 독립적이며 상태를 유지하지 않습니다.
https는 http에 SSL/TLS 인증서를 통해 웹 사이트의 신뢰성을 보장합니다.
http는 Google 등 다양한 검색 엔진에서 https에 비해 낮은 우선 순위를 가집니다.
http는 80번 포트
https는 443번 포트를 기본적으로 사용합니다.
http는 암호화가 없기 때문에 조금 더 빠르게 작동하기는 하지만,
최신 기술에서는 차이가 거의 없습니다
SSL은 Secure Sockets Layer의 약자로 보안 소켓 계층이라고 불리는 보안 프로토콜입니다.
TLS은 Transport Layer Secuirty의 약자로 SSL의 후속 프로토콜입니다.
SSL 인증서를 통해 웹 사이트와 사용자 간 데이터가 암호화되어 전송됩니다.
SSL 인증서는 웹 사이트의 소유자가 실제로 해당 도메인을 소유하고 있다는 것을 인증합니다.
SSL 인증서를 통해 전송된 데이터가 변조되지 않았음을 보장합니다.
도메인 소유권만 검증하는 가장 기본적인 인증서로,
발급이 가장 빠르지만 신뢰 수준이 낮습니다.
조직(기업)의 신원도를 확인하는 인증서로,
도메인 소유권과 조직 정보를 모두 검증하여 DV보다 신뢰성이 높습니다.
조직의 법적 신원과 운영 상태를 철저히 검증하는 인증서로,
가장 높은 수준의 검증을 통해 사용자에 높은 신뢰를 제공합니다.
핸드셰이크 과정
1. 클라이언트(브라우저)가 서버에 연결 요청
2. 서버는 SSL 인증서와 함께 지원하는 암호화 방식 목록 클라이언트에 전달
3. 클라이언트는 선택한 암호화 방식을 서버에 통지 후 랜덤한 세션키 생성
4. 클라이언트는 세션 키를 서버의 공개 키로 암호화하여 서버에 전송
5. 서버는 자신의 개인 키로 세션 키를 복호화하여 연결 설정
데이터 전송
핸드셰이크 과정
1. 클라이언트(브라우저)가 서버에 연결 요청
2. 서버는 TLS 인증서와 함께 지원하는 암호화 방식 목록 클라이언트에 전달
3. 클라이언트는 선택한 암호화 방식과 세션 키 생성 정보를 포함하여 서버에 응답
4. 서버는 클라이언트의 응답을 검증하고, 세션 키를 생성하여 클라이언트에 전달
5. TLS는 암호화 알고리즘을 협상하고, 필요한 경우 추가적인 인증 절차를 수행
데이터 전송
SSL과 TLS 모두 데이터를 암호화하는 통신 프로토콜로, SSL의 후속이 TLS 입니다.
https는 비보안 http 연결에 보안 SSL/TLS 프로토콜을 설정하여 사용합니다.
SSL 핸드셰이크는 명시적 연결인 반면
TLS 핸드셰이크는 암시적 연결입니다.
SSL 프로세스는 TLS보다 많은 단계가 있고, TLS는 추가 단계를 제거하고 암호 그룹 수를 줄여 프로세스 속도를 높혔습니다.
SSL 프로토콜은 MAC 생성에 MD5 (구식) 알고리즘을 사용하지만,
TLS는 복잡한 암호화와 보안에 해시 기반 메시지 인증 코드 (HMAC)를 사용합니다.
https는 SSL/TLS 인증서를 통해 http의 보안을 개선한 방법으로,
현재는 SSL 인증서가 잘 사용되지 않고, TLS 인증서가 업계 표준입니다.
하지만, 대부분의 TLS 인증서가 SSL 인증서로 잘못 명명되기도 합니다.
때문에, MAC을 사용하는 SSL 대신 HMAC을 사용하는 TLS가 업계 표준이고 대부분이라고 알고 있는 것이 중요하다고 생각합니다.