Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 37

Hello everybody!

1
ĐỀ TÀI:
BẢO MẬT FIRMWARE CHO CÁC THIẾT BỊ
SỬ DỤNG VI ĐIỀU KHIỂN STM32

 Người hướng dẫn:  Nhóm:


• Nguyễn Huỳnh Nhật Thương • Đinh Bá Lương
• Trần Thuỵ Ngọc Hằng
• Hoàng Thiên Tân
• Lê Thị Nguyên
• Nguyễn Thị Lệ
• Minh Tuệ

2
NỘI DUNG BÁO CÁO
I. TỔNG QUAN ĐỀ TÀI

II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI

III. KẾT QUẢ VÀ ĐÁNH GIÁ

IV. DEMO

V. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

3
I. TỔNG QUAN ĐỀ TÀI
1. Thực trạng và thách thức
• Trong thời kỳ hội nhập quốc tế và giai
đoạn định hướng xã hội theo cuộc cách
mạng Công nghiệp 4.0 thì thông tin trên
Internet của mỗi cá nhân, tổ chức và thậm
chí cả quốc gia đã trở thành một khối tài
sản có giá trị đặc biệt.
• Trên thế giới, khả năng tin tặc có thể sử
dụng các lỗ hổng an ninh cũng như các
công cụ từ phần cứng, firmware tới phần
mềm để can thiệp vào các hệ thống thông
tin, gắn các chip, thiết bị gián điệp để thu
thập thông tin bất hợp pháp cũng như tấn
công các hệ thống này.
4
I. TỔNG QUAN ĐỀ TÀI
2. Tính cấp thiết của đề tài
• Hiện nay, vấn đề an ninh, an toàn hệ
thống thông tin (bao gồm cả phần
cứng, firmware và phần mềm) đang
trở nên cấp bách trong nhiều lĩnh vực
khác nhau.
• Từ thực tế cho thấy việc bảo mật
thông tin cá nhân rất cấp bách và cần
thiết để bảo vệ tài sản cá nhân và đảm
bảo an toàn cho hệ thống thông tin
của tổ chức, của đơn vị, doanh
nghiệp. 

5
I. TỔNG QUAN ĐỀ TÀI
3. Các khái niệm cơ bản
• Firmware là gì?
 Firmware là một chương trình phần mềm hoặc một tập hợp
các hướng dẫn được lập trình trên một thiết bị phần cứng.
Nó cung cấp các hướng dẫn cần thiết về cách thiết bị giao
tiếp với phần cứng máy tính khác.
 Các ví dụ điển hình về firmware có thể thấy từ những sản
phẩm cho người dùng.

6
I. TỔNG QUAN ĐỀ TÀI
3. Các khái niệm cơ bản
 Bảo mật firmware là gì?
 Bảo mật firmware là phương pháp
được sử dụng để tác động lên phần
cứng hoặc phần mềm của MCU để
chống lại (ngăn ngừa) các cách thức
tấn công nhằm truy cập vào chương
trình firmware để đánh cắp data từ
bên ngoài.

7
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI

Các giải pháp bảo vệ firmware


mà nhóm thực hiện:
1. Bảo vệ đọc (RDP).
2. Bảo vệ ghi (WRP).
3. Bảo vệ truy cập firmware bằng
cách ứng dụng Unique ID.
4. Secure boot

8
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1. Bảo vệ đọc (RDP)
1.1. Giải pháp đề ra
1.1.1. Bảo vệ đọc RDP là gì ?
• Bảo vệ đọc RDP là: một tính năng không cho phép
đọc, ghi, xóa bộ nhớ flash từ mọi nỗ lực truy cập nội
dung Flash nội bộ từ bên ngoài.
• Ví dụ dưới đây là cách thức tấn công đơn giản nhất
thường sử dụng để đọc dữ liệu bộ nhớ flash từ bên
ngoài:

9
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1.1.1. Bảo vệ đọc RDP là gì ?
Phần mềm

+ STM32 ST-LINK
Utility


10
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1.1. Giải pháp đề ra
1.1.2. Mức bảo vệ đọc RDP :
• Mức bảo vệ đọc RDP : chia thành 3 mức kích hoạt bảo vệ
• Mức 0: đây là mức thấp nhất tương ứng với việc chưa kích hoạt
tính năng bảo vệ RDP.
• Mức 1: đây là mức bảo vệ mà bộ nhớ flash nội bị khóa
• Mức 2: đây là mức bảo vệ cao nhất trong RDP bộ nhớ flash nội
sẽ bị khóa.
- Nó sẽ cấm vĩnh viễn debug JTAG
- SRAM bị cấm
- Không thể cấu hình lại mức bảo vệ

11
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1.1.2. Mức bảo vệ đọc RDP :

Đây là hình ảnh tổng quát toàn bộ quá trình của các chế độ.
12
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1.1. Giải pháp đề ra
1.1.3. Cách thức kích hoạt bảo vệ đọc RDP
- cấu hình option bytes bằng phần mềm nạp code ST-LINK
Utility hoặc STM32 cubeProgrammer.
- Kích hoạt tính năng bảo vệ RDP thông qua viết chương
trình khóa chíp.

13
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
1. Bảo vệ đọc (RDP)
1.2. Quy trình triển khai
• Bước 1: Khởi động phần mềm nạp code STM32 ST-LINK.
• Bước 2: Tiến hành cấu hình option bytes tưng ứng cho từng mức
(Thực hiện chuyển đổi RDP0 lên RDP1 hoặc RDP2)
• Bước 3: kích hoạt apply

14
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
2. Bảo vệ ghi (WRP).
2.1. Giải pháp đề ra

 Bảo vệ ghi WRP nó được hãng ST tích hợp cho tất cả


các dòng của vi điều khiển stm32 từ f0  WB 15
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
2. Bảo vệ ghi (WRP).
2.1. Giải pháp đề ra
• Bảo vệ ghi WRP là bảo vệ nội dung của vùng bộ nhớ flash xác
định, chống lại việc xóa, cập nhật phần mềm hoặc dữ liệu.
• Bảo vệ ghi dùng để bảo vệ tối đa 7 user sectors trong bộ nhớ
Flash trước những hoạt động ghi không mong muốn. Khi tính
năng này được bật, mọi hoạt động ghi hoặc xóa bộ nhớ sẽ
không thực hiện được.

16
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
2. Bảo vệ ghi (WRP).
2.1. Quy trình triển khai
• Bước 1:Khởi động phần mềm nạp code STM32 ST-LINK.

• Bước 2:Tiến hành kích hoạt bảo vệ ghi tưng ứng cho từng vùng
xác định (vùng : là vùng giới hạn bởi địa chỉ bắt đầu và địa chỉ
kết thúc)

• Bước 3: kích hoạt apply

17
DEMO RDP & WRP

18
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
3. Bảo vệ truy cập firmware bằng ứng dụng Unique ID.
3.1. Unique ID là gì ?
- Nó là mã nhận dạng thiết bị duy nhất được cài đặt tại nhà máy ST
 mỗi chíp mcu STM32 nó chỉ có một mã ID riêng biệt duy nhất.

- Chiều dài mã Qnique ID là 96bits.

- Mã Unique ID được thiết lập cố định.

(lưu ý: để có được sự thống nhất trên tất cả các thiết bị thuộc dòng
STM32, ID duy nhất của thiết bị phải được kết hợp với ID của MCU)

19
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
3. Bảo vệ truy cập firmware bằng ứng dụng Unique ID.
3.2. Cách đọc mã Unique ID của mỗi mcu stm32:
 Sử dụng STM32 cubeProgrammer để đọc mã unique ID.
• Mỗi mã unique ID của mỗi mcu stm32 đều được hãng lưu vào
các Base address khác nhau.

20
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
3. Bảo vệ truy cập firmware bằng ứng dụng Unique ID
3.2. Cách đọc mã Unique ID của mỗi mcu stm32:
 Chúng ta có thể xây dựng hàm để đọc địa chỉ unique ID .
 Code mẫu:

21
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
3. Bảo vệ truy cập firmware bằng ứng dụng Unique ID
3.3. Một số ứng dụng của mã Unique ID stm32:
• Tạo một số sê-ri thông qua một thuật toán.

• Sử dụng như một phần của khóa bảo mật nhằm tăng tính bảo
mật firmware trong bộ nhớ Flash.

• để kích hoạt các quy trình khởi động an toàn, v.v.

22
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
3. Bảo vệ truy cập firmware bằng ứng dụng Unique ID
3.4. Giải pháp ứng dụng mã Unique ID vào bảo mật firmware
mà nhóm thực hiện.
• Triển khai cơ chế xác minh tính xác thực của firmware (tức là xác
thực) bằng cách sử dụng Unique ID. Điều này đảm bảo rằng chỉ
những mã Unique ID đáng tin cậy mới có thể được thực thi trên
thiết bị.

23
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
• Secure boot là application chạy đầu tiên của chương trình mỗi lần
khởi động hoặc reset.
• Nó nằm ở địa chỉ đầu tiên của bộ nhớ FLASH.
• SB sẽ có dữ liệu lưu vào RAM khi thực thi vì vậy RAM phải
trống trước khi nhảy vào ứng dụng để tránh việc để lại dữ liệu
không mong muốn khi application chạy.
• SB được xây dựng để kiểm tra trạng thái của thiết bị, xác thực
chương trình cơ sở trước khi thực thi ứng dụng.

24
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
4.1. Giải pháp đề ra
4.1.1. Chức năng của secure boot

• Có 2 chức năng chính:


 Kiểm tra cấu hình bảo mật
của STM32 và thiết lập bảo
vệ thời gian chạy
 Kiểm tra tính toàn vẹn và
tính xác thực của user
application được thực thi

25
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
4.1. Giải pháp đề ra
4.1.2. Secure boot application
• Xác thực thiết bị STM32
• Đặt lại kiểm tra RESET
• Disable cấu hình ARM DAP
• Khởi tạo tường lửa và MPU
• Khởi tạo SRAM(zero)
• …

26
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
4.1. Giải pháp đề ra
4.1.3. Điều kiện để SB hoạt động bình thường
• Đảm bảo mục khởi động là duy nhất: cơ chế khởi động
MCU phải đảm bảo SB được thực thi
• Mã SB và public key không được thay đổi:đây là điều kiện
bất biến

27
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
4.1. Giải pháp đề ra
4.1.4. Áp dụng SB
 Trên STM32 bắt buộc phải thiết lập các option byte vì vậy lựa chọn
Boot from Flash
 Trên 1 số STM32 thì yêu cầu RDP lv2 được kích hoạt:đảm bảo
MCU khởi động trên use Flash

28
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4. Secure boot
4.2. Quy trình triển khai
• Bước 1: Tạo một Bootloader đơn giản.
• Bước 2: Áp dụng RDP 2 + WRP lên vùng nhớ Flash chứa dữ
liệu bootloader.
• Bước 3: Thêm quy trình xác thực vào code của user bootloader.

29
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
4.3 Bootloader.
-Bootloader là chương trình sẽ chạy đầu tiên trong chip khi hoạt động
-Nhiệm vụ của bootlader sẽ kiểm tra điều kiện thực thi 1 trong các
chương trình mỗi khi cpu reset.
-Vị trí của chương trình Bootloader thường được bắt đầu tại địa chỉ đầu
tiên của bộ nhớ Flash, đây là địa chỉ mặc định sẽ được CPU thực thi sau
khi Reset. Với dòng vi điều khiển STM32 thì vị trí bắt đầu của bộ nhớ
Flash là 0x08000000.

Bootloader Firmware 1 Firmware 2


30
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
* Ý tưởng demo: Đầu tiên nạp 3 chương trình vào trong bộ nhớ
Flash của chip STM32F303RE. Chương trình 1 là chương trình
Bootloader bắt đầu tại địa chỉ 0x08000000.Chương trình 2 là
chương trình đèn LED ON/OFF bắt đầu tại địa chỉ 0x08019000.
Chương trình 3 là chương trình đèn LED nhấp nháy bắt đầu tại
đia chỉ 0x0804C800. Và sử dụng LCD để hiển thị chương trình
đang chạy.

31
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
-Firmware A

32
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI

33
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI
-Fimware B

34
II. GIẢI PHÁP ĐỀ RA VÀ QUY TRÌNH TRIỂN KHAI

35
35
Any questions?
Caùc baïn coù thaéc maéc gì môøi caùc
baïn
ñaët caâu hoûi, nhoùm chuùng mình seõ
giaûi ñaùp

36
Caûm ôn moïi ngöôøi ñaõ laéng
nghe
phaàn trình baøy cuûa nhoùm
mình !

Đinh Bá Lương Hoàng Thiên Tân Lê Thị Nguyên Nguyễn Thị Lệ Minh Tuệ

37

You might also like