{{위키데이터 속성 추적}}
'''서버 메시지 블록'''('''S'''erver '''M'''essage '''B'''lock, '''SMB''')은 [[도스]]나 [[마이크로소프트 윈도우|윈도우]]에서 파일이나 디렉터리 및 주변 장치들을 공유하는데 사용되는 메시지 형식이다. NetBIOS는 SMB 형식에 기반을 두고 있으며, 많은 네트워크 제품들도 SMB를 사용한다. 이러한 SMB 기반의 네트워크에는 랜매니저, 윈도우 포 워크그룹(Windows for Workgroups), 윈도우 NT, 그리고 랜 서버(Lan Server) 등이 있다. 서로 다른 운영 체제 사이에 파일을 공유할 수 있도록 하기 위해 SMB를 사용하는 제품들도 많이 있다. 그 중 하나가 삼바인데, 유닉스와 윈도우 컴퓨터들간에 디렉터리와 파일을 공유할 수 있게 해 준다.

SMB는 대부분 [[마이크로소프트 윈도우]]를 실행하고 있는 컴퓨터에서 이용된다. 마이크로소프트 환경에서 사용자들은 대개 이를 단순히 "마이크로소프트 윈도우 네트워크"로 알고 있다.

서버 메시지 블록(SMB)에 대해 논할 때에는 다음을 구별해야 한다:
* SMB 프로토콜
* 프로토콜 위에서 동작하는 SMB 서비스
* [[넷바이오스]](NetBIOS)
* SMB를 권한을 수여 받은 [[프로세스 간 통신]] 채널로 사용하는 [[DCE/RPC]] 서비스 ([[지명 파이프]] 위에서)
* 주로 [[패킷|데이터그램]] 서비스로 직접 [[넷바이오스]] [[전송 계층]] 위에서 동작하는 [[내 네트워크 환경|네트워크 환경]] 프로토콜

== 기능 ==
SMB는 [[세션 계층|세션]] 네트워크 계층의 최상위에서 여러 방법으로 수행할 수 있다:
* 직접 TCP, [[TCP 포트|포트]] 445를 경유하여<ref name="direct">{{웹 인용|url=http://support.microsoft.com/kb/204279|title=Direct hosting of SMB over TCP/IP|publisher=[[마이크로소프트]]|date=October 11, 2007|accessdate=November 1, 2009}}</ref>
* 여러 [[전송 계층|전송]]에서 실행할 수 있는 [[넷바이오스]] API를 통해<ref>{{웹 인용 |url=http://samba.anu.edu.au/cifs/docs/what-is-smb.html |title=Just what is SMB? |author=Richard Sharpe |date=October 8, 2002 |accessdate=July 18, 2011 |보존url=https://web.archive.org/web/20091202045224/http://samba.anu.edu.au/cifs/docs/what-is-smb.html |보존날짜=2009-12-02 |url-status=dead }}</ref>
** [[사용자 데이터그램 프로토콜|UDP]] 포트 137, 138 및 TCP 포트 137, 139 ([[NetBIOS over TCP/IP]])
** [[NetBIOS Frames protocol|NBF]], [[IPX/SPX]]와 같은 여러 레거시 프로토콜을 통해

== 역사 ==
=== SMB / CIFS / SMB1 ===
Barry Feigenbaum은 도스 [[MS-DOS API|인터럽트 33 (21h)]] 로컬 파일 접근을 네트워크 파일 시스템으로 전환하기 위해 [[IBM]]에서 SMB를 설계하였다.<ref name='tridgemyths'>{{웹 인용|url=https://www.samba.org/samba/docs/myths_about_samba.html|title=Myths About Samba |author=Tridgell, Andrew|authorlink=Andrew Tridgell|accessdate=January 3, 2016}}</ref> [[마이크로소프트]]는 가장 흔히 사용되는 버전에 상당한 수정을 하였다. 마이크로소프트는 1990년 경 [[3Com]]과 함께 [[OS/2]]용으로 개발을 시작한 SMB를 [[랜 매니저]] 제품에 병합하였으며 [[윈도우 포 워크그룹]](1992년 경) 및 차기 운영 체제에서 이 프로토콜에 기능 추가를 계속하였다.
=== SMB 2.0 ===
마이크로소프트는 2006년에 [[윈도우 비스타]]에서 새로운 버전의 프로토콜(SMB 2.0, SMB2)를 선보였다.<ref name="smb2">{{웹 인용 | url=http://blogs.msdn.com/chkdsk/archive/2006/03/10/548787.aspx | title=What's new in SMB in Windows Vista | date=March 10, 2006 | accessdate=May 1, 2006 | author=Navjot Virk and Prashanth Prahalad | work=Chk Your Dsks | publisher=MSDN | 보존url=https://web.archive.org/web/20060505005515/http://blogs.msdn.com/chkdsk/archive/2006/03/10/548787.aspx | 보존날짜=2006년 5월 5일 | url-status=dead }}</ref>
=== SMB 2.1 ===
윈도우 7과 윈도우 서버 2008 R2에 도입된 SMB 2.1은 새로운 잠금 매커니즘과 더불어 사소한 성능 개선을 추가하였다.<ref>{{웹 인용|url=http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d8541618-5c63-4c4d-a0fd-d942cd3d2ec6|publisher=[[마이크로소프트]]|accessdate=November 2, 2009|date=October 21, 2009|title=Implementing an End-User Data Centralization Solution|pages=10–11|보존url=https://web.archive.org/web/20100906141857/http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d8541618-5c63-4c4d-a0fd-d942cd3d2ec6|보존날짜=2010년 9월 6일|url-status=dead}}</ref>
=== SMB 3.0 ===
SMB 3.0(과거 명칭: SMB 2.2)<ref name="smb3">{{웹 인용|url=http://blogs.technet.com/b/windowsserver/archive/2012/04/19/smb-2-2-is-now-smb-3-0.aspx|title=Windows Server Blog: SMB 2.2 is now SMB 3.0|author=Jeffrey Snover|date=April 19, 2012|accessdate=June 14, 2012|publisher=[[마이크로소프트]]|보존url=https://www.webcitation.org/6AvNM8zRA?url=http://blogs.technet.com/b/windowsserver/archive/2012/04/19/smb-2-2-is-now-smb-3-0.aspx|보존날짜=2012-09-24|url-status=dead}}</ref>은 [[윈도우 8]]<ref name="smb3"/>, [[윈도우 서버 2012]]<ref name="smb3"/>와 함께 도입되었다.
=== SMB 3.0.2 ===
SMB 3.0.2(당시 3.02로 알려짐)는 윈도우 8.1과 윈도우 서버 2012 R2 이후에 도입되었다.<ref>{{웹 인용|url=https://blogs.technet.microsoft.com/josebda/2014/07/07/updated-links-on-windows-server-2012-r2-file-server-and-smb-3-02/|title=Updated Links on Windows Server 2012 R2 File Server and SMB 3.02|author=Jose Barreto|date=July 7, 2014| publisher = [[Microsoft TechNet]] Server & Management Blogs}}</ref><ref>{{웹 인용|url=https://blogs.technet.microsoft.com/josebda/2013/12/12/storage-developer-conference-sdc-2013-slides-now-publicly-available-here-are-the-links-to-microsoft-slides/|title=Storage Developer Conference –  SDC 2013 slides now publicly available. Here are the links to Microsoft slides…|author=Jose Barreto|date=December 12, 2013| publisher = [[Microsoft TechNet]] Server & Management Blogs}}</ref>
=== SMB 3.1.1 ===
SMB 3.1.1은 [[윈도우 10]]과 [[윈도우 서버 2016]]과 함께 도입되었다.<ref>{{웹 인용|url=https://blogs.technet.microsoft.com/josebda/2015/05/05/whats-new-in-smb-3-1-1-in-the-windows-server-2016-technical-preview-2/|title=What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2|author=Jose Barreto|date=May 5, 2015| publisher = [[Microsoft TechNet]] Server & Management Blogs}}</ref>

== 구현 ==
=== 클라이언트-서버 접근 ===
SMB는 [[클라이언트-서버]] 접근을 통해 동작하며, [[클라이언트]]는 특정한 요청을 하면 서버는 이에 따라 응답하는 방식이다.
=== 삼바 ===
{{본문|삼바 (소프트웨어)}}
=== NQ ===
NQ는 1998년에 [[지멘스 주식회사|지멘스]] 데이터 커뮤니케이션스의 전 CEO Sam Widerman이 설립한 이스라엘 기업 Visuality Systems가 개발한 포터블 SMB 클라이언트 및 서버 구현체이다.
=== MoSMB ===
MoSMB는 리눅스 및 기타 [[유닉스 계열]] 운영 체제를 위한 사유 SMB 구현체로서, Ryussi Technologies가 개발하였다. SMB 2.x, SMB 3.x만 지원한다.<ref>{{웹 인용|url=http://www.snia.org/sites/default/files/SDC/2016/presentations/smb/Sunu_Engineer_Building_Highly_Scalable_Performant_SMB_Protocol_Server.pdf|title=Building a Highly Scalable and Performant SMB Protocol Server|author=Dr. Sunu Engineer}}</ref>
=== Tuxera SMB ===
Tuxera SMB는 [[Tuxera]]가 개발한 사유 SMB 서버 구현체로, 커널이나 [[사용자 공간]]에서 실행할 수 있다.<ref>{{웹 인용|title=Microsoft and Tuxera strengthen partnership through Tuxera SMB Server|url=https://news.microsoft.com/2016/09/14/microsoft-and-tuxera-strengthen-partnership-through-tuxera-smb-server|website=Microsoft|publisher=Microsoft News Center|accessdate=6 February 2017}}</ref> SMB 3.0 및 이전 버전들을 지원한다.

== 보안 ==
수년에 걸쳐, 이 프로토콜이나 이 프로토콜에 기반을 둔 구성 요소에 대한 마이크로소프트의 구현체들에 수많은 보안 취약점들이 있었다.<ref>{{웹 인용|url=http://support.microsoft.com/kb/329170|title=MS02-070: Flaw in SMB Signing May Permit Group Policy to Be Modified|publisher=[[마이크로소프트]]|accessdate=November 1, 2009|date=December 1, 2007}}</ref><ref>{{웹 인용|url=http://support.microsoft.com/kb/958687|title=MS09-001: Vulnerabilities in SMB could allow remote code execution|publisher=[[마이크로소프트]]|accessdate=November 1, 2009|date=January 13, 2009}},</ref> 다른 업체들의 보안 취약점들은 NTLMv1, [[랜 매니저|LanMan]], 플레인텍스트 암호와 같은 프로토콜을 선호하면서 [[NT LAN 매니저|NTLMv2]]와 [[커베로스]]와 같은 더 새로운 [[인증 프로토콜]]의 지원 부족으로 인해 발생되었다. 실시간 공격을 추적한 바에 따르면<ref>{{웹 인용|url=http://www.sicherheitstacho.eu|title=Sicherheitstacho.eu|publisher=[[Deutsche Telekom]]|accessdate=March 7, 2013|date=March 7, 2013}}</ref> SMB는 침투 시도를 위한 주된 공격 벡터들 가운데 하나인데<ref>{{웹 인용|url=https://www.us-cert.gov/ncas/alerts/TA14-353A|title=Alert (TA14-353A) Targeted Destructive Malware|publisher=[[US-CERT]]}}</ref>, 2014년의 [[소니 픽처스 엔터테인먼트 해킹 사건]]이라든지<ref>{{웹 인용|url=http://www.securityweek.com/hackers-used-sophisticated-smb-worm-tool-attack-sony|title=Sony Hackers Used Server Message Block (SMB) Worm Tool}}</ref> 2017년의 [[워너크라이]] [[랜섬웨어]] 공격<ref>{{뉴스 인용|url=http://www.eweek.com/security/wannacry-ransomware-attack-hits-victims-with-microsoft-smb-exploit|title=WannaCry Ransomware Attack Hits Victims With Microsoft SMB Exploit|work=[[eWeek]]|accessdate=13 May 2017}}</ref>을 예로 들 수 있다.

== 같이 보기 ==
* [[애플토크]]
* [[네트워크 파일 시스템]]
* [[삼바 (소프트웨어)|삼바]]

== 각주 ==
{{각주}}

{{윈도우 구성 요소}}
{{파일 시스템}}

{{전거 통제}}

[[분류:네트워크 프로토콜]]
[[분류:응용 계층 프로토콜]]
[[분류:네트워크 파일 시스템]]