Có hai mục đích riêng biệt để xác minh tệp:
A. để bảo vệ chống tham nhũng trong quá trình tải xuống
để bảo vệ chống lại cuộc tấn công MITM , hoặc thậm chí thỏa hiệp máy chủ web nếu khóa pgp riêng chưa bị xâm phạm.
Đối với A, một hàm băm như SHA-1, MD5, ... là quá thỏa đáng. Tuy nhiên, sẽ không có hại khi sử dụng hàm băm hiện đại hơn vẫn được coi là mật mã .
Đối với B, mọi thứ trở nên phức tạp hơn. Để bắt đầu, bạn nên thực hiện tất cả các liên lạc bằng HTTPS (SSL) được chứng nhận chính xác :
https://httpd.apache.org/doad.cgi#verify
https://httpd.apache.org/dev/verification.html#Validating
https://www.apache.org/dist/httpd/KEYS
Bạn thật may mắn, apache không cung cấp quyền truy cập vào trang web của họ.
Bây giờ hãy đánh giá những rủi ro còn lại và những rủi ro nào đã được giảm thiểu. Một cuộc tấn công MITM đơn giản không còn có thể. Tuy nhiên, để thực hiện một cuộc tấn công MITM, kẻ tấn công có thể:
Nhận chứng chỉ cho trang web này từ Cơ quan cấp chứng chỉ bằng cách:
- lừa họ tin rằng họ sở hữu trang web này và trả tiền cho họ.
- lừa các trình duyệt chấp nhận chúng như một CA (lưu ý rằng một số chính phủ được đưa vào các trình duyệt như CA và rằng các CA hiện tại có thể ủy thác sự tin tưởng mà họ nhận được cho bên thứ ba mà không có bất kỳ thông báo nào, hãy xem sự cố etaluat ) subCA thực hiện một số điều tồi tệ và CA từ chối thu hồi subCA này sau đó vẫn còn tất cả các trang web được CA chứng nhận hợp pháp, điều này gây áp lực cho các trình duyệt tiếp tục tin tưởng CA.
- bằng cách đột nhập và đánh cắp khóa riêng của CA
- bằng cách buộc họ theo luật để làm một chứng chỉ như vậy ( trát đòi hầu tòa )
Lấy cắp khóa riêng của máy chủ gửi dữ liệu.
Wow, điều đó có thể không hoàn hảo, nhưng hãy tưởng tượng phải làm một cái gì đó như thế. Tôi cá là em trai đam mê của bạn ở tầng trên không thường xuyên đi đến đó. Nó tăng đáng kể thanh cho một kẻ tấn công.
Hơn nữa, nếu kẻ tấn công có thể xâm phạm máy chủ của trang web, họ có thể thay đổi tệp cũng như md5, sha1 hoặc các hàm băm khác cũng như các khóa pgp mà nó phục vụ và do đó sẽ không phải thực hiện MITM- tấn công. Tùy chọn cuối cùng này là ưu tiên hàng đầu vì thường vào máy chủ đơn giản hơn là lấy chứng chỉ.
Lưu ý rằng đôi khi băm và các tệp đã tải xuống không được phục vụ từ cùng một vị trí. Trong đó là tốt. Nó sẽ làm phức tạp công việc của một kẻ tấn công. Vì vậy, giả sử tôi có một trang web được chứng nhận https và bạn cung cấp một số tệp để tải xuống. Tôi có thể đề nghị đưa băm của các tệp đó lên trang web của tôi để giúp bạn. Hoặc trong trường hợp apache, các bản tải xuống thực tế nằm trên các gương không có https.
Bây giờ băm là liên kết quan trọng trong xác minh. Lưu ý rằng MD5 đã bị hỏng và SHA1 đang trên đường . Thật tệ khi apache vẫn cung cấp những thứ này cho mục đích bảo mật. Nếu vẫn thất bại và cả hai đều có sẵn, hãy kiểm tra cả hai. Một cuộc tấn công va chạm để mang lại cả hai giá trị md5 và sha1 cho hai tệp chưa được phát hiện theo như tôi biết.
Điều gì xảy ra nếu https không có sẵn cho trang web cụ thể. Chà, một tệp được cung cấp cho bạn từ máy chủ đó cũng an toàn như một hàm băm trên trang web (nếu nó nằm trên cùng một máy chủ), hoặc khóa pgp hoặc bất cứ thứ gì khác cho vấn đề đó.
Ngoài https:
Nếu https không đáp ứng nhu cầu bảo mật của bạn ( và thực sự không nên ) hoặc https không có sẵn cho trang web, bạn có thể làm gì?
Sử dụng khóa pgp để xác minh chữ ký có thể cho phép bạn xác minh các tệp nếu bạn có thể nhận được khóa công khai hợp pháp từ người ký. PGP sử dụng một hệ thống được gọi là Web of Trust để xác minh các khóa của nó, trái ngược với Cơ quan cấp chứng chỉ trung tâm được sử dụng trong HTTPS.
Khi bạn bao gồm khóa pgp trong khóa, không nhất thiết phải biết khóa này có thực sự thuộc về id người dùng đi kèm hay không. Để có thể xác minh rằng, người dùng ký vào khóa của nhau sau khi xác minh danh tính của nhau, ví dụ bằng cách gặp mặt trực tiếp hoặc gọi cho người đó. Hơn nữa, có thể xây dựng một chuỗi giữa bạn và nói khóa ký tên apache nếu bạn chưa xác minh chúng trực tiếp nhưng ai đó bạn đã gặp hoặc họ đã gặp ai đó đã ...
Do đó, khi một khóa mới vào khóa của bạn và không có khóa nào khác trong khóa của bạn đã được xác minh đã ký khóa này và bạn thử sử dụng nó, gpg hoặc pgp sẽ đưa ra cảnh báo, giống như các trình duyệt đưa ra cảnh báo nếu bạn lướt đến một trang web https mà chứng chỉ không thể được xác minh.
Ngoài việc tự ký khóa để xác minh rằng đó là hợp pháp, phần mềm có thể tự động chấp nhận nó là hợp lệ nếu một trong những liên hệ đáng tin cậy hoàn toàn của bạn đã ký hoặc 3 liên hệ được tin cậy bên lề đã ký ... Đó là phụ thuộc vào người dùng. Giống như trình duyệt của bạn sẽ âm thầm chấp nhận bất kỳ chứng chỉ SSL nào nếu nó được ký bởi một CA được biết là đáng tin cậy (bởi trình duyệt của bạn).
Tất cả điều này có ý nghĩa gì trong thực tế? Chà, nếu bạn đang ở giữa thế giới đam mê, điều này có thể mang đến cho bạn sự bảo vệ hợp lý. Đối với phần còn lại của thế giới, nó giống như một con quái vật không có xăng.
Đối với người bình thường pgp và web tin cậy có một số vấn đề đáng kể:
- sử dụng gpg và web tin cậy không đúng cách phá vỡ sự bảo mật của nó
- sử dụng đúng cách là công cụ khó khăn, phức tạp và miễn phí như gnupg và các mặt trận của nó rất xù xì
- nếu bạn hoặc phía bên kia không được tin tưởng vào web tin cậy, việc xác minh các khóa là không thể
- một chuỗi niềm tin thực sự có nghĩa là bạn phải tin tưởng tất cả những người ở giữa. Càng để lâu nó càng kém an toàn. Nếu nói tất cả các liên kết của bạn đến khóa ký tên apache đều thông qua cùng một người có thể thiết lập một cuộc tấn công MITM, thì pgp chỉ đóng vai trò là một cảm giác an toàn sai lầm.
- Web of Trust giúp nhà chức trách vẽ bản đồ mạng xã hội của bạn giống như facebook.
Tuy nhiên, nó không gặp phải một số hạn chế của https, như pgp không thể thuyết phục được một công ty lấy tiền của bạn và cấp cho bạn một chứng chỉ sẽ đánh lừa cả thế giới. Mặt khác, nó là ít sử dụng đáng kể cho công chúng nói chung. Nó minh họa mức độ đơn giản là yếu tố quyết định chính cho bảo mật.
Tóm lại, điều quan trọng là phải nhận ra rằng HTTPS và PGP không loại trừ lẫn nhau. Không ai ngăn cản bạn cố gắng sử dụng cả hai khả năng tốt nhất của bạn. Điều người ta nên nhận ra là bất kỳ chuỗi bảo mật nào cũng chỉ mạnh bằng liên kết yếu nhất. Giả sử khóa pgp được tải xuống qua https có điểm yếu là pgp và điểm yếu của https. Mỗi liên kết trong một chuỗi thêm điểm yếu của nó vào kết quả.
Tôi sẽ tiếp tục thêm các liên kết thú vị cho câu trả lời này khi tôi khám phá ra chúng.
Xem thêm: