Mật mã sinh trắc
1. Sinh trắc học
Sinh trắc là các đặc điểm sinh học duy nhất của cá thể để nhận dạng hoặc xác thực một người. Việc phân tích thống kê các đặc điểm sinh học này được gọi theo tên khoa học là sinh trắc học. Ngày nay, công nghệ sinh trắc học còn được sử dụng để phân tích các đặc điểm con người cho mục đích an ninh. Có năm dạng sinh trắc học vật lý điển hình nhất được phân tích là vân tay, bàn tay, mắt, khuôn mặt và giọng nói.
Việc dùng các đặc điểm sinh học làm phương tiện xác thực không phải là một khái niệm mới. Năm 1926, các nhân viên cơ quan tư pháp ở một số thành phố của Mỹ đã đề xuất dùng thẻ vân tay cho FBI để tạo ra một kho lưu trữ vân tay của tội phạm. Cảnh sát sẽ có thể nhận dạng được mẫu vân tay ở nơi xảy ra vụ án và so sánh với các hình ảnh trong cơ sở dữ liệu tội phạm để có kết luận điều tra. Sơ đồ phân loại đặc trưng vân tay đã được đầu tư nghiên cứu phát triển cùng với độ chính xác khi lấy mẫu và xác thực tăng lên đã làm cho việc xử lý nhận dạng trở nên khả thi bằng cách giảm tối đa thời gian tìm kiếm dữ liệu được yêu cầu.
Đầu những năm 70, một sản phẩm sinh trắc học dựa trên kích thước hình học của bàn tay đã được giới thiệu trong một số các ứng dụng quản lý truy nhập. Giữa thập kỷ 80, hệ thống đầu tiên phân tích các mẫu dạng duy nhất của võng mạc được giới thiệu. Những năm 90, các nhà nghiên cứu tiếp tục phát triển các hệ thống nhận dạng dựa trên sinh trắc học như: vân tay, bàn tay, mống mắt, võng mạc, các hệ thống nhận dạng giọng nói, chữ ký, hình ảnh lòng bàn tay và khuôn mặt. Ngoài ra, một số hướng đi mới cũng đang được khảo sát cho việc phân tích sinh trắc học như tai, DNA, và mùi cơ thể.
Hình 1: Các đặc trưng sinh trắc phổ biến
Mục đích chính của các hệ thống sinh trắc học là nhận dạng và xác thực. Nhận dạng sinh trắc học là xử lý tương ứng một cá nhân của một tập hợp người sử dụng hệ thống, ngược lại xác thực sinh trắc học đơn giản là xác thực cá nhân nào đó có yêu cầu kiểm tra.
2. Kết hợp sinh trắc học với mật mã học
Với sự phát triển nhanh chóng của Internet và việc lưu trữ các dữ liệu nhạy cảm trên mạng, mật mã đang trở thành một công cụ khá quan trọng của bảo mật máy tính. Nhiều thuật toán mật mã đã được sử dụng rất phổ biến trên thế giới để đảm bảo an toàn cho thông tin. Hai hệ mật phổ biến nhất hiện nay là hệ mật khoá đối xứng và hệ mật khoá công khai. Thông thường, hệ mật khóa đối xứng được dùng để bảo mật dữ liệu, còn hệ mật khóa công khai được dùng cho chữ ký số và thay đổi khóa bí mật giữa những người sử dụng. Tuy nhiên, bất kể hệ mật nào thì mức bảo mật cũng phụ thuộc vào các khóa mã tương ứng. Do độ dài của khóa lớn nên người dùng rất khó nhớ và nhập lại mỗi khi được yêu cầu. Thay vào đó, người ta dùng một mã dễ nhớ để mã hoá khoá mã, khoá này sau đó có thể được lưu trữ trên ổ cứng máy tính, khi cần sử dụng khoá, người dùng chỉ cần nhập vào mã dễ nhớ để giải mã khóa mã.
Tuy nhiên, trong thực tế nhiều người dùng có xu hướng chọn các từ đơn giản hoặc các dữ liệu cá nhân dễ nhớ hoặc ghi lại mật mã ra giấy để tránh mất dữ liệu. Điều này làm tăng các nguy cơ rủi ro về bảo mật. Ngoài ra, vì không có sự liên kết trực tiếp giữa mật mã và người dùng nên hệ thống không thể phân biệt người dùng hợp lệ với kẻ tấn công nếu kẻ tấn công đoạt được mật mã.
Do vậy, sinh trắc học được xem như là một sự lựa chọn để bảo mật khoá mã. Thẩm định (xác thực) sinh trắc học đưa ra một cơ chế mới bằng cách sử dụng một đặc trưng sinh trắc học để bảo mật khóa mã. Việc nhập mật mã để truy nhập khóa mã được thay bằng quá trình xác thực sinh trắc. Khi người dùng muốn truy nhập khóa mã thì họ sẽ được yêu cầu một mẫu sinh trắc bắt buộc. Mẫu sinh trắc này cùng với các thông tin định danh người dùng sẽ được gửi đến nơi có chứa cơ sở dữ liệu mẫu sinh trắc. Nếu mẫu xác thực này tương đương với mẫu có trong cơ sở dữ liệu đã lưu trữ thì hệ thống sẽ cho phép truy xuất khóa mã từ nơi lưu trữ an toàn và có thể được dùng để mã hóa hoặc giải mã dữ liệu yêu cầu. Do đó, xác thực sinh trắc học có thể thay thế việc sử dụng mật mã để bảo mật khóa. Việc làm này có 2 ưu điểm, thứ nhất người dùng không phải nhớ mật mã và xác nhận bảo mật, thứ 2, chỉ có người sử dụng hợp lệ mới có thể dùng được khóa.
Tổng quan quá trình lấy mẫu của mật mã sinh trắc được thể hiện trong Hình 2 dưới đây:
Mục đích của thủ tục lấy mẫu là kết hợp khóa N-bit với dấu vân tay người dùng để tạo ra Bioscrypt (Mật mã sinh trắc) của người dùng.
Thủ tục lấy mẫu cần ba đầu vào: tập dấu vân tay của người dùng, mảng một chiều R(u) được tạo ngẫu nhiên và khóa mã K0 độ dài N-bit. R(u) được tạo ra bằng cách sử dụng một bộ tạo số ngẫu nhiên (RNG). Khóa K0 có thể là một khóa có sẵn hoặc có thể được sinh bởi RNG. Cả khóa K0 và mảng ngẫu nhiên R(u) đều hoàn toàn độc lập với ảnh sinh trắc.
Hình 2: Tổng quan quá trình lấy mẫu của mật mã sinh trắc
Giai đoạn E-1: Xử lý ảnh
Quá trình này sẽ kết hợp các dấu vân đầu vào với một mảng ngẫu nhiên để tạo ra hai mảng đầu ra H(u) và C0(x). H(u) là hàm lọc được lưu trữ, C0(x) sẽ được chuyển và làm đầu vào cho giai đoạn E-2.
Giai đoạn E-2: Liên kết khoá
Dùng giải thuật liên kết để liên kết khoá mã K0 với mẫu C0(x) để tạo ra Bảng tra cứu (Lookup table) và lưu trữ vào Bioscrypt để sử dụng cho việc khôi phục khóa trong quá trình xác thực.
Giai đoạn E-3: Tạo mã định danh
Tạo ra một mã định danh id0 được dẫn xuất ra từ khoá K0.
Hình 3: Tổng quan quá trình xác thực của mật mã sinh trắc
Quá trình xác thực của mật mã sinh trắc được mô tả trong Hình 3 dưới đây.
Mục tiêu của quá trình xác thực này là khôi phục khóa N-bit cho người dùng hợp lệ. Tập các ảnh sinh trắc của người sử dụng sẽ kết hợp với H(u), bảng tra cứu và id0 trong Bioscrypt để khôi phục và kiểm tra khóa N-bit của người dùng. Nếu khóa tìm được xác minh là đúng thì chuyển qua hệ thống mật mã.
Giai đoạn V-1: Xử lý ảnh
Lấy H(u) từ Bioscrypt kết hợp với các dấu vân tay đầu vào để tạo thành một mẫu đầu ra C1(x). Mẫu xác minh C1(x) được sử dụng để khôi phục khóa mật mã.
Hình 4: Các quá trình mật mã sinh trắc
Giai đoạn V-2: Khôi phục khoá
Sử dụng thuật toán giải mã tìm khoá K1 từ C1(x).
Giai đoạn V-3: Kiểm tra khóa
Kiểm tra K1 bằng cách tạo ra một mã định danh mới id1 và so sánh nó với id0 ở trên.
3. Cấu trúc hệ thống mật mã sinh trắc
Hệ thống mật mã sinh trắc bao gồm hai quá trình: mã hoá và giải mã. Quá trình mã hóa bắt đầu bằng việc nhập vào văn bản rõ, header và sử dụng một đặc trưng sinh trắc làm khóa mã. Quá trình này kết thúc khi cho ra văn bản đã được mã hoá. Quá trình giải mã thực hiện ngược lại: đầu vào là đặc trưng sinh trắc và đầu ra là văn bản rõ cùng header. Tuy nhiên, quá trình này phải chịu trách nhiệm tính toán một lượng hữu hạn các hoán vị của khóa mẫu với hi vọng là một trong những hoán vị đó có thể phù hợp với khóa mã hóa gốc.
Có nhiều phương pháp khác nhau có thể triển khai để bảo mật khóa với mẫu sinh trắc.
Phương pháp thứ nhất là ảnh sinh trắc được lấy và mẫu tương ứng được gửi tới một cơ sở bảo mật cho việc so sánh mẫu. Khoá mã được lưu trữ ở một nơi an toàn, khi cần truy xuất khoá, người dùng sẽ được yêu cầu cung cấp mẫu sinh trắc của mình để đối sánh với mẫu đã đăng ký trước đó. Nếu quá trình đối sánh thành công thì khoá sẽ được truy xuất từ kho an toàn. Điều này cung cấp một cơ chế thuận tiện cho người dùng khi họ không nhớ mật mã. Phương pháp này làm việc tốt trong ứng dụng truy cập vật lý có mẫu và khóa có thể được lưu trữ ở vị trí vật lý an toàn, tách rời các thiết bị lấy ảnh. Đối với phương pháp này, đường truyền dữ liệu cũng phải được bảo mật để tránh tấn công lấy cắp dữ liệu. Tuy nhiên, đối với việc sử dụng máy tính cá nhân, các khóa thường được lưu trong ổ cứng hoặc các thiết bị lưu trữ và như vậy là không bảo mật.
Phương pháp thứ hai là ẩn khóa mã vào trong chính các mẫu được lấy thông qua một giải thuật thay thế tin cậy. Khi cần sử dụng khoá, người dùng cung cấp mẫu sinh trắc của mình. Hệ thống sẽ thực hiện đối sánh mẫu để xác thực người dùng. Nếu quá trình đối sánh thành công, giải thuật thay thế tin cậy sẽ lấy ra các bit khóa từ các vị trí thích hợp và đưa khóa vào trong hệ thống. Tuy nhiên, như vậy cũng có nghĩa là khóa mã sẽ được khôi phục từ cùng một vị trí trong một mẫu mỗi lần người dùng khác nhau được xác thực bởi hệ thống. Do đó, nếu một người tấn công tìm được các vị trí bit và xác định được khóa thì cũng có thể khôi phục lại khóa nhúng từ bất kỳ mẫu của người dùng. Khi kẻ tấn công truy cập được vào chương trình lấy mẫu thì có thể tìm ra được các vị trí của khóa. Kẻ tấn công chỉ cần định vị những vị trí bit đó với các thông tin chung qua các mẫu.
Phương pháp thứ ba là sử dụng trực tiếp dữ liệu gốc từ một ảnh sinh trắc học. Phương pháp này được đề xuất bởi Bodo và ông đã nhận được bằng sáng chế của Đức. Sáng chế này đề xuất rằng dữ liệu sinh trắc gốc (thực chất là các mẫu sinh trắc) được sử dụng trực tiếp như khóa mã. Nghĩa là mẫu sinh trắc của người dùng chính là khoá mã. Tuy nhiên, có 2 vấn đề lớn trong phương pháp này. Thứ nhất, kết quả của sự thay đổi trong hình ảnh sinh trắc vì các nhân tố môi trường và sinh lý, các mẫu sinh trắc không đủ chắc chắn để sử dụng như một khóa mã. Thứ hai, nếu khóa mã đã bị phá, sau khi sử dụng sinh trắc sẽ bị mất tính cố định. Trong nhiều hệ thống, việc cập nhật khóa mã theo chu kỳ thường được yêu cầu và việc làm này thực sự khó khăn.
Một kỹ thuật mới cho việc bảo mật khóa bằng cách sử dụng sinh trắc học đã được phát triển bởi Mytect Technology Inc ở Toronto Canada. Giải pháp này không thực hiện độc lập 2 giai đoạn xác thực người dùng và truy xuất khóa. Thay vào đó, khóa được liên kết với sinh trắc tại mức cơ bản trong khi lấy mẫu và sau đó được khôi phục bằng cách sử dụng sinh trắc trong thời gian xác thực. Hơn nữa, khóa hoàn toàn phụ thuộc vào dữ liệu sinh trắc, điều này có nghĩa là việc sử dụng sinh trắc không mất tính cố định khi khóa đã từng bị phá và khóa có thể dễ dàng sửa đổi hoặc cập nhật. Trong suốt thời gian lấy mẫu, quá trình mã hóa sinh trắc kết hợp hình ảnh sinh trắc với một khóa số để tạo ra một khóa bảo mật cho dữ liệu được gọi là Bioscrypt. Khóa số có thể được sử dụng như một khóa giải mã. Trong suốt thời gian xác thực, thuật toán mã hóa sinh trắc lấy khóa mã bằng cách kết hợp hình ảnh sinh trắc với Bioscrypt. Do đó, mã hóa sinh trắc không đơn giản là cung cấp câu trả lời có/không trong quá trình xác thực người dùng để thuận tiện cho việc truy xuất khóa, mà thay vào đó khóa chỉ được lấy ra bằng cách kết hợp hình ảnh sinh trắc với Bioscrypt.
4. Kết luận
Tóm lại, mật mã sinh trắc là một công đoạn liên quan đến quá trình quản lý khóa an toàn. Mật mã sinh trắc không cung cấp trực tiếp cơ chế cho việc mã hóa hay giải mã dữ liệu, nhưng cung cấp một cơ chế thay thế cho các giao thức bảo vệ khóa bảo mật cơ bản. Đặc biệt, mật mã sinh trắc cung cấp phương thức bảo mật cho việc quản lý khóa hỗ trợ cho các hệ mật.