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 2Cô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 4LỜ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 5TÓ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 6ABSTRACTS
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 7Mụ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 83.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 95.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 107.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 11DANH 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 12Hì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 13Hì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 14DANH 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 151 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 16mề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 17Hì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 18Hì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 19Hì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 201.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 21Dướ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 23Bả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 241.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 252 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 282.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 292.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,
Y E 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 302.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 312.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 32chữ 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 333 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 35Hì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 36nà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 37Bả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 38Bả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 39Như 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 40Hì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)