RSA 3세대, HTTPS 통신 과 CA 기관, SSL 인증서

RSA, HTTPS 통신, CA 기관, SSL 인증서
홍윤's avatar
Sep 19, 2024
RSA 3세대, HTTPS 통신 과 CA 기관, SSL 인증서
 

1. RSA 3세대

💡
 
notion image
RSA는 Rivest, Shamir, Adleman이 1977년에 개발한 공개키 암호화 알고리즘입니다. 여기서 말하는 "RSA 3세대"는 특정한 암호화 방식의 세대 구분을 의미하는 것이 아니라, RSA 알고리즘 자체의 발전이나 현대적 응용에 대한 설명일 수 있습니다. RSA 암호화는 여러 방식으로 개선되고 있지만, 기본적인 개념은 유지됩니다.
하지만 RSA의 발전에 대해 더 구체적으로 나눌 수 있는 몇 가지 주요 흐름은 있습니다.

RSA의 기본 개념

RSA는 공개키개인키를 사용하여 데이터를 암호화하고, 이를 이용해 신뢰할 수 있는 통신을 할 수 있는 알고리즘입니다. RSA의 기본 개념은 큰 소수 두 개를 곱해 매우 큰 수를 만든 후, 이 곱셈의 결과에서 역으로 소수를 찾는 것이 매우 어렵다는 원리를 기반으로 합니다.

RSA의 발전

  1. 1세대 RSA: 원래의 RSA 알고리즘은 비교적 단순한 소수 생성과 암호화 구조로 구현되었습니다. 암호화 강도는 키의 길이에 의존하며, 초기에는 512비트 키가 주로 사용되었습니다.
  1. 2세대 RSA: 시간이 지나면서 컴퓨터의 성능이 향상되었고, 이에 따라 1024비트 이상의 키 길이가 도입되었습니다. 이 시점에서 RSA는 전 세계적으로 널리 사용되었으며, 인터넷의 많은 보안 통신에 기본적으로 사용되었습니다.
  1. 3세대 RSA: 현대에는 2048비트 이상의 RSA 키가 주로 사용됩니다. 이는 컴퓨터의 성능이 계속해서 향상되면서 1024비트 키로는 충분한 보안성을 제공하지 못할 가능성이 있기 때문입니다. 또한, RSA는 이제 더 발전된 하드웨어 가속 기술이나 하이브리드 암호화 방식과 결합되어 더 높은 성능과 보안성을 제공하고 있습니다. RSA와 다른 대칭키 알고리즘을 함께 사용하는 하이브리드 암호화가 흔히 사용되며, 이는 암호화 속도를 크게 향상시킵니다.

현대적 RSA의 특징

  • 키 길이: 2048비트 또는 그 이상의 키 길이가 주로 사용되며, 4096비트 또는 그 이상도 필요할 수 있습니다.
  • 하드웨어 가속: 많은 시스템에서 RSA 연산을 더 빠르게 수행하기 위해 하드웨어 가속기를 사용합니다.
  • 하이브리드 암호화: RSA는 대칭키 알고리즘(예: AES)과 함께 사용되어, 성능과 보안을 동시에 유지합니다.
  • 양자 컴퓨팅: 양자 컴퓨터가 등장하면서 RSA와 같은 공개키 알고리즘의 취약성에 대한 연구가 진행 중입니다. RSA 3세대 이후에는 양자 컴퓨팅에 대비한 암호화 기술이 필요할 수 있습니다.
따라서 "RSA 3세대"라는 용어가 있다면, 그것은 현대의 RSA 응용과 그 발전된 사용 방식에 대한 암시일 가능성이 큽니다.
 

 

2. Https 통신

💡
HTTPS(HTTP Secure)는 HTTPTLS/SSL 프로토콜을 추가하여 보안된 통신을 제공하는 프로토콜입니다. HTTPS는 웹사이트와 클라이언트 간의 데이터 전송을 암호화하여 중간에서 데이터가 가로채이거나 변조되는 것을 방지합니다.

HTTPS 통신 과정

HTTPS 통신은 주로 다음 단계로 이루어집니다:
  1. 클라이언트 요청: 브라우저(클라이언트)가 HTTPS를 통해 서버에 접속하려고 할 때, HTTPS는 TCP 연결을 설정한 후에 SSL/TLS 핸드셰이크를 시작합니다.
  1. 서버 인증서 제공: 서버는 자신의 SSL/TLS 인증서를 클라이언트에 전송합니다. 이 인증서에는 서버의 공개키가 포함되어 있습니다. 클라이언트는 이 인증서를 검증해 서버가 신뢰할 수 있는 기관(예: Verisign, Let's Encrypt 등)에서 발급받았는지 확인합니다.
  1. 대칭키 교환: 클라이언트는 서버의 공개키를 사용하여 대칭키(세션 키)를 암호화한 후 서버로 보냅니다. 서버는 이 대칭키를 개인키로 복호화하여 대칭키를 획득합니다. 이때부터 클라이언트와 서버는 대칭키를 사용해 데이터를 암호화하고 복호화합니다.
  1. 암호화된 데이터 통신: 이후의 데이터 전송은 대칭키를 사용하여 암호화된 형태로 주고받습니다. 이렇게 하면 데이터가 중간에서 가로채이더라도 내용을 해독할 수 없습니다.

HTTPS의 주요 구성 요소

  • SSL/TLS: SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)는 HTTPS에서 암호화를 제공하는 프로토콜입니다. 실제로는 TLS가 더 최신이며, 현재 대부분의 HTTPS 통신은 TLS를 사용합니다.
  • 대칭키 암호화: 빠른 암호화 및 복호화를 위해 서버와 클라이언트는 대칭키를 사용해 데이터를 암호화합니다. 대칭키는 핸드셰이크 과정에서 비대칭키를 사용해 안전하게 교환됩니다.
  • 공개키 암호화: HTTPS는 공개키(서버의 공개키)와 개인키(서버의 개인키)를 사용해 대칭키를 안전하게 교환합니다. 이는 RSA와 같은 비대칭 암호화 방식에 의해 이루어집니다.
  • 인증서: 서버는 CA(Certificate Authority, 인증기관)로부터 받은 디지털 인증서를 사용해 자신의 신원을 클라이언트에 증명합니다.

HTTPS의 주요 이점

  1. 기밀성: 클라이언트와 서버 간의 통신이 암호화되어, 제3자가 데이터 내용을 볼 수 없습니다.
  1. 무결성: 전송된 데이터가 중간에서 변경되지 않도록 보호합니다.
  1. 인증: 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장합니다.

HTTPS 통신의 동작 원리를 그림으로 설명하면:

  1. 클라이언트가 서버에 접속: 클라이언트가 서버에 HTTPS 연결을 요청합니다.
  1. 서버가 인증서 제공: 서버는 자신의 SSL/TLS 인증서를 클라이언트에게 전송합니다.
  1. 대칭키 생성 및 교환: 클라이언트는 대칭키를 생성하고, 서버의 공개키를 사용해 암호화한 후 서버로 전송합니다.
  1. 암호화된 통신 시작: 서버가 클라이언트의 대칭키를 복호화한 후, 대칭키로 암호화된 데이터를 주고받습니다.

 

3. CA기관

💡
CA(Certificate Authority, 인증기관)는 디지털 인증서를 발급하고 관리하는 신뢰할 수 있는 제3자 기관입니다. HTTPS 통신에서 서버와 클라이언트 간의 보안을 보장하기 위해, 서버가 자신을 증명할 수 있도록 CA에서 인증서를 발급받습니다.

CA의 역할

  1. 디지털 인증서 발급: CA는 서버의 공개키와 도메인 정보를 포함하는 디지털 인증서를 발급합니다. 이 인증서에는 서버의 신원이 올바른지 확인할 수 있는 정보와 CA의 서명이 포함됩니다.
  1. 서버 신원 확인: 클라이언트(브라우저 등)는 서버에 접속할 때 서버가 제시하는 인증서를 확인합니다. 인증서가 CA에 의해 서명된 경우, 클라이언트는 해당 서버가 진짜 서버임을 신뢰할 수 있습니다.
  1. 서명: CA는 디지털 서명을 통해 인증서의 무결성을 보장합니다. 이 서명은 클라이언트가 인증서가 변조되지 않았음을 확인하는 데 사용됩니다.
  1. 신뢰 체계 구축: 브라우저와 운영 체제는 미리 신뢰할 수 있는 CA 목록을 포함하고 있습니다. 이를 신뢰할 수 있는 루트 CA 목록이라고 하며, 여기에 포함된 CA에서 발급한 인증서는 기본적으로 신뢰합니다.

인증서 발급 과정

  1. 서버의 CSR 요청: 서버는 인증서를 발급받기 위해 CSR(Certificate Signing Request) 파일을 생성합니다. 이 파일에는 서버의 공개키와 도메인 정보가 포함됩니다.
  1. CA의 검증: CA는 서버가 소유하고 있는 도메인이 맞는지 확인하는 검증 작업을 거칩니다. 도메인 소유자가 맞는지 확인하는 방식에는 이메일 확인, DNS 레코드 업데이트 등이 있습니다.
  1. 디지털 인증서 발급: 검증이 완료되면, CA는 서버의 공개키와 도메인 정보를 포함하는 디지털 인증서를 발급합니다. 이때 CA는 인증서에 디지털 서명을 추가하여 인증서가 변조되지 않았음을 보장합니다.

CA의 종류

  1. 루트 CA(Root CA): 가장 상위에 있는 인증기관으로, 자체적으로 서명된 인증서를 발급할 수 있습니다. 대부분의 브라우저와 운영 체제는 신뢰할 수 있는 루트 CA 목록을 가지고 있으며, 여기 있는 CA에서 발급한 인증서를 기본적으로 신뢰합니다.
  1. 중간 CA(Intermediate CA): 루트 CA로부터 서명받아 인증서를 발급할 권한을 위임받은 CA입니다. 중간 CA는 루트 CA와의 연결을 통해 신뢰성을 확보합니다.

CA의 예시

  • Let's Encrypt: 무료 SSL/TLS 인증서를 제공하는 인증기관으로, 많은 웹사이트에서 사용됩니다.
  • DigiCert, GlobalSign, Verisign: 상업적으로 인증서를 발급하는 대표적인 CA들입니다.
CA 기관은 HTTPS 통신에서 서버 신뢰성을 보장하는 매우 중요한 역할을 하며, 이를 통해 안전한 인터넷 통신이 가능합니다.

 

4. SSL 인증서

💡
SSL 인증서서버와 클라이언트 간의 통신을 암호화하기 위해 사용되는 디지털 인증서입니다. SSL(Secure Sockets Layer)은 인터넷을 통해 주고받는 데이터를 안전하게 보호하는 프로토콜이며, 현재는 더 발전된 **TLS(Transport Layer Security)**로 대체되었습니다. 그러나 여전히 많은 경우에 "SSL 인증서"라는 용어를 사용합니다.

SSL 인증서의 역할

  1. 데이터 암호화: 서버와 클라이언트 간에 주고받는 데이터를 암호화하여 제3자가 이를 가로채더라도 내용을 해독할 수 없도록 보호합니다.
  1. 서버 인증: SSL 인증서는 CA(Certificate Authority)라는 신뢰할 수 있는 기관에서 발급하며, 이 인증서를 통해 클라이언트는 서버가 신뢰할 수 있는 서버인지 확인할 수 있습니다.
  1. 무결성 보장: SSL 인증서를 통해 서버와 클라이언트 간에 주고받는 데이터가 전송 중에 변경되거나 변조되지 않음을 보장합니다.

SSL 인증서의 발급 과정

  1. CSR 생성: 서버 관리자가 인증서를 요청할 때 **CSR(Certificate Signing Request)**을 생성합니다. 이 요청서에는 서버의 공개키와 도메인 정보가 포함됩니다.
  1. CA의 검증: CA는 서버의 소유자가 해당 도메인을 실제로 소유하고 있는지 확인합니다. 이 과정을 통해 인증서를 발급받을 수 있습니다.
  1. 인증서 발급: 검증이 완료되면 CA는 서버의 공개키와 서버 정보를 포함한 디지털 인증서를 발급합니다. 이 인증서에는 CA의 디지털 서명도 포함되어 있습니다.
  1. 인증서 설치: 서버 관리자는 이 인증서를 서버에 설치하고, 클라이언트(브라우저)는 서버에 접속할 때 이 인증서를 확인하여 보안 연결을 설정합니다.

SSL 인증서의 구조

  • 서버의 공개키: 서버에서 사용하는 공개키로, 클라이언트는 이 공개키를 사용하여 데이터를 암호화합니다.
  • 서버의 정보: 인증서에는 서버의 도메인 정보와 조직 정보가 포함되어 있어, 클라이언트가 서버의 신원을 확인할 수 있습니다.
  • CA의 서명: 인증서의 무결성을 보장하기 위해 CA의 디지털 서명이 포함됩니다.

SSL 인증서의 유형

  1. 도메인 인증서(DV, Domain Validation): 가장 기본적인 SSL 인증서로, 서버의 도메인 소유 여부만 확인됩니다.
  1. 기업 인증서(OV, Organization Validation): 도메인 소유 여부뿐만 아니라 조직의 신원을 추가로 확인하여 발급하는 인증서입니다.
  1. 확장 인증서(EV, Extended Validation): 가장 높은 수준의 인증서로, 도메인과 조직의 신원을 엄격히 확인한 후 발급됩니다. EV 인증서는 브라우저에 초록색 주소창 또는 자물쇠 아이콘으로 표시됩니다.

요약

SSL 인증서는 서버와 클라이언트 간의 보안 통신을 보장하기 위해 사용되며, 데이터 암호화, 서버 인증, 무결성 보장을 제공합니다. 이를 통해 웹사이트의 보안성을 강화하고 사용자 정보를 안전하게 보호할 수 있습니다.
Share article

Uni