4. 4
2. 배경
- SSL이란?
• SSL 디지털 인증서
- 제 3자가 통신을 보증하는 문서
- 서버가 클라이언트에게 인증서 전달
- 인증서 검증(인증된 기관에서 발급받았는지)
- 인증, 기밀성, 무결성 보장
Secure Socket Layer
웹 서버와 클라이언트 사이의 보안을 위해 개발
HTTPS프로토콜 통신의 기본 모델
5. 5
2. 배경
대칭키와 공개키 암호 혼용
- SSL 암호화
• 대칭키 : 실제 데이터
• 공개키 : 대칭키의 키
대칭키
공개키
대칭키
7. 7
2. 배경
SHA1, SHA2, SHA3, SHA5
- SHA(해쉬 알고리즘)
SHA1은 SSL에서 채택 되지 않음
- 2013년 마크 스티븐스 해쉬 충돌 가능성 제시
( 해시 충돌: 해쉬함수가 서로 다른 두 개의 입력값에
대해 동일한 출력값을 내는 상황 )
- 구글 & 네덜란드 암스테르담 국립수학전산학연구소
JPEG 이미지 데이터 영역에 충돌 블록삽입
SHA1 충돌 증명
- 실제로는 SHA256 알고리즘 사용
14. 3. Let’s Encrypt
- Let’s Encrypt 이란?
TLS 암호화를 위해 무료 X.509 인증서를 제공하는 인증 기관
스폰서 : Mozilla, Akamai, Cisco, eff, Identrust
콘솔상에서 인증서 발급/갱신/설치 가능한 편리성 제공
HTTPS Everywhere 를 추구하는 비영리 프로젝트
15. 15
3. 설계
서버 설계 및 개발 환경
• 개발 환경 : AWS EC2 Instance
• 운영 체제 : Ubuntu 16. 04. 4 LTS
• 사용 언어 : Python (버전: 3.5.2)
• 사용한 웹 프레임워크 : Flask
• 테스트에 사용한 툴 : Postman, Whale 브라우저
16. 16
4. 구현
웹 프레임워크에 SSL 인증서 링크-
• Let’s Encrypt로 발급받은 SSL 인증서의 경로를 링크
• HTTPS 를 지원하는 443번 포트를 사용
17. 17
4. 구현
웹 프레임워크에 SSL 인증서 링크-
• Let’s Encrypt로 발급받은 SSL 인증서의 경로를 링크
• HTTPS 를 지원하는 443번 포트를 사용