Sổ Tay Kỹ Thuật Thực Địa: Triển Khai BACnet/SC An Toàn Cho Tòa Nhà Cao Tầng Quận 7 TP.HCM

Sổ Tay Kỹ Thuật Thực Địa – Triển Khai BACnet/SC Tại Tòa Nhà Cao Tầng Quận 7, TP.HCM
Mở đầu
Các dự án tòa nhà thông minh tại TP.HCM đang chuyển sang BACnet/SC nhằm tuân thủ Thông tư 03/2024/TT-BTTTT về an ninh mạng cho hệ thống điều khiển tòa nhà. Tòa nhà Landmark 81 mở rộng (tên giả định: Tòa A, 42 tầng, Quận 7) yêu cầu thay thế toàn bộ backbone BACnet/IP cũ sang BACnet/SC trên cổng 443 với TLS 1.3 hai chiều. Bài viết ghi lại quy trình thực tế từ khâu chuẩn bị PKI đến vận hành, áp dụng cho môi trường mạng công cộng có kết nối Internet.
Yêu Cầu Hạ Tầng PKI Và Lựa Chọn CA Tại Việt Nam
Yêu cầu tối thiểu: CA hỗ trợ RSA 3072 hoặc ECC P-256, CRL/OCSP trực tuyến, và có điểm phân phối tại Việt Nam để giảm độ trễ.
Tại Tòa A, chúng tôi chọn Viettel-CA (root G2) vì đã có hợp đồng với chủ đầu tư và hỗ trợ OCSP real-time.
Lưu ý vận hành: Yêu cầu CA cấp Intermediate CA riêng cho dự án tòa nhà (O=Landmark-Project, OU=Building-A). Không sử dụng public CA miễn phí vì thiếu SLA 99,9% cho OCSP.
Cài đặt hạ tầng: Đặt hai máy chủ OCSP/CRL tại phòng server tầng 3 và tầng 42 (dự phòng). Cấu hình tường lửa cho phép truy cập cổng 80/443 từ tất cả thiết bị BACnet/SC.
Tạo Và Quản Lý Chứng Chỉ X.509 Cho Thiết Bị BACnet/SC
Mỗi thiết bị (DDC, gateway, server) cần chứng chỉ với:
– Subject: CN=device-uuid-XXXX, O=Landmark-Project
– Subject Alternative Name (SAN):
– URI:bacnet://instance=12345
– DNS:device-a7.landmark.local
– IP:10.7.42.x (nếu dùng static)
– Extended Key Usage:
– TLS Web Server Authentication (1.3.6.1.5.5.7.3.1)
– TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
– id-kp-BACnet (theo ASHRAE 135-2020 Annex AB)
Sử dụng OpenSSL 3.0.9:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-subj "/CN=device-uuid-8f3a2b1c/O=Landmark-Project" \
-addext "subjectAltName=URI:bacnet://instance=12345,DNS:device-a7.landmark.local" \
-addext "extendedKeyUsage=serverAuth,clientAuth,1.3.6.1.5.5.7.3.30" \
-out device.csr
Ký tại Viettel-CA, sau đó chuyển file .p12 (mật khẩu 20 ký tự) vào thiết bị qua USB hoặc SFTP nội bộ.
Lưu ý: Không để private key trên thiết bị dễ tiếp cận vật lý; sử dụng TPM nếu có.

Cấu Hình TLS 1.3 Handshake Hai Chiều Trên Cổng 443
Trên thiết bị BACnet/SC (ví dụ: Distech ECY-300), cấu hình:
– Phiên bản TLS: chỉ cho phép 1.3
– Cipher suite: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256
– Xác thực hai chiều: yêu cầu client certificate
– Cổng: 443 (WebSocket)
Ví dụ cấu hình YAML trên gateway:
bacnet_sc:
port: 443
tls:
version: 1.3
cert_file: /etc/bacnet/device-cert.pem
key_file: /etc/bacnet/device-key.pem
ca_file: /etc/bacnet/viettel-intermediate.pem
verify_client: true
ocsp_stapling: true
Sau khi áp dụng, dùng lệnh openssl s_client -connect 10.7.42.10:443 -tls1_3 để kiểm tra handshake hai chiều từ máy trạm.
Quy Trình Xác Thực Thiết Bị Với CRL/OCSP Và Xử Lý Chứng Chỉ Thu Hồi
Mỗi thiết bị phải kiểm tra OCSP mỗi 4 giờ. Cấu hình OCSP responder: http://ocsp.viettel-ca.vn/status
Trong môi trường mạng công cộng, bật chế độ dự phòng sang CRL (tải về mỗi 24 giờ). Khi thu hồi chứng chỉ (ví dụ thiết bị bị đánh cắp), cập nhật CRL trong vòng 1 giờ và đẩy xuống tất cả gateway qua MQTT nội bộ.
Lưu ý vận hành: Thiết lập cảnh báo “Certificate Revoked” trên BMS khi OCSP trả về trạng thái thu hồi. Không cho phép thiết bị hoạt động nếu không xác thực được OCSP trong 30 phút.
Kiểm Thử Và Giám Sát Trạng Thái Chứng Chỉ Sau Vận Hành
Kiểm thử:
1. Chạy bacnet-sc-tool --test-mtls từ server trung tâm.
2. Mô phỏng mất mạng 15 phút để kiểm tra chế độ dự phòng CRL.
3. Giám sát: Prometheus exporter thu thập metric cert_expiry_days, ocsp_response_time.
Cài đặt cảnh báo khi chứng chỉ còn dưới 90 ngày.
Kết Luận
Checklist kiểm tra nhanh 7 bước:
1. Xác nhận CA đã cấp Intermediate đúng profile BACnet/SC.
2. Tất cả chứng chỉ có SAN và EKU đầy đủ.
3. TLS 1.3 hai chiều hoạt động trên cổng 443.
4. OCSP/CRL có thể truy cập từ mọi thiết bị.
5. Cảnh báo thu hồi đã cấu hình trên BMS.
6. Log handshake được ghi và xoay vòng sau 30 ngày.
7. Chứng chỉ sao lưu an toàn tại hai vị trí vật lý khác nhau.
Khuyến nghị: Cập nhật chứng chỉ định kỳ 12 tháng một lần hoặc ngay khi có thay đổi chính sách CA. Thực hiện kiểm tra lại toàn bộ sau mỗi lần nâng cấp firmware thiết bị.
