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