Laxcus大資料管理系統2.0(10)- 第八章 安全

來源:互聯網
上載者:User

標籤:

第八章 安全

  由於安全問題對大資料系統乃至當前社會的重要性,我們在Laxcus 2.0版本實現了全體系的安全管理原則。同時我們也考慮到系統的不同環節對安全管理的需求是不一樣的,所以有選擇地做了不同的安全設計和處理。圖8是Laxcus安全管理架構,首先使用SHA1簽名獲得基本確認,然後在FIXP網路層面,資料通訊採用RSA加密,後面分別是對稱式加密、系統安全性原則、簽名、使用者安全性原則。SHA1是一種數位簽章,可以保證網路間傳輸的內容正確性,RSA是目前安全度最高的加密手段,對稱式加密則次之,系統安全性原則包含了為不同節點和各種服務設計的安全驗證,簽名是系統判斷每個登入帳號的合法性,使用者安全性原則賦與了使用者自訂安全規則的能力,應用於使用者自己的分布工作群組件和資料存取上,有助於強化資料處理過程中,使用者的資料安全。

  上述安全管理措施非常繁多,但是其實都是圍繞著兩個目標進行:防竊取和防篡改。因為考慮到安全管理對資料處理業務的影響(RSA計算就對CPU的佔用比率非常高),所以在系統的某些層面,安全管理被設定為可選項,決定權交給叢集管理者和使用者自己處理。例如在內網通訊中,由於內網的安全保障程度比較高,而且內網的資料轉送量又非常大,幾乎所有網路計算都在內網中進行。在這種情況下,為了給資料處理是騰出基礎資源,提高處理效率,可以酌情選擇省略掉部分安全管理。

  本章將依循Laxcus大資料系統架構,闡述每個層面的安全管理。

 

圖8 Laxcus安全管理架構

8.1 環境安全

  在架構設計上,Laxcus被分為彼此隔絕的內外兩個網路環境。內部網路的拓撲結構對外保密,網路地址一般是採用TCP/IP協議中的內網地址(10.0.0.0 - 10.255.255.255、172.16.0.0 - 172.31.255.255、192.168.0.0 - 192.168.255.255),它們由專業的叢集管理員來管理和維護,被認為是“安全”的。外網由普通的註冊使用者來管理,不在叢集管理員的可控制範圍內,來源可以是互連網或者VPN的串連,他們屬於低可信度使用者,被認為是“不安全”的。網關節點位於它們之間,除了起到溝通雙方的串連和分解任務壓力的作用外,更主要是接受外部網路請求的同時,可以屏蔽內部網路拓撲結構,使內部網路有一個相對安全的運行環境,防範可能遭到的網路攻擊。

  雖然運行環境提供了這樣的安全設計,但是在部署叢集時,仍然需要叢集的組織管理員遵守設計規定。叢集運行過程中,管理員也應該具備安全管理常識,這是需要相互配合的工作。在這個的架構安全基礎上,還有後續一系列的安全管理措施,使叢集被攻擊的可能性進一步降低。

8.2 通訊安全

  節點同時具有客戶機/伺服器的雙重身份。在每一次網路通訊開始時,為了確保客戶機是可以信任的,伺服器會要求客戶機出示通訊安全憑證。這個憑證將保證雙方在安全的狀態下通訊。

  通訊安全憑證在FIXP伺服器上配置,裡面儲存了客戶機必須出示的資訊。安全通訊類型分為三種:地址驗證、帳號驗證、地址/帳號複合驗證。當伺服器要求出示安全憑證時,客戶機必須遵守這個協定,向伺服器出示自己的安全憑證,否則通訊將被伺服器中止。客戶機也可以主動向伺服器要求安全校正,每次伺服器都會接受的。

  通過安全憑證檢測後,可以確定網路兩端間傳輸的資料是正確和可信任的,這樣就為後續的資料處理提供了一個基本的安全保障。

  使用中也有例外,例如上面提到的內網通訊。因為內部網路相對公用網路,它的安全度和信任度頗高,而通訊安全項除了地址驗證外,其他兩種都需要執行消耗CPU的計算,這會造成資料處理的延遲,對大規模、高密度的網路計算來說顯得得不償失。所以,一般的建議是,在穿越VPN或者互連網的通訊雙方,應該啟用安全通訊;在信任度高的內部網路,這項工作可以選擇地址驗證,或者忽略。

8.3 節點准入制度

  在Laxcus叢集裡,一個節點若要向另一個節點發起命令請求,必須首先以客戶機的身份登入它的伺服器節點,客戶機發出的每一條命令,都要接受伺服器的驗證和檢查,這就是節點准入制度。

  節點准入制度是在安全通訊之後,為各節點間的串連和操作定義的一套安全措施。在這個層面上,能夠保證各節點之間的串連都是正確的,被傳輸的命令也在監管範圍內。

  比如,Aid節點只能串連Top節點,串連Home節點就是非法的。Front節點必須先向Call節點註冊,才能得到命令操作許可。Call節點只能向Data節點發出SQL SELECT命令,向任何其它節點發出這道命令都會遭到拒絕。

  我們對不同節點的節點准入制度有一套詳細的規定,在此就不贅述。由於這個規定準確定義了它們之間的請求、受理範圍、命令許可,使得每個節點和每一道命令在運行過程中都接受檢查,杜絕了一切可能的非法串連和操作。

8.4 使用者帳號安全

  使用者登入使用Front節點。無論使用者是以終端的互動方式還是驅動程式的嵌入方式接入Laxcus叢集,系統都要求使用者提供一個登入帳號,確認使用者是可信的。Laxcus帳號由使用者名稱稱和密碼組成,每一個帳號必須由系統管理員建立,帳號的使用者名稱和密碼會被電腦計算為SHA1演算法的散列碼,再通過網路上傳到Top節點,儲存到資料字典裡,供後續使用。

  帳號的使用者名稱是系統唯一的,一經建立不能修改。當系統管理員建立帳號後,會通過其它渠道將帳號的明文轉交給帳號持有人。帳號持有人擁有修改帳號密碼的權利,通常帳號持人會修改系統管理員設定的密碼。

  特別注意,在建立、修改和使用帳號登入的過程中,帳號的明文只出現在使用者的電腦螢幕上或者使用者的驅動程式裡,不會出現在網路傳輸的任何環節。Top節點儲存的只是帳號明文的SHA1演算法散列碼,由於SHA1演算法逆向破解的難度,使得擷取帳號明文的可能性極小。這樣就使得帳號在產生和使用過程中擁有極大的安全性。

  另外,使用者登入除了需要提供登入帳號外,還必須持有一個系統管理員頒發的安全許可認證。這是一個經過RSA演算法簽名的檔案,由系統管理員建立和保管。使用者登入時首先出示這個認證,伺服器會檢查認證的有效性,確定認證有效和登入者可信後,再執行帳號檢查,進一步判斷帳號的正確性和操作範圍,決定是接受還是拒絕。

  這樣,實際上每一個使用者的登入過程都是RSA和SHA1的組合,首先用SHA1對帳號進行簽名,然後用RSA進行傳輸和校正。因為這是進入叢集的第一階段,必須保證有足夠的安全強度。這種雙保險措施保證了每一個登入使用者的可信性。

  登入成功後,雙方進入正式的通訊狀態。我們通常要求資料經過加密或者簽名處理。目前提供的加密和簽名演算法有:AES、DES、3DES、MD5、SHA1等。這些演算法和密碼會隨著通訊過程自動變換,使得窺密者短時間內難以獲得明文,這又進一步提高了互動雙方的資料安全。

  綜上所述,使用者進入Laxcus叢集依次有三道安全門檻:RSA、使用者帳號、對稱式加密或者數位簽章,前兩種保證使用者登入時的安全,後一種保證登入後資料內容的安全。

8.5 使用者權限管理

  使用者使用FRONT節點登入,只是擁有了進入叢集的權利。若要獲得資料處理能力,還需要獲得進一步的資料操作許可權。

  資料操作許可權也是由管理員來授權。資料操作許可權從高到低分為三級:使用者級、資料庫級、表級。每一個層級有多個操作選項,部分選項會在多個層級存在,對於這類同質選項,上一級操作許可權預設高於下一級操作許可權。例如SQL“SELECT”操作許可權,使用者級“SELECT”高於資料庫級”SELECT“,資料庫級”SELECT“又高於表級“SELECT”。

  由管理員分配的資料操作許可權也可以被管理員回收。許可權回收後將立即生效,超過許可權的資料請求在此之後將被拒絕。

  通過使用者權限管理,管理員可以把使用者的資料處理操作控制在規定的範圍內,杜絕使用者可能的越權操作。

8.6 私人業務安全

  私人業務即是使用者的資料業務,這一塊的安全管理全權交給使用者處理。在這個層面,使用者可以自由組織自己的資料內容和資料格式。組織方式分成兩種:1.用系統提供的可類化介面,在發送前,把資料按照自己理解的資料格式,用各種方式編排在一起,在接收後,再重新拆解。可類化介面中的“ClassWriter、ClassReader”同時提供加密/解密功能,進一步提高了安全能力。這樣在資料轉送過程中,由於格式和內容都經過了處理,破解就變得很困難。至於密碼,可以放在外界難以窺測到的地方,比如命令自訂參數的某個位置,或者叢集的資料字典裡。

  資料表中的數組資料,在產生時就可以通過系統提供的“Packing“介面加密。這樣內容在產生就已經處理過,只是在顯示的時候被解開,重新以明文格式出現,中間過程都是以密文的形式存在。在不掌握密碼的情況下,外界也是無從窺視。

 

 

圖8.6.1 可類化介面函數

8.7 分布工作群組件安全

  分布工作群組件的安全由沙箱來保證。沙箱(sandbox)是一種可以限制程式操作範圍和處理能力的容器,現在已經整合到Laxcus大資料管理系統裡。所有處於運行狀態的分布工作群組件,都被放置到沙箱裡運行。

  將分布工作群組件置於沙箱裡啟動並執行根本原因在於:分布工作群組件來源於使用者,從保守的安全形度考慮,我們無法預先判斷每個分布工作群組件都是善意和可以信任的,不會在他們的程式裡含有惡意代碼,那麼從統一處理的原則出發,我們就假定這些分布工作群組件都是不安全的,需要在它們運行過程中,對它們進行約束和限制,以防止各種可能危害系統或者其它分布工作群組件的事情發生。

  在沙箱裡啟動並執行分布工作群組件,它們的操作許可權受到沙箱嚴格監管,只能“讀、寫、刪除”規定目錄下面的檔案,或者擷取規定的系統屬性,其它操作都被排除在外。運行過程中,分布工作群組件發出的每個操作請求都會首先傳到沙箱進行安全檢查,當發現操作超出功能時,沙箱將拒絕執行,以保證運行環境安全。

  沙箱的安全檢查項目被放在安全性原則檔案中,在系統啟動時載入。修改安全性原則檔案是很容易的,不過這屬於叢集管理員的職責,普通使用者沒有這個能力。

 

圖8.7.1 沙箱安全性原則選項

8.8 資料區塊安全

  資料區塊的安全依賴於對資料的簽名。當資料區塊從Cache狀態轉向Chunk狀態過程中,系統會計算這個資料區塊的資料內容,產生一個256位的Laxcus簽名,做為校正碼儲存到資料區塊裡。產生資料區塊的簽名過程很快,一個64M的資料區塊簽名產生時間,在Pentium4 2.0G的電腦上,通常在10毫秒左右。

  當Data節點重新啟動,或者資料區塊被載入到記憶體,或者通過網路傳輸到另一個Data節點,系統會重新根據資料內容再次產生一個校正碼,與已經存在的校正碼進行比較,確認資料的完整性,以保證後續資料處理的資料本身是正確的。

8.9 DSM/NSM安全

  資料區塊從Cache狀態轉入到Chunk狀態過程中,除了產生資料區塊簽名,還會根據資料區塊的儲存模型,針對每一行或者每一列集合,產生它們的CRC32校正碼,並且儲存在記錄的開始位置。

  設定行/列集校正碼的原因是,因為整塊的資料不會被經常調用,而行/列集的資料卻總是在網路上大量、頻繁傳遞,這就使得行/列集的資料校正更有實際意義。

  然而相較於少量的資料區塊簽名計算,被傳輸的行/列集因為粒度細、資料量大、校正次數頻繁,計算期間也會更長,這將消耗大量計算資源,影響到網路計算的處理效率。所以,通常工作要求方在收到計算結果後,會根據資料的來源來選擇是否檢測。如果是內網資料,由於網路安全度高,這個校正可以被忽略。

Laxcus大資料管理系統2.0(10)- 第八章 安全

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.