Server Message Block (SMB), známý také jakoCommon Internet File System (CIFS), jesíťový komunikační protokolaplikační vrstvy, který slouží kesdílenému přístupu ksouborům,tiskárnám,sériovým portům a další komunikaci mezi uzly na síti. Poskytuje takéautentizovaný mechanismus promeziprocesovou komunikaci. Je využíván hlavně na počítačích s operačními systémy rodinyWindows.
Protokol SMB vyvinul Barry Feigenbaum ve firměIBM s cílem změnitDOSové „přerušení 33“ (21h) pro přístup k lokálním souborům na síťový systém souborů.Microsoft provedl významné změny a protokol včlenil do produktuLAN Manager, který vyvíjel spolu s firmou3Com (kolem roku 1990). Microsoft protokol dále rozvíjel veWindows for Workgroups (1992) i dalších verzích Microsoft Windows.
ProjektSamba přineslsvobodnou implementaci SMB protokolu vyvinutou pomocíreverzního inženýrství.
VeWindows Vista (vydané v roce 2007) byla představena 2. verze protokolu (Server Message Block verze 2.0).
Protokol je díky firmě Microsoft rozšířený v oblasti souborových serverů a klientů sítíLAN. Protokol SMB využívajísouborové atiskové servery síťových operačních systémů IBM (např.LAN Server,OS/2) a Microsoft (např.LAN Manager,Windows NT).Protokol pracuje na principuklient–server. Server umožňuje klientům sítě přistupovat k tzv. sdíleným prostředkům, např. sdíleným diskům, adresářům, tiskovým frontám nebopojmenovaným kanálům. Sdílené prostředky jsou rozpoznávány pomocí síťové adresyUNC (\\jméno_serveru\jméno_zdroje). Klientská část má za úkol definovat požadavky na sdílené prostředky serveru. Server vykonává rozbor požadavků odeslaných klientem ve tvaru bloku (paketu) SMB, porovnává přístupová práva a na podkladě přístupových práv zahajuje požadovanou operaci (vytvoření adresáře, spuštění souboru atd.). Výsledek je s odpovědí poslán klientu identickým blokem SMB.
Z pohledu serveru SMB k přístupu ke sdíleným prostředkům máme dva pohledy:
V prvním případě server povoluje přístup ke sdíleným prostředkům na základě správného hesla, které je přiřazeno k jednotlivému sdílenému prostředku. Po zadání správného hesla klientem je klientu přidělen identifikátor prostředku NID (NetworkID), pomocí něhož přistupuje k prostředku.
V druhém případě se klient přihlašuje na server hned pomocí jména a hesla a v případě správnosti server přiřadí klientu uživatelský identifikátor UID (UserID), pomocí něhož server odvozuje přístupová práva při manipulaci se sdíleným prostředkem.
| SID | S | C | RC | AH | RC | RS | NID | PID | UID | MID | P | PCd | BL | B |
| 1B | 3B | 1B | 1B | 1B | 2B | 15B | 2B | 2B | 2B | 2B | 1B | 2B | 2B | 1B |
| Označení | Význam |
| SID | identifikace protokolu SMB |
| S | identifikace dialektu serveru SMB |
| C | funkční kód volané služby |
| R | třída návratového kódu funkce SMB |
| AH | výsledek operace v registru AH procesoru |
| RC | návratový kód operace |
| RS | rezerva pro budoucí rozšíření |
| NID | identifikátor přiřazený sdílenému prostředku |
| PID | identifikátor procesu klienta |
| UID | identifikátor uživatele |
| MID | multiplexní identifikátor procesu klienta |
| Prmct | počet volitelných parametrů k volané funkci |
| Pc | kód parametru volané funkce |
| Bl | délka datové části SMB bloku |
| B | první slabika datové části bloku SMB |
Microsoft představil novou verzi Server Message Block (SMB)protokolu (SMB 2.0 nebo SMB2) s Windows Vista v roce 2006. Ačkoli je protokolproprietární, specifikace byly publikovány a ostatním systémům byla umožněna spolupráce s operačními systémy společnosti Microsoft, které používají nový protokol.
SMB2 redukuje velikost protokolu SMB1.0 tím, že snižuje početpříkazů a podpříkazů ze stovek na pouhých devatenáct. Mápipelining (řetězení), to znamená odeslání dalších požadavků dříve než přijde odpověď na předchozí požadavek, čímž dochází ke zvýšení výkonu. To dodává schopnost sloučit více akcí do jednoho požadavku, který významně redukuje počet kruhových cest, výsledkem toho je zlepšení výkonu. SMB1 má také slučovací mechanismus, známý jako AndX, k sloučení více akcí, ale klienti Microsoftu používají AndX jen zřídka kdy. To také zavádí pojem „Odolný přenos souborů“, což umožňuje připojení přežít krátké výpadky sítě, které jsou typické vbezdrátové síti, aniž by bylo nutné se opětovně připojovat.
SMB2 má podporu pro symbolickéadresy. Mezi další vylepšení patří kešování vlastností souborů, zlepšení podepisování zpráv pomocí hašovacího algoritmu HMAC SHA-256 a lepší škálovatelnost zvýšením počtu uživatelů, sdílených a otevřených souborů. Protokol SMB1 používá16bitovou velikost dat, což omezuje maximální velikost bloku na 64 KiB. SMB2 využívá pro offset v souboru32 bitů nebo 64 a 128 bitů, čímž se odstraňuje předchozí omezení na velikost bloku, což zlepšuje výkon a přenos velkých souborů přes rychlé sítě.
Windows Vista/Server 2008 a starší operační systémy používají SMB2, když komunikují s dalšími stroji, které jsou také schopny používat SMB2. Protokol SMB1 je nadále používán při komunikaci se staršími verzemi Windows, Sambou či NAS. Samba 3.5 obsahuje experimentální podporu SMB2. Samba 3.6 již SMB2 plně podporuje, s výjimkou změny uživatelských kvót s využitím nástrojů systému Windows pro řízení kvót.
Když byl SMB2 představen, přinesl mnoho výhod. SMB1, původně vyvinutIBM, se později stal součástí nejrůznějších operačních systému, kromě Windows například Xenix, OS/2 a VMS.
SMB 2.1 byl zaveden sWindows 7 a Windows Server 2008 R2, přinesl drobné vylepšení výkonu.
SMB 3.0 (předchozí název byl SMB 2.2)[1] byl zaveden sWindows 8 aWindows Server 2012.[1] Přinesl několik významných změn, například SMB Direct Protocol a SMB Multichannel, které přinášejí nové funkce a zlepšují výkon SMB2,[2] zejména při použití ve virtualizovaných datových centrech.
SMB 3.0.2 byl zaveden sWindows 8.1 aWindows Server 2012 R2. V těchto verzích bylo pro zvýšení bezpečnosti možné vypnou SMB verze 1.[3][4]
SMB verze 3.1.1 byl uveden veWindows 10 aWindows Server 2016.[5] Nově podporuje šifruAES-128GCM jako doplněk k AES-128CCM přidané ve verzi SMB3 a implementuje předautentizační kontrolu integrity pomocíSHA-512. SMB 3.1.1 vyžaduje bezpečné vyjednávání pokud se připojuje ke klientům, kteří jej v podporované SMB verzi umožňují.[6]
{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.{{Cite web}} označená jako k „pouze dočasnému použití“.