Triệu chứng
Giả sử rằng bạn đã nâng cấp lên Microsoft .NET Framework 4.6 trên máy tính của bạn. Khi bạn sử dụng ứng dụng sử dụng SSL 3.0 cùng với ServicePointManager hoặc SslStream API để kết nối với máy chủ, kết nối không thành công.
Nguyên nhân
Sự cố này xảy ra vì mặc định của giao thức SSL/TLS sử dụng ServicePointManager và SslStream đã được thay đổi.
Giá trị cũ: Ssl 3.0 | TLS 1.0 | TLS 1.1
Giá trị mới: Tls 1.0 | TLS 1.1 | TLS 1.2
Giải pháp
Để khắc phục sự cố này, bản Cập Nhật máy chủ Tls 1.0, Tls 1.1 hoặc Tls 1.2 do SSL 3.0 đã được thể hiện unsecure và dễ bị tấn công như POODLE.
Lưu ý Nếu bạn không thể cập nhật máy chủ, sử dụng lớp AppContext để loại bỏ tính năng này. Để thực hiện việc này, hãy thực hiện một trong những phương pháp sau:
-
Lập: Phải điều đầu tiên ứng dụng không vì ServicePointManager sẽ khởi chạy một lần. Sử dụng mẫu mã sau trong ứng dụng của bạn:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true);
AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Bằng cách sử dụng các tập tin AppConfig để sử dụng: thêm dòng sau vào tệp Appconfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Để biết thêm thông tin về các vấn đề trong .NET Framework 4.6, xem sự cố cho .NET Framework 4.6 đã biết.
Thông tin
Để biết thêm thông tin về các sản phẩm Hệ thống thay đổi và ảnh hưởng trong .NET Framework 4.6, xem Tương thích ứng dụng trong .NET Framework 4.6.
Lưu ý:
-
Cấu hình mới sẽ chỉ áp dụng khi ứng dụng nhắm mục tiêu .NET Framework 4.6. .NET Framework 4.5.2 và các phiên bản sẽ không bị ảnh hưởng ngay cả khi chạy trong môi trường .NET Framework 4.6.
-
Danh sách bị ảnh hưởng cấp API:
-
HttpClient, HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Dấu hiệu này sẽ tự động được sử dụng trong .NET Framework 4.6 và ảnh hưởng đến hành vi bằng cách loại bỏ thuật toán mật mã và hashing không an toàn. Đối với tất cả các nền tảng hệ điều hành trước Windows 10, các thuật toán RC4 sẽ bị xoá khỏi sử dụng. Windows 10, các thuật toán không an toàn bổ sung sau sẽ bị xoá: DES, NULL, xuất và MD5