iT邦幫忙

0

Week38 - 各種安全性演算法的應用 - 概念篇 [高智能方程式系列]

本文章同時發佈於:


大家好,這幾天較有時間,終於可以好好的思考文章 XD。由於最近周遭的朋友對安全性演算法這個詞時常感到高深莫測,這次就來介紹安全性演算法的應用吧!

安全性演算法是相當複雜的,但事實上他的應用概念是很直覺的,我們不妨直接以應用來了解,演算法採用網路大家常用的 library 即可。

所以這幾篇文章會以實際應用來講解,不琢磨演算法細節。

P.S. 我是從演算法圖鑑這本書來了解安全性演算法的,因為安全性演算法的目標都一樣,所以文章內容雖然都是我內化的,但可能會許多雷同,請多多包涵 XD。

安全性演算法的目標

這些演算法到底要保護什麼事情,就是保護傳送這個動作會產生的 4 個問題:

  1. 竊聽(eavesdrop)
  2. 電子欺騙(spoofing)
  3. 竄改(falsification)
  4. 抵賴(repudiation)

而這些問題可以透過以下 3 個方法來解決:

  1. 加密(encryption)
  2. 訊息識別碼(message authentication code)
  3. 數位簽章(digital signature)

是怎麼解決的呢?以下會以小明線上早餐店阿姨與在他們對話間做壞事的壞蛋來講解。

竊聽(eavesdrop)是什麼?

答:

偷取傳輸過程中的資料

假設小明要線上付款早餐店款項,理想如下圖:

❗ 但如果有壞蛋從中攔截封包,就可以取得小明的付款密碼:

怎麼防範?

將傳送的資料加密,這樣就算壞蛋偷走了也不知道資料內容

只要小明早餐店阿姨有協議好一個雙方才知道的加解密方法,而壞蛋不知道,就可以如以下模式運作:

電子欺騙(spoofing)是什麼?

答:

無法確認傳輸對象的身份

假設小明要購買一杯大冰奶,理想如下圖:

❗ 但如果有壞蛋也聲稱自己是小明,就可以謊報資料:

怎麼防範?

傳輸人員在資料上產生一筆獨一無二的代碼供另一端驗證

此代碼可以是訊息識別碼數位簽章,因為這兩種技術都可以讓資料產生獨一無二的代碼,小明會透過金鑰與資料一起產生此代碼,早餐店阿姨只需再接收到資料時再用金鑰與資料一起產生代碼,比對代碼是否相同即可判斷是不是小明傳的:

竄改(falsification)是什麼?

答:

修改傳輸的資料

假設小明要購買一杯大冰奶,理想如下圖:

❗ 但如果壞蛋竄改了小明的訂單,小明就會收到不預期的回應:

怎麼防範?

與電子欺騙的解決方法相同,傳輸人員在資料上產生一筆獨一無二的代碼供另一端驗證

此代碼可以是訊息識別碼數位簽章,因為這兩種技術都可以讓資料產生獨一無二的代碼,小明會透過金鑰與資料一起產生此代碼,早餐店阿姨只需再接收到資料時再用金鑰與資料一起產生代碼,比對代碼是否相同即可判斷是不是小明傳的:

抵賴(repudiation)是什麼?

答:

無法證明傳輸方有做過這件事

❗ 假設小明心懷不軌,買了一杯大冰奶卻不想付錢,他可以這樣做:

怎麼防範?

要求傳輸人員在資料上產生一筆獨一無二的代碼供另一端驗證

此代碼為數位簽章,不可為訊息識別碼,雖然兩者都可產生獨一無二的代碼,但訊息識別碼雙方共同約定好的金鑰來產生代碼,而數位簽章小明個人金鑰產生代碼,只有數位簽章才可證明是小明一位產生的,用訊息是別碼會有可能是雙方任一端產生的。

小明得透過個人金鑰與資料一起產生此代碼,如果小明賴帳,早餐店阿姨只需拿此代碼去跟小明討帳即可:

各個安全性演算法的特性

有了以上慨念後,在針對任何傳輸安全性的問題,你可以透過此表來思考到底要用何種技術解決:

竊聽 電子欺騙 竄改 抵賴
加密 v
訊息識別碼 v v
數位簽章 v v v

你可能會需要注意的

  • 到底從何處攔截?答: 比如說路由器,從個人電腦 > 路由器 > Server,不當程式就可以在路由器中攔截
  • 你會發現,這些安全性演算法都在保護資料的完整性與正確性,資料被攔截並且惡意丟棄並不是這些演算法保護的目標

參考


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言