1. 程式人生 > >分散式系統詳解--基礎知識(安全)

分散式系統詳解--基礎知識(安全)

                          分散式系統詳解--基礎知識(安全)

         前一篇文章提到了 分散式系統詳解--基礎知識(CAP),讓我們瞭解到了分散式中一致性、可用性和分割槽容錯性之間的愛恨情仇,今天的安全性我想更是重中之重,沒有安全,好像什麼都沒有了,這篇文章當中也只能將一些最基本的安全知識介紹一下,如黑客攻擊的基本漏洞、資料加密、許可權控制、安全通道。如果想成為安全界的大牛,還需要加倍的努力才行。當然在文章後期會進一步介紹一下現在一些安全的框架,可以在某一方面幫助我們實現安全的部分效能。

一、黑客的安全攻擊

       說起黑客,他們好像無孔不入,只要一臺電腦,就可以玩轉整個世界。但是他們在分散式中可以進行哪一些攻擊呢?我們來看一下。

  • 常用的攻擊方法

(1)對程序的威脅

A,對伺服器:使用假身份證欺騙

B,對客戶:使得客戶收到假結果:竊聽了客戶口令

(2)對通道安全威脅

A,切斷。(實際上就是將服務或者資料被破壞讓資料變得不能獲得或者不可用,當然還有其他攻擊可能,如對其可用性的攻擊,破壞硬體,切斷通訊線,使檔案失效)

B,偵聽。(這個是對那些未授權的資源進行訪問,進行一系列非法的操作)

C,更改。(未授權著不僅可以進行訪問資源,還能夠進行更改資源,破壞其完整性。或者直接改變程式邏輯,使得程式執行發生變化)

D,偽造。(未授權著可以進行新增物件,使得假的訊息內容出現在系統中)

  • 間接滲透

(1)特洛伊木馬。濫用執行環境的一段程式碼。在其表面來說是合法程式,一旦執行,就會產生非預期的結果。

(2)蠕蟲。這是一種獨立的程式,使用的是派生技術,產生眾多類似於蠕蟲的同樣程式,嵌入其他執行環境。

(3)病毒。在合法檔案中潛藏的一段惡意程式碼。通過電子郵件、網頁中的可執行程式、或者下載檔案進行傳播。

二、知己知彼方百戰不殆--應對之策

不斷提高我們的安全意識是一方面,更重要的是應對之策。

2.1 認證

        官方語言就是識別並驗證主體的合法性(也就subject),通俗一點,就是誰進來,我要驗證你的身份,先要看一下是否能夠讓系統認識你,就登入而言,就是你的登入賬號和密碼是否匹配。這裡的主體呢,可以是使用者,也可以是客戶、程序、伺服器。

2.2 授權
      當認證通過時,我們需要對該使用者賦予他相應的許可權,使得該使用者可以在系統中執行一系列的操作。

2.3 加密

     加密解密可以說是老生常談的問題,就是將一個明文在進行資料傳輸的時候進行一系列的處理使得變為一串不能被識別的程式碼,還可以在驗證其完整性。

2.4 監聽

        監聽技術實際上是通過對日誌的分析,我們可以看到我們的系統中出現的問題,當攻擊者進行攻擊的時候,我們可以分析我們系統中的漏洞,執行補救的工作。

三、加密演算法

               

                                             (key)A-->B(key)

(1)對稱加密

       對稱加密是指的加密和解密使用相同金鑰的加密演算法。在加密演算法中使用了同一個金鑰,A進行金鑰加密,B用相同的key進行解密。這就需要A和B對key進行相當的保密,倘若被別人發現金鑰key的值,資訊就會被暴露。

(2)非對稱加密

                                         (pub-key)A-->B(pri-key)

       非對稱加密就是針對上面對稱加密的安全措施的缺陷來進行的整改,為了防止別人拿到key值就可以肆意的進行資料傳輸,那麼B就可以向外提供一個公鑰(pub-key),這個時候,A發過來的訊息使用(pub-key)進行加密,而對於擁有私鑰的B來說才能解開。並且這還有個顯著地特點,就是如果B可以向外發出很多個公鑰,如果這幾個公鑰不一樣,那麼另外這幾個公鑰發過來的訊息他們彼此是不能相互通訊的。這就進一步加強了資料的安全性。

     非對稱加密要求加密一方和解密一方金鑰不同,但是他的效能太低。

(3)數字簽名  

                                             (sign)A-->B(pub)

       非對稱加密對加密效能進行了提高,然而我們還是要擔心的問題就是公鑰是不是被人攔截了,被人從中獲取之後,修改資訊。所以我們引進裡數字簽名,這個時候,A生成了一對公鑰和私鑰,先將公鑰給B,然後自己的資料用私鑰進行簽名,傳送給B,B接收到訊息之後,用A發過來的資料解密,就能獲得資料。

(4)數字認證

                 

       這張圖就很明顯的解釋了這個加密方式,Bob首先將自己的公鑰傳送給Trent,Trent獲得Bob的pub之後,用自己的私鑰(pri')將pub進行加密,獲取到一個sign,而這個sign值只有用Trent的公鑰才能解開,Trent將公鑰pub'傳送給了Alice,此時,Bob將自己的公鑰和加密後的sign一起傳送給Alice,Alice用之前Trent傳送給的pub‘來進行驗證sign,如果sign值正確,那麼Bob傳送過來的公鑰pub是正確的,這就防止了一部分人獲取公鑰的想法了~~完美吧,哈哈。

 部落格參考:阿里技術公眾號推薦趣圖解析加密演算法:工程師男友如何反竊聽?趣聊密碼學入門科普

四、安全通道

4.1 初識SSL和HTTPS

        什麼是SSL呢?SSL全稱是Secure socket layer(安全套接字層)。SSL是Netscape所研發,來保障因特網上資料傳輸的安全,利用資料加密技術,用來保證在網路傳輸中不會被擷取以及竊聽。SSL其實和我們的生活也是有著密切的關係,現在我們所使用的淘寶、天貓、百度、騰訊等等大型官網進入的時候,我們都會發現都已經改成了https為開頭的網站連結。而https是在http的基礎上加入了SSL協議。

4.2 SSL的實現的基本功能

(1)資料進行加密。通過加密演算法使得資料具有安全性,加密的過程需要用到密匙來加密資料然後再解密。

(2)資料的一致性 加密也能保證資料的一致性。可以校驗資料是否已經被篡改過,保證資料的前後一致。

(3)伺服器身份證明。SSL伺服器證書可以有效地證明網站的真實身份、使用的域名的合法性,讓使用者可以很容易識別真實網站和仿冒網站。

4.3 HTTP與HTTPS的關係

區別:

A,https協議是需要ca證書,並且需要一定的費用(也有沒費的)。

B,http是超文字傳輸協議,資訊是明文傳送,https是SSL加密後進行傳輸的。

C,http和https使用的不同的連線方式。埠也不同,http埠是80,https埠是443.

4.4 HTTPS的工作原理(網上搜刮圖)

五、防火牆

5.1 防火牆的基礎定義

       簡單來說就是一種位於內部網路和外部網路之間的一種網路安全系統。詳細一點的解釋就是它是一個由軟體和硬體裝置組合、在內部網和外部網路之間、專用網和公共網之間的介面上構造的保護屏障。

5.2 防火牆型別

(1)網路型防火牆

        網路防火牆可以看作是一種ip封包過濾器,它的運作底層是TCP/IP協議堆疊。在這裡只允許一些特定規則的封包通過,其他的一律禁止入內。溫馨提示,病毒防不住。

(2)應用層防火牆

        應用層防火牆是在 TCP/IP 堆疊的“應用層”上運作,也就是說瀏覽器上所產生的資料流或者使用FTP時的資料流都是這一層。防火牆可以檢測電腦所有的封包,並且找出不規則的內容,可以防範電腦蠕蟲和木馬程式的快速蔓延。

(3)資料庫防火牆

        資料庫防火牆基於資料庫協議分析與控制技術的資料庫安全防護系統,實現資料庫中的訪問行為控制、危險操作阻斷、可以行為審計。

5.3 分散式防火牆

        採用 NSX 網路虛擬化方案, 分散式防火牆來管理東西向流量。因為是完全基於軟體的虛擬防火牆,可以做到每一臺虛機都配備一臺防火牆。而且雖然防火牆是分散式的,但是它們的管理是集中的,通過統一的管理介面來管理所有的虛擬防火牆,集中配置所有防火牆的安全規則,所以管理上也很簡便。

 

歡迎訂閱關注公眾號(JAVA和人工智慧)

                                                           獲取更多免費書籍、資源、視訊資料

 

                                        

文章回顧連結:

 1,分散式系統詳解--基礎知識(概論

 2,分散式系統詳解--基礎知識(執行緒)

 3,分散式系統詳解--基礎知識(通訊)

 4,分散式系統詳解--基礎知識(CAP)

 5,分散式系統詳解--基礎知識(安全)

 6,分散式系統詳解--基礎知識(併發)

 7,分散式系統詳解--架構簡介(微服務)

 8,分散式系統詳解--Linux(許可權)

 9,分散式系統詳解--框架(Hadoop-單機版搭建)

10,分散式系統詳解--架構(Hadoop-克隆伺服器)

11,分散式系統詳解--框架(Hadoop-叢集搭建)

12,分散式系統詳解--框架(Hadoop-Ssh免密登陸配置)