SlideShare a Scribd company logo
1 of 26
Download to read offline
Web은 Network에서 How?
Web은 뒤에서 어떻게 동작하는가?
HSTS, HTTP에 관해 알아보자
HSTS
HTTP 대신 HTTPS만을 사용해 통신해야 한다고
Web Site가 Browser에 알리는 보안 기능
HSTS
안전한 원본 페이지 X가 아닌 => 악의적인 다른 페이지로
Redirect되는 Man in the middle Attack 위험
HSTS preload
Chrome 보안 팀 => HSTS preload list [https://hstspreload.org/]
첫 번째 방문에도 Strict Transport Security사 자동으로 활성화되는 Domain 목록
Firefox, Safari, Opera, Edge - Chrome의 HSTS preload list 통합
HSTS preload
Curl -v http://www.naver.com 입력시 HTTP Header
strict-transport-security 헤더 옵션이 걸려있음
HTTPS
HTTP 프로토콜 + 대칭 / 비대칭 인증서 기반 암호 집합
네트워크 인터페이스
IP
TCP
HTTP 애플리케이션 계층
전송 계층
네트워크 계층
데이터 링크 계층
(A) HTTP
네트워크 인터페이스
IP
TCP
SSL 혹은 TLS 보안 계층
전송 계층
네트워크 계층
데이터 링크 계층
(A) HTTP
HTTP 애플리케이션 계층
SSL
1) Client : server에 443 포트로 연결 & Binary 포맷으로 된 몇몇
SSL 보안 매개변수를 교환하면서, HandShake를 하고, 암호화된 HTTP 명령을 보냄
SSL or TLS
SSL 3.0을 참고로 해 RFC 2246으로 표준화한 것 => TLS
전송 계층
응용 계층 응용 프로그램 자체 구현 가능
(EAP, IPsec 등 - OS 등에 밀접 관련)
전송 계층 상에서 Client, Server에 대한 인증, 데이터 암호화 수행
SSL Handshake
Protocol 버전 번호 교환
양쪽이 알고 있는 암호 선택
양쪽의 신원을 인증
채널을 암호화하기 위한 임시 세션 키 생성
SSL Handshake 과정
(1) 클라이언트가 암호 후보들을 보내고 인증서 요구
(2) 서버는 선택된 암호화 인증서 보냄
(3) 클라이언트가 비밀정보를 보냄 & 클라이언트, 서버는 키를 만듬
(4) 클라이언트와 서버는 서로에게 암호화를 시작한다고 말해줌
SSL Handshake
(1) 클라이언트가 암호 후보들을 보내고 인증서 요구
SSL Handshake
(2) 서버는 선택된 암호화 인증서 보냄
SSL Handshake
(3) 클라이언트가 비밀정보를 보냄 & 클라이언트, 서버는 키를 만듬
SSL Handshake
(4) 클라이언트와 서버는 서로에게 암호화를 시작한다고 말해줌
Proxy & Security Traffic Tunneling
Proxy - 방화벽 라우터가 HTTP 트래픽의 교환을 허락한 유일한
장치, 바이러스 검사 & 기타 콘텐츠 제어
Proxy & Security Traffic Tunneling
Proxy & Security Traffic Tunneling
Proxy가 Header를 읽을 수 없다면?
Proxy는 요청을 어디로 보내야
하는지 알 수 없게됨
????
Solution: HTTPS SSL Tunneling Protocol
클라이언트는 Proxy에게 연결하고자 하는 안전한 호스트와 포트를 말해준다
(암호화가 시작되기 전의 평문으로!)
HTTP -> CONNECT 메소드 : 평문으로 된 종단 정보를 전송하기 위해 사용됨
Connect? : Proxy에게 희망하는 Host, Port 번호로 연결 요구 => 완료되면, 터널 생성
(클라이언트와 서버 사이에 데이터가 직접적으로 오갈 수 있음)
Solution: HTTPS SSL Tunneling Protocol
Client는 Proxy로부터 응답 대기 & Proxy는 확인 작업
Solution: HTTPS SSL Tunneling Protocol
“원 서버의 Host:Port <HTTP 버전 문자열> CRLF”
0개 이상의 HTTP 요청 헤더줄들이 이어지고, 빈 줄 하나가 옴
if handshake ok, SSL 데이터 전송이 시작됨
Solution: HTTPS SSL Tunneling Protocol
Proxy는 목적지 서버로 연결하고 성공하면 응답을 Client에게 보냄
HTTP/1.1 200 Connection Established
Tunneling
HTTP Tunneling - 제한된 네트워크 연결 조건에서 네트워크 링크를 만드는데 사용
웹 터널 - HTTP Protocol을 지원하지 않는 Application에
HTTP Application을 사용해 접근하는 방법 제시
Tunneling
왜? HTTP 커넥션 안에 HTTP가 아닌 트래픽을 얹기 위해서
Tunneling Protocol
https://en.wikipedia.org/wiki/Tunneling_protocol
https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling
참고
HTTPS를 강제하는 HSTS 사용하기
Chrome Network Tools
Chrome Network Features Reference
SSL vs TLS
HTTP Tunneling
Book: HTTP 완벽 가이드

More Related Content

Similar to HSTS, Tunneling에 대해 알아보자 .pdf

[Network] Data Transfer History
[Network] Data Transfer History[Network] Data Transfer History
[Network] Data Transfer Historyssuserb2b4e71
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요dgmit2009
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술JungHyuk Kwon
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술정혁 권
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초JinuNoh
 
HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수Yeon Soo Kim
 
WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술Changhwan Yi
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10hungrok
 
Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상knight1128
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취NAVER D2
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js연웅 조
 
Websocket.. whit http, tcp
Websocket.. whit http, tcpWebsocket.. whit http, tcp
Websocket.. whit http, tcpdana238767
 
Cross-Platfrom 기반 Agent 개발
 Cross-Platfrom 기반 Agent 개발 Cross-Platfrom 기반 Agent 개발
Cross-Platfrom 기반 Agent 개발ssuser2e5c461
 
웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향FlyHigh Co., LTD.
 
ShieldOne-SIG 제품소개서 3.5
ShieldOne-SIG 제품소개서 3.5ShieldOne-SIG 제품소개서 3.5
ShieldOne-SIG 제품소개서 3.5PLUS-I
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형Minchul Jung
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해InGuen Hwang
 

Similar to HSTS, Tunneling에 대해 알아보자 .pdf (20)

HTTPS
HTTPSHTTPS
HTTPS
 
[Network] Data Transfer History
[Network] Data Transfer History[Network] Data Transfer History
[Network] Data Transfer History
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
 
HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수HTTP 발표자료 - 김연수
HTTP 발표자료 - 김연수
 
WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술WoO 2012-Web 서비스 기술
WoO 2012-Web 서비스 기술
 
HTTPS, 원격제어
HTTPS, 원격제어HTTPS, 원격제어
HTTPS, 원격제어
 
IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10IT 일반기술 강의자료_ed10
IT 일반기술 강의자료_ed10
 
Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
Websocket.. whit http, tcp
Websocket.. whit http, tcpWebsocket.. whit http, tcp
Websocket.. whit http, tcp
 
Cross-Platfrom 기반 Agent 개발
 Cross-Platfrom 기반 Agent 개발 Cross-Platfrom 기반 Agent 개발
Cross-Platfrom 기반 Agent 개발
 
웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향웹 서비스를 위한 보안서버 구축방향
웹 서비스를 위한 보안서버 구축방향
 
ShieldOne-SIG 제품소개서 3.5
ShieldOne-SIG 제품소개서 3.5ShieldOne-SIG 제품소개서 3.5
ShieldOne-SIG 제품소개서 3.5
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 

More from Ho Jeong Im

Packet에 대해서 알아보자.pdf
Packet에 대해서 알아보자.pdfPacket에 대해서 알아보자.pdf
Packet에 대해서 알아보자.pdfHo Jeong Im
 
REST에 대해 알아봅시다.pdf
REST에 대해 알아봅시다.pdfREST에 대해 알아봅시다.pdf
REST에 대해 알아봅시다.pdfHo Jeong Im
 
HTTP2에 대해서 알아보자.pdf
HTTP2에 대해서 알아보자.pdfHTTP2에 대해서 알아보자.pdf
HTTP2에 대해서 알아보자.pdfHo Jeong Im
 
허프만 코드에 대해 그림으로 알아보자.pdf
허프만 코드에 대해 그림으로 알아보자.pdf허프만 코드에 대해 그림으로 알아보자.pdf
허프만 코드에 대해 그림으로 알아보자.pdfHo Jeong Im
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfHo Jeong Im
 
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdf
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdfCPU Scheduling 알고리즘에는 무엇이 있을까? .pdf
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdfHo Jeong Im
 
Database Entity, 정규화에 대해 알아보자.pdf
Database Entity, 정규화에 대해 알아보자.pdfDatabase Entity, 정규화에 대해 알아보자.pdf
Database Entity, 정규화에 대해 알아보자.pdfHo Jeong Im
 
HTTP가 가지는 특징에는 무엇이 있을까.pdf
HTTP가 가지는 특징에는 무엇이 있을까.pdfHTTP가 가지는 특징에는 무엇이 있을까.pdf
HTTP가 가지는 특징에는 무엇이 있을까.pdfHo Jeong Im
 
DP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfDP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfHo Jeong Im
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfHo Jeong Im
 

More from Ho Jeong Im (11)

Prefix_sum.pdf
Prefix_sum.pdfPrefix_sum.pdf
Prefix_sum.pdf
 
Packet에 대해서 알아보자.pdf
Packet에 대해서 알아보자.pdfPacket에 대해서 알아보자.pdf
Packet에 대해서 알아보자.pdf
 
REST에 대해 알아봅시다.pdf
REST에 대해 알아봅시다.pdfREST에 대해 알아봅시다.pdf
REST에 대해 알아봅시다.pdf
 
HTTP2에 대해서 알아보자.pdf
HTTP2에 대해서 알아보자.pdfHTTP2에 대해서 알아보자.pdf
HTTP2에 대해서 알아보자.pdf
 
허프만 코드에 대해 그림으로 알아보자.pdf
허프만 코드에 대해 그림으로 알아보자.pdf허프만 코드에 대해 그림으로 알아보자.pdf
허프만 코드에 대해 그림으로 알아보자.pdf
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdf
 
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdf
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdfCPU Scheduling 알고리즘에는 무엇이 있을까? .pdf
CPU Scheduling 알고리즘에는 무엇이 있을까? .pdf
 
Database Entity, 정규화에 대해 알아보자.pdf
Database Entity, 정규화에 대해 알아보자.pdfDatabase Entity, 정규화에 대해 알아보자.pdf
Database Entity, 정규화에 대해 알아보자.pdf
 
HTTP가 가지는 특징에는 무엇이 있을까.pdf
HTTP가 가지는 특징에는 무엇이 있을까.pdfHTTP가 가지는 특징에는 무엇이 있을까.pdf
HTTP가 가지는 특징에는 무엇이 있을까.pdf
 
DP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdfDP 알고리즘에 대해 알아보자.pdf
DP 알고리즘에 대해 알아보자.pdf
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
 

HSTS, Tunneling에 대해 알아보자 .pdf

  • 1. Web은 Network에서 How? Web은 뒤에서 어떻게 동작하는가? HSTS, HTTP에 관해 알아보자
  • 2. HSTS HTTP 대신 HTTPS만을 사용해 통신해야 한다고 Web Site가 Browser에 알리는 보안 기능
  • 3. HSTS 안전한 원본 페이지 X가 아닌 => 악의적인 다른 페이지로 Redirect되는 Man in the middle Attack 위험
  • 4. HSTS preload Chrome 보안 팀 => HSTS preload list [https://hstspreload.org/] 첫 번째 방문에도 Strict Transport Security사 자동으로 활성화되는 Domain 목록 Firefox, Safari, Opera, Edge - Chrome의 HSTS preload list 통합
  • 5. HSTS preload Curl -v http://www.naver.com 입력시 HTTP Header strict-transport-security 헤더 옵션이 걸려있음
  • 6. HTTPS HTTP 프로토콜 + 대칭 / 비대칭 인증서 기반 암호 집합 네트워크 인터페이스 IP TCP HTTP 애플리케이션 계층 전송 계층 네트워크 계층 데이터 링크 계층 (A) HTTP 네트워크 인터페이스 IP TCP SSL 혹은 TLS 보안 계층 전송 계층 네트워크 계층 데이터 링크 계층 (A) HTTP HTTP 애플리케이션 계층
  • 7. SSL 1) Client : server에 443 포트로 연결 & Binary 포맷으로 된 몇몇 SSL 보안 매개변수를 교환하면서, HandShake를 하고, 암호화된 HTTP 명령을 보냄
  • 8. SSL or TLS SSL 3.0을 참고로 해 RFC 2246으로 표준화한 것 => TLS 전송 계층 응용 계층 응용 프로그램 자체 구현 가능 (EAP, IPsec 등 - OS 등에 밀접 관련) 전송 계층 상에서 Client, Server에 대한 인증, 데이터 암호화 수행
  • 9. SSL Handshake Protocol 버전 번호 교환 양쪽이 알고 있는 암호 선택 양쪽의 신원을 인증 채널을 암호화하기 위한 임시 세션 키 생성
  • 10. SSL Handshake 과정 (1) 클라이언트가 암호 후보들을 보내고 인증서 요구 (2) 서버는 선택된 암호화 인증서 보냄 (3) 클라이언트가 비밀정보를 보냄 & 클라이언트, 서버는 키를 만듬 (4) 클라이언트와 서버는 서로에게 암호화를 시작한다고 말해줌
  • 11. SSL Handshake (1) 클라이언트가 암호 후보들을 보내고 인증서 요구
  • 12. SSL Handshake (2) 서버는 선택된 암호화 인증서 보냄
  • 13. SSL Handshake (3) 클라이언트가 비밀정보를 보냄 & 클라이언트, 서버는 키를 만듬
  • 14. SSL Handshake (4) 클라이언트와 서버는 서로에게 암호화를 시작한다고 말해줌
  • 15. Proxy & Security Traffic Tunneling Proxy - 방화벽 라우터가 HTTP 트래픽의 교환을 허락한 유일한 장치, 바이러스 검사 & 기타 콘텐츠 제어
  • 16. Proxy & Security Traffic Tunneling
  • 17. Proxy & Security Traffic Tunneling Proxy가 Header를 읽을 수 없다면? Proxy는 요청을 어디로 보내야 하는지 알 수 없게됨
  • 18. ????
  • 19. Solution: HTTPS SSL Tunneling Protocol 클라이언트는 Proxy에게 연결하고자 하는 안전한 호스트와 포트를 말해준다 (암호화가 시작되기 전의 평문으로!) HTTP -> CONNECT 메소드 : 평문으로 된 종단 정보를 전송하기 위해 사용됨 Connect? : Proxy에게 희망하는 Host, Port 번호로 연결 요구 => 완료되면, 터널 생성 (클라이언트와 서버 사이에 데이터가 직접적으로 오갈 수 있음)
  • 20. Solution: HTTPS SSL Tunneling Protocol Client는 Proxy로부터 응답 대기 & Proxy는 확인 작업
  • 21. Solution: HTTPS SSL Tunneling Protocol “원 서버의 Host:Port <HTTP 버전 문자열> CRLF” 0개 이상의 HTTP 요청 헤더줄들이 이어지고, 빈 줄 하나가 옴 if handshake ok, SSL 데이터 전송이 시작됨
  • 22. Solution: HTTPS SSL Tunneling Protocol Proxy는 목적지 서버로 연결하고 성공하면 응답을 Client에게 보냄 HTTP/1.1 200 Connection Established
  • 23. Tunneling HTTP Tunneling - 제한된 네트워크 연결 조건에서 네트워크 링크를 만드는데 사용 웹 터널 - HTTP Protocol을 지원하지 않는 Application에 HTTP Application을 사용해 접근하는 방법 제시
  • 24. Tunneling 왜? HTTP 커넥션 안에 HTTP가 아닌 트래픽을 얹기 위해서
  • 26. 참고 HTTPS를 강제하는 HSTS 사용하기 Chrome Network Tools Chrome Network Features Reference SSL vs TLS HTTP Tunneling Book: HTTP 완벽 가이드