[CS] HTTP, HTTPS란 ?

이유은·2023년 12월 4일

[CS]

목록 보기
4/11
post-thumbnail

🥤 HTTPS 기초

주소창에서 많이 보이는 애들
예전에는 http가 많았지만,
요새 공신력 있는 애들은 https를 주로 사용함

https를 사용하는 이유? s는 secure의 약자. 즉 http보다 안전하다 ~

hyper text transfer protocol

무엇으로부터 안전할까?

내가 어떤 사이트에 보내는 정보를 다른 누군가 훔쳐보지 못하게 함.

네이버에 접속한다면 아이디,비밀번호 -> 인터넷 타고 네이버의 서버로 전송됨
그냥 보내면 이 암호가 텍스트 그대로 누구든 알아볼 수 있는 형태로 보여짐
누가 보게되면 해킹당해 !!

https 는 보낼 때 뒤죽박죽 된 텍스트로 변경해서 실어 보냄 !!
누가 봐도 알 수가 없어요 ~~

또 하나는

접속한 사이트가 신뢰할 수 있는 사이트인지 판별해줌

네이버 들어가려고 클릭했는데 알고보니 네이놈이라는 피싱 사이트면 ?
은행 사이트면 어케 !!
https는 이런 수상한 사이트를 걸러내줘

그냥 http 사용하면 주소창에 안전하지 않다 이런거 뜹니다 .

그럼 http 자체는 뭐야?

내가 네이버 접속하면 컴퓨터는 네이버 서버에 어쩌고저쩌고 메세지를 보내!!
네이버 서버도 어쩌고 저쩌고 메세지 보내
사람이 읽기 어려워. 컴퓨터는 읽을까? 아니 아직 못읽어 이 메세지가 어떤 형식인지 모르기 때문에!

http는 인터넷상의 커뮤니케이션에 사용되는 형식들 중 하나
자 이 주소는 http 형식이야 ! 하고 알려줌

그래야 네이버 서버가 이걸 http형식으로 읽어본 다음 무슨 요청인지 알아냄
그에 맞는 응답을 작성해서 보냄!! 내 컴퓨터토 http형식으로 해독해서 화면을 보여줌.

그 형식에 보안까지 추가한게 https 입니다!

어떤 원리로 구현되냐?
대칭키 / 비대칭키 개념 알아야됨

내가 암호 전달할 때 적진이 뺏어가도 못알아보게 하려면 편지의 내용을 암호화 해야겠지?
그 암호화된 메세지는 아군만 읽어야하고 !
그래서 이런 방식들을 예로부터 고민해옴 .

그동안 널리 사용되어 온 건 대칭키 방식
메세지를 보내는 쪽 받는쪽이 메세지를 암호화하고 이를 다시 메세지로 바꾸는 복호화 하는 같은 방식 !! 양쪽 모두 암호 a=27 b=8 이렇다는 걸 알고 있는 형식

대칭키도 이 표와 같음 !!
알 수 없는 암호문이 만들어짐
그 암호문으로 알고리즘 돌려서 어쩌고저쩌고 해독하는 방식 = 복호화

내컴, 네이버서버에 동일한 키가 있다면 암호화, 복호화 해서 인식할 수 있겠징

문제는, 어떻게 이 동일한 키를 양쪽이 공유하느냐?
결국 한번은 한쪽에서 다른 쪽으로 이 키를 전송해야 하는데, 중간에 누가 훔쳐보면 꽝이죵

이게 대칭키의 한계!

이를 보완한 새 방식 1970년대 개발됨
비대칭키, 공개키 라고 불리는 시스템

두 키가 사용됨 a키, b키 한쌍임 서로 다름

a키로 암호화 하면 b키로만 복호화 가능

네이버서버 - 이 두키 중 하나는 비밀로 보관하고 이걸 개인키라고 부름

다른 하나를 대중들에게 공개함. 누구나 볼 수 있게 . 이걸 공개키 라고 함

사용자는 이 공개키로 비밀번호를 암호화해서 네이버에 보냄
같은 공개키로는 암호문을 풀어낼 수 없어 !! 볼 수 있는건 개인키를 가진 네이버만 볼 수 있음!

이 사이트가 네이버인걸 어케 증명해?
네이버에서 우리에게 보내는 정보들은 그 일부가 네이버의 개인키로 암호화 되어있음.

https 가 실제로 구현되는 방식은 복잡해 ~~~

네이버가 우리에게 뿌린 공개키 . 이게 정품인지 확인하자.
이걸 인증해주는 공인된 민간기업이 있음
Certificate Authority, 줄여서 CA라고 함

아무나 차릴 수 없고 엄격한 인증과정 필요

컴퓨터, 브라우저측을 - 이 서버와 상대되는 개념, 클라이언트라고 부름
'사용자'로 이해하면 됨

클라이언트는 아직 이 서버를 신뢰하지 못해
그래서 이 둘은 일종의 탐색과정을 먼저 거치는데
이걸 handshake 악수라고 합니다.

클라이언트 - 랜덤 데이터 생성해서 서버에 보냄
서버는 답변으로 서버측에서 생성한 무작위 데이터 그리고 해당 서버의 인증서를 실어 보냄
이걸로 둘은 악수를 한 거!

클라이언트는 인증서가 진짜인지 브라우저에 내장된 ca 정보들을 통해 확인하게 됨
비대칭키 시스템 사용해서.

비대칭키 시스템은 대칭키보다 컴퓨터에 큰 부담을 줌!
그래서 섞어서 사용..(?) 사이트 이용할 때 , 다량의 데이터시 !!

위험하다며? - 그 대칭키를 공유할 때 비대칭키 사용

profile
우당탕코딩

0개의 댓글