Về một phương pháp nâng cao an toàn trong mạng điều hành giám sát công nghiệp
TÓM TẮT— Bài báo tập trung nghiên cứu các vấn đề an toàn giao thức truyền thông SCADA. Mạng SCADA (Supervisory Control and Data Acquisition) là công nghệ truyền thông để thu thập dữ liệu từ những thiết bị, cơ sở từ xa và gửi các lệnh điều khiển đến các cơ cấu chấp hành. Do nhu cầu kết hệ thống SCADA với mạng doanh nghiệp và internet, vì vậy những bộ phận SCADA là mục tiêu của các cuộc tấn công mạng, thông qua mục tiêu đó mà những kẻ tấn công có thể dễ dàng đánh sập cơ sở hạ tầng quan trọng và nền kinh tế của quốc gia đó. Để bảo vệ mạng SCADA, chúng tôi tập trung vào giao thức truyền thông chưa được thiết kế an toàn. An toàn thông qua giao thức, với mục đích sửa đổi cấu trúc của giao thức nhằm đảm bảo tính toàn vẹn, xác thực và chống phát lại. Trong cấu trúc đề xuất chúng tôi sử dụng hai thuật toán để cải thiện tính bí mật và toàn vẹn của dữ liệu, đánh dấu thời gian để chống phát lại
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Tóm tắt nội dung tài liệu: Về một phương pháp nâng cao an toàn trong mạng điều hành giám sát công nghiệp
g vào phân bố lại các byte trong giao thức, với những phân bố lại đó chúng tôi sử dụng các thuật toán nhƣ CRC cải tiến, Nguyễn Đào Trƣờng, Nguyễn Doãn Cƣờng, Nguyễn Đức Tâm 821 mật mã AES (Advanced Encryption Standard), đánh dấu thời gian (TS – TimeStamp) và chữ ký số để đảm bảo các khía cạnh an toàn. Giao thức DNP3 truyền thống chỉ sử dụng CRC để phát hiện lỗi trong quá trình truyền [9], [11]. Chúng tôi đề xuất hai hình thức an toàn sau: Mã hóa gói tin DNP3. Cải tiến cấu trúc bên trong giao thức DNP3. Sử dụng 34 byte ngoài 272 byte PDU (Protocol Data Unit) liên kết DNP3 để cho mục đích an toàn và toàn vẹn. Chúng tôi phân phối lại các byte này để tăng cƣờng phạm vi dữ liệu và an toàn cho giao thức DNP3 bằng sự sắp xếp lại nhƣ sau: New LH Header (4 byte) Key Sequence Number (4 byte) Original LH Header (8 byte) Payload Data (256 byte) CRC cải tiến (4 byte) TimeStamp (4 byte). Trong giải pháp đề xuất của chúng tôi, thông điệp đƣợc bảo vệ bằng mật mã AES cải tiến [17] và giải thuật CRC cải tiến để xác thực, đánh dấu thời gian (TimeStamp) chống phát lại, nhƣ trong Hình 1. New LH Header Sequence Number Original LH Header Payload Data CRC cải tiến M ã h ó a (B ảo v ệ tín h b í m ật) X ác th ự c (B ảo v ệ tín h to àn v ẹn ) 0 3 7 15 271 275 TimeStamp 279 Hình 1. Cấu trúc gói tin giao thức DNP3 đề xuất (MoDNP3) Trong giao thức đề xuất (MoDNP3), thông điệp đƣợc bảo vệ bằng: Thuật toán mã hóa/ giải mã AES: AES cung cấp tính bí mật bằng cách mã hóa dữ liệu. Thuật toán CRC cải tiến để xác thực dữ liệu trong giao thức: CRC cải tiến giúp giúp xác thực dữ liệu ở cả bên gửi và bên nhận. Trong CRC cải tiến, sử dụng 4 byte trong giao thức MoDNP3. Đánh dấu thời gian (TimeStamp): sử dụng giao thức NTP (Network Time Protocol)[7] để đánh dấu thời gian, sử dụng 4 byte. 1. Thuật toán mã hóa AES cải tiến AES cải tiến [17] là mã khối đối xứng có độ dài khóa thay đổi (128, 192, 256). Nó đƣợc Rijndael đề xuất năm 2001. Thuật toán AES gồm hai phần: Phần mở rộng khóa phục vụ cho các vòng mã và phần mã hóa. Trong phần mở rộng khóa, khóa đầu vào có thể là 128, 192 hoặc 256 bit. Quá trình mã hóa dữ liệu gồm 10, 12, 14 vòng thực hiện mã hóa tƣơng ứng với các độ dài khóa 128, 192, 256. Trong kịch bản của chúng tôi, số thứ tự khóa KSN (Key Sequence Number), phần đầu gốc, dữ liệu, CRC cải tiến và đánh dấu thời gian (TimeStamp) đƣợc mã hóa bằng thuật toán AES cải tiến nhƣ thể hiện trong Hình 2. Tổng 272 byte đƣợc cho qua thuật toán mã hóa AES, là mã khối đối xứng, mỗi khối có độ dài 128 bit. Khóa mã của AES có độ dài 128, 192, 256 bit. Nó là một thuật toán mã hóa đủ mạnh với các giao thức sử dụng trong mạng SCADA. 2. Thuật toán CRC cải tiến CRC giúp cho việc xác thực dữ liệu ở cả bên gửi và bên nhận. Trong CRC cải tiến, sử dụng 4 byte. Trong CRC sử dụng một đa thức sinh để chia thông điệp để tìm ra phần dƣ gọi là CRC[3], [8]. Để có CRC r bit ta cần đa thức sinh phải có bậc r. Để tìm đa thức phần dƣ bên gửi bổ sung thêm r bit „0‟ vào thông điệp m bit và chia đa thức gồm m + r bit đó cho đa thức sinh. Dữ liệu đƣợc truyền gồm m bit thông điệp gốc, tiếp theo là r bit CRC. Phƣơng pháp CRC[6], [14] thực hiện trên thông điệp nhƣ đa thức trên trƣờng GF(2). Tại bên nhận, ngƣời nhận sử dụng chung đa thức sinh đó để chia thông điệp nhận đƣợc. Nếu đa thức phần dƣ tìm đƣợc sau khi chia thông điệp nhận đƣợc đó bằng 0 thì thông điệp không có lỗi, ngƣợc lại là có lỗi. Trong giao thức MoDNP3, thông điệp ban đầu có thể biểu diễn dƣới dạng đa thức: ( ) , biểu diễn dƣới dạng nhị phân là [ ], aN-1 là bit có trọng số cao nhất, n0 là bit có trọng số thấp nhất. 822 VỀ MỘT PHƢƠNG PHÁP NÂNG CAO AN TOÀN TRONG MẠNG ĐIỀU HÀNH GIÁM SÁT CÔNG NGHIỆP NH KSN OH Data DataOH DataOHKSN DataOHKSNNH PD DataOHKSNNH PD CRC cải tiến DataOHKSNNH PD CRC AES algorithm DataOHKSNNH PD CRC DataOHKSNNH PD CRC Data Tầng giả chuyển vận Tầng liên kết dữ liệu (tối đa 292 byte) Tầng vật lý Trong đó: NH: New Header KSN: Key Sequence Number OH: Original Header PD: Padding CRC: Cyclic Redundancy Check TS: TimeStamp Tối đa 2048 byte TS TS TS Hình 2. Cấu trúc bên trong của MoDNP3 Trong việc tính CRC, luôn luôn kết hợp với đa thức sinh G(x) có bậc M, G(x) đƣợc biểu diễn dƣới dạng đa thức ( ) , dạng nhị phân [ ]. Trong thuật toán CRC cải tiến, chia thông điệp ban đầu gồm N bit [ ] thành n đoạn, mỗi đoạn có M bit. Không mất tính tổng quát, N = nM, với N là số bit của thông điệp ban đầu, M là số bít của mỗi đoạn, n là số nguyên dƣơng. Trong giao thức MoDNP3, thông điệp gồm 272 byte đƣợc chia thành 68 đoạn (S0, S1, S67), mỗi đoạn 4 byte, nhƣ đƣợc thể hiện trong Hình 3. S0...S66S67 l0...l66l67 Å Ä Ä Ä Ä CRC Hình 3. CRC cải tiến Trong đó, ( ) ( ) . Thông điệp gốc sẽ là: ( ) (1). Và Si(x) là đoạn thứ i của thông điệp gốc. Với thông điệp gốc là P(x) và đa thức sinh G(x), chúng ta có thể tính CRC bằng cách bổ sung M bit 0 sau bit có trọng số thấp nhất và chia thông điệp sau khi đã bổ sung cho đa thức G(x). Kết quả là: [ ( )] ( ( ) ) ( ) (2). Từ (2) và tính chất đồng dƣ, việc tính trên các đoạn thông điệp đã chia (1) nhƣ sau: [ ( )] ( ) ( ) ( ). Ở đây, ( ) ( ) ( ). ( ) ( ) ( ) ( ) ( ) ( ) ( ), với i = 0, 1, 2, , n-1. Với bậc của đa thức Si(x) trong mỗi đoạn nhỏ hơn M. Xác định hệ số l, li = x (i+1)M mod G(x) với i = 0,1,2, , n-1. Sau đó tính CRC nhƣ sau: CRC[P(x)] = Sn-1 Ä ln-1Å ÅS0 Ä l0. Sử dụng đa thức sinh G(x) để tính l. Để tính các thành phần của l, chúng ta có: l0=x M mod G(x) = {gM-1 + gM-2 + +g0} l1=x 2M mod G(x) = {l0 Ä l0} .. Nguyễn Đào Trƣờng, Nguyễn Doãn Cƣờng, Nguyễn Đức Tâm 823 ln=x nM mod G(x) = l0 n . Kết quả ta có (l0, l1, ,ln), sau đó tính CRC nhƣ sau: CRC(P(x)) = Sn-1 Ä ln-1Å ÅS0 Ä l0. Phép toán Ä, Å trong các biểu thức trên là phép nhân và phép cộng trên trƣờng GF(2) (Galois Field). Thuật toán CRC cải tiến đƣợc mô tả nhƣ sau: B1. Thông điệp N bit, chia thành n đoạn [Sn-1Sn-2S1S0] và mỗi đoạn có kích thƣớc M bit (N = nM). B2. Khởi tạo đa thức sinh G(x) với bậc M đồng thời tính các hệ số l (nhƣ đã trình bày ở trên). B3. Nhân n-cặp trên trƣờng GF(2) đồng thời và sau đó thực hiện phép XOR thu đƣợc CRC. Thông điệp ban đầu sẽ đƣợc chia thành 68 đoạn, mỗi đoạn 4 byte. Những đoạn này sẽ sử dụng thuật toán CRC để tạo ra xác thực thông điệp. Trong Hình 3 mô tả CRC cải tiến. Trong thuật toán CRC đƣợc sử dụng để đảm bảo tính toàn vẹn của thông điệp trong giao thức SCADA. Ở đây 4 byte đƣợc sử dụng trong CRC trong 20 byte và những byte còn lại phục vụ trong tƣơng lai. Do đó giao thức này sẽ đƣợc xác thực và toàn vẹn bằng cách sử dụng thuật toán mã AES cải tiến và CRC cải tiến nhƣ đã trình bày ở trên. Với giải pháp này chúng tôi sắp xếp lại các byte của giao thức DNP3 để đảm bảo tính bí mật, toàn vẹn và xác thực. Trong giao thức này chúng tôi đã thay đổi một số cách sắp xếp thông tin trong giao thức để đảm bảo tính an toàn của giao thức. Phần mở đầu LH ban đầu và dữ liệu Payload đƣợc mã hóa bằng thuật toán AES để đảm bảo tính bí mật của thông điệp. 4 byte phần CRC đề xuất của chúng tôi đƣợc sử dụng để xác thực thông điệp. 4 byte đánh dấu thời gian đƣợc sử dụng để chống tấn công phát lại trong SCADA. 3. Đánh dấu thời gian Đánh dấu thời gian đƣợc bên nhận sử dụng kết hợp với khe thời gian nội bộ để kiểm tra tính mới của gói tin vừa nhận. Giải pháp này sử dụng một số tuần tự 4 byte đơn giản và đƣợc cung cấp cho tất cả các thiết bị DNP3 với những khe thời gian có kích thƣớc hữu hạn để xác minh tính mới của gói tin. Do đó, giải pháp này không những thuận tiện mà còn hoàn toàn an toàn. Việc triển khai thực tế sử dụng các đánh dấu thời gian NTP (Network Time Protocol)[7] phù hợp trong việc đánh giá tính mới của gói tin với độ chính xác cao. Tất nhiên, việc thực hiện các đánh dấu thời gian NTP yêu cầu một máy chủ NTP trong kiến trúc SCADA để cung cấp một xung nhịp đồng bộ đáng tin cậy cho tất cả các thiết bị tham gia truyền thông. Tại bên nhận, sau khi giải mã thông điệp thì thiết bị Slave phải đối chiếu đánh dấu thời gian này với thời gian trong khóa phiên (trong phần 4.), nếu hai thời gian này khớp nhau thì mới tiếp tục thực hiện hành động trong thông điệp, ngƣợc lại thì Slave bỏ qua hành động yêu cầu này vì có thể là một tấn công phát lại. 4. Quản lý khóa trong MoDNP3 Việc quản lý khóa trong MoDNP cần đơn giản phù hợp với môi trƣờng mạng SCADA. Đƣợc thực hiện trong quá trình cấu hình thiết bị Primary Master, Secondary Master và các thiết bị Slave để thiết lập kết nối khởi tạo giữa chúng; Master Slave MoDNP3 request ModDNP3 response M_CSDLKhoa Slave Address KSN Time Stamp Slave Session Key S_CSDLKhoa 0 Primary 1 Secondary Master Session Key KSN Hình 4. Truyền thông trong SCADA/MoDNP3 Thiết bị Master tạo và quản lý một cơ sở dữ liệu khóa an toàn “M_CSDLKhoa” cho các khóa phiên dùng chung với các Slave (Hình 4). Cơ sở dữ liệu này bao gồm 4 trƣờng: Địa chỉ Slave đƣợc sử dụng nhƣ một chỉ số khóa, khóa phiên dùng chung, đánh dấu thời gian để giới hạn việc sử dụng khóa dùng chung trong thời gian định trƣớc và số thứ tự khóa. Thiết bị Master gọi hàm “M_TaoKhoa” để tạo ra một khóa phiên duy nhất khi mà khóa phiên cũ đã hết hạn. Hàm “M_BosungKhoa” để thêm một khóa phiên mới vào cơ sở dữ liệu khóa. Thiết bị Slave phải duy trì hai khóa phiên, một khóa để truyền thông với thiết bị Primary Master, khóa còn lại để truyền thông với thiết bị Secondary Master (Hình 4). Cơ sở dữ liệu này có 3 trƣờng và 2 bản ghi: (0, Khóa phiên thiết bị Master chính (Primary Master Session Key) và 1, Khóa phiên thiết bị Master thứ hai (Secondary Master Session Key), Số thứ tự khóa (Key Sequence Number)). Hàm “S_ BosungKhoa” để cập nhật khóa phiên mới vào cơ sở dữ liệu khóa và hàm “S_BosungSTTKhoa” để cập nhật số thứ tự khóa KSN vào cơ sở dữ liệu khóa. 824 VỀ MỘT PHƢƠNG PHÁP NÂNG CAO AN TOÀN TRONG MẠNG ĐIỀU HÀNH GIÁM SÁT CÔNG NGHIỆP IV. KẾT LUẬN Khi hệ thống mạng điều hành giám sát công nghiệp bị xâm nhập trái phép, kẻ tấn công có thể từ đó phá hủy những công trình quan trọng của quốc gia. Những hiểm họa từ những mạng này là rất lớn, nó ảnh hƣởng đến an ninh của đất nƣớc, ảnh hƣởng tới tính mạng của ngƣời dân. Trong bài báo này, chúng tôi nghiên cứu vấn đề an toàn giao thức truyền thông trong mạng điều hành giám sát công nghiệp. Để bảo vệ các mạng SCADA, chúng tôi hƣớng tới những giao thức mà khi xây dựng chúng ban đầu chƣa có những thuộc tính an toàn. Với mục đích thay đổi cấu trúc bên trong của các giao thức đó để tạo ra giao thức toàn vẹn, xác thực hơn, chống tấn công phát lại. Trong cấu trúc giao thức đề xuất, sử dụng hai thuật toán đƣợc để cải tiến khả năng an toàn và toàn vẹn của phần Payload. Chúng tôi đã sử dụng 4 byte cho CRC cải tiến, 4 byte đánh dấu thời gian và còn lại 12 byte trong cấu trúc để cho những cải tiến trong tƣơng lai. Mục đích là tăng tính an toàn của giao thức trƣớc những hiểm họa trên mạng điều hành giám sát công nghiệp. TÀI LIỆU THAM KHẢO [1] Anupam Saxena, Om Pal, Zia Saquib, Dhiren Patel, “Customized PKI for SCADA Systems Network”, Int. J. of Advanced Networking and Applications. 282. Volume: 01, Issue: 05, Pages: 282-289 , 2010. [2] Athar Mahboob, Junaid Zubairi, “Intrusion Avoidance for SCADA Security in Industrial Plants”, Collaborative Technologies and Systems, 2010. [3] David C. Feldmeier, “Fast Software Implementation of Error Detection code”, IEEE/ACM Transactions on networking, December 1995. [4] Distributed Network Protocol (DNP3), IEEE Standard for Electric Power Systems Communications 2012. [5] DNP3 Application Note AN2003-001, [6] D. V. Sarwate, “Computation of Cyclic Redundancy Checks via Table Lookup”, Communications of the ACM, vol. 31, no. 8 1988. [7] D. L. Mills. Internet time synchronization: The network time protocol. IEEE Transactions on Communications, 39(10):1482– 1493, October 1991. [8] H. Michael Ji, Earl Killian, “Fast Parallel CRC Algorithm and Implementation on a Configurable Processor”, IEEE 2002 vol3. [9] M. Bellare, P. Rogaway, “Entity authentication and Key distribution”, in Advances in cryptology-CRYPTO 93, Leture notes in computer Science, Springer 1994. [10] Munir Majdalawieh, Francesco Parisi- Presicce, Duminda Wijesekera (2006), “DNPSec Distributed Network Protocol Version 3 (DNP3)”, Security Framework Advances in Computer, Information and Systems Sciences and Engineering 2006. [11] P. Rogaway, M. Bellare, J. Black, “OCB A block –cipher mode of operation for efficient authenticated”, ACM Trans. Inf. Syst. Secure 2006. [12] Robert Dawson, “Secure Communication for Critical Infrastructure Control System”, University of Queensland 1997. [13] Safeguarding IEDs, Substations, and SCADA Systems Against Electronic Intrusions by Paul Oman, Edmund O. Schweitzer, III, and Jeff Roberts - Schweitzer Engineering Laboratories, Inc. Pullman, WA USA. [14] Sanjay M.Joshi, Pradeep K. Dubey, Marc A. Kalpan, “A new parallel algorithm for CRC Generation, Communication”, ICC IEEE International Conference 2000. [15] S. Bhagaria, S B Prabhakar, Z Saquib, “Flexi-DNP3: Flexible distributed network protocol version 3(DNP3) for SCADA security”,Recent Trends in Information System 2011. [16] S Saiwan, P Jain, Z Saquib, D Patel, “Cryptography key Management for SCADA System An Architectural Framework”, Advances in Computing Control, & Telecommunication 2011. [17] V. Sumathy & C. Navaneethan, “Enhanced algorithm for strong encryption”, International Journal of Advances in Engineering & Technology, Sept 2012. [18] Zia Saquib, D. Patel, R. Rajrajan, “A configurable and efficient key management scheme for SCADA” International Journal of Research and Reviews 2011. A NEW METHOD FOR ENHANCING SECURITY ON NETWORKED INDUSTRIAL SUPERVISORY AND CONTROL SYSTEM Nguyen Dao Truong, Nguyen Doan Cuong, Nguyen Duc Tam ABSTRACT— This paper investigates security issues of SCADA communication protocol. SCADA stands for Supervisory Control and Data Acquisition, a communication technology which collects data from distant facilities and sends control signals to actuators. Due to the need to connect SCADA systems with corporate networks and the Internet, so SCADA components are considered to be profoundly privileged targets for cyber attacks through which hackers can easily demolish the nation’s critical infrastructure and economy. In order to protect the SCADA networks, we focus on the protocols as they were not designed with inherent security features. Security system through protocol hardening is the main focus of this paper. The goal is to modify the structure of such protocols to provide more integrity and authentication. In the proposed structure, two algorithms are used to enhance the security and integrity of the payload and using timestamp againt replay on the network.
File đính kèm:
- ve_mot_phuong_phap_nang_cao_an_toan_trong_mang_dieu_hanh_gia.pdf