通常,為了保護**的敏感資料,應用需要對這些資訊進行加密處理,資訊加密技術可分為三類:單項雜湊加密、對稱加密和非對稱加密。
1. 單向雜湊加密
單向雜湊加密是指通過對不同輸入長度的資訊進行雜湊計算,得到固定長度的輸出,這個雜湊計算的過程是單向的,即不能對固定長度的輸出進行計算從而獲得輸入資訊。
利用單向雜湊加密這個特性,可以進行密碼加密儲存,即使用者註冊時輸入的密碼不直接儲存到資料庫,而是對密碼進行單向雜湊加密,將密文存入資料庫,使用者登入時,進行密碼驗證,同樣計算得到輸入密碼的密文,並和資料庫中的密文比較,如果一致,則密碼驗證成功。
這樣儲存在資料庫中的是使用者輸入的密碼的密文,而且不可逆地計算得到密碼的明文,因此即使資料庫被「拖庫」,也不會洩漏使用者的密碼資訊。
雖然不能通過演算法將單向雜湊密文反算得到明文,但是由於人們設定密碼具有一定的模式,因此通過彩虹表(人們常用密碼和對應的密文關係表)等手段可以即興猜測式破解。
為了加強單向雜湊計算的安全性,還會給雜湊加點鹽(salt),salt相當於加密的金鑰,增加破解難度。
常用的單向雜湊演算法有md5、sha等。單向雜湊演算法還有乙個特點就是輸入的任何微小變化都會導致輸出的完全不同,這個特性有時也會被用來生成資訊摘要、計算具有高離散程度的隨機數等途徑。
2. 對稱加密
所謂對稱加密是指加密和解密使用的金鑰是同乙個金鑰(或者可以互相推算)。
對稱加密常用在資訊需要安全互動或儲存的場合,如cookie加密、通訊加密等。
對稱加密的優點是演算法簡單,加密效率高,系統開銷小,適合對大量資料加密。缺點是加密使用同乙個金鑰,遠端通訊的情況下如何安全的交換金鑰是個難題,如果金鑰丟失,那麼所有的加密資訊也就沒有秘密可言。
常用的對稱加密演算法有des演算法、rc演算法等。對稱加密是一種傳統加密手段,也是最常用的加密手段,適用於絕大多數需要加密的場合。
3. 非對稱加密
不同於對稱加密,非對稱加密和解密使用的金鑰不是同乙個金鑰,其中乙個對外界公開,被稱為公鑰,另乙個只有所有者知道,被稱為私鑰。用公鑰加密的資訊必須用私鑰才能解開,反之,用私鑰加密的資訊只有用公鑰才能解開。理論上說,不可能通過私鑰獲取公鑰。
非對稱加密技術通常用在資訊保安傳輸,數字簽名等場合。
資訊傳送者a通過公開渠道獲取資訊接收者b的公鑰,對提交資訊進行加密,然後通過非安全傳輸通道將密文資訊傳送給b,b得到密文資訊後,用自己的私鑰對資訊進行解密,獲取原始的明文資訊。即使密文在傳輸過程中遭到竊取,竊取者沒有解密金鑰也無法還原明文。
數字簽名的過程則相反,簽名者用自己的私鑰對資訊進行加密,然後傳送給對方,接收方用簽名者的公鑰對資訊進行解密,獲取原始明文資訊,由於私鑰只有簽名者擁有,因此該資訊是不可抵賴的,具有簽名的性質。
在實際應用中,常常會混合使用對稱加密和非對稱加密。先試用非對稱加密技術對對稱金鑰進行安全傳輸,然後使用對稱加密技術進行資訊加解密與交換。而有時,對同乙個資料兩次使用非對稱加密,可同時實現資訊保安傳輸與數字簽名的目的。
非對稱加密的常用演算法有rsa演算法等。https傳輸中瀏覽器使用的數字證書實質上是經過權威機構認證的非對稱加密。
4. 金鑰安全管理
前述的幾種加密技術,能夠達到安全保密效果的乙個重要前提是金鑰的安全。不管是單向雜湊加密用到的salt、對稱機密的金鑰、還是非對稱加密的私鑰,一旦這些金鑰洩漏出去,那麼所有基於這些金鑰加密的資訊就失去了秘密性。
資訊的安全是靠金鑰保證的。但是實際開發中,工程師直接將金鑰寫在源**中,稍好的寫在配置檔案中,線上和開發環境配置不同的金鑰。總之,至少在公司內部,金鑰不是秘密。
實踐中,改善金鑰安全性的手段有兩種。
一種方案是把金鑰和演算法放在乙個獨立的伺服器上,甚至做成乙個專用的硬體設施,對外提供加密和解密服務,應用系統通過呼叫這個服務,實現資料的加解密。但這種方案成本較高,而且可能會成為應用的瓶頸,每次加密/解密都需要一次遠端服務呼叫,系統效能開銷也較大。
另一種方案是將加密演算法放到應用系統中,金鑰放在獨立伺服器中,為了提高金鑰的安全性,實際儲存時,金鑰被切分成數片,加密後分別儲存在不同儲存介質中,兼顧金鑰安全性的同時又改善了效能。
應用程式呼叫金鑰安全管理系統提供加解密服務介面對資訊進行加解密,該介面實現了常用的加解密演算法並可根據需求任意擴充套件。加解密服務介面通過金鑰伺服器的金鑰服務取得加解密金鑰,並快取在本地(定時更新)。而金鑰伺服器中的金鑰則多來自多個金鑰儲存伺服器,乙個金鑰分片後儲存在多個儲存伺服器中,每個伺服器都有專人負責管理。金鑰申請者、金鑰管理者、安全審核人員通過金鑰管理控制台管理更新金鑰,每個人各司其職,沒有人能檢視完整的金鑰資訊。
加密技術與金鑰安全管理
一起來聊聊資料的加密技術 那我們應該如何考慮資料的安全儲存?讓我們一起來聊聊資料的加密技術。單向雜湊加密 單向雜湊加密就是把任意長的輸入訊息串變化成固定長的輸出串且由輸出串難以得到輸入串的一種加密演算法。常見單向雜湊函式 利用單項雜湊加密的這個特性,可以進行密碼加密儲存。php 處理密碼的幾種方式 ...
資訊保安加密技術 凱撒密碼
凱撒密碼技術是一種代替技術,也稱作凱撒移位,是最簡單的加密方式之一,在密碼學中,凱撒密碼 或稱愷撒加密 愷撒變換 變換加密 是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。愷撒密碼通常被作為其他更複雜的加密方法中的乙...
加密技術 金鑰和證書
非對稱加密使用公鑰 私鑰對。對於使用私鑰加密的資料,只能使用相應的公鑰進行解密,反之亦然。顧名思義,公鑰是指可以提供給很多人的金鑰。相反,私鑰是特定個人所獨有的。向使用者傳送公鑰使用的分發機制是證書。通常,證書頒發機構 ca 對證書進行簽名,以便確認公鑰來自聲稱傳送公鑰的主體。ca 是乙個相互信任的...