計算機安全

電腦安全(computer security)是電腦與網路領域的資訊安全(information security)的一個分支。其目的是在保證資訊和財產可被授權使用者正常取得和使用的情況下,保護此資訊和財產不受偷竊,污染,自然災害等的損壞。電腦系統安全是指一系列包含敏感和有價值的資訊和服務的行程和機制,不被未得到授權和不被信任的個人,團體或事件公開,修改或損壞。由於它的目的在於防止不需要的行為發生而非使得某些行為發生,其策略和方法常常與其他大多數的電腦技術不同。

設計層面上的安全

電腦安全技術的基礎是邏輯學。安全性並非是大部分的電腦應用的主要目的,而在設計時就考慮程式的安全性常常會對程式的執行有所限制。

在電腦應用上有四種安全設定,通常會結合使用:

  1. 信任所有軟體都遵守安全策略,但軟體本身不可信。
  2. 信任所有軟體都遵守安全策略,並且該軟體也被證實為可信的
  3. 不信任軟體,但通過不可信的保護機制執行安全策略
  4. 不信任軟體,但通過可信的硬體機制執行安全策略

許多系統無意中使用了以上的第一種設定。由於第二種方法成本昂貴和不確定性,其使用受到很大限制。第一種和第三種方法會導致失敗。第四種方法更具實用性,這是由於它通常基於硬體機制,避免了抽象性和自由性。

設計安全系統有很多技巧和技術。但很少有有效的方法能夠在設計完成後提高安全性。有一種技術能最大程度地執行最小權限原則,即一個實體只能擁有它所需要的權限。在這種方式下,即使攻擊者能夠進入系統的某一部分,也難以進入到其他部分。

另一方面,將系統劃分為小的組件可降低各部分的複雜性,並可以使用定理機器證明(automated theorem proving)來證明關鍵的軟體子系統的正確性。因此,當單一的有特點的特性可以作為關鍵點被分離出,而此特性可被數學評估時,安全的解析解(closed form solution)才會有效。在這種正確性證明不存在時,嚴謹的代碼審查(code review)和單元測試(unit testing)是最好的保證模組安全的方式。

設計時應使用縱深防禦(Defense in depth),即當多於一個子系統被誤用時,系統的完整性和其儲存的資訊才會受損。當對一種安全措施的破壞不會使得對另一種措施的破壞變成更容易時,縱深防禦有效。同時,串行原則表明,幾個簡單的保護措施不能連接成為一個複雜的保護措施。

子系統應被預設在安全設定下,並應儘可能設計為fail secure而非fail insecure。理想地,一個安全系統應當在合法使用者特意地,自由地決定之下才能使其不安全。

另外,安全不應是全有或全無的問題。系統的設計者和操作者應假定安全性的違反是不可避免的。系統活動應有完整的審計紀錄檔,在違反安全性的活動發生後才可確定其機制和程度。遠端儲存審計紀錄檔可保護系統紀錄檔不被侵入者修改。最後,充分公布(full disclosure)有助於在系統漏洞被發現時,儘可能地縮短此安全隱患存在的時間。

安全體系結構

安全體系結構定義為描述安全措施如何放置,如何與整個資訊科技體系結構關聯的設計作品。這些安全控制措施旨在維護系統品質參數,包括機密性,完整性,可用性,問責制,保險性。

保護電腦和資料的硬體機制

輔助電腦安全的硬體為僅基於軟體的電腦安全提供了另一個選擇。由於被損壞時要求物理接入,因此諸如dondle的裝置被認為更安全。


參考文獻

參照

來源

外部連結