Oracle에서 Java 개발자로 : MD5로 JAR 파일 서명 중지

4 월부터 Oracle은 MD5 해싱 알고리즘으로 서명 된 JAR 파일을 서명되지 않은 것처럼 취급합니다. 즉, 최신 릴리스의 JRE (Java Runtime Environment)가 해당 JAR 파일의 실행을 차단합니다. MD5의 보안 약점이 잘 알려져 있고 대신 코드 서명에 더 안전한 알고리즘을 사용해야하므로 이러한 변화는 오래 지연되었습니다.

Oracle은 Java 다운로드 페이지에 "2017 년 4 월 18 일로 예정된 4 월 중요 패치 업데이트 릴리스부터 모든 JRE 버전이 MD5로 서명 된 JAR을 서명되지 않은 것으로 취급합니다."라고 썼습니다.

Java 라이브러리 및 애플릿과 함께 번들로 제공되는 코드 서명 JAR 파일은 사용자가 실제로 코드를 작성한 사람을 알 수 있고 작성된 이후 변경되거나 손상되지 않았 음을 사용자에게 알려주기 때문에 기본적인 보안 관행입니다. 최근 몇 년 동안 오라클은 외부 공격으로부터 시스템을 더 잘 보호하고 서명 된 코드 만 특정 유형의 작업을 실행할 수 있도록 Java의 보안 모델을 강화했습니다. 유효한 인증서가없는 응용 프로그램은 잠재적으로 안전하지 않습니다.

최신 버전의 Java에서는 이제 모든 JAR 파일이 유효한 코드 서명 키로 서명되어야하며 Java 7 업데이트 51부터 서명되지 않거나 자체 서명 된 응용 프로그램의 실행이 차단됩니다.

코드 서명은 Java 보안 아키텍처의 중요한 부분이지만 MD5 해시는 코드 서명이 제공해야하는 보호 기능을 약화시킵니다. 1992 년으로 거슬러 올라가는 MD5는 단방향 해싱에 사용됩니다. 입력을 받아 식별 서명으로 처리 할 수있는 고유 한 암호화 표현을 생성합니다. 두 개의 입력이 동일한 해시를 가져서는 안되지만 2005 년 이후 보안 연구원들은 파일이 수정 될 수 있으며 충돌 공격에서 여전히 동일한 해시를 가질 수 있음을 반복적으로 입증했습니다. MD5는 더 이상 TLS / SSL에 사용되지 않지만 (Microsoft는 2014 년에 TLS 용 MD5를 더 이상 사용하지 않음) 약점에도 불구하고 다른 보안 영역에서 널리 사용되고 있습니다.

Oracle의 변경으로 인해 "영향을받은 MD-5 서명 JAR 파일은 더 이상 [Oracle JRE에 의해] 신뢰할 수있는 것으로 간주되지 않으며 Java 애플릿 또는 Java Web Start 응용 프로그램의 경우와 같이 기본적으로 실행할 수 없습니다." Java Platform Group의 Oracle 제품 관리자 인 Erik Costlow는 10 월에 회신했습니다.

개발자는 자신의 JAR 파일이 MD5를 사용하여 서명되지 않았는지 확인하고, MD5가있는 경우 더 현대적인 알고리즘으로 영향을받는 파일에 다시 서명해야합니다. 관리자는 공급 업체에 문의하여 파일이 MD5 서명되지 않았는지 확인해야합니다. 전환시 파일이 여전히 MD5를 실행 중이면 사용자에게 응용 프로그램을 실행할 수 없다는 오류 메시지가 표시됩니다. 오라클은 이미 벤더와 소스 라이센시에게 변경 사항을 알렸다 고 Costlow는 말했습니다.

공급 업체가 작동하지 않거나 응용 프로그램에 다시 서명하지 않으려는 경우 관리자는 서명 된 응용 프로그램 (심각한 보안 문제가 있음)을 확인하는 프로세스를 비활성화하거나 응용 프로그램 위치에 대한 사용자 지정 배포 규칙 집합을 설정하거나 예외 사이트를 유지 관리 할 수 ​​있습니다. 목록, Costlow는 썼습니다.

많은 경고가있었습니다. Oracle은 2006 년에 릴리스 된 Java SE6의 기본 JAR 서명 옵션으로 RSA 알고리즘과 함께 MD5를 사용하는 것을 중단했습니다. MD5 지원 중단은 원래 2016 년 10 월 중요 패치 업데이트의 일부로 발표되었으며 이번 달에 1 월 CPU. 개발자와 관리자가 전환에 대비할 수 있도록이 회사는 Oracle Java SE 8u131 및 Oracle Java SE 7, Oracle Java SE 6 및 Oracle JRockit R28의 해당 릴리스를 포함하는 4 월 중요 패치 업데이트로의 전환을 연기하기로 결정했습니다.

“CA Security Council은 MD5를 서명되지 않은 것으로 취급하기로 한 Oracle의 결정에 박수를 보냅니다. MD5는 수년 동안 사용되지 않아서 MD5에서 벗어나 Java 사용자에게 중요한 업그레이드가되었습니다.

MD5를 더 이상 사용하지 않는 것은 오래되었지만 충분하지 않습니다. 오라클은 또한 자체적 인 문제가있는 SHA-1의 지원 중단을 검토하고 코드 서명을 위해 SHA-2를 채택해야합니다. 주요 브라우저가 SHA-1 인증서를 사용하는 웹 사이트 지원을 중단하기로 약속 했으므로 이러한 조치는 현재 마이그레이션과 일치 할 것입니다. 대부분의 조직이 이미 TLS / SSL 용 SHA-1 마이그레이션에 참여하고 있으므로 나머지 인증서 및 키 서명 인프라도 SHA-2로 전환하는 것이 좋습니다.

좋은 소식은 진행중인 암호화에 대한 기술 지침과 정보를 설명하는 JRE 및 JDK 암호화 로드맵에 따라 Oracle이 기본적으로 Oracle JDK에 포함 된 루트로 고정 된 인증서 체인에서 SHA-1을 비활성화 할 계획이라는 것입니다. Oracle JRE 및 Oracle JDK에서 작동합니다. Diffie-Hellman의 최소 키 길이도 2017 년 말에 1,024 비트로 늘어납니다.

로드맵은 또한 Oracle이 최근에 Java 7에 SHA224withDSA 및 SHA256withDSA 서명 알고리즘에 대한 지원을 추가했으며 Java 6, 7, 8 용 SSL / TLS에 대해 256 비트 미만의 키에 대해 EC (타원 곡선)를 비활성화했다고 주장합니다.