2013-01-09 72 views
0

我試圖更好地理解OSX代碼簽名以及它在保護我的軟件方面的優勢。有人能爲我澄清某些問題嗎?簽名應用程序的修改

假設一個應用程序,代碼簽名,但不沙盒

如果黑客修改應用程序的二進制文件的應用程序不再被視爲簽名。但是,它仍然可以正常運行(Lionat會警告用戶應用程序未被代碼簽名)?

假設一個應用程序,代碼簽名沙盒:

如果黑客改變這種情況下,代碼什麼也不會發生呢?他/她能否簡單地刪除權利文件以創建不再有任何沙箱限制的應用程序的未簽名版本?

給定一個簽名,但不包含簽名和沙盒XPC服務幫助沙盒應用是有什麼我可以做,以確保黑客無法創造任何部分的非簽名(和修改)的版本。在我看來,是因爲它目前爲黑客可以執行以下操作:

  • 創建助手的二進制修改後的版本。這個新版本 因此將是非沙盒和非簽名的。

  • 創建主應用程序的二進制修改版本。這個新的 版本因此也將是非沙盒和非簽名的,並且能夠 啓動新版本的幫助器。

我錯了嗎?如果是這樣,爲什麼?

感謝,

回答

1

你基本上是正確的。你需要的是複製保護,這是沒有人知道如何做的(好),這不是代碼簽名或沙箱試圖做的事情。如果您的程序在運行時被接管了,並且做出了它不應該做的事情,那麼沙盒的作用是限制損害。什麼代碼簽名會阻止其他人將程序關閉爲

我故意使用了「他們的程序」。你必須認識到,一旦「你的程序」在別人的計算機上,並且他們開始搞亂它,它就不再是你的了。它們是他們的,他們可以用它做任何他們想做的事情。他們可以刪除部分內容(沙盒等),添加部分(惡意代碼等),更改內容......他們甚至可以編寫一個「全新的」程序,它只是包含程序的一部分(或全部)。

有些事情可以讓你的代碼難以修改/重用,但是沒有人想到如何讓它變得不可能。蘋果沒有嘗試;他們的安全措施針對其他目標。