如何正確地使用加密與認證技術
在密碼學專家之中,“加密並不是認證”是一個簡單的共識。但很多不瞭解密碼學的開發者,並不知道這句話的意義。如果這個知識更廣為人知和深入理解,那麼將會避免很多的設計錯誤。
這一概念本身並不困難,但在表面之下,還有更多豐富的細節和玄妙之處有待發現。本文就是講述開發者對於加密和認證二者的混淆與誤用,並附上了優秀的解決方案。
0x01 加密與認證之間有哪些區別?
加密是呈現資訊,使其在沒有正確的金鑰情況下,變得難以卒讀的過程。在簡單的對稱加密中,同一個金鑰被用於加密和解密。在非對稱加密中,可以使用使用者的公鑰對資訊加密,使得只有對應私鑰的擁有者才能讀取它。
認證是呈現資訊,使其抗篡改***通常在某一非常低的概率之內,小於1除以已知宇宙中粒子的數量***,同時也證明它起源於預期傳送者的過程。
注意:當本文提及真實性時,是專門指的資訊真實性,而不是身份真實性。這是一個PKI和金鑰管理問題,我們可能在未來的部落格中詳細說明。
就CIA triad而言:加密提供機密性,認證提供完整性。
加密不提供完整性;被篡改的資訊***通常***還能解密,但結果通常會是垃圾。單獨加密也不抑制惡意第三方傳送加密資訊。
認證不提供機密性;可以為明文資訊提供抗篡改。
在程式設計師中,常見的錯誤是混淆這兩個概念。你能很容易找到這樣的一個庫或者框架:加密cookie資料,然後在僅僅解密它之後就無條件地信任與使用之。
最近訪問
- 如何正確地使用加密與認證技術
- 學生會換屆競聘部長自我介紹
- 休閒小吃加盟哪些好
- 旅遊活動策劃書範文6篇_出遊活動實施策劃方案
- 大學生的預備黨員轉正總結
- 清明感人詩歌朗誦
- 簡單的現代舞獨舞視訊教學
- 關於中英文英語故事閱讀
- 巨蟹座男朋友生氣了應該怎麼哄
- 公共政策方面碩士生的論文
- 武漢有什麼免費的景點好玩
- 幼兒園班主任期末工作總結模板
- 工商管理課程書籍都有哪些
- 誦經典致青春演講稿
- 六年級英語作文開頭結尾亮句子
- 種植黃秋葵的花盆養殖方法
- 紅頂商人胡雪巖的簡介
- 江西菜好吃的做法
- 日本地震措施
- 怎麼給屬金的女孩取名字
- 康熙字典五行屬金的字
- 康熙字典五行屬木的字
- 康熙字典五行屬水的字
- 康熙字典五行屬火的字
- 康熙字典五行屬土的字