← RFC Reference

RFC 8551: Đặc tả Thông báo S/MIME 4.0

Standards Track Content Security Published March 2026
ELI5: [S/MIME 3.2](5751) mã hóa email của bạn giống như đặt nó vào một chiếc két sắt với ổ khóa tốt. S/MIME 4.0 thay thế ổ khóa đó bằng một ổ khóa hiện đại không chỉ giữ nội dung bí mật mà còn phát hiện nếu ai đó cố gắng can thiệp vào chiếc két sắt. Nó nâng cấp các thuật toán mã hóa lên các thực tiễn tốt nhất hiện tại: AES-GCM thay vì AES-CBC, các đường cong elliptic cùng với RSA, và SHA-256 là mức tối thiểu. Cùng một khái niệm, toán học mạnh hơn.

Tại sao điều này tồn tại

S/MIME 3.2 (RFC 5751, xuất bản năm 2010) đã vững chắc cho thời đại của nó, nhưng mật mã học tiến bộ:

Cách hoạt động

Cấu trúc MIME và gói CMS vẫn giống như S/MIME 3.2. Các thay đổi nằm ở các thuật toán và khả năng được thương lượng giữa người gửi và người nhận.

Những gì thay đổi từ 3.2 thành 4.0

Tính năng S/MIME 3.2 (RFC 5751) S/MIME 4.0 (RFC 8551)
Mã hóa nội dung AES-128-CBC (PHẢI) AES-128-GCM (PHẢI)
Tóm tắt cho ký SHA-256 (PHẢI) SHA-256 (PHẢI)
Thuật toán chữ ký RSA (PHẢI) ECDSA với P-256 (PHẢI), RSA (PHẢI)
Vận chuyển khóa RSA (PHẢI) ECDH với P-256 (PHẢI), RSA-OAEP (NÊN)
SHA-1 cho ký Được cho phép (tương thích ngược) Không dùng
Mã hóa 3DES Được cho phép (tương thích ngược) Không dùng
Bảo vệ tiêu đề Không được đề cập Cơ chế được xác định
EdDSA (Ed25519) Không được xác định Tham chiếu qua RFC đi kèm

Mã hóa xác thực (AES-GCM)

Thay đổi quan trọng nhất là chuyển từ AES-CBC sang AES-GCM như thuật toán mã hóa nội dung bắt buộc:

Mật mã đường cong elip

S/MIME 4.0 làm cho ECDSA (để ký) và ECDH (để thỏa thuận khóa) bắt buộc phải thực hiện cùng với RSA:

Thuật toán Đường cong Cường độ RSA tương đương Kích thước khóa
ECDSA / ECDH P-256 (secp256r1) RSA-3072 256-bit
ECDSA / ECDH P-384 (secp384r1) RSA-7680 384-bit
ECDSA / ECDH P-521 (secp521r1) RSA-15360 521-bit

Khóa EC nhỏ gọn hơn rất nhiều so với khóa RSA ở mức bảo mật tương đương. Đối với email, điều này có nghĩa là chữ ký nhỏ hơn và các khối vận chuyển khóa mã hóa nhỏ hơn, giảm kích thước tin nhắn.

Bảo vệ tiêu đề

S/MIME 4.0 xác định một cách để đưa các bản sao được bảo vệ của tiêu đề email (Subject, From, To, Date) bên trong nội dung MIME được ký hoặc mã hóa. Các tiêu đề bên ngoài vẫn có thể nhìn thấy để định tuyến và hiển thị, nhưng các bản sao được bảo vệ bên trong cho phép người nhận xác minh rằng tiêu đề không bị sửa đổi khi đang chuyển:

-- Bên trong nội dung S/MIME mã hóa --
Content-Type: message/rfc822

Subject: Kết quả quý độc quyền
From: cfo@example.com
To: board@example.com
Date: Wed, 12 Mar 2025 09:00:00 -0400

(nội dung nội dung mã hóa...)

Trình khách của người nhận so sánh các tiêu đề bên trong với các tiêu đề bên ngoài và cảnh báo nếu chúng khác nhau.

Chi tiết kỹ thuật chính

RSA-OAEP so với RSA PKCS#1 v1.5

S/MIME 3.2 sử dụng RSA PKCS#1 v1.5 để vận chuyển khóa. Sơ đồ đệm này dễ bị tấn công kiểu Bleichenbacher. S/MIME 4.0 khuyên dùng RSA-OAEP (Tối ưu hóa Đệm Mã hóa Bất đối xứng), có thể chứng minh được an toàn chống lại các cuộc tấn công chọn bản mã. Những người gửi NÊN sử dụng RSA-OAEP khi người nhận biểu thị hỗ trợ qua khả năng S/MIME của họ.

Thuộc tính khả năng S/MIME

Khi ký một tin nhắn, người gửi bao gồm một thuộc tính SMIMECapabilities liệt kê các thuật toán họ hỗ trợ. Người nhận sử dụng điều này để chọn các thuật toán được hỗ trợ chung mạnh nhất cho các tin nhắn được mã hóa trả lời. S/MIME 4.0 cập nhật thứ tự khả năng được khuyến nghị:

  1. AES-256-GCM
  2. AES-128-GCM
  3. AES-256-CBC (để tương thích ngược)
  4. AES-128-CBC (để tương thích ngược)

Tương thích ngược

Các tác nhân S/MIME 4.0 PHẢI có khả năng nhận và xử lý các tin nhắn S/MIME 3.2. Khi gửi, chúng nên sử dụng các thuật toán S/MIME 4.0 (AES-GCM, ECDSA) khi khả năng của người nhận biểu thị hỗ trợ, và quay lại các thuật toán 3.2 nếu không. Thuộc tính SMIMECapabilities điều khiển quá trình thương lượng này.

Những sai lầm phổ biến

Tác động khả năng giao hàng

Related RFCs