전자 서명과 인증서
전자 서명이 진위를 입증하는 방식과 X.509 인증서가 ID를 키에 연결하는 방식을 이해합니다.
전자 서명과 인증서은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
디지털 서명이란 무엇인가요
디지털 서명은 특정 개인 키 보유자가 문서나 메시지를 생성했으며 문서나 메시지가 변경되지 않았음을 증명합니다. 손으로 쓴 서명과 달리 디지털 서명은 콘텐츠에 수학적으로 결합되어 있으므로, 조금이라도 변경되면 서명이 무효화됩니다.
서명 작동 방식
서명 과정:
- 문서의 해시를 계산합니다:
H = SHA256(document) - 개인 키로 해시를 암호화합니다:
sig = RSA_encrypt(H, private_key) - 문서에 서명을 첨부합니다.
검증하려면 공개 키로 서명을 복호화하고, 해시를 다시 계산한 후 비교합니다.
ECDSA와 EdDSA
현대적인 서명 알고리즘은 다음과 같습니다.
- ECDSA(P-256 사용) — TLS 인증서와 Bitcoin에서 사용됨
- Ed25519(EdDSA) — 더 빠르고 간단하며 서명마다 무작위성이 필요해 발생하는 취약점이 없고, SSH와 Signal에서 사용됨
새 애플리케이션에는 Ed25519를 우선 사용하십시오.
인증서란 무엇인가요
디지털 인증서(X.509)는 공개 키를 신원에 연결합니다. 인증서에는 주체 이름, 공개 키, 유효 기간, 발급자, CA의 디지털 서명이 포함됩니다. HTTPS 사이트를 방문하면 서버는 자신의 신원을 증명하기 위해 인증서를 제시합니다.
인증 기관(CA)
인증 기관(CA)은 신청자의 신원을 확인한 후 인증서에 서명하는 신뢰할 수 있는 기관입니다. 브라우저와 OS의 신뢰 저장소에는 루트 CA 인증서가 포함되어 있습니다. 신뢰 체인은 루트 CA → 중간 CA → 최종 주체 인증서로 이어집니다.
Let's Encrypt와 무료 인증서
Let's Encrypt는 무료로 자동화된 서비스를 제공하는 CA입니다. 90일간 유효한 도메인 검증(DV) 인증서를 발급하며, ACME 프로토콜을 통해 자동으로 갱신할 수 있습니다. 2015년 이후 HTTPS 도입을 크게 확대했습니다.
certbot --nginx -d example.com -d www.example.com
# Auto-renewal via cron or systemd timer인증서 유형
인증서 검증 수준:
- DV (도메인 검증) — 도메인 제어 권한만 증명
- OV (조직 검증) — 조직의 존재 여부를 확인
- EV (확장 검증) — 엄격한 신원 확인(녹색 주소 표시줄, 현재 브라우저에서는 사용 중단됨)
인증서 폐기
침해된 인증서는 폐기해야 합니다.
- CRL (인증서 폐기 목록) — 폐기된 일련 번호를 다운로드할 수 있는 목록
- OCSP (온라인 인증서 상태 프로토콜) — 단일 인증서의 상태를 실시간으로 확인
- OCSP 응답 첨부 — 서버가 CA가 서명한 OCSP 응답을 TLS 핸드셰이크에 첨부
인증서 투명성(CT)
인증서 투명성 로그는 발급된 모든 인증서에 대한 공개된 추가 전용 기록입니다. 브라우저는 인증서에 CT 증명이 포함되도록 요구합니다. 이를 통해 잘못 발급된 인증서를 몇 시간 내에 감지할 수 있습니다. 검색: crt.sh
curl "https://crt.sh/?q=example.com&output=json" | python3 -m json.tool코드 서명
소프트웨어 게시자는 코드 서명 인증서를 사용해 실행 파일에 서명합니다. OS는 실행 전에 서명을 확인합니다. 이로써 변조된 바이너리가 사용자 모르게 실행되는 것을 막습니다. macOS 게이트키퍼와 윈도우 SmartScreen은 코드 서명 정책을 적용합니다.
인증서 고정
인증서 고정은 애플리케이션에 예상되는 인증서나 공개 키를 하드코딩합니다. 악의적인 CA가 사기성 인증서를 발급하더라도 고정된 앱은 이를 거부합니다. 모바일 앱과 높은 보안이 필요한 서비스에서 사용됩니다. 업데이트가 어렵기 때문에 신중하게 사용해야 합니다.
빠른 확인: 인증서
특정 인증서가 폐기되었는지 브라우저가 실시간으로 확인할 수 있게 하는 방식은 무엇인가요?
강의 요약
디지털 서명은 개인 키를 사용해 진위성과 무결성을 증명합니다. 인증서는 인증 기관이 서명하여 공개 키와 신원을 연결합니다. Let’s Encrypt는 무료 DV 인증서를 제공합니다. 폐기 여부는 CRL 또는 OCSP를 사용해 확인합니다. 인증서 투명성 로그는 잘못 발급된 인증서를 탐지합니다. Ed25519는 현대적으로 권장되는 서명 알고리즘입니다.
자주 묻는 질문
“전자 서명과 인증서” 강의는 무료인가요?
네 — “전자 서명과 인증서” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“전자 서명과 인증서”에서 뭘 배우나요?
전자 서명이 진위를 입증하는 방식과 X.509 인증서가 ID를 키에 연결하는 방식을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“전자 서명과 인증서” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.