軟件設(shè)計(jì)安全性探究論文

時(shí)間:2022-10-11 10:53:00

導(dǎo)語(yǔ):軟件設(shè)計(jì)安全性探究論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

軟件設(shè)計(jì)安全性探究論文

計(jì)算機(jī)安全界曾經(jīng)有個(gè)笑話:“實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)安全很容易,把計(jì)算機(jī)的電源關(guān)掉,鎖在保險(xiǎn)箱里,然后把鑰匙扔掉?!睂?shí)際上,這個(gè)笑話一定程度上揭示了計(jì)算機(jī)的安全性與易用性之間的關(guān)系。

一、易用性和安全性之間的關(guān)系

在計(jì)算機(jī)的安全性和易用性設(shè)計(jì)之間存在權(quán)衡,一臺(tái)不設(shè)口令的計(jì)算機(jī)非常方便使用,但是不安全;但是如果一臺(tái)計(jì)算機(jī)每5分鐘要求你做一次身份確認(rèn),輸入口令甚至做血樣檢驗(yàn),這樣的計(jì)算機(jī)是安全的,但是不會(huì)有人愿意使用。一般說(shuō)來(lái),安全軟件產(chǎn)品的操作要比其他軟件產(chǎn)品的操作困難,因?yàn)閷?shí)現(xiàn)機(jī)制復(fù)雜了,需要配置的參數(shù)也多了。

安全性和易用性在設(shè)計(jì)上有共同點(diǎn):

(1)都需要從軟件的整體考慮;

(2)需要對(duì)系統(tǒng)結(jié)構(gòu)、開發(fā)團(tuán)隊(duì)和市場(chǎng)份額等方面統(tǒng)籌考慮;

(3)都要在系統(tǒng)設(shè)計(jì)的開始階段考慮,在系統(tǒng)開發(fā)臨近結(jié)束時(shí)無(wú)法臨時(shí)增加;但是由于易用性和安全性是不同的技術(shù),所以建立一個(gè)既有安全性又有易用性的系統(tǒng)比較昂貴。

(4)易用性方面出現(xiàn)問(wèn)題可能會(huì)妨礙安全性的效果。

目前安全性和易用性之間的接口成為計(jì)算機(jī)安全界研究的對(duì)象,被稱作人機(jī)交互和安全性(HCI-SEC)。在2003年ACM人機(jī)交互大會(huì)召開了HCI-SEC研討會(huì),隨后HCI-SEC的有關(guān)問(wèn)題逐步提了出來(lái)。2004年計(jì)算機(jī)界把易用安全性列為信息安全研究者的“重大挑戰(zhàn)”,有下面兩個(gè)問(wèn)題:

問(wèn)題1口令問(wèn)題。每個(gè)人都面臨口令問(wèn)題,安全的口令都是難猜測(cè)的,但是難猜測(cè)的口令都是難記憶的。同時(shí)口令策略一般要求用戶口令是唯一的并且要及時(shí)更新,如果一個(gè)人的帳戶比較多,很難想象一個(gè)人可以完全憑借記憶牢記十多個(gè)不同的口令,并且不斷地分別更新。

問(wèn)題2身份確認(rèn)問(wèn)題。當(dāng)認(rèn)識(shí)到傳統(tǒng)的口令字不夠安全后,用戶需要新的身份確認(rèn)手段。研究表明,人記憶圖像的能力比字符強(qiáng),因此圖像口令字被作為字符口令字的替代方案,研究還發(fā)現(xiàn),用戶對(duì)圖像口令字的選擇與種族和性別高度關(guān)聯(lián)。生物測(cè)量和硬件令牌也屬于用戶身份確認(rèn)的方法,但是現(xiàn)在還缺乏對(duì)這些身份確認(rèn)手段的統(tǒng)一評(píng)價(jià)和比較方法。

二、易用安全性的實(shí)現(xiàn)途徑

HCI-SEC的研究課題之一就是如何在某些特定的應(yīng)用系統(tǒng)中實(shí)現(xiàn)易用的安全性,主要有三種類型的方法:

(1)構(gòu)造不需要用戶干預(yù)就可以執(zhí)行相關(guān)的安全和私有功能的系統(tǒng)。這種方法的問(wèn)題是當(dāng)用戶不了解某些方面的安全問(wèn)題時(shí),他們的操作可能會(huì)無(wú)意中減弱到位的安全保護(hù)。

(2)開發(fā)一種安全和私有相關(guān)的隱喻模型,讓用戶自發(fā)地正確使用安全和私有軟件。目前的鑰匙和鎖的隱喻模型顯然是不完全和不準(zhǔn)確的,但是目前也沒有出現(xiàn)更具有廣泛接受性的其他隱喻模型。

(3)教給用戶有效使用私有和安全工具所需要的知識(shí)。但是以什么形式把這些信息教給用戶,讓用戶少花時(shí)間去學(xué)習(xí)掌握,還是沒有解決好的問(wèn)題。

很容易想到利用一種基于上述方法混合的方法,但實(shí)際上這更困難,因?yàn)樯鲜龇椒ǖ乃悸泛蛯?shí)現(xiàn)根本上就是不同的。

現(xiàn)在有人開始用HCI-SEC的方法對(duì)安全系統(tǒng)進(jìn)行評(píng)估,測(cè)試結(jié)果發(fā)現(xiàn)用戶在安全決策理解方面存在障礙,從而導(dǎo)致安全配置失誤遭受危險(xiǎn),用戶往往為了使用方便,而關(guān)閉某些安全防護(hù)。

JeromeSaltzer和MichaelSchroeder于1975年就在討論易用性是否是安全系統(tǒng)必要的成分,他們提出了信息保護(hù)的8條原則[1],最后一條就是對(duì)信息保護(hù)系統(tǒng)的“心理可接受性”,但是有些安全系統(tǒng)對(duì)這些思想不夠重視。此后30年來(lái),HCI技術(shù)也有了很大的發(fā)展,在技術(shù)市場(chǎng)上,開始有人應(yīng)用HCI設(shè)計(jì)和評(píng)價(jià)技術(shù)對(duì)安全系統(tǒng)進(jìn)行評(píng)價(jià),他們發(fā)現(xiàn)最終用戶在理解所面臨的安全設(shè)計(jì)和決定方面非常困難,所以非常容易出現(xiàn)誤配置的情況,而導(dǎo)致安全風(fēng)險(xiǎn)。很多時(shí)候用戶為了工作方便停止或者忽略安全功能,例如取消口令或者共享口令,都會(huì)把系統(tǒng)置于高安全風(fēng)險(xiǎn)之下。

很多用戶習(xí)慣將系統(tǒng)安全決策的權(quán)利交給系統(tǒng)管理員負(fù)責(zé),但是當(dāng)用戶離開自己的工作場(chǎng)所,脫離了所在機(jī)構(gòu)的防火墻保護(hù),在家里或者在路上使用移動(dòng)設(shè)備的時(shí)候,就必須根據(jù)自己的知識(shí)和經(jīng)驗(yàn)做出安全決定,而不能依靠機(jī)構(gòu)的安全管理員了。因此,需要開發(fā)把安全決策權(quán)放在用戶手中的技術(shù)。

1983年,DonNorman指出許多引起數(shù)據(jù)損失的錯(cuò)誤是由于糟糕的界面設(shè)計(jì),雖然相關(guān)的操作需要用戶確認(rèn),但是有時(shí)候用戶確認(rèn)只是出于習(xí)慣的機(jī)械點(diǎn)擊,因此把系統(tǒng)操作動(dòng)作設(shè)計(jì)成可見的和可以取消的并不能完全解決問(wèn)題。

這里有一個(gè)說(shuō)明問(wèn)題的例子。在美國(guó)PARC研究中心建立無(wú)線局域網(wǎng)時(shí),采用了基于PKI的方案,需要給200個(gè)用戶X.509證書,使用802.1x傳輸層安全認(rèn)證協(xié)議EAP-TLS進(jìn)行認(rèn)證。統(tǒng)計(jì)表明許多人覺得PKI不容易理解,技術(shù)復(fù)雜和不易用。由于PARC中心對(duì)于PKI技術(shù)熟悉,他們認(rèn)為有信心成功克服使用困難,但是他們錯(cuò)了。在無(wú)線局域網(wǎng)的第一個(gè)版本里,每個(gè)用戶都必須從內(nèi)部認(rèn)證中心申請(qǐng)和安裝一個(gè)X.509證書,然后配置操作系統(tǒng)提供的802.1x客戶軟件來(lái)使用EAP-TLS認(rèn)證協(xié)議。為了提交證書申請(qǐng),用戶必須決定和提供無(wú)線網(wǎng)卡的MAC地址和安裝內(nèi)部認(rèn)證中心的CA根證書。在建立系統(tǒng)過(guò)程中,技術(shù)管理團(tuán)隊(duì)的大量時(shí)間花費(fèi)在管理CA軟件和鑰匙上。利用MicrosoftWindowsXP提供的GUI802.1x的無(wú)線配置軟件,用戶需要總共完成38步才能完成注冊(cè)過(guò)程,每一步都強(qiáng)迫用戶做出決定或者采取行動(dòng)。為了幫助用戶完成這個(gè)過(guò)程,系統(tǒng)管理員編寫了一個(gè)詳細(xì)的注冊(cè)指南,但是用戶很容易脫離這個(gè)指南自行其事,最后用戶甚至不知道對(duì)計(jì)算機(jī)做了什么操作,如果出錯(cuò),他們就會(huì)不知所措。盡管PKI提供了安全保護(hù),但是降低了用戶配置自己機(jī)器的能力。

三、易用安全軟件的設(shè)計(jì)考慮

安全敏感的應(yīng)用軟件的設(shè)計(jì)要求在易用性和安全性之間是平衡的,如果修改現(xiàn)有的系統(tǒng)設(shè)計(jì),提高易用性就可能降低安全性,而增強(qiáng)安全性,就有可能讓軟件難以使用或者難以理解。在設(shè)計(jì)一個(gè)軟件系統(tǒng)時(shí),安全性和易用性兩者都不能忽略,這兩方面的缺陷都可能導(dǎo)致產(chǎn)品無(wú)法使用。

1、安全性和易用性統(tǒng)籌考慮

在軟件產(chǎn)品的設(shè)計(jì)過(guò)程中要注意將安全性和易用性統(tǒng)籌考慮:

(1)安全和易用的元素不能撒胡椒面,應(yīng)該把這兩個(gè)元素合并在一起,貫穿整個(gè)設(shè)計(jì)過(guò)程。無(wú)論是安全性還是易用性都不能作為附加設(shè)計(jì)的內(nèi)容。

(2)設(shè)計(jì)者要牢記安全性和易用性都是用戶需求的一個(gè)方面,最后的取舍還是要根據(jù)用戶的需要,系統(tǒng)的安全狀態(tài)要和用戶頭腦中的模型相符合,并且兩者都是隨時(shí)間變化的。

(3)盡量將安全性元素合并到用戶現(xiàn)在已經(jīng)使用的工作流程中,他們已經(jīng)習(xí)慣了這樣的工作方式,不容易對(duì)安全手段產(chǎn)生厭倦情緒。

2、避免安全性和易用性的沖突

在安全軟件產(chǎn)品的設(shè)計(jì)過(guò)程中,安全性和易用性可能會(huì)產(chǎn)生沖突:

(1)設(shè)計(jì)階段的沖突

1)不恰當(dāng)?shù)陌踩詴?huì)損害易用性

讓差不多要開發(fā)結(jié)束的產(chǎn)品變得更加安全是設(shè)計(jì)者可能會(huì)遇到的要求,但是設(shè)計(jì)者會(huì)發(fā)現(xiàn)在最后一分鐘增加安全功能是多么困難和無(wú)效。盡管可以通過(guò)代碼審查發(fā)現(xiàn)一些Bug,但是安全則是整個(gè)設(shè)計(jì)更深的屬性,JohnViega和GaryMcgraw認(rèn)為“在一個(gè)現(xiàn)存系統(tǒng)上捆綁安全是一個(gè)糟糕的主意,安全不是一個(gè)在任何時(shí)間都能增加到系統(tǒng)上去的屬性”[2]。如果不是從設(shè)計(jì)一開始就考慮安全性問(wèn)題,就可能不得不增加很多配置設(shè)置和提示,這種做法不能根本上解決問(wèn)題,反而在出現(xiàn)問(wèn)題的時(shí)候,容易將過(guò)錯(cuò)推給用戶。

2)不適當(dāng)?shù)囊子眯詴?huì)損害安全性

讓差不多要開發(fā)結(jié)束的產(chǎn)品變得更加好用則是設(shè)計(jì)者可能會(huì)遇到的另外一種要求,但是這是同樣困難的任務(wù)。好的易用性設(shè)計(jì)強(qiáng)調(diào)理解用戶需求,在設(shè)計(jì)過(guò)程中溶入某種概念和風(fēng)格,而不是僅僅玩弄一些表面的特色,比如動(dòng)畫或者界面外表。沒有經(jīng)過(guò)慎重考慮的易用性可能會(huì)向用戶隱藏一些安全相關(guān)的決定或者選擇松散的缺省設(shè)置,另外不容易理解的界面也會(huì)增加操作的復(fù)雜性和迷惑用戶,降低產(chǎn)品的安全性。

3)集成的交互設(shè)計(jì)

安全性和易用性的研究者都贊成疊代的開發(fā)過(guò)程,執(zhí)行重復(fù)的分析、設(shè)計(jì)和評(píng)估周期,而不是最后進(jìn)行安全性測(cè)試或者易用性測(cè)試,將用戶交互和安全手段的設(shè)計(jì)同時(shí)考慮非常重要,疊代提供了檢查安全性和易用性相互影響的機(jī)會(huì),如果一直割裂兩個(gè)方面的設(shè)計(jì)幾乎肯定會(huì)帶來(lái)問(wèn)題。

(2)使用中的沖突

從目標(biāo)上講,安全通常是使用戶操作變得困難,而易用性是使操作變得更容易,安全性所引起的操作困難的結(jié)果通常是用戶不情愿接受的,而易用性所帶來(lái)的結(jié)果一般是用戶所歡迎的,當(dāng)系統(tǒng)設(shè)計(jì)不夠好時(shí),這兩者可能發(fā)生沖突。

安全性對(duì)于用戶來(lái)說(shuō)永遠(yuǎn)是第二位的功能,用戶使用計(jì)算機(jī)肯定不是要使用它的安全功能,用戶使用計(jì)算機(jī)是為了使用資源和進(jìn)行業(yè)務(wù)系統(tǒng)管理等,要求用戶采用額外的安全步驟可能會(huì)打斷他的工作流程,最后導(dǎo)致用戶關(guān)閉掉讓他煩惱的安全提示。這樣自然造成易用性和安全性之間的沖突。解決的辦法是盡量從自然的用戶交互中提取安全信息,提取的安全信息越多,安全性對(duì)用戶正常使用的干擾就越少。

(3)安全交互設(shè)計(jì)的原則

研究者曾經(jīng)提出安全交互設(shè)計(jì)的10條原則[3]:

(1)完成一個(gè)任務(wù)最自然的方式也是最安全的;

(2)用戶能夠清楚理解授權(quán)過(guò)程,明確過(guò)程中的操作;

(3)用戶的交互界面應(yīng)該能夠吸引用戶的吸引力;

(4)影響安全決定的用戶交互界面應(yīng)該便于檢查;

(5)在任何時(shí)候都應(yīng)該允許撤消做出的安全授權(quán);

(6)用戶界面不應(yīng)該讓用戶誤以為擁有實(shí)際上沒擁有的權(quán)限;

(7)用戶與授權(quán)實(shí)體之間的通訊渠道必須是不能被欺騙和不容易癱瘓;

(8)確認(rèn)實(shí)體與確認(rèn)操作在界面上應(yīng)該與其他實(shí)體和操作不同;

(9)交互界面應(yīng)該提供足夠的表達(dá)能力讓用戶容易按照自己的目標(biāo)表達(dá)安全決定;

(10)在動(dòng)作生效前應(yīng)該讓用戶清楚授權(quán)操作的結(jié)果。

現(xiàn)在計(jì)算機(jī)的構(gòu)件都被標(biāo)注成可信的,可信不是一個(gè)yes或者no的問(wèn)題,不明確下述問(wèn)題“可信”這個(gè)詞是沒有任何意義的。這些問(wèn)題就是:(1)“被誰(shuí)信任?”(2)“被信任做什么?”(3)“什么條件下不可信?”(4)“應(yīng)對(duì)的安全風(fēng)險(xiǎn)是什么?”

SimsonGarfinkel和GeneSpafford給出的定義是:“如果你能夠依賴一臺(tái)計(jì)算機(jī)和它上面的軟件做出你期待的行為,就說(shuō)它是安全的”[3],用戶的期待是基于系統(tǒng)的概念模型,這個(gè)概念模型的基本元素是“誰(shuí)”和做“什么”,對(duì)應(yīng)“角色”和“能力”,每個(gè)角色有一系列的“能力”(可以影響用戶的可能動(dòng)作),可以通過(guò)有限狀態(tài)機(jī)來(lái)模擬所有角色的所有可能動(dòng)作。

安全性和易用性是貫穿軟件開發(fā)過(guò)程的要求,不僅需要早期考慮,還需要同時(shí)兼顧。特別在大型系統(tǒng)的開發(fā)過(guò)程中,負(fù)責(zé)這兩個(gè)方面的開發(fā)人員需要很好的溝通和交互。

參考文獻(xiàn)

[1]J.H.Saltzer和M.DSchroeder,“TheProtectionofInformationinComputerSystems,”Proc.IEEE,vol.63,no.9,1975.

[2]J.Viega和G.McGraw,BuildingSecureSoftware,Addison-Wesley,2002,p.14.

[3]S.Garfinkel和GSpafford,PracticalUNIXandInternetSecurity,2nded.O’Relly&Associates,1996,p.6.