資安筆記 - 乙太網路

資安筆記 - 乙太網路

白龍 Lv3

乙太網路的歷史

乙太網路是40年來最成功的網路發明應用

在1973年提出的構想,是受到Bob Metcalfe研究ALOHAnet的啟發

在1975年,乙太網路申請專利(Xerox Ethernet)

  • 區域網路電腦封包技術
  • 傳輸速率為2.94 Mbit/s

在1979年,Bob Metcalfe成立#com

  • 說服DEC、Intel和Xerox啟動乙太網路的開發
  • 全部放棄乙太網路專利

在1980年,Ethernet被發布

  • DIX 1.0標準vaplugin
  • 著重於實體層與資料鏈路層
    • 定義MAC地址:48位元
    • Ether type:16位元

在1982年推出Ethernet II

  • 成為現代網路使用標準
  • 稱為DIX 2.0標準

在1983年成為IEEE標準,802.3標準

  • 可以自訂型號
  • 延伸許多版本
    • 802.3u Fast Ethernet 100Mbps
    • 802.3ab Gigabit Ethernet 1Gbps
    • 10 Gigabit Ethernet 10Gbps
    • 更多…

乙太網路的架構與特性

常見硬體

  • 網路卡
  • 集線器、路由器、交換機
  • 雙絞線

常見接法

  • 匯流排接法
  • 星狀接法(流量控制、無碰撞)最常見

線路共享

  • 所有設備皆在同一設備,傳輸方式為廣播,在一個節點上傳輸
  • 一個設備發訊號時,所有設備都可以接收

無須與接收端建立連線

  • 不必在傳輸資料前建立連線
  • 自動傳輸

不可靠

  • 負責傳送,但不保證資料能到達目的地(無碰撞處理)
  • 沒有確認回傳機制(Ack)
  • 無錯誤回傳機制(Nack)

乙太網路優缺點分析

優點

  • 成本低、速度快
  • 安裝擴充容易(架構簡單)
  • 設定IP為另外一件事情
  • 目前最受歡迎、普及的網路應用
    • 幾乎所有設備都可以使用
    • 速度快且可靠
    • 架構單一,擴充方便
  • 速度提升
    • 10Mb → 100Mb → 1Gb → 100Gb

缺點

  • 每次新增都需要新增線路
  • 有距離限制,距離長時傳輸速率會降低
  • 存在干擾與安全問題,易受電磁干擾,竊聽簡單
  • 單點故障問題,如果一個節點故障,所有設備都受到影響

乙太網路標準

線路命名

10Base5

  • 現代標準乙太網路
  • 乙太網路的前身

如何看不同的網路標準

10Base5可以視為

速度 基頻 長度
10Mbps 基頻 500公尺

所以10Base5就是一個傳輸速度為10Mbps,使用基頻傳輸,並且長度限制為500公尺的傳輸方式

乙太網路機制

運作原理

傳輸資料的方式為高電位為1,低電位為0,這是所謂的二進制傳輸不過在取樣時會有時間差的問題,必須知道每個訊號何時被傳送及其內容因此,我們將訊號加入到一個時間軸中,並在對應的時間輸出對應的訊號

衰減問題

引線衰減問題可能因為纜線長度、品質、接頭鬆動或電磁干擾而導致

檢查問題解決

我們可以使用橋接器或中繼器,不過兩者的功能不同:

  • 橋接器:判別訊號中的資訊是否有錯誤,如果有錯誤則直接丟掉,不傳輸
  • 中繼器:將訊號放大,所有訊號不會丟失

不是無限延長

最遠的傳輸距離為2.5公里,並且最多串接4個(物理限制)

10Base2經典標準

以剛剛學到的知識可以知道,10Base2可以視為:

  • 10Mbps
  • 基頻
  • 每段長200公尺

這個架構與10Base5架構相同,並且硬體輕巧很多(BNC轉接器),其他設備相同

10BaseT標準

10BaseT是舊式雙絞線,也是現在家中常用的網路線,特性如下:

  • 4對8線,每對線都是互絞在一起
  • T = 雙絞線的意思,每段長1公尺
  • 架構與上兩者相同,不需要轉接器

不過它需要使用中介設備,即集線器(HUB),接線方法是使用星狀網路,但行為是匯流網路,因此同時有廣播和碰撞問題

以太訊框 & MAC 地址 & MAC

一個完整的訊框 (Frame header)

完整訊框

第一個訊框必須是Preamble,訊號為8 x 7 bit

如果前面7次的訊框都是正確的,則會開始傳送SFD,表示即將開始傳輸資料,如果有錯誤則不會執行

確認完後會檢查對方的DA,即目的MAC,確認後會檢查自己的SA,即來源的MAC

接著會傳送type,表示資料的型態,所有Type可以在Ethernet Wiki type 看到

最後才會傳送所有資料

最大data大小

一個data最大只能傳送46~1500byte

傳送完後會發出一個檢查碼FCS,簡單來說,就是計算前面的資料以得出一個檢查碼如果電腦收到的檢查碼與封包發出的不一樣,就會直接丟棄,因為資料不正確

收封包流程

當一封包發出時,所有電腦都會直接接收封包,不會先檢查是否為自己的封包,只會在接收完資料後再進行檢查

MAC的介紹及應用

MAC Address

  • 用來在網路世界中定位你的硬體設備的標籤

這是一個網路卡的唯一標識,製造時已燒錄至ROM中,且不會重複不過,作業系統的MAC位置是可以更改的MAC地址可以方便網路傳輸時直接連線到目的地,傳送到手機、電腦、網卡等

為何不可更改

因為網路卡在產出時就直接燒錄到ROM中,這是無法更改的記憶體

MAC 格式

MAC地址總共有6 Byte,通常以16進位表示,以下為示範:

xx:xx:xx:xx:xx:xx

很危險

如果有人想要攻擊你,只要得到你的MAC Address,就可以找到你的IP,接著查詢漏洞,直接攻擊你的電腦

MAC 的存取控制

在乙太網路中,剛剛提到的都是一起共用的,假如同時有兩個訊號發出就會發生碰撞,產生訊號重疊變成雜訊,最終被過濾掉,因此產生了許多資料碰撞處理的機制

  • CSMA
  • CSMA/CD
  • CSMA/CA
  • 還有更多

以上提到的機制都是機器在發生碰撞時應該採用的處理方法

網卡機制

每個流過的網路訊號,都會檢查MAC地址是否傳給自己,如果不是就丟掉因此,網卡只會接收廣播訊號和符合自己MAC地址的封包

另外一種情況是,若檢查碼(FCS)檢查不正確也會丟棄封包

以下是整理表:

類別 接收 丟棄
MAC 符合時 不符合

廣播訊號

廣播訊號的MAC地址為FF:FF:FF:FF:FF:FF,還有一種是群組地址,如01:00:5E:00:00:00,基本上在二進位中第一個bit必須是1,剩餘的可以自訂

CSMA / CD

CSMA全名為載波偵聽多重存取,這個概念可能比較抽象

簡單來說,當兩個機器都想要發送訊號時,這個機制會檢查線路中是否有人在使用資料傳輸如果沒有就開始傳輸

如果同時檢查到都沒有人傳輸,則會同時發出訊號,這時就會發生碰撞發送的兩台機器在發送時也會接收到訊號,判斷是否為自己的訊號,如果發現有雜訊,兩台機器就會停止發送,並重新尋找時間再發送訊號

總而言之,這個機制會檢查到碰撞發生時停止發送訊號,然後再重新發送

重新發送訊號方法

有三種模式:

  • 發現閒置時間後立即發送
  • 等待一段隨機時間再發送
  • 根據公式計算機率再重新傳送

如何得知對方的MAC地址

通常有兩種情況,知道和不知道知道對方的地址就可以直接發送;如果不知道,就需要使用以下方法:

  • ARP (Address Resolution Protocol)

這個方法利用剛提到的廣播方式(FF:FF:FF:FF:FF:FF)詢問對方的MAC地址不過,這個方法僅限於內部網路使用,畢竟你不可能直接發送到整個網路世界中

如何查詢紀錄

可以在cmd中輸入 arp -a,就可以看到你電腦中記錄過的MAC地址

當對方收到後會回應,接著就可以開始傳輸位置了

ARP Header

剛剛有提到要如何得知對方的MAC地址,就是使用廣播發送,但是在發送這個詢問廣播時也會有一個格式,如下圖:
ARP Header

  • Hardware Type:實體層類型
  • Protocol Type:上層協定類型 IPV4 / IPV6 ...
  • HAL (Hardware Address Length):實體位址長度 MAC位置
  • PAL (Protocol Address Length):協定位址長度 目標位置長度
  • Operation Code:1(詢問)、2(回覆)操作編碼
  • Sender Hardware Address:傳送端實體層位址 傳送者MAC
  • Sender Protocol Address:傳送端協定位址 傳送者IP
  • Target Hardware Address:接收端實體層位址 接收者MAC
  • Target Protocol Address:接收端協定位址 接收者IP

  • 範例 | 廣播詢問
    廣播詢問圖

  • 範例 | 回覆廣播
    回復廣播圖

如何攻擊

駭客會詢問每個IP地址,只要你的設備接收到廣播訊號並詢問其MAC地址,你的設備就一定會回復駭客就能知道在這個網路中有多少設備在使用,或是知道你在這個範圍中

  • 802.3標準

常見的通訊框有:

  • 10Base5、10Base2、10BaseT…
  • 100Base-TX、100Base-T1…
  • 1000Base-X、1000Base-T…
  • 2.5GBase-T、5GBase-T…
  • 10GBase-SR、10GBase-LR…

所使用的通訊框架都是MAC Protocol,不管速度如何

碰撞問題

碰撞檢測機制

首先,機器在檢測時不能確定封包是否已傳送完畢,也無法分辨是否為雜訊,因此我們設計了一套系統

CSMA系統會查看網路線的最長傳輸距離所需的時間,當有資料傳輸時會計算這個資料傳輸的時間是否小於所需時間如果大於,則代表有碰撞發生

如何避免碰撞

  • 使用環狀網路
    因為所有設備都在一個環上,每個設備都是環上的一個節點,可以處理訊號的傳遞不過,這種方式適合公司中使用,不適合大型網路

  • 使用星狀網路
    在星狀網路中,所有訊號的處理都由一台設備負責,因此每台連接的設備都是一個端口,也可以說是一個節點雖然這樣不會發生碰撞問題,但仍然採用CSMA/CD保護機制,因為兩個節點有可能同時發送訊號,導致雜訊

星狀網路還有一個特點,就是可以支援多種標準的網路傳輸,像是10BaseT、100BaseT/TX、1000BaseTX/FX等

檢測速度方式

自動協商(Auto Negotiation):互相偵測傳輸速率

故障處理

常見的問題 - 硬體錯誤

  • 沒有網路卡或網路卡驅動錯誤

    • 作業系統未識別網路卡
    • 安裝錯誤、型號或版本不一致
    • 驅動程式與作業系統衝突
  • 無法連接問題

    • 不正確的設定檔:IP、Netmask、Gateway、DNS
    • 網路介面已停用

常見的問題 - 人為因素

  • 連接線未正確插妥或鬆動

    • 連接線插錯連接埠
    • 連接線損壞或安裝錯誤
    • 硬體損毀(網路卡、網路設備等)
    • 網路中斷問題(經常或偶發)
  • 連接線未正確插妥、鬆動、損壞或受到干擾

    • 網路設定衝突(IP重複、Gateway失效或錯誤等)
    • 網路設備運作異常(供電不足、負載過重、過熱等)
    • 網路設備或網路卡運作異常(更新韌體或驅動程式)

troll

你可以把你的IP和Gateway設定與想整的人一模一樣,只要你先上網,對方就無法上網,因為IP會顯示該地址已在使用,因而不會發送任何訊號

常見的問題 - 使用體驗問題

  • 速度緩慢的問題

    • 線路被干擾(慎選佈線路徑、使用遮罩線路等)
    • 過多廣播問題(減少使用者、VLAN等)
    • 碰撞問題(不會發生於Switch中)
    • 對外網路頻寬不足(增加頻寬、內部頻寬限制或控制等)
    • 防火牆或頻寬管制器(QoS等)
  • 解決方式:使用工具檢測

    • 作業系統偵測
    • 主機板偵測
    • 網路工具或儀器偵測

乙太網路願景

速度越快,頻寬越高

  • 目前普及:100Mbps、1Gbps、2.5Gbps…
  • 商用使用:10Gbps、25Gbps、40Gbps…
  • 未來:100Gbps、200Gbps、400Gbps…

更便宜、更可靠

  • 部署方便、易於使用

更好的應用於服務上

功能在網路:

  • 資料儲存、線上資料庫等
  • 雲端計算、物聯網等