1. 程式人生 > >Linux與Windows的安全性比較

Linux與Windows的安全性比較

  開放原始碼、共享原始碼 

  Linux和Windows對於程式碼透明度這一哲學問題上是完全不同的。Linux符合GNU通用公用許可證,使用者可以拷貝、複製並分發原始碼。Windows使用的是封閉原始碼,因此微軟的安全方法被稱為"通過隱藏來保證安全"。2001年,微軟為了響應客戶與共享原始碼計劃的要求,提供了對Windows原始碼的訪問權。現在,共享原始碼計劃有一百萬的參與者,可以訪問的原始碼包括Windows2000、WindowsXP、Windows Server2003、Windows CE 3.0、Windows CE 、C#/CLI實現和ASP.NET與Visual Studio.NET。共享原始碼計劃許可證的物件包括公司使用者、政府、合作者、學術機構與個人。 

  微軟的共享原始碼計劃政策屬於"可看但不可修改",例外的情況是Windows CE共享原始碼許可證計劃。對於公司來說,可以將基於Windows CE的裝置和解決方案推向市場。這是微軟共享原始碼計劃下,源裝置製造商(OEM)、半導體提供商、系統整合商可以完全訪問Windows CE原始碼的唯一專案。所有許可證持有者都有對原始碼的完全訪問權,當然可以修改程式碼,但只有OEM才能釋出對基於WinCE裝置的修改。所有其他的共享原始碼許可證持有者,如果要訪問該專案不允許的原始碼,需要向Redmond.Wash的微軟總部請示。 

  某些使用者認為共享原始碼計劃對於除錯程式會有幫助,微軟要求編譯的時候必須在微軟總部,這不得不說是一個很大的限制。儘管微軟想盡力增加透明,如果無法編譯,就很難確定原始碼在真實的IT環境中是否能正常工作。限制使用者修改並編譯Windows的原始碼,降低了人們訪問Windows共享原始碼並尋找安全漏洞的熱情。 

  資料中心和桌面下Linux的安全收益
 

  在未來的12個月裡,Linux將加強在資料中心的份額,並試圖衝擊微軟在桌面上的壟斷。這很大程度上是受益於Linux2.6版核心的新特性與新功能。有了Linux v2.6,安全框架現在已經模組化了。在這種模型下,Linux核心的所有方面都提供了細粒度的使用者訪問控制,而以前的版本的核心允許超級使用者完全控制。現在的實現仍然支援root完全訪問系統,但完全可以建立一個不遵循該模型的Liinux系統。 

  Linux v2.6核心的一個主要變化,就是新增的Linux安全模組(LSM),使用者不需要打核心補丁就能為Linux增加更多的安全機制。新版核心,在LSM上建立了多個訪問控制機制,其中包括美國國安局(NSA)的Securiy Enhanced Linux(SELinux)。由於國安局對作業系統安全與強制訪問控制的興趣,產生了SELinux。國安局的研究人員正在開發Linux的安全模組,可以支援2.6核心的型別加強、基於腳色的訪問控制、多層次安全。SELinux使用了命為"域型別強制"的安全模型,可以將應用程式互相隔離,同時也與基本的作業系統隔離,從而限制入侵後程序或者網路服務造成的影響。 

  Linux的2.6核心中已經加入了對SELinux的細粒度布林值標籤的支援,其他的廠商也開始利用國安局的SELinux。例如,Immunix提供了一些列產品,包括StackGuard和子域StackGuard模組,可以配置程序只使用某些系統呼叫。RedHat聲稱SELinux將在RedHat企業伺服器4.0的安全架構上起重要的作用。 

  今天,Linux的核心中已經有一個功能強大、靈活的強制訪問控制子系統。這個系統強制隔離有機密和完整性要求的資料,因此任何潛在的破壞,即時是由超級使用者程序所造成的,都被Linux系統限制起來了。 

  Linux v2.6還提供了對加密安全的支援,包括了IPSec使用的加密API。這樣,在網路和儲存加密時就可以使用多種演算法(例如:SHA-1、DES、三重DES、MD4、HMAC、EDE、和Blowfish)。Linux對IPSec IPv4和IPv6協議的支援是一個很大的進步。由於安全抽象到了協議層,使用者程式對潛在攻擊程式的脆弱性有所降低。密碼加密模組目前還不是Linux核心的一部分,如果Linux真的實現了這樣的特性,就可以阻止未簽名的模組被核心訪問。