HTTPS 와 TLS - 암호화

HTTPS = HTTP + TLS(Transport Layer Security)

1. 개념

  • 암호화는 승인된 당사자만 정보를 이해할 수 있도록 데이터를 스크램블한 방법을 의미한다.

  • 이를 복호화하려면 송신자와 수신자가 모두 동의한 키가 필요하다.

  • 이를 만들기 위해서 키가 사용되기도 한다.

    • ciphertext = plaintext + key

2. 스크램블

  • 각 단어나 문자를 패턴에 따라서 암호화하는 것이 아니라, 무작위방식으로 개별 데이터 비트를 섞는 것을 말한다.

  • 예를 들어서 공통 128비트 고급 암호화 표준(Advanced Encryption Standard, AES)으로 암호화된 파일의 경우, 이 파일을 구성하는 비트는 약 10회 스크램블 되며, 다른 컴퓨터가 키 없이 해독하려면 아주 오랜 시간이 걸리게 된다.

  • 비트가 높아질수록 스크램블을 많이 하게 되고, 더 복잡해지는 것인데, 이 128비트는 AES 의 가장 약한 버전이다. 192비트, 256비트 키 크기도 제공된다.

3. 암호화 방법들

3-1. 대칭 암호화

  • 키를 하나만 사용하는 암호화 방법.

  • 대표적으로 DES, AES 등이 있다.

3-2. 비대칭 암호화

  • 비대칭 암호화는 공개키 암호화라고도 한다.

  • 공개 키 암호화는 두 개의 다른 키(공개키, 개인키)로 데이터를 암호화하거나 서명하고, 키 중 하나인 공개키를 누구나 사용할 수 있도록 하는 방법이다.

  • 일반적으로 사용되는 비대칭 암호화 알고리즘은 RSA, DH(Diffle-Hellman) 등이 있다.

  • HTTPS 를 가능하게하는 프로토콜인 TLS 는 부분적으로 비대칭 암호화를 쓴다. (TLS1.3)

    • 비대칭 암호화로 인증을 한 후, 대칭 암호화로 보안적인 통신을 시작한다.

    • TLS 핸드쉐이크 과정

      • 처음 인증을 할 때, 비대칭 암호화

      • 그 이후 클라이언트와 서버는 세션키라고 하는 키를 기반으로 대칭 암호화를 기반으로 암호화된 통신진행

4. 암호화의 필요성

  • 의도된 수신자나 송신자를 제외하고는 통신을 탈취(하이제킹)하여 읽을 수 없게 한다.

  • 이를 통해 민감한 데이터의 유출을 방지하고 데이터의 무결성을 보장한다.

Last updated