
SSLVerifySignedServerKeyExchange()가 간단히 테스트 가능함을 보여줍니다.
이것은 Apple의 libsecurity_ssl에서 취약한 SSLVerifySignedServerKeyExchange()를 추출하여 서명 코드가 독립적으로 단위 테스트 가능함을 보여주는 작은 개념 증명입니다.
이 버그가 쉽게 테스트되지 않았다는 이야기가 있었지만, 해당 코드는 간단한 전제 조건을 기반으로 서명을 검증하며, 긍정 및 부정 검증 사례 모두에 대해 쉽게 테스트할 수 있습니다. 따라서 다음 항목에 대해 완전히 테스트되지 않은 이유나 변명은 없습니다:
직접 단위 테스트를 실행해보고, 문제가 있는 'goto'를 주석 처리하면 테스트가 통과하는 것을 확인하세요:
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
// goto fail;