0Pricing
Cyber Security Academy · 강의

인증서 검증

서버 신원 확인하기

인증서 검증은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

인증서를 검증하는 이유

암호화만으로는 충분하지 않습니다. 공격자와의 연결을 암호화하면 잘못된 통신을 보호한 셈입니다.

인증서 검증을 통해 실제로 접속하려던 서버와 통신하고 있는지 확인할 수 있습니다.

클라이언트가 확인하는 항목

핸드셰이크 중에 클라이언트는 여러 항목을 확인합니다.

  • 인증서 체인이 신뢰할 수 있는 루트 인증서까지 이어지는지 확인합니다.
  • 인증서가 유효 기간 내에 있는지 확인합니다.
  • 인증서가 폐기되지 않았는지 확인합니다.
  • 호스트 이름이 일치하는지 확인합니다.

호스트 이름 일치

연결한 호스트 이름은 인증서의 주체 대체 이름(SAN) 항목과 일치해야 합니다.

이 용도로 사용되던 이전의 일반 이름(CN) 필드는 더 이상 사용되지 않으며, 최신 클라이언트에서는 SAN이 필요합니다.

openssl x509 -in cert.pem -noout -ext subjectAltName

유효 기간

모든 인증서에는 유효 시작 및 유효 종료 시각 표시가 있습니다. 이 범위를 벗어나면 인증서는 거부됩니다.

openssl x509 -in cert.pem -noout -dates

신뢰 체인 검증

클라이언트는 최종 인증서에서 자신의 신뢰 저장소에 있는 루트 인증서까지 체인을 따라가며 각 서명을 확인합니다.

신뢰할 수 있는 루트로 이어지는 경로가 없으면 인증서가 올바르게 보이더라도 검증에 실패합니다.

인증서 폐기 확인

클라이언트는 OCSP 또는 CRL을 사용하여 인증서가 만료 전에 폐기되었는지 확인합니다.

많은 브라우저는 확인 속도를 높이기 위해 OCSP 스테이플링 또는 선별된 폐기 목록을 사용합니다.

키 사용 제한

인증서는 키 사용 및 확장 키 사용 확장 기능에서 허용되는 용도를 선언합니다.

서버 인증서에는 serverAuth가 포함되어야 하며, CA 인증서에는 CA 플래그가 설정되어 있어야 합니다. 잘못 사용된 인증서는 거부됩니다.

인증서 고정

고정은 클라이언트에 예상되는 인증서 또는 공개 키를 하드코딩하는 방식이며, 모바일 앱에서 흔히 사용됩니다.

CA가 서명한 유효한 인증서라도 예상과 다르면 거부되므로 악성 CA나 손상된 CA로부터 방어할 수 있습니다.

검증이 실패하는 경우

일반적인 검증 오류는 다음과 같습니다.

  • NET::ERR_CERT_DATE_INVALID (만료됨)
  • NET::ERR_CERT_COMMON_NAME_INVALID (호스트 이름 불일치)
  • NET::ERR_CERT_AUTHORITY_INVALID (신뢰할 수 없는 발급자)

검증을 건너뛸 때의 위험

인증서 검증을 비활성화하면(예: curl -k 또는 verify=False) 사칭을 막는 모든 보호 기능이 사라집니다.

중간자 공격을 초래하므로 운영 코드에서는 절대 사용해서는 안 됩니다.

# DO NOT do this in production
curl -k https://example.com

명령줄에서 검증하기

실제 서버를 대상으로 전체 검증을 수행할 수 있습니다.

openssl s_client -connect example.com:443 \
  -verify_hostname example.com -verify_return_error

빠른 확인

개발자가 운영 환경의 인증서 오류를 무시하기 위해 verify=False를 설정했습니다. 이로 인해 어떤 위험이 발생할까요?

복습

클라이언트가 인증서 검증을 수행하는 방식을 배웠습니다.

  • 확인 항목에는 체인 신뢰, 유효 기간, 폐기 여부, 호스트 이름(SAN)이 포함됩니다.
  • 고정은 악성 CA에 대한 방어 기능을 추가합니다.
  • 운영 환경에서는 절대 검증을 비활성화하지 마십시오.

다음에는 TLS를 대상으로 하는 일반적인 공격을 살펴봅니다.

자주 묻는 질문

“인증서 검증” 강의는 무료인가요?

네 — “인증서 검증” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“인증서 검증”에서 뭘 배우나요?

서버 신원 확인하기 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“인증서 검증” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. TLS 핸드셰이크
  2. 암호 스위트
  3. 인증서 검증
  4. 일반적인 TLS 공격
← Cyber Security Academy(으)로 돌아가기