Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Ringkasan

Kerentanan pengungkapan informasi yang ada di protokol Transport Layer Security dan protokol Secure Sockets Layer (TLS/SSL) seperti yang diterapkan pada komponen enkripsi Microsoft .NET Framework. Seorang penyerang yang berhasil dieksploitasi kerentanan ini dapat mendekripsi lalu lintas TLS/SSL yang dienkripsi.

Untuk memanfaatkan kerentanan, penyerang pertama-tama harus menyuntikkan nonencrypted data ke saluran keamanan dan kemudian melakukan serangan orang-di-tengah (MiTM) antara ditargetkan klien dan server yang sah. Pemutakhiran ini membahas kerentanan dengan mengubah cara .NET enkripsi komponen mengirim dan menerima paket jaringan terenkripsi.

Kerentanan ini tetap sebagai bagian dari Microsoft Security buletin MS16-065. Pemutakhiran ini mengubah cara .NET Framework enkripsi komponen mengirim dan menerima paket jaringan terenkripsi.

Tabel berikut berisi link ke entri standar untuk setiap kerentanan dalam daftar kerentanan Umum dan eksposur.

Kerentanan judul

Nomor CVE

Secara umum diperlihatkan

Dieksploitasi

Kerentanan Spoofing TLS SSL

CVE-2016-0149

Ya

Tidak ada

Kerentanan resolusi

Perubahan yang diperkenalkan di buletin keamanan Microsoft MS16-065 menyebabkan catatan TLS pertama setelah handshake yang dibagi. Hal ini menyebabkan SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient, dan HttpClient (di mana berdasarkan HttpWebRequest) aliran kembali byte tunggal untuk pertama kali membaca, segera diikuti oleh byte lainnya (n-1) dalam pembacaan berturut-turut. Perubahan perilaku ini hanya terjadi untuk aplikasi yang menggunakan TLS 1.0 + penyandian blok rantai, tetapi tidak ketika menggunakan TLS 1.1 atau TLS 1.2.

Catatan Sebagai prasyarat, Anda harus menginstal Microsoft Security buletin MS12-006 untuk mengaktifkan pembaruan ini.

Perubahan ini dapat menyebabkan beberapa aplikasi yang didasarkan pada .NET Framework untuk memisahkan. Artikel ini menjelaskan dua pendekatan yang dapat Anda gunakan untuk memperbarui aplikasi Anda bekerja dengan benar setelah Anda menerapkan buletin keamanan Microsoft MS16-065.

Mitigations untuk masalah kompatibilitas

Opsi 1: Beralih ke protokol TLS 1.2

Opsi ini membuat aplikasi yang menggunakan protokol TLS 1.2 dengan memodifikasi registri atau secara programatik mengkonfigurasi versi protokol.

  • Mengubah registri

    Penting
    Ikuti langkah-langkah di bagian ini dengan seksama. Masalah serius dapat terjadi apabila Anda salah mengubah registri. Sebelum Anda mengubahnya, Buatlah cadangan registri untuk pemulihan apabila terjadi masalah.

    .NET Framework 4.0 dan .NET Framework 4.5.x aplikasi yang berjalan di .NET Framework 4,5 dan versi yang lebih baru dapat beralih protokol standar TLS 1.0, TLS 1.1 dan TLS 1.2 dengan mengaktifkan kunci registri SchUseStrongCrypto . Kunci registri ini dibahas di bagian Tindakan yang disarankan topik 2960358 penasihat keamanan Microsoft di situs web Microsoft TechNet.

    Penting Perubahan registri ini hanya akan bekerja jika kondisi berikut benar:

    • Aplikasi yang menggunakan api berbasis ServicePointManager tidak menetapkan nilai ServicePointManager.SecurityProtocol secara eksplisit. Contoh kelas tersebut termasuk System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequest, dan System.Net.Mail.SmtpClient. Pengaturan ServicePointManager.SecurityProtocol kode lebih diutamakan daripada registri.

    • Aplikasi yang menggunakan berlebihan SslStream AuthenticateAsClient(String) .


  • Mengkonfigurasi pemrograman versi protokol

    .NET Framework 4.0 dan 4.5 aplikasi yang berjalan di .NET Framework 4,5 dan versi yang lebih baru dan yang menggunakan berlebihan SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) harus menjadi recompiled, menentukan SslProtocols.Tls12, SslProtocols.Tls11dan SslProtocols.Tls sebagai parameter ketiga. Untuk deskripsi lengkap tentang cara menggunakan kelas SslStream, lihat topik SslStream kelas di situs web Pengembang Microsoft (MSDN).

    Catatan .NET Framework 4.6 dan versi yang lebih baru menggunakan TLS 1.0, TLS 1.1 dan TLS 1.2 sebagai default protokol. Ini membahas topik 2960358 penasihat keamanan Microsoft di situs web Microsoft TechNet.


Opsi 2: Menangani terpisah paket

Pemutakhiran ini menyebabkan data tunggal untuk dibagi menjadi beberapa data. Oleh karena itu, jika aplikasi mengharapkan catatan lengkap tersedia dalam satu Baca panggilan, aplikasi tersebut dapat merusak. Untuk memastikan bahwa aplikasi berperilaku dengan benar, verifikasi bahwa aplikasi menangani split paket dengan melakukan panggilan Stream.Read dengan benar. Anda dapat menggunakan contoh kode tersedia di sini sebagai referensi untuk cara untuk memperbaiki aplikasi untuk melakukan panggilan dibaca dengan benar.

Permintaan HTTP contoh yang menunjukkan perbedaan dalam perilaku sebelum (dengan mitigasi) dan setelah (tanpa mitigasi) pembaruan 3147461 dan 3147458 diinstal, lihat bagian "Informasi selengkapnya".

Untuk contoh Stream.Read metode yang lengkap, lihat topik Stream.Read metode (Byte [], Int32, Int32) di situs web Pengembang Microsoft (MSDN).

Penyelesaian untuk masalah kompatibilitas aplikasi

Peringatan Penyelesaian ini dapat membuat komputer atau jaringan lebih mudah diserang oleh pengguna yang jahat atau perangkat lunak berbahaya seperti virus. Kami tidak menganjurkan pemecahan masalah ini, tetapi menyediakan informasi ini sehingga Anda dapat menerapkan penyelesaian ini kebijaksanaan Anda sendiri. Gunakan penyelesaian ini risiko Anda sendiri.

Metode 1: Memperbarui kunci registri (tersedia untuk semua versi .NET Framework)

Nonaktifkan struktur SCH_SEND_AUX_RECORD (global)

Nonaktifkan SCH_SEND_AUX_RECORD struktur untuk setiap aplikasi

Nonaktifkan struktur SCH_SEND_AUX_RECORD (global)

Untuk semua aplikasi, tambahkan subkunci registri berikut ini:

Lokasi registri: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
Nama DWORD: SchSendAuxRecord
Data nilai: 0
Catatan < Version_number > adalah v4.0.30319 atau v2.0.50727, tergantung pada versi.

Untuk aplikasi 32-bit yang berjalan pada komputer 64-bit, juga menambahkan subkunci registri berikut ini:

Lokasi registri: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
Nama DWORD: SchSendAuxRecord
Data nilai: 0
Catatan < Version_number > adalah v4.0.30319 atau v2.0.50727, tergantung pada versi.

Pemecahan masalah

Untuk menonaktifkan sementara mode aman yang dijelaskan di artikel ini, klik tautan yang sesuai untuk men-download berkas .reg, dan kemudian klik dua kali berkas .reg diunduh untuk membuat perubahan registri.

Aplikasi target Microsoft .NET Framework 3.5:

Download Unduh berkas ManualOptOutSchSendAuxRecord20.reg sekarang.
Aplikasi target Microsoft .NET Framework 4.0 dan versi yang lebih baru:

Download Unduh berkas ManualOptOutSchSendAuxRecord40.reg sekarang.
Untuk mengaktifkan ulang mode aman yang dijelaskan di artikel ini, klik tautan yang sesuai untuk men-download berkas .reg, dan kemudian klik dua kali berkas .reg diunduh untuk membuat perubahan registri.

Aplikasi target Microsoft .NET Framework 3.5:

Download Unduh berkas ManualOptInSchSendAuxRecord20.reg sekarang.
Aplikasi target Microsoft .NET Framework 4.0 dan versi yang lebih baru:

Download Unduh berkas ManualOptInSchSendAuxRecord40.reg sekarang.
Untuk informasi selengkapnya tentang cara mengunduh file dukungan Microsoft, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

119591 cara mendapatkan berkas dukungan Microsoft dari layanan daringMicrosoft telah memindai file ini dari virus. Microsoft menggunakan perangkat lunak pendeteksi virus terbaru telah tersedia pada tanggal berkas diposting. File tersebut disimpan di server aman yang membantu mencegah segala perubahan tidak sah terhadap file.


Nonaktifkan SCH_SEND_AUX_RECORD struktur untuk setiap aplikasi

Untuk semua aplikasi, tambahkan subkunci registri berikut ini:

Lokasi registri: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Nama DWORD: Lintasan yang memenuhi syarat untuk .exe aplikasi (misalnya, C:\MyApp\MyApp.exe)
Data nilai: 0
Catatan < Version_number > adalah v4.0.30319 atau v2.0.50727, tergantung pada versi.

Untuk aplikasi 32-bit yang berjalan pada komputer 64-bit, juga menambahkan subkunci registri berikut ini:

Lokasi registri: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Nama DWORD: Lintasan yang memenuhi syarat untuk .exe aplikasi (misalnya, C:\MyApp\MyApp.exe)
Data nilai: 0 (nilai hanya berlaku adalah 0. Setiap nilai akan diabaikan.)
Catatan < Version_number > adalah v4.0.30319 atau v2.0.50727, tergantung pada versi.

Metode 2: Mengubah konfigurasi di tingkat aplikasi (hanya tersedia untuk versi .NET Framework 4.6 dan versi yang lebih baru)

Dimulai dengan .NET Framework 4.6, Anda dapat mengubah konfigurasi pada tingkat aplikasi melalui kode atau aplikasi perubahan konfigurasi atau registri.

.NET Framework 4.6, Anda dapat menetapkan switch dengan menggunakan salah satu metode berikut. Contoh ini menonaktifkan fitur keamanan.

  • Pemrograman

    Hal pertama yang harus dilakukan oleh aplikasi menjalankan kode berikut. Hal ini karena manajer titik Layanan akan menginisialisasi hanya satu kali.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Konfigurasi aplikasi

    Untuk mengubah konfigurasi aplikasi, tambahkan entri berikut ini:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Kunci registri (komputer global)

    Lokasi registri: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Nilai: Switch.System.Net.DontEnableSchSendAuxRecord
    Type: String
    Nilai: Benar

    Catatan Switch.System.Net.DontEnableSchSendAuxRecord = False untuk semua aplikasi.

Informasi lebih lanjut

Berikut ini adalah contoh pola komunikasi klien/Server sebelum dan setelah pembaruan ini diinstal. Informasi ini disediakan untuk ilustrasi untuk mengidentifikasi setiap aplikasi kerusakan karena instalasi perbaikan ini.

Tanpa mitigasi

Dengan mitigasi

[Server] menunggu sambungan (127.0.0.1:4431)
[Klien] Menyambung ke localhost:4431
[Server] Klien tersambung.
[Klien] Tersambung. Otentikasi...
[Server] Klien diotentikasi.
[Klien] Mengirim permintaan (94 byte)
[Klien] Menunggu Balasan...

[Server] Menerima 94 byte: <<< mendapatkan / HTTP 1.0
Host: contoso.com
User-Agent: Pengujian aplikasi

>>>
[Server] Menjawab dengan 476 byte.

[Klien byte 1: 476] Respons: <<<<< HTTP/1.1 200 OK

>>>>>

[Server] menunggu sambungan (127.0.0.1:4431)
[Klien] Menyambung ke localhost:4431
[Server] Klien tersambung.
[Klien] Tersambung. Otentikasi...
[Server] Klien diotentikasi.
[Klien] Mengirim permintaan (94 byte)
[Klien] Menunggu Balasan...
[Server] Menerima 1 byte: <<< G >>>
[Server] Menerima 93 byte: <<< ET / HTTP 1.0
Host: contoso.com
User-Agent: Pengujian aplikasi

>>>
[Server] Menjawab dengan 476 byte.
[Klien 1: 1 byte] Respons: <<<<< H >>>>>
[Klien byte 2: 475] Respons: <<<<< TTP/1.1 200 OK

>>>>>


Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×