
소나타입(Sonatype)의 시험에서 자바의 지문 기반 인증서 차단이 등록된 인증서 인코딩은 거부하면서도, 재인코딩한 인증서는 통과시킬 수 있는 것으로 나타났다. 다만 이 결과는 시험한 JDK 버전과 신뢰 저장소 구성에 한정된다.
소나타입 연구팀은 eMudhra 인증서 사고에 대한 자바의 대응을 살펴보던 중 이 동작을 확인했다. 자바의 blocked.certs는 손상된 중간 인증서를 SHA-256 지문으로 식별한다. 지문은 인증서의 인코딩된 바이트를 기준으로 계산되므로, 바이트가 달라지면 지문도 달라질 수 있다.
소나타입 연구팀은 AI 지원 검토 과정에서 Opus 5.5에 정확한 지문 일치 방식의 우회 가능성을 물었고, 모델은 인증서 인코딩이 달라지면 차단을 피할 여지가 있다고 지적했다. 연구팀은 eMudhra 사고 안내에 나온 ECDSA 서명 중간 인증서와 RSA 서명 중간 인증서로 이를 시험했다. 원래 인증서의 SHA-256 지문을 JDK의 blocked.certs 사본에 추가한 뒤, 개인 키 없이 인코딩을 바꾸고 인증서 체인이 유효한지 확인했다.
ECDSA 시험에서는 서명 값 s를 n − s로 바꿨다. RSA 시험에서는 바깥쪽 서명 알고리즘 식별자에서 NULL 매개변수를 제거했으며, 인증서 데이터에 대한 서명은 그대로 유지됐다. 두 시험 모두 원래 중간 인증서를 포함한 체인은 거부됐지만, 다른 지문을 가진 재인코딩 인증서의 체인은 신뢰됐다. 복사한 JDK의 신뢰 저장소에서 관련 루트를 제거하자 두 체인 모두 거부됐다.
소나타입은 결과가 자신들이 시험한 JDK 버전과 신뢰 저장소 구성에만 적용된다고 밝혔다. 따라서 실제로 배포하는 자바 런타임과 신뢰 저장소에서 보호 조치를 별도로 확인하고, 공급업체의 최신 안내를 따르라고 권고했다. 관련 루트를 제거하면 정상적인 TLS 연결도 끊길 수 있으므로, 신뢰 저장소를 바꾸기 전에 영향을 받는 서비스를 파악하고 인증서 체인을 시험해야 한다. 배포 뒤에는 TLS 오류를 모니터링하고 예외 사항을 기록해야 한다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요