You are on page 1of 36

HỌC VIỆN KĨ THUẬT MẬT MÃ

Khoa điện tử viễn thông

NHÓM 2
HỆ THỐNG ĐỊNH THỜI
Thành viên : Mai Khắc Nguyên
Lê Thị Huyền
Nguyễn Văn Nam
Nội dung chính

Phần 1 : Tác động của việc xác định


Phần 2 :Lập lịch an toàn
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Hệ điều hành thực hiện một loạt các dịch vụ thay thế
cho các quy trình của khách hàng và hệ thống nhúng
tổng thể. Hệ điều hành lập lịch khối lượng công việc
trên một hoặc nhiều Các lõi CPU, phân bổ bộ nhớ, xáo
trộn tin nhắn giữa các quy trình, kiểm soát quyền truy
cập vào I / O, quản lý mức tiêu thụ điện năng, theo dõi
tình trạng hệ thống, v.v.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Có nhiều sự chậm trễ trong các điều khoản về cách
hệ điều hành được thực hiện để ưu tiên tất cả các hoạt
động này. Phần lớn hệ điều hành được cấu trúc với mục
đích chung để cung cấp khả năng đáp ứng tốt hoặc
công bằng cho tất cả các khách hàng của họ. Mặc dù
các quy trình có thể được chỉ định mức độ ưu tiên số,
chúng được hiểu là các hướng dẫn không can thiệp vào
khả năng của phần còn lại của hệ thống.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Hệ thống nhúng thời gian thực là hệ thống không có
khả năng phản hồi trong một số khung thời gian tối đa
cấu thành thất bại. Ví dụ: điều khiển máy bay bằng dây
máy tính phải đọc và xử lý rất nhiều cảm biến theo
những khoảng thời gian đều đặn cố định.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định

Nếu ứng dụng điều khiển không thể đọc và xử lý các chỉ
số cảm biến một cách kịp thời, an toàn chuyến bay có nguy
cơ bị đe doạ. Máy bay ném bom B-2 là một ví dụ tuyệt vời:
cấu trúc cánh bay của nó là vốn đã không ổn định, hệ thống
fly-by-wire khắc phục sự bất ổn này với liên tục điều chỉnh
điều khiển trong giây phút, độc lập với phi công, dựa trên
đầu vào nhận được từ cảm biến. Cái gọi là thời gian thực
mềm chỉ đơn giản đề cập đến việc không có khả năng đảm
bảo tuyệt đối (nói cách khác, không phải thời gian thực).
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Hệ điều hành thời gian thực (RTOS) có thể đảm bảo
tuyệt đối việc thực thi worst-case execution
times(WCET) cho các dịch vụ, chẳng hạn như xử lý
các ngắt ngoại vi. Do đó, thời gian thực hệ thống
nhúng phải được điều khiển bởi một RTOS. Để trở
thành một RTOS thực sự, Trung tâm của hoạt động
phải hoàn toàn xác định: WCET cho mọi dịch vụ hạt
nhân phải có giới hạn và có thể tính toán được.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Rất khó để xây dựng hệ điều hành có thể xác định
được đầy đủ. Như một trường hợp điển hình, chúng ta
hãy xem xét cách lõi hệ điều hành xử lý các ngắt do
không đồng bộ xuất hiện các thông báo I / O, tràn bộ
định thời và các sự kiện khác. Ngắt có thể xảy ra bất kỳ
thời gian nào, kể cả khi nhân đang ở giữa một số hoạt
động quan trọng.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định

Khi một quá trình thực hiện lệnh gọi hệ thống và lõi
đang sửa đổi cấu trúc dữ liệu nội bộ để hoàn thành yêu
cầu, quyền ưu tiên ngắt bị vô hiệu hóa bởi lõi để đảm
bảo rằng một quá trình khác không thể được chuyển
sang ngữ cảnh để thực hiện lệnh gọi hệ thống có thể
truy cập vào các dữ liệu nội bộ này cấu trúc trong khi
chúng ở trạng thái không nhất quán. Chuỗi mã liên tục
này là được gọi là critical section.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định

Lõi chỉ có thể yêu cầu xác định bằng cách đảm bảo
một WCET có thể tính toán cho mọi phần quan trọng.
Ngay cả những hệ điều hành thời gian thực đơn giản, tự
mô tả cũng có thể vô hiệu hóa quá trình xử lý gián đoạn
ở hàng trăm địa điểm.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Trong một nghiên cứu về sự gián đoạn độ trễ của hệ
điều hành trong thời gian thực, 6 các nhà nghiên cứu
ước tính rằng hạt nhân chứa khoảng 1.200 các phần,
trong đó các nhà nghiên cứu có thể tính toán tĩnh
WCET cho khoảng một nửa, để lại khoảng 600 trình tự
vô hiệu hóa chưa biết WCET được tính toán tĩnh. Trong
số các trình tự có thể tính toán được, các nhà nghiên
cứu đã khám phá ba lần các vòng lặp lồng nhau với
WCET ước tính hơn 25.000 chu kỳ.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


RTOS được phân tích trong nghiên cứu này ít phức tạp hơn
nhiều so với hoạt động có mục đích chung chẳng hạn như
Windows hoặc Linux. Bất chấp những nỗ lực đáng kể để giảm độ
trễ điển hình đối với nhiều hoạt động, khả năng của các hạt nhân
nguyên khối này đảm bảo tính xác định vẫn không khả thi. Tại
sao bất kỳ vấn đề này cho bảo mật? Tác động rõ ràng nhất của
thuyết tất định là khả năng của một hệ thống nhúng thời gian
thực để đảm bảo tính toàn vẹn và tính sẵn có của nó hoạt động
bằng cách tránh bỏ lỡ thời hạn có thể dẫn đến lỗi hệ thống. Tuy
nhiên, chỉ một Tập hợp con tương đối nhỏ của tất cả các hệ thống
nhúng có thời hạn gian thực khó khăn.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Điểm quan trọng:
Tính quyết đoán là cần thiết để thực thi phân vùng thời gian an
toàn.
Các ứng dụng quan trọng về bảo mật không được bỏ trống thời
gian thực thi bởi phần mềm độc hại hoặc ứng dụng sai lầm. Nếu
một ứng dụng độc hại phát hiện ra một lỗ hổng trong đó lệnh
gọi dịch vụ hệ điều hành mất một thời gian dài tùy ý để thực thi
trong một số khi đó, cuộc gọi dịch vụ này có thể bị ứng dụng
độc hại lạm dụng để trì hoãn các ứng dụng quan trọng.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Hơn nữa, các biến thể về thời gian thực hiện cuộc gọi
dịch vụ có thể được sử dụng như một kênh thời gian bí mật
hoặc lân cận, ví dụ về các cuộc tấn công bảo mật tinh vi.
Kênh phụ là cơ chế mà thực thể độc hại có thể suy ra là
nhạy cảm thông tin về một quá trình quan trọng chỉ đơn
giản bằng cách quan sát các biến thể vật lý gây ra bởi quá
trình. Các biến thể vật lý có thể quan sát được bao gồm
thời gian (kênh thời gian), công suất tiêu thụ, phát ra điện
từ và nhiệt độ
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Một kênh bí mật cũng khai thác các biến thể vật lý nhưng giả
định hai hoặc nhiều người thông đồng sử dụng những tác động
này để tạo ra một kênh truyền thông trái phép cho chính họ. Một
bí mật kênh thời gian sử dụng các biến thể về thời gian làm
phương tiện giao tiếp. Giả sử rằng hai ứng dụng tách biệt nhưng
thông đồng, Alice và Bob, mỗi ứng dụng được cung cấp 10 mili
giây thời gian thực hiện trong một lịch trình 20 mili giây lặp lại
như hình 1.1

Hình 1.1: Phân tích vùng đơn giản


HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


• Nó là hoạt động công việc của hệ thống là đảm bảo
rằng Alice và Bob có thời gian thực thi chính xác là
10 mili giây. Hạt nhân sẽ đặt bộ hẹn giờ hết hạn sau
mỗi 10 mili giây và chuyển đổi ngữ cảnh Alice và
Bob khi ngắt bộ hẹn giờ kích hoạt.
• Nếu Alice có thể tạm thời tăng khả năng thực thi của
nó thời gian trên 10 mili giây bằng cách trì hoãn
chuyển đổi ngữ cảnh, sau đó Bob sẽ nhận ra sự mất
mát của nó của thời gian thực hiện.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Do đó, Alice có thể truyền một chút thông tin cho
Bob cho mỗi lần chuyển tuyến thông qua lịch trình: một
cho cửa sổ thực thi 10 mili giây và 0 cho cửa sổ phụ 10
mili giây. Đây là kênh bí mật băng thông cao: mã hóa
riêng tư 128 bit chìa khóa được tiết lộ trong chưa đầy ba
giây
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Alice có thể sử dụng lệnh gọi dịch vụ hệ điều hành làm
phương tiện để trì hoãn ngữ cảnh công tắc. Cuộc gọi
dịch vụ hoạt động như một phần quan trọng làm trì
hoãn trình lập lịch chuyển sang Bob. Do đó, Alice có
thể thực hiện một lệnh gọi hệ thống ở gần cuối cửa sổ
thực thi của nó để thực hiện độ trễ này

Hình 1.2: Sử dụng cuộc gọi có mã để gây ra một cuộc tấn công
định thời giữa các phân vùng
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Biện pháp đối phó rõ ràng với cuộc tấn công định
thời này là đặt một khoảng đệm thời gian giữa Alice và
Bob bằng thời lượng của cuộc gọi dịch vụ dài nhất có
thể. Vì vậy, bất kể điều gì hệ thống gọi nó là nỗ lực,
Alice không thể trì hoãn việc bắt đầu phân vùng thời
gian của Bob. Đây là lý do tại sao thuyết tất định lại có
liên quan đến an ninh.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Nếu Alice có thể tìm thấy một lệnh gọi hệ thống,
dưới một số trường hợp nhất định, thực thi lâu hơn dự
kiến, khi đó Alice có thể sử dụng lệnh gọi hệ thống đó
như một kênh thời gian bí mật. Không phải tất cả các hệ
thống nhúng đều cần phải lo lắng về mối đe dọa của các
kênh thời gian, nhưng những kênh đó phải nhận được
phân tích WCET từ hoạt động nhà cung cấp hệ thống.
HỆ THỐNG ĐỊNH THỜI

1.Tác động của việc xác định


Ngoài ra, một số đánh giá và chứng nhận bảo mật yêu cầu
nghiêm ngặt phân tích các kênh bí mật từ tất cả các nguồn vật lý
có thể áp dụng trong phần nhúng hệ thống. Bằng cách phát hiện
và đo băng thông kênh bí mật, các nhà thiết kế có thể xác định
sự cần thiết và hoặc tính khả thi của các biện pháp đối phó cụ
thể.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


Các nhà phát triển hệ thống nhúng quen thuộc với
hệ điều hành thời gian thực sẽ lưu ý rằng cách tiếp cận
lập lịch trình được mô tả trong phần trước không giống
như cách tiếp cận dựa trên mức độ ưu tiên điển hình
công cụ lập lịch ưu tiên sử dụng các ưu tiên do nhà
phát triển chỉ định cho Alice và Bob.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


Giả sử Alice được chỉ định mức độ ưu tiên 100, cao
hơn mức độ ưu tiên của Bob là 50. Miễn là Alice tiếp
tục để thực thi, Alice chạy trước Bob (giả sử một lõi xử
lý duy nhất). Dựa trên mức độ ưu tiên lập lịch không
thể cung cấp phân vùng thời gian an toàn: Alice có thể
dễ dàng bỏ trống thời gian thực hiện của Bob bằng
cách quay và Alice và Bob có thể điều chỉnh việc sử
dụng CPU của họ để tạo thành một kênh thời gian bí
mật băng thông cao
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Cách tiếp cận cửa sổ thực thi được mô tả trong phần
trước được gọi là phân vùng lập kế hoạch. Tùy thuộc
vào việc triển khai, một phân vùng thời gian có thể bao
gồm một quy trình hoặc tập hợp các quy trình liên quan
có thể chia sẻ một phần thời gian CPU một cách an
toàn.
• Hệ điều hành có thể cho phép nhà thiết kế hệ thống sử
dụng các ưu tiên số hoặc các lập lịch tham số để kiểm
soát cách cửa sổ thời gian được trải rộng trên phân
vùng các quy trình hoặc chủ đề cấu thành như hình 2.1
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn

Hình 2.1 Phân vùng lập lịch


HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Cũng có thể chỉ định các quy trình đáng tin cậy nhất định
thành nhiều hơn một lần thực thi cửa sổ. Có rất nhiều hình
thức lập lịch phân vùng; từ góc độ bảo mật, lưu ý quan trọng
là các quy trình không đáng tin cậy không thể sửa đổi hệ
thống- lịch trình xác định.
• Phân vùng thời gian an toàn là một tính năng quan trọng của
các lõi tách biệt; không phải tất cả microkernels cung cấp
phân vùng thời gian an toàn.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn

• Vấn đề cố hữu trong các bộ lập lịch luồng RTOS điển


hình là chúng không biết quy trình hoặc không gian địa
chỉ mà các chủ đề lưu trữ.
• Giả sử rằng Alice thực hiện trong một quy trình thu thập
số liệu thống kê trong khi luồng quan trọng Bob thực
hiện trong quy trình xử lý cuộc gọi. Hai ứng dụng được
phân vùng và bảo vệ trong miền không gian, nhưng
không theo miền thời gian.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn

Các nhà thiết kế hệ thống an toàn yêu cầu khả năng đảm
bảo rằng thời gian chạy các đặc điểm của ứng dụng thu thập
số liệu thống kê không thể ảnh hưởng đến thời gian chạy đặc
điểm của hệ thống xử lý cuộc gọi. Bộ lập lịch chuỗi chỉ đơn
giản là không thể thực hiện Bảo hành.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Hãy xem xét một tình huống mà Bob thường nhận
được tất cả thời gian chạy nó cần bằng cách đặt mức
độ ưu tiên cao hơn Alice hoặc bất kỳ chuỗi nào khác
trong thu thập thống kê ứng dụng.
• Do lỗi hoặc thiết kế kém hoặc kiểm tra không đúng
cách, Bob có thể hạ thấp ưu tiên (khả năng làm như
vậy có sẵn trên thực tế với tất cả các bộ lập lịch
luồng), gây ra trong ứng dụng thu thập số liệu thống
kê để giành quyền kiểm soát thời gian chạy của bộ xử
lý.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn

Tương tự, Alice có thể nâng mức độ ưu tiên của nó


lên trên mức độ ưu tiên của Bob với cùng một hiệu
ứng. Các cách duy nhất để đảm bảo rằng các chuỗi
trong các không gian địa chỉ quan trọng khác nhau
không thể ảnh hưởng đến nhau là cung cấp mức
không gian địa chỉ, hoặc phân vùng, bộ lập lịch.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


Các nhà thiết kế phần mềm quan trọng về an
toàn đã biết yêu cầu này từ lâu. Các khái niệm lập
lịch phân vùng là một phần chính của Đặc điểm kỹ
thuật ARINC 653, một Avionics Giao diện Tiêu
chuẩn Phần mềm Ứng dụng
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Trình lập lịch phân vùng ARINC 653 thực thi phân
vùng thời gian theo một mốc thời gian do người thiết
kế hệ thống thiết lập.
• Mỗi địa chỉ không gian được cung cấp một hoặc
nhiều cửa sổ thực thi trong dòng thời gian lặp lại.
• Suốt trong mỗi cửa sổ, tất cả các luồng trong các
phân vùng khác không thể chạy được; chỉ các chủ đề
trong phân vùng hiện tại có thể chạy được (và thường
được lên lịch theo tiêu chuẩn quy tắc lập lịch luồng)
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Khi cửa sổ của ứng dụng xử lý cuộc gọi đang hoạt
động, tài nguyên chế biến được đảm bảo; ứng dụng
thu thập số liệu thống kê không thể chạy và lấy mất
thời gian xử lý từ ứng dụng quan trọng.
• Mặc dù không được chỉ định trong ARINC 653, một
bổ sung thận trọng cho việc triển khai là cung cấp
khái niệm về nền vách ngăn
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn

• Khi không có luồng chạy nào tồn tại trong phân


vùng hoạt động, trình lập lịch phân vùng sẽ có thể
chạy các chuỗi nền, nếu có, trong phân vùng nền
thay vì chạy không tải.
• Chuỗi nền mẫu có thể là tác nhân chẩn đoán mức
độ ưu tiên thấp chạy thỉnh thoảng nhưng không có
yêu cầu khó về thời gian thực.
HỆ THỐNG ĐỊNH THỜI

2. Lập lịch an toàn


• Nỗ lực đã được thực hiện để thêm lập lịch phân vùng trên
đầu các hệ điều hành thương mại sẵn có bằng cách tạm
dừng có chọn lọc tất cả các luồng trong phân vùng đang
hoạt động và sau đó chạy tất cả các luồng trong phân vùng
tiếp theo.
• Do đó, thời gian chuyển đổi phân vùng là tuyến tính với số
luồng trong phân vùng: một triển khai kém không thể chấp
nhận được. Lõi phải đảm bảo thời gian không đổi, chuyển
đổi phân vùng độ trễ tối thiểu
 
Chúng em cảm ơn thầy và các bạn đã
lắng nghe

You might also like