본문 바로가기

기타

암호화 스위트 (Cipher Suite) 의 구조

728x90
반응형

암호화 스위트 (Cipher Suite) 의 구조

암호화 스위트(Cipher Suite)는 SSL/TLS 프로토콜에서 사용되는 암호화 알고리즘과 프로토콜 설정의 조합을 나타내는 것입니다. 클라이언트와 서버 간의 통신 시, SSL/TLS 핸드셰이크 과정에서 클라이언트가 지원하는 암호화 알고리즘과 프로토콜을 서버에 알리고, 서버는 그 중에서 하나를 선택하여 암호화 통신에 사용합니다. 이렇게 선택된 암호화 알고리즘과 프로토콜 조합을 암호화 스위트라고 합니다.

 

출처-https://rsec.kr/wp-content/uploads/2017/07/2017-07-29_14-29-10.png

 

암호화 스위트의 구조는 일반적으로 다음과 같습니다.

<키 교환 알고리즘>-<암호화 알고리즘>-<메시지 인증 알고리즘>-<키 교환 알고리즘>

각 구성 요소는 다음과 같은 역할을 수행합니다.

 

  1. 키 교환 알고리즘(Key Exchange Algorithm): 클라이언트와 서버 간에 비밀 키를 교환하는 방법을 정의합니다. 일반적으로 RSA, Diffie-Hellman, Elliptic Curve Diffie-Hellman (ECDH) 등의 알고리즘이 사용됩니다.
  2. 암호화 알고리즘(Encryption Algorithm): 데이터의 기밀성을 위해 사용되는 알고리즘을 정의합니다. 대표적인 암호화 알고리즘으로는 AES, DES, 3DES, ChaCha20 등이 있습니다.
  3. 메시지 인증 알고리즘(Message Authentication Algorithm): 데이터의 무결성을 검증하기 위해 사용되는 알고리즘을 정의합니다. 주로 HMAC (Hash-based Message Authentication Code) 알고리즘이 사용됩니다.
  4. 키 교환 알고리즘(Key Exchange Algorithm): 클라이언트와 서버 간의 인증을 위해 사용되는 알고리즘을 정의합니다. 주로 RSA, DSA, ECDSA 등의 알고리즘이 사용됩니다.

암호화 스위트는 SSL/TLS 프로토콜의 핸드셰이크 단계에서 클라이언트와 서버가 상호 약속된 암호화 스위트를 선택하여 통신을 수행합니다. 서버는 클라이언트가 지원하는 암호화 스위트 중 하나를 선택하고, 클라이언트와 암호화 방식 및 프로토콜 버전을 협상합니다.

 

중요한 점은 서버 및 클라이언트가 모두 지원하는 암호화 스위트를 선택하여 보안 강화를 위해 암호화 방식을 구성해야 한다는 것입니다.

 

예를 들어, ECDHE-RSA-AES256-GCM-SHA384라는 암호화 스위트는 다음과 같은 구조를 가지고 있습니다.

  • ECDHE: Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) 키 교환 알고리즘
  • RSA: RSA 서명 알고리즘을 사용하여 인증
  • AES256: 256비트 Advanced Encryption Standard (AES) 알고리즘을 사용하여 데이터를 암호화
  • GCM: Galois/Counter Mode (GCM) 암호 모드를 사용하여 인증과 암호화를 동시에 수행
  • SHA384: 384비트 Secure Hash Algorithm (SHA)을 사용하여 MAC을 생성

SSL/TLS 프로토콜은 많은 다양한 암호화 스위트를 정의하고 있으며, 서버와 클라이언트는 서로 지원하는 암호화 스위트를 사용하여 통신을 안전하게 수행합니다. 이러한 암호화 스위트 중에서도 보안 강화 및 취약점 수정을 위해 주기적으로 업데이트되는 것들이 있으므로, 보안을 강화하고 최신 암호화 기술을 사용하는 것이 중요합니다.

 

키 교환 알고리즘

키 교환 알고리즘(Key Exchange Algorithm)은 SSL/TLS 프로토콜에서 사용되는 암호화 키를 안전하게 교환하는 알고리즘입니다. 이 알고리즘은 클라이언트와 서버 간에 비밀 키를 생성하고 공유하는 과정을 수행하여 인증 및 기밀성을 보장합니다.

 

다양한 키 교환 알고리즘이 있으며, 주요한 몇 가지를 살펴보겠습니다.

 

  1. RSA (Rivest-Shamir-Adleman): RSA 암호화 알고리즘은 공개 키와 개인 키를 사용하여 키 교환을 수행합니다. 클라이언트는 서버의 공개 키로 암호화된 세션 키를 생성하여 전송하고, 서버는 개인 키를 사용하여 해당 세션 키를 복호화합니다. RSA는 인증과 기밀성을 모두 제공하는 키 교환 알고리즘입니다.
  2. Diffie-Hellman (DH): Diffie-Hellman 알고리즘은 공개 키 교환 프로토콜로, 클라이언트와 서버가 비밀 키를 공유하지 않고도 공개 키를 교환할 수 있게 합니다. 이를 통해 양측은 안전한 세션 키를 도출할 수 있습니다. Diffie-Hellman은 기밀성을 제공하는 키 교환 알고리즘입니다.
  3. ECDH (Elliptic Curve Diffie-Hellman): ECDH 알고리즘은 Diffie-Hellman 알고리즘을 타원 곡선 암호학에 적용한 것입니다. 이 알고리즘은 타원 곡선의 수학적 속성을 이용하여 키 교환을 수행하며, 강력한 보안과 효율성을 제공합니다.

위에서 언급한 것들은 SSL/TLS 프로토콜에서 가장 일반적으로 사용되는 키 교환 알고리즘입니다. 키 교환 알고리즘의 선택은 보안 수준과 성능 요구에 따라 달라질 수 있으며, SSL/TLS 구성에서는 이러한 알고리즘 중 적절한 조합을 선택하여 사용합니다.

 

참고URL

- TLS/SSL의 암호화 도구 모음(Schannel SSP)

 

728x90
반응형

'기타' 카테고리의 다른 글

URI의 구조  (0) 2023.07.04
IDS와 IPS의 차이점  (0) 2023.05.30
RAID(redundant array of independent disks)의 개념과 종류  (0) 2023.04.05
Dockerfile 이미지 생성, 빌드, 배포  (0) 2023.03.29
CI/CD를 구현하기 위해 도구  (0) 2023.03.29