Ký bằng tên mạnh (cặp khóa được lưu trữ trong tệp .snk) là (trong số các công dụng khác) có nghĩa là protect against forging assemblies. Ví dụ: Tôi gửi bản lắp ráp của tôi được ký với tên mạnh, sau đó một số nhà phát triển khác sử dụng lắp ráp của tôi và do đó, hội đồng của ông hiện có chứa một tham chiếu đến tôi, đề cập đến khóa công khai của cặp khóa của tôi. Một số người dùng cài đặt nhà phát triển lắp ráp và lắp ráp của tôi và vui vẻ sử dụng mã của nhà phát triển đó. Nếu bất kỳ ai khác cố gắng sản xuất một hội đồng trông giống như một phiên bản của tôi và thuyết phục người dùng rằng đó là "bản cập nhật đáng giá" mà lắp ráp giả mạo sẽ không tải vì tôi kiểm soát cặp khóa của tôi và cụm lắp ráp đó không được ký với cùng một cặp khóa . Được, tuyệt đấy.Làm thế nào để ký tên với một tên mạnh mẽ bảo vệ chống giả mạo một tập hợp các hội đồng?
Nhưng điều gì ngăn cản một bên độc hại giả mạo cả hội đồng của tôi và hội đồng phụ thuộc của nhà phát triển khác và "giao hàng" cả hai? Họ lấy hội đồng của tôi và hội đồng của nhà phát triển, làm xáo trộn cả hai, ký phiên bản giả mạo của hội đồng của tôi với bất kỳ chìa khóa nào, sau đó thêm một tham chiếu đến nó vào phiên bản giả mạo của hội đồng phụ thuộc, ký tên nó và sau đó gửi cả hai. Tôi có nghĩa là độc hại "vận chuyển" hai hội đồng không nên khó khăn hơn nhiều so với "vận chuyển" một hội đồng.
Làm cách nào để ký tên với tên mạnh mẽ bảo vệ chống giả mạo nhiều hội đồng?
Vâng, cũng có tên mạnh mẽ trong quá trình lắp ráp. Tiếp tục kéo chuỗi đó và bạn sẽ kết thúc tại EXE. Nếu kẻ tấn công có thể thay thế nó thì không còn điểm nào trong việc sử dụng tên mạnh. –
@Hans Passant: Tôi đoán bạn nói đúng.Bạn có thể thêm câu trả lời này làm câu trả lời không? – sharptooth