HTTPS와 TLS 1. 암호화

창진·2023년 8월 29일
0

cs 지식

목록 보기
35/50


암호화는 승인된 당사자만 정보를 이해할 수 있도록 데이터를 “스크램블”한 방법입니다. 이를 복호화하려면 송신자와 수신자가 서로 동의한 “키”가 필요합니다. 또한 이를 만들기 위해 키가 쓰이기도 합니다.
ciphertext = plaintext + key

스크램블

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

예를 들어, 공통 128비트 고급 암호화 표준(Advanced Encryption Standard, AES)으로 암호화된 파일의 경우 이 파일을 구성하는 비트는 약 10회 스크램블되며 다른 컴퓨터가 키 없이 해독하려면 아주 오랜 시간이 걸립니다. 비트가 높아질수록 스크램블을 많이 하게 되고 더 복잡해지는 것인데 이 128비트는 AES의 가장 약한 버전입니다. 192비트 및 256비트 키 크기도 제공됩니다.

대칭 암호화

대칭 암호화는 키를 하나만 사용하는 암호화 방법입니다. 예를 들어 "hello"라는 텍스트를 키로 암호화한다고 해봅시다. 동일한 키로 암호를 해독해서 hello를 반환한 것을 볼 수 있습니다.

비대칭 암호화

비대칭 암호화는 공개키 암호화라고도 합니다. 공개 키 암호화는 두 개의 다른 키(공개키, 개인키)로 데이터 암호화하거나 서명하고 키 중 하나인 공개 키를 누구나 사용할 수 있도록 하는 방법입니다. 공개키로 암호화된 데이터는개인키로만 복호화할 수 있게 합니다. 일반적으로 사용되는 비대칭 암호화 알고리즘은 RSA, DH(Diffie–Hellman) 이 있습니다.

HTTPS를 가능하게 하는 프로토콜인 TLS는 부분적으로 비대칭 암호화를 씁니다. (TLS1.3) 비대칭암호화로 인증을 한 후, 대칭 암호화로 보안적 통신을 시작합니다. TLS 핸드셰이크 과정에서 처음 인증할 때 비대칭암호화를 하고 그 이후 클라이언트와 서버는 "세션키"라고 하는 키를 기반으로 대칭 암호화를 기반으로 암호화된 통신을 합니다.

암호화의 필요성

암호화는 의도된 수신자 또는 송신자를 제외하고는 통신을 하이재킹하여 읽을 수 없게 합니다. 이를 통해 민감한 데이터의 유출을 방지하고 데이터 무결성을 보장합니다.

profile
안녕하세요

0개의 댓글