Java語言從一開始就有安全上的考慮,如何保證物聯網下載的Java程序是安全的。
Java安全模型進化
Java將執行程序分爲本地和遠程兩種,本地默認是可信的,而遠程被看作是不授信的。對於授信的本地代碼,可以訪問一切本地資源,而對於非授信的遠程代碼,則做權限的限定。
Java的安全機制在不同的JDK版本逐步演化,
-
JDK 1.0 安全模型
在早期的Java實現中,使用沙箱機制,將Java代碼限定在特定的運行範圍內,嚴格限制對本地系統的資源訪問。
以上機制,遠程代碼無法訪問本地系統的文件,但實際往往存在這樣的需求, 在Java 1.1中,增加了安全策略,運行用戶指定代碼對本地資源的訪問權限。 -
JDK1.1 安全模型
-
JDK 1.2安全模型
增加了代碼簽名, 不管是本地代碼還是遠程代碼,需要按照用戶的安全策略設定,由類加載器加載到虛擬機中權限不同的運行空間。