Apa gangguan atau masalah nyata yang dapat terjadi ketika tanda tangan digital dari aplikasi Mac rusak?
Aplikasi pada Mac dapat ditandatangani secara digital. Ketika tanda tangan entah bagaimana rusak, saya tahu beberapa aplikasi mungkin memperhatikan itu. Tapi saya tidak tahu secara detail ini hanya gangguan atau benar-benar merusak:
Firewall OS X mungkin tidak dapat mengatur tanda tangan ad hoc dengan benar, menyebabkan seseorang diminta berulang kali, "Apakah Anda ingin aplikasi '[..]' menerima koneksi jaringan yang masuk?"
Aplikasi yang diizinkan oleh Kontrol Orang Tua mungkin tidak lagi berjalan?
Akses Keychain mungkin rusak?
Beberapa mengatakan pembaruan perangkat lunak Apple mungkin gagal. Jika benar, maka saya ingin tahu apakah ini memang tergantung pada tanda tangan Penandatanganan Kode, atau akan disebabkan oleh beberapa hash yang tidak cocok untuk seluruh aplikasi, atau informasi dari file BOM .
Informasi latar belakang lainnya di bawah ini.
Detail penandatanganan kode dapat ditampilkan menggunakan:
codesign --display -vv /Applications/iTunes.app/
... yang akan menghasilkan sesuatu seperti berikut (tetapi tidak akan memperingatkan tentang modifikasi):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
Tanda tangan dapat divalidasi menggunakan:
codesign --verify -vv /Applications/iTunes.app/
Yang akan menghasilkan:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... atau (bahkan ketika hanya menaruh beberapa file tambahan di folder aplikasi ./Contents/Resources):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... atau (mungkin lebih buruk dari pesan di atas):
/Applications/iTunes.app/: code or signature modified
Penandatanganan kode kembali ke OS 9 atau sebelumnya, tetapi implementasi saat ini diperkenalkan di 10.5 Leopard. Ars Technica menulis :
Penandatanganan kode mengikat identitas yang dapat diverifikasi secara kriptografis ke kumpulan kode dan memastikan bahwa setiap modifikasi pada kode itu terdeteksi. Tidak ada jaminan dibuat tentang pihak-pihak yang terlibat. Misalnya, jika Anda mengunduh aplikasi yang ditandatangani oleh Acme Inc., Anda tidak dapat membuktikan apa-apa tentang hal itu kecuali bahwa itu berasal dari entitas yang sama yang mengklaim sebagai Acme Inc. terakhir kali Anda mengunduh sesuatu dari situs web mereka.
Contoh ini sebenarnya menyoroti aplikasi teknologi yang paling berguna dari perspektif konsumen. Saat memutakhirkan aplikasi Mac OS X hari ini [di 10.4 Tiger, AvB], pengguna sering diminta untuk memverifikasi ulang bahwa aplikasi ini diizinkan untuk mengakses Keychain untuk mengambil nama pengguna dan kata sandi. Ini sepertinya fitur keamanan yang bagus, tetapi yang dilakukan adalah melatih pengguna Mac untuk mengklik "Selalu Izinkan" setiap kali muncul. Dan sungguh, apa yang akan dilakukan rata-rata pengguna, menjalankan executable melalui disassembler dan secara manual memverifikasi bahwa kode itu aman?
Aplikasi yang ditandatangani, di sisi lain, secara matematis dapat membuktikan bahwa itu memang versi baru dari aplikasi yang sama dari vendor yang sama yang sebelumnya Anda percayai. Hasilnya adalah kotak dialog yang berakhir meminta Anda untuk mengkonfirmasi pilihan yang keselamatannya Anda tidak memiliki cara yang masuk akal untuk memverifikasi.
Untuk firewall di 10.5 Leopard, Apple menjelaskan :
Saat Anda menambahkan aplikasi ke daftar ini, Mac OS X menandatangani aplikasi secara digital (jika belum ditandatangani). Jika aplikasi tersebut kemudian dimodifikasi, Anda akan diminta untuk mengizinkan atau menolak koneksi jaringan yang masuk. Sebagian besar aplikasi tidak mengubah diri mereka sendiri, dan ini adalah fitur keamanan yang memberi tahu Anda tentang perubahan tersebut.
[..]
Semua aplikasi yang tidak ada dalam daftar yang telah ditandatangani secara digital oleh Otoritas Sertifikat yang dipercaya oleh sistem (untuk tujuan penandatanganan kode) diizinkan untuk menerima koneksi yang masuk. Setiap aplikasi Apple di Leopard telah ditandatangani oleh Apple dan diizinkan untuk menerima koneksi masuk. Jika Anda ingin menolak aplikasi yang ditandatangani secara digital, Anda harus terlebih dahulu menambahkannya ke daftar dan kemudian secara eksplisit menolaknya.
Dalam Snow Leopard 10.6, yang terakhir dibuat lebih eksplisit (dan dapat dinonaktifkan) sebagai "Secara otomatis mengizinkan perangkat lunak yang ditandatangani untuk menerima koneksi masuk. Memungkinkan perangkat lunak yang ditandatangani oleh otoritas sertifikat yang sah untuk menyediakan layanan yang diakses dari jaringan".
(Dalam 10.6, opsi 10.5.1 "Izinkan semua koneksi masuk", "Hanya izinkan layanan penting" dan "Tetapkan akses untuk layanan dan aplikasi tertentu" telah diubah menjadi pilihan untuk "Blokir semua koneksi masuk", atau daftar dari aplikasi dan opsi yang diizinkan "Secara otomatis mengizinkan perangkat lunak yang ditandatangani untuk menerima koneksi masuk" dan "Aktifkan mode siluman". Sebelum pembaruan 10.5.1 , "Izinkan hanya layanan penting" yang sebenarnya disebut "Blokir semua koneksi masuk".)
Untuk aplikasi (Apple) yang entah bagaimana memiliki tanda tangan aslinya rusak, tanda tangan ad hoc ini entah bagaimana mungkin tidak bertahan, dan diketahui telah menyebabkan masalah bagi configd, mDNSResponder dan racoon.
Jawaban:
Contoh penandatanganan kode akan 'memecah' aplikasi:
Sumber: Daftar Mailing Apple dan Irreality Jaharmi
sumber
Apa yang dapat saya katakan adalah Candybar, aplikasi penyesuaian ikon yang digunakan oleh cukup banyak orang, memecah tanda tangan digital dari setidaknya Finder dan Dock (dan mungkin beberapa aplikasi sistem inti lainnya) karena ia mengubah file sumber daya, dan sejauh ini tidak ada telah dilaporkan sebagai masalah karena ini. Jadi pengambilan sampel in-the-wild menggunakan komponen OS inti akan mengatakan - tidak banyak!
EDIT: di sini adalah hasil dari memeriksa tanda tangan kode saya untuk Dock saya di Snow Leopard:
sumber
Penjelasan agak rinci tentang penandatanganan kode di Snow Leopard disediakan dalam ulasan Snow Leopard ars technica . Sejauh yang saya tahu, melanggar penandatanganan kode tidak akan merusak apa pun. Namun, itu akan menyebabkan aplikasi menjadi tidak dipercaya yang berarti harus memverifikasi lebih banyak tindakan mereka.
sumber
Saya sedang memperbaiki Izin Disk saya tempo hari (dari Disk Utility), dan mendapat peringatan ini:
Jadi ada sesuatu yang akan terjadi. Saya tidak tahu seberapa penting itu.
sumber
codesign --verify
memang menunjukkan tanda tangan yang rusak?Implementasi penandatanganan kode saat ini cukup ompong dan mungkin bergegas keluar pintu untuk kepentingan pengembang iPhone. Mudah-mudahan itu akan menjadi wajib di beberapa titik di masa depan, dan mudah-mudahan itu akan menjadi jauh lebih mudah dan lebih murah pada saat itu juga.
sumber