🇰🇷 한글 설명
TLS 1.3의 Post-Handshake Authentication(PHA) 과정에서 서버가 클라이언트의 인증서와 CertificateVerify 메시지 없이도 Finished 메시지를 수락할 수 있는 취약점입니다. 원래 초기 핸드셰이크에서만 허용되던 인증서 면제 로직이 PHA 과정에도 잘못 적용되어 발생했습니다. 이로 인해 인증되지 않은 클라이언트가 서버의 인증 요구를 우회할 수 있습니다.
💡 쉬운 설명
서버가 추가 인증을 요구했을 때, 클라이언트가 가짜 신분증을 내밀거나 아예 내밀지 않아도 서버가 이를 그냥 통과시켜 주는 보안 결함입니다. 이로 인해 신원이 확인되지 않은 사용자가 서버에 접근할 위험이 있습니다.
🇺🇸 원문 (English)
TLS 1.3 post-handshake authentication (PHA) issue where a server could accept a client's Finished message without the client having sent a Certificate and CertificateVerify. The post-handshake-auth exemption that allows an empty/absent peer certificate was only intended for the initial handshake, but it was also being applied while a post-handshake CertificateRequest was still outstanding. The check is now scoped to the initial handshake only: on the server, once a post-handshake CertificateRequest has been sent (certReqCtx is set), a peer certificate and a valid CertificateVerify are required again before the Finished is accepted, with empty-certificate handling following the configured verify mode (FAIL_IF_NO_PEER_CERT) just as during first-handshake client authentication. Only affects TLS 1.3 servers built with post-handshake authentication support (WOLFSSL_POST_HANDSHAKE_AUTH / --enable-postauth, included in --enable-all) that enable WOLFSSL_VERIFY_POST_HANDSHAKE and request a client certificate after the handshake via wolfSSL_request_certificate(). Clients, and servers that do not use post-handshake authentication, are unaffected.
📍 영향받는 시스템
WOLFSSL_POST_HANDSHAKE_AUTH 및 WOLFSSL_VERIFY_POST_HANDSHAKE가 활성화된 wolfSSL TLS 1.3 서버
⚔️ 공격 벡터
인증서 없이 Finished 메시지만 전송하여 서버의 Post-Handshake 인증 요구를 우회하는 방식
🛡️ 대응 방법
wolfSSL을 최신 보안 패치가 적용된 버전으로 업데이트하고, PHA 설정 시 인증서 검증 모드를 재확인하십시오.
🔧 검증 코드
명령어 결과에 해당 옵션들이 포함되어 있다면 PHA 기능이 활성화된 상태이므로 취약점 노출 가능성이 있습니다.
wolfssl_config_check | grep -E 'WOLFSSL_POST_HANDSHAKE_AUTH|WOLFSSL_VERIFY_POST_HANDSHAKE'