Loading...

SSL Inspection trên FortiGate: Certificate Inspection vs Deep Inspection

1. Liên hệ thực tế

Sau khi cấu hình xong chứng chỉ ở bài trước, khách hàng đặt câu hỏi khó hơn: "Hiện tại hơn 90% traffic của công ty là HTTPS — Web Filter và Antivirus của FortiGate có thực sự nhìn được nội dung bên trong traffic đã mã hóa đó không, hay chỉ đang đoán mò?"

Anh Nam trả lời thật: "Thực ra... em cũng không chắc FortiGate đang xem được tới đâu."

Chị Lan giải thích: "Đây chính là vai trò của SSL Inspection. Có hai chế độ: Certificate Inspection chỉ xem được tên miền trong handshake SSL — đủ để Web Filter chặn theo domain, nhưng không thấy được nội dung bên trong. Deep Inspection thì FortiGate đóng vai trò 'người đứng giữa' hợp pháp — giải mã, quét, rồi mã hóa lại — lúc đó Antivirus/IPS mới thực sự soi được file, mã độc ẩn trong traffic HTTPS."

Bài này giải thích rõ hai chế độ SSL Inspection, cách hoạt động, và những đánh đổi cần cân nhắc trước khi bật Deep Inspection cho toàn mạng.


2. Kiến thức cốt lõi

2.1 Vì sao cần SSL Inspection

HTTPS mã hóa toàn bộ nội dung giữa client và server — bảo vệ tốt cho người dùng, nhưng đồng thời cũng che giấu nội dung khỏi các thiết bị bảo mật trung gian như FortiGate. Nếu không có cơ chế xử lý riêng, Antivirus, DLP, hay Application Control không thể nhìn thấy gì bên trong một phiên HTTPS — chỉ có Firewall Policy dựa trên IP/port là vẫn hoạt động bình thường.

2.2 Certificate Inspection — chỉ xem phần "vỏ ngoài"

Certificate Inspection chỉ kiểm tra thông tin trao đổi trong bước bắt tay SSL/TLS (handshake) — cụ thể là SNI (Server Name Indication) và nội dung chứng chỉ server — mà không giải mã phần nội dung thực sự của phiên truyền tải.

Certificate Inspection vs Deep Inspection Certificate Inspection Client FGT Server Chỉ xem SNI/cert header, không giải mã nội dung • Đủ cho Web Filter theo domain • Không tốn cảnh báo cert lạ • Không phát hiện được mã độc ẩn Deep Inspection (MITM) Client FGT Server FortiGate giải mã, quét, rồi mã hóa lại bằng CA riêng • Quét được AV/IPS/DLP đầy đủ • Cần cài CA cert lên client • Ảnh hưởng privacy, hiệu năng

config firewall ssl-ssh-profile
    edit "custom-cert-inspection"
        set comment "Certificate inspection cho toàn bộ HTTPS"
        config https
            set ports 443
            set status certificate-inspection
        end
    next
end

Vì chỉ đọc phần chưa mã hóa của handshake, Certificate Inspection đủ dùng cho Web Filter hoạt động theo domain (chặn/cho phép theo tên miền), nhưng không đủ để Antivirus hay DLP soi được nội dung file/dữ liệu cụ thể bên trong traffic đó.

⚠️ Lưu ý: FortiOS có sẵn profile certificate-inspection (read-only, chỉ nghe cổng 443) — muốn tùy biến (đổi cổng, thêm điều kiện loại trừ) cần tạo profile mới dựa trên nó, như ví dụ CLI ở trên.

2.3 Deep Inspection — giải mã thật sự, đóng vai trò trung gian hợp pháp

Deep Inspection (còn gọi là SSL/SSH full inspection) khiến FortiGate hoạt động như một trung gian hợp pháp (Man-in-the-Middle được chủ động thiết lập bởi tổ chức, khác với tấn công MITM độc hại): giải mã traffic đến, quét đầy đủ bằng Antivirus/IPS/DLP, sau đó mã hóa lại bằng chứng chỉ riêng của FortiGate trước khi gửi tiếp tới client.

config firewall ssl-ssh-profile
    edit "custom-deep-inspection"
        set caname "Fortinet_CA_SSL"
        config https
            set ports 443
            set status deep-inspection
        end
    next
end

Vì phiên HTTPS thực chất bị "chia làm hai đoạn" (client ↔ FortiGate, và FortiGate ↔ server thật), trình duyệt của client sẽ thấy chứng chỉ do FortiGate ký (Fortinet_CA_SSL mặc định, hoặc CA riêng của tổ chức) thay vì chứng chỉ gốc của website — nếu CA đó chưa được cài vào danh sách tin cậy trên máy client, trình duyệt sẽ báo cảnh báo "chứng chỉ không hợp lệ".

⚠️ Lưu ý quan trọng: Để triển khai Deep Inspection êm ả (không gây cảnh báo hàng loạt), bắt buộc phải phân phối CA certificate của FortiGate (xuất ra từ System > Certificates, hoặc tự tạo CA riêng thay vì dùng mặc định) tới toàn bộ máy client — thường qua Group Policy (GPO) nếu dùng Active Directory, hoặc MDM cho thiết bị di động. Nếu bỏ qua bước này, người dùng sẽ liên tục thấy cảnh báo và có xu hướng bấm "vẫn tiếp tục" bất kể cảnh báo thật hay giả — làm giảm chính hiệu quả bảo mật.

2.4 Các cân nhắc quan trọng khi bật Deep Inspection

Hiệu năng: Giải mã và mã hóa lại toàn bộ traffic HTTPS tốn tài nguyên CPU đáng kể hơn nhiều so với Certificate Inspection — cần đánh giá công suất model FortiGate so với tổng lưu lượng HTTPS thực tế trước khi bật rộng rãi.

Riêng tư (privacy): Deep Inspection cho phép tổ chức nhìn thấy toàn bộ nội dung traffic HTTPS của nhân viên — cần cân nhắc yếu tố pháp lý, thông báo minh bạch cho người dùng, và loại trừ các danh mục nhạy cảm.

Loại trừ theo danh mục nhạy cảm: Theo khuyến nghị Fortinet, nên loại trừ Deep Inspection cho các website liên quan tài chính ngân hàng hoặc y tế cá nhân — dùng SSL Exempt List:

config firewall ssl-ssh-profile
    edit "custom-deep-inspection"
        config ssl-exempt
            edit 1
                set type fortiguard-category
                set fortiguard-category 26
            next
        end
    next
end

Ứng dụng dùng certificate pinning: Một số ứng dụng (ngân hàng, một số app di động) tự kiểm tra chứng chỉ server có đúng như chờ đợi (certificate pinning) — khi bị Deep Inspection "tráo" chứng chỉ, các ứng dụng này sẽ từ chối kết nối hoàn toàn thay vì chỉ cảnh báo. Cần thêm các domain/app này vào SSL Exempt List để tránh gián đoạn dịch vụ.

2.5 Bảng so sánh nhanh

Đặc điểmCertificate InspectionDeep Inspection
Giải mã nội dung Không
Antivirus/DLP quét được nội dung Không
Web Filter theo domain
Cần cài CA lên client Không Có (bắt buộc để tránh cảnh báo)
Ảnh hưởng hiệu năng Thấp Cao hơn đáng kể
Rủi ro với cert pinning Không Có, cần loại trừ riêng

3. Hỏi & Đáp

Có nên bật Deep Inspection cho toàn bộ traffic ngay từ đầu không?

Không nên áp dụng đại trà ngay — nên triển khai từng bước, bắt đầu với nhóm nhỏ để kiểm tra tác động (hiệu năng, ứng dụng bị lỗi do cert pinning), phân phối CA certificate đầy đủ trước, rồi mới mở rộng dần ra toàn mạng.

Nếu không cài CA certificate lên máy client mà vẫn bật Deep Inspection thì sao?

Người dùng sẽ liên tục thấy cảnh báo "kết nối không an toàn" mỗi khi truy cập HTTPS — không chỉ gây phiền toái mà còn tập cho người dùng thói quen bỏ qua cảnh báo bảo mật, phản tác dụng về lâu dài.

Certificate Inspection có phát hiện được website giả mạo (phishing) không?

Có một phần — vì vẫn đọc được SNI và tên miền trong chứng chỉ, kết hợp với FortiGuard Web Filter category, Certificate Inspection vẫn chặn được nhiều trường hợp phishing theo danh mục đã biết. Tuy nhiên nó không phân tích được nội dung trang để phát hiện các kỹ thuật phishing tinh vi hơn — đó là điểm mạnh riêng của Deep Inspection kết hợp Web Filter nâng cao.

SSH Inspection có hoạt động giống HTTPS Inspection không?

Về nguyên lý tương tự — SSL/SSH Inspection Profile áp dụng cho cả giao thức SSH, cũng có thể can thiệp để kiểm tra lệnh SSH đi qua, nhưng đây là tính năng riêng biệt (config ssh trong cùng profile) với các cân nhắc bảo mật/pháp lý còn nghiêm ngặt hơn khi can thiệp vào kênh quản trị hệ thống qua SSH.


4. Quiz

Câu 1: Certificate Inspection kiểm tra thông tin gì trong phiên HTTPS?

  • A. Toàn bộ nội dung file được tải lên/xuống
  • B. SNI và thông tin chứng chỉ trong bước bắt tay SSL/TLS, không giải mã nội dung
  • C. Mật khẩu đăng nhập của người dùng
  • D. Không kiểm tra được gì cả

Câu 2: Vì sao Deep Inspection khiến trình duyệt hiển thị cảnh báo nếu chưa cài CA certificate của FortiGate?

  • A. Vì Deep Inspection không hoạt động đúng cách
  • B. Vì trình duyệt thấy chứng chỉ do FortiGate ký thay vì chứng chỉ gốc của website, và CA đó chưa nằm trong danh sách tin cậy
  • C. Vì HTTPS không hỗ trợ Deep Inspection
  • D. Vì hết hạn license FortiGuard

Câu 3: Antivirus và DLP có thể quét được nội dung file trong traffic HTTPS khi dùng chế độ nào?

  • A. Certificate Inspection
  • B. Deep Inspection
  • C. Cả hai chế độ đều quét được như nhau
  • D. Không chế độ nào quét được

Câu 4: SSL Exempt List trong SSL/SSH Inspection Profile dùng để làm gì?

  • A. Chặn hoàn toàn các website trong danh sách
  • B. Loại trừ một số traffic (như ngân hàng, y tế, app dùng certificate pinning) khỏi Deep Inspection
  • C. Tăng tốc độ Deep Inspection cho toàn bộ traffic
  • D. Không có tác dụng thực tế

Câu 5: Vì sao một số ứng dụng dùng certificate pinning sẽ từ chối kết nối hoàn toàn khi bị Deep Inspection?

  • A. Vì ứng dụng đó bị lỗi phần mềm
  • B. Vì ứng dụng tự kiểm tra chứng chỉ server đúng như mong đợi, và từ chối khi thấy chứng chỉ đã bị "tráo" bởi FortiGate
  • C. Vì FortiGate chặn toàn bộ ứng dụng dùng certificate pinning
  • D. Vì Deep Inspection chỉ hoạt động với trình duyệt, không hoạt động với ứng dụng

👉 Đáp án

Câu 1: B Certificate Inspection chỉ đọc thông tin SNI và chứng chỉ server trong bước bắt tay SSL/TLS, không giải mã phần nội dung thực sự của phiên truyền tải.

Câu 2: B Vì Deep Inspection khiến FortiGate ký lại chứng chỉ bằng CA riêng của nó thay cho chứng chỉ gốc website; nếu CA đó chưa được client tin cậy, trình duyệt sẽ cảnh báo chứng chỉ không hợp lệ.

Câu 3: B Chỉ Deep Inspection mới giải mã được nội dung thực sự của traffic HTTPS, cho phép Antivirus và DLP quét được file/dữ liệu bên trong; Certificate Inspection không có khả năng này.

Câu 4: B SSL Exempt List loại trừ một số traffic nhạy cảm hoặc dễ xung đột (ngân hàng, y tế, ứng dụng dùng certificate pinning) khỏi việc bị Deep Inspection can thiệp, tránh gián đoạn dịch vụ hoặc vấn đề riêng tư.

Câu 5: B Ứng dụng dùng certificate pinning tự kiểm tra chứng chỉ server có đúng như đã lưu cứng trong ứng dụng hay không; khi Deep Inspection tráo chứng chỉ, ứng dụng phát hiện sai lệch và từ chối kết nối thay vì chỉ cảnh báo như trình duyệt thông thường.


📚 Bài viết thuộc khóa học FortiGate của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Certificate trên FortiGate: Local Cert, CA, Import Mục lục khóa học FortiGate Antivirus Profile: Flow-based vs Proxy-based