CSR 키 크기 2048 vs 4096, EC vs RSA — 뭘 골라야 인증서가 빨라지나
CSR을 생성할 때 "키 크기" 드롭다운을 그냥 기본값으로 넘기는 사람이 대부분입니다. 하지만 이 선택 하나가 인증서 발급 후 서버가 매 접속마다 치르는 연산 비용, 그리고 실제 보안 강도를 동시에 결정합니다. RSA 2048과 4096, 그리고 EC(타원곡선) P-256이 각각 무엇을 담보하고 무엇을 희생하는지 원리부터 분해합니다.
1. 키 크기가 결정하는 것: 보안 강도가 아니라 "무차별 대입 난이도"
RSA 키 크기는 소인수분해 문제의 난이도로 보안을 담보합니다. 2048비트 모듈러스를 소인수분해하는 데 필요한 연산량은 현재 슈퍼컴퓨터로도 사실상 비현실적이라, NIST는 2030년까지 2048비트를 안전한 기준으로 권고합니다. 4096비트는 이 난이도를 지수적으로 더 키우지만, 정작 실무에서 뚫리는 인증서는 키 크기 부족이 아니라 개인 키 유출·설정 실수 때문입니다. 즉 4096비트는 "더 안전"하지만 그 이득이 실제 위협 모델과 맞아떨어지는 경우는 드뭅니다.
2. EC(타원곡선)가 다른 이유: 같은 안전도를 훨씬 짧은 키로
EC 암호는 소인수분해가 아니라 타원곡선 이산로그 문제의 난이도에 기댑니다. 이 문제는 키 길이 대비 난이도 증가율이 RSA보다 훨씬 가팔라서, EC P-256(256비트)이 RSA 2048비트와 거의 동등한 보안 강도를 냅니다. 키가 짧다는 건 단순히 저장 공간 문제가 아닙니다. TLS 핸드셰이크마다 서버가 수행하는 서명·키 교환 연산량이 줄어들어, 동시 접속이 많은 서버일수록 CPU 부하 차이가 체감됩니다. CSR 생성기는 2048-bit·4096-bit RSA와 EC P-256 세 옵션을 모두 제공하므로, 발급받을 CA가 EC를 지원한다면 굳이 RSA를 고집할 이유가 적습니다.
| 키 타입 | 대략적 동등 보안 | 키 길이 체감 | 연산 비용 |
|---|---|---|---|
| RSA 2048 | 기준 | 보통 | 보통 |
| RSA 4096 | 2048보다 높음 | 큼 | 2048 대비 눈에 띄게 느림 |
| EC P-256 | RSA 2048과 유사 | 가장 짧음 | 가장 빠름 |
3. 그런데도 RSA가 여전히 표준인 이유
EC가 속도·크기 면에서 유리한데도 여전히 RSA 2048이 기본값으로 깔리는 경우가 많은 이유는 순전히 호환성입니다. 오래된 클라이언트·내부망 레거시 장비·일부 결제 게이트웨이는 EC 인증서를 지원하지 않거나 특정 곡선만 허용합니다. 반대로 공개 웹사이트처럼 현대적인 브라우저만 상대한다면 EC P-256을 선택 못 할 이유가 없습니다. 결국 선택 기준은 "얼마나 오래된 클라이언트까지 지원해야 하는가"이지 순수한 보안 우열이 아닙니다.
4. 4096비트를 실제로 골라야 하는 상황
4096비트가 정당화되는 경우는 두 가지로 좁혀집니다. 첫째, 인증서 수명이 매우 길어 미래의 연산력 향상까지 감안해야 하는 루트 CA·중간 CA 인증서. 둘째, 금융·의료처럼 규제가 특정 키 길이 하한을 명시하는 업종입니다. 반대로 일반적인 웹 서버·API 서버라면 4096비트가 주는 보안 이득보다 서명·복호화 지연이 주는 실질적 손해가 더 클 수 있습니다. CSR 발급 전 개인 키를 따로 준비하려면 RSA 키 생성기로 키 크기별 생성 속도 차이를 직접 체감해볼 수 있습니다.
5. CA·서버 설정에서 실제로 확인해야 할 것
- CA의 EC 지원 여부: Let's Encrypt를 포함한 대부분의 현대 CA는 EC P-256/P-384를 지원하지만, 일부 유료 EV 인증서 상품은 RSA만 허용하기도 합니다.
- 서버 소프트웨어 버전: 오래된 Nginx·Apache·OpenSSL 버전은 특정 EC 곡선을 인식하지 못할 수 있습니다.
- 발급 후 검증: 발급받은 인증서가 의도한 키 타입·크기로 나왔는지는 SSL 인증서 디코더로 바로 확인할 수 있습니다.
자주 묻는 질문
Q. EC 키를 쓰면 CSR 생성 명령어가 어떻게 달라지나요?
RSA는 openssl genrsa로 개인 키를 만들지만, EC는 openssl ecparam -name prime256v1 -genkey로 곡선을 지정해 키를 생성합니다. CSR 발급 명령어(openssl req -new) 자체는 동일합니다.
Q. 이미 발급받은 RSA 인증서를 EC로 바꾸려면 재발급이 필요한가요?
네. 키 타입은 CSR 생성 시점에 결정되므로, 다른 키 타입으로 바꾸려면 새 개인 키와 CSR을 만들어 CA에 재제출해야 합니다.
Q. RSA 3072비트 같은 중간 옵션은 없나요?
이론적으로는 가능하지만 대부분의 CSR 생성 도구와 CA는 2048·4096비트만 표준 옵션으로 제공합니다. 중간값이 필요하면 OpenSSL 명령어를 직접 수정해야 합니다.
Q. 와일드카드 인증서도 EC로 발급받을 수 있나요?
CN에 *.example.com을 입력하는 방식은 키 타입과 무관하게 동일하게 동작하므로, EC 키로도 와일드카드 CSR을 생성할 수 있습니다.