1
SMB3 Protocol Update
2020 edition!
Tom Talpey Microsoft Corporation
SMB3 Protocol Update 2020 edition! Tom Talpey Microsoft - - PowerPoint PPT Presentation
SMB3 Protocol Update 2020 edition! Tom Talpey Microsoft Corporation 1 Outline SMB3 Protocol since last year SMB3 Protocol update in current 20H1 SMB3 Protocol changes coming Other related developments 2 SambaXP 2020
1
Tom Talpey Microsoft Corporation
2
SambaXP 2020 Online
3
distancing
SambaXP 2020 Online
4
smb2/5606ad47-5ee0-437a-817e-70c366052962
winerrata/2cdafcfa-ce51-426a-9678-630a505a1a35
SambaXP 2020 Online
5
SambaXP 2020 Online
6
smb2/5606ad47-5ee0-437a-817e-70c366052962
SambaXP 2020 Online
7
SambaXP 2020 Online
8
SambaXP 2020 Online
9
winerrata/2cdafcfa-ce51-426a-9678-630a505a1a35
SambaXP 2020 Online
10
SambaXP 2020 Online
11
SambaXP 2020 Online
12
SambaXP 2020 Online
13
SambaXP 2020 Online
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 9 3 1 CompressionAlgorithmCount Padding Flags CompressionAlgorithms (variable) …
14
section 2.2.42) in SMB2 transform header
SambaXP 2020 Online
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 9 3 1 ProtocolId OriginalCompressedSegmentSize CompressionAlgorithm Flags Offset/Length
15
Value Meaning NONE 0x0000 No compression LZNT1 0x0001 LZNT1 compression algorithm LZ77 0x0002 LZ77 compression algorithm LZ77+Huffman 0x0003 LZ77+Huffman compression algorithm Pattern_V1 0x0004 Pattern Scanning algorithm
SambaXP 2020 Online
Value Meaning SMB2_COMPRESSION_CAPABILITIES_FLAG_NONE 0x00000000 Chained compression is not supported. SMB2_COMPRESSION_CAPABILITIES_FLAG_CHAINED 0x00000001 Chained compression is supported on this connection.
16
SambaXP 2020 Online
Value Meaning SMB2_COMPRESSION_FLAG_NONE 0x0000 Chained compression is not supported. SMB2_COMPRESSION_FLAG_CHAINED 0x0001 The Compressed message is chained with multiple compressed payloads.
17
SambaXP 2020 Online
SMB2_COMPRESSION_PATTERN_PAYLOAD_V1
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 9 3 1 AlgorithmId Reserved Length OriginalPayloadSize (optional) 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 9 3 1 Pattern Reserved1 Reserved2 Repetitions
18
SambaXP 2020 Online
19
000000…55AA55AA55AA…FFFFFF
SambaXP 2020 Online
20
1. SMB2_COMPRESSION_TRANSFORM_HEADER(Chained=1) 2. SMB2_COMPRESSION_PAYLOAD_HEADER(Pattern_v1, len1) 3. SMB2_COMPRESSION_PATTERN_PAYLOAD_v1(0x00) 4. SMB2_COMPRESSION_PAYLOAD_HEADER(e.g. LZ77, len2) [or None] 5. (LZ77 compressed data) [or uncompressed data] 6. SMB2_COMPRESSION_PAYLOAD_HEADER(Pattern_v1, len2) 7. SMB2_COMPRESSION_PATTERN_PAYLOAD_v1(0xFF) 8. Remaining HEADER+SMB2_WRITE and any additional uncompressed segments
SambaXP 2020 Online
1 2 3 4 5 6 7 8 SMB2_WRITE 4KB Data = 0000…55AA…FFFF
21
SambaXP 2020 Online
22
➢The SMB2_COMPRESSION_PAYLOAD_HEADER (in 6) may not be aligned
SambaXP 2020 Online
23
implementations
SambaXP 2020 Online
24
SambaXP 2020 Online
25
SambaXP 2020 Online
26
“right” has been a challenge
and automated document testing review
those
SambaXP 2020 Online
(https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms- winerrata/2cdafcfa-ce51-426a-9678-630a505a1a35)
27
vulnerabilities-endpoint-network-stacks/
SambaXP 2020 Online
28
SambaXP 2020 Online
29
Yes, you’ve seen some of these before
SambaXP 2020 Online
30
SambaXP 2020 Online
31
TCP
SambaXP 2020 Online
32
SambaXP 2020 Online
https://www.snia.org/sites/default/files/SDC/2018/present ations/SMB/George_Xin_SMB3_Landscape_Directions.pdf
33
AES-CCM based signing
computations
SambaXP 2020 Online
https://www.snia.org/sites/default/files/SDC15_presentations/ smb/GregKramer_%20SMB_3-1-1_rev.pdf
34
signing in future SMB 3.1.1. New negotiation context specifying the algorithm count and algorithm IDs:
SambaXP 2020 Online
0x0001 Selected Algorithm ID
2 Byte
Algorithm Count Algorithm Id 1 Algorithm Id Algorithm Id 2
2 Byte 2 Byte 2 Byte
……
35
RDMA.
packet-based authenticated and/or encrypted traffic over SMB RDMA.
SambaXP 2020 Online
SMB2 RDR SMB2 SRV
RDMA Buffer RDMA Buffer
(Encrypted/Signed)
RDMA Buffer
(Decrypted/Verified)
E.g. An SMBDirect write:
RDMA Pull
36
SambaXP 2020 Online
Signature and Nonce Transform Descriptor Signature Length Signature Offset Nonce Length Nonce Offset Original Message Size Reserved 1 Reserved 2 Channel Offset Channel Length Channel (V1 or V1 Invalidate) SMB2 HEADER SMB2 REQ WRITE RDMA Descriptor
37
1 2 3 1 Traditional i/o 2 DAX memcpy by SMB3 Server 3 Push Mode direct from RDMA NIC
Mode” discussed at previous events
read/write to DAX file
protocol extensions required
SMB3 Server RDMA NIC SMB3 RDMA Push/ Commit “Buffer Cache”
RDMA R/W Load/Store
DAX Filesystem PMEM
I/O requests
Direct file mapping
SambaXP 2020 Online
38
SambaXP 2020 Online
https://www.snia.org/sites/default/files/SDC/2019/presentations/SMB/ George_Mathew_Talpey_Tom_Storage_RDMA_Push_Mode_to_Persiste nt_Memory_via_SMB3.pdf
39
SambaXP 2020 Online
40
SambaXP 2020 Online
41
SambaXP 2020 Online
42
SambaXP 2020 Online
43
SambaXP 2020 Online
44
SambaXP 2020 Online
45
SambaXP 2020 Online