Bagaimana saya bisa menentukan apakah file .app tertentu ditandatangani

45

Dapatkan Info di .app tidak menghasilkan informasi tanda tangan. Pada Windows misalnya, klik kanan> properti akan memperlihatkan siapa yang menandatangani file.

Bagaimana cara mendapatkan info itu untuk .app yang diberikan di OS X?

JasonGenX
sumber
Apa yang terjadi jika Anda melihat di Contents / _CodeSignature ??
GEdgar

Jawaban:

51

Anda dapat memeriksa file dengan mengeluarkan perintah berikut di Terminal:

 codesign -dv /Applications/Whatever.app

Ada alat gratis yang mengimplementasikan fungsi perintah codesign dan memperluasnya dengan GUI yang bagus. Itu disebut RB App Checker (di App Store) serta situs yang menggambarkan program http://brockerhoff.net/RB/AppCheckerLite/

Saya tidak membutuhkan apa-apa selain dua alat ini untuk memeriksa penandatanganan kode pada OS X jadi semoga cocok dengan kebutuhan Anda. Periksa AppChecker jika Mac Anda tidak memiliki kode tanda (beberapa yang lebih tua membutuhkan Xcode untuk mendapatkan alat itu sebelum gatekeeper dikirim).

Mengenai cara Anda tahu, OS akan menampilkan aplikasi yang tidak terpercaya sebagai redup dan dengan ikon umum hingga proses gatekeeper menyetujui bundel untuk dijalankan - tetapi kode itu masih bisa ditandatangani sehingga Anda tidak dapat mengandalkan petunjuk visual untuk selalu memberi tahu jika beberapa kode telah atau belum ditandatangani - terutama mengingat bahwa gatekeeper dapat dinonaktifkan pada Mac yang diberikan.

bmike
sumber
16
-dvvv menambahkan baris untuk otoritas sertifikat, tipe hash, dan hash literal. -dv (atau -dvvv) tidak benar-benar muncul jika tanda tangan valid atau tidak valid. -v menunjukkan jika tanda tangan valid, dan jika tidak, -vv juga mencetak file yang dimodifikasi.
Lri
1
@Lri Otoritas sertifikat terdaftar hanyalah string teks. Siapa pun dapat membuat otoritas sertifikat apa pun yang mereka sukai dengan nama apa pun. Jadi selain itu, bagaimana kita memeriksa bahwa hash sesuai dengan CA yang dapat dipercaya? Apakah kita menginginkan Kandidat CDHash, atau CDHash? Apakah ada di antara ini yang menetapkan bahwa tidak ada otoritas root palsu atau sejenisnya yang diinstal?
nealmcb