国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java 安全性的演變和理念

2019-11-18 12:22:11
字體:
來源:轉載
供稿:網友

  本系列文章將提供對網絡安全的一般了解,以及開發人員所必需把握的 java 編程語言的獨特性能。在后續的連載中,將討論 Java 平臺安全性的設計和演變,以及不同的 Java 安全性 API。今后的文章還將討論 Java 2 PlatFORM,EnterPRise Edition (J2EE) 中的安全特性,J2EE 正迅速變為 .com 平臺的首選。
  
  雖然,深入了解密碼學對讀者的數學水平來說是一個挑戰,但第一篇文章概述的是網絡安全和密碼學的基本概念,而這些是非常簡單,極易把握的。又:請參閱討論 AES 和密鑰長度對安全性的重要性的專題。
  
  在最近的幾十年內,計算模型發生了巨大的變化,由于這些變化,出現了對大規模電子商務與電子交易系統應用程序安全的更大需求,這正如最近對幾個受歡迎站點的大量拒絕服務 (DoS) 攻擊所表明的那樣。尤其是對于 Java 團體,隨著 Java 作為因特網編程的事實上的標準平臺出現,安全移動 Java 代碼的能力已成為基本要求。
  
  本文是系列文章中的第一篇,討論計算機安全和密碼學的一般概念。雖然可移動代碼并不是一個革命性的概念,但是 Java 和因特網給計算機安全帶來了一些不同平常的挑戰。Java 體系結構的演化及其對安全的影響、不同的安全 API 和工具軟件以及 applet 安全,等等,將在隨后的文章中討論。
  
  此安全性論文系列并不打算提供計算機安全問題的綜合指南。計算機安全是一個多層面的問題,它涉及若干學科、部門和文化。技術投資后,接著就應該著手培訓、嚴格的策略強制執行和總體安全策略的定期審查。
  
  注:有關算法進展的具體信息,請參閱專題“二十一世紀的加密算法”;有關密鑰長度在安全性中的重要性的討論,請參閱專題“密鑰的長度是否重要?”。
  
  什么是計算機安全?
  要從總體上理解什么是計算機安全,有必要考慮一下安全在日常生活中意味著什么。我們將看到,日常生活中的一般安全規則同樣適用于計算機安全。
  
  計算機安全的局限性
  有沒有絕對計算機安全這樣的事情?一句話,沒有這樣的事情。術語安全系統是一個不恰當的名稱,因為它暗示了系統要么是安全的,要么是不安全的。安全實際上是一種平衡。假如提供的資源是無限的,則任何形式的安全都能遭到破壞。盡管攻擊者可用來實施攻擊的資源越來越多,但在現實世界中,這些資源仍然是有限的??紤]到這一點,我們應該這樣來設計所有系統:讓攻擊者為破壞這些系統所付出的,遠遠大于破壞之后他們所能得到的。
  
  端到端的安全
  什么是端到端的安全?在一個多層系統中,每一層都應該有其自身的安全,并且與其他層協調一致。為匯集在一起的不同系統和中間件設計安全,是一個相當大的挑戰。簡單地說,系統安全的程度僅相當于最弱的一環的安全程度;除非您按端到端的觀點考慮安全,否則安全隨時可以遭到破壞。
  
  簡單性
  一個復雜的安全設計會起作用嗎?乍看起來,制止未授權用戶訪問系統的最佳方法也許是,設計一個非常復雜的安全方案,但事實并非如此。不僅設計復雜的安全系統的高成本使人不敢問津,而且,要是這種安全系統太復雜了,恐怕連合法用戶也難以進入。另一方面,簡單系統更輕易理解,也更輕易分析。
  
  好的系統設計需要安全
  有可能對安全進行翻新嗎?答案是,這幾乎是不可能的。在很多情況下,翻新安全而不必重新設計系統的實質性部分,可能是不現實的。在幾乎所有的情況下,翻新的成本非常昂貴。因此,安全從來不應是事后考慮的事情 -- 從一開始它就必須是系統設計的不可分割的一部分。
  
  計算機安全的基礎知識
  了解這樣一些內容是有用的:計算機安全的防御對象、相應的防御機制,以及與計算機安全有關的不同術語。
  
  威脅
  威脅 -- 對計算機安全的攻擊 -- 大致可以分為以下幾類:
  
  機密性攻擊:利用加密算法中的弱點或以其他方式,試圖竊取機密信息。
  完整性攻擊:出于自私或惡意而試圖修改信息。應該注重的是,完整性攻擊也可以是偶然的。
  可用性攻擊:試圖中斷系統的正常運行。可用性攻擊又稱為拒絕服務 (DoS) 攻擊,后者是最近流行的術語。
  幾種攻擊歸屬于上面提到的一個或幾個類別。示例包括:
  
  暴力攻擊 通常指搜索每一把鑰匙,直到用正確的那一把打開門為止。盡管這似乎是一項代價昂貴的操作,但實際上,通過使用專門的工具對搜索進行仔細安排,是可能的。
  特洛伊木馬攻擊 以敵方不易察覺的方式插入一個內線。計算機病毒就是常見的特洛伊木馬攻擊的例子。
  轉接攻擊 (person-in-the-middle attack) 在雙方不知道的情況下,中途截取他們的通訊信息,而雙方以為他們在正常通訊。
  其他的攻擊包括:生日攻擊、字典攻擊、會合攻擊 (meet-in-the-middle attack) 等。(更全面的討論,請參閱參考資料中 BrUCe Schneier 的 Applied Cryptography。)
  
  防護物
  為抵御對安全的威脅,有各種各樣的保護機制。在歷史上,防御機制曾經包括設置某種“圍墻”或“邊界”,通常稱為周邊防御 (perimeter defense)。
  
  防火墻,周邊防御的一個相當成功的示例,將內部(專用)網絡與外部(公用)網絡分隔開,并為公司策略提供中心控制點。然而,防火墻日益答應各種精選形式的通訊 -- 例如 HTTP -- 穿過它。
  
  虛擬專用網絡 (VPN),盡管仍然使用共享網絡,但它提供的安全級別與專用網絡相同,是另一個防護物示例。
  
  密碼學
  密碼學及其相關領域密碼分析學,自身與加密和解密信息的算法設計及分析有關。在下面的幾節中,我們將討論密碼學與安全之間極其重要的關系。
  
  機密性
  機密性是保護數據免受未授權的一個或多個用戶訪問的方法。簡單地說,就是只有預定的消息接收人才能夠弄懂這一消息。
  
  假如您正在與他人交換敏感信息,您希望絕對確保只有預定的消息接收人才可以弄懂此消息,假如落入非預定的人手中,此消息實際上將變成無用的東西。機密性是用某種形式的加密技術來實現的。
  
  認證
  認證過程確認用戶的身份。用戶可以是一個軟件實體,也可以是一個人。委托人是其身份已被驗證的一方,與委托人相關聯的是一組憑證。通常,認證根據一些僅用戶和認證人知道的機密信息 -- 例如口令 -- 來確認身份。除了口令以外,更復雜的安全方案還將諸如智能卡或生物統計法(指紋、視網膜掃描,等等)之類的高級技術用于認證。
  
  一旦建立了認證,在實施中對用戶(或者更一般的說,委托人)的訪問是訪問控制機制控制的。
  
  Kerberos -- 基于密鑰和加密 -- 展示了一種早期認證技術。這種技術使用時間戳 -- 在一個規定的時段內會話保持有效 -- 來實現這一點。為了正常工作,Kerberos 最根本的一點是,假定分布式系統中的時鐘是同步的。
  
  公用密鑰基礎結構 (PKI),代表一種更為普遍的認證解決方案,將在下面的幾節中討論。
  
  Java Authentication and Authorization Service (JAAS) 框架,以基于用戶的認證和訪問控制功能補充 Java2 平臺。JAAS 是 Java 2 Software Development Kit,v 1.3 的標準擴展。
  
  完整性
  比如說您發送一張電子支票。當銀行最終收到該支票時,它需要弄清楚付款金額有沒有被篡改,這就是稱為完整性的安全概念。
  
  不可否認
  在上述的電子支票示例中,假如您確實發送了該支票,就應該沒有辦法再否認它。不可否認提供不可否認的行為證據,如給接收人的數據的原始證實或給發送人的數據收據。
  
  審計和日志
  保存已授予或已拒絕的資源訪問的記錄,可能有助于日后的審計工作。就此目的而言,審計和日志對于防止非法入侵或事后對非法入侵進行分析,是大有用處的。
  
  策略和訪問控制
  安全策略著重控制對保護數據的訪問,安全執行機制應該足夠靈活以執行策略,這一點至關重要。這稱為保持策略與機制相分離。盡管作出該決策的依據可能是,按照委托人身份來授權訪問某一資源,但是,根據角色來治理訪問控制通常更為輕易。每個委托人被映射到唯一的一個角色,以達到控制訪問的目的。通常這樣來實現:用一個列表或矩陣,列舉不同的用戶/角色所擁有的對不同保護資源的訪問權。
  
  Java 2 PlatFORM,Enterprise Edition (J2EE) 使用基于角色的認證來執行其策略??紤]到這一點,在 J2EE 中,業務邏輯的開發人員根據角色來限制對特定功能的訪問。
  
  密碼學:保密書寫的科學
  雖然密碼學和計算機安全是兩個截然不同的主題,但是計算機安全在很多方面都依靠于密碼學。
  
  Java.security 與幾個核心包一起提供了一些 Java 的加密功能。Javax.crypto 是主要的包,它的某些功能部件受出口控制法的控制。此外,javax.net.ssl 包在必要時可用來創建安全套接字傳遞機密信息。
  
  下一步,讓我們了解一些與密碼學有關的概念。
  
  密碼分析學
  密碼分析學,與密碼學正好相反,是解碼或攻擊秘密編碼信息而無須訪問密鑰的藝術。密碼分析學已經使用理論性攻擊發現了許多算法中的安全漏洞,并導致了算法的廢棄或重大修改。密碼分析學在分析和驗證算法,使算法更加安全方面,起著要害性作用。
  
  密碼學算法
  有幾種算法可以加密信息。一種簡單的算法可能要將消息的字符輪換 13 個位置 -- 稱為 rot13。雖然 rot13 是不安全的(因為原始消息很輕易解密),但是它仍然普遍用于雖不安全但究竟是已加密了的消息傳送。
  
  假如以 Kerckhoff 在十九世紀所做的工作為基礎,則密碼系統的安全應該完全基于密鑰的保密,而不是基于算法的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六枝特区| 察隅县| 宁夏| 武功县| 和田县| 买车| 灵石县| 卓资县| 漾濞| 沾益县| 安陆市| 北京市| 隆安县| 威远县| 桓仁| 神池县| 平罗县| 江津市| 恭城| 临洮县| 仪陇县| 绥棱县| 淮南市| 永宁县| 金溪县| 宜兰县| 颍上县| 九江县| 苗栗县| 马边| 涡阳县| 上栗县| 桐城市| 宜黄县| 大悟县| 贵南县| 云阳县| 察哈| 诸暨市| 平南县| 濉溪县|