Chương 1 Cơ sở lý thuyết Trong chương này, tôi sẽ trình bày các kiến thức về OPC, OPC UA, nghiên cứu tập trung vào đặc tả bảo mật và truy cập lịch sử trong OPC UA. Tôi cũng sẽ trình bày những điểm quan trọng nhất của giao thức BACnet.1 Tổng quan về OPC UA 1.1 OPC (OLE for Process Control) Giới thiệu về OPC OPC được đưa ra lần đầu vào năm 1996. Đây là một chuẩn truyền thông trong công nghiệp cho phép các máy tính có thể kết nối với hệ thống điều khiển phân tán. OPC là một tập hợp nhiều đặc tả dựa trên công nghệ COM/DCOM của Microsoft.
Chuẩn OPC không những phù hợp cho việc kết nối với các thiết bị trong hệ thống tự động, mà còn cung cấp cơ chế cho các ứng ở mức cao hơn như các ứng dụng ERP, MES. Sự khác nhau giữa các chuẩn truyền thông cổ điển với chuẩn OPC được thể hiện trong hai hình 1. Dựa trên kiến trúc Client - Server, OPC Server cung cấp chuẩn giao tiếp với các đối tượng OPC COM, mỗi OPC Client sẽ trao đổi dữ liệu cũng như điều khiển thiết bị bằng cách thống nhất. Ứng dụng Client có thể kết nối với một hoặc nhiều Server bởi những nhà cung cấp khác nhau.
Các đặc tả OPC OPC là một tập hợp các đặc tả được thống nhất bởi các nhà cung cấp phần mềm và phần cứng tự động trên toàn thế giới. Nó gồm các chuẩn về đối tượng, phương thức, 13 Hình 1.1: Kiến trúc truyền thông cổ điển Hình 1.2: Kiến trúc truyền thông trong OPC các yêu cầu khác nhau của các ứng dụng, cho phép trao đổi dữ liệu hiệu quả giữa thành phần phần mềm của các nhà sản xuất khác nhau. 4 đặc tả chính của OPC là: • OPC Data Access Specification • OPC XML - DA Specification • OPC Historical Data Access (HDA) Specification • OPC Alarm and Event (A & E) and Batch 14 Tổng quan về đặc tả OPC được thể hiện trong hình 1.3, chi tiết các đặc tả này được trình bày trong [14], [16].3: Tổng quan đặc tả OPC Các vấn đề với OPC Kiến trúc OPC có nhiều tiện ích, song nó tồn tại một số vấn đề sau: • OPC dựa trên công nghệ COM/DCOM của Microsoft, điều này dẫn đến vấn đề tương thích với các hệ điều hành khác ngoài Windows. Vấn đề xác thực firewall trong các hệ thống phân tán cũng gặp khó khăn, việc trao đổi dữ liệu với các tầng của ứng dụng ERP, MES cũng rất phức tạp, • XML Web Services: kích thước của tin nhắn XML yêu cầu dung lượng truyền lớn, điều này không gây khó khăn cho các ứng dụng.
Có thể sử dụng việc nén dữ liệu nhị phân để tăng hiệu năng, tuy nhiên nó không giải quyết triệt để vấn đề. 15 Do đó, chuẩn OPC UA ra đời để đáp ứng tốt hơn yêu cầu của các ứng dụng trong hệ thống công nghiệp thực tế. Trong phần tiếp theo tôi sẽ trình bày các đặc tả cơ bản nhất của chuẩn này.2 OPC UA (OPC Unified Architecture) OPC UA (OPC Unified Architecture) là chuẩn được phát triển từ chuẩn OPC, bản đặc tả đầu tiên về OPC UA được đưa ra năm 2006 bởi OPC Foundation. Mục tiêu của OPC UA là để việc kết nối các thiết bị phần cứng không phụ thuộc vào nền tảng hay công nghệ của nhà sản xuất.
Các cải tiến của OPC UA so với OPC gồm: mô hình thông tin, đa nền tảng, truy cập Internet, cơ chế bảo mật, hiệu năng cao ([14]). Nền tảng xây dựng OPC UA được thể hiện trong hình 1. Chức năng cơ bản của mỗi thành Hình 1.4: Nền tảng của OPC UA phần: • Transport: Xác định cơ chế tối ưu hóa cho các use case khác nhau. Phiên bản OPC đầu tiên sử dụng giao thức nhị phân TCP để truyền thông trong mạng nội bộ và các tiêu chuẩn XML, HTTP cho việc truyền thông trên Internet.
• Data modeling: Các quy tắc và các khối xây dựng cơ bản cần thiết để thể hiện 16 một mô hình thông tin với OPC UA. Nó là điểm bắt đầu để xây dựng một không gian địa chỉ cho hệ thống. • UA Services: Giao diện giữa Server và Client, sử dụng cơ chế giao vận (transport mechanisms) để trao đổi dữ liệu giữa Server và Client. OPC UA cho phép định nghĩa mô hình thông tin ở các tầng khác nhau của hệ thống, từ OPC Foundation đến các tổ chức sử dụng và các nhà cung cấp (hình 1.
Kế thừa Hình 1.5: Kiến trúc phân tầng OPC UA các thành công của OPC, OPC UA bao gồm các thành phần cơ bản như Data Access, Alarm and Conditions, Historical Access, Programs specifies. Các tổ chức xây dựng mô hình thông tin dựa trên OPC UA để đáp ứng các yêu cầu riêng của mình. Các đặc tả OPC UA OPC UA gồm 12 đặc tả, chia làm 2 loại chính: đặc tả thành phần lõi và đặc tả kiểu truy cập: Trong luận văn này, tôi tập trung vào phần 2 và phần 11 của đặc tả OPC UA (phần 1. Chi tiết các đặc tả được trình bày trong [1],[9].
OPC UA sử dụng kiến trúc Client - Server (hình 1.6), tuy nhiên, mỗi Server có thể là Client của một Server khác. Hai thành phần cơ bản nhất của OPC UA là không gian địa chỉ (Address Space) và dịch vụ (Services), dùng trong mọi hệ thống OPC UA. • Không gian địa chỉ: là một vùng thông tin mô hình hóa các đối tượng thực được OPC Server khai báo để cung cấp cho Client truy cập đến. Không gian địa chỉ là tập hợp các node.
Mỗi node gồm các thuộc tính và tham chiếu đến node khác. 17 Đặc tả thành phần lõi Đặc tả kiểu truy cập Phần 1: Các khái niệm Phần 8: Truy cập dữ liệu Phần 2: Mô hình bảo mật Phần 9: Cảnh báo và điều kiện Phần 3: Không gian địa chỉ Phần 10: Các chương trình Phần 4: Các dịch vụ Phần 11: Truy cập lịch sử Phần 5: Mô hình thông tin Phần 12: Hợp nhất Phần 6: Ánh xạ dịch vụ Phần 13: Khám phá Phần 7: Hồ sơ Bảng 1.1: Các đặc tả OPC UA Hình 1.6: Kiến trúc hệ thống OPC UA • Dịch vụ: Các thủ tục gọi từ xa được thực thi bởi UPC UA Server. Client gọi đến Server và tương tác giữa chúng được thực hiện thông qua các dịch vụ. Mỗi dịch vụ được ánh xạ thành thông điệp thông qua đặc tả ánh xạ dịch vụ.
Hiện nay, đặc tả ánh xạ thông điệp được cung cấp trong SDK, giúp các nhà phát triển dễ dàng hơn trong việc xây dựng hệ thống.2 Đặc tả lịch sử và bảo mật trong OPC UA 1.1 Đặc tả bảo mật Môi trường bảo mật các ứng dụng OPC UA Các ứng dụng OPC UA chạy trong ở nhiều nơi khác nhau, môi trường khác nhau. Client, Server có thể trong cùng một mạng nội bộ, trong hai mạng nội bộ khác nhau, hoặc trong môi trường mạng mở, điều đó dẫn đến việc quản lý người sử dụng và bản thân ứng dụng gặp nhiều khó khăn.7 mô tả tổng quát một môi trường mà ứng 18 dụng OPC UA chạy trên đó. Để đảm bảo được việc điểu khiển và giữ được an toàn Hình 1.7: Môi trường bảo mật OPC UA cho hệ thống, ứng dụng OPC UA được thiết kế thỏa mãn các mục tiêu sau: • Xác thực (Authentication): Tất cả các thực thể khi tham gia kết nối đều phải cung cấp định danh, và được phép kết nối nếu định danh đó được cho phép. • Cấp phép (Authorization): Các thao tác đọc, ghi, hoặc thực thi đều phải được sự cho phép dựa trên các quyền hạn của ứng dụng Client và của người sử dụng.
• Tính bí mật (Confidential): Dữ liệu trao đổi phải được bảo vệ trước các hình thức tấn công, ví dụ như hình thức nghe trộm. Dữ liệu được mã hóa bằng các thuật toán mã hóa dựa trên khóa công khai - bí mật. • Tính toàn vẹn (Integrity): Dữ liệu người nhận được phải đúng so với dữ liệu từ người gửi đi. 19 • Tính kiểm soát được (Auditability): Dữ liệu nhận phải được sắp xếp theo thứ tự để hệ thống làm việc theo đúng trình tự hướng tới mục đích của người gửi.
• Tính sẵn sàng (Available): dữ liệu phải luôn được sẵn sàng cho các yêu cầu kết nối, ví dụ như tạo lập thêm một phiên kết nối với Client. Phần tiếp theo sẽ trình bày kiến trúc bảo mật của OPC UA để hướng đến các mục tiêu này. Kiến trúc bảo mật OPC UA Kiến trúc bảo mật của OPC UA là một giải pháp tổng quát, nó cho phép cài đặt với các yêu cầu đa dạng của ứng dụng OPC UA. Tùy thuộc vào đặc điểm ứng dụng và nhu cầu của hệ thống, giải pháp bảo mật được cài đặt ở các mức khác nhau.
Kiến trúc bảo mật của OPC UA được xây dựng ở tầng ứng dụng (Application Layer) và tầng truyền thông (Communication Layer), phía trên tầng giao vận (Transport Layer), được mô tả trong hình 1. Một trong những công việc quan trọng của Client và Server là truyền Hình 1.8: Kiến trúc bảo mật OPC những thông tin về cài đặt kết nối, các yêu cầu kết nối, tất cả đều được thực hiện trong mỗi phiên được quản lý bởi tầng ứng dụng. Tầng ứng dụng đồng thời cũng quản lý các công việc như xác thực người sử dụng và cấp phép cho người sử dụng. Bằng việc gọi các dịch vụ phiên (Session Services - đặc tả Services), tầng ứng dụng sẽ quản lý việc 20 bảo mật thông qua việc quản lý người sử dụng của mỗi phiên làm việc.
Mỗi phiên làm việc ở tầng ứng dụng giao tiếp thông qua một kênh truyền bảo mật, được quản lý bởi tầng truyền thông. Thông tin từ tầng ứng dụng sẽ được chuyển cho tầng truyền thông, tại đây thông tin được xử lý nhằm đảm bảo việc giao tiếp là bảo mật. Mỗi kênh truyền bảo mật được tạo ra cho mỗi phiên truyền thông, tuy nhiên nó được che giấu với người sử dụng, phiên làm việc. Kênh truyền bảo mật đảm bảo tính bí mật và tính toàn vẹn dữ liệu thông qua thuật toán mã hóa, chữ kí tin nhắn (Message Signature) và chứng thực điện tử (Digital Certificate).
Các dịch vụ bảo mật kênh truyền được cung cấp bởi Secure Channel Services. Tầng giao vận kiểm soát việc gửi, nhận và truyền dữ liệu nhận được từ tầng truyền thông. Tầng giao vận giúp thực hiện tính kiểm soát được của truyền thông. Các phương pháp mã hóa, trao đổi khóa, các phương pháp tấn công phổ biến trong hệ thống OPC UA được trình bày chi tiết trong [2].2 Đặc tả lịch sử Mô hình cung cấp lịch sử dữ liệu Đặc tả truy cập lịch sử OPC UA (OPC UA Historical Access) định nghĩa cách cung cấp chuỗi dữ liệu thời gian và sự kiện lịch sử.