技術交流

如何正確使用加解密安控元件

林岱宏 林岱宏

資通協助企業建立安全便利的網路環境,除了提供完善的身分識別及存取管理系統方案ARES uIAM(ubiquitous Identity and Access Managerment System)之外,還提供ARES uPKI安控元件,可用於確保資訊流通的安全性、完整性、保密性及不可否認性。大部分的使用者對於ARES uPKI安控元件中的簽章功能較為熟悉,並配合驗證伺服器(VA),達成資通安全的資料完整性及不可否認性。以下介紹如何利用ARES uPKI安控元件中的加解密功能同時選用安全的加解密方式,以達成安全性以及保密性。

選用安全的演算法

你這樣的加密方式安不安全啊

這是在導入加解密系統之前,最常被問的一句話。加密的安全度跟金鑰的演算法以及長度有關,簡單的說,不對稱的演算法(加密金鑰與解密金鑰不相同)比較安全, 比較長的金鑰比較安全,知名的演算法如果尚未被破解,也比較安全。不對稱的演算法用起來麻煩一些,因為金鑰太長無法記憶, 最好是存在晶片卡中,不然就放在資料庫或檔案中。不管放在哪裡,都得用一個 PIN 碼保護,以避免金鑰失竊。不對稱的演算法之解密金鑰不得與資料儲存於一處,不然可能會被抓回去慢慢破解(離線攻擊)。對使用者來說,對稱的演算法就是一個密碼,不對稱的演算法則是一個存起來的金鑰再加上一個密碼。

如果懷疑金鑰失竊,就應該立刻將舊的金鑰換掉,重新加密所有的加密檔案。採用兩層加密的方式可以大幅改善重新加密的效率。兩層加密的原理是,先用 CEK(內容加密金鑰)加密內容,再用 KEK(金鑰加密金鑰) 加密 CEK。於是,當換金鑰的時候,只需要將 CEK 解開,然後用新的加密金鑰加密即可,不用解密可能很龐大的內容資料。常用的加密格式如電子信封或是 XML Encryption 都是採用兩層加密的方式。

備份解密金鑰

密碼忘了怎麼辦

這是在導入加解密系統之後,最常被問的一句話。如果加密方式夠安全,一旦解密金鑰沒了,那就只好跟資料說掰掰了。如果真的一定要破解,除非金鑰夠短,不然就只有等待密碼學家的努力或是電腦技術的進步了。非公開的加密技術通常撐不過密碼學家的分析,至於公開的加密技術,只要等待夠長的時間,電腦的運算速度總會進步到能夠進行暴力破解的。不過,這實在不是什麼解決方案。

無論任何形式的加密系統,解密金鑰都需要備份!要特別注意,解密金鑰的備份不能與資料或資料的備份一起儲存。最簡單的備份方式就是抄下來,放在別人拿不到的地方,比較進步的方式則是利用不對稱演算法的安全性,採用雙金鑰加密,也就是將資料加密的時候,同時使用另一個備援金鑰加密,將相對應的解密備援金鑰保護好,僅有特殊情形下才取來解密。若有需要,在這裡建立一個管理機制可以強化這個機制的安全性。

加密金鑰的交換

如果加密的目的是要交換,加密金鑰就需要有交換機制。如果採用PKI,一個單純的目錄服務就夠了。不然,對稱的金鑰會需要一系列的控管,以確保加密金鑰的安全性。這樣的控管通常由金鑰管理系統進行,上傳的加密金鑰由管理系統的加密金鑰加密保存,必要時加上時戳或是識別碼,下載時管理系統解密上傳的加密金鑰後用下載者的加密金鑰加密。

如果要簡化對稱金鑰的控管, 檔案保存伺服器的導入就會勢在必行. 每個使用者以身分驗證金鑰進入檔案保存伺服器, 取得以個人加密金鑰加密的檔案, 如此可以避免加密金鑰的交換。

加解密的時機

如果加密的對象是一個流程,加密應在修改一結束後立即進行,解密則應在使用的前一刻進行。舉例來說,若在顯示器中置入安全晶片,影像串流伺服器在確定使用者身分及其所擁有的安全晶片序號後,直接與安全晶片進行加解密金鑰交換協定, 則軟體破解的難度會非常高。

在多步驟的流程中,加解密行為應視為資料的一部份。除非能事先確認下一手的加密金鑰為何,不然採用類似檔案保存伺服器的管理方式會比較容易設計。

留意最新的攻擊手法

駭客可能想出新花招,所以金鑰長度早晚會不足,演算法也許會被攻破,因此隨時留意最新的訊息,反思舊的設計會不會在新的環境下降低安全性,是安全系統設計者的責任!

加密,不僅要加得好,還要加得巧,孫子兵法:「無恃其不來,恃吾有以待之;無恃其不攻,恃吾有所不可攻也。」完全不考慮加密的系統設計是在拿客戶的資料安全開玩笑!