Di Mountain Lion, saya tahu bahwa beberapa aplikasi, termasuk semua aplikasi di Mac App Store ditandatangani secara digital oleh pengembang, sehingga jika diubah, tanda tangan tidak akan cocok, dan itu akan memunculkan segala macam kesalahan (dan situasinya). akan meningkat dengan rilis berikutnya dari sistem operasi ...).
Pertanyaan saya adalah bagian bundel .app apa yang dicakup tanda tangan? Jika apa-apa di Appname.app/Contents
perubahan (termasuk metadata, seperti tanggal diubah untuk Contents
folder), apakah itu istirahat tanda tangan? Apakah ini hanya biner Contents/MacOS
? Apakah daftar. Termasuk dalam tanda tangan? Itu Resources
? Sebagai pengguna akhir, apa yang bisa saya retas (jika ada) tanpa melanggar tanda tangan?
macos
code-signing
Daniel
sumber
sumber
Jawaban:
TL; DR Terserah pengembang untuk memilih bagian mana dari aplikasi yang ditandatangani dan apakah merusak bagian itu menghasilkan tindakan apa pun saat aplikasi diluncurkan. Anda harus menggunakan coba-coba untuk mencari tahu berdasarkan aplikasi demi aplikasi.
Sebagian besar tergantung pada pengembang untuk memutuskan komponen mana dalam bundel aplikasi mereka yang diwakili dalam segel yang ditandatangani sebelum mereka mengirimkan aplikasi mereka. Apa pun yang ada di segel secara efektif merusak-bukti karena sebagian besar tidak mungkin untuk memodifikasi hal-hal ini tanpa mengubah tanda tangan hash mereka. Tetapi itu tidak berarti Anda tidak dapat merusaknya.
Panduan Pengembang Apple mengatakan ini tentang apa yang harus Anda tandatangani:
Juga dari sini , tidak selalu benar bahwa memiliki tanda tangan yang tidak valid untuk suatu aplikasi berarti ia akan gagal diluncurkan. Halaman itu mengatakan:
Aplikasi dapat memilih untuk mengizinkan modifikasi.
Taruhan terbaik Anda adalah pendekatan coba-coba dengan aplikasi apa pun yang Anda coba modifikasi. Mungkin berhasil, mungkin juga tidak. Tidak ada jawaban yang selalu benar yang bisa diberikan.
Jika aplikasi telah ditandatangani, Anda dapat mencari
Contents/CodeResources
file atauContents/_CodeSignature/CodeResources
file dalam bundel. File ini mencantumkan semua komponen yang ditandatangani dan nilai hash yang diharapkan dalam bundel. Ini adalah tempat yang baik untuk mulai memahami bagian aplikasi apa yang dianggap cukup penting oleh pengembang untuk diperhatikan.sumber
Meskipun pertanyaan itu merujuk Mountain Lion secara khusus, ada perubahan penting dalam versi MacOS yang lebih baru. Pada macOS 10.11 dan yang lebih baru, tanda tangan yang tidak mencakup seluruh kode ditolak.
Lihat Catatan Teknis TN2206 - Kedalaman Penandatanganan Kode macOS .
sumber