Professional Documents
Culture Documents
Tieu Chuan An Toan Thong Tin Cho FPGA
Tieu Chuan An Toan Thong Tin Cho FPGA
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021
08
/07
c_
06
Du
y,
ak
STT Người ký Đơn vị Thời gian ký Ý kiến
gd
inh
1 TẬP ĐOÀN 06/07/2021 Đã đóng dấu
an
CÔNG 07:45:56
nM
NGHIỆP -
Th
VIỄN THÔNG
c
ye
Du
QUÂN ĐỘI
gu
2 TÀO ĐỨC Phó Tổng giám đốc - 06/07/2021
ao
THẮNG Thủ trưởng đơn vị - 06:55:07
cT
_N
Ban Giám đốc Tập
do
đoàn - Khối cơ quan
33
iam
Tập đoàn
86
gg
3 NGUYỄN THẾ Trưởng ban Công 05/07/2021
26
NGHĨA nghệ thông tin - Lãnh 18:19:59
on
đạo ban - Ban Công
oT
nghệ thông tin - Khối
Ph
cơ quan Tập đoàn
4 NGUYỄN SƠN Giám đốc - Ban 05/07/2021
21
HẢI Giám đốc - Công ty 12:08:39
An ninh mạng Viettel
7
/20
5:0
6:5
/08
10
23
02
7/2
:13
6/0
08
,0
c_
ky
da
Du
ng
nh
a
Th
Mi
D uc
en
ao
uy
cT
Ng
do
iam
3_
gg
3
86
on
oT
26
Ph
7
21
5:0
/20
6:5
10
/08
/2 02
23
/07
3
06
8:1
,
ky
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 1/17
gd
inh
an
nM
BẢNG THEO DÕI SỬA ĐỔI
Th
c
ye
Du
gu
ao
STT Trang Nội dung sửa đổi Ngày có hiệu lực
cT
_N
1 Biên soạn mới 08/10/2015-08/10/2016
do
33
iam
2 Ban hành lại, nội dung không đổi 14/10/2016- 14/10/2017
86
gg
3 Ban hành lại, nội dung không đổi 30/11/2017- 30/11/2018
26
on
4 Ban hành lại, nội dung không đổi 01/07/2019-01/07/2021
oT
5 Cập nhật tên Tập đoàn và các đơn vị 01/07/2019-01/07/2021
Ph
6 Cập nhật thương hiệu 01/07/2021-01/07/2023
Thay đổi mục 2.2: Môi trường, công cụ phát 01/07/2021-01/07/2023
7 5
triển 21
7
/20
5:0
8 Ban hành lần 5 6:5 01/07/2021-01/07/2023
/08
10
23
02
7/2
6/0
08
,0
ky
ng
inh
ha
Chữ
cT
M
ký
Du
en
ao
uy
cT
Ng
do
m
3_
ia
gg
63
on
8
oT
26
Ph
7
21
5:0
/20
6:5
10
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 2/17
gd
inh
an
nM
TÓM TẮT NỘI DUNG TIÊU CHUẨN
Th
Bản Tiêu chuẩn đưa ra các yêu cầu về an toàn bảo mật cho dòng thiết bị FPGA
c
ye
Du
và có hướng dẫn thực hiện cho 4 mục: Chính sách, Môi trường và công cụ phát triển,
gu
ao
Phần cứng, Thiết kế.
cT
_N
do
Cụ thể:
33
iam
1) Chính sách:
86
gg
o Đơn vị chủ quản phải xây dựng, ban hành và định kỳ cập nhật 6 tháng 1 lần
26
on
danh mục các sản phẩm, module, IP (Intellecture Property) cần bảo vệ và
oT
không cần bảo vệ. Danh mục này phải tham vấn bộ phận ATTT và được phê
Ph
duyệt bởi thủ trưởng đơn vị
21
2) Môi trường và công cụ phát triển
7
/20
o Máy tính phát triển sạch virus, mã độc
5:0
o Phần mềm phát triển chính hãng sạch virus 6:5
/08
10
o Sử dụng bảo mật bitstream đối với bitstream được nạp từ bộ nhớ ngoài
23
02
3) Phần cứng
7/2
:13
o Chọn nền tảng phần cứng hỗ trợ chống Side Channel Attack, chống can thiệp
6/0
trái phép
08
,0
ky
o Vô hiệu hóa chức năng Read-back (nếu có) sau khi hoàn thiện sản phẩm
da
Du
ng
4) Thiết kế
inh
ha
o Khi sử dụng khai báo process trong VHDL và khai báo always trong
cT
M
o Đối với thiết kế state machine, reset nên là tín hiệu đồng bộ
ao
o Khi sử dụng câu lệnh if-elsif hoặc case, tất cả các nhánh cần được định nghĩa
uy
cT
rõ ràng cho tất cả các tổ hợp của đầu vào có thể có. Tất cả các đầu ra cần
Ng
do
m
ia
o Đối với thiết kế state machine, gán tất cả các trạng thái cho tất cả các tổ hợp
gg
63
on
của đầu vào có thể có. Các đầu ra, các chuyển trạng thác, của state machine
8
oT
26
cần được định nghĩa đầy đủ cho cả các trạng thái được dùng và các trạng
Ph
5:0
/20
6:5
10
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 3/17
gd
inh
an
nM
I. Mục đích
Th
Đưa ra các yêu cầu về an toàn thông tin (ATTT) đối với dòng thiết bị FPGA.
c
ye
Du
II. Phạm vi áp dụng
gu
ao
Tiêu chuẩn áp dụng cho các thiết bị FPGA được các đơn vị Khối Cơ quan Tập đoàn,
cT
_N
do
các Tổng Công ty, Công ty, Trung tâm, Học viện, các đơn vị hạch toán phụ thuộc
33
iam
khác và các đơn vị hạch toán độc lập do Tập đoàn sở hữu từ 50% vốn điều lệ trở
86
gg
lên, thiết kế, sản xuất hoặc đầu tư để sử dụng trong mục đích quân sự, cung cấp cho
26
on
khách hàng.
oT
Công ty An ninh mạng căn cứ theo Hợp đồng dịch vụ (SLA) với VTG thực hiện hướng
Ph
dẫn các Công ty Thị trường xây dựng và ban hành áp dụng Tiêu chuẩn này (Nội dung
không được trái với Tiêu chuẩn này).
21
7
Trong vòng 60 ngày kể từ ngày Tiêu chuẩn có hiệu lực, các đơn vị có thiết kế sản xuất
/20
5:0
cung cấp cho khách hàng, ban hành hướng dẫn cụ thể cho các thiết bị FPGA nhưng
6:5
/08
phải đảm bảo tuân thủ Tiêu chuẩn này (nội dung không được trái với Tiêu chuẩn này).
10
23
02
Sau khi ban hành, các đơn vị nêu trên phải gửi một bản về Ban Công nghệ thông tin để
7/2
:13
,0
c_
ky
ha
Du
ao
20555-0001.
uy
cT
do
ia
on
oT
26
5:0
/20
6:5
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 4/17
gd
inh
an
nM
- JTAG (Joint Test Action Group): Là một chức năng phần cứng được sử dụng
Th
để debug.
c
ye
Du
- Bitstream: Đối với các thiết bị FPGA có thể tái lập trình, kiến trúc của chip có
gu
ao
thể được thay đổi được dựa vào binary file được gọi là bitstream.
cT
_N
do
- Chức năng Read-back: Chức năng Read-back của FPGA thông thường được
33
iam
dùng cho debugging, cho phép bitstream được tách ra từ thiết bị FPGA trong
86
gg
thời gian hoạt động.
26
on
- Side Channel Attack: trong kĩ thuật mật mã, Side Channel Attack là kĩ thuật
oT
tấn công dựa trên thông tin lấy được từ các tín hiệu vật lý của thiết bị trong quá
Ph
trình mã hóa, giải mã để tách ra các thông tin bí mật như key mã hóa, giải mã.
- FPGA (Field Programable Gated Array): là loại mạch tích hợp cỡ lớn dùng cấu
21
7
trúc mảng phần tử logic mà người dùng có thể lập trình được.
/20
5:0
- VHDL (VHSIC Hardware Description Language): là ngôn ngữ mô tả phần
6:5
/08
02
- Verilog: là ngôn ngữ mô tả phần cứng được dùng trong thiết kế mô tả các hệ
7/2
:13
- SRAM-based FPGA: là kiến trúc FPGA phổ biến, có dữ liệu cấu hình được
08
,0
lưu ở trong bộ nhớ tĩnh SRAM. Vì SRAM sẽ bị mất dữ liệu khi ngắt nguồn nên
c_
ky
da
ng
- State machine: hay còn gọi là máy trạng thái, là cấu trúc logic chuyển đổi trong
inh
ha
một số hữu hạn các trạng thái. Một state machine sẽ chỉ ở một trạng thái tại 1
cT
M
thời điểm.
Du
en
- Sensitivity list: là danh sách các tín hiệu. Nếu một hay nhiều tín hiệu này thay
ao
uy
cT
do
- Latch: là phần tử lưu trữ dữ liệu trong FPGA. Khi ngắt nguồn cung cấp, dữ liệu
m
3_
sẽ bị mất.
ia
gg
63
- Metastability: trong FPGA, khi ở trạng thái metastable, đầu ra của Flip-Flop
on
8
nằm lơ lửng ở giữa mức logic ‘0’ và ‘1’ trong một khoảng thời gian và sẽ không
oT
26
thể đoán được nó sẽ chuyển về mức logic nào. Nếu đầu ra chuyển trạng thái sai
Ph
- Glitch: trong mạch kĩ thuật số, glitch là xung điện trong khoảng thời gian nhỏ
6:5
10
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 5/17
gd
inh
an
nM
- TRNG (True Random Number Generator): Phương pháp sử dụng các xử lí vật
Th
lí để tạo ra số ngẫu nhiên. Nếu quá trình xử lí vật lí đó không thể điều khiển
c
ye
Du
được thì số ngẫu nhiên được tạo ra sẽ không thể đoán được và không điều khiển
gu
ao
được.
cT
_N
do
- IP (Intellecture Property) core: là các module cung cấp sẵn một số chức năng
33
iam
tương đối phức tạp nào đó. Khi cần sử dụng, người dùng gọi các module này và
86
gg
điều chỉnh các thông số thích hợp cho ứng dụng của mình.
26
on
V. Nội dung:
oT
1. Các yêu cầu an toàn bảo mật cho thiết bị khả trình FPGA
Ph
- Các yêu cầu an toàn bảo mật với thiết bị FPGA kèm theo mức độ yêu cầu (M
= Mandatory: bắt buộc; O = Optional: tùy chọn, khuyến cáo) được trình bày
cụ thể như sau: 21
7
/20
5:0
Mức
6:5
/08
độ yêu
10
cầu
02
(M/O)
7/2
:13
6/0
,0
ky
1 Chính sách M
cần bảo vệ và không cần bảo vệ. Danh mục này
ng
inh
ha
Du
en
ao
cT
do
ia
M
8
và công cụ
oT
2
26
M
21
5:0
6:5
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 6/17
gd
inh
an
nM
Mức
Th
độ yêu
c
ye
Du
STT Nội dung Yêu cầu
cầu
gu
ao
(M/O)
cT
_N
do
3.1. Chọn nền tảng phần cứng hỗ trợ chống Side O
33
iam
Channel Attack, chống can thiệp trái phép.
86
gg
3.2. Vô hiệu hóa JTAG sau khi hoàn thiện sản O
26
on
phẩm. Đối với danh sách các sản phẩm,
oT
module, IP cần bảo vệ, nếu muốn duy trì JTAG
Ph
thì bắt buộc phải đảm bảo hoàn toàn không còn
3 Phần cứng
21
chức năng đọc ngược bitstream cho sản phẩm
7
hoàn thiện.
/20
5:0
6:5
/08
M
02
,0
ky
ha
O
en
cT
do
ia
4 Thiết kế các nhánh cần được định nghĩa rõ ràng cho tất
gg
63
M
cả các tổ hợp của đầu vào có thể có. Tất cả các
on
8
oT
Ph
thể có. Các đầu ra, các chuyển trạng thác, của
21
5:0
M
state machine cần được định nghĩa đầy đủ cho
/20
6:5
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 7/17
gd
inh
an
nM
Mức
Th
độ yêu
c
ye
Du
STT Nội dung Yêu cầu
cầu
gu
ao
(M/O)
cT
_N
do
4.5. Kiểm soát tất cả các đầu vào và đầu ra. Đảm
33
M
iam
bảo có xử lí cho tất cả các giá trị đầu vào.
86
gg
26
on
VI. Giải thích
oT
1.1) Đơn vị chủ quản phải xây dựng, ban hành và định kỳ cập nhật 6 tháng 1 lần
Ph
danh mục các sản phẩm, module, IP (Intellecture Property) cần bảo vệ và
không cần bảo vệ. Danh mục này phải tham vấn bộ phận ATTT và được phê
duyệt bởi thủ trưởng đơn vị. 21
7
/20
5:0
2.1) Máy tính phát triển cần phải sạch virus, mã độc, cách li mạng Internet theo
6:5
/08
quy định, không can thiệp thiết bị lưu trữ di động (USB; ổ cứng ngoài; thẻ
10
23
nhớ,…).
02
7/2
a) Nguy cơ
:13
6/0
,0
b) Giải pháp
c_
ky
Tuân thủ “Tiêu chuẩn an toàn thông tin trên máy tính người dùng cuối” số
da
Du
TC.CNVTQĐ.CNTT.09.
ng
inh
Cách ly vật lý với mạng Internet đối với máy tính phát triển các sản phẩm trong
ha
cT
Du
2.2) Phần mềm phát triển thương mại hoặc phần mềm phát triển mã nguồn mở.
en
ao
cT
a) Nguy cơ
Ng
do
Sử dụng phần mềm bẻ khóa trên mạng và phần mềm nhiễm virus sẽ gây mất an
m
3_
ia
b) Giải pháp
on
8
Sử dụng phần mềm phát triển thương mại hoặc phần mềm phát triển mã nguồn
oT
26
Ph
mở. Không sử dụng phần mềm bẻ khóa (Đối với phần mềm phát triển thương
mại - Tuân thủ quyết định 511/QC-CNVTQĐ-PC Về Quy chế quản lý tài sản trí
tuệ trong Tập đoàn Công nghiệp – Viễn thông Quân đội; Đối với phần mềm phát
7
21
5:0
6:5
mục phần mềm nguồn mở sử dụng trên máy tính người dùng cuối).
10
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 8/17
gd
inh
an
nM
2.3) Sử dụng bảo mật bitstream đối với bitstream được nạp từ bộ nhớ ngoài (Ví
Th
dụ: SRAM-based FPGA). Tất cả các sản phẩm, module, IP nằm trong danh
c
ye
Du
sách cần bảo vệ phải thực hiện yêu cầu này.
gu
ao
a) Nguy cơ
cT
_N
Nếu không có cơ chế bảo vệ bitstream khi bitstream được lưu ở bộ nhớ ngoài thì
do
33
kẻ tấn công có thể thăm dò đường dữ liệu giữa thiết bị FPGA và bộ nhớ ngoài
iam
86
này để tác động vào bitstream và lấy cắp bitstream. Khi có được bitstream không
gg
26
bảo vệ, bằng cách dịch ngược bitstream, kẻ tấn công có thể truy cập vào dữ liệu
on
oT
lưu trên thiết bị FPGA đó, có thể lấy được các key mã hóa bí mật và các thuật
Ph
toán mã hóa chưa được công bố. Nguy cơ khác đó là kẻ tấn công có thể dùng
bitstream đó để sao chép thiết bị.
b) Giải pháp 21
7
/20
5:0
Sử dụng bảo mật bitstream đối với bitstream được nạp từ bộ nhớ ngoài (Ví dụ:
6:5
/08
SRAM-based FPGA). Tất cả các sản phẩm, module, IP nằm trong danh sách cần
10
02
Khuyến nghị nên dùng các thuật toán mã hóa và độ dài của key theo công bố của
7/2
:13
NIST (National Institue of Standards and Technology) có thời hạn an toàn đến
6/0
08
sau năm 2030. (Chi tiết tham khảo mục 5.6 của tài liệu tham khảo số 4).
,0
c_
ky
3.1) Chọn nền tảng phần cứng hỗ trợ chống Side Channel Attack, chống can
da
Du
a) Nguy cơ
inh
ha
Các tấn công vào FPGA phần lớn là dùng phương pháp Side Channel Attack và
cT
M
Du
can thiệp tác động vào phần cứng. Mục tiêu bị tấn công chính của kẻ tấn công là
en
ao
các khối mã hóa, giải mã để lấy các key mã hóa, giải mã bí mật.
uy
cT
b) Giải pháp
Ng
do
Khuyến nghị nên dùng nền tảng phần cứng FPGA có các tính năng hỗ trợ bảo
m
3_
mật như:
ia
gg
63
• Có tính năng tự xóa trắng dữ liệu khi bị can thiệp vật lí trái phép.
• Sử dụng các thuật toán mã hóa mạnh được NIST (National Institue of
7
21
5:0
Standards and Technology) khuyến cáo. (Chi tiết tham khảo mục 5.6 của
/20
6:5
• Hỗ trợ và sử dụng các khối tạo số ngẫu nhiên TRNG (True Random
/08
02
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 9/17
gd
inh
an
nM
3.2) Vô hiệu hóa JTAG sau khi hoàn thiện sản phẩm. Đối với danh sách các sản
Th
phẩm, module, IP cần bảo vệ, nếu muốn duy trì JTAG thì bắt buộc phải đảm
c
ye
Du
bảo hoàn toàn không còn chức năng đọc ngược bitstream cho sản phẩm hoàn
gu
ao
thiện.
cT
_N
a) Nguy cơ
do
33
Chức năng Read-back của FPGA thông thường được dùng cho Debug, cho phép
iam
86
bitstream được đọc ngược ra từ thiết bị FPGA đang hoạt động. Chức năng này
gg
26
thường được sử dụng qua JTAG. Kẻ tấn công có thể lợi dụng JTAG để lấy cắp
on
oT
bitstream.
Ph
b) Giải pháp
Sau khi hoàn thiện sản phẩm, cần vô hiệu hóa JTAG. Nếu muốn duy trì JTAG
21
thì chỉ được giữ chức năng Test và Debug, đảm bảo hoàn toàn không còn chức
7
/20
5:0
năng đọc ngược bitstream cho sản phẩm hoàn thiện.
6:5
/08
3.3) Vô hiệu hóa chức năng Read-back (nếu có) sau khi hoàn thiện sản phẩm.
10
Tất cả các sản phẩm, module, IP nằm trong danh sách cần bảo vệ phải thực
23
02
a) Nguy cơ
6/0
08
Chức năng Read-back của FPGA thông thường được dùng cho debug, cho phép
,0
c_
ky
bitstream được đọc ngược ra từ thiết bị FPGA đang hoạt động. Kẻ tấn công lợi
da
Du
b) Giải pháp
inh
ha
Sau khi hoàn thiện sản phẩm, phải vô hiệu hóa chức năng Read-back (nếu có).
cT
M
Du
Tuân thủ yêu cầu 3.2 về việc vô hiệu hóa chức năng đọc ngược bitstream từ
en
ao
JTAG.
uy
cT
4.1) Khi sử dụng khai báo process trong VHDL và khai báo always trong Verilog,
Ng
do
a) Nguy cơ
ia
gg
63
Cùng một khối code logic nhưng khác nhau về danh sách tín hiệu trong sensitivity
on
8
b) Giải pháp
Ph
Cần khai báo rõ ràng để đảm bảo mạch tổng hợp đúng như thiết kế dự tính.
Ví dụ sensitivity list trong khai báo process trong VHDL dưới đây:
7
21
5:0
/20
6:5
10
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 10/17
gd
inh
an
nM
-
Th
Khai báo tất cả input vào sensitivity list sẽ tạo mạch logic không có
latch. Bất cứ khi nào sig_a, sig_b, sel thay đổi giá trị, Q sẽ được cập
c
ye
Du
nhật.
gu
ao
cT
process(sig_a, sig_b, sel) -- sensitivity list
_N
begin
do
33
if(sel = '1') then
iam
Q <= sig_a;
86
gg
else
26
on
Q <= sig_b;
oT
end if;
end process;
Ph
-
21
Không khai báo sig_b vào sensitivity list sẽ tạo mạch logic có latch.
7
/20
Khi sig_b thay đổi giá trị nhưng sig_a hoặc sel=’0’ không thay đổi, Q
5:0
vẫn giữ giá trị của sig_b cũ.(Cần có latch để giữ giá trị cũ)
6:5
/08
10
02
begin
7/2
:13
Q <= sig_a;
08
else
,0
Q <= sig_b;
c_
ky
end if;
da
Du
end process;
ng
inh
ha
4.2) Đối với thiết kế state machine, reset nên là tín hiệu đồng bộ. Nếu reset là tín
cT
M
Du
hiệu bên ngoài hoặc đến từ một vùng có clock khác thì cần được đồng bộ lại
en
để tránh metastability.
ao
uy
cT
a) Nguy cơ
Ng
do
Ví dụ, khi muốn sử dụng reset để đưa state machine về trạng thái reset. Nếu reset
m
3_
đến từ vùng có clock khác, hoặc là tín hiệu bên ngoài không được đồng bộ, thì
ia
gg
63
có khả năng cao gây ra metastability cho các Flip Flop giữ trạng thái của state
on
8
machine. Khiến đầu ra của các Flip Flop ở trạng thái metastable state. Lúc đó
oT
26
state machine sẽ chuyển tới trạng thái nào đó không kiểm soát được. Nếu state
Ph
machine chuyển tới trạng thái cấm (trạng thái bảo mật, cấm truy cập) thì gây ra
mất an toàn bảo mật.
7
b) Giải pháp
21
5:0
Khi thiết kế state machine, nên sử dụng tín hiệu reset đồng bộ. Dưới đây là ví dụ
/20
6:5
02
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 11/17
gd
inh
an
nM
Th
process(CLK) always @(posedge CLK)
c
ye
Du
begin begin
if(CLK’event and CLK = ’1’) if(RST)
gu
ao
then Q = 1'b0;
cT
_N
if(RST = '1') then else
do
Q <= '0'; Q = D;
33
iam
else end
86
Q <= D;
gg
26
end if;
on
end if;
oT
end process;
Ph
-- VHDL asynchronous reset // Verilog asynchronous reset
process(CLK,RST) 21
always @(posedge CLK or posedge RST)
7
/20
5:0
begin begin
if(RST = '1') then 6:5
if(RST)
/08
then Q = D;
7/2
:13
Q <= D; end
6/0
end if;
08
,0
end process;
c_
ky
4.3) Khi sử dụng câu lệnh if-elsif hoặc case, tất cả các nhánh cần được định nghĩa
da
Du
rõ ràng cho tất cả các tổ hợp của đầu vào có thể có. Tất cả các đầu ra cần
ng
inh
ha
a) Nguy cơ
M
Du
Nếu không định nghĩa rõ ràng hoàn toàn câu lệnh if-elsif hoặc case thì có thể làm
en
ao
cho phần mềm tổng hợp tạo ra mạch logic thực tế sai khác với ý định thiết kế ban
uy
cT
đầu, có thể tạo lỗ hổng mất an toàn thông tin cho thiết bị.
Ng
do
b) Giải pháp
m
3_
ia
Sử dụng câu lệnh if-elsif hoặc case, tất cả các nhánh cần được định nghĩa rõ ràng
gg
63
cho tất cả các tổ hợp của đầu vào có thể có. Tất cả các đầu ra cần được định nghĩa
on
8
oT
26
5:0
cần được định nghĩa đầy đủ cho cả các trạng thái được dùng và các trạng
/20
6:5
a) Nguy cơ
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 12/17
gd
inh
an
nM
Hầu hết các phần mềm tổng hợp sẽ bỏ qua các trạng thái không được dùng, dẫn
Th
đến state machine sau khi được tổng hợp có thể nhảy vào trạng thái không xác
c
ye
Du
định và bị kẹt ở đó. Nguy cơ khác nữa là logic có thể bị thay đổi so với thiết kế
gu
ao
chủ định ban đầu, dẫn tới có thể tồn tại lỗ hổng an ninh như được trình bày qua
cT
_N
ví dụ dưới đây.
do
33
Ví dụ hình 1, thiết kế mô tả 1 state machine gồm 3 trạng thái (00, 01, 10).
iam
86
gg
26
on
0/1
oT
00 01
Ph
1/0 1/0
21
7
/20
5:0
10
6:5
/08
10
23
02
0/0
7/2
:13
6/0
,0
c_
Trong bảng 1 mô tả trạng thái của state machine, A và B mô tả trạng thái hiện
ky
da
Du
tại. Đầu vào x. A’ và B’ mô tả trạng thái tiếp theo. Nếu bắt đầu ở trạng thái 00
ng
(A=0, B=0), đầu vào x = 0 thì trạng thái tiếp theo sẽ là 01 (A’=0, B’=1), đầu ra
inh
ha
= 1.
cT
M
Du
ao
A B X A’ B’
uy
cT
0 0 0 0 1
Ng
do
0 0 1 1 0
m
3_
ia
0 1 0 _ _
gg
63
on
0 1 1 1 0
8
oT
26
1 0 0 1 0
Ph
1 0 1 _ _
Trong thiết kế, nếu trạng thái hiện tại 01 (A = 0, B = 1), nếu đầu vào x = 0 thì
7
21
5:0
state machine không quan tâm giá trị đầu ra và trạng thái tiếp theo là gì (A’=
/20
6:5
don’t care, B’ = don’t care). Nhưng trong mạch sau khi được tổng hợp (như hình
10
/08
2) thì không có giá trị don’t care. Nếu trạng thái hiện tại 01 (A=0, B=1), nếu đầu
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 13/17
gd
inh
an
nM
vào x = 0 thì mạch sẽ tính được trạng thái xác định tiếp theo mà state machine sẽ
Th
chuyển tới (trong trường hợp này là trạng thái 00).
c
ye
Du
gu
ao
cT
_N
do
33
iam
X
86
gg
Q
26
on
A
oT
Ph
Combinational Q’
logic
21
7
/20
5:0
6:5
/08
Q
10
23
B
02
7/2
Clk
:13
Q’
6/0
08
,0
Hình 2. Mạch của state machine sau khi được tổng hợp.
c_
ky
da
Du
Xét trường hợp Flip Flop A và B có giá trị A = 1, B = 1, tương ứng với trạng thái
ng
hiện tại của state machine là 11, trạng thái này không được mô tả trong thiết kế.
inh
ha
cT
Sau khi phân tích logic của mạch thì ta sẽ có được giá trị của A’ và B’ khi trạng
M
Du
ao
Bảng 2. Bảng chân lí của state machine sau khi phân tích logic của mạch.
uy
cT
Ng
do
A B X A’ B’
m
3_
0 0 0 0 1
ia
gg
63
0 0 1 1 0
on
8
0 1 0 0 0
oT
26
0 1 1 1 0
Ph
1 0 0 1 0
1 0 1 0 0
7
1 1 0 1 0
21
5:0
1 1 1 0 0
/20
6:5
10
/08
Giá trị trong bảng này chính là state machine gồm 4 trạng thái như trong hình vẽ
02
7/2
23
dưới. Từ thiết kế state machine ban đầu không mô tả đầy đủ các trạng thái, sau
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 14/17
gd
inh
an
nM
khi tổng hợp qua phần mềm tổng hợp, ta nhận được một state machine khác
Th
c
không khớp với thiết kế dự định (Hình 3). State machine sau khi được tổng hợp
ye
Du
này chứa lỗ hổng an ninh.
gu
ao
cT
Ví dụ trong thiết kế state machine dự định ban đầu, trạng thái 00 là trạng thái bảo
_N
do
mật bị giới hạn truy cập, các trạng thái khác không thể chuyển về trạng thái 00
33
iam
cho dù nhập tất cả các giá trị đầu vào x. Nhưng với state machine được tổng hợp
86
gg
26
thì khi ở trạng thái 01, 10, 11 đều có thể chuyển về trạng thái 00 (biểu thị qua
on
oT
đường nét đứt). Trạng thái 00 không còn bảo mật, không còn giới hạn truy cập
Ph
nữa.
21
7
/20
5:0
0/1
0/1
6:5
/08
00 01
10
0/1
23
00 01
02
1/0
7/2
1/0
:13
1/0 1/0
6/0
1/0 1/0
08
,0
10
c_
ky
11 10
da
Du
0/1
ng
0/0 0/0
inh
ha
Thiết kế dự định ban đầu Thiết kế thực tế sau khi tổng hợp mạch
cT
M
Du
en
Hình 3. So sánh state machine của thiết kế dự định ban đầu và sau khi tổng hợp mạch.
ao
uy
cT
Nếu thiết kế state machine không an toàn, kẻ tấn công có thể tìm ra lỗ hổng bằng
Ng
do
cách dò tìm ở các trạng thái ngẫu nhiên với đầu vào ngẫu nhiên. Ở ví dụ trên nếu
m
3_
ia
on
b) Giải pháp
8
oT
26
Đối với thiết kế state machine, gán tất cả các trạng thái cho tất cả các tổ hợp của
Ph
đầu vào có thể có. Các đầu ra, các chuyển trạng thác, của state machine cần được
định nghĩa đầy đủ cho cả các trạng thái được dùng và các trạng thái không được
dùng. Dưới đây là ví dụ về thiết kế state machine an toàn.
7
21
5:0
--VHDL state machine with 4 states, two inputs and three outputs using
/20
6:5
if-elsif statements.
10
/08
02
process(CLK)
7/2
23
begin
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 15/17
gd
inh
an
nM
if(CLK'event and CLK = '1') then
Th
if(RST = '1') then -- synchronous reset
c
ye
Du
O <= "000";
STATE <= "00";
gu
ao
elsif(STATE = "00")then -- state zero
cT
_N
if(IN1 = "00") then
do
O <= "000";
33
iam
STATE <= "00";
86
elsif(IN1 = "01") then
gg
26
O <= "111";
on
STATE <= "01";
oT
elsif(IN1 = "10") then
Ph
O <= "101";
STATE <= "00";
21
else
7
O <= "001";
/20
5:0
STATE <= "11";
6:5
/08
end if;
10
elsif(STATE = "01") then --state one
23
O <= "000";
7/2
:13
,0
O <= "110";
c_
ky
O <= "001";
inh
ha
else
M
Du
O <= "110";
en
end if;
uy
cT
do
O <= "000";
3_
ia
O <= "101";
oT
26
5:0
O <= "110";
/20
6:5
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 16/17
gd
inh
an
nM
O <= "001";
Th
STATE <= "11";
c
ye
Du
elsif(IN1 = "01") then
O <= "100";
gu
ao
STATE <= "11";
cT
_N
elsif(IN1 = "10") then
do
O <= "001";
33
iam
STATE <= "00";
86
else
gg
26
O <= "101";
on
STATE <= "01";
oT
end if;
Ph
end if;
end if;
21
end process;
7
/20
5:0
4.5) Kiểm soát toàn bộ các đầu vào và đầu ra. Đảm bảo có xử lí cho tất cả các giá
6:5
/08
a) Nguy cơ
02
7/2
Ví dụ về thiết kế bộ encoder có 3 bit đầu vào (x, y, z) và 2 bit đầu ra (a, b) với
:13
6/0
,0
ky
da
Du
x y Z a b
ng
inh
0 0 1 0 1
ha
cT
M
0 1 0 1 0
Du
en
1 0 0 1 1
ao
uy
cT
Ng
do
Với thiết kế tối ưu về tài nguyên và tốc độ, ta có đầu ra mạch logic:
m
3_
▪ a = z’
ia
gg
63
▪ b = y’
on
8
Nhưng xét về an toàn và bảo mật thì thiết kế này có vấn đề như sau:
Ph
vào xyz = 100 (được bảo vệ) tương ứng đầu ra ab = 11 thì hệ thống sẽ mở
21
5:0
khóa. Kẻ tấn công có thể dùng đường backdoor xyz =000 tương ứng đầu ra
/20
6:5
ab = 11 để mở khóa hệ thống.
10
/08
• Khi không kiểm soát được đầu ra, có thể làm cho các khối nối tiếp phía sau
02
7/2
23
hoạt động sai. Trong ví dụ thiết kế trên, với đầu vào xyz = 011 hoặc xyz =
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm
/
23
Số và ký hiệu: TC.CNVTQĐ.CNTT.28.15
TẬP ĐOÀN CÔNG NGHIỆP VIỄN THÔNG Mã hiệu:
:1 3
Thời gian ký: 06/07/2021 07:45:56 +07:00
Ngày ban hành: 06/07/2021 QUÂN ĐỘI TC.CNVTQĐ.CNTT.28
08
Ngày có hiệu lực: 01/07/2021
/07
c_
06
TIÊU CHUẨN AN TOÀN THÔNG TIN Ngày hết hiệu lực: 01/07/2023
Du
y,
CHO THIẾT BỊ FPGA Lần ban hành: 05
ak
Trang: 17/17
gd
inh
an
nM
111 thì đầu ra ab = 00. Đầu ra ab = 00 không được mô tả trong thiết kế. Các
Th
khối thiết kế khác có thể hoạt động sai nếu sử dụng ab làm đầu vào.
c
ye
Du
b) Giải pháp
gu
ao
Kiểm soát toàn bộ các đầu vào và đầu ra. Đảm bảo có xử lí cho tất cả các giá trị
cT
_N
đầu vào.
do
33
Ví dụ (như mục 4.5.a) thiết kế bộ encoder có 3 bit đầu vào (x, y, z) và 2 bit đầu
iam
86
ra (a, b), ta phải mô tả đầu ra ab tương ứng với tất các các giá trị đầu vào xyz
gg
26
(bảng 4).
on
oT
Bảng 4. Bảng mô tả logic của bộ encoder 3 bit.
Ph
x y Z a b
21
7
/20
0 0 0 0 0
5:0
0 0 1 6:5
0 1
/08
10
0 1 0 1 0
23
02
0 1 1 0 0
7/2
:13
6/0
1 0 0 1 1
08
,0
1 0 1 0 0
c_
ky
da
Du
1 1 0 0 0
ng
1 1 1 0 0
inh
ha
cT
M
Du
ao
▪ a=𝑥𝑦𝑧+𝑥𝑦𝑧
uy
cT
▪ b=𝑥𝑦𝑧 +𝑥𝑦𝑧
Ng
do
m
3_
ia
gg
63
on
8
oT
26
Ph
7
21
5:0
/20
6:5
10
/08
02
7/2
23
6/0
3
0
8:1
y,
k
_0
da
Tài liệu này thuộc sở hữu của Viettel. Việc phát tán, sử dụng trái phép bị nghiêm cấm