저번에 말씀드린 HTTP의 가장 큰 문제는 통신의 내용을 텍스트 형태로 그대로 전달한다는 문제가 있습니다.
그럼 왜 이런 일이 발생할까요?
첫 번째 이유로는 HTTP로 전송되는 Request는 텍스트의 형태로 정말 말 그대로 우리가 입력한 내용을 그대로 전송합니다.
두 번째 이유로는 HTTP는 application layer를 사용합니다. 지금은 간단하게 프로그램을 사용하기 위해 존재하는 층이라고 생각하시면 됩니다. 그래서 Response 또한 특별한 절차 없이 Header의 내용만 맞다면 그대로 받아드려 우리가 흔히 하는 Dos 공격에 취약합니다.
그럼 HTTPS는 어떻게 위와 같은 문제를 해결할까요?
바로 HTTP에서 전송하는 Request를 암호화(Encrypt)하고 돌아오는 암호화된 Response를 해독(Decrypt)합니다.
HTTPS는 암호화를 위해 TLS/SSL을 사용하는데요. 이 부분에 대해서는 추후에 더 설명드릴 겁니다.(할게 참 많아 행복하네요....ㅎ)
지금은 간단히 설명드리자면 TLS/SSL은 Public Key와 Private Key를 이용해 웹서버와 우리가 사용하는 브라우저 사이의 보안이 강화된 통신이 가능해집니다. 이러한 통신은 Transport layer로 통신 전용으로만 이루어집니다. (오늘 여태 써본 글 중 가장 기술적인 용어들이 많이 나오네요. 이해 못 하셔도 괜찮습니다.)
그래서 웹개발을 할 경우 TLS/SSL 인증서를 따로 준비해야 합니다. 그래야 Login이나 개인정보를 취급하는 Request와 Response를 웹브라우저와 웹서버를 운영하는 회사에서 가능하게 해 줍니다. (무료도 있고 비싼 거도 있습니다.) 즉, 만약 TLS/SSL 인증서가 없는 웹사이트에서 개인정보를 요구한다면 한 번쯤 의심해보셔야 합니다.(크롬을 쓰신다면 왼쪽 위의 자물쇠 아이콘을 한번 찾아보세요. 잠겨 있나요 열려있나요?)
내용이 짧지만 그만큼 HTTPS 자체는 단순히 TLS/SSL를 통해서 HTTP를 암호화하고 암호화한 내용을 Transport layer를 통해서 주고받을 뿐입니다.
자 그런데 오늘 당황스럽겠지만 다양한 기술 용어가 나온 거 같죠?
그러면 '도대체 Transport Layer/ Application Layer는 뭘까요?'
그리고 '도대체 TLS/SSL는 뭘까요?'
참조
* 항상 정확한 정보를 드리고 싶지만 실수가 있을 수도 있습니다!
* 실수를 찾게 되거나 질문이 있으시면 댓글 달아주세요!!
'개발일반 > 도대체' 카테고리의 다른 글
| 도대체 Physical, Data Link, Network Layer는 뭘까요? (4) | 2023.02.21 |
|---|---|
| 도대체 OSI Model은 뭘까요? : 7 Layers (0) | 2023.02.20 |
| 도대체 HTTP는 뭘까요? (0) | 2023.02.16 |
| 도대체 Cookies(쿠키)는 뭘까요? (0) | 2023.02.15 |
| 도대체 API는 뭘까요? (0) | 2023.02.14 |