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.
Menandatangani program sendiri tidak merusak tujuan penandatanganan kode. Tujuan umum dari penandatanganan kode adalah untuk memungkinkan verifikasi bahwa program tersebut adalah salinan yang tidak dimodifikasi yang awalnya dibuat oleh entitas tertentu (orang atau perusahaan). Ketika Anda menandatangani sendiri program hanya untuk dijalankan di komputer Anda, Anda memungkinkan sistem untuk memeriksa apakah memang Anda yang membuat biner, dan belum dimodifikasi oleh orang lain.
Perbedaan kualitatif antara menandatangani sendiri aplikasi biner, dan hanya membolehkan aplikasi dari pengembang yang tidak dikenal di GateKeeper adalah bahwa dalam kasus sebelumnya Anda mengizinkan satu aplikasi spesifik untuk dijalankan - sedangkan yang kedua, Anda membuka kemungkinan bahwa Anda dapat membuka banyak aplikasi yang berbeda hanya dengan mengklik kanan pada mereka dan memilih Buka. Yaitu lebih membatasi dan dengan demikian agak lebih "aman" dengan menandatangani program khusus sendiri.
Tanggung jawab untuk menandatangani sepenuhnya milik Anda. Pengembang open source tidak dapat menandatangani kode sumber - hanya mungkin untuk menandatangani binari yang dikompilasi. Saat Anda membuat sendiri biner yang dikompilasi, Anda harus menandatanganinya.
Anda dapat mendaftar untuk akun pengembang di situs web Apple yang memungkinkan Anda membuat sertifikat yang dapat digunakan untuk masuk. Jika Anda seorang pengembang dan secara teratur menyusun binari untuk dijalankan di Mac, ini adalah cara yang disukai untuk melakukan sesuatu. Jika ini adalah satu hal yang mungkin tidak akan pernah Anda lakukan lagi, itu mungkin berlebihan untuk menjalani proses ini. YMMV.
Jawaban lain untuk pertanyaan Anda di sini merekomendasikan agar Anda menggunakan penandatanganan ad-hoc untuk biner Anda. Itu tidak akan berhasil. Anda perlu membuat tanda tangan yang valid untuk menjalankan biner dengan GateKeeper pada pengaturan yang paling aman.
sumber
Jika Anda bukan pengembang, maka tidak.
Penandatanganan kode, singkatnya, adalah metode untuk mengatakan Anda (pengembang) adalah siapa yang Anda katakan tentang Anda dan kode tidak berubah sejak Anda terakhir menandatanganinya.
Kedengarannya seperti Penandatanganan Kode Anda yang membingungkan (apa yang diminta oleh Pengembang untuk menerbitkan Aplikasi di App Store) dan Gatekeeper (apa yang melindungi Mac Anda dari memasang perangkat lunak dari pengembang yang tidak dikenal).
Jika Anda mengizinkan Mac Anda menginstal perangkat lunak dari App Store dan pengembang yang teridentifikasi, Anda akan tetap mendapatkan popup yang memberi tahu Anda tentang fakta perangkat lunak akan diinstal
Dan jika itu dari pengembang yang tidak dikenal, Anda akan mendapatkan popup yang sama dengan "ikon peringatan"
Anda masih dapat menginstal perangkat lunak. Ini hanya mekanisme yang memaksa interaksi pengguna untuk benar-benar menginstal perangkat lunak yang memberi Anda lapisan keamanan terhadap malware yang diinstal sendiri.
sumber