學習PKI的一些心得與思考 1

2021-05-21 19:25:33 字數 1793 閱讀 3129

為了專案需要..學習了一下pki..而且據說大三上也是要學這門課的..看了些許資料後大致了解了這個基本概念及實現方法和一些基本架構..

以下是自己的一些總結思考..不是嚴格的教學內容..

1)如果客戶端和服務端之間的通訊是用明文傳輸的..那麼黑客只要能夠抓到你的通訊包..也就能獲得你的所有資訊了..所以明文通訊是非常不安全的..

2)對資訊進行加密後再傳輸..如果用對稱加密方式..簡單說即加密解密的金鑰都是相同的..這樣的加解密的效率非常高..但也非常不安全..乙個是這種方法的安全性取決於金鑰..如果黑客能夠猜解出你的金鑰..那他也能獲得你的資訊了..如果每次都用相同的金鑰..那黑客遲早能破解出來..所以金鑰的分配是乙個很大的問題..顯然經常的更換金鑰能夠降低被猜解的可能性..但是每更換一次密碼..在客戶端和服務端都必須要同步..如何協商密碼的更換..例如服務端更換後通知客戶端也更換..能也必須要有可信的安全通道來傳送這個金鑰..所以還是沒有解決問題..金鑰分配的漏洞非常嚴重..

3)非對稱加密方式..與對稱加密的簡單區別就是..對稱加密用來加密和解密的金鑰都是相同的..加密和解密就是乙個相反的過程..而非對稱加密的金鑰是有一對的..分為私鑰和公鑰..對於這對金鑰的基本安全性要求就是..通過私鑰加密的密文能夠通過公鑰解成明文..反過來也應該是可以的..但是通過公鑰加密的密文不能通過公鑰來解出來..通過公鑰也不能推斷出私鑰..有了這樣的基礎保障..就有了一種新的安全加密的方式..例如..服務端擁有私鑰..而且也只有服務端有..是秘密的..然後該私鑰相對應的公鑰是公開的..任何信任該服務端的使用者都能擁有該公鑰..客戶端用公鑰將明文加密成密文後傳給服務端..服務端可以用獨有的私鑰解出來..而黑客獲得通訊包後..雖然他也有公鑰卻不能解出來..他還是需要破解私鑰..

4)對稱加密和非對稱加密的相同點是只要黑客能夠破解通訊密碼或者私鑰..那通訊就是不安全的..換個角度說..只要金鑰的強度足夠..黑客破解密碼所需要的代價大於資訊的價值或者所需的時間大於資訊的有效期..那麼這種加密就是有效的成功的..比如像rsa..目前用1024位以上就足夠了..在密碼強度夠大的情況下..黑客還可以通過其他手段來獲取資訊..比如replay攻擊..雖然無法破解金鑰..但通過截包和**包也是可以通過服務端的驗證的..特別是對對稱加密的通訊非常好用..

5)所以現在ssl用的方法是..先使用非對稱加密的方式協商出乙個共享金鑰..再用共享金鑰來對資料進行對稱加密後傳輸..這樣既用非對稱的方式解決了金鑰分配的問題又用對稱的方式解決了執行效率的問題..具體的一次ssl連線的過程大致如下:

1.客戶端已經安裝有服務端的證書..且信任該證書..若沒有證書..則在連線伺服器時會自動獲得證書..證書中包含有公鑰..

2.客戶端向服務端發起連線請求..用證書中的公鑰加密資料..先傳送 商量金鑰a..

3.服務端接受連線請求..用私鑰解密..傳送 商量金鑰b..

4.客戶端和服務端利用 商量金鑰a和b 可以生成 共享金鑰..

5.客戶端和服務端利用 共享金鑰 加解密資料進行安全通訊知道本次會話結束..

6.有時服務端會需要驗證客戶端..方法類似..這種雙向認證的方法嚴格的限制了通訊雙方的身份..比較安全..

對於黑客來說..他無法破解私鑰..所以最多能夠獲得 商量金鑰a 但不能破解出來b..所以他無法計算出 共享金鑰..也所以無法對通訊的資料進行破解了..而每次加密資料用的共享金鑰都是臨時商量分配的..所以無法使用replay攻擊等..所以目前看來..ssl這種連線是比較安全的..

6)pki的作用或者說特點..

1.可以驗證通訊雙方的身份..

2.資料加密..通訊安全..

3.有通訊憑證..不可否認..

以上..

大一的一些心得與近況

下週就離開北方,從瀋陽飛西安 大一結束了,要填的坑太多了,總覺得要總結一下才能踏實的繼續學下去 你會選擇詩與遠方,還是會選擇柴公尺油鹽?而我還在苟且學習web安全,風雨兼程 總想著認真記錄部落格,可好久沒認真寫過了,偶然所得也是記在印象筆記上,想著哪一天心血來潮把它們都整理到部落格上,可是還是 懶 ...

信安 web 的一些心得與筆記整理(1)

繞過空格的方法 0a 0b 在mysql中,有乙個庫叫做 information schema,裡面包含了資料庫中所有庫的資訊,我們可以在注入的時候用它來做很多壞事情。注入點的確定 用select database 來確定資料庫名稱 1 union select database 呼叫informa...

Visual C 一些開發心得與除錯技巧

自己平時收集的一些技巧與心得,這裡分享出來,普及一下知識。1.如何在release狀態下進行除錯 project setting projectsetting對話方塊,選擇release狀態。c c 標籤中的category選general,optimizations選disable debug d...