HTTPS란?
2022. 4. 13. 12:39ㆍ코딩공부/ComputerScience


HTTP Secure의 약자이며 HTTPS를 사용하여 전송되는 데이터는 TLS를 통해 보호된다
TLS는 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트 의 인증을 하는데 사용된다.
SSL(TLS) 동작방식
- 클라이언트가 서버에 접속하며 랜덤 데이터를 전송. (Client hello)
- 서버가 Client hello에 대한 응답으로 Server hello를 함 (이때 인증서와 랜덤데이터 제공)
- 클라이언트의 브라우저에서 서버가 건네준 인증서가 CA에서 발급된건지를 확인하고 공개키로 인증서를 복호화한다. (인증서가 믿을 수 있다고 판단함)
- 클라이언트와 서버의 각각의 랜덤 데이터를 가지고 클라이언트에서 pre master secret값을 만들어냄 (대칭키)
- pre master secret 값을 비대칭키 (클라이언트가 알고있는 공개키)를 이용하여 암호화하고 이를 서버에 보냄 이렇게 암호화 된 값을 master secret이라하고 이는 session key를 만들어냄
- 이 session key를 이용하여 서버와 클라이언트는 대칭키 방식으로 암호화 통신을 함
[참고] TLS
Transport Layer Security의 줄임말. 과거 SSL에서 발전하며 이름이 변경 된 것이다. 하지만 아직도 SSL이란 명칭이 많이 사용되고 있다.
HTTPS의 장단점
- HTTPS는 웹사이트의 무결성을 보호해준다. 웹 사이트와 사용자 브라우저 사이의 통신을 침입자가 건드리지 못하도록 한다. (침입자라함은, 악의가 있는 공격자는 물론이고, 합법이지만 통신에 침입하여 페이지에 광고를 삽입하는 경우도 해당한다.)
- 가벼운 웹 서핑이라면 HTTP도 상관없지만, 사용자의 정보를 웹 서버와 주고 받아야하는 경우라면 HTTP는 정보 유출의 위험성을 갖게 된다. HTTPS는 침입자가 웹사이트와 사용자 사이의 통신을 몰래 수신하는 것을 방지함으로써 보안을 강화해준다.
- getUserMedia()를 통한 사진 촬영이나 오디오 녹음, 프로그레시브 웹 앱과 같은 강력한 웹 플랫폼 신기능들은 실행하려면 사용자의 명시적인 권한 허락을 필요로 한다. 지오로케이션 API와 같은 오래된 API들도 실행할 때 권한이 필요하도록 업데이트되고 있는데, HTTPS는 이러한 새 기능과 업데이트된 API에 대한 권한 허락을 가능하게 한다.
- 네이버, 다음은 물론이고 구글 역시 검색 엔진 최적화(SEO: Search Engine Optimization) 관련 내용을 HTTPS 웹사이트에 대해서 적용하고 있다. 즉, 키워드 검색 시 상위 노출되는 기준 중 하나가 보안 요소이다.
- 모든 사이트에서 텍스트를 암호화해서 주고 받으면 과부하가 걸려 속도가 느려질 수 있다. 중요한 사이트는 HTTPS로 관리하고, 그렇지 않은 사이트는 HTTP를 사용한다.
- HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다. 신뢰할 수 있는 CA 기업이 아니라 자체적으로 인증서를 발급할 수도 있고, 신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.
'코딩공부 > ComputerScience' 카테고리의 다른 글
쓰레드(Thread)란 무엇인가?(단일 스레드/멀티 스레드 장단점) (0) | 2022.04.20 |
---|---|
[운영체제] 프로세스 생성 과정 (0) | 2022.04.13 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 저수준 I/O(~p.237), 네트워킹 (0) | 2022.02.08 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 인터럽트, 상대 주소 지정 (0) | 2022.02.02 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 비트를 처리하기 위한 하드웨어 (0) | 2022.01.26 |