Penandatanganan Kode Ad-Hoc
Untuk aplikasi pihak ketiga dan binari yang Anda kompilasi sendiri, dan yang membutuhkan penandatanganan kode, gunakan tanda tangan kode ad hoc .
- Saya mengasumsikan aplikasi tidak akan berjalan tanpa tanda tangan;
- Saya mengasumsikan aplikasi tidak akan didistribusikan;
- Saya berasumsi Anda tidak peduli tentang identitas tanda tangan yang valid.
Tanda tangan ad-hoc tidak memberikan manfaat keamanan yang andal. Ini dapat digunakan untuk menentukan apakah aplikasi telah diubah dan dapat digunakan untuk menerapkan batasan keamanan, seperti hak, untuk suatu aplikasi.
Tanda tangan ad-hoc akan divalidasi codesign
tetapi tidak spctl
. Ini mungkin atau tidak masalah tergantung pada biner yang ditandatangani. Untuk aplikasi dan executable, ini tidak menjadi masalah karena spctl
tidak dijalankan pada binari yang dibuat secara lokal.
Mengapa Kode Ditandatangani?
Mengenai pertanyaan yang disempurnakan:
Bagaimana saya harus menangani kode sumber yang tidak ditandatangani yang saya kompilasi sendiri, karena saya tidak mengharapkan kontributor untuk selalu dapat, atau ingat untuk, menandatangani kode mereka, terutama ketika menyangkut kontribusi kecil untuk proyek open source dengan banyak kontributor.
Untuk sebagian besar aplikasi yang dikompilasi sendiri, tidak perlu penandatanganan kode. Ini mengasumsikan Anda mempercayai kode aplikasi. Pada macOS, Anda dapat membuka aplikasi yang tidak tepercaya dari Finder, lihat Apple Membuka aplikasi dari pengembang yang tidak dikenal .
Jika Anda tidak mempercayai kode atau pengembang, jangan kompilasi atau jalankan aplikasi.
Tanggung jawabmu
Penyedia kode sumber tidak bertanggung jawab atau berkewajiban untuk menyediakan kode biner yang ditandatangani kode pra-dibangun. Disusun sendiri, semua penandatanganan kode adalah pilihan dan tanggung jawab Anda.
Apple meminta pengiriman ke App Store mereka untuk ditandatangani kode.
Apple meminta pengembang di luar App Store menandatangani kode mereka, tetapi belum diwajibkan.
Dalam kedua kasus, hanya binari terakhir yang ditandatangani. Kode sumber dan sumber daya asli tidak ditandatangani.
Kode Sumber Tidak Ditandatangani
Kode sumber itu sendiri tidak dapat berupa kode yang ditandatangani dengan cara yang berarti untuk macOS. File sumber dan kode dapat ditandatangani secara digital, seperti file lainnya, tetapi ini tidak berdampak pada bagaimana aplikasi atau biner yang dihasilkan diperlakukan oleh macOS.
Cara Kode Ad-Hoc Menandatangani Aplikasi Mac
Untuk menandatangani aplikasi pada macOS dengan tanda tangan ad-hoc, atur tanda identitas -s
ke -
:
codesign --force -s - </path/to/application>
Semua aturan lain, persyaratan, dan permutasi dari codesign
perintah tetap sama.
Bendera --force
digunakan di sini untuk menimpa tanda tangan yang ada.
Anda mungkin perlu menambahkan --deep
tanda pada codesign
perintah untuk menandatangani sub-sumber daya seperti kerangka kerja dan layanan yang disematkan.