문제

SHA-1이 FIPS 180-2 표준에서 폐기된다는 내용을 읽었습니다.

분명히 이러한 결정을 내리게 된 SHA-1에는 약점이 있었습니다.그 결정의 근거를 자세히 설명할 수 있는 사람이 있나요?상용 애플리케이션에서 SHA-1을 사용하면 어떤 의미가 있습니까?

내 진짜 질문은 다음과 같습니다

  • 다양한 클래스 라이브러리 및 플랫폼에서 SHA-2 지원 상태는 어떻습니까?
  • SHA-2로 전환해야 할까요??

주류 플랫폼에 관심이 있는 사람:.NET, Java, C/C++, Python, Javascript 등

도움이 되었습니까?

해결책

SHA1, SHA0, MD4 및 MD5는 모두 지난 몇 년 동안 안전하지 않은 것으로 밝혀졌습니다. 문제는 공격자가 동일한 해시를 생성하는 2 개의 다른 메시지를 생성 할 수 있다면이를 충돌이라고한다는 것입니다. 이로 인해 PKI, 비밀번호 관리, 파일 무결성 검사 등이 많은 문제가 발생합니다. 현재 SHA1은 2^52 비트의 보안을 제공하며 공격자의 도달 범위 내에 있습니다. SHA-256 (SHA2 가족의 가장 작은 구성원)은 2^256 비트를 제공합니다.

모든 플랫폼에는 SHA-256 구현이 있어야하지만 모든 플랫폼은 모두 기본적이지는 않습니다. PHP에서는 mhash 확장을 사용해야합니다. 일부 플랫폼은 안전한 해시 기능을 제공하지 않는다는 것이 당황 스럽습니다. 나는 그들이 Secuirty에 관심이 없기 때문에 솔직히 믿습니다. PHP의 경우 나는 사실을 알고 있습니다. 그들은 Secuirty에 신경 쓰지 않습니다.

현재 SHA-2에는 아무런 문제가 없으며 안전 마진이 매우 큽니다. 당신이 있다면 SHA-512를 사용할 수 있습니다 진짜 편집증. SHA-3은 2012 년에 나올 예정입니다. 비밀번호, 그런 다음 할 수있을 때 SHA-3으로 이동하지만 SHA-512는 오랫동안 좋을 것입니다.

다른 팁

Windows Vista 및 나중에 Cryptoapi의 Microsoft Enhanced RSA 및 AES 암호화 제공 업체에서 SHA-2를 지원하며 .NET Framework는 .NET 1.1 이후 SHA-2를 지원했습니다.

이제 대부분의 플랫폼은 SHA-2 제품군을 지원합니다.그러나 SHA-1은 SSL과 같은 많은 애플리케이션에서 여전히 사용되고 있으며 한동안 사용될 것입니다.

"SHA-3"에 대한 경쟁이 현재 진행 중입니다.SHA-1에서 새로운 SHA-3 표준이 나오면 그 표준으로 전환하는 것이 합리적일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top