1. Trang chủ
  2. » Luận Văn - Báo Cáo

Áp dụng kỹ thuật mã hóa và xác thực trong xây dựng hệ thống kiểm soát truy cập

105 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 5,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÊN ĐỀ TÀI: Áp dụng kỹ thuật mã hóa và xác thực trong xây dựng hệ thống kiểm soát truy cập – Applying encryption and authentication techniques in building access control system NHIỆM VỤ

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN TRẦN THANH LÂM

ÁP DỤNG KỸ THUẬT MÃ HÓA VÀ XÁC THỰC TRONG XÂY DỰNG HỆ THỐNG KIỂM SOÁT TRUY CẬP

Chuyên ngành: Kỹ thuật Viễn Thông

Mã số: 60520208

LUẬN VĂN THẠC SĨ

TP.HỒ CHÍ MINH, tháng 10 năm 2017

Trang 2

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Các bộ hướng dẫn khoa học: TS Lưu Thanh Trà

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 GS.TS Lê Tiến Thường

2 TS Huỳnh Phú Minh Cường

3 PGS.TS Hồ Văn Khương

4 TS Mai Linh

5 PGS.TS Võ Nguyễn Quốc Bảo

Xác nhận của Chủ tích hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có)

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Học tên học viên: Nguyễn Trần Thanh Lâm MSHV: 1570635 Ngày, tháng, năm sinh: 21/10/1992 Nơi sinh: Tiền Giang

I TÊN ĐỀ TÀI: Áp dụng kỹ thuật mã hóa và xác thực trong xây dựng hệ thống kiểm

soát truy cập – Applying encryption and authentication techniques in building access control system

NHIỆM VỤ VÀ NỘI DUNG: tìm hiểu các kỹ thuật mã hóa và xác thực, xây dựng

hệ thống kiểm soát truy cập (access control) với độ bảo mật cao, phần mềm phía người dùng triển khai trên điện thoại thông minh (hệ điều hành Android)

II NGÀY GIAO NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài): 10/07/2017

III NGÀY HOÀN THÀNH NHIỆM VỤ (Ghi theo trong QĐ giao đề tài):

TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

(Họ tên và chữ ký)

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành đến Thầy hướng dẫn, Tiến sĩ Lưu Thanh Trà, đã tận tình hướng dẫn tôi trong quá trình thực hiện Luận văn tốt nghiệp Thầy đã khéo léo đặt ra những vấn đề thiết thực cần giải quyết, những câu hỏi mang tính gợi mở giúp tôi vượt qua khó khăn trong quá trình thực hiện đề tài

Tôi xin gửi lời cảm ơn đến các Thầy cô giảng viên đã truyền đạt những kiến thức hữu ích trong suốt quá trình học tập, nghiên cứu và rèn luyện tại trường Đại học Bách Khoa

Bên cạnh đó, tôi cũng gửi lời cảm ơn đến gia đình và bạn bè đã động viên và

cổ vũ tinh thần trong suốt thời gian học tập

Trang 5

TÓM TẮT LUẬN VĂN

Ngày nay, khi công nghệ ngày càng phát triển, cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ, thông tin được xem là một nguồn tài nguyên quý giá, vì vậy việc mã hóa, xác thực, kiểm soát truy cập, giữ an toàn thông tin là một yêu cầu thiết yếu Các ứng dụng xác thực truy cập trên thị trường hiện nay có nhiều loại và có thể phân chia như sau:

- Xác thực truyền thống, bằng những thông tin người dùng biết: chẳng hạn như cặp định danh – mật khẩu (username – password), số định danh cá nhân (personal identification number – PIN),…

- Xác thực bằng các loại thẻ thông minh (smart card) chứa dãy ký tự để xác thực truy cập (RFID tag),…

- Nhận dạng bằng sinh trắc học (biometric identifier): chẳng hạn như dấu vân tay, mẫu võng mạc mắt, giọng nói, gương mặt,…

Tuy nhiên, cả ba phương pháp trên đều tồn tại những lỗ hổng bảo mật và gây nhiều bất tiện đối với người dùng Từ các vấn đề nêu trên, đề tài này tập trung nghiên cứu xây dựng một hệ thống xác thực để kiểm soát việc truy cập có khả năng bảo mật cao hơn, an toàn hơn so với các hệ thống hiện tại Hệ thống kiểm soát truy cập này được xây dựng với ứng dụng phía người dùng hoạt động trên điện thoại thông minh nhằm đem lại sự tiện dụng tối đa

Trang 6

ABSTRACTS

Nowadays, as the technology is more and more developing, the 4.0 industrial revolution is drastically going on, the information is a valuable resource; so encryption, authentication, access control, information security is an essential requirement Today, there are many types of access control applications on the market and they can be divided as follows:

- Traditional authentication: such as username – password, personal identification number (PIN)…

- Authentication by smart cards: RFID tag…

- Biometric identifier: such as fingerprints, iris, voice, face…

However, all three above methods have vulnerabilities and inconvenience to users From the above issues, this thesis focuses on building an authentication system having higher security and safer are than existing system to control access This access control systems are built on the basis that the user application works on smart phones to bring maximum convenience

Trang 7

Mục lục

Chương 1: Giới thiệu tổng quan 1

1.1Lý do chọn đề tài 1

1.2Các lỗ hổng bảo mật của các hệ thống access control hiện nay 2

1.2.1Hệ thống xác thực truyền thống 2

1.2.2Hệ thống xác thực bằng smart card 2

1.2.3Hệ thống xác thực bằng đặc điểm sinh trắc học 6

1.2.4Kết luận……… 8

1.3Yêu cầu đối với hệ thống mới 8

1.4Đối tượng và phạm vi nghiên cứu 9

1.4.1Đối tượng……… 9

1.4.2Phạm vi……… 10

Chương 2: Tổng quan về mã hóa 11

2.1Lý do chọn mã hóa 11

2.2Mã hóa đối xứng 11

2.2.1Giới thiệu……… 11

2.2.2Các yêu cầu của thuật toán mã hóa đối xứng 12

2.3Mã hóa bất đối xứng 12

2.3.1Giới thiệu……… 12

2.3.2Mô hình mã hóa bất đối xứng 13

2.3.3Ứng dụng của mã hóa bất đối xứng 17

2.4Kết luận……… 17

Chương 3: Thuật toán mã hóa RSA và ECC 19

3.1Thuật toán mã hóa RSA 19

3.1.1Giới thiệu……… 19

Trang 8

3.1.2Độ phổ biến và độ an toàn của RSA 19

3.1.3Một số điểm yếu khác 20

3.2Thuật toán mã hóa ECC 21

3.2.1Giới thiệu……… 21

3.2.2Độ phổ biến và an toàn của ECC: 22

3.3So sánh thuật toán RSA và ECC 22

3.3.1Về lý thuyết 22

3.3.2Về thực tế……… 24

3.3.3Lập trình ứng dụng 31

3.3.4Kết luận……… 32

Chương 4: Chứng thực khóa công khai (Certificate Authority - CA) 34

4.1Giới thiệu……… 34

4.2Các loại chứng nhận số 34

4.2.1Chứng nhận X.509 34

4.2.2Chứng nhận chất lượng 37

4.2.3Chứng nhận thuộc tính 37

4.2.4Kết luận……… 38

4.3Quá trình cấp chứng nhận số 38

4.3.1Yêu cầu cấp chứng nhận theo chuẩn PKCS #10 38

4.3.2Quá trình cấp chứng nhận số 39

4.4Triển khai thực tế quá trình cấp chứng nhận số 40

4.4.1Certificate signing request (CSR) 40

4.4.2X.509 certificate 42

Chương 5: Tổng quan QR code 45

Trang 9

5.1Giới thiệu……… 45

5.2Cấu trúc QR code 46

5.3Khả năng lưu trữ - sửa lỗi 47

5.4So sánh QR code với các loại 2D code khác 48

5.5So sánh QR code và NFC 48

5.5.1Các nguy cơ của NFC 48

5.5.2Tính tiện dụng của QR code so với NFC 49

5.6Kết luận……… 50

Chương 6: Hình thức tấn công phát lại (Replay attack) 52

6.1Giới thiệu……… 52

6.1.1Kịch bản tấn công 52

6.1.2Định nghĩa……… 52

6.1.3Liên hệ thực tế hệ thống 53

6.2Các phương pháp chống Replay attack: 54

6.2.1Dùng số định danh 54

6.2.2Dùng timestamp 54

6.2.3Dùng cơ chế challenge/ response 55

6.3Kết luận……… 55

Chương 7: Xây dựng hệ thống Access Control 57

7.1Mô hình hệ thống 57

7.1.1Mô hình thực tế 57

7.1.2Thuyết minh hệ thống 57

7.2Lưu đồ giải thuật 59

7.2.1Phần mềm access control 59

Trang 10

7.2.2Module điều khiển access control (Raspberry Pi) 62

7.2.3CA server……… 64

7.3Lập trình các module 65

7.3.1Phần mềm access control 65

7.3.2Module điều khiển access control (Raspberry Pi) 67

7.3.3CA server……… 68

7.4Triển khai thực tế 69

7.4.1Phần mềm phía smartphone người dùng 69

7.4.2CA & web server 72

7.5So sánh hệ thống Access control mới và các hệ thống cũ 74

Chương 8: Kết luận và hướng phát triển 75

8.1Kết luận……… 75

8.2Hướng phát triển 75

8.2.1Tích hợp hệ thống Smart – Auto Parking 75

8.2.2Các hướng phát triển khác 83

9 Phụ lục OpenALPR 83

9.1Giới thiệu……… 83

9.2Nhận diện biển số xe bằng openALPR 84

9.2.1Biển số xe máy 84

9.2.2Biến số xe ô tô 85

9.3Kết luận……… 87

10 DANH MỤC CÔNG TRÌNH KHOA HỌC 87

11 TÀI LIỆU THAM KHẢO 88

Trang 11

DANH SÁCH HÌNH VẼ

Hình 1.1: Các điểm có nguy cơ bị tấn công trong hệ thống RFID [4] 3

Hình 1.2: tấn công nghe trộm trong hệ thống RFID [4] 4

Hình 1.3: tấn công MITM trong hệ thống RFID [4] 5

Hình 1.4: các điểm tấn công vào hệ thống sinh trắc học [6] 7

Hình 2.1: mô hình mã hóa đối xứng [9] 11

Hình 2.2: mô hình mã hóa dùng public key [9] 14

Hình 2.3: mô hình mã hóa dùng private key [9] 15

Hình 2.4: mô hình kết hợp [9] 16

Hình 3.1: fault-based attack RSA [15] 21

Hình 3.2: biểu đồ so sánh kích thước khóa RSA và ECC ở cùng mức độ bảo mật [19] 23

Hình 3.3: bảng so sánh mức độ phổ biến của hệ điều hành di động [22] 24

Hình 3.4: triển khai thuật toán RSA-3072 trên Samsung Galaxy S8 26

Hình 3.5: triển khai thuật toán ECC-256 trên Samsung Galaxy S8 27

Hình 3.6: so sánh hiệu năng RSA-3072 và ECC-256 trên Samsung Galaxy S8 28

Hình 3.7: triển khai thuật toán RSA-3072 trên Samsung Galaxy J3 29

Hình 3.8: triển khai thuật toán ECC-256 trên Samsung Galaxy J3 30

Hình 3.9: so sánh hiệu năng RSA-3072 và ECC-256 trên Samsung Galaxy J3 31

Hình 3.10: tổng thời gian thực hiện t/bình giữa RSA-3072 và ECC-256 (Galaxy S8) 33

Hình 3.11: tổng thời gian thực hiện t/bình giữa RSA-3072 và ECC-256 (Galaxy J3) 33

Hình 4.1: X.509 v3 35

Hình 4.2: cấu trúc chứng nhận thuộc tính (version 2) 37

Hình 4.3: certificate signing request theo chuẩn PKCS #10 [25] 38

Hình 4.4: lưu đồ giải thuật quá trình cấp chứng nhận số 39

Hình 4.5: minh họa quá trình cấp chứng nhận số [26] 40

Hình 4.6: chép nội dung file CSR vào công cụ giải mã 41

Trang 12

Hình 4.7: giải mã CSR (1) 41

Hình 4.8: giải mã CSR (2) 42

Hình 4.9: giải mã CSR (3) 42

Hình 4.10: chép nội dung file certificate vào công cụ giải mã 43

Hình 4.11: giải mã certificate (1) 43

Hình 4.12: giải mã certificate (2) 44

Hình 4.13: giải mã certificate (3) 44

Hình 5.1: minh họa QR code 46

Hình 5.2: cấu trúc QR code [29] 47

Hình 5.3: so sánh QR code và NFC [31] 50

Hình 5.4: minh họa scan QR code từ màn hình smart phone của người dùng 50

Hình 6.1: replay attack 53

Hình 6.2: minh họa scan QR code từ màn hình smart phone của người dùng 53

Hình 6.3: cơ chế challenge/ response chống replay attack 55

Hình 7.1: mô hình thực tế hệ thống access control 57

Hình 7.2: giao diện đăng nhập - liên hệ 69

Hình 7.3: giới thiệu các chức năng của phần mềm (1) 69

Hình 7.4: giới thiệu các chức năng của phần mềm (2) 70

Hình 7.5: giao diện chức năng đăng ký thông tin người dùng 70

Hình 7.6: giao diện chức năng tạo chữ ký điện tử 71

Hình 7.7: giao diện chức năng tạo QR code cho access control 71

Hình 7.8: giao diện đăng nhập webserver 72

Hình 7.9: giao diện trang chủ 72

Hình 7.10: quản lý chung tài khoản người dùng 73

Hình 7.11: chi tiết tài khoản người dùng (1) 73

Hình 7.12: chi tiết tài khoản người dùng (2) 74

Hình 7.13: chức năng cấu hình và giám sát CA server 74

Hình 8.1: mô hình hệ thống Smart – Auto Parking tích hợp 76

Hình 9.1: nhận dạng biển số xe máy (1) 84

Hình 9.2: nhận diện biển số xe máy (2) 84

Trang 13

Hình 9.3: nhận diện biển số xe ô tô (1a) 85

Hình 9.4: nhận dạng biển số xe ô tô (1b) 85

Hình 9.5: nhận dạng biển số xe ô tô (2a) 86

Hình 9.6: nhận dạng biển số xe ô tô (2b) 86

Trang 14

DANH SÁCH BẢNG BIỂU

Bảng 1: yêu cầu của hệ thống mới 9

Bảng 2: các thuật toán mã hóa bất đối xứng và ứng dụng [9] 17

Bảng 3: độ phổ biến và mức độ an toàn của RSA [12] 19

Bảng 4: độ phổ biến và an toàn của ECC [12] 22

Bảng 5: so sánh kích thước khóa RSA và ECC ở cùng mức độ bảo mật [19] 23

Bảng 6: kích thước khóa và thời gian cần thiết để phá mã [20] 23

Bảng 7: so sánh hiệu năng RSA và ECC [21] 24

Bảng 8: thông số kỹ thuật Samsung Galaxy S8 25

Bảng 9: kết quả đo tốc độ thực hiện RSA-3072 (Galaxy S8) 25

Bảng 10: kết quả đo tốc độ thực hiện ECC-256 (Galaxy S8) 26

Bảng 11: thông số kỹ thuật Samsung Galaxy J3 Pro 28

Bảng 12: kết quả đo tốc độ thực hiện RSA-3072 (Galaxy J3) 29

Bảng 13: kết quả đo tốc độ thực hiện ECC-256 (Galaxy J3) 30

Bảng 14: số lượng người dùng QR code 2011 -2015 [29] 45

Bảng 15: khả năng lưu trữ của QR code 47

Bảng 16: khả năng sửa lỗi của QR code 47

Bảng 17: so sánh QR code và các 2D code khác 48

Bảng 18: thành phần và chức năng của các thành phần trong hệ thống access control 57

Bảng 19: so sánh các hệ thống access control 74

Trang 15

1 Chương 1: Giới thiệu tổng quan

1.1 Lý do chọn đề tài

Ngày nay, khi công nghệ ngày càng phát triển, cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ và dần dần tạo nên các chuẩn mực mới, cũng như thay đổi các thói quen của con người Trong cuộc cách mạng này, điện thoại thông minh (smart phone) đóng một vai trò vô cùng quan trọng, chúng ngày càng nhanh hơn, mạnh mẽ hơn, tiện lợi hơn và có thể đáp ứng mọi nhu cầu của con người Xu hướng hiện nay người dùng thích sử dụng điện thoại thông minh cho mọi tác vụ hằng ngày trong cuộc sống như: quay phim, chụp ảnh, giải trí, thanh toán, chuyển khoản, email …

Bên cạnh đó, trong thời đại số hóa, thông tin được xem là một nguồn tài nguyên quý giá vì vậy việc mã hóa, xác thực, kiểm soát truy cập, đảm bảo an toàn thông tin cũng là một yêu cầu thiết yếu Đối với các hệ thống xác thực truy cập (access control) của một số hãng nổi tiếng trên thị trường hiện nay ([1], [2], [3]) có thể chia thành 3 hình thức xác thực như sau:

- Xác thực thuyền thống, bằng những thông tin người dùng biết: chẳng hạn như cặp định danh – mật khẩu (username – password), số định danh cá nhân (personal identification number – PIN)…

- Xác thực bằng các loại thẻ thông minh (smart card) chứa dãy ký tự để xác thực truy cập (ví dụ RFID tag),…

- Nhận dạng bằng sinh trắc học (biometric identifier): chẳng hạn như dấu vân tay, mẫu võng mạc mắt, giọng nói, gương mặt…

Tuy nhiên, cả ba hình thức trên đều có những lỗ hổng nhất định, sẽ được trình bày chi tiết hơn ở phần 1.2 của chương này

Từ các vấn đề của những hệ thống nêu trên, đề tài luận văn này tập trung nghiên cứu xây dựng một hệ thống xác thực để kiểm soát việc truy cập (access control) cho khả năng bảo mật cao hơn Hệ thống này sẽ được xây dựng với phần

Trang 16

mềm phía người dùng được triển khai trên điện thoại thông minh nhằm đem lại sự tiện dụng tối đa cho người dùng

1.2 Các lỗ hổng bảo mật của các hệ thống access control hiện nay

1.2.1 Hệ thống xác thực truyền thống

Các hệ thống dùng phương pháp xác thực truyền thống dựa vào những thông tin người dùng đã biết, ví dụ username – password, mã PIN…không thể phân biệt được kẻ giả mạo lừa đảo lấy các thông tin truy cập của chủ sở hữu và chủ sở hữu thật

sự

Ngoài ra, các hệ thống dùng phương pháp xác thực này đòi hỏi người dùng phải nhớ password cho từng hệ thống Bên cạnh đó, các thông tin do người dùng nhập vào dùng làm password có thể suy ra từ các thông tin cá nhân như tên, ngày sinh, số điện thoại,… của chủ sở hữu, chính vì thế một hình thức tấn công vét cạn (brute-force attack) rất hữu hiệu khi khoanh vùng các thông tin cá nhân của chủ sở hữu

1.2.2 Hệ thống xác thực bằng smart card

Các hệ thống xác thực dùng smart card phổ biến nhất hiện nay là các hệ thống RFID

Giống như các hệ thống thông tin khác, hệ thống RFID tồn tại nhiều điểm dễ

bị tấn công Các tấn công vào hệ thống RFID có thể phân loại thành 4 nhóm chính: tấn công vào tính xác thực, tấn công vào tính toàn vẹn, tấn công vào tính bảo mật và tấn công vào tính khả dụng

Trang 17

Hình 1.1: Các điểm có nguy cơ bị tấn công trong hệ thống RFID [4] Dưới đây là một số hình thức tấn công hệ thống RFID [4]

1.2.2.1 Reverse engineering (kỹ thuật đảo ngược)

Thẻ RFID và đầu đọc có thể được thiết kế ngược, kẻ tấn công có thể tháo chip RFID ra để tìm hiểu cách hoạt động của nó hoặc đọc bộ nhớ để lấy mã bí mật

1.2.2.2 Power analysis (phân tích công suất)

Power analysis là một hình thức tấn công kênh bên (side-channel attack) nhằm lấy thông tin bằng cách phân tích sự thay đổi công suất tiêu thụ của một thiết bị Kẻ tấn công có thể phân tích sự khác nhau về mức công suất giữa mật mã đúng và mật

mã không chính xác

1.2.2.3 Eavesdropping (nghe trộm)

Thẻ RFID là thiết bị không dây phát ra dữ liệu, thường là một dãy định danh duy nhất, chuỗi định danh phải được kiểm tra bởi một RFID reader, do đó tồn tại nguy cơ nghe trộm trong quá trình giao tiếp không dây giữa thẻ RFID và reader Nghe trộm xảy ra khi một kẻ tấn công đánh chặn dữ liệu bằng một reader tương thích với loại và tần số của thẻ RFID, trong khi thẻ đang được đọc bởi một reader hợp lệ

Trang 18

Hình 1.2: tấn công nghe trộm trong hệ thống RFID [4]

1.2.2.4 Man-in-the-middle attack (MITM attack)

Tùy thuộc vào cấu trúc hệ thống, một tấn công MITM có thể xảy ra khi dữ liệu đang được truyền từ thành phần này sang thành phần khác Kẻ tấn công có thể làm gián đoạn đường truyền và thao túng thông tin qua lại giữa các thành phần trong hệ thống RFID Đây được xem là mối đe dọa thời gian thực Hình thức tấn công này can thiệp vào thông tin trước khi thiết bị nhận dự định nhận được và có thể thay đổi thông tin trên đường truyền Hệ thống RFID đặc biệt dễ tổn thương bởi các cuộc tấn công MITM vì các thẻ có kích thước nhỏ, giá thành thấp và không được trang bị các mạch bảo vệ

Trang 19

Hình 1.3: tấn công MITM trong hệ thống RFID [4]

1.2.2.5 Denial of Service (DoS)

Các cuộc tấn công DoS có nhiều hình thức khác nhau bằng cách tấn công thẻ RFID, mạng hoặc hệ thống backend Mục đích của hình thức tấn công này không phải là nghe trộm hay sửa đổi thông tin mà nhằm vô hiệu hóa hệ thống RFID khiến

nó không thể sử dụng Khi nói về các cuộc tấn công DoS trên mạng không dây, mối quan tâm đầu tiên là tấn công lớp vậy lý, chẳng hạn gây nhiễu hoặc can nhiễu Việc

sử dụng nhiễu trong cùng dải tần số của hệ thống RFID có thể làm giảm thông lượng mạng, hủy hoại khả năng kết nối ảnh hưởng đến toàn hệ thống Kẻ tấn công có thể sử dụng thiết bị chủ động phát sóng tín hiệu vô tuyến có khả năng chặn và phá hoại hoạt động của tất cả RFID reader lân cận Can nhiễu cũng có thể làm sai lệch thông tin truyền giữa thẻ RFID và reader

1.2.2.6 Spoofing (giả mạo) và cloning (nhân bản)

Giả mạo và nhân bản xảy ra khi một kẻ tấn công bắt được dữ liệu từ một thẻ hợp lệ sau đó tạo ra một bản sao trái pháp của thẻ đó với thông tin đã bắt được

Trang 20

1.2.2.7 Replay attack (tấn công phát lại)

Trong hình thức tấn công phát lại, kẻ tấn công thu nhận thông tin truyền thông giữa reader và thẻ RFID hợp lệ Sau một khoản thời gian, tín hiệu thu được trước đó

sẽ được phát lại vào reader, bởi vì dữ liệu hoàn toàn hợp lệ nên nó sẽ được chấp nhận bởi hệ thống

Vấn đề này sẽ được xem xét và là một tiêu chí để tôi đề xuất một hệ thống khác tiện dụng hơn đối với người sử dụng

1.2.3 Hệ thống xác thực bằng đặc điểm sinh trắc học

Các hệ thống xác thực dựa trên đặc điểm sinh trắc học sử dụng các đặc điểm sinh học (ví dụ: vân tay, mống mắt…) ngày càng trở nên phổ biến so với các hệ thống truyền thống hay các hệ thống sử dụng smart card Các hệ thống xác thực bằng sinh trắc học thuận tiện hơn cho người dùng vì không có mật khẩu để nhớ, không có quá nhiều smart card để giữ hay phải đảm bảo không bị mất mà chỉ cần dùng một đặc tính sinh học để truy cập

Mặc dù có nhiều ưu điểm nhưng các hệ thống sinh trắc học dễ bị tấn công và làm giảm độ an toàn của chúng

Trang 21

Dưới đây là một số lỗ hổng của các hệ thống xác thực bằng đặc điểm sinh trắc học:

1.2.3.1 Các điểm có nguy cơ bị tấn công

Phân tích các cuộc tấn công vào hệ thống sinh trắc học điển hình, có thể chia thành 8 nhóm nguy cơ [6]:

Hình 1.4: các điểm tấn công vào hệ thống sinh trắc học [6]

- Nhóm 1: tấn công vào cảm biến – ví dụ đưa ra một sinh trắc học giả vào cảm biến

- Nhóm 2: replay attack – gửi lại sinh trắc học đã chặn trước đó

- Nhóm 3: tấn công module trích xuất đặc tính sinh trắc học, từ đó tạo ra các giá trị đặc tính do kẻ tấn công lựa chọn

- Nhóm 4: thay đổi các giá trị đặc tính đúng bằng các giá trị do kẻ tấn công lựa chọn

- Nhóm 5: tấn công bộ tương hợp (matcher) để tự tạo ra một bộ mẫu do kẻ tấn công quyết định

Trang 22

- Nhóm 6: tấn công vào cơ sở dữ liệu mẫu (ví dụ: thêm mẫu mới, sửa đổi mẫu hiện có, loại bỏ mẫu, )

- Nhóm 7: tấn công vào môi trường truyền thông giữa database và bộ matcher, điều này đẫn đến các mẫu có thể bị thay đổi trên đường truyền

- Nhóm 8: kết quả đầu ra bộ matcher (hợp lệ hoặc không hợp lệ) có thể bị ghi

đè bởi kẻ tấn công

1.2.3.2 Một số điểm nguy cơ khác

- Schneier và các đồng sự [7] nêu ra vấn đề chính của hệ thống sinh trắc học là không đảm bảo bí mật (ví dụ như để lại dấu vân tay trên bề mặt cảm biến khi chúng ta chạm vào) và không có khả năng thay thế (ví dụ, khi dữ liệu sinh trắc học bị xâm nhập, không có cách nào khác để trở lại tình huống an toàn, không giống như việc thay thế password hay RFID tag đơn thuần)

- Maltoni và các đồng sự [8] cũng nên ra khả năng bị tấn công DoS của hệ thống sinh trắc học Máy chủ xác thực xử lý các yêu cầu truy cập (thông qua việc lấy mẫu từ cơ sở dữ liệu và dữ liệu sinh trắc truyền về từ cảm biến) có thể bị bắn phá với nhiều yêu cầu truy cập giả mạo đến một điểm mà tài nguyên tính toán của máy chủ không thể xử lý yêu cầu hợp lệ được nữa

Hệ thống xác thực mới cần những yêu cầu như sau:

Trang 23

Bảng 1: yêu cầu của hệ thống mới

Tính an toàn

Giảm thiểu/ loại bỏ các hình thức tấn công vật lý:

- Kỹ thuật đảo ngược

- Phân tích công suất

- Nhiễu/ can nhiễu tính hiệu RF…

Giảm thiểu/ loại bỏ khả năng tấn công vào thuật toán sử dụng

để xác thực, không thể suy ra được mật khẩu, chuỗi bí mật dùng cho việc xác thực:

- Không cần giữ quá nhiều loại thẻ

- Có thể thay đổi mật khẩu bất kỳ lúc nào

- Hạn chế giới hạn bởi phần cứng thiết bị Khả năng mở rộng Có khả năng kết nối với các hệ thống khác và triển khai trong

cùng một ứng dụng phía người dùng

Từ các yêu cầu đặt ra phía trên, tôi sẽ đưa ra đối tượng và phạm vi nghiên cứu (cụ thể ở phần 1.4) để từ đó có được cơ sở lý thuyết phục vụ cho việc xây dựng hệ thống xác thực mới thỏa mãn các yêu cầu trên

1.4 Đối tượng và phạm vi nghiên cứu

1.4.1 Đối tượng

- Nghiên cứu, so sánh, đánh giá thuật toán mã hóa bất đối xứng RSA và ECC

- Nghiên cứu nguyên tắc hoạt động của CA server, cấp chứng chỉ khóa công khai và các cơ chế phân phối khóa

- Nghiên cứu các phương pháp chống tấn công phát lại (replay attack)

- Nghiên cứu triển khai thuật toán mã hóa bất đối xứng trên nền tảng Android

OS cho điện thoại và Linux OS cho máy tính nhúng (Raspberry Pi)

- Nghiên cứu xây dựng CA server kết hợp với Web server bằng các ngôn ngữ web

- Nghiên cứu mã hóa/ giải mã QR code

Trang 24

1.4.2 Phạm vi

Luận văn này tập trung nghiên cứu để đưa ra một mô hình hệ thống xác thực truy cập có tính bảo mật cao hơn các hệ thống hiện tại trên thị trường Hệ thống mới này chủ yếu tập trung giải quyết các lỗ hổng mà chính bản thân các phương pháp xác thực gây ra (ví dụ, kỹ thuật đảo ngược, replay attack, giả mạo, nhân bản, nghe trộm…) cũng như mang lại sự tiện dụng tối đa cho người dùng Bên cạnh đó, hệ thống còn thể hiện tính tương thích cao, kết hợp được với các hệ thống khác tạo thành một giải pháp hoàn chỉnh Các hình thức tấn công vào lớp mạng và backend hệ thống (ví dụ DoS) cũng được xem xét để giảm thiểu nguy cơ nhưng không phải là vấn đề chính trong luận văn này

Trang 25

2 Chương 2: Tổng quan về mã hóa

hệ thống Các thuật toán này đã được chứng minh có độ phức tạp cao rất khó để phá

mã Áp dụng các thuật toán mã hóa giúp đảm bảo tính toàn vẹn, tính bảo mật và tính xác thực của ứng dụng Tuy nhiên, hiện tại có rất nhiều thuật toán mã hóa, mỗi thuật toán lại có ưu và nhược điểm riêng, các phần bên dưới sẽ trình bày tổng quan về mã hóa, ưu – nhược điểm của các thuật toán phổ biến hiện nay, từ đó có được cơ sở lý thuyết để lựa chọn một thuật toán mã hóa phù hợp cho hệ thống đang xây dựng 2.2 Mã hóa đối xứng

2.2.1 Giới thiệu

Mã hóa đối xứng (symmetric cryptography, secret – key cryptography) là loại

mã hóa sử dụng cùng một khóa cho việc mã hóa và giải mã Có thể nói mã hóa đối xứng là mã hóa một khóa, mã hóa khóa bí mật hay mã hóa khóa thỏa thuận

X

Plaintext

input

Plaintext output

 , 

YE K X XD K Y , 

Encryption algorithm (e.g., AES)

Hình 2.1: mô hình mã hóa đối xứng [9]

Mô hình mã hóa đối xứng gồm có 5 thành phần:

Trang 26

- Plaintext (bản rõ): đây là văn bản, tin nhắn dễ hiểu ban đầu hoặc dữ liệu đưa vào thuật toán như đầu vào (input)

- Encryption algorithm (thuật toán mã hóa): thuật toán thực hiện các thay thế và biến đổi khác nhau trên plaintext

- Secret key (khóa bí mật): khóa bí mật cũng là một đầu vào của thuật toán mã hóa Khóa bí mật là một giá trị độc lập so với bản rõ và thuật toán Thuật toán

sẽ tạo ra một giá trị đầu ra khác nhau tùy thuộc vào khóa cụ thể được dùng tại thời điểm đó Các phép thay thế và biến đổi được thực hiện bởi các thuật toán dựa trên khóa

- Ciphertext (bản mã hóa): đây là văn bản, tin nhắn hay dữ liệu đã bị xáo trộn sau khi mã hóa Nó phụ thuộc vào plaintext và secret key Đối với cùng một plaintext, hai secret key khác nhau sẽ cho ra hai ciphertext khác nhau

- Decryption algorithm (thuật toán giải mã): cơ bản là thực hiện lại thuật toán

mã hóa theo chiều ngược lại Thuật toán giải mã lấy ciphertext và secret key

để tạo ra plaintext ban đầu

2.2.2 Các yêu cầu của thuật toán mã hóa đối xứng

Hai yêu cầu để sử dụng an toàn mã hóa đối xứng là:

- Thuật toán mã hóa mạnh: có cơ sở toán học vững chắc, đảm bảo rằng dù công khai thuật toán, nhưng việc thám mã là rất khó khăn và phức tạp nếu không biết khóa

- Khóa phải được giữ bí mật:

 Chỉ có người gửi và người nhận biết được khóa

 Có kênh an toàn để phân phối khóa giữa các người được chia sẻ khóa

 Mối liên hệ giữa khóa và bản mã là không thể suy ra được

2.3 Mã hóa bất đối xứng

2.3.1 Giới thiệu

Mã hóa đối xứng dù rằng đã phát triển từ cổ đại đến hiện đại nhưng vẫn tồn tại hai điểm yếu sau:

Trang 27

- Vấn đề trao đổi khóa giữa người gửi và người nhận: cần phải có một kênh an toàn để trao đổi khóa sao cho khóa phải được giữ bí mật, chỉ có người gửi và người nhận biết Điều này tỏ ra không hợp lý khi mà ngày nay khối lượng thông tin luân chuyển khắp thế giới là rất lớn Việc thiết lập một kênh an toàn như vậy sẽ tốn kém về mặt chi phí và chậm trễ về mặt thời gian

- Tính bí mật của khóa: không có cơ sở quy trách nhiệm nếu khóa bí mật bị tiết

lộ

Năm 1976, Whitfield Diffie và Martin Hellman [10] đã tìm ra một phương pháp mã hóa khác có thể giải quyết cả hai vấn đề nêu trên, đó là mã hóa công khai (public key cryptography) hay còn gọi là mã hóa bất đối xứng (asymmetric cryptography) Đây có thể xem là một bước đột phá quan trọng nhất trong lĩnh vực

mã hóa

2.3.2 Mô hình mã hóa bất đối xứng

Một mô hình mã hóa bất đối xứng gồm 6 thành phần:

- Plaintext (bản rõ): đây là văn bản, tin nhắn dễ hiểu ban đầu hoặc dữ liệu đưa vào thuật toán như đầu vào (input)

- Encryption algorithm (thuật toán mã hóa): thuật toán thực hiện các thay thế và biến đổi khác nhau trên plaintext

- Public key (khóa công khai) và private key (khóa bí mật): đây là một cặp khóa

đã được chọn để một dùng cho mã hóa và một dùng cho giải mã

- Ciphertext (bản mã hóa): đây là văn bản, tin nhắn hay dữ liệu đã bị xáo trộn sau khi mã hóa Nó phụ thuộc vào plaintext và key Đối với cùng một plaintext, hai key khác nhau sẽ cho ra hai ciphertext khác nhau

- Decryption algorithm (thuật toán giải mã): thuật toán này dùng ciphertext và khóa phù hợp (matching key) để tạo ra plaintext ban đầu

Trang 28

2.3.2.1 Mô hình mã hóa dùng public key

Bob s public-key ring

Ted Joy

Transmitted ciphertext

Encryption algorithm (e.g., ECC)

Decryption algorithm

Alice s private key

Hình 2.2: mô hình mã hóa dùng public key [9]

Các bước thực hiện như sau:

- Mỗi user (người dùng) tạo ra một cặp khóa, một khóa được sử dụng để mã hóa

và một dùng để giải mã

- Mỗi user đặt một trong hai khóa vào thư mục có thể truy cập được (public register) → đây là public key Khóa còn lại được giữ bí mật → đây là private key Như hình 2.2, ta thấy, mỗi user có một tập hợp các public key thu được

từ những người khác

- Nếu Bob muốn gửi một message bí mật cho Alice, Bob mã hóa message bằng public key của Alice

- Khi Alice nhận được message, Alice giải mã bằng private key của chính cô

ấy Không người nhận nào khác có thể giải mã message vì chỉ có Alice biết được private của chính mình

Mô hình trên sử dụng public key để mã hóa và private key để giải mã, điều này cho phép các ứng dụng sử dụng mô hình trên cung cấp khả năng bảo mật thông tin

Trang 29

2.3.2.2 Mô hình mã hóa dùng private key

Alice s public-key ring

Ted Joy

Alice

Plaintext

input

b PU

b, 

YE PR X

X

Plaintext output

Encryption algorithm (e.g., ECC)

Decryption algorithm

Bob s private key

Hình 2.3: mô hình mã hóa dùng private key [9]

Trong trường hợp này, Bob chuẩn bị một message X và mã hóa nó bằng cách

sử dụng private key của mình trước khi gửi cho Alice

Vì vậy, message được xác thực cả về nguồn phát và tính toàn vẹn của dữ liệu

Điều quan trọng cần nhấn mạnh là quá trình mã hóa được mô tả trong mô hình trên không cung cấp tính bảo mật Các message được gửi đi được đảm bảo an toàn trước việc sửa đổi nhưng không thể chống lại việc nghe trộm, điều này là hiển nhiên bởi vì bất kỳ người nào cũng có thể giải mã message bằng cách sử dụng public key của người gửi

Trang 30

2.3.2.3 Mô hình kết hợp

Message source Encryption

algorithm

Encryption algorithm

Decryption algorithm

Decryption algorithm Message dest.

Key pair source

Key pair source

a

b PR

Nhược điểm của phương pháp này là thuật toán phức tạp, phải thực hiện 4 lần

mã hóa/ giải mã trong mỗi lần truyền thông

Trang 31

2.3.3 Ứng dụng của mã hóa bất đối xứng

Hệ thống mã hóa bất đối xứng được đặt trưng bởi việc sử dụng một thuật toán

mã hóa với hai key, một giữ bí mật làm private key và một làm public key Tùy thuộc vào ứng dụng, người gửi sử dụng một là private key của người gửi hoặc public key của người nhận hoặc cả hai, để thực hiện một số chức năng mã hóa

Chúng ta có thể phân loại sử dụng mã hóa bất đối xứng thành ba loại:

- Encryption/ decryption: người gửi mã hóa message bằng public key của người nhận

- Digital signature: người gửi “ký” message bằng private key của mình

- Key exchange: hai bên hợp tác để trao đổi một session key

Một số thuật toán phù hợp cho cả ba ứng dụng, trong khi những cái khác chỉ

có thể được sử dụng cho một hoặc hai trong số các ứng dụng nêu trên Bảng sau cho thấy các ứng dụng được hỗ trợ bởi các thuật toán mã hóa bất đối xứng

Bảng 2: các thuật toán mã hóa bất đối xứng và ứng dụng [9]

Thuật toán Encryption/

Bên cạnh đó, trong đề tài luận văn này tôi quyết định sử dụng mã hóa bất đối xứng theo mô hình chữ ký điện tử cho hệ thống access control mới Trong mô hình

Trang 32

chữ ký điện tử, người dùng có thể chủ động hơn trong việc tạo cặp khóa, chỉ cần giữ private key của chính mình và phân phối public key đến module điều khiển access, không cần phải lưu trữ quá nhiều public key của các module điều khiển access như trong trường hợp dùng mô hình mã hóa bằng public key Việc phân phối public key của người dùng đến các module điều khiển access sẽ được trình này trong chương 4

Trang 33

3 Chương 3: Thuật toán mã hóa RSA và ECC

3.1 Thuật toán mã hóa RSA

3.1.1 Giới thiệu

Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977, tại Học viện Công nghệ Massachusetts (MIT) [11] Tên của thuật toán lấy từ 3 chữ cái đầu tiên của tên 3 tác giả

Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã mô tả một thuật toán tương tự nhưng với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuy nhiên, phát mình này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật

Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983 (số đăng ký 4.405.829) Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000 Tuy nhiên do thuật toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ Ngoài ra, nếu như công trình của Clifford Cocks đã được công bố trước đó thì bằng sáng chế RSA không thể được đăng ký

3.1.2 Độ phổ biến và độ an toàn của RSA

Hiện tại, RSA đang là thuật toán mã hóa bất đối xứng dùng nhiều nhất hiện nay, theo báo cáo của ECRYPT II [12], ta có bảng thống kê như sau:

Bảng 3: độ phổ biến và mức độ an toàn của RSA [12]

Thuật toán Kích thước

Trang 34

- Mức độ an toàn: mức đánh giá ba ngôi sao chỉ ra rằng ECRYPT hoàn toàn tin tưởng vào sự an toàn của thuật toán và kích thước khóa tương ứng, không có sao nào cho thấy thuật toán và kích thước khóa tương ứng không nên tiếp tục

3.1.3.1 Năm cách tiếp cận có thể tấn công RSA

- Brute force (tấn công vét cạn): bằng cách thử tất cả các trường hợp của private key

- Mathematical attack [13]: có nhiều phương pháp tấn công như: Integer Factoring attack, Wiener’s attack, Low public Exponent attack…

- Timing attack [14]: tấn công thời gian được sử dụng để phân tích sự khác biệt trong thời gian thực hiện thuật toán mã hóa mà kết quả là do sự khác biệt trong các thông số đầu vào Điều này giúp kẻ tấn công tìm thấy thông tin bí mật, như

hệ số mũ bí mật của RSA

- Hardware fault-based attack [15]: gây ra lỗi phần cứng trong bộ tạo ra chữ ký điện tử RSA Hiện nay, có thể sử dụng nền tảng FPGA để phá mã thu được private key của RSA-1024 trong khoảng 100 giờ

Trang 35

Hình 3.1: fault-based attack RSA [15]

- Chosen ciphertext attack [16]: kiểu tấn công này khai thác các thuộc tính của thuật toán RSA Nó có thể thu hồi được plaintext, từ một ciphertext đã biết trong ít hơn log n2 truy xuất oracle thực hiện các thuật toán, với n là hệ số RSA

3.1.3.2 Back-door

Reuters thông tin rằng Cục an ninh quốc gia Hoa Kỳ (NSA) đã trả 10 triệu đô cho RSA (công ty sở hữu thuật toán RSA) để tạo ra một hệ thống mật mã không đáng tin cậy được cài đặt mặc định trong phần mềm được sử dụng bởi một loạt chương trình trên internet và máy tính [17]

Hệ thống này gọi là Dual EC [18], là một bộ tạo số ngẫu nhiên, nhưng nó có

lỗ hổng có chủ định – hay còn gọi là “back door” cho phép NSA phá mã khi cần 3.2 Thuật toán mã hóa ECC

3.2.1 Giới thiệu

Đường cong elliptic – cũng như đại số hình học – được nghiên cứu rộng rãi trong vòng 150 năm trở lại đây, nhưng mãi đến năm 1985, hai nhà khoa học Neal Koblitz và Victor S Miller đã độc lập nghiên cứu và đưa ra đề xuất ứng dụng lý thuyết toán học đường cong elliptic (elliptic curve) trên trường hữu hạn Thành quả

Trang 36

này chính là tiền đề để áp dụng các lý thuyết của đường cong elliptic vào lĩnh vực mã hóa

Ngày nay, hầu hết các sản phẩm và tiêu chuẩn có sử dụng thuật toán mã hóa công khai để mã hóa và chữ ký điện tử thường dùng RSA Nhưng chúng ta nhận thấy rằng chiều dài khóa để sử dụng an toàn thuật toán mã hóa này đã tăng lên trong những năm gần đây, điều này đặt ra một vấn đề đó là mức độ tính toán nặng hơn cho các ứng dụng sử dụng RSA Gánh nặng này có hậu quả nghiêm trọng, đặc biệt cho các thiết bị sở hữu tài nguyên phần cứng thấp, các web server, các trang thương mại điện thử cần thực hiện một số lượng lớn giao dịch an toàn đồng thời

Chính vì thế một thuật toán cạnh tranh, thách thức RSA là Elliptic Curve Cryptography (ECC) ra đời Sự hấp dẫn chủ yếu của ECC so với RSA là nó cung cấp cùng mức độ bảo mật nhưng sử dụng một khóa có kích thước nhỏ hơn, do đó giảm thiểu mức độ xử lý

3.2.2 Độ phổ biến và an toàn của ECC:

Theo báo cáo của ECRYPT II [12], ta có bảng thống kê như sau:

Bảng 4: độ phổ biến và an toàn của ECC [12]

Thuật toán Kích thước khóa Mức độ phổ biến Mức độ an toàn

Key Encapsulation Schemes

Trang 37

Bảng sau so sánh kích thước khóa giữa RSA và ECC ở cùng mức độ bảo mật: Bảng 5: so sánh kích thước khóa RSA và ECC ở cùng mức độ bảo mật [19]

Kích thước khóa Tỉ lệ kích thước khóa

Bảng 6: kích thước khóa và thời gian cần thiết để phá mã [20]

ECC key size

Trang 38

Bảng 7: so sánh hiệu năng RSA và ECC [21]

Phạm vi

sử dụng

Tạo khóa

Thời gian thực hiện

Xác thực

Tạo chữ ký

Phân tích ra thừa số nguyên tố

PC, laptops, siêu máy tính

Nhanh Chậm Nhanh Nhanh

ECC Cao Logarithm

rời rạc

Các thiết

bị có phần cứng thấp, yếu

Nhanh hơn

tử và xác thực chữ ký ở hai ứng dụng khác nhau

Ứng dụng được triển khai trên nền tảng Android Việc lựa chọn nền tảng Android nhằm tạo tiền đề xây dựng phần mềm xác thực phía người dùng cho hệ thống kiểm soát truy cập mới mà đề tài đang hướng tới Bên cạnh đó Android cũng là nền tảng hệ điều hành cho thiết bị đi động phổ biến nhất hiện nay

Hình 3.3: bảng so sánh mức độ phổ biến của hệ điều hành di động [22]

Trang 39

Như thống kê ở bảng 6, kích thước khóa an toàn đối với thuật toán RSA là

3072 bit và ECC là 256 bit, do đó trong phần này tôi sẽ thực hiện so sánh tốc độ tạo khóa, tạo chữ ký điện tử và xác thực chữ ký giữa hai thuật toán RSA-3072 và ECC-

256

3.3.2.1 Phần mềm triển khai trên smartphone Android cao cấp

Smart phone sử dụng trong phần này là Samsung Galaxy S8, có thông số kỹ thuật như sau:

Bảng 8: thông số kỹ thuật Samsung Galaxy S8

Chipset Exynos 8895

CPU 8 core (4 core 2.3 GHz + 4 core 1.7GHz), 64 bit, vi xử lý 10

nm

- Thuật toán RSA-3072:

Thực hiện lặp lại 10 lần, ta có kết quả đo như sau:

Bảng 9: kết quả đo tốc độ thực hiện RSA-3072 (Galaxy S8) Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)

Trang 40

Hình 3.4: triển khai thuật toán RSA-3072 trên Samsung Galaxy S8

- Thuật toán ECC-256:

Thực hiện 10 lần, ta có kết quả đo như sau:

Bảng 10: kết quả đo tốc độ thực hiện ECC-256 (Galaxy S8) Lần thực hiện Tạo cặp khóa (ms) Tạo chữ ký (ms) Xác thực chữ ký (ms)

Ngày đăng: 28/01/2021, 21:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm