安全認證的重要性 如何實施有效的安全認證方法
當前,數(shù)字安全是電子設計領域最熱門的話題之一。對于許多工程師,當提到安全性時,腦海中閃現(xiàn)出的第一個詞可能就是加密??赡苤挥袠O少數(shù)人會想到安全認證。
然而,安全認證是安全器件或交易的基礎功能。我們以家庭銀行為例。顯然,您希望余額和賬號等保密信息能夠加密,此時,您的網(wǎng)絡瀏覽器上會顯示一個小鎖標識以及“https://”。也就是說,網(wǎng)絡瀏覽器在建立安全連接時,第一件事情就是檢查銀行站點的真實性;換句話說,就是要對銀行站點進行安全認證。實際上,如果將登錄和密碼信息發(fā)送到釣魚網(wǎng)站,危害性非常大,因為這些憑據(jù)可被進一步重用,以銀行賬戶持有人的名義執(zhí)行未經(jīng)授權的交易,而實際持有人卻毫不知情。通過TLS/SSL協(xié)議,一般能夠實現(xiàn)安全的互聯(lián)網(wǎng)瀏覽,確保真實性和保密性。
安全認證對于物聯(lián)網(wǎng)(IoT)應用也非常重要:不可信的終端可能會將整個基礎設施置于危險之中。我們以連接到配電系統(tǒng)的智能電表為例。對于要破壞電網(wǎng)的攻擊者,一種簡單方法是將病毒或惡意軟件加載到智能電表。然后被干擾的電表會向基礎設施發(fā)送假消息,反應出的功耗與實際功耗相差非常大。電網(wǎng)將會出現(xiàn)不平衡;更壞情況下,攻擊可能觸發(fā)全網(wǎng)斷電。為了避免這種情況,必須檢驗電表硬件和固件的真實性。對固件進行安全認證的過程稱為安全引導。
現(xiàn)在我們已經(jīng)理解了安全認證的重要性,接下來我們討論如何實施。最簡單的安全認證方法是使用密碼。在智能電表的例子中,設備可向電網(wǎng)控制系統(tǒng)發(fā)送密碼。服務器驗證密碼,然后再授權執(zhí)行下一步。雖然這種方法非常容易理解,但并不是最好的方法。攻擊者很容易監(jiān)聽通信、記錄密碼,然后用其來對非真實的設備進行安全認證。所以,我們認為基于密碼的安全認證方法比較薄弱。
數(shù)字領域執(zhí)行安全認證的更好方法是質(zhì)詢-應答方法。我們來看看兩種方式的質(zhì)詢-應答方法:一種基于對稱加密,另一種基于非對稱加密。
對稱加密安全認證依賴于共享密鑰。主機和被認證設備持有相同的密鑰。主機向設備發(fā)送一個隨機數(shù),即質(zhì)詢。設備計算一個數(shù)字簽名,該簽名是密鑰和質(zhì)詢的函數(shù),并發(fā)送回主機。主機執(zhí)行相同的運算并對結果進行比較。如果兩項計算結果一致,則設備通過安全認證(圖1)。為了確保結果不被模仿,必須使用數(shù)學屬性足夠的函數(shù);例如必須保證不可能通過計算結果獲得密鑰。SHA-256等安全散列函數(shù)滿足這些要求。對于質(zhì)詢-應答方法,設備在不泄露密鑰的情況下證明自己知道密鑰。即使攻擊者攔截通信,也無法接觸到密鑰。
圖1. 基于對稱加密的安全認證依賴于主機和設備之間的共享密鑰。
基于非對稱加密的安全認證依賴于兩個密鑰:私鑰和公鑰。只有被認證的設備知道私鑰,而公鑰可透露給希望對設備進行安全認證的任何一方。與上文中討論的方法一樣,主機向設備發(fā)送質(zhì)詢。設備根據(jù)質(zhì)詢和私鑰計算數(shù)字簽名,并將其發(fā)送給主機(圖2)。但此時,主機使用公鑰對數(shù)字簽名進行驗證。用于計算數(shù)字簽名的函數(shù)擁有特定數(shù)學屬性至關重要。非對稱方法中最常用的函數(shù)是RSA和ECDSA。同樣,設備也在不泄露密鑰情況下提交了自己知道密鑰的證明,即私鑰。
圖2. 非對稱密鑰安全認證依賴于公鑰和私鑰。