Chương 3. GIẢI PHÁP BẢO MẬT VÀ ỨNG DỤNG TRÊN BIOPKI
3.1. ĐỀ XUẤT GIẢI PHÁP TÍCH HỢP SINH TRẮC VÀO HỆ THỐNG PKI
3.1.2. Kết hợp sinh trắc và chứng thư số X.509
Ví dụ về một hệ thống OpenCA có thể biểu diễn theo sơ đồ sau:
Hình 3. 1: Sơ đồ OpenCA triển khai
Qua sơ đồ này, người sử dụng sau khi đăng ký theo các quy trình sẽ nhận được một chứng chỉ số và một khóa bí mật tương ứng. Để bảo vệ khóa bí mật, CA có thể ghi khóa của người sử dụng vào các thiết bị Token, Smartcard để bảo vệ. Trong thực tế, cặp khóa công khai có thể do CA sinh hoặc cũng có thể do người dùng tự sinh, sau đó chuyển khóa công khai có CA sinh chứng chỉ số. Tuy nhiên, trong luận văn này chỉ quan tâm đến trường hợp sinh khóa tập trung do CA sinh cặp khóa.
a. Sinh chứng thư số
RA Online
RA Interface
CAO CA Interface (Web-based)
Public Interface Web - based
Public Interface Web - based Trung tâm CA
(CA Offline)
User User
43
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Để tích hợp sinh trắc vân tay vào hệ thống OpenCA ta phải thực hiện qua các bước sau:
Hình 3. 2: Sơ đồ sinh chứng thư số
Quá trình này gồm 3 pha: Pha lấy dấu vân, pha sinh khóa và pha Module mật mã.
Trong pha lấy dấu vân, vân tay được quét, sau đó tính toán điểm trung tâm của dấu vân và tập các điểm đặc trưng (minutiae) lại. Pha tiếp theo sẽ tham chiếu ước lượng minutuae, tạo đồ thị đóng có hướng, lượng tử hóa và cuối cùng là sinh các đồ thị con, kèm theo trong quá trình này là các subvector (các khóa sinh trắc) được sinh ra. Pha cuối sẽ bắt đầu bằng việc tính mã băm của mỗi đồ thị con, sau đó mã hóa mầm khóa và sinh chứng thư số với các trường extensions chứa dữ liệu là mầm khóa mã và mã băm. Chứng chỉ số có thể được chứa trong một token thông thường với dung lượng đủ chứa.
Tập hợp các điểm đặc trưng
Tính điểm trung tâm của vân tay Quét dấu vân tay
Sinh các đồ thị con Lượng tử hóa Đồ thị đóng có hướng Tham chiếu các điểm đặc trưng
Tính toán hàm băm Mã hóa mầm khóa
Sinh chứng chỉ
Lấy dấu vân tay Sinh khóa Module mật mã
44
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn Sơ đồ mã hóa sinh trắc có thể hiểu đơn giản như sau
Hình 3. 3: Mã hoá sinh trắc
Mầm khoá ở đây là đầu vào cho một thuật toán mã hoá khoá đối xứng. Với DES, độ dài mầm khoá đầu vào là 56bit, với 3DES, độ dài mầm khoá là 3*56bit, với AES mầm khoá là 256bit. Mầm khoá được sử dụng để sinh khoá thuật toán mã hoá khoá bí mật (Private key) tương ứng với chứng thư số do CA sinh cho người đăng ký.
Hình 3. 4 Mã hoá khoá bí mật Mầm
khoá
Mã hoá khoá đối
xứng (3DES)
Khoá bí mật Lấy
dấu vân tay
Đặc trưng
vân tay
Sinh khoá mã
Mầm khoá (nbit)
Hash (SHA1)
Mầm khoá đã mã (S) + Mã băm (H) XO
R
45
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn Chứng chỉ số do CA ban hành có định
dạng X509 chuẩn, với định dạng X.509 phiên bản 3, khuôn dạng chứng thư số
có chứa các trường mở rộng (extensions)Version
Serial Number Signature
Issuer Validity
Subject
Subject Public Key Info
X.509 v1
X.509 v2
X.509 v3 Issuer Unique ID
Subject Unique ID Extensions
Hình 3. 5. Cấu trúc cơ bản của chứng chỉ số
Phần cấu trúc cơ bản của chứng thư số (version 1) được tính mã băm. Mã băm sau đó được CA ký và gán chữ ký vào phần cấu trúc cơ bản. Phần extensions làm tăng độ linh hoạt của chứng chỉ. Nó có thể thêm một số thông tin mà không thể thêm vào phần cấu trúc cơ bản của chứng thư số định dạng chuẩn. Mỗi extension phải có một OID (object identifier) duy nhất, phần thuộc tính được gọi là “Critical” và phần chuỗi bit (nội dung) ở cuối cùng. Cờ “Critical” rất quan trọng, bởi vì các ứng dụng client khi không thấy extension biểu thị là “Critical”, nó sẽ cho là chứng thư số này không có hiệu lực và từ chối nó. Mặt khác, đối với bất kỳ extension “non-critical” nào thì client chỉ xem như là một lưu ý và có thể bỏ qua.
46
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Cấu trúc cơ bản của chứng thư số X.509 được coi như là một cấu trúc nền tảng và các phần mở rộng được sử dụng để chứa dữ liệu. Chứng chỉ số khi đó sẽ hơi khác một chút. Đối với chứng thư số bình thường được lưu trong các thẻ hoặc token với dung lượng dữ liệu nhỏ, khi thêm các extension chứa dữ liệu sẽ làm tăng dung lượng của chứng thư số lên. Toàn bộ dữ liệu phải được ký bởi CA để đảm bảo tính xác thực và toàn vẹn. Toàn bộ quá trình sinh ra chứng thư số mới (có trường mở rộng) phải được CA sinh ra để đảm bảo sự an toàn cho vân tay người đăng ký và thông tin đăng ký.
Phần “extensions” của chứng thư số sẽ được biểu diễn như sau:
Ext={id, false, (H,S)}
Sau khi CA sinh chứng thư số xong, khoá bí mật đã mã bằng khoá thuật toán và chứng thư số được ghi vào thiết bị eToken hoặc smartcard để gửi cho người đăng ký.
Hình 3. 6: Lưu trữ khoá bí mật và chứng thư số vào trong Token
X.509 v1 Version
Serial Number Signature
Issuer Validity
Subject
Subject Public Key Info X.509 v2 Issuer Unique ID
Subject Unique ID X.509 v3 Extensions
47
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn b. Sử dụng chứng thư số
Khi có ứng dụng yêu cầu sử dụng khoá bí mật của người dùng, hệ thống yêu cầu người sử dụng phải quét vân tay của mình vào, các công đoạn được xử lý như sau:
`
Hình 3. 7: Sử dụng chứng thư số
Trong pha lấy dấu vân, chỉ duy nhất dấu vân được lấy, sau đó điểm trung tâm của dấu vân được tính. Pha thứ hai là sinh khoá. Điểm chi tiết liên quan được tìm thấy trong pha này, tạo đồ thì có hướng, toàn bộ đồ thị được lượng tử và cuối cùng sinh một đồ thị con. Trong pha cuối, mã băm từ đồ thị con được tính và so sánh với mã băm chứa trong chuỗi chứng thư số. Nếu so sánh khớp, đồ thị con (biểu diễn khoá sinh trắc) có thể được sử dụng để giải mã mầm khoá và chuyển tới ứng dụng cần thiết.
Toàn bộ quá trình so khớp có thể biểu diễn như sau:
Lấy dấu vân tay Sinh khóa
Tính điểm trung tâm của vân tay
Quét dấu vân tay
Chỉ sinh một đồ thị con
Lượng tử hóa Đồ thị đóng có hướng Tham chiếu các điểm đặc trưng
Tính toán hàm băm So sánh
Giải mã mầm khoá
Mầm khoá
Module mật mã Lấy dấu vân tay Sinh khóa
Tính điểm trung tâm của vân tay
Quét dấu vân tay
Chỉ sinh một đồ thị con
Lượng tử hóa Đồ thị đóng có hướng Tham chiếu các điểm đặc trưng
Tính toán hàm băm So sánh
Giải mã mầm khoá
Mầm khoá
Module mật mã Lấy dấu vân tay Sinh khóa
Tính điểm trung tâm của vân tay
Quét dấu vân tay
Chỉ sinh một đồ thị con
Lượng tử hóa Đồ thị đóng có hướng Tham chiếu các điểm đặc trưng
Tính toán hàm băm So sánh
Giải mã mầm khoá
48
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn Hình 3. 8: Quá trình so khớp sinh trắc
Từ dấu vân tay của người sử dụng quét vào, tính toán để sinh khoá mã. Khoá mã này sẽ được băm để lấy được một đoạn mã băm. Mặt khác, chứng chỉ só được đọc từ eToken, đọc lấy phần mở rộng, sau đó tách mã băm. Mã băm này được so sánh với đoạn mã băm vừa sinh, nếu so sánh khớp, khoá mã vân tay tương ứng với mã băm sẽ được lấy để giải mã mầm khoá (thực hiện phép XOR). Sau khi giải mã mầm khoá xong, mầm khoá được đưa vào một thuật toán mã hoá khoá đối xứng sinh khoá và giải mã khoá bí mật (được đọc ra từ eToken). Kết quả là khoá bí mật được giải mã và đem cho ứng dụng sử dụng.