일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql 튜닝
- 클린코드
- 시스템 파악 정리
- 나선형 모형
- 시스템 파악
- plsql
- 명령어공부
- pl/sql
- 커맨드공부
- Bandit Level 6 → Level 7
- CSS
- 에자일 모형
- SQLRecoverableException
- 디미터 법칙
- Bandit Level 6
- vue
- table scan
- springboot
- was SQLRecoverableException
- java.sql.SQLRecoverableException
- 변수명 짓는법
- avax.net.ssl.SSLHandshakeException:
- 스크럼기법
- Bandit Level 5
- was버그
- 인증서만료에러
- OpenAPI
- 프로토타입 모형
- Law of Demeter
- 폭포수 모형
- Today
- Total
개발햄비
[IT]http, Https 차이 본문
http란
Http는 이런 HTML 같은 문서를 웹 브라우저가 웹 서버에 요청하는 프로토콜이다.
복잡한 바이너리 데이터가 아니라 그냥 텍스트 메시지를 주고 받는다. 물론 그 텍스트 메시지 안에 HTML 페이지도 들어 있다. 텍스트이기 때문에 만약 내가 있는 네트워크 안에서 누가 그 신호를 가로채어 본다면 내용이 그대로 보이게 된다. 만약 내가 메일을 읽고 있는데 누가 그 신호를 가로챈다면 메일 내용을 읽을 수 있을 것이다.
http는 html과 같은 문서를 웹 서버에 요청하는 프로토콜이다.
복잡한바이너리 데이터가 아닌 메세지를 주고 받게 되는데, 이 때 html페이지도 포함하여 보내지게 된다.
누군가가 신호를 훔친다면 요청 내용이 그대로 보이기 때문에 보안상 조금 안전하진 못하다.
예를들어 메일을 보냈는데 누군가가 내 메일을 훔쳐볼 수 있다는 것이다.
Https란
Https는 http하고 거의 같지만 모든 통신 내용을 암호화를 할 수 있다. secure socket, 즉 안전한 통신망을 뜻한 다.
어떤 사이트를 운영할 때 A와B키를 만들어 사용자에겐 A키만 보여주고 B키를 보여주지 않는다. B키로 어느정도 의 데이터를 볼 수는 있지만 B키만 알아서는 암호화를 할 수 없다. A,B키를 모두 들고 있는 관리자만 가능한 것이 다.
이렇게 되면 중간에서 웹 페이지를 누가 가로채어도 내용을 전혀 읽을 수 없다.
사실 시간이 주어진다면 암호화를 풀 수도 있다.
예를 들어 1024비트 암호화를 사용한다면 암호 키가 1024비트, 즉 2의 1024승이라는 것이다.
암호를 계산해서 푸는 방법은 없다.
키를 모르고 암호화를 푼다는 것은 모든 키를 하나씩 다 대입해서 풀릴 때까지 해 보는 것이다.
그러면 위의 경우 평균적으로 2의 512승 번을 해 봐야 한다.
2의 512승과 2 x 512는 차원이 다르다. 2의 20승만 해도 백 만이 넘는다. 아무리 빠른 컴퓨터로 대입해도 아마 몇 천 년은 해야 할 것이다. 그래서 안전한 것이다.
사용자 입장에서의 장단점
Http 장점:
1) 인증이 따로 필요 없기 때문에 Https보다 속도가 빠르다.
2) 중간에 인터넷이 끊어져도 계속 이어서 할 수 있다 .
Http 단점:
1) 보안에 취약, 변조 가능성을 항상 끼고 살아야 함.
Https 장점:
1) 암호화를 하기 때문에 중요 정보등을 안전하게 보호 할 수 있다.
Https 단점:
1) https의 경우에는 소켓 (데이터를 주고 받는 경로) 자체에서 인증을 하기 때문에 인터넷 연결이 끊기면 소켓도 끊어져서 다시 https 인증을 해야 한다. 그래서 시간이 또 걸린다.
2) 비용이 많이 든다
결론
보안이 필요없는 간단한 사이트에서는 http
보안이 필요한 사이트에서는 https를 사용하자
도움이 됐다면 아래 광고 하나 클릭해주시면 글쓴이에게 큰 힘이 됩니다.