smb

被用於Web連接和客戶端與伺服器之間的信息溝通

SM徠B(全稱是Server Message Block)是一個協議名,它能被用於Web連接和客戶端與伺服器之間的信息溝通。SMB最初是IBM的貝瑞·費根鮑姆(Barry Feigenbaum)研製的,其目的是將DOS操作系統中的本地文件介面“中斷13”改造為網路文件系統。

研究背景


隨著網路通信技術和網路資源共享機制的不斷發展,針對網路間支持數據共享的協議和機制等技術的研究受到了研究人員的廣泛關注。其中,網路文件共享傳輸過程的安全性研究更是成為該領域的熱點問題。其中,SMB(ServerMessageBlock)協議作為一種區域網文件共享傳輸協議,常被用來作為共享文件安全傳輸研究的平台。但是,目前的SMB協議中採用控制文件安全傳輸的機制是使用客戶身份驗證的方式,該方式通過客戶端向伺服器端發送驗證密碼來獲取文件傳輸的許可權,不過目前針對該機制的網路攻擊相對嚴重,攻擊程序通過對驗證密碼的截獲來竊取文件的訪問許可權,區域網下文件傳輸的安全性得不到保障。

發展歷程


SMB協議可以為區域網用戶提供相關的功能和機制,來保證傳輸的可靠性。目前區域網中90%的數據包以及95%的位元組是通過SMB協議進行傳輸,這是為了解決網路的穩定性和數據流在共享帶寬時的公平性、擁塞控制及效率等問題。由於SMB傳輸應用的普遍性和重要性,關於SMB傳輸這一課題計算機領域中很多學者致力於這一方面潛心研究,就SMB協議及其多個版本在各類網路下的傳輸效率問題做了大量的研究和實驗。在區域網發展之初該網內的文件共享是通過FTP協議進行傳輸。用戶必須首先從伺服器下載該文件的數據到本地(客戶端),然後對數據文件進行修改操作,之後,用戶重新將客戶端的文件上傳到FTP伺服器中,但是用戶不能直接對FTP上的數據信息等進行修改操作。如果用戶在該過程中對文件進行了修改操作,但並沒有將修改後的文件上傳到FPT伺服器,那麼之後申請讀取該文件的用戶就無法下載最新的文件。
1984年,安德魯Tridgwell曾遇到這樣的問題,他用三台個人電腦都運行DOS系統,通過電腦計算機DEC的Unix數字系統以及Sun公司的Unix系統進行試驗。當時,安德魯Tridgwell寫了一個程序,以檢測通信協議在DEC的Unix系統下計算機處理哪些信息,在信息傳輸過程中,對程序中的相關參數進行更改,便可讀取來自不同計算機的信息文件等內容,進而實現了計算之間的信息數據的互通。通過這種方式他們發現了一種可以進行操作系統之間信息通信的協議,並在此協議的基礎上進行改進,將改進后的協議命名為SMB協議,該協議的文件傳輸系統可以實現不同操作系統間文件和信息的共享。在這之後,安德魯Tridgwell開始應用SMB伺服器作為軟體的註冊商標。這是SMB的由來。為了能夠在不同的Windows主機設備之間實現共享文件數據的目的,便出現了更高版本的SMB協議。但最常見的(在Windows98,WindowsNT中,Windows2000和XP)是NTLM0.12版本。SMB協議可以實現相鄰網路中間的計算機中文件的共享功能,該協議包含兩部分分別是伺服器端和客戶端,它通過網路中的TCP、NetBEUI等通信協議建立會話連接,然後用戶可以通過該協議的客戶端發起文件共享請求,並通過伺服器接收到的請求將文件發送給用戶來實現文件的共享。
SMB1.0協議由於在文件共享傳輸過程中存在的傳輸效率低以及傳輸空間小等缺陷被人們所摒棄。為了更好的實現網路中文件的共享過程,在SMB1.0的基礎上開發了新的網路文件傳輸協議,並將其命名為SMB2.0。該協議在實現了文件共享傳輸的基本功能的基礎上對文件傳輸的效率、文件緩存的空間以及文件併發傳輸等問題進行改進,使得在區域網或更高配置的網路環境下,文件傳輸過程的速度和效率等得到了很大的提升。並且,由於目前對於SMB研究領域已經出現了可以對該文件共享過程進行信息截取等惡意攻擊方法,故而在SMB版本更新的過程中加入了對文件傳輸過程的安全性保障機制。在對SMB協議的研究過程中,很多文獻均選擇對文件傳輸效率等問題進行改進,但是對該協議的本質內容並沒有做改變,其主要原因是SMB協議自身的複雜性和其對操作系統的依賴性。但是,正是由於SMB依賴於操作系統等底層的架構,所以對於文件的傳輸等過程的控制和性能提升等操作可以通過它所依賴的底層系統來進行修改,進而達到對文件傳輸過程的控制和優化。

SMB協議


後來微軟對這個發展進行了重大更改,這個更改后的版本也是最常見的版本。微軟將SMB協議與它和3Com一起發展的網路管理程序結合在一起,並在Windows for Workgroups和後來的Windows版本中不斷加入新的功能。
SMB一開始的設計是在NetBIOS協議上運行的(而NetBIOS本身則運行在NetBEUI、IPX/SPX或TCP/IP協議上),Windows 2000引入了SMB直接在TCP/IP上運行的功能。在這裡我們必須區分SMB協議和運行在這個協議上的SMB業務,以及NetBIOS和使用SMB作為認證隧道的DCE/RPC業務。此外我們還要區分主要(但不僅僅)直接使用NetBIOS數據報的“網路鄰居”協議。
徠1996年,Sun推出WebNFS的同時,微軟提出將SMB改稱為Common Internet File System。此外微軟還加入了許多新的功能,比如符號鏈接、硬鏈接、提高文件的大小。微軟還試圖支持直接聯繫,不依靠NetBIOS,不過這個試圖依然處於嘗試階段,並需要繼續完善。微軟向網際網路工程工作小組提出了部分定義作為網際網路草案。不過這些提案現在均已過期。
由於SMB協議對於與佔主要地位的Microsoft Windows平台通訊時的重要性,而目前該平台使用的SMB協議與初始的版本相比有巨大的改變,因此Samba項目就是被創立來逆向工程來提供一個與SMB軟體兼容的自由軟體,使得非微軟操作系統也能夠使用它。
Windows Vista中微軟又推出了Server Message Block 2.0。

SMB3.0


伺服器信息塊(SMB)是一個網路文件共享協議,它允許應用程序和終端用戶從遠端的文件伺服器訪問文件資源。微軟最初將SMB定位為Windows Server 2008和Vista系統中通用網際網路文件系統(CIFS)的後續產品。最新版本的SMB 3.0在Windows Server 2012操作系統中出現,並且與Windows 8客戶端共同工作。
SMB 3.0極大的提升了性能、可靠性和安全性。具體來說,當它與Windows Storage Spaces(Windows Server 2012的一個功能,將普通的硬碟虛擬化為高性能、高可用性的存儲)結合時,SMB 3.0可以使用廉價的直連存儲(DAS)、JBOD或RBOD,創建一個特定的NAS設備(或SAN存儲陣列)。IT組織可以因此在不購買昂貴的SAN存儲的情況下得到企業級存儲的特性,而且管理也變得更加簡單。此外,SMB 3.0現在支持一些以前只在塊存儲環境下才可以使用的應用程序,如SQL Server

IBM SMB


(IBM SMB:Server Message Block protocol)
伺服器信息塊(SMB)協議是一種IBM協議,用於在計算機間共享文件、印表機、串口等。SMB 協議可以用在網際網路的TCP/IP協議之上,也可以用在其它網路協議如IPX和NetBEUI 之上。
SMB 一種客戶機/伺服器、請求/響應協議。通過 SMB 協議,客戶端應用程序可以在各種網路環境下讀、寫伺服器上的文件,以及對伺服器程序提出服務請求。此外通過 SMB 協議,應用程序可以訪問遠程伺服器端的文件、以及印表機、郵件槽(mailslot)、命名管道(named pipe)等資源。
在 TCP/IP 環境下,客戶機通過 NetBIOS over TCP/IP(或 NetBEUI/TCP 或 SPX/IPX)連接伺服器。一旦連接成功,客戶機可發送 SMB 命令到伺服器上,從而客戶機能夠訪問共享目錄、打開文件、讀寫文件,以及一切在文件系統上能做的所有事情。
Windows 95 開始,Microsoft Windows 操作系統(operating system)都包括了客戶機和伺服器 SMB 協議支持。Microsoft 為 Internet 提供了 SMB 的開源版本,即通用 Internet 文件系統(CIFS)。與現有 Internet 應用程序如文件傳輸協議(FTP)相比, CIFS 靈活性更大。對於 UNIX 系統,可使用一種稱為 Samba 的共享軟體。

SMB業務


隨著企業規模的擴大,員工數量越來越多,相應的IT設備管理也就越來越煩瑣,所需投入的成本和精力也越來越多。專業的外包服務將從您IT的整體環境和業務需求考慮,不僅可以完成日常維護、故障檢測和維修等"救火"工作,而且可以幫您分析並解決IT運營管理中的問題、提升IT應用水平、防患於未然。
該服務是一種以響應方式為主的技術支持服務。用戶通過聯繫服務台(Help Desk)獲得直接的技術支持、諮詢,以及獲取快速現場支持響應。當用戶遇到任何與IT相關的使用問題,包括軟體及硬體,可以通過熱線尋求技術支持,Helpdesk工程師通過遠程診斷,並解決可以遠程解決的問題,對於不能遠程解決,需要上門服務的問題統一轉到駐場服務工程師或者主要負責該客戶的IT工程師在客戶現場進行解決。這一過程由Helpdesk工程師統一協調安排。它適用於已有IT環境,想實現規範化管理,並充分利用現有IT系統發揮更大價值並降低成本的公司。