HTTPS 암호화 방식 (대칭키, 비대칭키, TLS)

woogi·2024년 1월 17일
0

HTTPS 암호화 방식

HTTPS는 SSL/TLS 보안 프로토콜을 통해 암호화를 진행하고 클라이언트와 서버만 해당 암호를 해독하여 정보를 주고받는다.
SSL/TLS 보안 프로토콜은 아래와 같은 대칭키 방식, 비대칭키 방식을 혼용하여 사용한다.

대칭키 방식

클라이언트와 서버가 동일한 키를 가지고 데이터를 암/복호화 하는 방식이다.
서버는 대칭키를 클라이언트에 전송하고 클라이언트는 대칭키로 데이터를 암호화하여 서버에 전송한다.
서버는 대칭키로 데이터를 복호화 하여 사용한다.

여기서 문제는 서버가 클라이언트에 대칭키를 처음 전송해줄때 대칭키 자체를 암호화 할 수 있는 방법이 없기 때문에 대칭키를 해킹 당하면
데이어 복호화가 가능하니 데이터가 유출될 위험이있다.
이러한 대칭키 암호화의 보안 문제를 해결하고자 나온것이 비대칭키 방식이다.

비대칭키(공개키) 방식

동일한 대칭키를 가지고 데이터를 암/복호화 하는 방식과는 달리 비대칭키 방식은 한 쌍의 키를 가진다.
일반적으로 개인키(private key), 공개키(public key)로 되어있으며, 공개키로 암호화를 하면 개인키로 복호화를 한다.
(꼭 공개키는 암호화 개인키는 복호화로 정해진것은 아니고 개인키로 암호화하면 공개키로 복호화 할 수 있다.)
한 쌍의 키로 암호화, 복호화를 하는 암호 알고리즘 중 하나가 RSA 암호화 알고리즘이며 세계적으로 사실상의 표준이다.

아래와 같은 순으로 암호화 통신을 한다.

클라이언트와 서버가 각각의 공개키, 개인키를 가지고 있기 때문에,

  • 클라이언트는 서버에서 받은 공개키를 가지고 데이터를 암호화 해서 서버에 전달
  • 서버는 전달받은 암호화된 데이터를 서버의 개인키를 가지고 복호화
  • 서버가 클라이언트에 데이터를 전달할 때는 반대로 클라이언트의 공개키를 가지고 암호화 하여 클라이언트에 전송
  • 클라이언트는 자신의 개인키를 이용하여 복호화

때문에 해커에게 클라이언트와 서버의 공개키가 노출 된다해도 복호화가 가능한 개인키는 각자 클라이언트, 서버가 가지고 있기 때문에 복호화가 불가능하다.
다만, 비대칭키 방식은 대칭키 방식에 비해 속도가 느리다는 단점이 있다.(RSA 알고리즘을 이용한 암호화 방식이 CPU 리소스를 크게 소모한다고 한다.)

TLS 암호화 방식

대칭키 방식은 대칭키의 해킹 위험이 있고 비대칭키 방식은 대칭키 방식에 비해 속도가 느리다.
때문에 TLS 암호화 통신에서는 이러한 대칭키 방식과 비대칭키 방식을 혼용하여 사용한다.
클라이언트가 서버에 처음 연결할때, 대칭키를 공유하기 위하여 비대칭키 방식으로 대칭키를 서로의 공개키를 이용해 암호화하여 주고 받는다.
그다음 서로 안전하게 전달받은 대칭키를 이용하여 데이터를 빠르게 주고 받는다.(하이브리드 형태)

참고

https://babbab2.tistory.com/4

0개의 댓글

관련 채용 정보