CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN 1.1 Sinh trắc học và bài toán xác thực 1.1.1 Khái quát về hệ thống sinh trắc học Công nghệ Sinh trắc học Biometrics - Là một công nghệ tiên tiến, sử dụn
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM Cán bộ hướng dẫn khoa học : PGS.TS Đặng Trần Khánh a
2 TS Trần Ngọc Thịnh (TK) a
3 PGS TS Vũ Thanh Nguyên (PB1) a
4 TS Trần Mạnh Hà (PB2) a
5 TS Nguyễn Thanh Bình (UV) a
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
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Phạm Trung Phương MSHV: 12070539 Ngày, tháng, năm sinh: 31/07/1988 Nơi sinh: An Giang Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số : 60.48.01
I TÊN ĐỀ TÀI:
BẢO VỆ TÍNH RIÊNG TƯ DÙNG MÔ HÌNH HẦM MỜ TRONG XÁC THỰC TỪ XA VỚI ĐIỆN THOẠI THÔNG MINH SỬ DỤNG SINH TRẮC a
II NHIỆM VỤ VÀ NỘI DUNG:
Xây dựng một mô hình hệ thống bảo vệ tính riêng tư cho đặc trưng sinh trắc trong xác thực từ xa
Hiện thực hệ thống Đánh giá hiệu quả từ mô hình mang lại
III NGÀY GIAO NHIỆM VỤ : 20/01/2014
Trang 4LỜI CAM ĐOAN
Tôi cam đoan những kết quả được trình bày trong luận văn là công trình nghiên cứu của cá nhân tôi, dưới sự hướng dẫn của PGS.TS Đặng Trần Khánh Các số liệu, tư liệu và mã nguồn tham khảo có nguồn gốc rõ ràng, tuân thủ đúng nguyên tắc
Kết quả trình bày trong đề tài, thu thập được trong quá trình nghiên cứu là chính xác, trung thực, và chưa từng được công bố trước đây
Trang 5LỜI CẢM ƠN
Tôi gửi lời cảm ơn chân thành tới Khoa Khoa Học & Kỹ Thuật Máy Tính Trường Đại Học Bách Khoa TP HCM, đã tạo điều kiện thuận lợi cho tôi trong quá trình học tập tại đây Cảm ơn các thầy cô trong khoa đã nhiệt tình truyền đạt kiến thức cho tôi
Tôi chân thành cảm ơn thầy PGS.TS Đặng Trần Khánh, thầy đã cung cấp tài liệu và tận tình hướng dẫn tôi trong quá trình thực hiện luận văn này
Tôi chân thành cảm ơn toàn thể gia đình tôi, đã sát cánh cùng tôi, động viên, giúp tôi vượt qua những khó khăn, thử thách
Tôi cũng gửi lời cảm ơn tới các anh chị, em, bạn bè, đã quan tâm động viên tôi trong thời gian qua
Trang 6TÓM TẮT
Cùng với sự phát triển của khoa học công nghệ, các thiết bị di động thông minh ngày càng trở nên phổ biến trong xã hội Với sự tiến bộ và triển khai rộng rãi của mạng lưới truyền thông, hàng triệu các máy tính, và các thiết bị điện tử cá nhân trên toàn thế giới được kết nối vào nhau Khi đó việc bảo vệ thông tin nhạy cảm của người dùng trên thiết bị và thực hiện việc xác thực an toàn từ xa là vấn đề rất cần được quan tâm Việc sử dụng đặc trưng sinh trắc được xem là giải pháp mạnh mẽ khi kết hợp với mật mã truyền thống Vì vậy, trong bài báo cáo này tôi sẽ trình bày một giao thức bảo mật hiệu quả để bảo vệ đặc trưng sinh trắc trên điện thoại di động Android, dùng trong xác thực từ xa với mô hình client/server Sinh trắc dùng trong giao thức này là dấu vân tay Khi máy chủ yêu cầu người dùng xác thực, điện thoại sẽ rút trích đặc trưng sinh trắc của người dùng, và thực hiện quá trình xác thực Hệ thống đề xuất sử dụng Fuzzy Vault để bảo vệ đặc trưng sinh trắc của người dùng không bị tiết lộ
ABSTRACT
With the development of science and technology, more and more smart phones are used everyday in society With fast evolution and expansion of mobile network, milions of computer and intelligent electronics device worldwide are connected together So, the need of protecting user’s sensitive information on the device and performing secure user authentication remotely has got to take into consideration The usage of biometric is considered a strong solution with traditional codes Therefor, in this paper, I present an efficient security protocol to protect biometric on Android using in remote authentication for client/server In this protocol, fingerprint biometric is used in user vertification When server request user vertification, the application will extract users fingerprint biometric and perform the vertification process Fuzzy Vault is
Trang 7MỤC LỤC
LỜI CAM ĐOAN ILỜI CẢM ƠN IITÓM TẮT IIIABSTRACT IIIMỤC LỤC VDANH MỤC THUẬT NGỮ VIẾT TẮT VIIDANH MỤC HÌNH VẼ VIIIDANH MỤC BẢNG VÀ ĐỒ THỊ XI
CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN 1
1.1 Sinh trắc học và bài toán xác thực 1
1.1.1 Khái quát về hệ thống sinh trắc học 1
1.1.2 Tính ứng dụng của sinh trắc học 3
1.1.3 Định danh (Identification) vs xác minh (Verification) 3
1.1.4 Nhiệm vụ chính của đề tài 3
1.1.5 Phương pháp tiếp cận của đề tài 4
1.2 Bố cục của luận văn 6
CHƯƠNG 2 : CƠ BẢN VỀ XÁC THỰC VÀ MÃ HÓA 7
2.1 Xác thực, và các phương pháp xác thực 7
2.1.1 Khái quát về xác thực 7
2.1.2Các yếu tố xác thực 7
2.1.3 Một số phương pháp dùng trong việc xác thực 7
2.2 Mã hóa và các giải thuật mã hóa cơ bản 9
2.2.1 Khái quát về mã hóa 9
2.2.2 Hàm Băm (Hashing) 11
2.2.3 Một số thuật toán mã hóa đối xứng (Secret Key Cryptography) 13
2.2.4 Mã hóa bất đối xứng (Publick Key Cryptography) 16
CHƯƠNG 3 : XÁC THỰC VỚI ĐẶC TRƯNG SINH TRẮC HỌC 20
3.1 Xác thực sinh trắc học 20
3.1.1 Xác thực sinh trắc học sử dụng vân tay (Fingerprint Recognition) 20
3.1.2 Xác thực sinh trắc học sử dụng giọng nói (Voice Verification) 29
3.1.4 Xác thực tròng mắt (Iris Scanning) 31
Trang 83.2.1 Rút trích vector đặc trưng sử dụng phương pháp PCA 35
3.2.2 Rút trích vector đặc trưng sử dụng phương pháp FisherFace 36
3.3 Mô hình Codebook Secure Sketch của D-STAR Lab 37
CHƯƠNG 4 : MÔ HÌNH XÁC THỰC TỪ XA BẰNG SINH TRẮC HỌC SỬ DỤNG FUZZY VAULT 40
4.1 Phương Pháp Lưu Trữ Dữ Liệu Từ Xa 40
5.1.3 Các tính năng chính và kiến trúc hệ thống của Android 54
5.1.4 Ưu điểm và nhược điểm của Android 62
CHƯƠNG 6 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78
6.1 Kết luận về nội dung nghiên cứu 78
6.2 Những đóng góp của đề tài và những hạn chế 78
6.3 Hướng phát triển của đề tài 79
TÀI LIỆU THAM KHẢO 80
PHẦN LÝ LỊCH TRÍCH NGANG 84
Trang 9DANH MỤC THUẬT NGỮ VIẾT TẮT
AES Advanced Encryption Standard CA Certificate Authority
DAS Direct Attached Storage DES Data Encryption Standard DNA Acid Deoxyribo Nucleic ERR ErrorRate
FAR False Acceptance Rate FRR False Rejection Rate FTE False To Enroll JDK Java Vitual Machine LPC Linear Predictive Code MD5 Message-Digest algorithm 5 MFCC Mel Frequency Cepstral Coeffcient NAS Network Attached Storage
PCA Principle Component Analysis RADIUS Remote Authentication Dial- In User Service RAS Ron Rivest, Adi Shamir và Len Adleman SAN Storage Area Network
TAR True Accept Rate TRR True Reject Rate
Trang 10DANH MỤC HÌNH VẼ
1.1 Sinh trắc học: Sinh trắc thể và sinh trắc học hành vi 1
2.1 Quá trình mã hóa và giải mã 10
2.2 Sơ đồ ứng dụng của hàm băm 12
2.3 Mã hóa đối xứng 13
2.4 Sơ đồ mã hóa DES (64bit) 14
2.5 Thuật toán mã hóa khóa C 14
2.6 Thuật toán mã hóa khóa P 14
2.7 Thuật toán mã hóa đối xứng Triple DES 15
2.8 Bản mã bản rõ 15
2.9 Giải mã bản mã 15
2.10 Sơ đồ mã hóa bất đối xứng 17
2.11 Sơ đồ mã hóa bất đối xứng RSA 18
2.12 Mã hóa khối thông tin gốc 18
2.13 Giải mã C 18
2.14 Sơ đồ thuật toán RSA 19
3.1 Vân lồi và vân lõm ở dạng 2D 21
3.2 Vân lồi và vân lõm ở dạng 3D 21
3.3 Vùng Delta, Loop, Whorl trên dấu vân tay 22
3.4 Các loại dấu vân tay 22
3.5 Bảy loại minutiae phổ biến nhất 22
3.6 Hình a) Vân tay có chất lượng tốt Hình b) Vân tay có chất lượng trung bình do có chứa các đường cắt Hình c) Vân tay có chất lượng kém do chứa quá nhiều nhiễu 23
3.7 Mô hình đăng ký và xác thực dấu vân tay [19] 24
3.8 Các bước rút trích đặc trưng từ ảnh đã được nhị phân hóa [16] 24
3.9 Kết quả của việc Nhị phân hóa và Làm mỏng của ảnh đã được Tăng cường 25 3.10 a)một phần điểm của vân tay; b) điểm kết thúc; c) điểm rẽ nhánh 26 3.11 Lỗi và đứt gãy nhỏ trong ảnh vân tay đã được nhị phân hóa và làm mỏng 26
Trang 113.12 Các cấu trúc vân lỗi phổ biến được điều chỉnh lại thành các cấu trúc vân
đúng 27
3.13 Các đường vân (ridge) và các rãnh (ravine) trên bề mặt vân tay 28
3.14 Điểm cực đại (ic, jc) tương ứng với (is, js) 29
3.15 Âm thanh 30
3.16 Sơ đồ xác thực âm thanh 31
3.17 Các đặc điểm cấu trúc của tròng mắt 31
3.18 Sơ đồ quá trình đăng ký và xác thực tròng mắt 32
3.19 Các đặc điểm dùng nhận dạng khuôn mặt 33
3.20 Mô hình đăng ký và xác thực khuôn mặt 34
3.21 Thuật toán cho vector ngẫu nhiên, lấy mẫu từ c lớp khác nhau 36
3.22 Cách tính ma trận phân tán SB và SW 36
3.23 Tính giá trị bằng tổng trung bình 36
3.24 Tính là trung bình của lớp i1 36
3.25 Thuật toán lớp Fisher xây dựng phép chiếu W 37
3.26 Thực hiện tối ưu bài toán 37
3.27 Ma trận biến đổi W chiếu dữ liệu mẫu 37
4.1 Mô hình lưu trữ DAS 43
4.2 Mô hình lưu trữ NAS 44
4.3 Mô hình lưu trữ SAN 45
4.4 Biểu thức tính FRR và FAR 48
4.5 Biểu đồ đánh giá tỉ lệ EER 49
4.6 Mô hình đề xuất quá trình đăng ký và xác thực sử dụng đặc trưng sinh trắc học từ xa 50
5.1 Bảng so sánh thị phần Android với các hệ điều hành khác trên toàn cầu từ năm 2013-2017 53
5.2 Các phiên bản của HĐH Android 54
5.3 Kiến trúc hệ điều hành Android 55
5.4 Linux Kernel 56
5.5 Tổ chức thư viện 57
Trang 125.7 Các dịch vụ cung cấp của khung ứng dụng 58 5.8 Các dịch vụ cung cấp tầng ứng dụng 59 5.9 Vòng đời của Activity 61
Trang 13DANH MỤC BẢNG VÀ ĐỒ THỊ
Bảng tỷ lệ False Rejection Rate 75
Biểu đồ tỷ lệ False Rejection Rate 76
Bảng tỷ lệ False Acceptance Rate 76
Biểu đồ tỷ lệ False Acceptance Rate 76
Trang 14CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN
1.1 Sinh trắc học và bài toán xác thực 1.1.1 Khái quát về hệ thống sinh trắc học
Công nghệ Sinh trắc học (Biometrics) - Là một công nghệ tiên tiến, sử dụng những thuộc tính vật lý hoặc các mẫu hành vi Cụm từ sinh trắc học (Biometric) xuất phát từ chữ “bio”(life) và “metrics”(mesure) trong tiếng Hi Lạp Các đặc điểm sinh học đặc trưng như dấu vân tay, mẫu tròng mắt, giọng nói, khuôn mặt, dáng đi, Để nhận diện con người dựa vào các đặc tính vật lý hay hành vi mà người ta phân sinh trắc học thành hai loại là sinh trắc thể (physiological), và sinh trắc hành vi (behavioral), như hình sau:
Hình 1.1 Sinh trắc học - Sinh trắc thể và sinh trắc học hành vi [17]
- Sinh trắc thể: Bao gồm các đặc điểm sinh trắc học trên cơ thể như: gương mặt (face), võng mạc mắt (Retinal), vân tay (fingerprint), DNA
- Sinh trắc hành vi (behavioral): Như giọng nói (voice), dáng đi, chữ ký (signature), tốc độ gõ phím (keystroke)
Trang 15Khuôn mặt (Face)
Với sự phát triển của công nghệ cho các thiết bị di động thông minh nên việc tích hợp camera chụp ảnh phía trước cho điện thoại trở nên phổ biến, hỗ trợ cho việc sử dụng xác thực thuận tiện nhanh chóng
Cách tiếp cận khuôn mặt dựa trên vị trí và hình dạng của các thuộc tính như gò má, mắt, mũi, cằm Tìm ra những mối liên hệ giữa chúng, hoặc phân tích các hình ảnh biểu diễn khuôn mặt như sự kết hợp có trọng số của các hình ảnh tiêu biểu Việc nhận diện khuôn mặt tập trung vào việc giãm thiểu tỷ lệ lỗi như ánh sáng
Vân tay (Fingerprint)
Công nghệ sinh trắc học được áp dụng phổ biến và lâu đời nhất là công nghệ nhận dạng vân tay Dấu vân tay là một đặc điểm quan trọng để phân biệt giữa người này và người khác Nhờ tính chính xác của dấu vân tay mà người ta còn dùng nó vào môn khoa học hình sự trong nhiều lĩnh vực Kỹ thuật này được đánh giá sẽ là chìa khoá của một cuộc cách mạng công nghệ mới, khi những thiết bị có khả năng nhận dạng vân tay để bảo vệ dữ liệu được ứng dụng ngày càng nhiều Theo các nghiên cứu thì vân tay là một trong những đặc điểm nhận dạng có tính chất ưu việt nhất và phổ biển nhất
Giọng nói (Voice Verification)
Giọng nói là sự kết hợp giữa sinh trắc học trắc thể và hành vi Do đặc trưng vật lý như vòm họng, thanh quản, miệng mũi và môi được sử dụng trong quá trình tổng hợp âm của mỗi người là khác nhau do đó có thể ứng dụng vào trong việc xác thực Bằng việc yêu cầu người sử dụng đọc một đoạn văn bản khi có yêu cầu cho việc xác thực
Tròng mắt (Iris Scanning)
Là việc dùng thiết bị di động thông minh chụp ảnh của tròng mắt để cho việc xác thực Do tròng mắt là một màng nhỏ có màu, hình tròn, bao quanh con ngươi Do đặt tính sinh học mà mỗi người có tròng mắt hoàn toàn khác nhau Hiện nay sử
Trang 16di động Tuy nhiên chất lượng hình chụp tròng mắt ảnh hưởng lớn đến kết quả nhận dạng
1.1.2 Tính ứng dụng của sinh trắc học
Với việc xác thực bằng phương pháp truyền thống là user và mã pin, bên cạnh những ưu điểm thì cũng bộc lộ nhiều hạn chế trong việc xác thực Để hạn chế những rủi ro trong việc bảo đảm an toàn cho hệ thống, cùng sự phát triển của công nghệ, việc ứng dụng sinh trắc học vào việc bảo mật hệ thống đã và đang được ứng dụng ngày càng rộng rãi Làm tăng tính bảo mật vì tính chính xác, duy nhất của sinh trắc học
1.1.3 Định danh (Identification) vs xác minh (Verification)
- Xác minh: là phương pháp xác minh xem mẫu sinh trắc học có thuộc về một chủ thể mẫu cho trước không Cơ chế xác minh là 1-1 Việc thông qua việc so khớp giữa mẫu kiểm tra với các mẫu thuộc chủ thể đó trong cơ sở dữ liệu Do đó phương pháp này tốn ít tài nguyên hệ thống và thời gian tính toán
1.1.4 Nhiệm vụ chính của đề tài
Giải pháp: - Đưa ra mô hình xác thực từ xa có sử dụng Fuzzy Vault - Xây dựng hệ thống xác thực
- Kết nối dữ liệu từ xa Lý thuyết ứng dụng:
- Kỹ thuật rút trích đặc trưng dấu vân tay
Trang 17- Xây dựng hệ thống kết nối điện thoại Android với máy tính server thông qua mạng wifi
1.1.5 Phương pháp tiếp cận của đề tài
Sau khi nghiên cứu các bài toán liên quan, căn cứ vào các kết quả khoa học đã được công bố, qua kiểm chứng, đánh giá, so sánh, hiệu quả, hiệu suất, với các phương pháp sinh trắc khác, phương pháp xác thực sử dụng đặc trưng sinh trắc dấu vân tay cho thấy tính chính xác, ổn định cao Do các nhà sản xuất điện thoại hiện tại vẫn chưa cho phép người lập trình có thể can thiệp trực tiếp vào mẫu vân tay gốc khi rút trích, nên ứng dụng sẽ được thử nghiệm với các tập mẫu, mỗi tập mẫu sẽ đại diện cho một người dùng thực tế, mỗi mẫu là một hình ảnh vân tay được rút trích từ sensor ở nhiều khía cạnh khác nhau
Do đó tác giả lựa chọn và đề xuất thực hiện ứng dụng phù hợp với môi trường điện thoại di động thông minh kết nối với máy tính server qua mạng internet, dùng đặc trưng sinh trắc dấu vân tay để áp dụng cho đề tài xác thực từ xa
Dữ liệu đầu vào của hệ thống :
- Sử dụng phiên bản: FVC2002 [25]
- Phiên bản có 4 cơ sở dữ liệu (CSDL) hình ảnh dấu vân tay được lấy từ các sensor khác nhau
1 DB1: dùng sensor "Secure Desktop Scanner" của KeyTronic
2 DB2: dùng sensor "TouchChip" của ST Microelectronics
3 DB3: dùng sensor "DF-90" của Identicator Technology
4 DB4: synthetic fingerprint generation
- Mỗi CSDL sẽ có 10 user, mỗi user chỉ dùng một ngón tay để lấy mẫu, ngón tay sẽ được lấy mẫu 8 lần để thấy được các khía cạnh khác nhau
Trang 18Loại Sensor (DàixRộng) Kích thước Độ phân giải DB1 Low-cost Optical Sensor 300x300 500 dpi
DB3 Optical Sensor 448x478 500 dpi
DB4 Synthetic Generator 240x320 500 dpi
Phương pháp thực hiện như sau:
- Các tập mẫu sẽ được lưu trữ trên thẻ nhớ điện thoại Android Mỗi tập mẫu sẽ đại diện cho một người dùng, tức mỗi người sẽ có 8 hình ảnh vân tay cho một ngón tay
- Khi tiến hành đăng ký, từ điện thoại người dùng chọn mẫu vân tay cần đăng ký, hệ thống tiến hành rút trích đặc trưng, sinh chaffpoint(các điểm giả), trộn các điểm giả và điểm thật tạo thành một tableT{index(int), point(string)}, cột index để xác định vị trí của điểm tương ứng với cột point, danh sách vị trí các điểm thật được gởi qua mạng internet để lưu trữ bảo mật vào trong CSDL trong máy tính server
- Khi tiến hành xác thực, người dùng chọn dấu vân tay cần xác thực, hệ thống tự động rút trích vertor đặc trưng và gửi thông tin về máy Server Server tiến hành xác thực và gởi kết quả thành công hoặc không thành công về cho người dùng
- Phương pháp đánh giá FAR, FRR, TAR, EER được sử dụng trong quá trình đánh giá, xác thực hệ thống
- Ngoài ra hệ thống còn được đánh giá qua thời gian xác thực và hiệu suất làm việc của hệ thống
Trang 191.2 Bố cục của luận văn
Bố cục báo cáo của đề tài được chia làm 6 chương Nội dung của các chương được thể hiện dưới đây:
Chương 1: Giới thiệu: Giới thiệu tổng quan về sinh trắc học, tính ứng dụng của
sinh trắc học Mục tiêu, nhiệm vụ chính của đề tài, phương pháp tiếp cận của đề tài
Chương 2: Cơ bản về xác thực và mã hóa: Nội dung của chương 2 là tìm hiểu cơ
sở lý thuyết về xác thực, và mã hóa Khái quát về xác thực, các yếu tố xác thực, một số phương pháp dùng cho việc xác thực Các phương pháp về mã hóa, hàm băm, mã hóa đối xứng, mã hóa bất đối xứng
Chương 3: Xác thực với đặc trưng sinh trắc học: Nội dung của chương 3 nói về
xác thực sinh trắc học, các mô hình về xác thực Giới thiệu về công nghệ nhận dạng vân tay, và các phương pháp rút trích dấu vân
tay
Chương 4: Mô hình xác thực từ xa bằng sinh trắc học sử dụng Fuzzy Vault: Nội
dung chương 4 nói về phương pháp lưu trữ dữ liệu từ xa, mô hình server/client, một số loại hình lưu trữ dữ liệu từ xa Phương pháp xác thực từ xa Đề xuất mô hình xác thực từ xa, từ mô hình này đưa ra các bước cho việc đăng ký, và xác thực, dữ liệu được truyền qua wifi, gửi đến máy tính server
Chương 5: Hiện thực và đánh giá ứng dụng trên hệ điều hành Android: Chương
này trình bày các thư viện, khối chức năng được sử dụng của hệ điều hành Android Mô tả hoạt động của các lớp, các công cụ được sử dụng trong hệ điều hành Android Nền tảng ứng dụng trên hệ thống smartphone Thư viện OpenCV, JavaCV
Mô tả hệ thống hiện thực Tiến hành thí nghiệm và đánh giá hệ thống
Chương 6: Kết luận và hướng phát triển: Nội dung chương 6 Kết luận về nội
dung nghiên cứu, những đóng góp của đề tài, những hạn chế cần khắc phục và cải tiến Hướng phát triển
Trang 20CHƯƠNG 2 : CƠ BẢN VỀ XÁC THỰC VÀ MÃ HÓA
2.1 Xác thực, và các phương pháp xác thực 2.1.1 Khái quát về xác thực
Xác thực (Authentication) [9] có nghĩa là “thực”, “thật” là hành động nhằm xác minh hay kiểm chứng một người, hay vật gì đó có thực không Xác thực là công nhận nguồn gốc của đối tượng như kiểm tra, nhận dạng đối tượng cần xác thực Để đảm bảo an toàn cho hệ thống thông tin thì xác thực cực kỳ quan trọng Khi nhận được thông tin cần xác thực hệ thống sẽ nhận dạng, xác thực xem yêu cầu đăng nhập có được phép không, có cho phép hoặc không cho phép Vì việc ra quyết định ảnh hưởng trực tiếp tới an toàn, tính toàn vẹn của thông tin, hệ thống
- Những gì bạn có (something you have): Chứng minh thư nhân dân, chứng chỉ an ninh, chứng chỉ phần mềm, (smart card, token)
2.1.3 Một số phương pháp dùng trong việc xác thực
- Xác thực sử dụng tài khoản người dùng (User name) và mật khẩu (Password): Phương pháp dùng tài khoản kết hợp tài khoản người dùng và mật khẩu rất phổ biến Khi đăng nhập, hệ thống yêu cầu nhập thông tin vào và được so sánh với dữ liệu được lưu trữ trong hệ thống nếu việc xác thực là đúng hệ thống sẽ cho phép truy cập vào hệ thống
Trang 21mã hóa Do đó dễ bị phát hiện Tên tài khoản và mật mã dễ bị lộ trong quá trình nhập hoặc phỏng đoán
- Phương pháp xác thực sử dụng giao thức bắt tay có thử thách (Challenge Handshake Authentication Protocol):
Khi user đăng nhập server, máy chủ thực hiện việc xác thực bằng cách gửi một thông điệp tới máy user yêu cầu user phải gửi username và password đã được mã hóa Sau đó server sẽ tiến hành so sánh với dữ liệu đã lưu trữ nếu đúng thì mới được kết nối vào hệ thống
Xác thực qua giao thức, dữ liệu được mã hóa bằng phương pháp mã hóa dùng hàm băm Do đó tính bảo mật cao hơn so với phương pháp xác thực user name và password
- Phương pháp xác thực sử dụng mã thẻ (Token): Đây là phương pháp sử dụng thẻ vật lý như các loại thẻ thông minh (smart card), chứa các thông tin như user và password của người dùng
Các thông tin lưu trên thẻ chỉ được đọc bởi các thiết bị chuyên dụng Ví dụ như thẻ thông minh được đọc bởi đầu đọc smart card
- Phương pháp xác thực bằng sinh trắc học (Biometrics): Phương pháp xác thực bằng sinh trắc học là phương pháp hiện nay đã và đang được áp dụng ngày càng rộng rãi, vì đặc điểm sinh học của mỗi cá thể là hoàn toàn khác nhau Do đó tính bảo mật rất cao
Các đặc điểm sinh trắc học thường được sử dụng như: Dấu vân tay (Fingerprint), khuôn mặt (Face), võng mạc mắt (Retinal), giọng nói (Voice), DNA
Xác thực đa yếu tố
Ứng dụng trong thực tế có thể sử dụng một hoặc nhiều yếu tố xác thực cùng lúc Để xác thực từ hai yếu tố trở nên người ta sử dụng xác thực đa yếu tố (Multi-Factor Authentication)
Có thể kết hợp xác thực ngẫu nhiên giữa các yếu tố xác thực ở trên vd: kết hợp giữa
Trang 22Tương tự như vậy có thể kết hợp hai, ba hay nhiều hơn các yếu tố để xác thực, tùy vào từng ứng dụng cụ thể và mức độ an toàn của hệ thống yêu cầu
Kết hợp nhiều yếu tố xác thực sẽ giúp đảm bảo an toàn cho hệ thống, tuy nhiên việc đầu tư vào trang thiết bị gây tốn kém cho nhà đầu tư, và có quá nhiều xác thực gây cho người dùng cảm giác không thoải mái Do đó thông thường chỉ nên áp dụng hai hoặc ba yếu tố xác thực là hợp lý
Phương pháp xác thực lẫn nhau (Mutual Authentication)
Là phương pháp bảo mật kết hợp các thành phần tham gia giao tiếp và kiểm tra xác thực lẫn nhau Phương pháp này hiện nay rất được coi trọng Ví dụ như khi tiến hành giao dịch với ngân hàng qua hệ thống mạng Người dùng phải xác định được có đúng là ngân hàng mà ta đang muốn tiến hành giao dịch không? Và ngân hàng cũng phải xác định được có đúng user đang muốn đăng nhập có hợp pháp không? Nhằm tránh những tình trạng bị truy cập và truy cập nhầm, gây ảnh hưởng đến uy tín và thiệt hại của ngân hàng và người dùng
2.2 Mã hóa và các giải thuật mã hóa cơ bản 2.2.1 Khái quát về mã hóa
Khi chúng ta có dữ liệu được lưu trữ hoặc chia xẻ trên mạng nhưng không muốn người khác làm thay đổi, xóa bỏ hoặc truy cập tới dữ liệu một cách tùy tiện Vấn đề cần đặt ra là làm sao có thể mã hóa dữ liệu từ dạng thông tin rõ (cleartext) sang dạng mờ (ciphertext) và ngược lại
Thuật toán mã hóa (Cryptography) chính là giải pháp cho việc chống lại những truy cập dữ liệu bất hợp pháp Do thông tin đã được mã hóa nên không thể lấy được thông tin đó
Thuật toán giải mã (Cryptography) chính là một tập hợp các câu lệnh mà ở đó chương trình sẽ đảo ngược, hay trộn dữ liệu Và che dấu thông tin từ dạng tỏ sang dạng mờ
Như hình 2.1 mô tả quá trình dữ liệu từ người gửi tới người nhận được mã hóa và giải mã dữ liệu
Trang 23Hình 2.1 Quá trình mã hóa và giải mã [10] Quá trình mã hóa diễn ra như sau:
- Người gửi, nhận dữ liệu: Sender/Receiver - Dữ liệu trước khi được mã hóa: Plaintext (Cleartext) - Dữ liệu đã được mã hóa: Ciphertext (Ciphertext) - Thành phần chính trong mã hóa: Key
- Các thuật toán được dùng trong mã hóa: CryptoGraphic Algorithm - Hệ thống mã hóa các thuật toán, khóa: CryptoSystem
Quá trình mã hóa và giải mã được tính như sau: - Quá trình mã hóa: EK (P) = C
- Quá trình giải mã: DK (C) = P Với:
- C: Là dữ liệu mã hóa - P: Là dữ liệu trước khi mã hóa - E: Là thuật toán mã hóa
Trang 24- K: Là khóa Ngoài ra việc mã hóa phải đảm bảo các tiêu chí sau: - Tính bí mật (Confidentiality) phải đảm bảo dữ liệu được an toàn Chỉ ai được
phép mới có thể đọc được nội dung - Tính xác thực (Authentication) đảm bảo dữ liệu đến được người nhận là dữ liệu
mà họ cần - Tính toàn vẹn (Integrity) đảm bảo dữ liệu nhận được là đúng không bị thay đổi - Tính không thể chối bỏ (Non-repudation) xác thực người gửi hay nhận không
thể chối bỏ đã gửi, hay nhận dữ liệu Các thuật toán mã hóa được chia làm ba dạng cơ bản Hàm băm (Hashing), mã hóa đối xứng (Symmetric), và mật mã bất đối xứng (Asymmetric)
2.2.2 Hàm Băm (Hashing)
Hàm băm [9] là các thuật toán không sử dụng khóa để mã hóa Nó có nhiệm vụ biến đổi “băm” thông tin gốc có độ dài bất kỳ thành một đoạn thông tin cố định gọi là mã băm (hash code hay message digest)
Mã băm được dùng để kiểm tra tính chính xác của thông tin nhận được Giá trị của hàm băm là duy nhất và không thể suy ngược lại nội dung ban đầu từ giá trị băm này
Hàm băm được gửi kèm với thông tin gốc, cùng cơ chế bảo mật giúp mã băm không bị thay đổi hoặc giải mã khi bị lộ thông tin
Bên máy nhận, hàm băm lại được áp dụng đối với thông tin gốc để tìm ra mã băm mới đi kèm với thông tin gốc
Trang 25Hình 2.2 Sơ đồ ứng dụng của hàm băm Các yêu cầu và thuộc tính của hàm băm:
- H được áp dụng cho khối thông tin với chiều dài bất kỳ - Kết quả của hàm H luôn có chiều dài cố định
- Việc tính giá trị của H(M) với khối thông tin M cho trước phải đơn giản, có thể thực hiện bằng phần mềm và phần cứng một cách nhanh chóng và không tốn tài nguyên
Một hàm băm bảo mật có các thuộc tính sau: - Tính một chiều (one-wayproperty): Cho trước một đoạn thông tin m bằng kích
thước mã băm của hàm băm H, không thể tìm được một khối thông tin M sao cho H(M) = m
- Tính kháng đụng độ yếu (weak collosion resistance): Cho trước khối thông tin M, không thể tìm khối thông tin M’ khác sao cho H(M) = H(M’)
Trang 262.2.3 Một số thuật toán mã hóa đối xứng (Secret Key Cryptography)
Sơ đồ của hình 2.3 [10] cho thấy phương pháp sử dụng cùng một khóa cho cả hai quá trình mã hóa và giải mã
Hình 2.3 Mã hóa đối xứng Có nghĩa là trước khi truyền dữ liệu, cả hai bên gửi và nhận cùng thỏa thuận về khóa dùng chung trong quá trình mã hóa và giải mã dữ liệu Tuy nhiên quá trình này diễn ra phải đảm bảo bí mật
2.2.3.1 Thuật toán mã hóa đối xứng Data Encryption Standard (DES)
Thuật toán mã hóa đối xứng DES được thực hiện với bản rõ (Plaintext) được mã hóa theo từng khối 64 bits Tuy nhiên chỉ có 56 bits là được dùng để tạo khóa, 8 bits còn lại dùng để kiểm tra tính chẵn, lẻ
Ở mô hình 2.4 [10], ta thấy kỹ thuật mã hóa DES được thực hiện qua 16 vòng Thông tin đầu vào là 64 bits, sẽ được chia thành 2 block trái (L) và phải (R)
Khóa dùng chung
Trang 27Hình 2.4 Sơ đồ mã hóa DES Hiện nay DES đƣợc xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu là độ dài 56 bits của khóa là quá nhỏ
2.2.3.2 Thuật toán mã hóa đối xứng Triple DES (thực hiện DES ba lần- 3DES)
3DES cải thiện độ mạnh của DES bằng việc sử dụng một quá trình mã hoá và giải mã sử dụng 3 khoá Khối 64-bits của bản rõ đầu tiên sẽ đƣợc mã hoá sử dụng khoá thứ nhất Sau đó, dữ liệu bị mã hóa đƣợc giải mã bằng việc sử dụng một khoá thứ hai Cuối cùng, sử dụng khoá thứ ba và kết quả của quá trình mã hoá trên để mã hoá
C = EK3 (DK2 (EK1(P))) (2.5) P = DK1 (EK2 (DK3(C))) (2.6)
Trang 28
Hình 2.7 Thuật toán mã hóa đối xứng Triple DES Thuật toán 3DES sử dụng một nhóm khóa bao gồm 03 khóa DES K1, K2 và K3, như hình 2.7 [10] Mỗi khóa có giá trị 56 bits
Thuật toán mã hóa thực hiện như sau: Quá trình mã hóa
Bản mã= EK3 (DK2 (EK1(Bản rõ))) (2.8) Trước tiên, thực hiện mã hóa DES với khóa K1, tiếp tục mã hóa DES với khóa K2 và cuối cùng mã hóa DES với khóa K3 với:
- E - Encryption: quá trình mã hóa - D - Decryption: quá trình giải mã - Bản rõ: Dữ liệu đầu vào của phép mã hóa hoặc dữ liệu đầu ra của phép giải mã - Bản mã: Dữ liệu đầu ra của phép mã hóa hoặc dữ liệu đầu vào của phép giải
mã) Quá trình giải mã:
Bản rõ = DK1 (EK2 (DK3 (Bản mã))) (2.9) Quá trình giải mã với việc giải mã với khóa K3, sau đó mã hóa với khóa K2, và cuối cùng giải mã với khóa K1
3DES thực chất là mã hóa cùng 1 thông tin qua 3 lần mã hóa DES với 3 khóa khác
Trang 292.2.3.3 Thuật toán mã hóa đối xứng Advanced Enryption Standard (AES)
Tiêu chuẩn mã hóa tiên tiến, thuật toán AES hỗ trợ độ dài của khóa từ 128 bits cho đến 256 bits được dùng thay thế cho DES
AES làm việc với các khối dữ liệu (đầu vào và đầu ra) 128 bits và khóa có độ dài 128 bits, 192 bits hoặc 256 bits Mỗi khóa con cũng là một cột gồm 4 bytes Hầu hết các phép toán trong thuật toán AES đều thực hiện trong một trường hữu hạn của các byte Mỗi khối dữ liệu 128 bits đầu vào được chia thành 16 bytes (mỗi byte 8 bits), có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là một ma trận 4x4 của các byte, nó được gọi là ma trận trạng thái Trong quá trình thực hiện thuật toán các toán tử tác động để biến đổi ma trận trạng thái này Khóa mở rộng thành mảng gồm 44 từ 32 bits
Các tùy chọn 9/11/13 vòng, trong đó mỗi vòng bao gồm: - Phép thế byte (dùng một S-box cho 1 byte)
- Dịch hàng (hoán vị byte giữa nhóm cột) - Trộn cột (nhân ma trận của các cột) - Cộng khóa vòng (XOR trạng thái dữ liệu với khóa vòng) - Mọi phép toán được thực hiện với XOR và bảng tra, nên thuật toán thực hiện
nhanh và an toàn
2.2.4 Mã hóa bất đối xứng (Publick Key Cryptography)
Khác với mã hóa đối xứng Mã hóa bất đối xứng được thiết kế khóa cho việc mã hóa khác với khóa của giải mã Có nghĩa là các khóa này có thể quan hệ với nhau về mặt toán học nhưng không thể suy diễn được nhau Khi dùng khóa này để mã hóa dữ liệu thì chỉ có mã tương ứng mới có thể giải mã được dữ liệu Hình 2.10
[10] mã hóa bất đối xứng mô tả thuật toán sử dụng hai khóa để mã hóa và giải mã là Publick Key dùng để mã hóa Private Key dùng để giải mã
Trang 30Hình 2.10 Sơ đồ mã hóa bất đối xứng Mã hóa bất đối xứng đƣợc thực hiện nhƣ sau:
- Mỗi user tạo ra một cặp khóa (Public/Private) để dùng cho việc mã hóa và giải mã
- Mỗi user thông báo một trong hai khóa của mình cho các user khác biết, khóa này đƣợc gọi là khóa công khai (public key) Khóa còn lại giữ bí mật, và gọi là khóa riêng (private key)
- Khi user nguồn muốn gửi thông tin cho user đích, user nguồn sẽ thực hiện mã hóa thông tin cần gửi bằng khóa công khai của user đích
- Khi nhận đƣợc thông tin đã mã hóa từ user nguồn, user đích thực hiện giải mã thông tin đó bằng khóa riêng của mình Do khóa riêng không phổ biến công khai nên chỉ có một mình user đích biết và có thể giải mã đƣợc thông tin
Ứng dụng của mật mã bất đối xứng: - Bảo mật thông tin (message confidentiality) - Xác thực nguồn gốc thông tin bằng chữ ký số (digital signature) - Trao đổi khóa trong các thuật toán mã hóa đối xứng (key exchange)
Trang 31Thuật toán mã hóa bất đối xứng RSA (Ron Rivest, Adi Shamir và Len Adleman)
RSA là thuật toán mật mã khối, kích thước khối thông thường là 1024 bits hoặc 2048 bits Thông tin gốc của RSA được xử lý như các số nguyên
Hình 2.11 Sơ đồ mã hóa bất đối xứng RSA Thuật toán RSA có 2 khóa bí mật và công khai như hình 2.11 [10]:
- Khóa công khai (Public key) được công bố công khai cho mọi người dùng để mã hóa
- Khóa bí mật (Private key) những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng
Thuật toán mã hóa RSA đáp ứng 5 yêu cầu của hệ thống như sau:
- Độ bảo mật cao - Thao tác nhanh cho việc mã hóa và giải mã - Dùng chung được
- Ứng dụng rộng rãi - Có thể dùng để xác định chữ ký điện tử
Thuật toán RSA như sau
- Trước khi tạo ra cặp khóa RSA, chọn hai nguyên tố đủ lớn p và q Gọi là tích
Trang 32tìm số d sao cho ed = 1 mod (p-1)(q-1) Ký hiệu mod m biểu diễn phép module trên cơ số m
Bỏ qua vai trò của p và q Với 3 thành phần còn lại nhƣ trong sơ đồ 2.14 là N, e và d, ta có:
- Khóa công khai (public key) là tổ hợp (N,e) - Khóa bí mật (private) là tổ hợp (N,d)
Để mã hóa một khối thông tin gốc M thực hiện theo công thức sau:
C = Me mod N (với M là số nguyên nhỏ hơn N) (2.12) Quá trình giải mã C thực hiện theo công thức:
Hình 2.14 Sơ đồ thuật toán RSA
Trang 33CHƯƠNG 3 : XÁC THỰC VỚI ĐẶC TRƯNG SINH
TRẮC HỌC
3.1 Xác thực sinh trắc học
Xác thực sinh trắc học [9] đã xuất hiện từ rất sớm tuy nhiên do những hạn chế về công nghệ nên chưa được phát triển rộng rãi Ngày nay vấn đề về công nghệ đang được khắc phục, do đó càng ngày nhiều các chính phủ và các doanh nghiệp ủy thác xác định cá nhân thông qua sinh trắc học cho an ninh, an toàn và hiệu quả vì khả năng nhận dạng đặc điểm sinh trắc học (bạn là ai) thay vì mã thẻ, số nhận dạng cá nhân hoặc câu hỏi bảo mật
3.1.1 Xác thực sinh trắc học sử dụng vân tay (Fingerprint Recognition)
Dáng đi của con người, hoặc chữ ký có thể thay đổi theo thời gian, mật khẩu người dùng có thể bị quên mất hay chia sẻ với người khác, Sử dụng phổ biến vẫn là nhận dạng vân tay [17] bởi đặc tính ổn định và độc nhất của nó và cho đến nay, nhận dạng dấu vân tay vẫn được xem là một trong những phương pháp sinh trắc học có độ tin cậy cao, chính xác và hiệu quả hơn các phương pháp khác Để xác định chủ thể người ta dựa vào các đặc điểm kết thúc đường vân hoặc trên ngã rẽ đường vân Bên cạnh các đặc trưng cục bộ minutiae, vân tay còn có các đặc trưng khác như đặc trưng toàn cục
Một hệ thống máy quét vân tay bao gồm thiết bị đọc hoặc quét, phần mềm có thể chuyển đổi các thông tin quét thành dạng kỹ thuật số và tham chiếu với trung tâm lưu trữ dữ liệu sinh trắc học để so sánh
Trang 34Giới thiệu về dấu vân tay [17]:
Hình 3.1 Vân lồi và vân lõm ở dạng 2D
Hình 3.2 Vân lồi và vân lõm ở dạng 3D
Một cấu trúc vân tay cơ bản là những đường vân lồi lõm xen kẽ nhau, vân lồi (Ridges) có màu tối, vân lõm (Valleys) có màu sáng
Trang 35Hình 3.3 Vùng Delta, Loop, Whorl trên dấu vân tay Hình vuông màu trắng là những vùng đặc biệt, hình tròn nhỏ màu trắng là những điểm cốt lõi trên dấu vân tay
Hình 3.4 Các loại dấu vân tay Một dấu vân tay sẽ thuộc vào một trong năm loại đƣợc xác định bởi Henry (1900)
Hình 3.5 Bảy loại minutiae phổ biến nhất
Trang 36Hình 3.6 Hình a) Vân tay có chất lượng tốt Hình b) Vân tay có chất lượng trung bình do có chứa các đường cắt Hình c) Vân tay có chất lượng kém do chứa quá nhiều nhiễu
3.1.1.1 Mô hình xác thực sinh trắc học sử dụng vân tay
Sơ đồ 3.7 trình bày quá trình đăng ký và xác thực đặc trưng sinh trắc học vân tay Khi người dùng đặt ngón tay vào đầu đọc, đầu đọc sẽ quét dòng điện dưới ngón tay thông qua hệ thống khuyếch đại xung điện, rồi chuyển thành vân tay Ngay lập tức hình ảnh ngón tay đó được đối chiếu với đặc điểm của ngón tay đã được lưu trữ trong hệ thống Để ngăn chặn đánh cắp thông tin nhận dạng, dữ liệu sinh trắc học thường được mã hóa ngay sau khi được thu thập Phương thức hoạt động chung của một hệ thống sinh trắc học là thiết bị đầu vào ghi nhận đối tượng, phần mềm truy xuất dữ liệu để xác định các đặc điểm đã từng lưu trữ Các điểm này phù hợp với cơ sở dữ liệu thì sẽ được xử lý, chuyển đổi những thông tin đó thành một giá trị Giá trị cơ sở dữ liệu được so sánh với đầu vào sinh trắc học của người dùng cuối và xác thực được chấp thuận hay bị từ chối
Trang 37Hình 3.7 Mô hình đăng ký và xác thực dấu vân tay [19]
3.1.1.2 Các thuật toán rút trích đặc trưng vân tay
3.1.1.2.1 Rút trích đặc trưng từ ảnh đã được nhị phân hóa [17]
Hình 3.8 Mô tả các bước chính của phương pháp này Từ ảnh xám ban đầu, các bộ lọc thích hợp được dùng để phát hiện và làm mỏng đường vân về dạng một điểm ảnh, biến đổi ảnh xám ban đầu thành ảnh được nhị phân hóa (có giá trị là 0 hoặc 1) tương ứng Cuối cùng, các đặc trưng sẽ được rút trích dựa vào điểm lân cận xung quanh của nó
Hình 3.8 Các bước rút trích đặc trưng từ ảnh đã được nhị phân hóa
Trang 38- Phương pháp Nhị phân hóa:
Một trong những kỹ thuật dễ dàng nhất là sử dụng ngưỡng toàn cục t và được thực hiện bằng cách thiết lập các điểm ảnh có mức xám nhỏ hơn t về 0 và các điểm ảnh còn lại về 1 Nhưng các phần khác nhau của ảnh có thể được đặc tính hóa bởi độ tương phản và cường độ khác nhau; do vậy, một ngưỡng đơn là không đủ để nhị phân hóa chính xác Một kỹ thuật khác là dùng ngưỡng cục bộ t, bằng cách điều chỉnh giá trị của nó theo cường độ cục bộ trung bình Trong trường hợp ảnh vân tay có chất lượng thấp, kỹ thuật ngưỡng cục bộ không phải lúc nào cũng cho ra một kết quả tốt; vì có sự xuất hiện các lỗ, các đứt gãy nhỏ và các cầu giữa các vân trên ảnh nhị phân hóa (hình 3.9) Để giải quyết vấn đề này ta cần có thêm bước Lọc đặc trưng
1
ii
Trang 39 (x,y) là một điểm rẽ nhánh nếu
0
2
ii
N
Hình 3.10 a)một phần điểm của vân tay; b) điểm kết thúc; c) điểm rẽ nhánh
Lọc đặc trưng (minutiae filtering):
Sự xuất hiện các lỗ, các đứt gãy nhỏ và các cầu giữa các vân trên ảnh vân tay đã được nhị phân hóa làm ảnh hưởng đến việc rút trích sai các đặc trưng Như vậy một bước tiền xử lý trước khi rút trích các đặc trưng sẽ hữu ích cho việc loại bỏ các đặc trưng lỗi
- Có hai loại xử lý để loại bỏ các đặc trưng lỗi: xử lý dựa vào cấu trúc vân (structural post-processing) và lọc đặc trưng theo miền mức xám ảnh (minutiae
(a) Hole structure (b) Spur structure
Hình 3.11 Lỗi và đứt gãy nhỏ trong ảnh vân tay đã được nhị phân hóa và làm mỏng
Trang 40• Xử lý dựa vào cấu trúc vân: để phát hiện các đặc trưng lỗi, có thể sử dụng vài luật cấu trúc đơn giản Xiao xác định các cấu trúc đặc trưng lỗi và đưa ra phương pháp loại bỏ chúng [41] Thuật toán sử dụng dựa trên các luật đơn giản; xác định các đặc tính số học liên quan đến các đặc trưng: chiều dài các vân, góc đặc trưng, và số các đặc trưng đối diện gần kề trong lân cận