計算機系統的核心是操作系統,因此,操作系統的安全與否直接決定著信息是否安全。是開放源代碼的操作系統安全還是不開放源代碼的操作系統安全?這一點在業界有不同的聲音。但有一點可以肯定,開放源代碼有利於迅速地對缺乏安全性的代碼進行及時修改,以達到安全要求。 由於Linux的開放性,使得我們可以通過修改系統源代碼,結合現有的系統安全技術以及加入我們自有的加密算法,構建一個安全的Linux操作系統。這裡需要解決以下12個方面的問題。 1. 身份識別和認證 身份識別和認證是信息系統的最基本要求。一般的Linux系統采用用戶名和口令對的形式來進行身份識別和認證。這包含了一些不安全因素,比如系統的密碼文件被竊,入侵者采用窮舉的方式侵入等。我們可以通過加入其他認證形式來提高系統身份識別和認證的安全性,例如使用公鑰算法,將用戶的私鑰存於用戶隨身攜帶的硬件介質上(如IC卡、USB鑰匙),系統只保留用戶認證信息中的公鑰信息。這樣,即使公鑰信息被竊,入侵者也不可能算出私鑰,攻入系統。 2. 基本的入口控制 通過提供明顯的警告信息,用戶登錄時相關信息的顯示,以及對登錄失敗次數的限制,也能有效的防范入侵者。 3. 安全的審計 改善Linux原有的審計功能,對用戶、進程及其他客體行為進行完善的跟蹤審計。首先,審計要保證本身的審計信息不會被篡改或者刪除。其次,系統要能夠對所有的敏感操作進行記錄。 4. 訪問控制 在Linux系統中加入必須的訪問控制的實現,比如強制訪問控制(MAC)以及自主訪問控制(DAC)。自主訪問控制允許系統的用戶對於屬於自己的客體,按照自己的意願,允許或者禁止其他用戶訪問。目前Linux提供類似傳統UNIX系統的“屬主用戶/同組用戶/其他組”權限保護機制。為了對用戶信息提供更好的保護,應能夠為用戶提供用戶級的控制力度。使自主存取控制更接近真實的情況。強制存取控制是由系統管理員進行的安全訪問權限設置,提供比自主存取控制更嚴格的訪問約束。 5. 加密文件系統 通過在系統中加入加密文件系統機制,保證系統的數據安全,即使系統的存儲介質被竊,在入侵者沒有取得密鑰的情況下,數據依然是不可讀的。Linux的開放源代碼為我們了解認識Linux的文件系統構架成為可能,也方便了我們對文件系統進行修改,這就使得加密文件系統的實施成為可能。 6. 完整性保護 通過對文件和文件系統的跟蹤及維護相應的數據庫,我們可以對系統中的變化一清二楚,在系統的某些數據發生非法的變化時,我們能夠迅速地發現,從而避免入侵者後門程序的存在。這種保護與備份機制相結合,使系統能夠迅速地進行自我恢復。 7. 入侵攻擊檢測與防范 采用對敏感資源、IP或者端口進行監測等辦法,可以及時地發現入侵行為,並采取相應的措施。比如大量半開的TCP連接,源地址為非法IP的外部數據包,對138和139端口的操作等等,都有可能是入侵的特征。我們通過編寫相應的代碼,和系統有機地結合在一起,就能有效地防范這類入侵。 8. 提供完善的安全API 在系統中為用戶提供一套完善的安全API,有利於用戶結合系統實現自己的安全應用。 9. 修改系統中的服務,加入安全的機制 升級系統服務版本,修改服務中的安全漏洞。 10.提供安全的服務和應用 比如支持SSL的Web服務、SSH、IPSEC、支持PGP的郵件程序等。 11.提供完善的系統安全掃描與檢測工具 在系統中提供完善的安全掃描與檢測工具,管理員可以經常對系統進行安全檢測,及時發現安全隱患。 12.采用安全的加密算法 采用更長密鑰(128位以上)的公認安全加密算法來實現系統中的加密應用。 開放源代碼的Linux為我們實現安全的操作系統平台提供了新的機遇。通過對基於Linux的安全操作系統的研究,將有助於我們實現自有版權的安全操作系統,構建國人自己的信息安全平台。