Giá trị của tổng kiểm MD5 là bao nhiêu nếu bản thân hàm băm MD5 có khả năng cũng có thể bị thao túng?


39

Tải xuống trên các trang web đôi khi có tổng kiểm MD5, cho phép mọi người xác nhận tính toàn vẹn của tệp. Tôi đã nghe nói điều này là cho phép không chỉ các tệp bị hỏng được xác định ngay lập tức trước khi chúng gây ra sự cố mà còn cho bất kỳ thay đổi độc hại nào dễ dàng được phát hiện.

Tôi tuân theo logic khi có liên quan đến tham nhũng tệp nhưng nếu ai đó cố tình tải lên tệp độc hại , thì họ có thể tạo tổng kiểm MD5 tương ứng và đăng lên trang tải xuống cùng với tệp bị thay đổi. Điều này sẽ đánh lừa bất cứ ai tải tập tin vào suy nghĩ rằng nó không được thay đổi.

Làm thế nào tổng kiểm tra MD5 có thể cung cấp bất kỳ sự bảo vệ nào đối với các tệp bị thay đổi có chủ ý nếu không có cách nào để biết liệu tổng kiểm tra có bị xâm phạm không?


3
Nếu chúng ta đang dựa vào máy chủ trang web nhận thấy sự khác biệt về dấu thời gian tinh tế thay vì hàm băm MD5 hoạt động như một dấu xác thực ... thì sự bảo vệ được cung cấp bởi tổng kiểm tra đã bị bốc hơi khá nhiều.
Austin '' Nguy hiểm '' Powers

4
@BigChris Tôi không chắc ý của bạn là gì, nhưng nghe có vẻ sai. Các thuật toán băm mật mã như MD5 hoàn toàn về dữ liệu tin nhắn. Hai tin nhắn ngẫu nhiên có cùng độ dài gần như chắc chắn sẽ có các giá trị băm khác nhau.
Matt Nordhoff

3
@MattNordhoff chính xác. Nếu một checksum MD5 là không được tạo ra dựa trên dữ liệu tập tin, sau đó điều gì nó dựa trên?
Austin '' Nguy hiểm '' Quyền hạn

2
Có, dữ liệu băm MD5 sẽ được xây dựng trên dữ liệu, vâng, nhưng sẽ không mất quá nhiều nỗ lực để tạo một tệp độc hại với cùng hàm băm. Như đã nói, sẽ không có cách nào kiểm tra xem tập tin có độc hại hay không. Đọc: mscs.dal.ca/~selinger/md5collision
Kinnectus

2
Đôi khi băm được xuất bản trên máy chủ của bên thứ nhất trong khi tải xuống thực tế được lưu trữ trên gương của bên thứ ba và / hoặc CDN.
el.pescado

Câu trả lời:


89

Tôi đã nghe nói điều này là cho phép [...] cho bất kỳ thay đổi độc hại nào cũng được phát hiện.

Vâng, bạn nghe nhầm rồi. Tổng kiểm tra MD5 (hoặc SHA hoặc bất cứ điều gì) được cung cấp ( bên cạnh các liên kết tải xuống, cụ thể ) chỉ để xác minh tải xuống chính xác. Điều duy nhất họ nhắm đến để đảm bảo là bạn có cùng tệp với máy chủ. Không hơn không kém. Nếu máy chủ bị xâm nhập, bạn là SOL. Nó thực sự đơn giản như vậy.


31
+1. Chúng chủ yếu được sử dụng để bảo vệ chống tham nhũng vô tình (lỗi chuyển mạng, các thành phần xấu trên đĩa, v.v.). Để bảo vệ chống tham nhũng độc hại , tổng kiểm tra cần phải hình thành một địa điểm không được kết nối đáng tin cậy. Tương tự với PGP / GPG / tin nhắn được ký tương tự: chúng chỉ đảm bảo hoàn toàn nội dung nếu bạn tin tưởng nơi bạn lấy khóa công khai từ đó.
David Spillett

1
Bạn cũng có thể muốn thêm vào câu trả lời của mình rằng chữ ký khác nhau giải quyết giới hạn này (giả sử rằng bạn tin tưởng chứng chỉ / cơ quan chứng nhận)
atk

2
Thậm chí còn tệ hơn thế này - nếu ai đó có thể can thiệp vào lưu lượng truy cập của bạn đến / từ máy chủ, thì ngay cả khi máy chủ không bị xâm phạm, họ có thể sửa đổi cả tệp và tổng kiểm tra mà bạn nhận được.
cpast

3
Để mở rộng: Nếu nó đã đảm bảo rằng bạn có các tập tin tương tự như các máy chủ đã có, nó sẽ là một biện pháp an ninh hợp pháp, bởi vì nó có nghĩa là bạn không cần phải tin tưởng vào hệ thống mạng. Đó chính xác là những gì MAC trong TLS làm - chứng minh rằng những gì bạn nhận được là những gì máy chủ đã gửi, nhưng TLS cũng không thể làm gì với máy chủ bị xâm nhập. Nếu một hàm băm tốt được truyền qua kết nối đáng tin cậy, nó có thể cung cấp bảo mật (được lấy từ kết nối đáng tin cậy); nếu nó được gửi qua cùng một kết nối với tệp, thì nó vô dụng vì nó không có khả năng chống giả mạo hơn bản thân tệp.
cpast

2
Cái này sai. Đôi khi tổng kiểm tra được cung cấp an toàn, nhưng tải xuống thì không. Vì MD5 bị hỏng, tổng kiểm tra MD5 bảo mật yếu hơn so với tổng kiểm tra an toàn hơn, nhưng trước khi MD5 bị hỏng, MD5 được cung cấp an toàn (ví dụ: đã được ký hoặc gửi HTTP) phù hợp với MD5 của bản tải xuống là bằng chứng mạnh mẽ cho thấy tải về nhận được là một trong những máy chủ đã có sẵn. Bây giờ tôi sẽ thêm một câu trả lời với nhiều chi tiết hơn.
Matthew Elvey

15

Giải pháp được sử dụng bởi một số hệ thống quản lý gói như dpkg là ký băm : sử dụng hàm băm làm đầu vào cho một trong các thuật toán ký khóa công khai. Xem http://www.pgpi.org/doc/pgpintro/#p12

Nếu bạn có khóa công khai của người ký, bạn có thể xác minh chữ ký, điều đó chứng tỏ hàm băm không được sửa đổi. Điều này chỉ khiến bạn gặp vấn đề về việc lấy đúng khóa công khai trước, mặc dù nếu ai đó đã từng làm phiền với phân phối khóa, họ cũng phải can thiệp vào mọi thứ bạn có thể xác minh với nó nếu không bạn sẽ phát hiện ra điều gì đó lạ.


9

Giả định của bạn là chính xác. Có một ngoại lệ mặc dù. Nếu máy chủ cung cấp tệp và trang nơi băm không được quản lý bởi cùng một thực thể. Trong trường hợp đó, nhà phát triển phần mềm có thể muốn nói "hey mọi người tải xuống cái này từ nơi đó nhưng chỉ tin nếu hash = xxxx". (Điều này có thể hữu ích cho CDN là một ví dụ). Tôi đoán đây là lý do tại sao một người nào đó đã làm điều đó ngay từ đầu. Hơn những người khác chỉ theo dõi suy nghĩ sẽ tuyệt như thế nào khi hiển thị hàm băm. Thậm chí không nghĩ nó hữu ích như thế nào, thậm chí cả tệp và hàm băm đều nằm trên cùng một vị trí.

Có điều này nói, đây là giá trị những gì nó là. Đừng cho rằng quá nhiều về bảo mật như những người khác đã nêu. Nếu và chỉ khi bạn hoàn toàn có thể tin tưởng vào hàm băm ban đầu, thì tập tin là tốt. Mặt khác, kẻ tấn công có đủ động lực và kiến ​​thức có thể giả mạo cả tệp và hàm băm, ngay cả khi chúng ở trong các máy chủ khác nhau và được quản lý bởi các thực thể khác nhau.


8

Đôi khi tổng kiểm tra được cung cấp an toàn, nhưng tải xuống thì không. Vì MD5 bị hỏng , tổng kiểm tra MD5 bảo mật yếu hơn tổng kiểm tra an toàn hơn, nhưng trước khi MD5 bị hỏng, MD5 được cung cấp an toàn (ví dụ: MD5 đã được ký với PGP hoặc GPG hoặc Gatekeeper hoặc được nạp qua HTTPS) phù hợp với MD5 của bản tải xuống là bằng chứng mạnh mẽ cho thấy bản tải xuống nhận được là bản mà máy chủ đang cung cấp.

Tôi đã viết về việc thiếu kiểm tra an toàn đáng tiếc trong nhiều năm, ở đây .

Người dùng không nên tải xuống các tệp thực thi không đáng tin cậy trên các mạng không tin cậy và chạy chúng, vì nguy cơ bị tấn công MITM. Xem, ví dụ: "Bảo mật trong các hệ thống cập nhật tự động" của P. Ruissen, R. Vloothuis.

Phụ lục 2014: Không, không sai "rằng tổng kiểm tra được đăng trên các trang web được sử dụng để phát hiện các sửa đổi độc hại", vì đây là vai trò mà họ có thể thực hiện. Chúng giúp bảo vệ chống lại tham nhũng vô tình và nếu được phục vụ qua HTTPS hoặc có chữ ký được xác minh (hoặc tốt hơn là cả hai) sẽ giúp bảo vệ chống tham nhũng độc hại! Tôi đã nhận được tổng kiểm tra qua HTTPS và xác minh rằng chúng khớp với các lần tải xuống HTTP nhiều lần.

Ngày nay, các tệp nhị phân thường được phân phối với các giá trị băm có chữ ký, được xác minh tự động, nhưng ngay cả điều này không hoàn toàn an toàn .

Trích từ liên kết trên: "Ứng dụng KeRanger đã được ký với chứng chỉ phát triển ứng dụng Mac hợp lệ; do đó, nó có thể vượt qua sự bảo vệ Gatekeeper của Apple." ... "Apple đã thu hồi chứng chỉ bị lạm dụng và cập nhật chữ ký chống vi-rút XProtect và Transmission Project đã gỡ bỏ các trình cài đặt độc hại khỏi trang web của mình. Palo Alto Networks cũng đã cập nhật tính năng lọc URL và Ngăn chặn mối đe dọa để ngăn chặn KeRanger khỏi các hệ thống.

Hai trình cài đặt truyền bị nhiễm KeRanger đã được ký với một chứng chỉ hợp pháp do Apple cấp. Nhà phát triển liệt kê chứng chỉ này là một công ty Thổ Nhĩ Kỳ có ID Z7276PX673, khác với ID nhà phát triển được sử dụng để ký các phiên bản trước của trình cài đặt Transmission. Trong thông tin ký mã, chúng tôi thấy rằng các trình cài đặt này đã được tạo và ký vào sáng ngày 4 tháng 3 ".

Chương trình bổ sung năm 2016:

@Cornstalks: Re. bình luận của bạn dưới đây: Sai. Như đã lưu ý tại bài viết Wikipedia về tấn công va chạm mà bạn liên kết đến, "Năm 2007, một cuộc tấn công va chạm tiền tố được chọn đã được tìm thấy chống lại MD5" và "kẻ tấn công có thể chọn hai tài liệu khác nhau tùy ý, sau đó nối các giá trị được tính toán khác nhau dẫn đến toàn bộ tài liệu có giá trị băm bằng nhau. " Do đó, ngay cả khi MD5 được cung cấp an toàn và kẻ tấn công không thể sửa đổi nó, kẻ tấn công vẫn CÓ THỂ sử dụng một cuộc tấn công va chạm tiền tố đã chọn với tiền tố được chọn có chứa phần mềm độc hại, có nghĩa là MD5 KHÔNG an toàn cho mục đích mã hóa. Đây là phần lớn lý do tại sao US-CERT cho biết MD5 "nên được coi là bị phá vỡ bằng mật mã và không phù hợp để sử dụng tiếp."

Một vài điều nữa: CRC32 là một tổng kiểm tra. MD5, SHA, v.v. nhiều hơn tổng kiểm tra; họ dự định là băm an toàn. Điều đó có nghĩa là chúng được cho là rất chống lại các cuộc tấn công va chạm. Không giống như tổng kiểm tra, hàm băm an toàn được truyền thông an toàn bảo vệ chống lại cuộc tấn công trung gian (MITM) trong đó MITM nằm giữa máy chủ và người dùng. Nó không bảo vệ chống lại một cuộc tấn công mà chính máy chủ bị xâm nhập. Để bảo vệ chống lại điều đó, mọi người thường dựa vào một cái gì đó như PGP, GPG, Gatekeeper, v.v.


Tôi thích câu trả lời này vì nó nêu bật một phần cơ bản của tổng kiểm tra - nó chỉ đơn giản là một số liệu, trong số nhiều, để kiểm tra tính hợp lệ của nội dung của tệp. Nếu bản thân mạng không đáng tin cậy, thì không thể tưởng tượng được việc thay thế các băm MD5 và vá nhị phân một cách nhanh chóng (như chúng ta đã thấy trên một số nút thoát Tor) ... Tất nhiên sau đó, MD5 không bảo vệ chống lại cố tình sửa đổi các tệp vì bạn đã đặt niềm tin vào nhà cung cấp các tệp đã nói để bắt đầu.
Đột phá

2
MD5 không hoàn toàn bị phá vỡ: cuộc tấn công vào nó là một cuộc tấn công va chạm , không phải là một tập tin đính kèm tiền tố (sẽ tồi tệ hơn nhiều). Nếu MD5 được cung cấp an toàn và kẻ tấn công không thể sửa đổi nó, thì kẻ tấn công không thể sử dụng một cuộc tấn công va chạm (và phải sử dụng một cuộc tấn công tiền chế), có nghĩa là MD5 vẫn khá an toàn cho mục đích đó. MD5 đáng bị loại bỏ vì lỗ hổng va chạm của nó, nhưng nó không có lỗ hổng tiền giả (đã biết) để nó không bị hỏng hoàn toàn . Chỉ cần một nửa bị hỏng.
Bắp ngô

+1! Nhưng ... một băm đã ký có thực sự an toàn ( đáng tin cậy ) như một băm không dấu được tìm nạp qua https (ssl / tls) không? Tôi nghĩ vẫn tốt hơn là bản thân hàm băm được ký dù sao ...
matpop

4

Đây là lý do chính xác khiến séc được đăng thường có tuyên bố từ chối trách nhiệm "Điều này không thể bảo vệ chống lại sửa đổi độc hại của tệp". Vì vậy, câu trả lời ngắn gọn là "họ không thể cung cấp bất kỳ sự bảo vệ nào đối với tệp bị thay đổi có chủ ý" (mặc dù, nếu trang được phân phối qua HTTPS, HTTPS sẽ tự bảo vệ chống sửa đổi; nếu tệp không được gửi qua HTTPS mà là tổng kiểm tra là, sau đó có thể giúp một số, nhưng không phải là một trường hợp phổ biến). Bất cứ ai nói với bạn rằng tổng kiểm tra được đăng trên các trang web được sử dụng để phát hiện các sửa đổi độc hại là sai, bởi vì đây không phải là vai trò họ có thể thực hiện; tất cả những gì họ làm là giúp bảo vệ chống lại tham nhũng vô tình và lười biếng tham nhũng độc hại (nếu ai đó không bận tâm đến việc chặn trang đưa cho bạn tổng kiểm tra).

Nếu bạn muốn bảo vệ chống lại sự sửa đổi có chủ ý, bạn cần phải ngăn mọi người khỏi làm phiền với tổng kiểm tra hoặc khiến bất kỳ ai khác không thể tạo ra một tổng kiểm tra hợp lệ. Cái trước có thể liên quan đến việc đưa nó ra ngoài hoặc tương tự (vì vậy bản thân tổng kiểm tra là đáng tin cậy); cái sau chuyển sang thuật toán chữ ký số (trong đó bạn cần lấy khóa công khai của mình một cách an toàn cho người tải xuống; trong TLS, điều này được thực hiện bằng cách cuối cùng tin tưởng các cơ quan cấp chứng chỉ và yêu cầu họ xác minh mọi người khác; , nhưng vấn đề là một cái gì đó phải được chuyển một cách an toàn tại một số điểm và chỉ cần đăng một cái gì đó lên trang web của bạn là không đủ).


2
Băm có thể bảo vệ chống lại sự thay đổi độc hại nếu người ta biết thông qua một số nguồn độc lập , hàm băm dự kiến ​​của một phiên bản đáng tin cậy của tệp sẽ là gì. Giá trị của việc trang web liệt kê các giá trị băm của các tệp của nó không nằm ở việc cho phép những người tải xuống tệp từ một trang web kiểm tra hàm băm của tệp đã tải xuống trên cùng một trang web, mà là để cho những người biết từ một số nguồn khác hàm băm của tệp họ muốn , biết liệu tệp đang đề cập có khớp với tệp đó không trước khi họ tải xuống. BTW, một điều tôi muốn thấy ...
supercat

... sẽ là một dạng URL / URI bao gồm giá trị băm dự kiến ​​(có thể là SHA chứ không phải MD5) và sẽ chỉ định rằng trình duyệt chỉ nên chấp nhận tệp nếu hàm băm khớp với những gì được chỉ định. Trong trường hợp nhiều người cùng một tệp lớn sẽ cần phải được truy cập, cung cấp cho tất cả những người đó một URL qua https: // nhưng việc họ tải xuống tệp từ proxy có thể hiệu quả hơn so với việc họ sử dụng https: // trực tiếp từ nguồn.
supercat

@supercat Đó là ý của tôi khi nói "giữ mọi người khỏi làm phiền với tổng kiểm tra" - một cái gì đó phải được chuyển một cách an toàn, và nếu đó là tổng kiểm tra thì tổng kiểm tra có thể giúp bảo vệ chống lại việc giả mạo độc hại với tệp.
cpast

Một tổng kiểm MD5 được truyền qua một số đường dẫn khác với chính tệp sẽ cung cấp sự bảo vệ chống giả mạo trừ khi tệp được tạo ra một cách có chủ ý để tạo điều kiện cho việc giả mạo đó. Ngược lại, một cái gì đó như CRC32 sẽ hầu như không bảo vệ chống giả mạo ngay cả khi nguồn gốc của tệp đáng tin cậy và CRC32 được phân phối an toàn.
supercat

4

Đây thực sự là một vấn đề. Hiển thị tổng kiểm tra trên cùng một trang với tệp để tải xuống là không an toàn. Một người có thể thay đổi tập tin cũng có thể thay đổi tổng kiểm tra. Tổng kiểm tra phải được hiển thị thông qua một hệ thống tách biệt hoàn toàn nhưng điều này khó khả thi, bởi vì làm thế nào để nói với người dùng một cách an toàn nơi có thể tìm thấy tổng kiểm tra.

Một giải pháp có thể là sử dụng các tập tin đã ký.

(BTW: MD5 không an toàn ở bất cứ đâu và không nên sử dụng nữa.)


2

Làm thế nào tổng kiểm tra MD5 có thể cung cấp bất kỳ sự bảo vệ nào đối với các tệp bị thay đổi có chủ ý nếu không có cách nào để biết liệu tổng kiểm tra có bị xâm phạm không?

Bạn hoàn toàn chính xác. Sau đó, mục tiêu sẽ là làm cho "nếu" của bạn sai - nếu chúng ta biết rằng hàm băm mật mã an toàn của tệp không bị xâm phạm, thì chúng ta biết rằng tệp cũng không bị xâm phạm.

Ví dụ: nếu bạn đăng một tệp băm trên trang web của mình, sau đó liên kết đến một bản sao của tệp trên máy chủ nhân bản của bên thứ ba - thông lệ phổ biến trong phân phối phần mềm miễn phí kiểu cũ - người dùng của bạn có thể được bảo vệ chống lại một số loại của các cuộc tấn công. Nếu máy chủ nhân bản độc hại hoặc bị xâm nhập, nhưng trang web của bạn vẫn ổn, máy nhân bản sẽ không thể lật đổ tệp của bạn.

Nếu trang web của bạn sử dụng HTTPS hoặc bạn ký tên băm gpg, tệp của bạn cũng có thể được bảo vệ (phần lớn) khỏi những kẻ tấn công mạng như các điểm truy cập Wi-Fi độc hại, các nút thoát Tor giả mạo hoặc NSA.


1
Về gpg: hãy nhớ rằng điều này có vấn đề tương tự nếu bạn không hoàn toàn tin tưởng khóa công khai chưa được thay thế bằng khóa bị xâm phạm và nội dung được ký bằng khóa riêng tương ứng với khóa đó.
David Spillett

1

Bạn không thể sửa đổi tổng kiểm MD5 mà không sửa đổi tệp. Nếu bạn tải xuống tệp, sau đó tải xuống hàm băm, và sau đó tính toán của tệp không khớp với nội dung được cung cấp, hàm băm hoặc tệp bị sai hoặc không đầy đủ.

Nếu bạn muốn "buộc" tệp vào một cái gì đó bên ngoài, chẳng hạn như tác giả, máy, v.v. thì nó cần phải được , sử dụng quy trình loại PKI có chứng chỉ. Tác giả tệp, v.v. có thể ký tệp bằng khóa riêng của mình và bạn có thể xác minh chữ ký bằng khóa chung, có sẵn công khai, được ký bởi CA cả bạn và tác giả tin cậy và có thể tải xuống, tốt nhất là từ nhiều địa điểm.

Sửa đổi tệp sẽ làm cho chữ ký không hợp lệ, vì vậy điều này cũng có thể được sử dụng để xác minh tính toàn vẹn của tệp.


1

Băm cho biết liệu phiên bản tệp của bạn ("tải xuống") có khác với phiên bản của máy chủ hay không. Họ không đảm bảo tính xác thực của tập tin.

Chữ ký số (mã hóa bất đối xứng + hàm băm) có thể được sử dụng để xác minh rằng tệp chưa được sửa đổi bởi bất kỳ ai không có khóa riêng tương ứng.

Người tạo tập tin băm tập tin và mã hóa hàm băm bằng khóa riêng (bí mật) của họ. Bằng cách đó, bất kỳ ai có khóa công khai (không bí mật) tương ứng đều có thể xác minh rằng hàm băm khớp với tệp, nhưng trong khi nội dung tệp có thể được sửa đổi, không ai có thể thay thế hàm băm tương ứng bằng tệp khớp (sau khi băm được giải mã bằng khóa chung) - trừ khi họ quản lý để bắt buộc khóa riêng hoặc truy cập vào khóa bằng cách nào đó.

Điều gì để ngăn Mr "A.Hacker" đơn giản sửa đổi tệp, sau đó ký tên bằng khóa riêng của họ?

Để xác thực tệp, bạn cần so sánh hàm băm của tệp đó với tệp bạn nhận được bằng cách giải mã chữ ký số được liên kết. Nếu bạn nghĩ rằng tệp đó là từ "IMAwgie", thì bạn giải mã hàm băm bằng khóa của anh ấy và hàm băm không khớp với tệp, vì hàm băm được mã hóa bằng khóa A.Hacker.

Chữ ký số do đó cho phép một người phát hiện cả những thay đổi ngẫu nhiên và độc hại.

Nhưng làm thế nào để chúng tôi có được khóa công khai của IMAwgie ngay từ đầu? Làm cách nào chúng tôi có thể đảm bảo rằng khi chúng tôi lấy được khóa của anh ấy / cô ấy, đó thực sự không phải là khóa của A.Hacker được phục vụ bởi một máy chủ bị xâm nhập hoặc một cuộc tấn công trung gian? Đây là nơi các chuỗi chứng chỉ và chứng chỉ gốc đáng tin cậy xuất hiện, cả hai giải pháp này đều không an toàn tuyệt đối cho vấn đề này và cả hai có lẽ nên được giải thích rõ trên Wikipedia và về các câu hỏi khác về SO.

[1] Khi kiểm tra, các chứng chỉ gốc được cung cấp cùng với HĐH Microsoft trên PC làm việc của tôi bao gồm chứng chỉ từ Chính phủ Hoa Kỳ. Bất cứ ai có quyền truy cập vào các ứng private key ho NSA ho do đó có thể phục vụ nội dung để trình duyệt web của tôi đã vượt qua "là có một ổ khóa vào thanh địa chỉ" kiểm tra. Có bao nhiêu người sẽ thực sự bận tâm để click vào ổ khóa và xem ai là cặp khóa được sử dụng để "an toàn" kết nối?


Chỉ cần một người kiểm tra chuỗi chứng chỉ để gây ra một vụ bê bối. Nếu bạn nghĩ NSA sẽ sử dụng khóa CA của chính phủ cho MITM thay vì sử dụng mã bị đánh cắp từ cơ quan cấp chứng chỉ nước ngoài hoặc - thậm chí tốt hơn (do đó cung cấp từ chối hợp lý), tôi có một cầu nối để bán cho bạn.
Charles Duffy

Tôi đã gợi ý khả năng nó có thể được sử dụng để nhắm mục tiêu MITM vào một người dùng cụ thể. Về việc nó có thực sự có khả năng hay không, đó là để mọi người tranh luận về vấn đề này
Mark K Cowan

Tôi không đặt câu hỏi liệu một MITM được nhắm mục tiêu có khả năng không. Tôi đang đặt câu hỏi liệu có đủ bất cẩn để sử dụng khóa CA dễ truy tìm và được gán để thực hiện hay không. Riêng đối với mục tiêu có giá trị đủ cao, lưu lượng truy cập mạng bên ngoài có thể được ghi lại đủ chi tiết để bao gồm siêu dữ liệu lên đến và bao gồm cả phần công khai của bắt tay SSL, vì vậy ngay cả khi người dùng không nhìn, nhân viên bảo mật của họ hoặc cơ sở hạ tầng tự động có thể làm như vậy trong phân tích hồi cứu.
Charles Duffy

1

Làm thế nào tổng kiểm tra MD5 có thể cung cấp bất kỳ sự bảo vệ nào đối với các tệp bị thay đổi có chủ ý nếu không có cách nào để biết liệu tổng kiểm tra có bị xâm phạm không?

Đây thực sự là một câu hỏi tốt. Nói chung, đánh giá của bạn về thao tác MD5 là tại chỗ. Nhưng tôi tin rằng giá trị của tổng kiểm tra MD5 khi tải xuống là tốt nhất. Có lẽ sau khi bạn tải xuống một tệp, bạn có thể kiểm tra MD5 mà bạn có đối với một trang web, nhưng tôi có xu hướng xem bộ lưu trữ MD5 bên cạnh như một biên lai nhận hay một thứ gì đó rất hay nhưng không đáng tin cậy. Như vậy, tôi thường không bao giờ quan tâm đến tổng kiểm MD5 từ các tệp đã tải xuống, nhưng tôi có thể nói từ kinh nghiệm của mình khi tạo các quy trình MD5 dựa trên máy chủ đặc biệt.

Về cơ bản những gì tôi đã làm khi khách hàng muốn quét một hệ thống tệp cho tổng kiểm MD5 là để chúng được tạo thành các tệp CSV ánh xạ tên tệp, đường dẫn, MD5 và các thông tin tệp lặt vặt khác vào định dạng dữ liệu có cấu trúc mà sau đó tôi đã nhập vào một cơ sở dữ liệu để so sánh và lưu trữ.

Vì vậy, bằng cách sử dụng ví dụ của bạn, trong khi tổng kiểm tra MD5 có thể nằm bên cạnh một tệp trong tệp văn bản của chính nó, thì tổng kiểm tra MD5 sẽ được lưu trữ trong hệ thống cơ sở dữ liệu không được kết nối. Vì vậy, nếu ai đó bằng cách nào đó xâm nhập vào tệp tin để thao túng dữ liệu, kẻ xâm nhập đó sẽ không có quyền truy cập vào hồ sơ thẩm quyền MD5 hoặc lịch sử được kết nối.

Gần đây, tôi phát hiện ra một phần mềm lưu trữ thư viện đẹp mắt có tên là Trình quản lý kiểm toán ACE , về cơ bản là một ứng dụng Java được thiết kế để ngồi và xem một hệ thống tệp để thay đổi. Nó ghi nhật ký thay đổi thông qua thay đổi MD5. Và nó hoạt động theo một triết lý tương tự như quy trình đặc biệt của tôi, lưu trữ tổng kiểm tra trong cơ sở dữ liệu, nhưng nó tiến thêm một bước nhưng tạo ra tổng kiểm MD5 của tổng kiểm MD5 được gọi là cây băm hoặc cây Merkle .

Vì vậy, giả sử bạn có 5 tệp trong một bộ sưu tập. Sau đó, 5 tệp trong Trình quản lý kiểm toán của ACE sẽ nhận được một tệp khác, hãy gọi nó là cha mẹ của bạn, đó là một hàm băm được tạo từ tổng kiểm tra 5 MD5 của mỗi tệp. Vì vậy, nếu ai đó đã giả mạo chỉ với một tệp, hàm băm cho tệp sẽ thay đổi và do đó, hàm băm cho toàn bộ bộ sưu tập cha mẹ con.

Nói chung, cách bạn cần xem xét tổng kiểm MD5 và băm toàn vẹn liên quan là trừ khi chúng không được kết nối với một số bộ lưu trữ không trực tiếp cho chính băm MD5, chúng có thể bị hỏng. Và giá trị của chúng như là một công cụ toàn vẹn dữ liệu dài hạn tương đương với một khóa giá rẻ đi kèm miễn phí trên một hành lý mới; nếu bạn nghiêm túc về việc khóa hành lý, bạn sẽ nhận được một khóa không thể mở trong 5 giây bằng kẹp giấy.


"Tổng kiểm tra MD5 của tổng kiểm MD5" được gọi là Cây Merkle .
pjc50

@ pjc50 Cảm ơn! Chỉnh sửa câu trả lời để tham khảo rằng.
JakeGould

0

tốc độ

Mọi người thường thấy rằng (a) tải xuống một tệp lớn từ một số mạng phân phối nội dung "gần đó" không đáng tin cậy (CDN), trang nhân bản, đồng nghiệp torrent, v.v. và cũng tải xuống tệp tổng kiểm tra ngắn tương ứng (thường là SHA256; phần mềm cũ hơn thường được sử dụng MD5) từ một vài nguồn đáng tin cậy. Họ thấy rằng nó chậm đến mức không thể chịu được khi (b) tải xuống toàn bộ tệp lớn trực tiếp từ một nguồn đáng tin cậy.

xác nhận

Thông thường, người đó thấy rằng mọi thứ đều hợp lệ - các nguồn (đáng tin cậy và không tin cậy) đồng ý trên cùng một tổng kiểm tra và chạy shasum (hoặc md5sum) với bất kỳ tệp kiểm tra ngắn nào (không quan trọng là chúng là gì, khi chúng hoàn toàn giống nhau ) chỉ ra rằng tệp lớn có tổng kiểm tra phù hợp.

sửa đổi

Bạn đã đúng khi Mallory độc hại thay đổi một tệp lớn trên một số trang tải xuống, Mallory cũng dễ dàng kiểm tra độc hại cho tệp đó trên cùng một trang tải xuống để shasum (hoặc md5sum) chạy trên tệp tổng kiểm độc hại đó dường như xác nhận các tập tin lớn. Nhưng tệp tổng kiểm tra đó không phải là (duy nhất) một trình tải xuống nên sử dụng để xác thực.

Khi trình tải xuống so sánh tệp tổng kiểm tra độc hại với các tệp tổng kiểm tra được tải xuống từ các nguồn đáng tin cậy, nếu tổng kiểm tra ban đầu trượt qua một lần, thì trình tải xuống sẽ thấy rằng mọi thứ không xác thực và sẽ biết rằng đã xảy ra sự cố.

Như cpast đã nói trước đây, nếu một tổng kiểm tra mật mã tốt được truyền qua một kết nối đáng tin cậy, nó có thể cung cấp bảo mật (được lấy từ kết nối đáng tin cậy).

Như supercat đã nói trước đây, các tệp tổng kiểm tra một trang web không giúp những người tải xuống các tệp lớn từ cùng một trang web và giống như cách họ tải xuống các tệp tổng kiểm tra - họ giúp những người muốn tải xuống các tệp từ một số trang web khác.

"Về mặt bảo mật, băm mật mã như MD5 cho phép xác thực dữ liệu thu được từ các gương không an toàn. Băm MD5 phải được ký hoặc đến từ một nguồn an toàn (trang HTTPS) của một tổ chức mà bạn tin tưởng." - https://help.ubfox.com/community/HowToMD5SUM

Tổng kiểm tra mật mã là một phần quan trọng của chữ ký khóa công khai thực tế (như được triển khai trong GnuPG và phần mềm tuân thủ OpenPGP khác). Chữ ký khóa công khai có một số lợi thế so với tổng kiểm tra.


0

Tôi đã nghe [tổng kiểm MD5] này là để cho phép [...] cũng cho mọi thay đổi độc hại dễ dàng được phát hiện.

Chà, bạn đã nghe sai hoàn toàn . Chữ ký số thực sự là những gì được sử dụng để phát hiện những thay đổi độc hại. Vì một số lý do quan trọng, băm là một phần cơ bản của chữ ký số, trong đó chỉ có băm thực sự được ký chứ không phải toàn bộ tệp gốc.

Điều đó đang được nói, nếu nguồn không cung cấp chữ ký của hàm băm và một cách đáng tin cậy để xác minh nó , thì bạn đã đúng, không có sự bảo vệ nào đối với các tệp bị thay đổi có chủ ý , nhưng hàm băm vẫn hữu ích như một tổng kiểm tra vô tình tham nhũng .

Đây là một ví dụ thực tế có thể làm rõ toàn bộ. Đoạn văn sau đây đặc biệt có ý nghĩa về chủ đề:

Đối với các bản phát hành CD được lưu trữ cũ hơn, chỉ có tổng kiểm tra MD5 được tạo [...] Đối với các bản phát hành mới hơn, thuật toán tổng kiểm tra mới hơn và mã hóa mạnh hơn (SHA1, SHA256 và SHA512) được sử dụng

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.