일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- BFS(Breadth First Search)
- 위상 정렬(Topological Sort)
- 큐(Queue)
- 백준 21606번
- DFS
- BFS
- 위상 정렬(Topology Sort)
- 백준 18352번
- 백준 2493번
- 알고리즘 개념
- 그래프(Graph)
- 분할 정복(Divide and Conquer)
- 백준 17608번
- DFS(Depth First Search)
- 이분 탐색(Binary Search)
- 백준 2504번
- 동적 프로그래밍(Dynamic Programming)
- DFS & BFS
- 백준 1707번
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 그리디 알고리즘(Greedy Algorithm)
- 백준 2261번
- 백준 10000번
- 백준 2812번
- 백준 1948번
- 이분 그래프(Bipartite Graph)
- 백준 9012번
- 트리(Tree)
- 스택(Stack)
- Today
- Total
Always Be Wise
HTTP vs HTTPS 본문
HTTPS란?
HTTPS(Hypertext Transfer Protocol Over Secure Socket Layer)는 SSL 또는 TLS 위에
HTTP 프로토콜을 얹어 보안이 향상된 통신을 하는 프로토콜을 의미합니다.
HTTPS가 제공하는 대표적인 보안 기능은 다음과 같습니다.
우선, 서버에 보내는 정보를 누군가 훔쳐보지 못하게 합니다. 다시 말해, 해당 서버만 알아볼 수 있도록 데이터를
암호화하여 보냅니. 또한, 공인 기관으로부터 검증된 사이트만 주소에 HTTPS를 사용할 수 있도록 하여 접속한
사이트가 신뢰할 만한지 판별해줍니다.
대칭키 및 비대칭키(공개키) 암호화
대칭키는 동일한 키를 사용하여 암호화와 복호화를 하는 방식으로 서버와 클라이언트 양쪽이 동일한 키(대칭키)를
갖습니다. 그런데 대칭키를 서버와 클라이언트가 서로 공유하기 위해서는 최소 한 번 대칭키를 전송하는 과정이
필요합니다. 만약 이 과정에서 그 대칭키가 탈취당한다면 암호화가 소용없어집니다. 이를 보완하기 위해 등장한
방식이 바로 비대칭키(공개키) 암호화 방식입니다.
비대칭키(공개키) 암호화는 암호화와 복호화를 할 때 서로 다른 키를 사용하는 방식으로 서버는 자신만의 개인키를
가지고 있고 이에 대응되는 공개키는 누구나 가지고 있을 수 있도록 공개합니다. 개인키로 암호화된 데이터는 이에
대응되는 공개키로만 복호화가 가능합니다. 반면, 공개키로 암호화된 데이터는 이에 대응되는 개인키로만 복호화가
가능합니다. 따라서 서버에게 데이터를 전송할 때 해당 서버의 공개키로 암호화를 하면 누군가 훔쳐보더라도 해당
서버의 개인키를 가지고 있지 않으면 그 내용을 알아볼 수 없습니다.
CA(Certificate Authority), 사이트 안정성 판별
인터넷 상에 존재하는 수많은 사이트들은 CA(Certificate Authority)라고 불리는 공인 민간 기업들로부터
신뢰할 만한 사이트임을 인증할 수 있는 인증서를 발급 받습니다. CA로부터 발급되는 인증서는 인증받는 서버의
공개키 정보를 포함하고 있으며, 해당 CA의 개인키로 암호화가 되어 있습니다.
처음에는 클라이언트가 서버를 신뢰할 수 없기 때문에 그 사이트의 안전성을 판별하기 위한 Handshake(악수)
과정을 진행합니다. 클라이언트는 특정 랜덤 데이터를 생성해서 서버에게 보내고, 그것을 받은 서버는 또 다른 랜덤
데이터를 생성하여 자신이 CA로부터 발급받은 인증서와 함께 클라이언트에게 보냅니다. 그러면 클라이언트는
브라우저에 내장되어 있는 CA들의 정보를 통해 해당 인증서가 정말 CA로부터 발급받은 인증서인지 확인합니다.
모든 브라우저는 각 CA의 공개키를 이미 알고 있고 CA로부터 발급받는 인증서는 해당 CA의 개인키로 암호화가
되어 있기 때문에, 정말로 CA로부터 발급받은 인증서가 맞다면 복호화가 가능할 것입니다. 만약 브라우저가 알고
있는 CA의 개인키로 복호화가 불가능하다면 안전하지 않음(Not Secure) 표시가 뜰 것입니다.
'기술 관련 정리' 카테고리의 다른 글
레드 블랙 트리(Red Black Tree)란? (0) | 2022.03.31 |
---|---|
객체 지향 프로그래밍이란? (0) | 2022.03.29 |
HTTP 2.0의 특성은? (0) | 2022.03.29 |
HTTP 1.0 vs HTTP 1.1 (0) | 2022.03.29 |
OSI 7 계층 참조 모델 (0) | 2022.03.29 |