NETWORK Security/보안 프로토콜 (8) 썸네일형 리스트형 TLS1.3 (8) - TLS1.3 Handshake / 1-RTT&0-RTT / 완전 협상&단축 협상 TLS1.3 핸드쉐이크를 살펴보자. TLS 1.3 1-RTT (완전 협상) client -------------------------------------------------------- server Client Hello -> 구축을 마친 후 패킷을 잡아 구체적인 핸드셰이크 과정을 보면, 과정이 간소화 된 것을 확인할 수 있다. TLS1.3 에서는 cipher suites 선택 방법을 최대한 단순화 시켰는데, [[[ Client Hello ]]] client random, supported_version, key_share, psk_key_exchange_modes, pre_shared_key 서버가 한번에 조합되어 있는 cipher suites 에서 하나를 선택하여 다시 클라이언트에게 보내고 통신해.. TLS1.3 (7) - Tool 트래픽 확인을 도와주는 툴 중, TLS1.3 지원이 되어 트래픽 분석에 사용할 수 있는 툴을 조사해보았다. - 지원 X 1. Fiddler4 2. Burp SSL Scanner - 지원 O 1. Wireshark 2. Cloudshark : 와이어샤크처럼 실시간으로 패킷 수집은 되지 않지만 수집한 pcap 파일을 웹 페이지에 업로드 시켜 클라우드 상에서 패킷 내부 분석 및 공유 가능 : 와이어샤크로 pcap 열어보는 것과 거의 동일한 인터페이스 제공 3. SSL Labs : 실무에서 웹 서버 점검 시 많이 사용하는 웹 기반 플랫폼 : 도메인 이름 입력으로 검사 가능 TLS1.3 (6) - 환경 구축 (Nginx-2) 이전 구축에 이어서 nodejs 와 연동이 가능하므로 nodejs도 설치한다. nodejs 기본 패키지 설치 #cd #mkdir local #cd local/ #wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz #tar xvf node-v14.15.1-linux-x64.tar.xz #cd node-v14.15.1-linux-x64/ #cd bin #pwd ; 환경 변수에 해당 경로 적용 위해 복사 (/root/local/node-v14.15.1-linux-x64/bin) #vi ~/.bash_profile ; 환경 변수 추가 #. ~/.bash_profile ; 환경 변수 적용 #node -v 버전 및 정상 설치 확인 이제 expr.. TLS1.3 (5) - 환경 구축 (Nginx-1) / nginx, openssl RPM update nginx 환경은 .. 구축은 괜찮았는데 EC2 에 내장된 nginx 와 openssl 버전을 업그레이드 하는데 자꾸 원상복귀되는 문제가 발생해서.. 힘들었다 youtube 에 너무 좋은 참고 영상이 있어서 맨 밑에 참고로 올리도록 하겠다. 이번 포스팅은 거의 이 youtube 를 글로 적어둔 거라고 보면 될 것 같다. Nginx 웹 서버 환경은 위와 같이 AWS EC2 Amazon Linux 2 AMI (centos7) 에서 구축하였고, nodejs 까지 함께 설치하며 진행하였다. 기본 구축은 TLS 1.3 지원이 안되기 때문에 TLS 1.2 기준으로 쭉 환경 구축을 한 후 패키지를 업그레이드해주면 된다. Amazon Linux 2 의 centOS7 을 웹 서버로 사용하였고, 프리티어에서 스토리지 30.. TLS1.3 (4) - 환경 구축 (Apache) 환경 구축에 앞서, TLS 1.3 환경 구축을 위해 웹 서버와 암호 라이브러리의 버전을 확인해야한다. 조사해본 결과, Apache 웹 서버의 경우 2.4.36 이상에서 TLS 1.3 지원이 된다. 이미 Apache 웹 서버가 pc 에 구축되어 있다 하더라도 버전이 2.4.36 이하라면 TLS 1.3 구축이 안 될수 있으니 확인이 필요하다. 나는 윈도우에 웹 서버를 설치하여 VM으로 접근한 후 트래픽을 캡쳐하는 방식으로 Apache 웹 서버를 구축하였다. (웹 서버와 openssl는 설치가 되어 있어서 그 이후부터 진행하였으니 Apache 웹 서버 구축은 생략) 가장 먼저 Openssl 을 이용해 인증서 발급을 위한 개인키/공개키를 생성해 사용하였다. (관리자 권한 powershell 에서 openssl... TLS1.3 (3) - TLS1.3 과 기존 TLS 차이점 TLS1.3 (RFC 8446) 2018년 8월 IETF(Internet Engineering Task Force, 인터넷 프로토콜 정의 조직)에서 TLS의 최신 버전 표준화 배포 기존 사용하던 알고리즘 중 취약성이 존재하는 알고리즘을 제거하여 표준안 제시 더 빠른 보안 연결 속도와 보안 강화 제공 기존 TLS1.2 이하와 TLS1.3 의 차이점을 살펴보자. 1. 키 교환 알고리즘 & PFS 2. 인증 알고리즘 3. 암호화 및 해시 알고리즘 4. Handshake (0-RTT) 1. 키 교환 알고리즘 & PFS 기존 TLS 1.2 이하에서 사용되던 키 교환 알고리즘 중 RSA 와 SRP 등은 PFS 를 보장하지 않기 때문에 TLS 1.3 에서는 제거되었다. 그리고 ECDHE (, )가 추가되었다. *EC.. TLS1.3 (2) - SSL/TLS Handshake 앞선 포스팅에서 키 교환 프로토콜에 대해 간단히 설명했는데, 이를 기반으로 SSL/TLS handshake 과정을 자세히 살펴보자. 여기서 설명하는 SSL/TLS handshake 과정은 TLS 1.2 이하에 해당하는 과정이다. 위에 와이어샤크로 직접 캡쳐한 TLS 1.2 Handshake 트래픽을 참고하며 아래 설명을 해보자면, client--------------------------------------------------------------------------------------------server 1) client hello -> 5) finished (+ change cipher spec) -> TLS1.3 (1) - cipher suite, 키 합의 프로토콜, 완전 순방향 비밀성(PFS) TLS 1.3 에 대해 발표 준비를 해야해서 환경 구축부터, 기본 개념, 기존 TLS 들과의 차이를 조사하다보니 양이 꽤 나오게 되었다. 공부한 흐름대로 정리해서 포스팅을 쭉 해보고자 한다. TLS (Transport Layer Security ) 란, TLS 라는 명칭이 사용되기 전에는 SSL (Security Sockets Layer) 로 사용되던 명칭이다. 이름에서도 어떤 프로토콜인지 알 수 있듯, 네트워크 상의 통신 보안을 제공하는 암호 프로토콜이다. TCP/IP 네트워크 통신의 전송 계층 종단간 보안과 데이터 무결성 등을 보장해준다. 한마디로, 네트워크 망의 전송 계층에서 무결성 및 기밀성을 보장해주기 위해 사용하는 암호 프로토콜이라고 정리할 수 있다. 좀만 더 구체적으로 보면, TLS 는 이 .. 이전 1 다음