programing

파일 무결성을위한 SHA-256 또는 MD5

projobs 2021. 1. 14. 08:02
반응형

파일 무결성을위한 SHA-256 또는 MD5


보안 등을 위해 SHA-256이 MD5보다 선호된다는 것을 알고 있지만 파일 무결성을 확인하는 방법 (즉, 암호 암호화와 관련이 없음 등) 만 사용한다면 이점이 있습니까? SHA-256을 사용하십니까?

MD5는 128 비트이고 SHA-256은 256 비트이므로 (따라서 두 배 더 큽니다) ...

  1. 암호화하는 데 최대 2 배까지 걸릴까요?

  2. 백업 프로그램 에서처럼 시간이 중요하지 않고 파일 무결성 만 필요한 경우, 다른 알고리즘에 대해 MD5에 반대하거나 다른 기술을 제안하는 사람이 있습니까?

  3. MD5를 사용하면 체크섬이 생성됩니까?


SHA256과 MDA5는 모두 해싱 알고리즘입니다. 입력 데이터 (이 경우 파일)를 가져와 256/128 비트 숫자를 출력합니다. 이 숫자는 체크섬입니다. 실제로 충돌이 드물지만 무한한 수의 입력이 동일한 해시 값을 생성 할 수 있기 때문에 암호화가 발생하지 않습니다.

이 답변 에 따르면 SHA256은 MD5보다 계산하는 데 다소 시간이 걸립니다 .

솔직히 말해서 MD5는 아마도 당신이 필요로하는 것에 적합 할 것이라고 말하고 싶습니다.


1) : 예, 대부분의 CPU에서 SHA-256은 MD5보다 약 40 % 빠릅니다.

2) :이 경우 MD5와 다른 알고리즘을 주장합니다. 나는 확실히 안전한 것으로 간주되는 알고리즘을 선호합니다. 그러나 이것은 더 많은 느낌입니다. 예를 들어, 백업 시스템이 MD5 기반 인증서에 대한 공격 사례를 접하는 경우 이러한 문제가 현실적이지 않고 구성되는 경우에는 데이터가 다르지만 MD5 체크섬이 동일한 두 파일이있을 수 있습니다. 나머지 경우에는 MD5 체크섬이 의도적으로 발생한 경우에만 충돌 (= 다른 데이터에 대해 동일한 체크섬)이 있기 때문에 중요하지 않습니다. 저는 다양한 해싱 (체크섬 생성) 알고리즘에 대한 전문가가 아니기 때문에 다른 알고리즘을 제안 할 수 없습니다. 따라서 질문의이 부분은 아직 열려 있습니다. 제안 된 추가 읽기는암호화 해시 함수-Wikipedia의 파일 또는 데이터 식별자 . 또한 해당 페이지 아래에는 암호화 해시 알고리즘 목록이 있습니다.

3) : MD5는 체크섬을 계산하는 알고리즘입니다. 이 알고리즘을 사용하여 계산 된 체크섬을 MD5 체크섬이라고합니다.


모든 대답은 보안 해시를 사용하여 작업을 수행해야한다는 것을 암시하는 것처럼 보이지만,이 모든 것은 무차별 대입 공격자가 많은 컴퓨팅 성능을 갖도록 강요하도록 느리게 조정되어 있으며 필요에 따라 이것이 최상의 솔루션이 아닐 수 있습니다.

무결성 및 비교 ( murmur, XXhash...) 를 확인하기 위해 최대한 빨리 파일을 해시하도록 특별히 설계된 알고리즘이 있습니다 . 이는 보안 해시 알고리즘 (예 : 임의성)의 요구 사항을 충족하지 못하지만 큰 메시지의 경우 충돌 률이 낮기 때문에 보안을 위해 설계되지 않은 것은 분명 합니다 . 이 기능은 보안이 아닌 속도를 추구하는 경우 이상적입니다.

이 알고리즘과 비교의 예는이 훌륭한 답변에서 찾을 수 있습니다. 고유성과 속도에 가장 적합한 해싱 알고리즘은 무엇입니까? .

예를 들어 Q & A 사이트 murmur3에서는 사용자가 업로드 한 이미지를 해시하는 데 사용 하므로 사용자가 여러 답변에 동일한 이미지를 업로드하더라도 한 번만 저장합니다.


  1. 아니요, 덜 빠르지 만 그렇게 느리지는 않습니다.
  2. 백업 프로그램의 경우 MD5보다 더 빠른 것이 필요할 수 있습니다.

대체로 파일 이름 외에 MD5가 절대적으로 안전하다고 말하고 싶습니다. SHA-256은 크기 때문에 처리하기가 더 느리고 어렵습니다.

MD5보다 덜 안전한 것을 아무 문제없이 사용할 수도 있습니다. 아무도 당신의 파일 무결성을 해킹하려고하지 않는다면 이것 역시 안전합니다.


기본 MD5 알고리즘은 더 이상 안전하지 않은 것으로 간주됩니다. 따라서 md5sum은 보안과 관련이없는 상황에서 알려진 파일을 식별하는 데 적합하지만 파일이 고의적으로 악의적으로 변조되었을 가능성이있는 경우 신뢰해서는 안됩니다. 후자의 경우 sha256sum과 같은 최신 해싱 도구를 사용하는 것이 좋습니다.

따라서 단순히 파일 손상이나 파일 차이점을 확인하려는 경우 파일 원본을 신뢰할 수있을 때 MD5로 충분합니다. 신뢰할 수없는 소스 또는 암호화되지 않은 연결을 통해 신뢰할 수있는 소스에서 가져온 파일의 무결성을 확인하려는 경우 MD5로는 충분하지 않습니다.

또 다른 제안자는 Ubuntu와 다른 사람들이 MD5 체크섬을 사용한다고 언급했습니다. Ubuntu는 MD5 외에 PGP 및 SHA256으로 이동했지만 더 강력한 검증 전략에 대한 문서를 찾기가 더 어렵습니다. 자세한 내용은 HowToSHA256SUM 페이지 를 참조하십시오.


MD5가 SHA256보다 빠르다는 것이 기술적으로 승인되었으므로 파일 무결성을 확인하는 것만으로도 충분하고 성능이 더 좋습니다.

다음 리소스를 확인할 수 있습니다.


  1. 예, 대부분의 CPU에서 SHA-256은 주로 더 긴 해시 때문은 아니지만 MD5보다 2 ~ 3 배 느립니다. 여기에서 다른 답변 과이 Stack Overflow 질문에 대한 답변을 참조하세요 .
  2. 다음은 MD5가 적절하지 않은 백업 시나리오입니다.
    • 백업 프로그램은 백업되는 각 파일을 해시합니다. 그런 다음 각 파일의 데이터를 해시별로 저장하므로 동일한 파일을 두 번 백업하는 경우 해당 파일의 사본 하나만 남게됩니다.
    • 공격자는 시스템이 자신이 제어하는 ​​파일을 백업하도록 만들 수 있습니다.
    • 공격자는 백업에서 제거하려는 파일의 MD5 해시를 알고 있습니다.
    • 그런 다음 공격자는 MD5의 알려진 약점을 사용하여 제거 할 파일과 동일한 해시를 가진 새 파일을 만들 수 있습니다. 해당 파일이 백업되면 제거 할 파일이 대체되고 해당 파일의 백업 데이터가 손실됩니다.
    • 이 백업 시스템은 이전에 발생한 해시를 가진 파일을 대체하지 않음으로써 약간 강화 (그리고 더 효율적으로 만들 수 있음) 할 수 있지만 공격자는 특수하게 구성된 가짜를 선제 적으로 백업하여 알려진 해시가있는 대상 파일이 백업되는 것을 방지 할 수 있습니다. 동일한 해시를 가진 파일.
    • 분명히 대부분의 시스템, 백업 및 기타는이 공격이 실용적이기 위해 필요한 조건을 충족하지 못합니다. 그러나 저는 MD5보다 SHA-256이 더 나은 상황의 예를 제공하고자합니다. 이것이 여러분이 만들고있는 시스템에 해당하는지 여부는 MD5 및 SHA-256의 특성 이상에 달려 있습니다.
  3. 예, MD5 및 SHA-256에서 생성 된 것과 같은 암호화 해시는 일종의 체크섬입니다.

행복한 해싱!

참조 URL : https://stackoverflow.com/questions/14139727/sha-256-or-md5-for-file-integrity

반응형