- 首頁|
- 網(wǎng)校|
- 焚題庫(kù)|
- APP |
-
微信公眾號(hào)
最近的幾十年內(nèi),計(jì)算模型發(fā)生了巨大的變化,由于這些變化,出現(xiàn)了對(duì)大規(guī)模電子商務(wù)與電子交易系統(tǒng)應(yīng)用程序安全的更大需求,這正如最近對(duì)幾個(gè)受歡迎站點(diǎn)的大量拒絕服務(wù) (DoS) 攻擊所表明的那樣。尤 其是對(duì)于Java 團(tuán)體,隨著 Java 作為因特網(wǎng)編程的事實(shí)上的標(biāo)準(zhǔn)平臺(tái)出現(xiàn),安全移動(dòng) Java 代碼的能力已成為基本要求。
本文是系列文章中的第 一篇,討論計(jì)算機(jī)安全和密碼學(xué)的一般概念。雖然可移動(dòng)代碼并不是一個(gè)革命性的概念,但是 Java 和因特網(wǎng)給計(jì)算機(jī)安全帶來了一些不同尋常的挑戰(zhàn)。Java 體系結(jié)構(gòu)的演化及其對(duì)安全的影響、不同的安全 API 和工具軟件以及 applet 安全,等等,將在隨后的文章中討論。
此安全性論文系列并不打算提供計(jì)算機(jī)安全問題的綜合指南。計(jì)算機(jī)安全是一個(gè)多層面的問題,它涉及若干學(xué)科、部門和文化。技術(shù)投資后,接著就應(yīng)該著手培訓(xùn)、嚴(yán)格的策略強(qiáng)制執(zhí)行和總體安全策略的定期審查。
什么是計(jì)算機(jī)安全?
要從總體上理解什么是計(jì)算機(jī)安全,有必要考慮一下安全在日常生活中意味著什么。我們將看到,日常生活中的一般安全規(guī)則同樣適用于計(jì)算機(jī)安全。
計(jì)算機(jī)安全的局限性
有沒有絕 對(duì)計(jì)算機(jī)安全這樣的事情?一句話,沒有這樣的事情。術(shù)語 安全系統(tǒng)是一個(gè)不恰當(dāng)?shù)拿Q,因?yàn)樗凳玖讼到y(tǒng)要么是安全的,要么是不安全的。安全實(shí)際上是一種平衡。如果提供的資源是無限的,則任何形式的安全都能遭到 破壞。盡管攻擊者可用來實(shí)施攻擊的資源越來越多,但在現(xiàn)實(shí)世界中,這些資源仍然是有限的?紤]到這一點(diǎn),我們應(yīng)該這樣來設(shè)計(jì)所有系統(tǒng):讓攻擊者為破壞這些 系統(tǒng)所付出的,遠(yuǎn)遠(yuǎn)大于破壞之后他們所能得到的。
端到端的安全
什么是端到端的安全?在一個(gè)多層系統(tǒng)中,每一層都應(yīng)該有其自身的安全,并且與其他層協(xié)調(diào)一致。為匯集在一起的不同系統(tǒng)和中間件設(shè)計(jì)安全,是一個(gè) 相當(dāng)大的挑戰(zhàn)。簡(jiǎn)單地說,系統(tǒng)安全的程度僅相當(dāng)于最弱的一環(huán)的安全 程度;除非您按端到端的觀點(diǎn)考慮安全,否則安全隨時(shí)可以遭到破壞。
簡(jiǎn)單性
一個(gè)復(fù)雜的安全設(shè)計(jì)會(huì)起作用嗎?乍看起來,制止未授權(quán)用戶訪問系統(tǒng)的最 佳方法也許是,設(shè)計(jì)一個(gè)非常復(fù)雜的安全方案,但事實(shí)并非如此。不僅設(shè)計(jì)復(fù) 雜的安全系統(tǒng)的高成本使人不敢問津,而且,要是這種安全系統(tǒng)太復(fù)雜了,恐怕連合法用戶也難以進(jìn)入。另一方面,簡(jiǎn)單系統(tǒng)更容易理解,也更容易分析。
好的系統(tǒng)設(shè)計(jì)需要安全
有可能對(duì)安全進(jìn)行翻新嗎?答案是,這幾乎是不可能的。在很多情況下,翻新安全而不必重新設(shè)計(jì)系統(tǒng)的實(shí)質(zhì)性部分,可能是不現(xiàn)實(shí)的。在幾乎所有的情況下,翻新的成本非常昂貴。因此,安全從來不應(yīng)是事后考慮的事情 -- 從一開始它就必須是系統(tǒng)設(shè)計(jì)的不可分割的一部分。
計(jì)算機(jī)安全的基礎(chǔ)知識(shí)
了解這樣一些內(nèi)容是有用的:計(jì)算機(jī)安全的防御對(duì)象、相應(yīng)的防御機(jī)制,以及與計(jì)算機(jī)安全有關(guān)的不同術(shù)語。
威脅
威脅 -- 對(duì)計(jì)算機(jī)安全的攻擊 -- 大致可以分為以下幾類:
機(jī)密性攻擊:利用加密算法中的弱點(diǎn)或以其他方式,試圖竊取機(jī)密信息。
完整性攻擊:出于自私或惡意而試圖修改信息。應(yīng)該注意的是,完整性攻擊也可以是偶然的。
可用性攻擊:試圖中斷系統(tǒng)的正常運(yùn)行?捎眯怨粲址Q為 拒絕服務(wù) (DoS) 攻擊,后者是最近流行的術(shù)語。
幾種攻擊歸屬于上面提到的一個(gè)或幾個(gè)類別。示例包括:
暴力 攻擊通常指搜索每一把鑰匙,直到用正確的那一把打開門為止。盡管這似乎是一項(xiàng)代價(jià)昂貴的操作,但實(shí)際上,通過使用專門的工具對(duì)搜索進(jìn)行仔細(xì)安排,是可能的。
特洛伊木馬 攻擊以敵方不易察覺的方式插入一個(gè)內(nèi)線。計(jì)算機(jī)病毒就是常見的特洛伊木馬攻擊的例子。
轉(zhuǎn)接攻擊 (person-in-the-middle attack) 在雙方不知道的情況下,中途截取他們的通訊信息,而雙方以為他們?cè)谡Mㄓ崱?/P>
其他的攻擊包括: 生日攻擊、 字典攻擊、 會(huì)合 攻擊 (meet-in-the-middle attack) 等。(更全 面的討論,請(qǐng)參閱 參考資料中 Bruce Schneier 的 Applied Cryptography。)
防護(hù)物
為抵御對(duì)安全的威脅,有各種各樣的保護(hù)機(jī)制。在歷史上,防御機(jī)制曾經(jīng)包括設(shè)置某種“圍墻”或“邊界”,通常稱為 周邊防御 (perimeter defense)。
防火墻, 周邊防御的一個(gè)相當(dāng)成功的示例,將內(nèi)部(專用)網(wǎng)絡(luò)與外部(公用)網(wǎng)絡(luò)分隔開,并為公司策略提供中央控制點(diǎn)。然而,防火墻日益允許各種精選形式的通訊 -- 例如 HTTP -- 穿過它。
虛擬專用網(wǎng)絡(luò) (VPN),盡管仍然使用共享網(wǎng)絡(luò),但它提供的安全級(jí)別與專用網(wǎng)絡(luò)相同,是另一個(gè)防護(hù)物示例。
密碼學(xué)
密碼學(xué)及其相關(guān)領(lǐng)域 密碼分析學(xué),自身與加密和解密信息的算法設(shè)計(jì)及分析有關(guān)。在下面的幾節(jié)中,我們將討論密碼學(xué)與安全之間極其重要的關(guān)系。
機(jī)密性
填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽java課程!害怕學(xué)不會(huì)?助教陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!
機(jī)密性是保護(hù)數(shù)據(jù)免受未授權(quán)的一個(gè)或多個(gè)用戶訪問的方法。簡(jiǎn)單地說,就是只有預(yù)定的消息接收人才能夠弄懂這一消息。
如果您正在與他人交換敏感信息,您希望絕 對(duì)確保只有預(yù)定的消息接收人才可以弄懂此消息,如果落入非預(yù)定的人手中,此消息實(shí)際上將變成無用的東西。機(jī)密性是用某種形式的加密技術(shù)來實(shí)現(xiàn)的。
認(rèn)證
認(rèn)證過程確認(rèn)用戶的身份。用戶可以是一個(gè)軟件實(shí)體,也可以是一個(gè)人。 委托人是其身份已被驗(yàn)證的一方,與委托人相關(guān)聯(lián)的是一組 憑證 。通常,認(rèn)證根據(jù)一些僅用戶和認(rèn)證人知道的機(jī)密信息 -- 例如口令 -- 來確認(rèn)身份。除了口令以外,更復(fù)雜的安全方案還將諸如智能卡或生物統(tǒng)計(jì)法(指紋、視網(wǎng)膜掃描,等等)之類的高級(jí)技術(shù)用于認(rèn)證。
一旦建立了認(rèn)證,在實(shí)施中對(duì)用戶(或者更一般的說,委托人)的訪問是 訪問控制機(jī)制控制的。
Kerberos -- 基于密鑰和加密 -- 展示了一種早期認(rèn)證技術(shù)。這種技術(shù)使用時(shí)間戳 -- 在一個(gè)規(guī)定的時(shí)段內(nèi)會(huì)話保持有效 -- 來實(shí)現(xiàn)這一點(diǎn)。為了正常工作,Kerberos 最根本的一點(diǎn)是,假定分布式系統(tǒng)中的時(shí)鐘是同步的。
公用密鑰基礎(chǔ)結(jié)構(gòu) (PKI),代表一種更為普遍的認(rèn)證解決方案,將在下面的幾節(jié)中討論。
Java Authentication and Authorization Service (JAAS) 框架,以基于用戶的認(rèn)證和訪問控制功能補(bǔ)充 Java2 平臺(tái)。JAAS 是 Java 2 Software Development Kit,v 1.3 的標(biāo)準(zhǔn)擴(kuò)展。
完整性
比如說您發(fā)送一張電子支票。當(dāng)銀行最終收到該支票時(shí),它需要弄清楚付款金額有沒有被篡改,這就是稱為 完整性的安全概念。
不可否認(rèn)
在上述的電子支票示例中,如果您確實(shí)發(fā)送了該支票,就應(yīng)該沒有辦法再否認(rèn)它。 不可否認(rèn)提供不可否認(rèn)的行為證據(jù),如給接收人的數(shù)據(jù)的原始證明或給發(fā)送人的數(shù)據(jù)收據(jù)。
審計(jì)和日志
保存已授予或已拒絕的資源訪問的記錄,可能有助于日后的審計(jì)工作。就此目的而言, 審計(jì)和 日志對(duì)于防止非法入侵或事后對(duì)非法入侵進(jìn)行分析,是大有用處的。
策略和訪問控制
安全策略著重控制對(duì)保護(hù)數(shù)據(jù)的訪問,安全執(zhí)行機(jī)制應(yīng)該足夠靈活以執(zhí)行策略,這一點(diǎn)至關(guān)重要。這稱為保持策略與機(jī)制相分離。盡管作出該決策的依據(jù) 可能是,按照委托人身份來授權(quán)訪問某一資源,但是,根據(jù) 角色來管理訪問控制通常更為容易。每個(gè) 委托人被映射到唯一的一個(gè)角色,以達(dá)到控制訪問的目的。通常這樣來實(shí)現(xiàn):用一個(gè)列表或矩陣,列舉不同的用戶/角色所擁有的對(duì)不同保護(hù)資源的訪問權(quán)。
Java 2 Platform,Enterprise Edition (J2EE) 使用 基于角色的認(rèn)證 來執(zhí)行其策略?紤]到這一點(diǎn),在 J2EE 中,業(yè)務(wù)邏輯的開發(fā)人員根據(jù)角色來限制對(duì)特定功能的訪問。
上一篇:Java虛擬機(jī)的深入研究
下一篇: 沒有了
初級(jí)會(huì)計(jì)職稱中級(jí)會(huì)計(jì)職稱經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國(guó)際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱計(jì)算機(jī)營(yíng)養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論