일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcp
- kakao
- Tensorflow 2.0
- 뉴비톤
- BOAZ
- aws
- SageMaker
- Backend.AI
- CSIP
- 오픈소스해커톤
- entity
- rl
- GDG Campus
- 스터디 잼
- Speech
- 머신러닝
- SW중심대학
- seq2seq
- Ground Truth
- re:Invent
- API
- Community Day
- 코딩테스트
- Open Hack
- Qwik Start
- 구글스타트업캠퍼스
- OPENHACK
- ainize
- 해커톤
- Conference
- Today
- Total
pizzaplanet
HTTP와 HTTPS 본문
최근 정부의 HTTPS 차단 규제로 말이 많다. 청와대 국민청원 "https 차단 정책에 대한 반대 의견"에서는 작성 시간 기준 133,442명이 참여했다. 방통위(방송통신위원회)는 새로운 기술인 SNI(Server Name Indication) 차단 방식을 이용했다고 한다. HTTPS에서 암호화 되지 않는 영역인 SNI 필드를 확인해 클라이언트가 접속하려는 서버를 확인하여 차단하였다고 한다.
이와 관련하여 HTTP와 HTTPS의 차이점을 알아보자.
HTTP and HTTPS
HTTP : HyperText Transfer Protocol
Hypertext인 HTML을 전송하기 위한 통신 규약이다. 암호화되지 않은 방법으로 데이터를 전송하여 서버와 클라이언트간의 메시지 감청이 쉽다. 예를 들어 로그인 정보를 서버로 전송하거나 문서 등을 전송할 때 스니핑 및 스푸핑(악의적인 감청이나 데이터 변조등)에 노출될 수 있다.
HTTPS: HyperText Transfer Protocol + over Secure socket layer
Http에서 Secure을 통해 보다 보안이 강화된 http이다. SSL 통신 방법 위에서 HTTP이고 HTTP가 SSL을 이용할때 HTTPS라고 부른다.
SSL
SSL and TLS
같은 말이다. SSL은 네스케이프에 의해 발명 되었고, 보편화 되면서 IETF가 주체적으로 관리하며 이름이 TLS로 바뀌었다. 정식 명칭은 TLS 이지만 역사적으로, 보편적으로 SSL이라 부른다.
SSL 디지털 인증서
SSL 인증서는 클라이언트와 서버간 통신을 제3자(CA)가 보증해주는 전자화된 문서다.
1. |클라이언트| --------------------접속------------------> [서버]
2. |클라이언트| <------SSL 디지털 인증서 정보 전달----- [서버]
3. [클라이언트] 전달 받은 인증서 정보가 신뢰할 수 있는 것인지 검증 후 다음 절차 수행
SSL과 SSL 디지털 인증서 이용 시 이점
- 통신 내용(패킷) 노출 및 변경 예방(스니핑, 스푸핑 등)
- 클라이언트가 접속하려는 서버가 신뢰 가능한 서버인지 판단 가능
암호화
SSL의 핵심은 암호화이다. 간단한 설명을 통해 암호화를 알아보자.
암호화 : 원문 'LOVE'를 아무나 이해할 수 없게 'LOVE'의 각 알파벳의 다음 순번 알파벳으로 치환하여 'MPZF'라고 바꿈
키 : 원문을 암호화 하는 기준. 이 키를 알고 있으면 복호화('MPZF' -> 'LOVE') 가능
위의 방식이 대칭키 암호화 방식이다.
대칭키 암호화 방식
- 암호화(인코딩)와 디코딩(복호화)에 같은 키를 사용하는 알고리즘. 즉, 송신자와 수신자가 같은 공유키를 가져야 대화가 가능하다.
- 대칭키 전달 과정에서 키 유출 시 디코딩이 가능하므로 위험하다.
- 대칭키 암호화 방식을 보완하기 위해 탄생
- 인코딩과 디코딩에 서로 다른 키를 사용한다.
- |A key| ---암호화---> |평문| <---복호화--- |B key| 혹은 |B key| ---암호화---> |평문| <---복호화--- |A key| 가능
- 공개 키(public key)는 공개되어 있으며 보통 디지털 인증서에 포함되어 있다.
- 비공개 키(private key)는 호스트만이 알고 있다.
- 메시지의 인코딩은 누구나 할 수 있지만 디코딩은 비밀키 소유자만 가능하다.
- 클라이언트가 안전하게 서버로 메시지를 전송할 수 있다.
- 단, 알고리즘 계산으로 인한 비용 소모 발생
전자 서명
비공개 키 소유자가 비공개 키를 이용하여 정보 암호화 후 공개키와 함께 암호화된 정보를 전송할 수 있다. 정보와 공개키를 획득한 사람은 공개키를 이용해 암호화된 정보를 복호화 한다. 이 과정에서 공개키 유출 시 공격의 위험이 높아진다. 보통 이런 경우는 데이터 보호 목적이 아닌 신원 보장의 목적으로 이루어 진다. 이를 전자 서명이라고 부른다.
장단점
사용자 측 장단점
- HTTP가 HTTPS에 비해 빠르다. 즉, HTTPS는 좀 더 느리다.
- HTTP는 변조 가능성이 높다. 즉 HTTPS는 좀 더 안전하다.
공급자 측 장단점
- HTTP로 민감한 정보 다룰 시 항상 변조, 해킹 가능성을 생각해야 한다.
- https 사용시 설치 및 인증서 유지에 추가비용 발생
- Http는 트래픽이 더 적게 발생한다. 즉, 상대적으로 적은 비용으로 유지 가능하다.
결론 : 결제, 로그인 등 민감정보는 HTTPS를 이용하고 그 외는 http를 이용하자.
참고
[잠깐상식] https와 http의 차이는? 정부 유해 사이트 차단에 관심 up
Http vs Https (Http,와 Https의 차이점)
'ETC' 카테고리의 다른 글
OBS 화면 검게 나올 때 해결법 (0) | 2019.01.23 |
---|---|
금융권? 대기업? IT기업? 스타트업? 능력자가 아닌 일반 졸업예정자의 고민(2) (0) | 2019.01.18 |
금융권? 대기업? IT기업? 스타트업? 능력자가 아닌 일반 졸업예정자의 고민 (5) | 2019.01.09 |
Jupyter와 PySpark 연동 및 외부에서 Jupyter 접속하기 (0) | 2018.10.03 |
데브옵스 DevOps(Development + Operations) (1) | 2018.10.01 |