You are on page 1of 19

DỊCH:

HỆ THỐNG GIÁM SÁT MỚI LẠ VỀ TÍNH TOÀN VẸN DỮ LIỆU CỦA


HỆ THỐNG BẢO VỆ LÒ PHẢN ỨNG SỬ DỤNG CÔNG NGHỆ CHUỖI
KHỐI
1. Phòng Kỹ thuật Hạt nhân và Lượng tử, Viện Khoa học và Công nghệ Tiên tiến Hàn
Quốc (KAIST), Daejeon 34141, Hàn Quốc
2. Trung tâm Hệ thống Vật lý Mạng, Khoa EECS, Đại học Khalifa, Abu Dhabi, Các
Tiểu vương quốc Ả Rập Thống nhất Tác giả tương ứng: Poong Hyun Seong
(pheong@kaist.ac.kr)

Công việc này được hỗ trợ một phần bởi Đại học Khalifa - Viện Khoa học và
Công nghệ Tiên tiến Hàn Quốc thông qua Chương trình Nghiên cứu và Phát
triển năm 2019 do Viện Khoa học và Công nghệ Tiên tiến Hàn Quốc giám sát
(Phát triển Công nghệ An ninh Mạng dựa trên Blockchain cho các Nhà máy
Điện hạt nhân), Hàn Quốc, theo Grant N11190054, một phần bởi Trung tâm Hệ
thống Vật lý Mạng, Đại học Khalifa, theo Grant 8474000137-RC1-C2PS-T3, và
một phần bởi Chương trình Nghiên cứu và Phát triển Quốc gia thông qua Quỹ
Nghiên cứu Quốc gia Hàn Quốc (NRF ) do Chính phủ Hàn Quốc (Bộ Khoa học,
Công nghệ thông tin và Kế hoạch Tương lai) tài trợ theo Grant NRF-
2016R1A5A1013919.

TÓM TẮT:

Các nhà máy điện hạt nhân (NPP) được cách ly về mặt vật lý với các mạng
bên ngoài và có môi trường hoạt động khác với các hệ thống công nghệ thông
tin (CNTT) thông thường. Theo đó, các NPP được coi là an toàn trước các
cuộc tấn công mạng bên ngoài. Tuy nhiên, sau đó người ta xác định rằng các
mạng bị cô lập không an toàn trước các cuộc tấn công mạng. Các cuộc tấn
công đưa dữ liệu độc hại vào Bộ điều khiển Logic Lập trình (PLC) được triển
khai trong hệ thống an toàn của NPP rất quan trọng đối với các cơ sở hạt
nhân, giống như trong cuộc tấn công Stuxnet. Cần phải giám sát tính toàn vẹn
của dữ liệu PLC và bảo vệ PLC khỏi các mối đe dọa mạng như sửa đổi các
điểm thiết lập hoặc logic đã triển khai. Để giải quyết vấn đề này, bài báo này
đề xuất một hệ thống mới để giám sát tính toàn vẹn dữ liệu của PLC sử dụng
công nghệ blockchain. Xem xét môi trường NPP, chúng tôi đã phát triển một
hệ thống blockchain riêng để giám sát tính toàn vẹn dữ liệu của PLC. Khái
niệm mới là Bằng chứng giám sát (PoM) đối với tính toàn vẹn dữ liệu của PLC
đã được đề xuất để khắc phục hạn chế đối với việc áp dụng blockchain riêng
vào an ninh mạng của các NPP. Ngoài ra, chúng tôi đã phát triển một hệ thống
giám sát tính toàn vẹn cho Hệ thống Bảo vệ Lò phản ứng (RPS) —một hệ
thống an toàn trong các NPP — bằng cách sử dụng blockchain đã phát triển.
Nó có thể phát hiện các cuộc tấn công mạng (chẳng hạn như các cuộc tấn
công đưa mã giả vào PLC) và theo dõi tính toàn vẹn của PLC nào đã bị xâm
phạm trong thời gian thực. Một thử nghiệm xác thực sử dụng tấn công đưa dữ
liệu sai vào PLC đã được thực hiện trên hệ thống đã phát triển và kết quả xác
nhận rằng hệ thống được phát triển đã giám sát thành công việc sửa đổi dữ
liệu trong PLC.
MỤC LỤC THUẬT NGỮ:

Blockchain, cybersecurity, data integrity, detection, monitoring system, programmable logic


controller (PLC), reactor protection system (RPS).

Blockchain, an ninh mạng, toàn vẹn dữ liệu, phát hiện, hệ thống giám sát, bộ
điều khiển logic khả trình (PLC), hệ thống bảo vệ lò phản ứng (RPS).
I. GIỚI THIỆU
Hệ thống Thiết bị & Điều khiển (I&C) của Nhà máy điện hạt nhân
(NPP) được cách ly về mặt vật lý với các mạng bên ngoài và có môi
trường hoạt động khác với các hệ thống công nghệ thông tin (CNTT)
thông thường. Theo đó, các NPP được coi là an toàn trước các cuộc
tấn công mạng từ bên ngoài. Tuy nhiên, sau đó người ta xác định
rằng các mạng bị cô lập không an toàn trước các cuộc tấn công
mạng [1].
Năm 2010, Stuxnet đã phá hủy khoảng 1000 máy ly tâm tại cơ sở làm
giàu uranium của Iran ở Natanz. Cuộc tấn công của Stuxnet nhằm
vào chương trình hạt nhân của Iran cho thấy tác động quan trọng mà
một kẻ thù tinh vi với kiến thức chi tiết về các hệ thống I&C có thể có
đối với các cơ sở hạ tầng liên quan đến an toàn [2], [3].
Các cuộc tấn công vào Bộ điều khiển logic lập trình (PLC) được triển
khai trong hệ thống bảo vệ an toàn của NPP sẽ đặc biệt nghiêm
trọng vì các mối đe dọa mạng trên PLC có thể gây ra các vấn đề liên
quan đến an toàn [4].
Viện Kiểm soát và Không phổ biến Hạt nhân Hàn Quốc (KINAC), cơ
quan giám sát các quy định về an ninh mạng của NPP ở Hàn Quốc,
yêu cầu các tiện ích tuân thủ các biện pháp kiểm soát an ninh mạng
và thực hiện quản lý rủi ro an ninh mạng dựa trên hướng dẫn quy định
RS-015. KINAC / RS-015 khuyến nghị thực hiện các biện pháp kiểm
soát bảo mật để đảm bảo tính toàn vẹn của các hệ thống quan trọng
và giám sát các cuộc tấn công mạng chống lại chúng [5].
Tuy nhiên, hiện tại không có hệ thống nào có khả năng phát hiện việc
sửa đổi dữ liệu có hại trên PLC trong thời gian thực. Hơn nữa, rất khó
để phát hiện liệu tính toàn vẹn của dữ liệu logic điều khiển có bị tấn
công trong điều kiện bình thường hay không vì hệ thống an toàn (ví
dụ: bơm và van an toàn) không hoạt động trong điều kiện bình
thường. Không có kiểm soát an ninh để giám sát tính toàn vẹn dữ
liệu của bộ điều khiển an toàn. Cần phải giám sát tính toàn vẹn của
PLC và bảo vệ chúng khỏi các mối đe dọa mạng như việc sửa đổi các
điểm thiết lập hoặc logic đã triển khai trong PLC. Công nghệ chuỗi
khối (sau đây được gọi đơn giản là ‘‘ blockchain ’’) có thể là một giải
pháp hiệu quả cho vấn đề này. Blockchain kết hợp nhiều công nghệ
như hệ thống mật mã và phân tán, thay vì sử dụng một công nghệ
duy nhất, để ngăn chặn việc thao túng dữ liệu [6], [7].
Trong một hệ thống hiện có, nếu kẻ tấn công xâm phạm tính toàn vẹn
của hệ thống và loại bỏ bằng chứng về cuộc tấn công, thì cuộc tấn
công rất khó bị phát hiện [8]. Tuy nhiên, nếu blockchain được sử
dụng, dữ liệu được ghi lại sẽ không thể thay đổi, do đó loại bỏ bằng
chứng về cuộc tấn công và khắc phục những hạn chế của một điểm
lỗi duy nhất. Blockchain cũng đáp ứng các yêu cầu bảo mật trong
hướng dẫn quy định về an ninh mạng của KINAC / RS015 được trình
bày trong Bảng 1.

Bảng 1: Yêu cầu bảo mật trong KINAC


- Phát hiện thao tác thông tin trái phép
- Phòng chống thao túng dữ liệu bất hợp pháp
- Bảo vệ hồ sơ khỏi những thay đổi và xóa ác ý
- Thực hiện giám sát và phát hiện tấn công mạng
- Ngăn chặn các bản ghi lưu trữ bị giả mạo

Trong nghiên cứu sơ bộ [9], chúng tôi đã đề xuất một khung khái
niệm về an ninh mạng NPP bằng cách sử dụng blockchain. Bài báo
này là một nghiên cứu tiếp theo. Trong nghiên cứu này, chúng tôi đã
triển khai khái niệm từ nghiên cứu sơ bộ và phát triển hệ thống giám
sát toàn vẹn dữ liệu của hệ thống an toàn hạt nhân sử dụng
blockchain. Xem xét bối cảnh của môi trường NPP, chúng tôi phát
triển chuỗi khối để giám sát việc làm sai lệch dữ liệu trong PLC trong
thời gian thực. Trái ngược với các blockchain dành cho tiền điện tử,
blockchain được phát triển trong nghiên cứu này lưu trữ tính toàn vẹn
về dữ liệu như logic điều khiển và điểm đặt. Chúng tôi cũng phát triển
một hệ thống giám sát tính toàn vẹn của Hệ thống bảo vệ lò phản
ứng (RPS) bằng cách sử dụng blockchain đã phát triển. Tính hợp lệ
của hệ thống đã phát triển được chứng minh thông qua một thử
nghiệm đưa dữ liệu sai vào PLC.

Trong nghiên cứu này, chúng tôi đề xuất một hệ thống mới để theo
dõi tính toàn vẹn dữ liệu của RPS bằng cách sử dụng một blockchain
riêng. Những đóng góp chính của chúng tôi được tóm tắt như sau:

1) Chúng tôi phát triển một blockchain riêng tư xem xét bối cảnh của
môi trường NPP và đề xuất một hệ thống mới giám sát tính toàn vẹn
dữ liệu của các PLC sử dụng blockchain này. Có thể giám sát tính
toàn vẹn của PLC trong thời gian thực (cứ sau 5000-6000ms) trước
các mối đe dọa mạng.

2) Chúng tôi áp dụng hệ thống blockchain đã phát triển cho RPS, là


hệ thống an toàn trong NPP để giám sát tính toàn vẹn của hệ thống.
Một nguyên mẫu RPS thực được sử dụng để phát triển hệ thống
giám sát và tính hợp lệ của nó được chứng minh bằng thực nghiệm.

3) Đây là nghiên cứu tiên phong là nghiên cứu đầu tiên khai thác
blockchain với PLC để giám sát an ninh. Hệ thống được đề xuất
không chỉ giới hạn ở một vài hệ thống — khả năng sử dụng của nó có
thể được mở rộng để giám sát tính toàn vẹn dữ liệu của các hệ thống
điều khiển khác trong thời gian thực. Phần còn lại của bài viết này
được tổ chức như sau. Phần II mô tả sơ bộ về blockchain bao gồm
các đặc điểm chung. Phần III mô tả blockchain riêng tư để giám sát
tính toàn vẹn dữ liệu của PLC. Phần IV mô tả hệ thống giám sát toàn
vẹn dữ liệu RPS sử dụng blockchain riêng được phát triển trong Phần
III. Phần V kết thúc bài báo này.
II. Sơ khảo về BLOCKCHAIN:

Phần này mô tả sơ bộ về blockchain, bao gồm các đặc điểm chung,


các loại và sự đồng thuận.
A. Đặc điểm chung:
Blockchain là một hồ sơ phân tán ngang hàng được bảo mật bằng
mật mã, chỉ thêm vào, không thể thay đổi (cực kỳ khó thay đổi) và
chỉ có thể cập nhật thông qua sự đồng thuận hoặc thỏa thuận
giữa các đồng nghiệp [10].
Đối với một tổ chức không được phép để xảy ra một điểm sai sót,
blockchain thực tế khiến tội phạm mạng không thể xâm phạm
thông tin nhạy cảm. Blockchain không chỉ được quản lý bởi các
quản trị viên hoặc nhà phát triển đáng tin cậy; nó được quản lý tốt
bởi bất kỳ ai có thể đáng tin cậy hoặc từ một bên đã biết hoặc
không xác định.
Blockchain là một chuỗi các khối được kết nối với nhau bằng một
hàm băm. Mỗi khối được chia thành hai phần: phần đầu khối và
phần thân khối. Tất cả các giao dịch liên quan đến một khối tạo
thành thân khối. Tiêu đề khối bao gồm một giá trị băm của tiêu đề
khối cuối cùng được xác định giống giá trị băm trước đó, một dấu
thời gian và một gốc Merkle của dữ liệu giao dịch. Các khối này
kết nối riêng lẻ và tạo thành một chuỗi. Hàm băm của tiêu đề khối
cuối cùng chứa tất cả thông tin về khối cuối cùng, điều này đảm
bảo tính toàn vẹn của dữ liệu khối. Nếu các giao dịch trong khối
trước đó bị thay đổi một cách ác ý, thì gốc Merkle của tất cả các
giao dịch liên quan đến khối đó cũng bị thay đổi, dẫn đến thay đổi
hàm băm của tiêu đề khối của nó [11].
( Về cơ bản hashing là quá trình biến một dữ liệu đầu vào có độ dài bất kỳ thành một chuỗi đầu ra đặc
trưng có độ dài cố định. Hashing được thực hiện thông qua hàm băm (hash function). Một cách tổng quát
hàm băm là bất kỳ hàm nào có thể được sử dụng để ánh xạ dữ liệu có kích thước tùy ý thành các giá trị
kích thước cố định. Trong blockchain, các giao dịch có độ dài khác nhau sẽ được băm thông qua một
thuật toán băm nhất định và tất cả đều cho đầu ra có độ dài cố định bất kể độ dài của giao dịch đầu vào
là bao nhiêu. Điều làm cho việc theo dõi các giao dịch trở nên dễ dàng hơn khi truy xuất và theo dõi lại
các giá trị băm.. Đảm bảo tính chất là một hàm một chiều, nghĩa là, một hàm mà trên thực
tế không thể suy ngược)

Sự thay đổi này lan truyền lặp đi lặp lại đến các khối tiếp theo và
tạo thành một ngã ba (chuỗi mới). Tuy nhiên, chuỗi mới này không
phải là sự đồng thuận mà tất cả các nút liên hợp đồng ý. Do cấu
trúc khéo léo này, blockchain vốn có khả năng chống giả mạo dữ
liệu. Không giống như hệ thống tập trung hiện tại, blockchain là
một hệ thống phân tán. Để tấn công thành công dữ liệu được lưu
trữ trong blockchain, kẻ tấn công phải tấn công dữ liệu của các
nút khác đồng thời trong một khoảng thời gian ngắn ngay cả khi
kẻ tấn công thành công trong việc giả mạo dữ liệu của một nút
trong mạng. Các tính năng này khắc phục những hạn chế của các
biện pháp kiểm soát bảo mật tập trung hiện có.

B. Các loại Blockchain

Nói chung, có hai loại blockchain: công khai và riêng tư.

Một blockchain công khai được mở cho công chúng — bất kỳ ai


cũng có thể tham gia với tư cách là một nút trong quá trình ra
quyết định. Người dùng có thể được thưởng hoặc không được
thưởng cho sự tham gia của họ. Các hồ sơ này không thuộc sở
hữu của bất kỳ ai. Blockchain công khai cũng có thể được gọi là
hồ sơ (sổ cái) không được phép. Blockchain được bảo đảm bởi
kinh tế học tiền điện tử, là các động lực kinh tế và xác minh mật
mã như Bitcoin. Do số lượng lớn các nút tham gia vào mạng, tốc
độ giao dịch thấp nhưng tính bảo mật cao.
Một blockchain riêng tư là riêng tư và chỉ mở cho một tập đoàn
hoặc một nhóm các cá nhân hoặc tổ chức, những người quyết
định chỉ chia sẻ hồ sơ giữa họ. Trong blockchain, quyền ghi thuộc
về một tổ chức hoặc với một nhóm cá nhân cụ thể. Quyền đọc là
công khai hoặc bị hạn chế đối với một nhóm lớn người dùng. Các
giao dịch trong loại blockchain này được xác minh bởi rất ít nút
trong hệ thống. Tốc độ giao dịch cao do số lượng nút nhỏ tham
gia vào mạng nhưng tính bảo mật thấp hơn so với blockchain
công khai.

C. Sự đồng thuận trong blockchain:

Đồng thuận là một phương pháp để các nút trong mạng


blockchain quyết định có nên ghi dữ liệu cụ thể vào một khối hay
không. Một số thuật toán đồng thuận khác nhau tồn tại tùy thuộc
vào loại blockchain, mục đích của blockchain và môi trường mà
blockchain sẽ được áp dụng, nhưng nghiên cứu này thảo luận về
sự đồng thuận đại diện.

Proof-of-Work (PoW), được sử dụng trong Bitcoin, dựa trên bằng


chứng rằng đủ tài nguyên tính toán đã được sử dụng trước khi đề
xuất một giá trị để mạng chấp nhận. PoW yêu cầu xác định một
phép tính máy tính đắt tiền, còn được gọi là khai thác. Phần
thưởng được trao cho người khai thác đầu tiên giải quyết được
vấn đề của mỗi khối. Những người khai thác mạng cạnh tranh để
trở thành người đầu tiên tìm ra giải pháp cho vấn đề toán học. Ưu
điểm của PoW là bất kỳ ai cũng có thể tham gia mạng PoW và
điều này được thiết lập tốt như một cơ chế đồng thuận chức năng.
Nhược điểm chính của mạng PoW là tốc độ thấp và chi phí tài
chính: việc chạy các máy tính để thực hiện các phép tính này là rất
tốn kém [12].

Proof-of-Stake (PoS) có các mục tiêu tương tự như PoW— để bảo


mật mạng chống lại sự tấn công và cho phép sự đồng thuận xảy
ra trong một mạng mở. Không giống như PoW, nơi thuật toán
thưởng cho những người khai thác giải quyết các vấn đề toán học
để xác thực các giao dịch và tạo ra các khối mới, với PoS, người
tạo ra một khối mới được chọn một cách xác định, tùy thuộc vào
sự giàu có, cũng được định nghĩa là cổ phần của họ [12].

Mạng Proof-of-Authority (PoA) chỉ được sử dụng khi tất cả những


người tham gia blockchain đều được biết đến. Trong PoA, mỗi
người tham gia đều được biết đến và đăng ký với blockchain. Một
chuỗi khối như vậy được gọi là chuỗi được phép, vì chỉ những máy
tính nằm trong danh sách được cơ quan có thẩm quyền phê duyệt
này mới có thể giả mạo các khối. Không giống như PoW hoặc
PoS, không có cơ chế khai thác nào liên quan đến PoA. PoA chủ
yếu được sử dụng trong các môi trường blockchain riêng tư không
yêu cầu cạnh tranh tính toán quá mức. Tuy nhiên, vì các nút quyền
quan trọng hơn các nút chung khác, nên cần phải quản lý chúng
đúng cách và bảo vệ chúng khỏi bị tấn công. Để ngăn chặn các
nút quyền hạn bị xâm phạm, có nhiều cách để áp dụng các biện
pháp kiểm soát bảo mật bổ sung cho các nút quyền hạn hoặc để
ngăn những kẻ tấn công xác định các nút quyền hạn. Mô hình
được đề xuất trong [13] cung cấp một giải pháp để ngăn chặn các
trường hợp trong đó mạng blockchain bị tổn hại do các cuộc tấn
công vào nhiều nút.

Hình 1: Mục tiêu bảo mật trong an ninh mạng NPP

II. BLOCKCHAIN RIÊNG TƯ ĐỂ THEO DÕI TÍCH HỢP DỮ LIỆU CỦA PLC

Phần này mô tả những lưu ý khi áp dụng công nghệ blockchain vào
an ninh mạng của NPP. Xem xét môi trường NPP, nó mô tả sự phát
triển của một blockchain riêng giám sát tính toàn vẹn của dữ liệu
PLC. Chúng tôi cũng mô tả một chức năng giao tiếp mà chúng tôi đã
phát triển để đọc dữ liệu PLC được lưu trữ trong chuỗi khối trong thời
gian thực bằng phần mềm LabVIEW.

A. XEM XÉT TRONG VIỆC KIỂM TRA ĐÚNG CHU KỲ NPP


Trong blockchain hiện tại được sử dụng trong tiền điện tử, số
lượng tiền điện tử và thông tin giao dịch của nó phải được bảo vệ
và bảo mật. Về những loại dữ liệu nào cần được bảo vệ cho an
ninh mạng của NPP, dữ liệu PLC liên quan trực tiếp đến an toàn
hạt nhân (ví dụ: điểm đặt hệ thống điều khiển, logic điều khiển hệ
thống an toàn, v.v.) có thể là câu trả lời, như được minh họa trong
Hình 1. Dữ liệu như vậy không nên được điều chế bởi bất kỳ ai.
Trong nghiên cứu này, dữ liệu PLC liên quan đến an toàn được coi
là tương đương với dữ liệu tiền điện tử.

Loại blockchain phù hợp với môi trường của NPP đã được thảo
luận. Có một hạn chế trong việc áp dụng một blockchain công
khai cho các mạng NPP. Vì mạng NPP bị cô lập với bên ngoài, chỉ
những danh tính nội bộ được phê duyệt trước mới có thể truy cập
vào mạng. Nếu dữ liệu của bộ điều khiển được mở cho các cá
nhân trái phép, dữ liệu cũng có thể cung cấp thông tin hệ thống
nhạy cảm cho các cá nhân bên ngoài hoặc những kẻ tấn công
tiềm năng. Việc sử dụng một chuỗi khối công khai với các tính
năng của cơ chế bằng chứng không có kiến thức cung cấp lợi thế
của việc ẩn danh dữ liệu, nhưng việc ẩn danh này cản trở việc
phân tích chi tiết dữ liệu. Trong nghiên cứu này, việc sử dụng một
blockchain riêng là phù hợp vì dữ liệu không được ẩn danh để
kiểm tra xem dữ liệu của PLC có bị giả mạo hay không. Điều này là
do rất khó để phân tích cụ thể dữ liệu của một PLC cụ thể được
lưu trữ trong một khối nếu tất cả dữ liệu giao dịch được ẩn danh.
Do đó, việc áp dụng một blockchain công khai là không thích hợp
trong môi trường NPP. Xem xét bối cảnh của một mạng lưới NPP,
việc áp dụng một blockchain riêng sẽ phù hợp hơn.

Chúng tôi đã xem xét một thuật toán đồng thuận phù hợp với
blockchain riêng tư để áp dụng cho môi trường NPP. Các thuật
toán đồng thuận chuỗi khối như PoW được sử dụng trong tiền
điện tử hiện có rất tốn kém về mặt tính toán và không hiệu quả
[14].
Khi áp dụng cho an ninh mạng NPP, việc bồi thường ( phần
thưởng ) cho việc khai thác các khối cũng không cần thiết. Do đó,
các mạng blockchain riêng thường sử dụng PoA như một thuật
toán đồng thuận. Mặc dù sử dụng PoA trong môi trường
blockchain riêng tư có lợi thế về hiệu suất và hiệu quả, nhưng theo
quan điểm của kẻ tấn công, nếu họ biết nút nào là nút xác thực,
dữ liệu khối có thể bị giả mạo. Để giải quyết vấn đề này, nên chọn
ngẫu nhiên một người khai thác mỗi lần trong số các nút cấu
thành mạng. Do đó, chúng tôi đã áp dụng sự đồng thuận PoA dựa
trên vòng quay ngẫu nhiên, trong đó nút khai thác được chọn ngẫu
nhiên để ngăn những kẻ tấn công xác định nút khai thác mỗi lần
trong số các nút đã được xác thực. Ngay cả khi một số nút quyền
hạn bị xâm phạm hoặc bất thường, vẫn có thể phân biệt nút bất
thường bằng cách so sánh với các khối được xác minh bởi các nút
bình thường khác. Ví dụ: giả sử rằng một trong 10 nút bị xâm
phạm. Trong vòng mà 9 nút bình thường được chọn làm nút xác
thực, kết quả xác minh là A, trong khi ở vòng mà nút bị xâm phạm
được chọn làm nút xác thực, kết quả xác minh là B. Sau đó, chúng
ta có thể suy ra rằng có sự cố trong nút cho biết kết quả xác minh
là B. Do đó, nếu một nút cơ quan cụ thể được chọn để xác minh
khối và các giá trị được lưu trữ trong chuỗi khối khác với các khối
khác, thì có thể suy ra rằng nút cơ quan có vấn đề. Đây là Bằng
chứng Giám sát (PoM) cho tính toàn vẹn dữ liệu của PLC và nó là
một khái niệm mới được đề xuất trong bài báo này để khắc phục
hạn chế đối với việc áp dụng các blockchains riêng vào an ninh
mạng của các NPP. Đây là Bằng chứng Giám sát (PoM) đối với
tính toàn vẹn dữ liệu của PLC và nó là một khái niệm mới được đề
xuất trong bài báo này để khắc phục hạn chế đối với việc áp dụng
các blockchains riêng vào an ninh mạng của các NPP.

Hình 2: quá trình của bằng chứng giám sát tính toàn vẹn dữ liệu
cho PLC.

1. khối được chuyển đến trình xác nhận nút

2. nút xác thực được chọn ngẫu nhiên trong mỗi thời điểm
3. nút được lựa chọn khai thác và xác nhận khối

4. khối được phát tới các nút khác

5. các nút khác trong chuỗi khối xác thực khối

6. khối mới được thêm vào blockchain

Hình 2 cho thấy quá trình Proof-of-Monitoring (PoM) để đảm bảo


tính toàn vẹn dữ liệu của PLC. Trong quy trình PoM, trước tiên,
một khối mới chứa dữ liệu về tính toàn vẹn của PLC được chuyển
đến nút trình xác nhận. Tại thời điểm này, nút xác thực được chọn
ngẫu nhiên tại mọi thời điểm giữa các nút trong mạng blockchain.
Nút đã chọn khai thác và xác nhận khối. Sau bước này, khối được
phát tới các nút khác. Các nút khác trong chuỗi khối xác thực xem
khối được khai thác tốt hay khối được chuyển bởi một nút được ủy
quyền trong chuỗi khối. Sau quá trình xác thực này, khối mới được
thêm vào blockchain. Do quy tắc lựa chọn ngẫu nhiên cho một nút
xác thực, những kẻ tấn công tiềm năng không thể xác định nút
nào xác thực khối mới được tạo. Việc lặp lại khối tạo này được lặp
lại trong khoảng thời gian ngẫu nhiên từ 5000–6000 ms chẳng
hạn như trong phương pháp nhảy tần được sử dụng để chuyển tín
hiệu vô tuyến truyền giữa một số kênh tần số để ngăn chặn tín
hiệu. Rất khó để những kẻ tấn công xâm nhập hoặc tấn công khối
mới trong thời gian rất ngắn. Khoảng thời gian thường xuyên thay
đổi và không thường xuyên của các khối tạo có thể ngăn những kẻ
tấn công lập kế hoạch tấn công khai thác các khoảng thời gian
phát hiện thường xuyên. Trong phương pháp PoA, một hạn chế
tồn tại trong đó các nút trình xác thực đã được xác định trong
mạng, nhưng PoM cho tính toàn vẹn dữ liệu của PLC với quy tắc
chọn ngẫu nhiên các nút trình xác nhận có thể giảm thiểu những
hạn chế này.

B. CHƯƠNG TRÌNH GIAO TIẾP VỚI PLC


Các hệ thống blockchain hiện tại đã lưu trữ dữ liệu về tiền điện tử
được giao dịch giữa những người dùng. Mục đích của bài báo này,
như đã thảo luận trong Phần III. A, là để lưu trữ dữ liệu có trong bộ
nhớ PLC trong chuỗi khối. Do đó, cần phát triển chương trình đọc
dữ liệu PLC và lưu trữ theo thời gian thực. Chúng tôi đã phát triển
một chương trình thực hiện chức năng đọc dữ liệu bằng cách giao
tiếp với PLC bằng phần mềm LabVIEW, như trong Hình 3. Chức
năng này đọc dữ liệu được lưu trữ trong bộ nhớ PLC trong thời
gian thực sử dụng giao thức truyền thông Ethernet TCP / IP. Mỗi
dữ liệu PLC được đọc và lưu trong một tệp văn bản trong thời gian
thực.

Hình 3: code để giao tiếp với PLC để đọc bộ nhớ dữ liệu sử dụng
phần mềm labview

Để thực hiện chức năng này, cần thiết lập địa chỉ IP, vùng nhớ để
đọc, cổng giao tiếp và định dạng khung bản tin theo giao thức
truyền thông. Chương trình giao tiếp với PLC được phát triển lưu
dữ liệu được lưu trữ trong bộ nhớ cụ thể của PLC ở định dạng văn
bản. Có thể có lo ngại rằng bề mặt tấn công có khả năng tăng lên
do chức năng mới sử dụng giao tiếp Ethernet TCP / IP. Tuy nhiên,
người ta mong đợi rằng nhiều cuộc tấn công hiện có khác nhau có
thể được ngăn chặn thông qua chức năng mới. Ngoài ra, khi áp
dụng cho các hệ thống điều khiển hạt nhân, chức năng giao tiếp
một chiều giữa PLC và chuỗi khối phải được thực hiện do các
hướng dẫn quy định về an ninh mạng hạt nhân. Chức năng giao
tiếp một chiều này có thể ngăn chặn các cuộc tấn công toàn vẹn
dữ liệu chống lại PLC. Dự kiến, bề mặt tấn công do chức năng mới
sẽ được giảm hơn nữa. Dữ liệu của PLC thu được thông qua giao
tiếp được lưu trữ trong chuỗi khối được đề xuất trong phần tiếp
theo.

C. BLOCKCHAIN RIÊNG TƯ ĐỂ THEO DÕI TOÀN VẸN DỮ LIỆU CỦA


PLC
Trong phần này, chúng tôi giới thiệu một blockchain riêng để theo
dõi tính toàn vẹn dữ liệu của PLC. Chúng tôi cũng mô tả kiến trúc
của hệ thống giám sát toàn vẹn dữ liệu PLC sử dụng mạng
blockchain, cấu hình của hệ thống và cấu trúc của dữ liệu trong
blockchain.

Hình 4 minh họa kiến trúc của hệ thống giám sát toàn vẹn dữ liệu
PLC sử dụng mạng blockchain. Dữ liệu của mỗi PLC được coi là
dữ liệu giao dịch trong chuỗi khối của tiền điện tử hiện có. Dữ liệu
PLC được mã hóa bằng thuật toán Secure Hash Algorithm (SHA)
-256 sau mỗi 5000-6000ms, như trong thời gian thực và được ghi
lại trong khối. Nút xác thực được chọn ngẫu nhiên xác minh dữ
liệu đã ghi và phân phối nó đến các nút khác trong mạng
blockchain riêng tư. Sau khi được ghi vào mạng blockchain, dữ
liệu hầu như không thay đổi. Bảng 2 trình bày cấu hình của
blockchain, được phát triển dựa trên JavaScript. Nó bao gồm năm
nút và một khối mới được tạo thành nhiều lần lặp lại với khoảng
thời gian ngẫu nhiên trong khoảng 5000–6000ms bởi một nút xác
thực. SHA-256 được sử dụng như một thuật toán mật mã; nó là
một hàm băm mật mã lấy đầu vào có kích thước ngẫu nhiên và
tạo ra đầu ra có kích thước cố định. Các hàm băm rất mạnh mẽ vì
chúng là ‘‘ một chiều ’’. PoA dựa trên vòng quay ngẫu nhiên đã
được chọn để tạo ra sự đồng thuận trong mạng blockchain. Nếu
kẻ tấn công xác định được một nút khai thác, thì việc giả mạo dữ
liệu là có thể xảy ra. Do đó, nút khai thác đã được chọn ngẫu nhiên
trong tổng số các nút trong mạng blockchain.

Hình 4: kiến trúc của hệ thống giám sát toàn vẹn dữ liệu plc bằng
cách sử dụng blockchain

Từ PLC có các chương trình giao tiếp để đọc dữ liệu của các PLC.
Dữ liệu của các PLC đc băm bằng thuật toán SHA -> được các giá
trị băm (hash value) -> băm tiếp để thành 1 gốc merkle chung.
Gốc này lưu trong tiêu đề khối, cùng kết quả băm trước (previous
hash result), dấu thời gian(timestamp), số khối (block number),
nonce, kết quả băm hiện tại (current hast result), dữ liệu giao dịch
(transaction data). Để làm gì? – băm ra giá trị cho khối?

, một cây là một cấu trúc dữ liệu. Trong cấu trúc này gồm có:

 Nút: Một cách nói thú vị để ám chỉ một cái gì đó có chứa dữ liệu và có thể liên kết với
các nút khác.
 Cạnh: Đó là các liên kết kết nối các nút.
Vì cây là loại biểu đồ đặc biệt nên bắt đầu từ một nút gốc. Do đó, cần phải có một nút ban đầu.
Các nút chỉ liên kết bằng cách phân nhánh từ các nút mẹ. Như vậy, bạn có thể chỉ cần liên kết
các nút của mình theo cách bạn muốn. Nút không có nút con được gọi là lá hoặc điểm cuối.

Cây Merkle là một loại cây đặc biệt. Một cây Merkle còn được gọi là cây hash.

Hash là gì?

Hash về cơ bản là một chữ ký của bất kỳ loại dữ liệu tùy ý. Hiểu theo cách khoa học thì đó là
một hàm lấy dữ liệu kích thước tùy ý và trả về hàm kích thước cố định.

Tuy nhiên, vì là nó “chữ ký” của dữ liệu nên phải có các tính chất sau:

 Xác định: Một dữ liệu chỉ có 1 hash và không có sự trùng lặp ngẫu nhiên.
 Thống nhất: Có chức năng hoạt động xuyên suốt, không thay đổi.
Tuy nhiên, để có được chữ ký tốt, duy nhất thì phải có đầu ra (kích thước cố định) gần như nhau.
Nếu không, sẽ xảy ra xung đột: có nghĩa là ngày càng có nhiều dữ liệu có cùng chữ ký. Với đầu
ra có “kích thước cố định” (kích thước chữ ký) đủ lớn và thống nhất, sẽ không có vấn đề gì xảy
ra.

 Phạm vi xác định: Đây là phần xác định kích thước cố định.
Vì mục tiêu là lấy bất kỳ dữ liệu nào và tạo ra một chữ ký chung, nên phải có một phạm vi xác
định thường được tính bằng đơn vị bit. Ví dụ hàm hash rất phổ biến SHA-512 có phạm vi xác
định là 512 bit.
 Không thể đảo ngược: Chữ ký được thực hiện theo một chiều, có nghĩa là không thể
lấy nội dung gốc bằng cách sử dụng hash.
Mặc dù đây không phải là một yêu cầu nhất thiết phải có, đặc biệt đối với hash mật mã, nhưng
chắc chắn rất quan trọng

Trở lại cây Merkle Tree, như chúng ta đã nói, mỗi chiếc lá trong cây này có một số khối dữ liệu
trong đó. Một nút có thể chứa hash mật mã (chữ ký một chiều) của nút con. Điều này hóa ra là
một cách rất thú vị để lưu trữ một số dữ liệu; đặc biệt bởi vì nó cho phép bạn xác minh mọi loại
dữ liệu. Quá trình này diễn ra một cách nhanh chóng vì chỉ cần kiểm tra chữ ký của dữ liệu.

Hãy xem xét một ví dụ về bốn giao dịch trong một khối: A, B, C và D. Mỗi giao dịch được băm
và hàm băm được lưu trữ trong mỗi nút lá, dẫn đến các cặp Hash A, B, C và D. Liên tiếp các nút
lá sau đó được tóm tắt trong một nút cha bằng cách băm Hash A và Hash B, dẫn đến Hash AB
và băm riêng Hash C và Hash D, dẫn đến Hash CD. Hai băm (Hash AB và Hash CD) sau đó được
băm lại để tạo Root Hash (Root Merkle).

Cây Merkle được tạo bằng cách liên tục băm các cặp nút cho đến khi chỉ còn lại một hàm băm
(hàm băm này được gọi là Root Hash hoặc Root Merkle). Chúng được xây dựng từ dưới lên, từ
băm của các giao dịch riêng lẻ (được gọi là ID giao dịch). Merkle Root tóm tắt tất cả dữ liệu
trong các giao dịch liên quan và được lưu trữ trong tiêu đề khối.

Mỗi nút lá là một hàm băm của dữ liệu giao dịch và mỗi nút không lá là một hàm băm của các
giá trị băm trước đó. Merkle tree là nhị phân và do đó yêu cầu số nút chẵn. Nếu số lượng giao
dịch là số lẻ, hàm băm cuối cùng sẽ được nhân đôi một lần để tạo số nút chẵn.
Gốc Merkle được kết hợp với các thông tin khác (phiên bản phần mềm, hàm băm của khối trước, dấu thời
gian (timestamp), mục tiêu độ khó và số được sử dụng một lần (nonce)) và sau đó chạy qua hàm băm để
tạo ra hàm băm duy nhất của khối:

Bảng 2: cấu trúc của blockchain riêng: vd trong bài

- số lượng nút hệ điều hành trong chuỗi khối – 5.


- thời gian giao dịch và khai thác - khoảng thời gian ngẫu nhiên giữa
5000 – 6000ms.
- thuật toán mật mã - SHA-256.
- thuật toán đồng thuận – PoM (vòng xoay ngẫu nhiên)

Dữ liệu được lưu trữ trong blockchain đã phát triển được trình bày trong
Bảng 3. Số khối, kết quả băm trước đó, dữ liệu giao dịch, gốc Merkle,
nonce, dấu thời gian và kết quả băm hiện tại được ghi trong khối. Số
khối là số khối được tạo ra. Kết quả băm trước là giá trị băm của khối
trước đó. Không giống như dữ liệu được lưu trữ trong chuỗi khối tiền
điện tử, chuỗi khối được đề xuất trong nghiên cứu này lưu trữ dữ liệu
PLC (ví dụ: logic hệ thống điều khiển, dữ liệu điểm đặt, v.v.). Việc xác
minh tính toàn vẹn của dữ liệu sẽ không hiệu quả nếu số lượng PLC tăng
lên đáng kể. Xét đến hạn chế này, gốc Merkle được sử dụng để dễ dàng
xác minh tính toàn vẹn của tất cả dữ liệu và có thể là giá trị băm đại diện
về tính toàn vẹn của một số PLC [15]. Dữ liệu trong mỗi nút lá là dữ liệu
PLC thu được bởi chương trình truyền thông được đề xuất trong Phần
III.B và tất cả dữ liệu băm được kết hợp thành một giá trị băm không đổi
duy nhất được gọi là ‘‘ Merkle root ’’. Dấu thời gian là thời gian khối hiện
tại được tạo. Khi giám sát tính toàn vẹn dữ liệu của PLC, dấu thời gian
biểu thị thời điểm dữ liệu thay đổi. Nonce là một giải pháp của công việc
cần thiết để kết nối khối trước với khối hiện tại. Kết quả băm hiện tại là
giá trị băm của khối hiện tại, giá trị này cũng được bao gồm trong khối
tiếp theo sẽ được tạo.
BẢng 3: cấu trúc Block:

- Block number: số thứ tự của khối hiện tại, được sử dụng làm tiêu
đề của khối.
- Previous hash result: kết quả băm của khối trước đó.
- Transaction data: Giá trị băm của dữ liệu được lưu trữ trong PLC
(dữ liệu của logic bậc thang, điểm đặt của các thành phần, cấu
hình của PLC).
- Merkle root hash: băm nén của tất cả dữ liệu giao dịch được băm,
là giá trị đại diện cho tính toàn vẹn dữ liệu tổng thể của PLC.
- Timestamp: thời gian khối hiện tại được thêm vào blockchain.
- Nonce: giải pháp của bài toán đố cho khối hiện tại.
- Current hash result: kết quả băm của khối hiện tại.
III. THEO DÕI TÍCH HỢP RPS SỬ DỤNG BLOCKCHAIN ĐÃ PHÁT TRIỂN
Phần này mô tả hệ thống giám sát toàn vẹn dữ liệu RPS bằng cách
sử dụng chuỗi khối riêng được phát triển trong Phần 3. Phần này mô
tả sự ra đời của RPS, sự phát triển của hệ thống giám sát tính toàn
vẹn RPS bằng cách sử dụng blockchain đã phát triển và xác thực thử
nghiệm của nó.
Nhưng tại sao? Chúng ta không thể kiểm tra hash bình thường của dữ liệu thay vì đặt từng mảnh
và tạo ra cả một cây phải không?

Chúng ta có thể. Tuy nhiên, nếu bạn đang phát triển một hệ thống phân tán/ngang hàng (nơi các
máy đang trao đổi thông tin và bạn không biết bạn có thể tin tưởng vào cái nào) thì loại xác
minh này trở nên cực kỳ quan trọng. Mặc dù cùng một dữ liệu ở nhiều nơi nhưng không có cách
nào để biết nếu không có phương thức trên.

Nút mà bạn nhận được dữ liệu rất trung thực. Dữ liệu bạn nhận được là chính xác (và nút không
lừa bạn). Dữ liệu không bị ngắt trên đường vận chuyển.

You might also like