OSI(OpenSystem Interconnect),即開放式系統互聯。 通常都叫OSI參考模型,是ISO(國際標準化組織)組織在1985年研究的網絡互聯模型。算法
網絡協議的簡介:緩存
定義:協議是網絡中計算機或設備之間進行通訊的一系列規則集合。安全
什麼是規則?服務器
交通中的紅黃綠燈:紅燈停,綠燈行就是規則。cookie
我國汽車靠右行就是規則。網絡
OSI七層模型less
OSI(OpenSystem Interconnect),即開放式系統互聯。 通常都叫OSI參考模型,是ISO(國際標準化組織)組織在1985年研究的網絡互聯模型。工具
(1)物理層(Physical Layer)編碼
物理層是OSI參考模型的最低層,它利用傳輸介質爲數據鏈路層提供物理鏈接。它主要關心的是經過物理鏈路從一個節點向另外一個節點傳送比特流,物理鏈路多是銅線、衛星、微波或其餘的通信媒介。加密
(2)數據鏈路層(Data Link Layer)
數據鏈路層是爲網絡層提供服務的,解決兩個相鄰結點之間的通訊問題,傳送的協議數據單元稱爲數據幀。
(3)網絡層(Network Layer)
網絡層是爲傳輸層提供服務的,傳送的協議數據單元稱爲數據包或分組。
(4)傳輸層(Transport Layer)
傳輸層的做用是爲上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。
傳輸層傳送的協議數據單元稱爲段或報文。
(5)會話層(Session Layer)
會話層主要功能是管理和協調不一樣主機上各類進程之間的通訊(對話),即負責創建、管理和終止應用程序之間的會話。
(6)表示層(Presentation Layer)
表示層處理流經結點的數據編碼的表示方式問題,以保證一個系統應用層發出的信息可被另外一系統的應用層讀出。若是必要,該層可提供一種標準表示形式,用於將計算機內部的多種數據表示格式轉換成網絡通訊中採用的標準表示形式。數據壓縮和加密也是表示層可提供的轉換功能之一。
(7)應用層(Application Layer)
應用層是OSI參考模型的最高層,是用戶與網絡的接口。該層經過應用程序來完成網絡用戶的應用需求,如文件傳輸、收發電子郵件等。
TCP/IP協議
譯名爲傳輸控制協議/因特網互聯協議,又名網絡通信協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。
TCP/IP定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成本身的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求從新傳輸,直到全部數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。
OSI模型與TCP/IP協議的對應
左邊是OSI模型,右邊是TCPIP協議棧分層模型,能夠看得出,兩個模型有很清晰的對應關係。
兩個模型的下四層是一一對應的,而OSI模型的上三層對應到TCPIP協議的應用層,因此在談論「應用層」概念的時候,要注意討論的是哪一個模型。
數據傳輸的協議單元
依據標準的OSI術語,每層間對應的「協議數據單元」(Protocol Data Unit,簡稱PDU)的名稱都是不一樣的
物理層爲「位」(bit),即日常講的二進制數位流,在物理傳輸介質上以二進制數字信號傳輸(簡單的如高電平表明「1」,底電平表明「0」)。
物理層的傳輸介質包括:
同軸電纜(coaxical cable):細纜和粗纜,目前已經不經常使用;
雙絞線(twistedpair):UTP(Unshielded Twisted Paired , 非屏蔽雙絞線),這種即平時經常使用的網線;STP (Shielded Twisted Pair,屏蔽雙絞線),這種線適用於電磁干擾惡劣的工業環境;(這兩種線使用銅線作介質,到用戶家雖然看起來就一兩根,但在運營商的管線裏是幾千條几百條線在一塊兒的大對線纜,常常是偷銅者的目標)
光纖(OpticalFiber):使用光信號來傳播數字信號的介質,坐火車處處看到路邊寫的大標語:「光纖沒銅,挖了沒用」就是指這個;
無線電波(wirelessradio);
數據鏈路層PDU名稱叫數據幀「Frame」,例如幀中繼技術名稱叫Frame Relay ,其數據單元名字叫「幀」,對以太網來講是以太幀。
網絡層PDU的名稱叫數據包Packet, 由於IP協議在這一層,因此互聯網上的數據通常被稱爲IP數據包。
傳輸層PDU的名稱叫數據段Segment ,這個層面最著名的是傳輸控制協議TCP和用戶數據報協議UDP。
會話層Session 的PDU叫SPDU,會晤協議數據單元;
表示層Presentation的PDU叫PPDU,表示協議數據單元;
應用層Application的PDU叫APDU,應用協議數據單元;
數據封包和解包過程
用戶數據報文的一個封裝過程,應用程序的數據使用TCP協議進行傳輸,用戶數據被切割成合適的數據片斷後,被加上網絡層協議IP的首部字節,成爲IP數據包,而後被加上數據鏈路層的以太網首部,成爲以太網數據幀,再由以太網驅動程序將幀轉化爲二進制位流,在物理層面傳送。
數據包傳輸過程
路由器是跨越物理層、數據鏈路層、網絡層的設備。
最簡單的路由器的概念是一臺裝有兩塊網卡的主機,主機內部安裝的路由軟件能夠根據IP地址在兩塊網卡間轉發IP數據包,兩塊網卡各有一個IP地址,具備兩個物理接口的路由器同這個道理是相似的。
由上圖圖四能夠看到,IP地址的概念是屬於IP協議,IP協議是屬於OSI模型第三層網絡層的,全部跨越網絡層的設備都須要有IP地址。最左邊的主機同路由器的左側接口各有一個IP地址,使用IP協議通訊;最右邊的服務器和路由器右側接口各有一個IP地址,使用IP協議通訊;路由器的不一樣接口的IP地址是屬於不一樣的IP子網的,路由器就是在不一樣IP子網間傳送IP數據包的設備,路由是根據IP數據包裏的地址選擇正確傳遞路徑的過程。
TCP/IP 四層模型
ARP協議:
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。
原理:
主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的全部主機,並接收返回消息,以此肯定目標的物理地址;收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留必定時間,下次請求時直接查詢ARP緩存以節約資源。地址解析協議是創建在網絡中各個主機互相信任的基礎上的,網絡上的主機能夠自主發送ARP應答消息,其餘主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存。
網絡接口層的安全威脅
在網絡中,flooding是指從任何節點經過一個路由器發送的信息包會被髮送給與該路由器相連的全部其餘節點(除了發送信息包出來的那個節點)。
在典型的MAC flooding中,攻擊者能讓目標網絡中的交換機不斷泛洪大量不一樣源MAC地址的數據包,致使交換機內存不足以存放正確的MAC地址和物理端口號相對應的關係表。若是攻擊成功,交換機會進入failopen模式,全部新進入交換機的數據包會不通過交換機處理直接廣播到全部的端口(相似HUB集線器的功能)。攻擊者能進一步利用嗅探工具(例如Wireshark)對網絡內全部用戶的信息進行捕獲,從而能獲得機密信息或者各類業務敏感信息。
損壞:天然災害、動物破壞、老化、誤操做
干擾:大功率電器/電源線路/電磁輻射
電磁泄漏:傳輸線路電磁泄漏
搭線竊聽:物理搭線
欺騙:ARP欺騙
嗅探:常見二層協議是明文通訊的(以太、arp等)
拒絕服務:macflooding,arpflooding等
arp欺騙:
攻擊者在局域網網段發送虛假的IP/MAC對應信息,篡改網關MAC地址,使本身成爲假網關
受害者將數據包發送給假網關(攻擊者)
假網關(攻擊者)分析接收到的數據包,把有價值的數據包記錄下來(好比QQ以及郵箱登陸數據包)
假網關再把數據包轉發給真正的網關
互聯網網絡層
譯名爲傳輸控制協議/因特網互聯協議,又名網絡通信協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。
TCP/IP定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成本身的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求從新傳輸,直到全部數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。
IP協議簡介:
IP協議是用於將多個包交換網絡鏈接起來的,它在源地址和目的地址之間傳送一種稱之爲數據包的東西,它還提供對數據大小的從新組裝功能,以適應不一樣網絡對包大小的要求。
IP實現兩個基本功能:尋址和分段。IP能夠根據數據包包頭中包括的目的地址將數據報傳送到目的地址,在此過程當中IP負責選擇傳送的道路,這種選擇道路稱爲路由功能。若是有些網絡內只能傳送小數據報,IP能夠將數據報從新組裝並在報頭域內註明。IP模塊中包括這些基本功能,這些模塊存在於網絡中的每臺主機和網關上,並且這些模塊(特別在網關上)有路由選擇和其它服務功能。對IP來講,數據報之間沒有什麼聯繫,對IP很差說什麼鏈接或邏輯鏈路。
互聯網層網絡安全威脅
傳輸層
IP分片技術
以太網的MTU是1500,你能夠用 netstat -i 命令查看這個值。若是IP層有數據包要傳,並且數據包的長度超過了MTU,那麼IP層就要對數據包進行分片(fragmentation)操做,使每一片的長度都小於或等於MTU。咱們假設要傳輸一個UDP數據包,以太網的MTU爲1500字節,通常IP首部爲20字節,UDP首部爲8字節,數據的淨荷(payload)部分預留是1500-20-8=1472字節。若是數據部分大於1472字節,就會出現分片現象。
IP分片攻擊
若是有意發送總長度超過65535的IP碎片,一些老的系統內核在處理的時候就會出現問題,致使崩潰或者拒絕服務。另外,若是分片之間偏移量通過精心構造,一些系統就沒法處理,致使死機。因此說,漏洞的原由是出在重組算法上。pingo‘ death是利用ICMP協議的一種碎片攻擊。攻擊者發送一個長度超過65535的EchoRequest數據包,目標主機在重組分片的時候會形成事先分配的65535字節緩衝區溢出,系統一般會崩潰或掛起。ping不就是發送ICMPEcho Request數據包的嗎?讓咱們嘗試攻擊一下吧!無論IP和ICMP首部長度了,數據長度反正是多多益善,就65535吧
IP數據包
數據包的結構:數據包的結構很是複雜,不是三言兩語可以說清的,在這裏主要了解一下它的關鍵構成就能夠了,這對於理解TCP/IP協議的通訊原理是很是重要的。數據包主要由「目的IP地址」、「源IP地址」、「淨載數據」等部分構成,包括包頭和包體,包頭是固定長度,包體的長度不定,各字段長度固定,雙方的請求數據包和應答數據包的包頭結構是一致的,不一樣的是包體的定義。數據包的結構與咱們日常寫信很是相似,目的IP地址是說明這個數據包是要發給誰的,至關於收信人地址;源IP地址是說明這個數據包是發自哪裏的,至關於發信人地址;而淨載數據至關於信件的內容。正是由於數據包具備這樣的結構,安裝了TCP/IP協議的計算機之間才能相互通訊。咱們在使用基於TCP/IP協議的網絡時,網絡中其實傳遞的就是數據包。理解數據包,對於網絡管理的網絡安全具備相當重要的意義。
咱們能夠用一個形象一些的例子對數據包的概念加以說明:咱們在郵局郵寄產品時,雖然產品自己帶有本身的包裝盒,可是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱裏,這樣纔可以郵寄。這裏,產品包裝盒至關於數據包,裏面放着的產品至關於可用的數據,而專用紙箱就至關於幀,且一個幀中只有一個數據包。「包」聽起來很是抽象,那麼是否是不可見的呢?經過必定技術手段,是能夠感知到數據包的存在的。 就是用數據包捕獲軟件Iris捕獲到的數據包的界面圖,在此,你們能夠很清楚地看到捕獲到的數據包的MAC地址、IP地址、協議類型端口號等細節。經過分析這些數據,網管員就能夠知道網絡中到底有什麼樣的數據包在活動了。
TCP/UDP協議
面向鏈接的TCP協議:
TCP(TransmissionControl Protocol,傳輸控制協議)是基於鏈接的協議,也就是說,在正式收發數據前,必須和對方創建可靠的鏈接。一個TCP鏈接必需要通過三次「對話」才能創建起來,也就是所謂的」TCP的三次握手」。
面無鏈接的UDP協議:
UDP(UserData Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非鏈接的協議,它不與對方創建鏈接,而是直接就把數據包發送過去!
「面向鏈接」就是在正式通訊前必需要與對方創建起鏈接。好比你給別人打電話,必須等線路接通了、對方拿起話筒才能相互通話。
TCP的三次握手:
其中的過程很是複雜,咱們這裏只作簡單、形象的介紹,你只要作到可以理解這個過程便可。咱們來看看這三次對話的簡單過程:主機A向主機B發出鏈接請求數據包:「我想給你發數據,能夠嗎?」,這是第一次對話;主機B向主機
A發送贊成鏈接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工做)的數據包:「能夠,你何時發?」,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:「我如今就發,你接着吧!」,這是第三次對話。三次「對話」的目的是使數據包的發送和接收同步,通過三次「對話」以後,主機A才向主機B正式發送數據。
「面向非鏈接」就是在正式通訊前沒必要與對方先創建鏈接,無論對方狀態就直接發送。與手機短信很是類似:你在發短信的時候,只須要輸入對方手機號就OK了。
TCP:FTPHTTP POP IMAP SMTP TELNET SSH
UDP
Q聊天,在線視頻RTSP,網絡語音電話VoIP
第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP鏈接成功)狀態,完成三次握手。完成三次握手,客戶端與服務器開始傳送數據。
傳輸層的安全威脅
在網絡中,flooding是指從任何節點經過一個路由器發送的信息包會被髮送給與該路由器相連的全部其餘節點(除了發送信息包出來的那個節點)。
在典型的MAC flooding中,攻擊者能讓目標網絡中的交換機不斷泛洪大量不一樣源MAC地址的數據包,致使交換機內存不足以存放正確的MAC地址和物理端口號相對應的關係表。若是攻擊成功,交換機會進入failopen模式,全部新進入交換機的數據包會不通過交換機處理直接廣播到全部的端口(相似HUB集線器的功能)。攻擊者能進一步利用嗅探工具(例如Wireshark)對網絡內全部用戶的信息進行捕獲,從而能獲得機密信息或者各類業務敏感信息。
拒絕服務:syn flood/udp flood/Smurf欺騙:TCP會話劫持竊聽:嗅探僞造:數據包僞造
應用層的安全威脅
域名解析:DNS電子郵件:SMTP/POP3文件傳輸:FTP網頁瀏覽:HTTP……
拒絕服務:超長URL連接欺騙:跨站腳本、釣魚式攻擊、cookie欺騙竊聽:嗅探僞造:應用數據篡改暴力破解:應用認證口令暴力破解等……