Tutup iklan

Beberapa hari lalu, Apple mengeluarkan yang keseratus Kemas kini iOS 7.0.6, tentang keluaran yang kami maklumkan kepada anda. Mungkin ramai yang terkejut bahawa kemas kini itu turut dikeluarkan untuk iOS 6 (versi 6.1.6) dan Apple TV yang lebih lama (versi 6.0.2). Ini adalah tampung keselamatan, jadi Apple tidak mampu mengemas kini hanya sebahagian daripada perantinya. Apatah lagi, isu ini turut menjejaskan OS X. Menurut jurucakap Apple Trudy Muller, kemas kini OS X akan dikeluarkan secepat mungkin.

Mengapakah terdapat begitu banyak gembar-gembur mengelilingi kemas kini ini? Kecacatan dalam kod sistem membolehkan pengesahan pelayan dipintas pada penghantaran selamat pada lapisan hubungan model rujukan ISO/OSI. Khususnya, kesalahan adalah pelaksanaan SSL yang buruk di bahagian di mana pengesahan sijil pelayan berlaku. Sebelum saya pergi ke penjelasan lanjut, saya lebih suka menerangkan konsep asas.

SSL (Secure Socket Layer) ialah protokol yang digunakan untuk komunikasi selamat. Ia mencapai keselamatan melalui penyulitan dan pengesahan pihak yang berkomunikasi. Pengesahan ialah pengesahan identiti yang dikemukakan. Dalam kehidupan sebenar, sebagai contoh, anda menyebut nama anda (identiti) dan menunjukkan ID anda supaya orang lain boleh mengesahkannya (mengesahkan). Pengesahan kemudiannya dibahagikan kepada pengesahan, yang merupakan contoh dengan kad pengenalan kebangsaan, atau pengenalan diri, apabila orang berkenaan boleh menentukan identiti anda tanpa anda mengemukakannya kepadanya terlebih dahulu.

Sekarang saya akan sampai ke sijil pelayan secara ringkas. Dalam kehidupan sebenar, sijil anda boleh, sebagai contoh, kad pengenalan. Semuanya berdasarkan kriptografi asimetri, di mana setiap subjek memiliki dua kunci - peribadi dan awam. Keseluruhan keindahan terletak pada hakikat bahawa mesej boleh disulitkan dengan kunci awam dan dinyahsulitkan dengan kunci peribadi. Ini bermakna hanya pemilik kunci peribadi boleh menyahsulit mesej. Pada masa yang sama, tidak perlu risau untuk memindahkan kunci rahsia kepada kedua-dua pihak yang berkomunikasi. Sijil itu kemudiannya adalah kunci awam subjek ditambah dengan maklumatnya dan ditandatangani oleh pihak berkuasa pensijilan. Di Republik Czech, salah satu pihak berkuasa pensijilan ialah, sebagai contoh, Česká Pošta. Terima kasih kepada sijil, iPhone boleh mengesahkan bahawa ia benar-benar berkomunikasi dengan pelayan yang diberikan.

SSL menggunakan penyulitan asimetri apabila membuat sambungan, yang dipanggil jabat tangan SSL. Pada peringkat ini, iPhone anda mengesahkan bahawa ia sedang berkomunikasi dengan pelayan yang diberikan, dan pada masa yang sama, dengan bantuan penyulitan asimetri, kunci simetri ditubuhkan, yang akan digunakan untuk semua komunikasi berikutnya. Penyulitan simetri adalah lebih pantas. Seperti yang telah ditulis, ralat sudah berlaku semasa pengesahan pelayan. Mari kita lihat kod yang menyebabkan kelemahan sistem ini.

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)

{
   OSStatus err;
   …

   if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
       goto fail;
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
       goto fail;
       goto fail;
   if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
       goto fail;
   …

fail:
   SSLFreeBuffer(&signedHashes);
   SSLFreeBuffer(&hashCtx);
   return err;
}

Dalam keadaan kedua if anda boleh melihat dua arahan di bawah gagal;. Dan itu adalah batu penghalang. Kod ini kemudian menyebabkan arahan kedua dilaksanakan pada peringkat apabila sijil harus disahkan gagal;. Ini menyebabkan syarat ketiga dilangkau if dan tidak akan ada pengesahan pelayan sama sekali.

Implikasinya ialah sesiapa yang mempunyai pengetahuan tentang kelemahan ini boleh menawarkan iPhone anda sijil palsu. Anda atau iPhone anda, anda akan fikir anda berkomunikasi disulitkan, sementara terdapat penyerang antara anda dan pelayan. Serangan sedemikian dipanggil serangan man-in-the-middle, yang secara kasarnya diterjemahkan ke dalam bahasa Czech sebagai serangan lelaki-di-tengah nebo lelaki antara. Serangan menggunakan kecacatan khusus ini dalam OS X dan iOS hanya boleh dilaksanakan jika penyerang dan mangsa berada dalam rangkaian yang sama. Oleh itu, adalah lebih baik untuk mengelakkan rangkaian Wi-Fi awam jika anda belum mengemas kini iOS anda. Pengguna Mac masih harus berhati-hati tentang rangkaian yang mereka sambungkan dan tapak yang mereka lawati pada rangkaian tersebut.

Ia adalah di luar kepercayaan bagaimana ralat maut seperti itu boleh masuk ke dalam versi akhir OS X dan iOS. Ini mungkin ujian yang tidak konsisten terhadap kod yang ditulis dengan buruk. Ini bermakna kedua-dua pengaturcara dan penguji akan membuat kesilapan. Ini mungkin kelihatan tidak mungkin untuk Apple, dan spekulasi muncul bahawa pepijat ini sebenarnya adalah pintu belakang, yang dipanggil. pintu belakang. Bukan tanpa alasan mereka mengatakan bahawa pintu belakang yang terbaik kelihatan seperti kesilapan yang halus. Walau bagaimanapun, ini hanyalah teori yang tidak disahkan, jadi kami akan menganggap bahawa seseorang hanya melakukan kesilapan.

Jika anda tidak pasti sama ada sistem atau penyemak imbas anda kebal terhadap pepijat ini, lawati halaman tersebut gotofail.com. Seperti yang anda boleh lihat dalam imej di bawah, Safari 7.0.1 dalam OS X Mavericks 10.9.1 mengandungi pepijat, manakala dalam Safari dalam iOS 7.0.6 semuanya baik-baik saja.

Sumber: iMore, Reuters
.