안녕하세요. 저는 이번 Kernel360의 기술세미나에서 Https를 주제로 발표하게된 손현준입니다.

HTTPS는 인터넷을 통한 안전한 데이터 전송에 사용되는 보안 버전의 HTTP입니다. Https를 통해 데이터 개인 정보 보호 및 보안을 보호하기 위해 정보를 암호화합니다.

1. Https 란?

참고자료2

우리가 인터넷에서 자주 사용하는 인터넷 주소를 살펴보면, 프로토콜, 호스트(도메인), 포트번호, 경로, 쿼리값 등으로 이루어져 있습니다. 이 중 가장 앞부분에

자리하고 있는 http 부분을 hyper text Protocol 이라고 부릅니다. 하이퍼 텍스트 프로토콜이 무엇일까요? 프로토콜은 쉽게 말해, 인터넷 상에서 하이퍼 텍스트

문서를 주고 받을때 지켜야 할 규약을 의미합니다. 그러면 Https 는 무엇일까요? 바로 기존의 Http에 Secured 즉, 보안처리, 암호화된 하이퍼텍스트 통신규약을

의미한다고 보면 됩니다.

참고자료3

2. Https 와 Http 의 차이점?

참고자료4

Http 와 Https에는 위 표와 같은 차이점이 존재합니다. Https는 장점만 존재하지는 않습니다. Http 보다 추가적인 보안과정이 필요하므로, Http보다는 느릴수

밖에 없습니다. 따라서, 특별한 보안이 필요하지 않는, 사내망이나, 인트라넷의 경우는 Https를 하는것이 오히려 더 부적절 할 수 있습니다.

참고자료5

Https는 왜 그림과 같이 SSL 이나, TLS 과정이 포함됩니다. SSL은 Secure Sockets Layer의 약자로 인터넷 연결을 안전하게 유지해 주고, 두 시스템 간에

전송되는 중요한 데이터를 보호하고 범죄자들이 잠재적인 개인 정보를 포함하여 전송된 정보를 읽고 수정하는 것을 방지하기 위한 보안 표준 기술을 뜻합니다. TLS는

Transport Layer Security의 약자로, SSL보다 더 안전한 업데이트 버전이라고 생각하시면 됩니다.

3. Http 의 문제점과 해결책

문제점1. 내가 접속한 사이트가 진짜 사이트인지 판단 할 수 없다.

참고자료6

Https를 사용하지 않으면, 내가 지금 접속하여 통신하고 있는 서버가 진짜, 서버인지 가짜 서버인지 확인할 수 있는 방법이 없다. 이는 사람들에을 피싱사이트로 유도 해 범죄행위를 일으키는 해커들의 주요 타켓이 될 수 있다는 위험성을 가진다.

해결책1. CA (Certificate Association)

CA 는 인증기관으로, 웹사이트, 이메일주소, 회사 또는 개인같은 엔티티의 신원을 확인하고 전자 문서를 발행하여 암호화 키에 바인딩하는 회사 또는 조직을 말한다. CA의 인증은 내가 통신하고 있는 주체에 대한 신뢰성을 부여한다. 참고자료7

위와 같이 CA의 인증을 받은 사이트의 경우는, 인증서를 확인할 수 있다.

문제점2. 클라이언트와 서버가 주고 받는 정보를 제3자가 볼 수 있다.

참고자료8

Https 환경이 아니면, 보안측면에서 주고 받는 데이터에 대한 암호화가 되지 않아, 클라이언트와 서버간의 주고 받는 데이터를 제3가 탈취할 수 있다는 위험성이 생긴다.

해결책2. 암호화

데이터 탈취에 대한 위험성을 줄이기 위한 해결책으로 암호화를 생각해 볼수 있다. 암호화는 크게 두가지 방식을 생각해 볼 수 있는데, 대칭키 방식과 비대칭키 방식이 있다. 참고자료9

4. Https 의 내부작동원리

암호화 방식과 관련해 Https가 내부에서 어떻게 작동하는지 살펴보자. 이 내용은 널널한개발자 유튜브의 아래 참고링크의 내용을 기반으로 작성하였다.

대칭키의 한계

참고자료10

대칭키는 하나의 키로 암호화와 복호화를 모두 진행한다. 따라서, 본질적으로 제3자(해커) 몰래 대칭키를 어떻게 나누어 가질 것인가 라는 문제에 부딪친다. 따라서, 이에 대안으로 등장한 것이 비대칭키 이다. 비대칭키는 공개키와 개인키 두개로 각각 암호화와 복호화의 하나의 기능만 하도록 만들었다.

참고자료11

비대칭키를 교환하는 방식은 위와 같다.

참고자료12

  1. 클라이언트와 서버 각 사이드가 공개키와 개인키 각각의 키쌍을 생성합니다.
  2. 각 사이드의 public 키를 교환합니다. 이 public 키는 전세계 모든 컴퓨터에게 개방되어 있고 용도는 암호화 입니다.
  3. 받은 상대방의 public키로 평문을 암호화 하고, 암호화된 암호문을 상대방에게 보냅니다.
  4. 받은 암호문을 개인키로 복호화 합니다.

참고자료13


참고자료, 사진출처

Http,Https의 차이점
SSL 보안서버인증서란
HTTPS가 뭐고 왜 쓰나요? (Feat. 대칭키 vs. 비대칭키)
[10분 테코톡] 🍭 다니의 HTTPS
https와ssl이란무엇인가
비대칭키가 인터넷 환경에서 사용되는 기본 원리