數據加密及認證過程詳解

 數據加密及認證過程詳解

 
  隨着互聯網的不斷髮展,人們不僅僅是依靠它來獲取資訊,而且越來越多的人依靠互聯網進行通訊和交易。那麼在通訊和交易的過程中我們是如何來確保和自己通訊的對方就是我們想要通訊的那個人,而不是另外的一些有惡意的並試圖篡改我們通訊信息的人呢?
  這樣問題就來了:1、我們如何確保我們在信息交換的過程中不被他人獲取而保證信息數據的機密性呢?2、在信息的交換過程中我們如何確保自己的數據是完整的,而不是被人惡意的篡改過的?3、最最前提的條件就是我們如何去確定我們要通訊的人就是我們想要聯繫的那個人,而不是有他人來冒名頂替的呢?
  如何解決這三個問題就是我們本章講解的主要內容。
  從TCP/IP協議建立開始,人們能夠在互聯網中相互通訊就已經是通訊世界的重大突破,此時的人們並沒有意識到網絡通訊會在今後的生活中處於什麼樣的地位。因此也就沒有過多的去關注到對於數據安全的一些應對措施。這時我們就急需一種方法能夠將我們在傳輸協議中明文傳送的數據通過一種轉換規則加密起來,使得除了我們想要發送的對象能夠解讀這些內容,即使其他人獲取到這些信息也不能得知我們所交流的是什麼內容。因此也就誕生了一種加密算法——對稱加密。
  我們通過雙方共知的一份密鑰來加密和解密數據,這樣就能夠使得只有我們通訊雙方能夠獲知信息的內容。可是這樣一來就產生了一個問題,當A與B通訊的時候可以使用一種密鑰,那當A與C通訊的時候是否也使用這樣一個密鑰呢?那假如說A與D、A與E也要通訊的時候使用同一個密鑰合適麼?那要是不使用同一個密鑰的話A就要同時記憶多組的密鑰,這樣一來就容易混亂,增加負擔。同時還有一個問題就是我們如何來確定正在和A通訊的就是A想要通訊的B?
  假如說X獲取到了A、B通訊時使用的密鑰,從而攔截了A傳送給B的數據,自己在其中惡意的添加了一些內容之後也使用了這個密鑰進行了加密,那B有如何得知這組數據是否是真實的呢?
  如此一來就催生了單向加密算法的產生,單向加密算法能夠將一組數據提取出數據的特徵碼,就如同是我們的指紋一般,具有唯一性。同時單向加密的雪崩效應也能夠讓微小的改變引起結果的巨大改變,從而讓他人的修改無法重新加密,除此之外單向加密還可定長輸出,即無論原始數據的大小,其結果的大小都是相同的,這樣就無從解密,從而就實現了數據的不可逆。
  這樣就解決了我們無法判定數據是否被人做過手腳了,但身份驗證的問題還是無法得到解決。這時非對稱加密算法出現了。
  非對稱加密算法會生成一對密鑰:公鑰和私鑰。對方使用自己的私鑰加密數據,那麼我們就只能夠使用對方的公鑰進行解密,這樣就可以實現身份的驗證;對方使用我們的的公鑰加密數據,那我們就可以使用自己的私鑰來解密,這樣即可實現數據的機密性,不過公鑰加密的速度太過緩慢,一般我們只是使用非對稱加密來實現通訊雙方的身份驗證。
  不過這樣一來我們通訊雙方如何去獲取對方的公鑰就成了一個問題,我們沒有辦法去確認對方就是我們想要通訊的一方,並且無法確認這些互傳的數據是否被人截取和篡改過。這時我們就不得不引入一個第三方的概念。
  我們通過一個我們共同信賴的第三方來驗證我們各自的身份,由第三方來給我們證明各自的身份,這種證明我們稱之爲CA Certificate Authority,而維護這些公鑰信息的組織則稱之爲PKI Pubic Key Infrastructure。
  此時我們就可以各自在信賴的CA機構中申請各自的認證證書,來標明各自的身份。然後使用自己的私鑰加密數據,然後隨機數生成對稱密碼加密加密後的數據,再然後將對稱密碼使用對方公鑰加密,這樣既可以保證自身的身份能夠得到驗證、和數據的完整性,並且能夠保證數據的機密性不會被隨意竊取。
  這樣,一個基本完整的數據加密和解密過程就已經能夠實現了,我們不僅僅解決了數據的機密性問題和數據完整性問題,同時也能夠確保和對方的通訊確實就是對方而不是被人冒名頂替的。
  不過這樣一來維護一個龐大的證書數據,保持其公信力都是一筆龐大的費用,因此來說一個擁有很高公信力認證的CA認證是會收取很高費用的。那麼一些中小型企業既想使用認證,同時也不想付出這麼多的認證代價,那麼該如何解決呢?
  咳咳,一口氣寫了這麼多,實在是太不容易了。想當年LZ還是一懵懂少年的時候,寫一篇五百字的作文都困難;看看現在,歲月的殺豬刀已經無情的驅趕着LZ行走了這麼多年,當真是歲月如梭、光陰似箭啊!好了,閒話少說,欲知後事如何,且聽下回分解!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章