[용어 정리] Http와 Https의 차이점
[용어 정리] Http와 Https의 차이점
들어가기전에) 웹 브라우저는 http를 사용하지 않고 그냥 입력해도 http://를 넣어준다.
HTTP
- HTML같은 문서를 웹 브라우저가 웹 서버에 요청하는 프로토콜(통신 규약)
- 그냥 텍스트 교환이다.
- HypterText Tranfer Protocol(WWW 상에서 정보를 주고 받는 프로토콜)
- 복잡한 Binary 데이터가 아니라 그냥 텍스트 메시지를 주고 받는다.
- 물론 그 텍스트 메시지 안에 HTML페이지도 들어가 있다.
- 텍스트이기 때문에 만약 네트워크 안에서 누가 그 신호를 가로채어 본다면 내용이 그대로 보이게 된다.
- ex) 메일을 읽고 있는데 그 신호를 가로챈다면 메일 내용을 읽을수 있다.
HTTPS
- HTTP와 거의 같지만 모든 통신 내용을 암호화하는 것이 다르다.
- HTTPS의 S는 secure socket, 즉, 안전한 통신망을 뜻한다.
- HTTP가 SSL을 사용하면 HTTPS가 됨
- HTTPS의 암호화 원리의 핵심은 공개키 암호화 방식
SSL(secure socket layer)
- 네트워크 내에서 메시지 전송의 안전을 관리하기 위해 만들어진 프로그램 계층
- SSL인증서 : 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서
- KEY를 가지고 있어야 암호화와 복호화가 가능
- 대칭키 : 암호화 하는쪽과 복호화 하는쪽이 같은 키를 가지고 있어야 함
- 단점 : 너무 위험하다... Client쪽에 KEY를 보내다가 중간에 가로침당하면.. 망함
- 공개키, 개인키 : A, B라는 2개의 KEY가 있어서 A key로 암호화하면 B key로 복호화를 해야하고 B key로 암호화를 하면 A key로 복호화를 해야 함
- 장점 : KEY를 배달하는 사고가 발생하지 않음
공개키로는 암호화는 할 수 있지만 복호화는 할 수 없음
- -encrypt 옵션은 암호화 -decrypt 옵션은 복호화
- 인증의 원리(암호화의 반대로 보면 됨)
- A가 가지고 있는 개인키로 암호화 한 후에 상대방에게 보내면 상대방이 가지고 있는 공개키로 복호화가 되면 이것은 A가 보낸것을 확신 할 수 있음
암호를 다 대입해보면 되지 않나?
- 사실 시간이 주어지면 암호를 풀 수도 있다
- ex) 1024비트 암호화를 사용한다면 암호 키가 1024비트, 즉 2의 1024승이다.
- 암호를 계산해서 푸는 방법은 없다.(있다면 그런 암호화는 폐기된다.)
- 키를 모르고 암호화를 푼다는 것은 모든 키를 하나씩 다 대입해서 푸는것
- 그러면 평균적으로 2의 512승 번을 해봐야 한다......
- 슈퍼컴퓨터로....몇천년...
결론
- 그러면 다 안전한 https쓰면 되는거 아닌가?
- https 암호화를 하려면 웹 서버에 부하가 생김
- 서버의 인증서를 사려면 Verisign같은 업체에서 비싼 돈을 주고 사야함
- 하지만 외국 금융 사이트에서는 https가 필수
- 아무나 봐도 상관없다 -> http
- 남에게 보이면 안 되는 금융 정보나 메일 등 중요한 것 -> https
참고
댓글
댓글 쓰기