一、概述
網路資訊安全主要研究的是TCP/IP協議簇構建的局域網和互聯網的安全問題,
網路資訊安全是廣義上的軟體安全,
資訊安全之所以是一門自然科學,是因為它有完備的數學理論基礎,即密碼學(現代密碼學),
如今的資訊安全主要是保證互聯網上的資訊安全,
互聯網上的通訊安全唯一的密碼學解決方案是公開加密演算法,
資訊安全包括
- 資訊安全管理
- 物理場所安全
- 設備的硬體安全
- 軟體安全(作業系統/其他系統軟體應用軟體)
- 網路資訊安全
- 密碼學的應用
- 資訊隱藏
- 其他不常見技術,
攻擊技術
-
身份隱藏
-
踩點:獲取一些關于服務器的公開的資訊
網路踩點并不是犯罪行為,
-
掃描:
主機掃描:(不是網路犯罪的開始)掃描服務器是否能被訪問到;
埠掃描:(網路犯罪的開始)采用埠掃描工具,典型工具如SATAN,
-
查點:在掃描的基礎上查找被訪問的主機服務器上各種軟體的各種漏洞,
-
嗅探(Sniffer):在局域網上抓取資料包,
-
拒絕服務攻擊(DoS):黑客占用合法用戶提供的資源從而使合法用戶無法連接被攻擊的服務器,
-
口令猜測:
一個好的口令需要滿足長度至少8位,足夠隨機,字符字母數字交雜分布,
-
欺騙
-
會話劫持:通常在欺騙攻擊的基礎上進行
-
緩沖區溢位
-
病毒
-
蠕蟲
-
木馬
防范技術
-
主機加固:
-
密碼學:指基于馮諾依曼體系結構發展的現代密碼學
-
防火墻:保障邊界安全,控制內網與外網通信的資料包進出,
-
虛擬專用網(VPN):端到端(如兩個網關)之間建立一個資料包安全傳輸隧道,通常是基于密碼學的保護,
-
入侵檢測系統(IDS):可以放在網關與互聯網之間,也可也放在防火墻上,更多的放在內網上,
包括HIDS和NIDS:
- HIDS:基于主機的入侵檢測系統,通常放在局域網中重要的服務器主機上,檢測原理是檢查服務器的日志,所以HIDS只保護當前主機,不保護同一局域網中的其他主機,
- NIDS:基于網路的入侵檢測系統,原理是檢測局域網內的攻擊流量,所以HIDS可以保護同一局域網中的多個主機,
-
蜜罐(honeypot):不同于前幾個的被動防御技術,蜜罐是一種對攻擊方進行欺騙的主動防御技術 ,通過布置一些作為誘餌的主機、 網路服務 或者資訊,誘使攻擊方對它們實施攻擊,

網路資訊安全的原則
- 安全需要多種安全機制,安全強度等同于安全鏈路中最薄弱的環節
- 安全并不等同于加密,安全是一項系統的社會工程
- 安全也不等同于防火墻,防火墻不能防止內部的攻擊
- 對網路攻擊可以采取的防范對策:
-
保護(加密、防火墻、口令)
-
檢測(入侵檢測系統)
-
反應(自動改變口令,口令錯誤封鎖機制)
保護不是必須的,但檢測和反應才是必須的,
-
資訊安全的四個層面與關系
- 硬體安全:資訊系統安全的首要問題,包括硬體的穩定性、可靠性和可用性,
- 軟體安全:如保護資訊系統不被非法侵入,系統軟體和應用軟體不被非法賦值、篡改,不受惡意軟體侵害等
- 資料安全(傳統的資訊安全):采取措施確保資料免受非授權的泄露、篡改和毀壞,【真正最需要保護的】
- 安全管理:運行時突發事件的安全處理等,包括建立安全管理制度,開展安全審計和風險分析等,
系統硬體和作業系統安全是資訊安全的基礎,
密碼學和網路安全是資訊安全的核心和關鍵,
資訊系統安全是資訊安全的目標,
主要的網路安全威脅
-
偽裝或假冒
-
否認或抵賴
-
破壞完整性:資料傳輸程序中被改變,
-
破壞機密性
-
資訊量分析
-
重放:攻擊者截獲資料然后以攻擊者的名義發送,
-
重定向:實際攻擊物件是A,卻以B為跳板,
-
拒絕服務
-
惡意軟體
-
社會工程
二、TCP/IP協議簇

(一)資料鏈路層協議
資料鏈路層的資料包需要包含源MAC地址和目的MAC地址,
鏈路層由不同的局域網組成,有線的有以太網、令牌環網、令牌總線網,無限的有無線局域網,
-
ARP:以太網地址決議協議,將一臺主機的IP地址(IPv4)決議為網卡地址(MAC地址),且為單向協議
-
RARP:逆地址決議協議,可以把網卡地址轉化成IP地址,
安全隱患:容易遭受ARP毒害(使訪問者PC錯以為攻 擊者更改后的MAC地址是網關的MAC,導致網路不通,此種攻擊可讓攻擊者獲局域網上的資料包甚至可篡改資料包,且可讓網路上特定計算機或所有計算機無法正常連線),
-
ICMP:用于網路管理,
(二)網路層協議
網路層的資料包需要包含源IP地址和目的IP地址,
-
IP:
安全隱患:
- 提供面向無連接不可靠資料傳輸功能,不能為資料提供完整性、機密性
- 路由和分片機制——資料包內容易被篡改
- 對源IP地址不能進行認證——IP欺騙攻擊
- 可以設定“源路由”選項——源路由欺騙攻擊
- “IP分片包”的威脅——分片掃描(對掃描包進行分片進而繞過防火墻)和拒絕服務攻擊
-
ICMP:網路管理協議
安全隱患:
- ICMP echo廣播回應包——拒絕服務攻擊
- 利用隧道技術封裝成ICMP包來建立隱藏通道、穿越防火墻
(三)基于IP的傳輸層協議
傳輸層的資料包需要包含源埠和目標埠,
\(\color{red}{可靠性\not =安全性}\)
-
TCP:基于IP之上的可靠傳輸,我們需要掌握TCP的三次握手
缺點:
- 保障資料包被對方可靠接受的同時傳送效率會降低
安全隱患
- 三次握手的源IP地址可以是虛假的——拒絕服務攻擊
- TCP中的序列號并不是真正隨機——IP欺騙攻擊
- 可以定制所發送TCP包的標志位——隱蔽掃描
-
UDP:基于IP之上的不可靠傳輸,
缺點:
- 資料包易丟失,收到什么資料就傳遞什么資料,并且也不會備份資料,發送資料也不會關心對方是否已經正確接收到資料了
優點:
- 所有包都用來傳輸資料,效率提升,適用于對可靠性要求不高,但對傳輸效率有一定要求的應用,
安全隱患
- 無連接、不可靠的協議——拒絕服務攻擊
關于TCP在傳輸資料前的三次握手

隱患:SYN和ACK是標志位,可以修改,應答號可以猜測,IP地址偽造,
(四)應用層協議
1.基于TCP的應用層協議
- SMTP:電子郵件傳輸,提供服務需要打開的對應埠號為TCP25,
- HTTP:web通信,提供服務需要打開的對應埠號為TCP80,
- MIME:多用途網際郵件擴充協議,為HTTP服務,非單獨使用無埠號,
- RPC:不同計算機之間的遠程程序呼叫,與本地程序呼叫協議LPC相對應,
- TELNET:遠程登錄,提供服務需要打開的對應埠號為TCP23,
- rlogin & rsh:遠程登錄,提供服務需要打開的對應埠號為TCP512,
- FTP:檔案傳輸協議,提供服務需要打開的對應埠號為TCP20和TCP21,
- 基于TCP的DNS:域名傳輸,基于TCP的DNS埠號是TCP53,
域名服務器DNS:
服務器端普遍使用的是域名服務器BIND,客戶端使用的是負責訪問的決議器,由系統提供的函式庫來實作,
2.基于UDP的應用層協議
-
基于UDP的DNS:域名服務(或域名決議),域名和IP地址雙向轉換,基于UDP的DNS埠號是UDP53,
-
SNMP:簡單網路環境協議
-
NFS:網路檔案系統,
-
XDR:外部資料表示
-
ASN.1:資料表示,
3.應用層協議的安全隱患
- DNS協議的安全隱患:DNS快取可能被毒害——DNS欺騙(將域名決議成錯誤的IP地址,從而不能被引導至正確的服務器主機)、區域傳輸(基于TCP的DNS),
- 路由資訊的安全隱患:路由資訊被篡改——修改網路資料傳輸路徑,
- Web協議的安全隱患:Web語言的漏洞更多,
- 其他協議的安全隱患
(五)埠的分類
埠存盤字長有16bit,其中
-
1-1023:server(服務端)的埠號,是事先確定的服務器提供某項服務的埠號,對于不同服務端的一個服務而言,在不被修改的任何情況下,在任何時間空間訪問該服務的埠號始終一致,如server提供的web服務始終是80號埠,
-
1024-4999:client(客戶端,請求訪問端)的由作業系統確定的隨機埠號,即便對于同一個客戶端,在不同時刻埠號可能不一致,
-
5000-65535:提供一些特殊服務的埠號(如資料庫);用戶自定義服務器端;木馬的服務器埠號,
木馬不具備傳染性,但可以控制被種植的電腦;病毒和蠕蟲具有傳染性,
(六)IP地址與MAC地址
IPv4:IP地址的通用格式,字長是\(8\times4=32\)bit,IP地址分為公有IP地址和私有IP地址,
- 僅用于局域網的私有IP地址:192.168.#.# ; 172.#.#.#.# ; 10.10.#.#,通過私有IP地址可以在局域網內主機間的通信,
- 除了上面的三個私有IP地址之外,其余的都是公有IP地址,由運營商分配,通過公有IP地址可以直接訪問因特網,它是廣域網范疇內的,
IPv6:為替代IPv4而出現的IP地址格式,字長是\(32\times4=128\)bit,
MAC:主機的網卡地址,局域網上尋找目的主機,是一個主機不變的標識,字長是\(8\times6=48\)bit
下面是網路通信程序中的名稱(地址)間的轉換:
每一步轉換都存在被欺騙(例如ARP欺騙和DNS欺騙)的可能性,較安全的上網方式是通過IP地址或者MAC地址訪問,
(七)網路通信

網關并不關心上層協議堆疊,節約資源的同時保障了資料不被路由器等中間設備截獲,
三、TCP/IP通信的基本要素
包括源IP地址和目的IP地址、源MAC地址和目的MAC地址、源埠號和目的埠號,只有這四個確定了才能確定是哪一臺客戶機向哪一臺服務器請求什么服務,

四、ISO提出的OSI安全體系結構
1.安全服務
-
身份認證:確認是否是合法用戶,
-
訪問控制:在是合法用戶的情況下控制能夠訪問的資源范圍,
-
資料機密性:防止資料泄露的措施(如預防嗅探和資料加密),
-
資料完整性:防止非法篡改和破壞資訊,
-
抗否認:針對對方否認的防范措施(如數字簽名),
2.安全機制
-
加密機制
-
數字簽名
-
訪問控制機制
-
資料完整性機制
-
認證交換機制
-
通信業務填充機制:對通訊方式的研究,而非內容本身,
-
路由選擇控制機制
-
公證機制:第三方使用數字簽名為通信方簽發數字證書來實作,
五、網路安全服務與需求
現今的網路安全服務需要滿足
- 機密性:阻止非授權用戶非法獲得保密資訊,包括存盤的機密性和傳輸的機密性(物理保密、防竊聽、防輻射、資訊加密、通信業務填充機制)
- 完整性
- 身份認證性
- 訪問控制
- 不可否認性
- 可用性
六、密碼學
數字簽名:發送方用自己私鑰對訊息,加密就是該用戶對該訊息的數字簽名,可以保證發送方不可否認,
數字證書:數字證書是一個經CA認證中心數字簽名的包含公鑰擁有者資訊及其公鑰的檔案,
數字信封:在實際應用中,并不直接使用公開加密演算法加密明文,而僅使用它保護實際用于加密明文的對稱密鑰,
數字指紋:訊息的散列值(或MAC值),即訊息摘要,
(一)發展
1.幾個階段
-
傳統密碼學階段:一戰前的手工階段和一戰到二戰的機械階段都處于傳統密碼學階段,特點是演算法和密鑰必須保密,
N個人兩兩之間加密通信演算法數和密鑰數一共都需要\(\frac{N(N-1)}{2}\)個,
-
現代密碼學階段:隨著電子計算機的出現而進入現代密碼學階段,對密鑰保密,演算法可以公開,
-
對稱加密演算法:包括分組加密(如DES、3DES、IDEA、AES)和流(序列)加密(如RC4),
N個人兩兩之間加密通信演算法數一共只需要1個,密鑰數一共需要\(\frac{N(N-1)}{2}\)個,
-
公開加密演算法:有公鑰私鑰,常基于數學復雜問題,典型的演算法有D-H(有限域上基于離散對數問題)、RSA(基于大合數分解成大質數)、ECC(橢圓曲線點群上基于離散對數問題),
N個人兩兩之間加密通信演算法數一共只需要1個,密鑰數一共需要\(2N\)個(對于N個人,每個人只需要一對公鑰私鑰),
當前互聯網上唯一的密碼學解決方案
-
散列演算法:不同于前幾個實作的是機密性,散列演算法常用于實作認證性,且無需密鑰,典型的演算法有MD5、SHA-1,
N個人之間通信認證,僅需要一個演算法,不需要密鑰
-
-
(未來)量子密碼學階段
2.密碼學的四個空間
明文空間、密文空間、演算法空間、密鑰空間
3.理論不可破解和計算不可破解的加密演算法
包括
- 一次一密鑰(無實用價值:很難生成真正隨機的密鑰序列,即使生成也很難分發,密鑰和明文一樣長)
- 在現有商用將計算機條件下,112位的3DES演算法和1024位RSA演算法
(二)現代密碼學
1.對稱加密演算法
優點:速度快
缺點:密鑰分發難(可以用公開加密演算法實作密鑰的分發);加解密雙方都具有密鑰,所以不具備抗否認性,
對稱密碼演算法要求
- 演算法足夠強大,對截獲的密文或者已知明文密文對是計算出密鑰或明文是不可行的
- 不依賴于演算法的保密,而依賴于密鑰,這就是著名的Kerckhoff原則
- 正常加密解密要快,破譯越慢越好,
- 密文相對明文最好無資料位擴展
- 好的機密演算法具有雪崩效應
- 好的加密演算法的密文很難被壓縮(所以先壓縮后加密效果更好)
單一性距離
在沒有明密文對,只有已知密文的情況下,攻擊者需要自己識別明文,而單一性距離就是用來衡量攻擊者的識別難度,
計算方法:
\[d=K/6.8(K是加密演算法的密鑰長度) \]例如DES的單一性距離是\(\frac{56}{6.8}=8.2\),IDEA的單一性距離是\(\frac{128}{6.8}=19\),也就是說當攻擊者攻擊的目標加密演算法是DES時,解出來一個明文連續8-9個位元組或者超過8-9個位元組是合理的或是有意義的,則該明文很大程度上就是真正的明文,
所以,單一性距離越大的演算法越難破解,
-
對于一個含有格式的檔案頭的明文易于識別
-
對于一個二進制明文壓縮檔案很難識別,
(1)DES/2DES/3DES
-
DES安全問題:①DES的56bit密鑰太小,易受窮舉攻擊;②DES的迭代次數(16次)太少(16次恰巧能抵抗差分分析);③S盒中可能有不安全因素;④DES的一些關鍵部分不應該保密,
-
2DES安全問題:易受相遇攻擊,
相遇攻擊:
假設 E 和 D 分別是加密函式和解密函式,k1 和 k2 分別是兩次加密使用的密鑰,則我們有
\[C=E_{k2}(E_{k1}(P)) \]\[P=D_{k2}(D_{k1}(C)) \]則我們可以推出
\[E_{k1}(P)=D_{k2}(C) \]那么,當用戶知道一對明文和密文時
- 攻擊者可以列舉所有的 k1,將 P 所有加密后的結果存盤起來,并按照密文的大小進行排序,
- 攻擊者進一步列舉所有的k2,將密文 C 進行解密得到 C1,在第一步加密后的結果中搜索 C1,如果搜索到,則我們在一定程度上可以認為我們找到了正確的 k1 和 k2,
- 如果覺得第二步中得到的結果不保險,則我們還可以再找一些明密文對進行驗證,
當k1和k2都是\(n\ bit\)時,原先我們暴力列舉需要\(O(n^2)\),現在我們只需要 \(O(nlog_2n)\),因為列舉k1其實也就列舉了k2,
那么對于密鑰長度固定是56位的2重DES演算法,安全性并不比DES高了多少,
-
3DES實作:使用3個密鑰,執行三次DES演算法,加密程序是加密-解密-加密,采用的密鑰是K1-K2-K3,
\[C=E_{K3}(D_{K2}(E_{K1}(M))) \]起初3個密鑰不相同,導致密鑰過長(168bit),后來令K1=K3,即只使用2個密鑰(112bit),
其實這樣先加密后解密的設計一定程度上也兼容了最初的一重DES演算法,
2.公開加密演算法
優點:產生密鑰個數少;可以實作密鑰的分配和交換;數字簽名;適用于互聯網環境,
缺點:密鑰長,速度慢,不太適合直接加密明文,
應用:
-
實作機密性:A用B的公鑰加密\(\rightarrow\)B用自己的私鑰解密,
-
數字簽名實作不可否認性:A用自己的私鑰加密\(\rightarrow\)B用A的公鑰解密,
(解出來說明只有A可以加密,A無法否認,因為只有A知道自己的私鑰并可以發送這樣的訊息)
保證公鑰不被篡改的解決方案:
? 通信的一方A可以從可信的第三方CA處得到對方B的公鑰,CA以自己的私鑰加密B公鑰做擔保,且CA的公鑰眾所周知(任何人都知道),因而CA的公鑰不會被篡改,所以A得到了被CA的私鑰鑰加密后的B公鑰可以直接通過眾所周知的CA公鑰解密得到B公鑰,B對A同樣如此,
3.散列演算法
不可逆、無密鑰、存在沖突
應用:
- 實作完整性:通常是將明文和明文的哈希值一起加密發送,接收方收到后對明文做哈希對比收到的哈希值來確保完整性,
(三)PGP加密系統

1.基于PGP的加密發送
如上圖,下面是對發送方如何基于PGP加密系統發送資訊的解讀:
-
用發送方的私鑰對哈希后的明文進行基于RSA的數字簽名,
-
簽名跟明文拼接得到長明文P1,
-
對長明文壓縮得到較長的明文P1.Z,
-
發送方隨機生成一個對稱加密演算法IDEA的會話密鑰\(K_s\)(要確保 ①每次生成的不一樣,且 ②是強密鑰),對較長的明文P1.Z進行IDEA加密得到密文,
同樣是為了提高效率采用的是對稱加密演算法,
-
為了讓接收方也得到會話密鑰,對該會話密鑰用接收方的公鑰進行RSA加密,
對IDEA會話密鑰基于RSA加密可以保證,
同時會話密鑰比較短,因此不用擔心效率問題,
-
加密后的密鑰跟IDEA加密后的密文拼接得到的便是數字信封,然后對其base64編碼后發送到接收方,
2.功能分析
- 機密性和完整性:PGP加密系統的安全性取決于RSA和IDEA的破解難度,所以保證了機密性的同時確保了哈希值不被修改,進而保證了資料完整性,
- 數字簽名:對明文的散列值簽名,保證完整性的同時簽名速度更快,一定程度上認證了發送方身份,
- 壓縮:先簽名后壓縮再加密,如果先加密后壓縮效果壓縮的很差,壓縮同時可以補充base64編碼導致的膨脹,
- 數字信封:既有RSA加密的保密(IDEA密鑰的安全傳遞)又有IDEA演算法的快捷,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301410.html
標籤:其他
下一篇:作業中的滲透測驗流程

