怎么文檔密碼(如何給文檔加密碼)

      網(wǎng)友投稿 561 2022-06-02

      前言

      1?IP欺騙

      IP是什么

      在網(wǎng)絡(luò)中,所有的設(shè)備都會分配一個地址。這個地址就仿佛小藍的家地址「?多少號多少室」,這個號就是分配給整個子網(wǎng)的,「?室」對應(yīng)的號碼即分配給子網(wǎng)中計算機的,這就是網(wǎng)絡(luò)中的地址。「號」對應(yīng)的號碼為網(wǎng)絡(luò)號,「?室」對應(yīng)的號碼為主機號,這個地址的整體就是?IP地址。

      通過IP地址我們能知道什么?

      通過?IP?地址,我們就可以知道判斷訪問對象服務(wù)器的位置,通過這個?IP?地址就可以判斷訪問對象服務(wù)器的位置,從而將消息發(fā)送到服務(wù)器。一般發(fā)送者發(fā)出的消息首先經(jīng)過子網(wǎng)的集線器,轉(zhuǎn)發(fā)到最近的路由器,然后根據(jù)路由位置訪問下一個路由器的位置,直到重點

      IP欺騙技術(shù)

      騙唄,拐騙,誘騙!

      IP?欺騙技術(shù)就是?偽造某臺主機的?IP?地址的技術(shù)。通過IP?地址的偽裝使得某臺主機能夠?偽裝另外的一臺主機,而這臺主機往往具有某種特權(quán)或者被另外的主機所信任。

      假設(shè)現(xiàn)在有一個合法用戶?(1.1.1.1)已經(jīng)同服務(wù)器建立正常的連接,攻擊者構(gòu)造攻擊的?TCP?數(shù)據(jù),偽裝自己的?IP?為?1.1.1.1,并向服務(wù)器發(fā)送一個帶有?RSI?位的?TCP?數(shù)據(jù)段。服務(wù)器接收到這樣的數(shù)據(jù)后,認為從?1.1.1.1發(fā)送的連接有錯誤,就會清空緩沖區(qū)中建立好的連接。

      這時,如果合法用戶?1.1.1.1再發(fā)送合法數(shù)據(jù),服務(wù)器就已經(jīng)沒有這樣的連接了,該用戶就必須從新開始建立連接。攻擊時,偽造大量的IP地址,向目標發(fā)送?RST?數(shù)據(jù),使服務(wù)器不對合法用戶服務(wù)。雖然IP地址欺騙攻擊有著相當(dāng)難度,但我們應(yīng)該清醒地意識到,這種攻擊非常廣泛,入侵往往從這種攻擊開始。

      2?SYN?Flooding

      SYN?Flooding簡介

      拒絕服務(wù)攻擊(DDoS)從1970?年出現(xiàn)直到今天都依然在作祟,并給全球范圍內(nèi)的各大組織帶來了不可估量的損失。?SYN?Flood是互聯(lián)網(wǎng)上最經(jīng)典的DDoS攻擊方式之一,最早出現(xiàn)于?1999?年左右,雅虎是當(dāng)時最著名的受害者。?SYN?Flood攻擊利用了?TCP三次握手的缺陷,能夠以較小代價使目標服務(wù)器無法響應(yīng),且難以追查。

      怎么給文檔加密碼(如何給文檔加密碼)

      SYN?flood是一種常見的?DOS(denial?of?service拒絕服務(wù))和?DDos(distributed?denial?of?serivce?分布式拒絕服務(wù))攻擊方式。這是一種使用TCP協(xié)議缺陷,發(fā)送大量的?偽造的?TCP?連接請求,使得被攻擊方?CPU?或內(nèi)存資源耗盡,最終導(dǎo)致被攻擊方無法提供正常的服務(wù)。

      TCP?SYN?Flood攻擊原理

      TCP?SYN?Flood攻擊利用的是?TCP的三次握手(?SYN?->?SYN/ACK?->?ACK),假設(shè)連接發(fā)起方是A,連接接受方是?B,即?B?在某個端口(?Port)上監(jiān)聽A發(fā)出的連接請求,過程如下圖所示,左邊是A,右邊是B。

      A?首先發(fā)送?SYN(Synchronization)消息給?B,要求?B?做好接收數(shù)據(jù)的準備;B?收到后反饋?SYN-ACK(Synchronization-Acknowledgement)?消息給A,這個消息的目的有兩個:

      向?A?確認已做好接收數(shù)據(jù)的準備,

      同時要求?A?也做好接收數(shù)據(jù)的準備,此時?B?已向?A?確認好接收狀態(tài),并等待?A?的確認,連接處于?半開狀態(tài)(Half-Open)?,顧名思義只開了一半;A?收到后再次發(fā)送?ACK?(Acknowledgement)?消息給B,向?B?確認也做好了接收數(shù)據(jù)的準備,至此三次握手完成,「?連接?」就建立了,

      大家注意到?jīng)]有,最關(guān)鍵的一點在于雙方是否都按對方的要求進入了?可以接收消息的狀態(tài)。而這個狀態(tài)的確認主要是雙方將要使用的?消息序號(SquenceNum),?TCP為保證消息按發(fā)送順序抵達接收方的上層應(yīng)用,需要用?消息序號來標記消息的發(fā)送先后順序的。

      TCP是「?雙工」(Duplex)連接,同時支持雙向通信,也就是雙方同時可向?qū)Ψ桨l(fā)送消息,其中?SYN和?SYN-ACK消息開啟了A→B的單向通信通道(B?獲知了?A?的消息序號);?SYN-ACK和?ACK消息開啟了B→A單向通信通道(A獲知了B的消息序號)。

      上面討論的是雙方在誠實守信,正常情況下的通信。

      但實際情況是,網(wǎng)絡(luò)可能不穩(wěn)定會丟包,使握手消息不能抵達對方,也可能是對方故意不按規(guī)矩來,故意延遲或不發(fā)送握手確認消息。

      假設(shè)?B?通過某?TCP端口提供服務(wù),B?在收到?A?的?SYN消息時,積極的反饋了?SYN-ACK消息,使連接進入?半開狀態(tài),因為?B?不確定自己發(fā)給?A?的?SYN-ACK消息或?A?反饋的?ACK?消息是否會丟在半路,所以會給每個待完成的半開連接都設(shè)一個?Timer,如果超過時間還沒有收到?A?的?ACK消息,則重新發(fā)送一次?SYN-ACK消息給A,直到重試超過一定次數(shù)時才會放棄。

      B?為幫助?A?能順利連接,需要?分配內(nèi)核資源維護半開連接,那么當(dāng)?B?面臨海量的連接?A?時,如上圖所示,?SYN?Flood攻擊就形成了。攻擊方?A?可以控制肉雞向?B?發(fā)送大量?SYN?消息但不響應(yīng)?ACK?消息,或者干脆偽造?SYN?消息中的?Source?IP,使?B?反饋的?SYN-ACK消息石沉大海,導(dǎo)致?B?被大量注定不能完成的半開連接占據(jù),直到資源耗盡,停止響應(yīng)正常的連接請求。

      3?UDP?Flooding

      UDP洪泛是也是一種拒絕服務(wù)攻擊,將大量的用戶數(shù)據(jù)報協(xié)議(?UDP)數(shù)據(jù)包發(fā)送到目標服務(wù)器,目的是壓倒該設(shè)備的處理和響應(yīng)能力。防火墻保護目標服務(wù)器也可能因?UDP泛濫而耗盡,從而導(dǎo)致對合法流量的拒絕服務(wù)。

      UDP?Flood攻擊如何工作?

      UDP?Flood主要通過利用服務(wù)器響應(yīng)發(fā)送到其中一個端口的?UDP數(shù)據(jù)包所采取的步驟。在正常情況下,當(dāng)服務(wù)器在特定端口接收到?UDP數(shù)據(jù)包時,會經(jīng)過兩個步驟:

      服務(wù)器首先檢查是否正在運行正在偵聽指定端口的請求的程序。

      如果沒有程序在該端口接收數(shù)據(jù)包,則服務(wù)器使用?ICMP?(ping)數(shù)據(jù)包進行響應(yīng),以通知發(fā)送方目的地不可達。

      首先,接待員接收到呼叫者要求連接到特定房間的電話。接待員然后需要查看所有房間的清單,以確保客人在房間中可用,并愿意接聽電話。碰巧的是,此時如果突然間所有的電話線同時亮起來,那么他們就會很快就變得不堪重負了。

      當(dāng)服務(wù)器接收到每個新的?UDP數(shù)據(jù)包時,它將通過步驟來處理請求,并利用該過程中的服務(wù)器資源。發(fā)送?UDP報文時,每個報文將包含源設(shè)備的?IP地址。在這種類型的?DDoS攻擊期間,攻擊者通常不會使用自己的真實?IP地址,而是會欺騙?UDP數(shù)據(jù)包的源?IP地址,從而阻止攻擊者的真實位置被暴露并潛在地飽和來自目標的響應(yīng)數(shù)據(jù)包服務(wù)器。

      由于目標服務(wù)器利用資源檢查并響應(yīng)每個接收到的?UDP數(shù)據(jù)包的結(jié)果,當(dāng)接收到大量?UDP數(shù)據(jù)包時,目標的資源可能會迅速耗盡,導(dǎo)致對正常流量的拒絕服務(wù)。

      如何緩解?UDP洪水攻擊?

      大多數(shù)操作系統(tǒng)部分限制了?ICMP報文的響應(yīng)速率,以中斷需要?ICMP?響應(yīng)的?DDoS攻擊。這種緩解的一個缺點是在攻擊過程中,合法的數(shù)據(jù)包也可能被過濾。如果?UDP?Flood的容量足夠高以使目標服務(wù)器的防火墻的狀態(tài)表飽和,則在服務(wù)器級別發(fā)生的任何緩解都將不足以應(yīng)對目標設(shè)備上游的瓶頸。

      4?TCP?重置攻擊

      在?TCP重置攻擊中,攻擊者通過向通信的一方或雙方發(fā)送偽造的消息,告訴它們立即斷開連接,從而使通信雙方連接中斷。正常情況下,如果客戶端收發(fā)現(xiàn)到達的報文段對于相關(guān)連接而言是不正確的,?TCP就會發(fā)送一個重置報文段,從而導(dǎo)致?TCP連接的快速拆卸。

      TCP重置攻擊利用這一機制,通過向通信方發(fā)送偽造的重置報文段,欺騙通信雙方提前關(guān)閉?TCP?連接。如果偽造的重置報文段完全逼真,接收者就會認為它有效,并關(guān)閉?TCP連接,防止連接被用來進一步交換信息。服務(wù)端可以創(chuàng)建一個新的?TCP連接來恢復(fù)通信,但仍然可能會被攻擊者重置連接。萬幸的是,攻擊者需要一定的時間來組裝和發(fā)送偽造的報文,所以一般情況下這種攻擊只對長連接有殺傷力,對于短連接而言,你還沒攻擊呢,人家已經(jīng)完成了信息交換。

      從某種意義上來說,偽造?TCP報文段是很容易的,因為?TCP/IP都沒有任何內(nèi)置的方法來驗證服務(wù)端的身份。有些特殊的?IP?擴展協(xié)議(例如?IPSec?)確實可以驗證身份,但并沒有被廣泛使用。客戶端只能接收報文段,并在可能的情況下使用更高級別的協(xié)議(如?TLS?)來驗證服務(wù)端的身份。但這個方法對?TCP重置包并不適用,因為?TCP重置包是?TCP協(xié)議本身的一部分,無法使用更高級別的協(xié)議進行驗證。

      5.?模擬攻擊

      以下實驗是在?OSX?系統(tǒng)中完成的,其他系統(tǒng)請自行測試。

      現(xiàn)在來總結(jié)一下偽造一個?TCP重置報文要做哪些事情:

      嗅探通信雙方的交換信息。

      截獲一個?ACK?標志位置位?1?的報文段,并讀取其?ACK?號。

      偽造一個?TCP?重置報文段(?RST?標志位置為?1),其序列號等于上面截獲的報文的?ACK?號。這只是理想情況下的方案,假設(shè)信息交換的速度不是很快。大多數(shù)情況下為了增加成功率,可以連續(xù)發(fā)送序列號不同的重置報文。

      將偽造的重置報文發(fā)送給通信的一方或雙方,時其中斷連接。

      為了實驗簡單,我們可以使用本地計算機通過?localhost?與自己通信,然后對自己進行?TCP?重置攻擊。需要以下幾個步驟:

      在兩個終端之間建立一個?TCP?連接。

      編寫一個能嗅探通信雙方數(shù)據(jù)的攻擊程序。

      修改攻擊程序,偽造并發(fā)送重置報文。

      下面正式開始實驗。

      建立?TCP?連接

      可以使用?netcat?工具來建立?TCP?連接,這個工很多操作系統(tǒng)都預(yù)裝了。打開第一個終端窗口,運行以下命令:

      $nc?-nvl?8000

      這個命令會啟動一個?TCP?服務(wù),監(jiān)聽端口為?8000?。接著再打開第二個終端窗口,運行以下命令:

      $nc?127.0.0.1?8000

      該命令會嘗試與上面的服務(wù)建立連接,在其中一個窗口輸入一些字符,就會通過?TCP?連接發(fā)送給另一個窗口并打印出來。

      嗅探流量

      編寫一個攻擊程序,使用?Python?網(wǎng)絡(luò)庫?scapy?來讀取兩個終端窗口之間交換的數(shù)據(jù),并將其打印到終端上。代碼比較長,下面為一部份,完整代碼后臺回復(fù)?TCP攻擊,代碼的核心是調(diào)用?scapy?的嗅探方法:

      這段代碼告訴?scapy?在?lo0?網(wǎng)絡(luò)接口上嗅探數(shù)據(jù)包,并記錄所有?TCP?連接的詳細信息。

      iface?:?告訴?scapy?在?lo0?(localhost)網(wǎng)絡(luò)接口上進行監(jiān)聽。

      lfilter?:?這是個過濾器,告訴?scapy?忽略所有不屬于指定的?TCP?連接(通信雙方皆為?localhost?,且端口號為?8000?)的數(shù)據(jù)包。

      prn?:?scapy?通過這個函數(shù)來操作所有符合?lfilter?規(guī)則的數(shù)據(jù)包。上面的例子只是將數(shù)據(jù)包打印到終端,下文將會修改函數(shù)來偽造重置報文。

      count?:?scapy?函數(shù)返回之前需要嗅探的數(shù)據(jù)包數(shù)量。

      發(fā)送偽造的重置報文

      下面開始修改程序,發(fā)送偽造的?TCP?重置報文來進行?TCP?重置攻擊。根據(jù)上面的解讀,只需要修改?prn?函數(shù)就行了,讓其檢查數(shù)據(jù)包,提取必要參數(shù),并利用這些參數(shù)來偽造?TCP?重置報文并發(fā)送。

      例如,假設(shè)該程序截獲了一個從(?src_ip?,?src_port?)發(fā)往?(?dst_ip?,?dst_port?)的報文段,該報文段的?ACK?標志位已置為?1,ACK?號為?100,000?。攻擊程序接下來要做的是:

      由于偽造的數(shù)據(jù)包是對截獲的數(shù)據(jù)包的響應(yīng),所以偽造數(shù)據(jù)包的源?IP/Port?應(yīng)該是截獲數(shù)據(jù)包的目的?IP/Port?,反之亦然。

      將偽造數(shù)據(jù)包的?RST?標志位置為?1,以表示這是一個重置報文。

      將偽造數(shù)據(jù)包的序列號設(shè)置為截獲數(shù)據(jù)包的?ACK?號,因為這是發(fā)送方期望收到的下一個序列號。

      調(diào)用?scapy?的?send?方法,將偽造的數(shù)據(jù)包發(fā)送給截獲數(shù)據(jù)包的發(fā)送方。

      對于我的程序而言,只需將這一行取消注釋,并注釋這一行的上面一行,就可以全面攻擊了。按照步驟?1?的方法設(shè)置?TCP?連接,打開第三個窗口運行攻擊程序,然后在?TCP?連接的其中一個終端輸入一些字符串,你會發(fā)現(xiàn)?TCP?連接被中斷了!

      進一步實驗

      可以繼續(xù)使用攻擊程序進行實驗,將偽造數(shù)據(jù)包的序列號加減?1?看看會發(fā)生什么,是不是確實需要和截獲數(shù)據(jù)包的?ACK?號完全相同。

      打開?Wireshark?,監(jiān)聽?lo0?網(wǎng)絡(luò)接口,并使用過濾器?ip.src?==?127.0.0.1?&&?ip.dst?==?127.0.0.1?&&?tcp.port?==?8000?來過濾無關(guān)數(shù)據(jù)。你可以看到?TCP?連接的所有細節(jié)。

      在連接上更快速地發(fā)送數(shù)據(jù)流,使攻擊更難執(zhí)行。

      6?中間人攻擊

      豬八戒要向小藍表白,于是寫了一封信給小藍,結(jié)果第三者小黑攔截到了這封信,把這封信進行了篡改,于是乎在他們之間進行搞破壞行動。這個馬文才就是中間人,實施的就是中間人攻擊。好我們繼續(xù)聊聊什么是中間人攻擊。

      什么是中間人

      攻擊中間人攻擊英文名叫?Man-in-the-MiddleAttack,簡稱「MITM攻擊」。指攻擊者與通訊的兩端分別創(chuàng)建獨立的聯(lián)系,并交換其所收到的數(shù)據(jù),使通訊的兩端認為他們正在通過一個私密的連接與對方?直接對話,但事實上整個會話都被攻擊者完全控制。我們畫一張圖:

      中間人

      從這張圖可以看到,中間人其實就是攻擊者。通過這種原理,有很多實現(xiàn)的用途,比如說,你在手機上瀏覽不健康網(wǎng)站的時候,手機就會提示你,此網(wǎng)站可能含有病毒,是否繼續(xù)訪問還是做其他的操作等等。

      中間人攻擊的原理

      舉個例子,我和公司簽了一個一份勞動合同,一人一份合同。不曉得哪個可能改了合同內(nèi)容,不知道真假了,怎么搞?只好找專業(yè)的機構(gòu)來鑒定,自然就要花錢。

      在安全領(lǐng)域有句話:?我們沒有辦法杜絕網(wǎng)絡(luò)犯罪,只好想辦法提高網(wǎng)絡(luò)犯罪的成本。既然沒法杜絕這種情況,那我們就想辦法提高作案的成本,今天我們就簡單了解下基本的網(wǎng)絡(luò)安全知識,也是面試中的高頻面試題了。

      為了避免雙方說活不算數(shù)的情況,雙方引入第三家機構(gòu),將合同原文給可信任的第三方機構(gòu),只要這個機構(gòu)不監(jiān)守自盜,合同就相對安全。

      如果第三方機構(gòu)內(nèi)部不嚴格或容易出現(xiàn)紕漏

      雖然我們將合同原文給第三方機構(gòu)了,為了防止內(nèi)部人員的更改,需要采取什么措施呢

      一種可行的辦法是引入摘要算法。即合同和摘要一起,為了簡單的理解摘要。大家可以想象這個摘要為一個函數(shù),這個函數(shù)對原文進行了加密,會產(chǎn)生一個唯一的散列值,一旦原文發(fā)生一點點變化,那么這個散列值將會變化。

      有哪些常用的摘要算法呢

      目前比較常用的加密算法有消息摘要算法和安全散列算法(?SHA)。?MD5是將任意長度的文章轉(zhuǎn)化為一個128位的散列值,可是在2004年,?MD5被證實了容易發(fā)生碰撞,即兩篇原文產(chǎn)生相同的摘要。這樣的話相當(dāng)于直接給黑客一個后門,輕松偽造摘要。

      所以在大部分的情況下都會選擇SHA算法

      出現(xiàn)內(nèi)鬼了怎么辦?

      看似很安全的場面了,理論上來說杜絕了篡改合同的做法。主要某個員工同時具有修改合同和摘要的權(quán)利,那搞事兒就是時間的問題了,畢竟沒哪個系統(tǒng)可以完全的杜絕員工接觸敏感信息,除非敏感信息都不存在。所以能不能考慮將合同和摘要分開存儲呢

      那如何確保員工不會修改合同呢

      這確實蠻難的,不過辦法總比困難多。我們將合同放在雙方手中,摘要放在第三方機構(gòu),篡改難度進一步加大

      那么員工萬一和某個用戶串通好了呢

      看來放在第三方的機構(gòu)還是不好使,同樣存在不小風(fēng)險。所以還需要尋找新的方案,這就出現(xiàn)了數(shù)字簽名和證書

      數(shù)字證書和簽名

      同樣的,舉個例子。Sum?和?Mike?兩個人簽合同。Sum?首先用?SHA算法計算合同的摘要,然后用自己私鑰將摘要加密,得到數(shù)字簽名。Sum?將合同原文、簽名,以及公鑰三者都交給?Mike

      如果?Sum?想要證明合同是?Mike?的,那么就要使用?Mike?的公鑰,將這個簽名解密得到摘要x,然后Mike?計算原文的sha摘要Y,隨后對比x和y,如果兩者相等,就認為數(shù)據(jù)沒有被篡改

      在這樣的過程中,Mike?是不能更改?Sum?的合同,因為要修改合同不僅僅要修改原文還要修改摘要,修改摘要需要提供Mike?的私鑰,私鑰即?Sum?獨有的密碼,公鑰即?Sum?公布給他人使用的密碼

      總之,公鑰加密的數(shù)據(jù)只能私鑰可以解密。私鑰加密的數(shù)據(jù)只有公鑰可以解密,這就是非對稱加密

      對稱與非對稱加密

      隱私保護?不是嚇唬大家,信息是透明的兄die,不過盡量去維護個人的隱私吧,今天學(xué)習(xí)對稱加密和非對稱加密。

      大家先讀讀這個字"鑰",是讀"yao",我以前也是,其實讀"yue"

      對稱加密

      對稱加密,顧名思義,加密方與解密方使用同一鑰匙(秘鑰)。具體一些就是,發(fā)送方通過使用相應(yīng)的加密算法和秘鑰,對將要發(fā)送的信息進行加密;對于接收方而言,使用解密算法和相同的秘鑰解鎖信息,從而有能力閱讀信息。

      常見的對稱加密算法

      DES

      DES使用的密鑰表面上是64位的,然而只有其中的56位被實際用于算法,其余8位可以被用于奇偶校驗,并在算法中被丟棄。因此,?DES的有效密鑰長度為56位,通常稱?DES的密鑰長度為56位。假設(shè)秘鑰為?56?位,采用暴力破Jie的方式,其秘鑰個數(shù)為2的56次方,那么每納秒執(zhí)行一次解密所需要的時間差不多1年的樣子。當(dāng)然,沒人這么干。?DES現(xiàn)在已經(jīng)不是一種安全的加密方法,主要因為它使用的56位密鑰過短。

      IDEA

      國際數(shù)據(jù)加密算法(International?Data?Encryption?Algorithm)。秘鑰長度128位,優(yōu)點沒有專利的限制。

      AES

      當(dāng)DES被破解以后,沒過多久推出了?AES算法,提供了三種長度供選擇,128?位、192?位和?256,為了保證性能不受太大的影響,選擇128即可。

      SM1和SM4

      之前幾種都是國外的,我們國內(nèi)自行研究了國密?**SM1?**和?SM4。其中S都屬于國家標準,算法公開。優(yōu)點就是國家的大力支持和認可

      總結(jié)下幾種

      非對稱算法

      在對稱加密中,發(fā)送方與接收方使用相同的秘鑰。那么在非對稱加密中則是發(fā)送方與接收方使用的不同的秘鑰。其主要解決的問題是防止在秘鑰協(xié)商的過程中發(fā)生泄漏。比如在對稱加密中,小藍將需要發(fā)送的消息加密,然后告訴你密碼是123balala,ok,對于其他人而言,很容易就能劫持到密碼是123balala。那么在非對稱的情況下,小藍告訴所有人密碼是123balala,對于中間人而言,拿到也沒用,因為沒有私鑰。所以,非對稱密鑰其實主要解決了密鑰分發(fā)的難題。如下圖

      非對稱算法

      其實我們經(jīng)常都在使用非對稱加密,比如使用多臺服務(wù)器搭建大數(shù)據(jù)平臺hadoop,為了方便多臺機器設(shè)置免密登錄,是不是就會涉及到秘鑰分發(fā)。再比如搭建docker集群也會使用相關(guān)非對稱加密算法。

      常見的非對稱加密

      RSA(RSA?加密算法,RSA?Algorithm)

      優(yōu)勢是性能比較快,如果想要較高的加密難度,需要很長的秘鑰。

      ECC

      基于橢圓曲線提出。是目前加密強度最高的非對稱加密算法

      SM2

      同樣基于橢圓曲線問題設(shè)計。最大優(yōu)勢就是國家認可和大力支持。

      三種對比

      散列算法

      這個大家應(yīng)該更加熟悉了,比如我們平常使用的MD5校驗,在很多時候,我并不是拿來進行加密,而是用來獲得唯一性ID。在做系統(tǒng)的過程中,存儲用戶的各種密碼信息,通常都會通過散列算法,最終存儲其散列值。

      常見的散列

      MD5

      MD5?可以用來生成一個?128?位的消息摘要,它是目前應(yīng)用比較普遍的散列算法,具體的應(yīng)用場景你可以自行??參閱。雖然,因為算法的缺陷,它的唯一性已經(jīng)被破解了,但是大部分場景下,這并不會構(gòu)成安全問題。但是,如果不是長度受限(32?個字符),我還是不推薦你繼續(xù)使用?MD5的。

      SHA

      安全散列算法。**SHA?**分為?SHA1和?SH2兩個版本。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預(yù)映射或信息),并把它們轉(zhuǎn)化為長度較短、位數(shù)固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。

      SM3

      國密算法?SM3。加密強度和SHA-256想不多。主要是收到國家的支持。

      總結(jié)

      至此,總結(jié)下,大部分情況下使用對稱加密,具有比較不錯的安全性。如果需要分布式進行秘鑰分發(fā),考慮非對稱。如果不需要可逆計算則散列算法。因為這段時間有這方面需求,就看了一些這方面的資料,入坑信息安全,就怕以后洗發(fā)水都不用買。謝謝大家查看!

      問題還有,此時如果?Sum?否認給過?Mike?的公鑰和合同,不久gg了

      所以需要?Sum?過的話做過的事兒需要足夠的信譽,這就引入了第三方機構(gòu)和證書機制。

      證書之所以會有信用,是因為證書的簽發(fā)方擁有信用。所以如果?Sum?想讓?Mike?承認自己的公鑰,Sum?不會直接將公鑰給?Mike?,而是提供由第三方機構(gòu),含有公鑰的證書。如果?Mike?也信任這個機構(gòu),法律都認可,那ik,信任關(guān)系成立

      如上圖所示,Sum?將自己的申請?zhí)峤唤o機構(gòu),產(chǎn)生證書的原文。機構(gòu)用自己的私鑰簽名?Sum?的申請原文(先根據(jù)原文內(nèi)容計算摘要,再用私鑰加密),得到帶有簽名信息的證書。Mike?拿到帶簽名信息的證書,通過第三方機構(gòu)的公鑰進行解密,獲得?Sum?證書的摘要、證書的原文。有了?Sum?證書的摘要和原文,Mike?就可以進行驗簽。驗簽通過,Mike?就可以確認?Sum?的證書的確是第三方機構(gòu)簽發(fā)的。

      用上面這樣一個機制,合同的雙方都無法否認合同。這個解決方案的核心在于需要第三方信用服務(wù)機構(gòu)提供信用背書。這里產(chǎn)生了一個最基礎(chǔ)的信任鏈,如果第三方機構(gòu)的信任崩潰,比如被黑客攻破,那整條信任鏈條也就斷裂了

      為了讓這個信任條更加穩(wěn)固,就需要環(huán)環(huán)相扣,打造更長的信任鏈,避免單點信任風(fēng)險

      上圖中,由信譽最好的根證書機構(gòu)提供根證書,然后根證書機構(gòu)去簽發(fā)二級機構(gòu)的證書;二級機構(gòu)去簽發(fā)三級機構(gòu)的證書;最后有由三級機構(gòu)去簽發(fā)?Sum?證書。

      如果要驗證?Sum?證書的合法性,就需要用三級機構(gòu)證書中的公鑰去解密?Sum?證書的數(shù)字簽名。

      如果要驗證三級機構(gòu)證書的合法性,就需要用二級機構(gòu)的證書去解密三級機構(gòu)證書的數(shù)字簽名。

      如果要驗證二級結(jié)構(gòu)證書的合法性,就需要用根證書去解密。

      以上,就構(gòu)成了一個相對長一些的信任鏈。如果其中一方想要作弊是非常困難的,除非鏈條中的所有機構(gòu)同時聯(lián)合起來,進行欺詐。

      中間人攻擊如何避免?

      既然知道了中間人攻擊的原理也知道了他的危險,現(xiàn)在我們看看如何避免。相信我們都遇到過下面這種狀況:

      出現(xiàn)這個界面的很多情況下,都是遇到了中間人攻擊的現(xiàn)象,需要對安全證書進行及時地監(jiān)測。而且大名鼎鼎的github網(wǎng)站,也曾遭遇過中間人攻擊:

      想要避免中間人攻擊的方法目前主要有兩個:

      客戶端不要輕易相信證書:因為這些證書極有可能是中間人。

      App?可以提前預(yù)埋證書在本地:意思是我們本地提前有一些證書,這樣其他證書就不能再起作用了。

      7?DDOS

      通過上面的描述,總之即好多種攻擊都是?DDOS攻擊,所以簡單總結(jié)下這個攻擊相關(guān)內(nèi)容。

      其實,像全球互聯(lián)網(wǎng)各大公司,均遭受過大量的?DDoS。

      2018年,GitHub?在一瞬間遭到高達?1.35Tbps?的帶寬攻擊。這次?DDoS?攻擊幾乎可以堪稱是互聯(lián)網(wǎng)有史以來規(guī)模最大、威力最大的?DDoS?攻擊了。在?GitHub?遭到攻擊后,僅僅一周后,DDoS?攻擊又開始對?Google、亞馬遜甚至?Pornhub?等網(wǎng)站進行了?DDoS?攻擊。后續(xù)的?DDoS?攻擊帶寬最高也達到了?1Tbps。

      那?DDoS?攻擊究竟是什么?

      DDos?全名?Distributed?Denial?of?Service,翻譯成中文就是?分布式拒絕服務(wù)。指的是處于不同位置的多個攻擊者同時向一個或數(shù)個目標發(fā)動攻擊,是一種分布的、協(xié)同的大規(guī)模攻擊方式。單一的DoS攻擊一般是采用一對一方式的,它利用網(wǎng)絡(luò)協(xié)議和操作系統(tǒng)的一些缺陷,采用?欺騙和偽裝的策略來進行網(wǎng)絡(luò)攻擊,使網(wǎng)站服務(wù)器充斥大量要求回復(fù)的信息,消耗網(wǎng)絡(luò)帶寬或系統(tǒng)資源,導(dǎo)致網(wǎng)絡(luò)或系統(tǒng)不勝負荷以至于癱瘓而停止提供正常的網(wǎng)絡(luò)服務(wù)。

      舉個例子

      我開了一家有五十個座位的重慶火鍋店,由于用料上等,童叟無欺。平時門庭若市,生意特別紅火,而對面二狗家的火鍋店卻無人問津。二狗為了對付我,想了一個辦法,叫了五十個人來我的火鍋店坐著卻不點菜,讓別的客人無法吃飯。

      上面這個例子講的就是典型的?DDoS?攻擊,一般來說是指攻擊者利用“肉雞”對目標網(wǎng)站在較短的時間內(nèi)發(fā)起大量請求,大規(guī)模消耗目標網(wǎng)站的主機資源,讓它無法正常服務(wù)。在線游戲、互聯(lián)網(wǎng)金融等領(lǐng)域是?DDoS?攻擊的高發(fā)行業(yè)。

      攻擊方式很多,比如?ICMP?Flood、?UDP?Flood、?NTP?Flood、?SYN?Flood、?CC?攻擊、?DNS?Query?Flood等等。

      SYN?Flood進行DDoS攻擊的實現(xiàn)原理**

      SYN?Flood是一種利用?TCP協(xié)議缺陷,發(fā)送大量偽造的?TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或內(nèi)存不足)的攻擊方式。

      一次正常的建立?TCP連接,需要三次握手:客戶端發(fā)送?SYN報文,服務(wù)端收到請求并返回報文表示接受,客戶端也返回確認,完成連接。

      SYN?Flood就是用戶向服務(wù)器發(fā)送報文后突然死機或掉線,那么服務(wù)器在發(fā)出應(yīng)答報文后就無法收到客戶端的確認報文(第三次握手無法完成),這時服務(wù)器端一般會重試并等待一段時間后再丟棄這個未完成的連接。

      一個用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個線程等待一會兒并不是大問題,但惡意攻擊者大量模擬這種情況,服務(wù)器端為了維護數(shù)以萬計的半連接而消耗非常多的資源,結(jié)果往往是無暇理睬客戶的正常請求,甚至崩潰。從正常客戶的角度看來,網(wǎng)站失去了響應(yīng),無法訪問。

      如何應(yīng)對?DDoS?攻擊?

      高防服務(wù)器

      還是拿開的重慶火鍋店舉例,高防服務(wù)器就是我給重慶火鍋店增加了兩名保安,這兩名保安可以讓保護店鋪不受流氓騷擾,并且還會定期在店鋪周圍巡邏防止流氓騷擾。

      高防服務(wù)器主要是指能獨立硬防御?50Gbps?以上的服務(wù)器,能夠幫助網(wǎng)站拒絕服務(wù)攻擊,定期掃描網(wǎng)絡(luò)主節(jié)點等,這東西是不錯,就是貴~

      黑名單

      面對火鍋店里面的流氓,我一怒之下將他們拍照入檔,并禁止他們踏入店鋪,但是有的時候遇到長得像的人也會禁止他進入店鋪。這個就是設(shè)置黑名單,此方法秉承的就是“錯殺一千,也不放一百”的原則,會封鎖正常流量,影響到正常業(yè)務(wù)。

      DDoS?清洗

      DDos清洗,就是我發(fā)現(xiàn)客人進店幾分鐘以后,但是一直不點餐,我就把他踢出店里。

      DDoS清洗會對用戶請求數(shù)據(jù)進行實時監(jiān)控,及時發(fā)現(xiàn)?**DOS?**攻擊等異常流量,在不影響正常業(yè)務(wù)開展的情況下清洗掉這些異常流量。

      CDN?加速

      CDN?加速,我們可以這么理解:為了減少流氓騷擾,我干脆將火鍋店開到了線上,承接外賣服務(wù),這樣流氓找不到店在哪里,也耍不來流氓了。

      在現(xiàn)實中,CDN?服務(wù)將網(wǎng)站訪問流量分配到了各個節(jié)點中,這樣一方面隱藏網(wǎng)站的真實?IP,另一方面即使遭遇?DDoS攻擊,也可以將流量分散到各個節(jié)點中,防止源站崩潰。

      總結(jié)

      計算機網(wǎng)絡(luò)涉及的知識點較多,文中也就算是提了一下,更深此的理解還需要大家去看相應(yīng)的書籍,感覺看了這一篇,當(dāng)面試官問?DDOS?或者?TCP?涉及哪些攻擊技術(shù)知識點的時候,能夠回答出來就好了,咋們下一篇再見!

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:文檔如何字體旋轉(zhuǎn)(怎么把文檔的字體旋轉(zhuǎn))
      下一篇:谷歌文檔怎么保存(google下載文件保存在哪里)
      相關(guān)文章
      亚洲午夜未满十八勿入网站2| 亚洲色大成网站www永久| 亚洲精品国产福利在线观看| 亚洲成亚洲乱码一二三四区软件| 国产a v无码专区亚洲av| 亚洲成A人片在线观看无码3D| 国产精品亚洲一区二区三区在线观看| 亚洲精品自偷自拍无码| 2017亚洲男人天堂一| 亚洲精品亚洲人成在线播放| 亚洲av一本岛在线播放| 国产色在线|亚洲| 亚洲一区二区三区高清在线观看| 天堂亚洲国产中文在线| 亚洲xxxx18| 亚洲精品理论电影在线观看| 午夜在线a亚洲v天堂网2019| 亚洲色大成网站www久久九 | 亚洲精品456人成在线| 亚洲最大免费视频网| 亚洲人成网站在线观看播放动漫| 亚洲第一页在线观看| 亚洲中文字幕在线无码一区二区| 亚洲av无码片区一区二区三区| 亚洲国产系列一区二区三区| 亚洲欧洲专线一区| 国产精品亚洲专区在线播放| 亚洲五月午夜免费在线视频| 国外亚洲成AV人片在线观看| 国产亚洲一区二区精品| 亚洲永久永久永久永久永久精品| 亚洲精品午夜视频| 伊人久久亚洲综合影院首页| 亚洲av日韩综合一区久热| 亚洲人成无码www久久久| 亚洲国产一成人久久精品| 亚洲国产精品无码久久久不卡| 亚洲人成网站在线播放影院在线 | 亚洲中文字幕久久无码| va天堂va亚洲va影视中文字幕 | 91亚洲国产在人线播放午夜|