Chúng ta có thực sự cần kiểm tra tính toàn vẹn của các tệp đã tải xuống không? [bản sao]


9

Câu hỏi này đã có câu trả lời ở đây:

Tôi đã tải xuống một lượng lớn tệp, nhưng phát hiện ra việc sử dụng md5 và sha làm công cụ kiểm tra tính toàn vẹn gần đây. Từ đó tôi luôn thích kiểm tra nó cho các tệp đã tải xuống lớn, ngay cả khi tôi không bao giờ thấy chúng bị hỏng.

Chúng ta có thực sự cần kiểm tra tính toàn vẹn của các tệp đã tải xuống không?

Chọn ví dụ về bản phân phối Linux mà tôi vừa tải xuống, đó là 1GB, nếu bạn muốn.

Cảm ơn bạn


Đây thực sự không phải là một vấn đề với các kết nối internet hiện đại. Nó hoàn toàn phụ thuộc vào sở thích cá nhân của bạn.
Ramhound

5
Điểm so sánh băm có thể là "có ai đó đã thay đổi tệp (độc hại)" so với "tệp đã được tải xuống chính xác". Một ví dụ điển hình là tải xuống ISO của windows từ nguồn không chính thức / không đáng tin cậy và kiểm tra tính toàn vẹn của tệp bằng cách so sánh hàm băm MD5 với tệp Microsoft được xuất bản trên MSDN.
TheUser1024

1
@ TheUser1024 điều này giả định rằng hai nguồn của bạn giống nhau, phiên bản MSDN có thể khác nhau.
Eric G

1
Câu hỏi này có thể nhận được nhiều phản hồi hơn về bảo
mật.SE

3
Nó thực sự thiên về tính toàn vẹn hơn là bảo mật, vì tôi chỉ tải xuống từ các nguồn đáng tin cậy, ngay cả khi đó là một điểm quan trọng trong tải xuống tệp
maxpesa

Câu trả lời:


6

Nó phụ thuộc vào một vài yếu tố.

  1. Bạn có kết nối internet ổn định?
    Nếu bạn có kết nối internet ổn định, bạn không cần kiểm tra tính tích hợp của tệp vì rất có thể nó sẽ chính xác. Tôi không bao giờ kiểm tra hàm băm và tôi cũng chưa bao giờ có tệp bị hỏng. Hoặc có thể một lần khi máy chủ từ xa bị ngắt kết nối.

  2. Bạn có muốn xác minh tập tin dựa trên lý do bảo mật?
    Nếu bạn lo ngại về sự an toàn của tệp bạn đang tải xuống, bạn có thể sử dụng hàm băm MD5 để xác minh rằng tệp không bị thay đổi theo cách nào đó. Bạn tải xuống một tệp và nếu băm MD5 không khớp, điều đó có nghĩa là tệp trên máy chủ khác với băm MD5 và bằng cách nào đó có gì đó không đúng. Điều này sẽ chỉ hợp lệ nếu bạn không tin tưởng vào máy chủ mà bạn đang tải xuống, nhưng thông thường nếu ai đó cung cấp hàm băm, họ cũng thường cố gắng hết sức để cập nhật mọi thứ. Nhưng nếu trang web của họ bị hack và bạn đã kiểm tra hàm băm MD5, thì bạn đã nhận được một phần thưởng nhỏ.

Nhìn chung, 2 cái này sẽ không cho hầu hết mọi người. Nếu nó là không đối với bạn, điều đó hoàn toàn phụ thuộc vào bạn.


1
Kết nối internet ổn định là không đủ. Bạn cũng phải chắc chắn rằng RAM và ổ lưu trữ của bạn không làm hỏng các tệp. Nhưng vâng, khá khó xảy ra. Nếu máy của bạn không phải là BSOD, rất có thể bạn sẽ chỉ quan tâm đến bảo mật.
ChrisInEd hôm

6
Tổng kiểm tra tệp không phải là kiểm tra bảo mật vì kẻ tấn công có thể sửa đổi tệp có thể cũng có thể sửa đổi tổng kiểm tra.
Johnny

1
Nếu tôi đã hack một trang web và thay thế tệp bằng một trang độc hại, tôi nghĩ rằng tôi đủ thông minh để biết thay đổi hàm băm được liệt kê.
Cole Johnson

3
MD5 không còn đủ để xác minh rằng nội dung của tệp không bị thay đổi có chủ ý. Nó chỉ tốt cho tham nhũng không chủ ý. Tỷ lệ của một kẻ tấn công thỏa hiệp cả hai khác nhau. Lưu trữ cho hàm băm, trong nhiều trường hợp, không được truy cập thông qua các kênh giống như lưu trữ tệp hàng loạt cho một tải xuống lớn. Để bảo mật, chữ ký mã hóa tốt hơn băm đơn giản, đặc biệt nếu bạn không có kênh bảo mật để phân phối băm.
Perkins

Tôi nghĩ ý tưởng băm là khi tệp được cung cấp được lưu trữ trên một trang web khác với hàm băm. Ví dụ: trang web của nhà phát triển có liên kết băm đến Sourceforge hoặc ở đâu đó.
Khóa Matthew

6

Câu trả lời và lựa chọn mà người ta đưa ra sẽ dựa trên khả năng chấp nhận rủi ro và cân nhắc về thời gian và nỗ lực trong việc xác minh.

Kiểm tra băm MD5 / SHA1 là bước đầu tiên tốt và bạn nên làm điều đó khi có thời gian. Tuy nhiên, bạn phải xem xét khả năng của mình để tin tưởng vào hàm băm được cung cấp. Ví dụ: nếu trang web của tác giả với hàm băm bị hack, thì kẻ tấn công có thể thay đổi hàm băm, vì vậy bạn sẽ không biết. Nếu hàm băm bạn tính toán không giống với hàm băm được cung cấp, bạn biết có gì đó không ổn. Tuy nhiên, chỉ vì băm khớp không đảm bảo tệp tốt.

Một thay thế tốt hơn cho một tác giả phần mềm để cung cấp tính toàn vẹn và tính xác thực là thông qua kỹ thuật số ký các tệp đang được phân phối. Điều này đính kèm thông tin xác thực vào tệp và không dựa vào việc tin tưởng một số trang web. Nếu một tác giả ký điện tử vào tệp, cách duy nhất để làm giả điều này là một cơ quan chứng nhận bị xâm phạm hoặc nếu khóa ký của nhà phát triển bị đánh cắp. Cả hai trường hợp này đều ít có khả năng hơn một trang web trên Internet bị hack.

Cuối cùng, bạn phải thực hiện sự chuyên cần của mình để xác định xem bạn có muốn tin tưởng một điều gì đó không và sau đó thực hiện các biện pháp đối phó (chạy trong hộp cát, máy ảo, v.v.) để giảm thiểu bất kỳ yếu tố hoặc tính toán sai nào bạn đã thực hiện khi quyết định có tin tưởng hay không .


4

Vì lý do bảo mật, CÓ. Hãy xem xét rằng một nút thoát Tor được phát hiện là đang vá các nhị phân trong quá trình tải xuống , sau đó hãy nhớ rằng ISP của bạn có thể có hoặc không có đạo đức nhỏ nhất và chúng hoàn toàn kiểm soát kết nối internet của bạn.


Khiếu nại của bạn về ISP là trên thực tế rằng họ có thể thay đổi tốc độ kết nối và mức độ ưu tiên của tôi và những thứ khác có thể làm hỏng các tệp?
maxpesa

@maxpesa - Họ có thể sửa đổi luồng nếu họ muốn. Các tập tin sẽ không bị hỏng chỉ cần sửa đổi.
Ramhound 24/2/2015

@maxpesa - Tôi đã chỉ ra rằng ISP của bạn ở cùng vị trí với nút thoát Tor trong bài viết được liên kết - nó có khả năng kiểm soát những gì đi qua dây của bạn. Nếu họ muốn, họ có thể sửa đổi các nhị phân mà bạn tải xuống khi đang di chuyển.
Michael Kohne

2
Nếu kẻ tấn công có thể sửa đổi nhị phân, kẻ tấn công hầu hết cũng có thể sửa đổi hàm băm. Điều đó sẽ đòi hỏi một cuộc tấn công được nhắm mục tiêu nhiều hơn là vá tất cả các nhị phân, nhưng vẫn rất có thể. Trong khi kiểm tra băm có thể tránh thiệt hại, không có gì đảm bảo. Nếu bạn quan tâm đến bảo mật, bước đầu tiên là chỉ tải xuống qua HTTPS - đặc biệt là khi bạn đang sử dụng proxy như với tor!
kapex

1
Để thêm vào nhận xét của @ kapep, tốt hơn hết là xác thực bằng chữ ký mã hóa (sử dụng các khóa được phân phối qua kênh bảo mật). Bằng cách đó, kẻ tấn công sẽ phải thỏa hiệp cả kho khóa kho lưu trữ để thay đổi nhị phân.
Johnny

3

Chỉ cần thêm vào các câu trả lời khác:

TLDR: Đối với các tệp có tính toàn vẹn là quan trọng, có

Câu trả lời dài: Tôi thường thấy cần thiết khi tôi đang làm một việc mà điều quan trọng là tệp có tính toàn vẹn cao.

Một ví dụ là flash bộ định tuyến với OpenWRT. Nếu tập tin bị hỏng, thì bộ định tuyến đó sẽ bị brick, và sau đó tôi sẽ phải:

  • Thay thế nó (đắt tiền)
  • Khắc phục sự cố (tốn thời gian. Đặc biệt nếu tôi cần hàn cáp nối tiếp / JTAG)

Cả hai điều này đều bất tiện, so với sự đơn giản của việc kiểm tra hàm băm. Vì vậy, tôi thực sự khuyên bạn nên làm điều đó cho các tập tin quan trọng.


0

Tôi thường chỉ bận tâm kiểm tra xem quá trình tải xuống của tôi có bị gián đoạn hay không và tôi đã tiếp tục lại sau đó, bởi vì các yêu cầu HTTP với phần bù tìm kiếm không được sử dụng rộng rãi, vì vậy điều gì đó ngớ ngẩn có thể đã xảy ra.

Trong nhiều trường hợp, tải xuống là một tệp nén không giải nén được nếu nó bị hỏng. Nếu đó không phải là trường hợp, kiểm tra không phải là một ý tưởng tồi. Tôi có thể kiểm tra ISO trước khi ghi nó vào phương tiện ghi một lần.

Xác minh nó bằng một hàm băm từ cùng một trang mà tôi đã nhận được nó là rất ít sử dụng, bảo mật, như các câu trả lời và nhận xét khác đã nói. Nó có thể hữu ích hơn nếu bạn tải xuống từ máy nhân bản, nhưng hàm băm là từ thượng nguồn ban đầu. Hoặc nếu tên tệp không rõ ràng và vì một số lý do bạn không chắc chắn mình có phiên bản chính xác mà bạn muốn.

Vấn đề là, xuất bản băm rất hữu ích cho nhiều trường hợp đặc biệt ngoài việc chỉ tải xuống tệp từ cùng một trang lưu trữ hàm băm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.