iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Security

資訊安全之加密理論大雜燴系列 第 27

Day 27 安全協定

  • 分享至 

  • xImage
  •  

今天換來講協定,前面再講網路的時候已經先看到一些有名的協定
而接下來是專門講有關資訊安全的協定,並主要是講有關認證的內容

回顧前面講認證時是「人」與「機器」的認證,在「機器」與「機器」間的認證我們就會需要特殊的安全協定來確保溝通的雙方不是在跟奇怪的第三者溝通

IFF協定

IFF(Identify Friend or Foe)協定是在軍事上一個著名的安全協定,可以用來分辨友軍或敵軍

https://ithelp.ithome.com.tw/upload/images/20230821/20162318iwbaGP7cAa.png

當雷達偵測到有飛機經過基地時,我們要如何分辨此飛機為敵軍或是友軍呢?
IFF協議的規則如上圖所示:

  1. 雷達會發射給飛機一串隨機挑戰數字N
  2. 飛機需要使用事先約定好的密鑰K將加密結果E(N,K)送回雷達站

由於敵機不知道K,無法回傳正確答案,因此本部的基地便可根據加密的回答選擇放行或是射殺


上述的協議看似天衣無縫,但其實存在一個可能的破解方法:

https://ithelp.ithome.com.tw/upload/images/20230821/20162318e5LY9p3oJH.png

從上面的圖可以看到,當友機飛過敵軍的雷達站時,該敵軍雷達站可立即呼叫敵機飛向友方基地台
友方基地台發送挑戰數字時,敵機立即將該數字轉發至敵方基地台,敵方基地台再發送給誤入敵軍基地範圍的友機
友機在收到挑戰數字時,按照慣例會發射回正確的加密結果返還,如此敵機即可獲得相應的加密結果

當然以上的破解法在現實中難以實現,不過也算是給我們一些不錯的反向思考訓練

認證與TCP

這邊介紹前面講的TCP傳輸協定作為常見的認證的範例

回憶TCP的三向交握溝通方式,Alice首先傳送SYN給Bob,Bob收到SYN後會在傳送一個SYN與ACK給Alice,最後Alice會夾帶ACK以及要傳送的資料給Bob

https://ithelp.ithome.com.tw/upload/images/20230907/20162318WJWMSdGRd8.png

在這邊SEQ指的是由傳輸方隨機生成的數字,如第一步中Alice需傳送a給Bob,Bob在接收到a後必須返還a+1給Alice,順便生成一個數字b也一起傳回去,Alice在最後一步必須也把b+1給算出來傳回去,三向交握才算完成

可以看到若是沒有這些數字的生成,Bob根本不知道自己在跟誰對話,也不知道對話進行到哪裡
算是可以達成一個簡單的認證效果

不過要是Trudy可以攔截中間第二條對話,他便可以知道b是多少,進而假裝是第三階段的Alice將資料傳給Bob

即便Trudy無法攔截第二條對話,就能保證這個協定安全嗎?

這就要回到之前討論的隨機數字問題

https://ithelp.ithome.com.tw/upload/images/20230907/20162318D1DxLWbGZE.png

Trudy可以這樣冒充Alice對Bob傳送惡意資料

  1. 首先以Trudy的名字傳送SYN給Bob
  2. Bob回傳SEQ b1給Trudy,由於該隨機是事先生成,Trudy可以有技術從b1得知下一個Bob會生成的b2
  3. Trudy冒充Alice的IP身份再傳一次SYN
  4. Bob以為是Alice傳來的,於是傳送SYN ACK b2給Alice
  5. 不等Alice反應(可對Alice發動DoS攻擊),Trudy便可再次假冒Alice將資料傳給Bob

因此即使Trudy無法真的攔截到隨機數字b,他也可以利用隨機數字不是每次生成都隨機的特性來做攻擊
好在這個招數已經老早被大家知道,一些聰明的隨機數字生成有融入進協定的設計中,讓整個破解過程更加困難


上一篇
Day 26 代理防火牆
下一篇
Day 28 ZLP洞穴模型協定
系列文
資訊安全之加密理論大雜燴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言