it-swarm-korea.com

서명되지 않은 웹 사이트에서 파일을 해시하면 잘못된 보안 감각이 있습니까?

이걸 고려하세요. 소프트웨어를 다운로드하는 많은 웹 사이트에서도 MD5 또는 SHA1 해시를 제공하여 사용자가 다운로드 한 파일의 무결성을 확인할 수 있습니다. 그러나 이러한 사이트 중 일부는 실제로 웹 사이트 자체에서 HTTPS 암호화 또는 디지털 서명을 사용합니다.

따라서 실제로 인증되지 않은 소스에서 파일을 다운로드하고 동일한 소스 (또는 다른 인증되지 않은 소스)의 해시로 파일을 검증하는 경우 파일 해싱의 실제 가치는 무엇입니까? (디지털 서명이없는 경우) 사용자 모르게 다운로드와 해시가 모두 조작되었을 수 있기 때문에 이것이 잘못된 보안 감각을 설정하지 않습니까?

46
Iszi

따라서 실제로 인증되지 않은 소스에서 파일을 다운로드하고 동일한 소스 (또는 다른 인증되지 않은 소스)의 해시로 파일을 검증하는 경우 파일 해싱의 실제 가치는 무엇입니까?

제공된 해시를 사용하면 다운로드 한 파일이 전송 중에 실수로 손상되지 않았는지 또는 다른 소스 (빠른 미러)에서 다운로드 한 파일이이 웹 사이트에서 다운로드 할 수있는 파일과 동일한 지 다시 확인할 수 있습니다.

그러나 추가 보안은 그리 많지 않습니다. 숙련 된 크래커는 파일을 악의적으로 수정 된 버전으로 바꾸고 해시를 수정 된 파일과 일치하는 버전으로 바꿀 수 있습니다. 또는 네트워크를 통해 요청을 MITM하고 요청 된 파일을 자신의 것으로 바꾸고 해시를 자신의 것으로 바꿉니다.

57
yfeldblum

실제로 이점은 제한적입니다. 지적했듯이 사이트에서 한 가지를 교체 할 수 있으면 두 가지를 모두 대체 할 수 있습니다.

그러나 이것은 몇 가지 이점이 있습니다.

  • 다른 사이트에서 무결성이 검증 된 대용량 파일을 호스팅 할 수 있습니다. 이를 통해 신뢰할 수있는 임의의 제 3 자로부터 파일을 가져 와서 소스 사이트 (대역폭이 제한적일 수 있음)를 기반으로 좋은 파일인지 계속 확인할 수 있습니다.
  • 귀하의 사이트가 인기가 많으면 archive.org 및 다양한 검색 엔진 캐시를 포함하여 대중에게 타협을 신속하게 확인할 수있는 이전 해시 사본이 충분할 수 있습니다.

공개/개인 키 쌍으로 파일에 서명함으로써 보안을 강화할 수 있지만 대부분의 응용 프로그램에 대한 실질적인 이점은 키가없는 것보다 크지 않습니다. 웹 사이트에 키를 게시하고 해시를 게시하는 대신 모든 것에 서명하면 공격자가 해시를 교체하여 수행 한 것과 동일한 효과를 얻을 수 있습니다. 독립적 인 배포가 가능한 대규모 프로젝트에는이 추가 계층이 필요하지만 (데비안이 떠오를 것입니다.).

18
Jeff Ferland

해시가 보안 관련 값을 가지려면 다음 두 조건이 충족되어야합니다. both

  • 해시 값은 무결성을 보장하는 프로토콜 (예 : HTTPS)을 통해 배포되어야합니다.
  • 다운로드 한 파일은 not 무결성을 보장하는 프로토콜을 통해 배포되어야합니다.

파일이 HTTPS와 함께 제공되는 경우 해시는 무의미합니다. SSL은 이미 전송 중에 무결성을 보장합니다.

해시는 파일을 수정할 수있는 것처럼 해시를 수정할 수 있으므로 서버를 제어하는 ​​공격자로부터 보호하지 않습니다.

게시 된 해시의 유용성 중 일부는 날짜에 파일을 다운로드 한 다음 나중에 사본의 무결성을 신뢰할 필요가 없기 때문에 사본이 올바른지 확인하려는 경우입니다. 로컬 저장소 (예 : 악의를 가진 사람이 일시적으로 훔칠 수있는 USB 키에 있음) 또 다른 예 다운로드 자체가 p2p 네트워크에서 왔을 때입니다. are 대량 클라이언트를 많은 클라이언트에게 배포하는 데 매우 효율적이기 때문에 (블리자드 다운로더가하는 일) ) : p2p를 사용하여 파일을 가져온 다음 기본 HTTPS 사이트에서 작은 해시 값을 가져옵니다. 제 3의 예 (전문적으로 만난)는 까다로운 감사 조건에서 신뢰할 수있는 시스템을 구축 할 때입니다 (예 : 새 루트 CA 생성) : 감사자가 사용 된 소프트웨어가 정품인지 확인하기를 원합니다. . 해시 파일이 (HTTPS를 통해) 배포되면 감사자는 로컬 아카이브와 비교하여 확인하면됩니다. 그렇지 않으면 감사원이 전체 다운로드를 목격해야합니다. 감사인의 시간당 요금이 주어지면 해시가 바람직합니다.

8
Thomas Pornin

해시를 안전하게 배포해야하기 때문에 원시 해시 만 갖는 이점이 제한적이며 대부분의 사람들은 해시를 올바르게 확인하거나 가능한 많은 문제를 탐색하는 방법을 모릅니다.

올바른 보안을 얻는 올바른 방법은 공개 키 기술을 사용하여 해시에 서명하고 전체 소프트웨어 배포 체계에 완벽하게 통합하는 것입니다. 공개 키를 안전하게 배포해야하지만 여전히 한 번만 수행 할 수 있습니다 (예 : 운영 체제가 설치된 경우 필자는 기본적으로 Windows 및 MacOS OS 업데이트 및 Office와 같은 몇 가지 주요 패키지로 수행되는 것으로 가정합니다.

무엇보다도 필요한 거의 모든 소프트웨어가 동일한 표준 키로 보호되는 경우가 있습니다. 기본적으로 데비안, 우분투, 레드햇, 수세 ​​등과 같은 대부분의 오픈 소스 소프트웨어 배포판에서 발생합니다. 배포판의 일부로 관리되는 키로 자동 서명 된 문자 그대로 수만 개의 패키지를 안전하게 배포합니다. 매우 안전합니다. 그리고 대부분 수동 검사를 수행 할 필요없이 발생합니다.

7
nealmcb

따라서 효과적으로 인증되지 않은 소스에서 파일을 다운로드하고 동일한 소스 (또는 다른 인증되지 않은 소스)의 해시로 파일을 검증하는 경우 파일을 해싱하는 실제 가치는 무엇입니까?

이 상황에서 해시가 파일 링크 바로 옆에 있으면 값은 주로 파일이 전송 중 손상되거나 손상되지 않도록하는 데 있습니다.

보안 관점에서, 당신이 맞습니다. 해킹 된 파일을 가져 와서 업로드 (또는 해킹 된 사본을 가리 키도록 링크를 변경) 할 수있는 사람은 파일 옆에있는 해시를 대체 할 수 있기 때문에 파일이 훼손되지 않았 음을 증명할 가치가 거의 없습니다. 이것이 목표가 보안 일 때 이런 식으로 거의 수행되지 않는 이유입니다.

일반적으로 해시 다이제스트가 제공되면 소프트웨어 제작자가 직접 제공합니다. 다운로드 용 소프트웨어를 제공하지만 자체 서버에서 소프트웨어를 직접 호스팅하지는 않습니다. 이들은 호스팅 회사가 아닌 소프트웨어 회사이며 자체 서버에 대역폭이 없어 수천 개의 동시 광대역 다운로드를 허용하지 않습니다. 따라서 동일한 서비스를 제공하기 위해 클라우드 제공 업체로부터 공간과 대역폭을 임대합니다.

이제는이 클라우드를 제어하지 않습니다. "내 집, 내 규칙"이라는 다른 회사에서 유지 관리하는 다른 시스템입니다. 소프트웨어 제공 업체는 해킹과 호스팅 회사의 타협으로 인해 좋은 이름이 손상되는 것에 대해 걱정하고 있습니다. 이것은 일반적인 공격 방법이며 공격자가 회사 사용자의 네트워크에 침입하여 혼란을 유발할 수 있도록하는 소프트웨어상의 소프트웨어 회사 이름입니다.

이 솔루션은 소프트웨어 제작자가 호스팅 사이트에서 다운로드를 위해 제공되는 파일을 해시하고 해당 시스템에서 해당 해시를 제어합니다. 이제 최종 사용자는 큰 호스팅 사이트에서 소프트웨어를 다운로드하고 소프트웨어 회사 사이트로 이동하여 나열된 파일 해시를 계산 한 것과 비교하여 소프트웨어 회사가 무엇을 얻었는지 확인할 수 있습니다. 다운로드 한 파일 실제 파일 다운로드를 호스팅하는 것보다 소프트웨어 회사의 대역폭이 훨씬 적습니다. 이제는 더 이상 단일 취약점이 없습니다. 공격자는 해시 검사를 통과 할 파일을 제 위치에 배치하기 위해 클라우드 and 소프트웨어 제작자의 사이트를 모두 해킹해야합니다. 그들은 단지 호스팅 사이트를 해킹하고 파일을 교체하여 해시 (많은 사람들)를 확인하려고 귀찮게하지 않는 사람들을 엉망으로 만들거나 do 해시를 확인하는 사람들을 엉망으로 만들 수 있습니다 소프트웨어 제공 업체의 사이트를 해킹하고 해시를 변경하여 실제 파일의 해시가 더 이상 일치하지는 않지만 해킹 된 파일을 소프트웨어 회사 자체로 가장 할 수 있습니다.

6
KeithS

일반적으로 그렇습니다. http 사이트의 해시는 데이터가 신뢰할 수있는 소스에서 온 것임을 거의 보증하지 않습니다.

그러나 보안에 대한 정의, 즉 위협 모델에 따라 다릅니다. 보안의 한 측면은 데이터 무결성이며, 해시를 확인하면 잘못된 CDROM 또는 손상된 다운로드 시간을 낭비하지 않도록하는 데 도움이됩니다.

버전 관리를 통해 프로그래머부터 패키징 및 배포에 이르기까지 모든 인증을 제공하는 패키지 시스템에서 소프트웨어를 얻는 것이 훨씬 좋습니다.

5
nealmcb

보안상의 관점에서 공격자는 파일 해시를 파일 해시처럼 쉽게 대체 할 수 있지만, 일반 사용자에게는 파일이 정확하고 (즉, 다운로드가 작동하고 손상이 없음을 의미하는) '충분히'편안합니다. 파일이 동일한 위치에 저장된 경우 원하는 경우.

회사 보안 담당자 나 좀 더 민감한 것에 대해서는 아마도 대역 외 메커니즘을 통해 해시의 유효성을 검사하고 싶을 것입니다.

4
Rory Alsop

설명 된 상황에서 서명의 유일한 용도는 파일이 손상되지 않았는지 확인하는 것입니다.

3
Steve

보안 연결을 통해 해시를 다운로드하지 않은 경우에도 파일의 해시 확인이 보안상의 이점으로 입증 될 수있는 몇 가지 경우가 있습니다.

  • 연결 만 변경되는 경우 다른 연결 (예 : 보안 VPN)을 사용하여 해시가 포함 된 웹 페이지를 방문 할 수 있습니다. 다른 연결을 통해 볼 때 페이지가 조작되었을 가능성이 훨씬 적은 동일한 해시를 표시하는 경우.
    물론, 서로 다른 연결을 통해 동일한 파일을 두 번 다운로드하면 동일한 결과를 얻을 수 있지만 훨씬 빠릅니다.
  • 사람이든 소프트웨어이든 공격자가 악성 파일의 해시를 계산하지 않고 원래의 해시를 해당 파일로 교체하지 않은 경우. 그러나 게으른 공격자에 의존하는 것이 최선의 방어책이 아닙니다.
  • 파일이 해시와 다른 사이트에서 다운로드되고 that 사이트가 손상되었지만 해시를 제공하는 사이트가 not . 예를 들어, 파일은 mirror 또는 CDN 을 통해 배포 될 수 있습니다.
  • 제공된 해시가 신뢰할 수있는 키로 디지털 서명 된 경우. 예를 들어 신뢰할 수있는 PGP 서명으로 서명 된 해시입니다.

그러나 보안되지 않은 연결을 통해 해시를 제공 할 때 전송되는 파일이 전송 중에 손상되지 않았는지 확인할 수 있다는 것이 가장 큰 장점입니다. 오늘날 이것은 자주 발생하지 않지만 발생합니다. 손상된 Linux ISO를 레코딩하면 이미 너무 늦었을 때만 알 수있는 손상된 설치를 제공 할 수 있습니다. 손상된 다운로드로 BIOS를 플래싱하면 훨씬 더 나빠질 수 있습니다.

고려해야 할 또 다른 사항은 해시를 제공하면 실제로 잘못된 보안 감각이 생길 수 있지만 해시가없는 경우에도 파일을 다운로드하는 사람이 파일을 다운로드했을 가능성이 큽니다. 이 경우 해시가 제공하는 작은 보안 이점은 전혀 중요하지 않습니다.

2
user2428118

실제로 생각한다면 다운로드 가능한 콘텐츠를 호스팅 할 여러 사이트를 해시 키와 함께 사용하면 대부분의 밀 교체 공격이 중단됩니다. 다시 한번 가정하자면 공격자가 이동 중이 아니라 공격자가 현장에서 교체해야하는 위협 모델이됩니다. 단일 소스를 사용하더라도 복사본은 파일과 해시를 모두 바꾸지 못하게합니다.

또한 다운로드를 통해 파일 소스가 손상 될 수 있습니다.

0
mincewind

@ Iszi 여기 짧은 이야기가 있습니다 ... (좋아, 아마도 "짧지"않습니다 ... 죄송합니다 : P)

yo VLC 를 다운로드하고 싶다고 가정 해 봅시다. 창문 용. 최신 버전 (ver. 1.1.5). Ok?

가장 먼저 갈 곳은 http://www.videolan.org (official 사이트)입니다. 그러나 5.780.000 사이트에서 "동일한"프로그램을 찾아 얻을 수 있습니다. Right? (Google "vlc 다운로드 1.1.5").

-official 사이트는 MD5 파일이 "988bc05f43e0790c6c0fd67118821d42"라고 말합니다 (링크 참조). 그리고이 프로그램 (1.1.5 버전)은 공식 videolan.org WEB 서버 (NO HTTPS)에서 얻을 수 있습니다. 또는 링크를 클릭하고 Sourceforge로 리디렉션하여 가져 오십시오. 그리고 다시 NO HTTPS로. 그러나 Sourceforge는 big 이름입니다. 신뢰할 수 있는. 권리? 그리고 무엇을 추측하십시오. VLC를 보유한 삼촌은 다운로드를 위해 이메일을 통해 빠른 공유 링크를 보냅니다. 그리고 당신의 친구도 직장에서.

따라서이 "신뢰할 수있는 출처"에서 다운로드하십시오.

친구, 사이트, 버전, 삼촌. 당신은 그들 모두를 신뢰합니다. 권리 ? 나는 그렇게 생각하지 않습니다. 최소한해서는 안됩니다.

당신이 가지고있는 것을 확인하는 유일한 방법은 원본 파일입니다. 변경하지 않고 수정하지 않았습니다. 손대지 않은. 그리고 그것은 그것의 해시를 비교하는 것입니다. 그러나 무엇으로? 공식 출처의 해시 포함

HTTP (S), 디지털 서명, "보안"또는 "신뢰할 수있는"서버가 없습니다. 아무것도. 이 중 어느 것도 필요하지 않습니다. 데이터 무결성은 당신의 친구입니다.

PGP/GnuPG와 동일합니다. 메시지가 완료된 후 메시지가 변경되었는지 여부를 감지 할 수 있습니다.

@Justice는 말했다

숙련 된 크래커는 파일을 악의적으로 수정 된 버전으로 바꾸고 해시를 수정 된 파일과 일치하는 버전으로 바꿀 수 있습니다

물론, MD5 충돌 존재하는 것으로 밝혀졌습니다. SHA-1 충돌 도 존재합니다. 그러나 인용 Wikipedia :

오늘날 일반적으로 사용되는 암호화 해시 함수는 충돌 방지 로 설계되었지만 그중 아주 적은 것만이 절대적으로 있습니다. 특히 MD5와 SHA-1은 충돌을 찾기 위해 무차별 대입보다 효율적인 기술을 발표했습니다. 그러나 일부 압축 함수는 충돌을 찾는 것이 어려운 수학 문제 (예 : 정수 분해 또는 이산 로그)만큼 어렵다는 증거가 있습니다. 이러한 기능을 아마도 안전한 라고합니다.

그리고 "충분히 숙련 된 크래커"가 "나쁜 버전"을 찾거나 하나의 파일/이진/원하는 original 및 원하는 make 파일을 만들 수 있다고 생각하지 않습니다. 원본으로 same MD5/SHA-1이 있어야합니다. 그리고 똑같이 보이게 만드십시오 (그림). 또는 동일한 파일 크기를 사용하거나 실행하거나 의미있게 만들 수 있습니다 (텍스트). 근처에도 안. 바이러스 백신 (악의적 인 경우)에 대해 탐지되지 않도록 만들 수 있습니다. 그것은 다른 이야기입니다. 그러나 충돌에 대한 일부 나쁜 경우 가보고되었습니다.

따라서 ANY (양호한) source에서 다운로드하지만 original source의 해시를 비교하십시오. 그리고 항상 하나의 원본 출처가 있습니다.

0
labmice