2009-12-17 19 views
7

Tôi đã viết một ứng dụng .Net không liên quan gì đến giao tiếp mạng. Không có một dòng mã trong toàn bộ ứng dụng sử dụng NIC, nhưng tường lửa của tôi đã bắt được nó cố gắng liên hệ với Verisign vì một số lý do khi ứng dụng bắt đầu. Điều này không xảy ra thường xuyên; như một vấn đề của thực tế, nó chỉ xảy ra hai lần.Tại sao ứng dụng .Net của tôi liên hệ với Verisign?

Lần cuối cùng xảy ra, tôi có thể khởi chạy Wireshark trước khi yêu cầu tường lửa của tôi cho phép truy cập vào mạng. Có không chuyển dữ liệu thực mà tôi có thể biết. Nó chỉ bắt được 9 gói TCP: một số gói SYN, một số gói SYN/ACK và một số gói RST (Các gói RST bị hỏng). Tôi sẽ nghi ngờ một trong những dll của bên thứ ba của tôi, nhưng tôi không thấy lý do tại sao một thư viện toán học hoặc một thư viện thao tác hình ảnh sẽ cố gắng thiết lập một kết nối với Verisign và sau đó không làm gì với kết nối đó.

Khách hàng của tôi đang ở trong các tổ chức có bảo mật chặt chẽ; điều cuối cùng tôi muốn là một cuộc gọi điện thoại hỏi tại sao ứng dụng của tôi kết nối với Internet.

Có ai biết tại sao điều này xảy ra không? Có cách nào để ngăn nó xảy ra không?

Tệp .pcap mà Wireshark đã tạo là here.

Trả lời

8

Dưới đây là một liên kết tốt a blog giải thích những gì đang xảy ra, và những thay đổi tập tin cấu hình ứng dụng của bạn, bạn có thể thêm để ngăn chặn nó xảy ra, cụ thể:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 

Nó liên quan đến ký Authenticode, và PublisherMembershipCondition mà bạn gần như chắc chắn không cần. Điều này được giải thích ở đây trên MSDN

Điều cần lưu ý là .Net 2.0 và .Net 3.0 chỉ hỗ trợ cài đặt cấu hình này với SP1. .Net 3.5 hỗ trợ tính năng này mà không cần bất kỳ gói dịch vụ nào.

0

Các tệp bên thứ ba có trả tiền này có thể thực hiện một số loại xác thực sử dụng không?

+0

Chúng được thanh toán, nhưng cơ chế cấp phép của chúng bao gồm tìm khóa cấp phép được bao gồm trong tệp trên máy tính. – Phil

+0

Vâng, đó là một cơ chế cấp phép. Người khác dường như không có cơ chế xác minh giấy phép. – Phil

1

Nếu đó là ứng dụng web có SSL, có thể IE đang cố gắng xác minh rằng chứng chỉ chưa bị thu hồi.

+0

AFAIK, điều tương tự cũng có thể đúng đối với mọi hội đồng .net đã ký, không nhất thiết phải kết nối với IE hoặc ứng dụng web. Hệ thống sẽ liên hệ với máy chủ Danh sách Thu hồi Chứng chỉ (CRL) để kiểm tra xem có điều gì không đáng tin cậy nữa không. Có một tùy chọn toàn hệ thống để vô hiệu hóa hành vi này, nhưng tôi không thể nhớ nó ở đâu. – atzz

1

Có bất kỳ tệp DLL của bên thứ ba nào được ký kết với Authenticode không?

2

Nếu bạn ký hợp đồng với một chứng chỉ thực, thời gian chạy .net phải kiểm tra chữ ký số.

Các vấn đề liên quan