You are on page 1of 18

/

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

BIÊN SOẠN THẨM ĐỊNH PHÊ DUYỆT


:13

6/0
08

,0

CÔNG TY AN NINH BAN CÔNG NGHỆ KT.TỔNG GIÁM ĐỐC


c_

ky

MẠNG VIETTEL THÔNG TIN PHÓ TỔNG GIÁM ĐỐC


da
Du

ng
inh

ha

Chữ
cT
M


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

o Vô hiệu hóa JTAG sau khi hoàn thiện sản phẩm


c_

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

Verilog, sensitivity list cần được thiết lập rõ ràng


Du
en

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

được định nghĩa cho mỗi nhánh


3_

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

thái không được dùng


o Kiểm soát tất cả các đầu vào và đầu ra. Đảm bảo có xử lí cho tất cả các giá
trị đầu vào
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: 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

theo dõi, quản lý.


6/0

III. Tài liệu tham khảo


08

,0
c_

ky

STT Tên tài liệu


da
Du

1 Office of Nuclear Regulatory Research (2010). Review


ng
inh

ha

Guidelines for Field-Programmable Gate Arrays in Nuclear


cT

Power Plant Safety Systems (NUREG/CR-7006, ORNL/TM-


M

Du

2009/20), U.S. Nuclear Regulatory Commission, Washington DC


en

ao

20555-0001.
uy

cT

2 Maryland University. Vulnerabilities in Digital Logic Design.


Ng

do

[online] Avaiable at: https://class.coursera.org/hardwaresec-


m
3_

ia

006/lecture [Accessed at 20 September 2015].


gg
63

on

3 B. Badrignans et al. (eds.), Security Trends for FPGAs,


8

oT
26

DOI 10.1007/978-94-007-1338-3_7, © Springer


Ph

Science+Business Media B.V. 2011.


4 NIST Special Publication 800-57, Part 1, Recommendation for
Key Management: Part 1: General (Revision 3), July 2012.
7
21

5:0
/20

6:5

IV. Định nghĩa và thuật ngữ


10
/08

- STP (Signaling Transfer Point): Điểm trung chuyển báo hiệ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: 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

cứng được dùng trong thiết kế mô tả các hệ thống số như là FPGA.


10
23

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

thống số như là FPGA.


6/0

- 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

FPGA phải được cấu hình mỗi khi khởi động.


Du

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

đổi giá trị thì process được kích hoạt.


Ng

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

logic thì hệ thống hoạt động sai.


- Phần mềm tổng hợp (Synthesis software): phần mềm chuyển đổi thiết kế từ
7
21

mức RTL sang mức cổng logic.


5:0
/20

- Glitch: trong mạch kĩ thuật số, glitch là xung điện trong khoảng thời gian nhỏ
6:5
10

thường do lỗi và thiết kế gây ra.


/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: 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

STT Nội dung Yêu cầu


23

cầu
02

(M/O)
7/2
:13

6/0

1.1. Đơn vị chủ quản phải xây dựng, ban hành và


08

,0

định kỳ cập nhật 6 tháng 1 lần danh mục các


c_

ky

sản phẩm, module, IP (Intellecture Property)


da
Du

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

phải tham vấn bộ phận ATTT và được phê


cT

duyệt bởi thủ trưởng đơn vị.


M

Du
en

ao

2.1. Máy tính phát triển sạch virus, mã độc, cách li


uy

cT

mạng internet theo quy định, không cho cắm M


Ng

do

thiết bị lưu trữ USB.


m
3_

ia

2.2. Phần mềm phát triển mã nguồn mở hoặc phần


gg
63

Môi trường mềm phát triển thương mại. Không sử dụng


on

M
8

và công cụ
oT

2
26

phần mềm bẻ khóa.


phát triển
Ph

2.3. Sử dụng bảo mật bitstream đối với bitstream


được nạp từ bộ nhớ ngoài (Ví dụ: SRAM-
based FPGA). Tất cả các sản phẩm, module,
7

M
21

5:0

IP nằm trong danh sách cần bảo vệ phải thực


/20

6:5

hiện yêu cầu này.


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: 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

3.3. Vô hiệu hóa chức năng Read-back (nếu có) sau


10

khi hoàn thiện sản phẩm. Tất cả các sản phẩm,


23

M
02

module, IP nằm trong danh sách cần bảo vệ


7/2
:13

phải thực hiện yêu cầu này.


6/0
08

,0

4.1. Khi sử dụng khai báo process trong VHDL và


c_

ky

khai báo always trong Verilog, sensitivity list M


da
Du

cần được thiết lập rõ ràng.


ng
inh

ha

4.2. Đối với thiết kế state machine, reset nên là tín


cT
M

hiệu đồng bộ. Nếu reset là tín hiệu bên ngoài


Du

O
en

hoặc đến từ một vùng có clock khác thì cần


ao
uy

cT

được đồng bộ lại để tránh metastability.


Ng

do

4.3. Khi sử dụng câu lệnh if-elsif hoặc case, tất cả


m
3_

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

đầu ra cần được định nghĩa cho mỗi nhánh.


26

Ph

4.4. Đố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 đầu vào có
7

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

cả các trạng thái được dùng và các trạng thái


10
/08

không được dùng.


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: 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

Gây mất an toàn bảo mật, an toàn thông tin.


08

,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

danh mục cần bảo vệ.


M

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

Không sử dụng phần mềm bẻ khóa không kiểm soát.


uy

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

toàn bảo mật, an toàn thông tin.


gg
63

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

triển mã nguồn mở - Tuân thủ quy định QĐ 3591/QĐ-CNVTQĐ-CNTT Về danh


/20

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

bảo vệ phải thực hiện yêu cầu này.


23

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

thiệp trái phép.


ng

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

• Chống DPA (Differential Power Analysis).


on
8

• Chống Timing Attack.


oT
26

• Chống can thiệp vật lí trái phép.


Ph

• 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

tài liệu tham khảo số 4).


10

• Hỗ trợ và sử dụng các khối tạo số ngẫu nhiên TRNG (True Random
/08

02

Number Generator) cho khối mã hóa, giải mã.


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: 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

hiện yêu cầu này.


7/2
:13

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

dụng chức năng này để lấy cắp bitstream.


ng

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

sensitivity list cần được thiết lập rõ ràng.


m
3_

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

list sẽ có thể tổng hợp ra các mạch khác nhau.


oT
26

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

process(sig_a, sel) -- sensitivity list


23

02

begin
7/2
:13

if(sel = '1') then


6/0

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

mô tả reset đồng bộ, reset không đồng bộ.


10
/08

02

-- VHDL synchronous reset // Verilog Synchorous reset


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: 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

Q <= '0'; Q = 1'b0;


10
23

elsif(CLK’event and CLK =’1’) else


02

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

được định nghĩa cho mỗi nhánh.


cT

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

cho mỗi nhánh


Ph

Ví dụ tham khảo mục 4.4.


4.4) Đố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 đầu vào có thể có. Các đầu ra, các chuyển trạng thác, của state machine
7
21

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

thái không được dùng.


10

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

Hình 1. State machine gồm 3 trạng thái (00, 01, 10).


08

,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

Bảng 1. Bảng chân lí của state machine.


en

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

thái hiện tại 11 (như trong bảng 2).


en

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

trạng thái mới là 00 thì kẻ tấn công đã thành công.


gg
63

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

if(IN1 ="00") then


02

O <= "000";
7/2
:13

STATE <= "00";


6/0

elsif(IN1 = "01") then


08

,0

O <= "110";
c_

ky

STATE <= "01";


da
Du

elsif(IN1 = "10") then


ng

O <= "001";
inh

ha

STATE <= "10";


cT

else
M

Du

O <= "110";
en

STATE <= "11";


ao

end if;
uy

cT

elsif(STATE = "10") then --state two


Ng

do

if(IN1 ="00") then


m

O <= "000";
3_

ia

STATE <= "10";


gg
63

elsif(IN1 = "01") then


on
8

O <= "101";
oT
26

STATE <= "11";


Ph

elsif(IN1 = "10") then


O <= "010";
STATE <= "00";
else
7
21

5:0

O <= "110";
/20

6:5

STATE <= "01";


end if;
10
/08

elsif(STATE = "11") then --state three


02

if(IN1 ="00") then


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: 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

trị đầu vào.


10
23

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

yêu cầu nguyên lí như trong bảng 3.


08

,0

Bảng 3. Bảng mô tả logic của bộ encoder 3 bit.


c_

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

đáp ứng được về yêu cầu nguyên lí như trong bảng.


oT
26

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ới đầu vào x = 0, y = 0, z = 0, đầu ra a = 1, b = 1. Đây chính là backdoor


của đầu vào xyz = 100. Ví dụ nếu dùng thiết kế này cho khóa an ninh, đầu
7

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

Khi đó ta có đầu ra:


en

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

You might also like