概念介紹: 明文指加密前的內容,反之密文指加密後的內容。 密陰指加密或解密過程中,參與運算的關鍵數據。可以是一份映射表,也可以是一些演算法參數等。 演算法指加密或解密規則。 信息涉漏包括明文,密文,密陰或演算法涉漏。任何信息通過萬維網傳輸,就等同於該信息已經涉漏。演算法,密文和密陰(私陰)都涉漏的情況下,明 ...
概念介紹:
明文指加密前的內容,反之密文指加密後的內容。
密陰指加密或解密過程中,參與運算的關鍵數據。可以是一份映射表,也可以是一些演算法參數等。
演算法指加密或解密規則。
信息涉漏包括明文,密文,密陰或演算法涉漏。任何信息通過萬維網傳輸,就等同於該信息已經涉漏。演算法,密文和密陰(私陰)都涉漏的情況下,明文等於不攻自破。加密的目的並不是防止明文涉漏,因為任何加密只要演算法和密文涉漏,那麼明文涉漏只是一個時間上的問題。如果有人問到,能否做到“絕對”不涉漏,那麼答案是“難,沒有絕對”。如果演算法和密文涉漏,那麼明文涉漏的風險就與明文的價值,攻破明文所需的代價相關。加密的目的是為了減少明文涉漏的風險,但並不能完全減到0風險。明文的價值是否會隨著時間變化,假設把驗證碼作為一個明文來看,它是一次性使用的,使用前是有價值的,使用後就無價值了,所以明文的價值是可以變化的,也可以永遠不變的,例如登陸密碼。攻破明文所需的代價,一是根據加密演算法來判斷所需代價,例如RSA的大數分解代價,MD5的逆表生成代價。二是根據明文的複雜度來判斷所需代價,假設把驗證碼作為一個明文來看,它不便過於複雜,因為過於複雜,用戶輸入難度就會變大。
信息篡改指演算法和密陰(公陰)涉漏的前提下,攻擊者就可以進行偽造信息替換原有信息。
對稱加密指的是加密和解密使用同一密陰,反之,非對稱加密就是加密和解密使用不同密陰,加密使用的密陰稱為公陰,解密使用的密陰稱為私陰。
可逆加密指的是可以通過解密得到明文,但嚴格來說,可逆加密指的是明文與密文是一種一對一的關係,反之,不可逆加密就是明文與密文是一種多對一的關係。
操作步聚:
1.用戶進入輸入信息頁面。
2.用戶請求獲取防機器驗證碼圖片。
3.伺服器生成防機器驗證碼,並生成非對稱加密的密陰對(公陰和私陰),以防機器驗證碼作為密陰,以公陰作為明文進行對稱加密,把加密後的公陰與防機器驗證碼圖片一同返還給用戶。
4.用戶獲得防機器驗證碼圖片和已加密的公陰。
5.用戶輸入信息,輸入防機器驗證碼,並點擊提交。
6.點擊提交後,使用用戶輸入的防機器驗證碼作為密陰對已加密的公陰進行解密,解密後得到公陰。
7.對需要防篡改的信息與防機器驗證碼合併,合併後的內容再進行不可逆加密,加密後的內容稱為防篡改驗證碼。
8.使用公陰對防機器驗證碼進行加密。
9.使用公陰對防篡改驗證碼進行加密。
10.使用公陰對防涉漏信息進行加密,如密碼。
11.最後把信息(未加密),防涉漏信息(公陰加密),防篡改驗證碼(公陰加密),防機器驗證碼(公陰加密)發送給伺服器。
12.伺服器使用私陰解密防篡改驗證碼,防機器驗證碼,防涉漏信息。
13.檢驗伺服器的防機器驗證碼的有效性,如果還有效,則比對防機器驗證碼,判斷人為還是機器操作,不管成功與否,驗證碼都將作廢,不能再次使用,需要用戶重新獲取新的驗證碼。
14.比對防篡改驗證碼,判斷信息是否被篡改。
註:以上的操作中,公陰的有效性是與防機器驗證碼一致,如果該網站不是服務於政府機構,即明文的價值並不那麼大的情況下,公陰的有效性可以更長一些,即公陰不需要使用防機器驗證碼加密也是可以的。