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

Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật

91 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Tác giả Lục Minh Tuấn
Người hướng dẫn PGS.TS. Đặng Trần Khánh
Trường học Trường Đại học Bách Khoa, Đại học Quốc gia TP.HCM
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2016
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 91
Dung lượng 1,72 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI (12)
    • 1.1. Giới thiệu đề tài (12)
    • 1.2. Giao dịch thương mại điện tử (13)
    • 1.3. Khảo sát về giao dịch thương mại điện tử (14)
    • 1.4. Mục đích nghiên cứu (14)
    • 1.5. Ý nghĩa khoa học và thực tiễn (15)
    • 1.6. Giới hạn đề tài (15)
    • 1.7. Cấu trúc báo cáo (16)
  • CHƯƠNG 2: GIỚI THIỆU VỀ SINH TRẮC HỌC (17)
    • 2.1. Tổng quan về sinh trắc học (17)
    • 2.2. Khát quát về hệ thống sinh trắc học (26)
    • 2.3. Đặc điểm của hệ thống sinh trắc học (27)
  • CHƯƠNG 3: PHƯƠNG PHÁP RÚT TRÍCH ĐẶC TRƯNG (29)
    • 3.1. Phương pháp xác định khuôn mặt (29)
    • 3.2. Các đặc trưng khuôn mặt (32)
    • 3.3. Khó khăn và thử thách trong bài toán xác định khuôn mặt người (35)
    • 3.4. Phương pháp rút trích đặc trưng (36)
      • 3.4.1. Phép biến đổi PCA (36)
      • 3.4.2. Eigenface (37)
      • 3.4.3. Biểu diễn khuôn mặt theo tập huấn luyện tìm được (39)
  • CHƯƠNG 4: VI XỬ LÝ BẢO MẬT (40)
    • 4.1. Giới thiệu vi xử lý bảo mật (40)
    • 4.2. Giới thiệu sử dụng Toolkit trong IBM 4765 [8] (40)
      • 4.2.1. Các thành phần trong Toolkit (41)
      • 4.2.2. Lập trình ứng dụng IBM 4765 sử dụng Toolkit (43)
    • 4.3. Giới thiệu các API được IBM 4765 cung cấp sử dụng trong mô hình [9] (47)
      • 4.3.1. Hàm hash (47)
      • 4.3.2. Hàm mã hóa đối xứng (47)
      • 4.3.3. Hàm mã hóa công khai (49)
      • 4.3.4. Hàm tính modulo số nguyên lớn (50)
      • 4.3.5. Hàm sinh số ngẫu nhiên (50)
  • CHƯƠNG 5: CƠ SỞ LÝ THUYẾT (51)
    • 5.1. Xác thực (51)
    • 5.2. Quá trình xác thực (51)
    • 5.3. Một số kiểu mã hóa được sử dụng (53)
      • 5.3.1. Mã hóa đối xứng (DES) (53)
      • 5.3.2. Mã hóa công khai (RSA) (54)
      • 5.3.3. Hàm băm MD5 (55)
      • 5.3.4. Mã xác thực thông điệp MAC sử dụng hàm băm MD5 (55)
    • 5.4. Các công trình nghiên cứu liên quan (56)
    • 5.5. Mô hình Fuzzy Commitment (58)
    • 5.6. Phép chiếu ngẫu nhiên (61)
  • CHƯƠNG 6: XÂY DỰNG MÔ HÌNH THỰC NGHIỆM (64)
    • 6.1. Các kí hiệu được sử dụng trong mô hình (64)
    • 6.2. Huấn luyện cho hệ thống (64)
    • 6.3. Giai đoạn đăng ký người dùng mới (64)
    • 6.4. Giai đoạn xác thực người dùng (66)
    • 6.5. Đánh giá hệ thống (70)
      • 6.5.1. Đánh giá hiệu suất của hệ thống (70)
      • 6.5.2. Đánh giá về độ bảo mật của hệ thống (71)
  • CHƯƠNG 7: KẾT LUẬN (73)
    • 7.1. Đánh giá kết quả (73)
    • 7.2. Hướng phát triển của đề tài (74)
  • TÀI LIỆU THAM KHẢO (76)
  • PHỤ LỤC (78)

Nội dung

[18] Chính vì các lý do trên, đề tài luận văn này sẽ nghiên cứu và tìm giải pháp để áp dụng đặc trưng sinh trắc của con người và việc xác thực người dùng mà cụ thể là hệ thống xác thực t

GIỚI THIỆU ĐỀ TÀI

Giới thiệu đề tài

Những năm cuối thế kỉ XX và đầu thế kỉ XXI chứng kiến sự lớn mạnh vượt bậc của mạng Internet cả về quy mô và chất lượng Internet được ứng dụng rộng rãi ở mọi ngành nghề, lĩnh vực kinh tế, xã hội và an ninh Tính phổ biến rộng rãi khiến Internet đã và đang là nền tảng cơ sở cho các giao dịch thương mại toàn cầu và các ứng dụng của giao dịch điện tử tạo thành một hình thức “xã hội ảo” với các đặc trưng riêng biệt

Trong môi trường xã hội thật, mối quan hệ giữa các đối tác thường được xác định rõ ràng bởi quá trình gặp gỡ, ký kết và thường diễn ra một cách trực tiếp, không hoặc ít thông qua phương tiện truyền thông trung gian Các tổ chức chính phủ, doanh nghiệp và các cá nhân khi tham gia vào giao dịch điện tử luôn đòi hỏi không những phải bảo vệ toàn vẹn thông tin truyền trên Internet mà còn phải tạo cho họ cảm giác tin cậy đối với các dịch vụ được cung cấp giống như khi đang giao dịch trên giấy tờ Họ muốn những người tham gia đúng là những người được yêu cầu, mỗi cá nhân phải chịu trách nhiệm về hành vi liên quan của mình trong giao dịch khi có sự cố xảy ra

Tuy nhiên, môi trường mạng không phải luôn an toàn Đặc trưng của Internet là tính ảo và tính tự do, mọi người đều có thể tham gia và ít khi để lại dấu vết của mình

Việc xác thực mỗi cá nhân qua mạng thường khó khăn nên nguy cơ xảy ra giả mạo địa chỉ, giả danh người dùng hợp pháp và bị lừa đảo trực tuyến là rất cao Đây vừa là điểm mạnh cũng chính là điểm yếu của các giao dịch qua mạng Những năm gần đây các hình thức tội phạm sử dụng công nghệ cao đã phát triển nhanh chóng cùng với sự phát triển của công nghệ

Mặc dù có các nguy cơ kể trên, tính phổ dụng và tiện lợi của công nghệ cao đã và đang làm thay đổi diện mạo cuộc sống và các giao dịch điện tử đang phát triển mạnh trên phạm vi toàn thế giới Vì thế nhu cầu xây dựng một hệ thống bảo mật an toàn thông tin, đảm bảo giao tiếp giữa những người dùng một cách an toàn, có định danh, chống thoái thác trở nên hết sức cần thiết trong phạm vi mỗi quốc gia cũng như toàn cầu

Hiện nay vấn đề nghiên cứu các giải pháp nhằm đảm bảo an toàn thông tin, bảo mật dữ liệu trong các giao dịch điện tử qua môi trường mạng luôn là vấn đề thời sự được các quốc gia và tổ chức quốc tế đặc biệt quan tâm về cả phương diện pháp lý lẫn kỹ thuật, công nghệ Giải pháp an ninh dựa trên các đặc trưng sinh trắc là một trong những hướng nghiên cứu đã và đang được ứng dụng Trên thực tế cũng đã có các sản phẩm quảng cáo, trong các giao dịch điện tử như thẻ ngân hàng, thẻ mua hàng, thẻ an ninh, hộ chiếu… có sử dụng sinh trắc học, tuy nhiên chưa có các sản phẩm thương mại được ứng dụng rộng rãi và hiệu quả trên thực tế Hơn nữa, các nghiên cứu liên quan đến sinh trắc con người luôn là vấn đề nhạy cảm, mang tính chất đặc thù của từng quốc gia Bởi vậy

2 giải pháp này vẫn luôn được quan tâm đặc biệt trong việc đầu tư nghiên cứu và phát triển [18]

Chính vì các lý do trên, đề tài luận văn này sẽ nghiên cứu và tìm giải pháp để áp dụng đặc trưng sinh trắc của con người và việc xác thực người dùng mà cụ thể là hệ thống xác thực từ xa Đồng thời đề tài này cũng tận dụng những ưu điểm của các hệ thống đã có, khắc phục một số nhược điểm đang còn tồn đọng trong các mô hình xác thực từ xa hiện hành như vấn đề bảo vệ đặc trưng sinh trắc của người dùng, xây dựng mô hình xác thực từ xa có khả năng chống lại một số hình thức tấn công phổ biến đặc biệt là tấn công xuất phát từ chính bên trong hệ thống.

Giao dịch thương mại điện tử

Ngày nay cùng với các ứng dụng công nghệ thông tin, hình thức thương mại điện tử truyền thống đang dần thay đổi sang một hình thức khác, đó là thương mại điện tử

Thương mại điện tử bắt đầu xuất hiện vào những năm 1970 với sự ra đời của hoạt động chuyển nhượng quỹ điện tử giữa các ngân hàng thông qua mạng an toàn Tuy nhiên chỉ đến những năm 1990, thương mại điện tử mới chuyển từ các hệ thống cục bộ sang mạng toàn cầu Internet Hàng loạt các tên tuổi lớn ra đời (Amazon.com, yahoo.com, eBay.com…) đã khẳng định và góp phần vào sự tăng trưởng nhanh chóng giá trị giao dịch thông qua thương mại điện tử

Một số hình thức hoạt động giao dịch thương mại điện tử phổ biến hiện nay:

- Thư điện tử (e-mail): Các tổ chức, cá nhân có thể gửi thư cho nhau một cách trực tiếp qua mạng Đây là hình thức phổ biến và dễ thực hiện nhất, hầu như mọi người ở nhiều lứa tuổi đều sử dụng

- Thanh toán điện tử (e-payment): Là việc thanh toán tiền qua hệ thống mạng (trả tiền lương, thanh toán tiền mua hàng…) Ngoài ra thanh toán điện tử còn áp dụng phổ biến trong các dịch vụ liên quan đến ngân hàng như: túi tiền điện tử (electronic purse) là nơi để tiền trên Internet, chủ yếu là thẻ thông minh smart card; giao dịch ngân hàng số hóa (digital banking)…

- Trao đổi dữ liệu điện tử (EDI) là việc chuyển giao thông tin từ máy tính này sang máy tính khác bằng phương tiện điện tử, có sử dụng một tiêu chuẩn đã được thỏa thuận để cấu trúc thông tin, công việc trao đổi thường là giao dịch kết nối, đặt hàng giao nhận …

Các hình thức hoạt động thương mại điện tử vẫn đang ngày một mở rộng và có nhiều sáng tạo Ngày nay, rất nhiều ngành công nghiệp cũng như các lĩnh vực xã hội khác nhau cũng tham gia vào thị trường thương mại điện tử Vì vậy, lợi ích mà thương mại điện tử mang lại cho cuộc sống con người ngày càng hiện đại hơn, mở rộng hơn, nâng cao hơn

Khảo sát về giao dịch thương mại điện tử

Trên thế giới, tại các nước phát triển, các giao dịch điện tử phát triển nhanh tới mức chóng mặt Theo số liệu khảo sát được của Forrester Research (một công ty nghiên cứ Internet ở Mỹ) doanh số thương mại điện tử trên thế giới không ngừng tăng nhanh: năm 1997 đạt khoảng 36 tỷ USD, năm 2000 đạt khoảng 700 tỷ USD tới năm 2002 thì đạt khoảng hơn 2293 tỷ USD Sự phát triển của thương mại điện tử dường như không có giới hạn mặc dù gặp khá nhiều khó khăn, trở ngại Cụ thể là trong những năm qua, tuy có thời gian các công ty thương mại điện tử gặp phải không ít khó khăn, song tỷ lệ tăng việc làm trong các công ty này vẫn đều đặn khoảng 10%, tỷ lệ này nhanh hơn tỷ lệ tăng việc làm của toàn bộ nền kinh tế Thương mại điện tử cũng tăng doanh thu gần gấp đôi mỗi năm, đó là lý do nhiều nước đang ráo riết khuyến khích, thúc đẩy phát triển thương mại điện tử

Tại Việt Nam, tính đến tháng 3 năm 2008 thì Việt Nam xếp thứ 17 trong top các quốc gia có nhiều người sử dụng Internet nhất thế giới Những thành công trong thương mại điện tử của Việt Nam đạt được cũng hòa mình vào những thành công chung của thế giới trong việc ứng dụng thương mại điện tử vào đời sống Bên cạnh những thành công đó, thương mại điện tử ở Việt Nam cũng phải đương đầu với không ít thử thách Trong những vấn đề đó thì vấn đề an toàn thông tin, an ninh mạng, tội phạm liên quan đến thương mại điện tử đang là một trong những vấn đề cấp bách cần được giải quyết Những hành vi lợi dụng công nghệ để phạm tội đang ngày càng gia tăng; tình trạng mất tiền trong tài khoản, lộ lọt thông tin khách hàng…đã và đang ảnh hưởng lớn đến hoạt động của các cơ quan, tổ chức, kéo theo đó là ảnh hưởng tới việc sử dụng của người dân, làm họ dễ mất lòng tin vào các hệ thống thương mại điện tử đang được sử dụng Từ đó có thể dẫn tới việc họ tạm ngưng sử dụng các dịch vụ, hay thậm chí nặng hơn là từ bỏ các giao dịch điện tử để quay về với giao dịch truyền thống, đi ngược lại với sự phát triển chung của thế giới Vấn đề đáng lo nhất hiện nay không chỉ ở Việt Nam mà trên toàn thế giới đó là phải đối mặt với sự tấn công của một số phần tử trong xã hội, gây ảnh hưởng không nhỏ tới nền kinh tế Một vấn đề bức xúc được đặt ra là nghiên cứu phát triển các giải pháp an toàn thông tin cho thương mại điện tử và giao dịch điện tử qua mạng [18]

Mục đích nghiên cứu

Xác thực từ xa là một đề tài thú vị và thiết thực đã thu hút được sự quan tâm của nhiều nhà nghiên cứu trong và ngoài nước Trong đó một số yêu cầu được đặt ra cho hệ thống là bảo vệ đặc trưng sinh trắc của người dùng, tránh cho hệ thống bị tấn công từ cả bên ngoài lẫn bên trong và đảm bảo yêu cầu xác thực được hoạt động đúng đắn Có rất nhiều mô hình, nghiên cứu được đưa ra, mỗi mô hình có những ưu và nhược điểm riêng

Mô hình sau sẽ ra để khắc phục nhược điểm của các mô hình trước đó, dần dần đang

4 thỏa mãn hầu hết các yêu cầu đặt ra Sự phát triển và đang dần hoàn thiện của các hệ thống xác thực từ xa luôn đồng hành với sự phát triển của kỹ thuật mã hóa, sự phát triển của toán học và ứng dụng các kỹ thuật này vào mô hình thực tiễn

Trong hoàn cảnh các ứng dụng, dịch vụ của các cơ quan doanh nghiệp đang ngày càng phổ biến trên Internet, cần một nhu cầu bức thiết là đảm bảo tính riêng tư, cũng như đảm bảo cho việc xác thực được hoạt động hiệu quả Trong khi các công trình nghiên cứu liên quan trước đó vẫn còn tồn đọng nhiều hạn chế đặc biệt là trong việc chống các hình thức tấn công từ chính bên trong của hệ thống và các vấn đề liên quan đến việc bảo vệ sự nhạy cảm của đặc trưng sinh trắc người dùng, tránh việc đặc trưng sinh trắc của người dùng bị rò rỉ từ đó kẻ tấn công có thể suy ngược ra những thông tin bất lợi cho người dùng và hệ thống

Do vậy đề tài này sẽ tập trung vào nghiên cứu các mô hình xác thực từ xa đã có, tìm ra những ưu-nhược điểm của các mô hình này để đề xuất một mô hình xác thực mới hoạt động hiệu quả hơn Bên cạnh đó qua đề tài này cũng nghiên cứu một số giải thuật mã hóa phổ biến để ứng dụng vào hệ thống xác thực từ xa một cách phù hợp Đề tài này tập trung vào việc nghiên cứu chống lại hình thức tấn công từ chính bên trong của hệ thống, bảo vệ đặc trưng sinh trắc khi lưu trên cơ sở dữ liệu của máy chủ (server).

Ý nghĩa khoa học và thực tiễn

Về mặt nghiên cứu khoa học, đề tài này có ý nghĩa phát triển và thúc đẩy các nghiên cứu về ứng dụng sinh trắc học vào lĩnh vực bảo mật mà cụ thể là sử dụng sinh trắc học để xác thực người dùng từ xa Qua đó nghiên cứu đưa vào các ứng dụng thương mại điện tử, các dịch vụ công bằng cách đề xuất một mô hình xác thực mới phù hợp hơn về việc sử dụng các đặc trưng sinh trắc của con người

Về mặt thực tiễn thì qua đề tài nghiên cứu này nếu được ứng dụng vào thực tiễn thì sẽ tăng cường mức độ tin cậy của người dùng về các dịch vụ trực tuyến, đẩy mạnh việc sử dụng thiết lập hay sử dụng các ứng dụng công nghệ thông tin lên trên mạng Internet như: tăng cường các dịch vụ ngân hàng (ngân hàng điện tử), các dịch vụ công, đào tạo trực tuyến…đảm bảo đáp ứng được các yêu cầu về nghiệp vụ cũng như bảo mật được thông tin người dùng.

Giới hạn đề tài

Đề tài tập trung nghiên cứu các mô hình xác thực từ xa sử dụng đặc trưng sinh trắc học Phân tích điểm yếu của các mô hình xác thực từ xa hiện hành Đề xuất một mô hình xác thực từ xa tập trung vào việc bảo vệ đặc trưng sinh trắc người dùng lưu trên hệ thống bằng việc sử dụng mô hình Fuzzy Commitment kết hợp với phép biến đổi ngẫu nhiên trực giao

5 Tìm hiểu về vi xử lý bảo mật IBM 4765 về các hàm và các thư viện hỗ trợ cho quá trình mã hóa và giải mã Xây dựng các hàm với chức năng tuong tự các hàm mà vi xử lý cung cấp để hiện thực mô hình.

Cấu trúc báo cáo

Nội dung của luận văn thạc sĩ này được chia làm 7 chương

- Chương 1 là phần giới thiệu về nhu cầu thực tế trong việc sử dụng thương mại điện tử, mục đích và ý nghĩa của việc nghiên cứu, giới hạn đề tài và cấu trúc bài báo cáo

- Chương 2: Giới thiệu tổng quan về sinh trắc học, các hệ thống xác thực từ xa sử dụng đặc trưng sinh trắc Các đặc điểm của hệ thống sinh trắc học

- Chương 3 là phần mô tả về cách rút trích đặc trưng sinh trắc, các phương pháp rút trích đặc trưng được sử dụng trong mô hình Khó khăn và thử thách trong rút trích đặc trưng sinh trắc

- Chương 4 là phần giới thiệu tổng quan về vi xử lý bảo mật IBM 4765 Cách thức để tiến hành giao tiếp với vi xử lý Các API được vi xử lý cung cấp giúp thực hiện các tác vụ mã hóa

- Chương 5 là phần trình bày về cơ sở lý thuyết Một số kiểu mã hóa được sử dụng trong mô hình Các công trình nghiên cứu liên quan đến đề tài

- Chương 6 là phần mô tả về mô hình được hiện thực, đánh giá mô hình

- Chương 7 là phần kết luận các việc làm được, chưa làm được và hướng phát triển của đề tài.

GIỚI THIỆU VỀ SINH TRẮC HỌC

Tổng quan về sinh trắc học

Sinh trắc học hay công nghệ sinh trắc học (thuật ngữ học là Biometric) là công nghệ sử dụng những thuộc tính vật lý, đặc điểm sinh học riêng của mỗi cá nhân như vân tay, mống mắt, khuôn mặt…để nhận diện Thuật ngữ sinh trắc học (Biometric) được dùng ghép theo tiếng Hy Lạp từ 2 từ: Bio (thuộc về thực thể sinh vật sống) và metriko (kỹ thuật độ đo, đo lường), thuật ngữ này đã được hình thành trong quá trình phát triển loài người

Sinh trắc học được định nghĩa như là các đặc điểm sinh học duy nhất đo được để nhận dạng tự động hay xác thực một người Các đặc trưng sinh trắc học trên cơ thể con người có thể được sử dụng để xác định duy nhất từng cá thể Nhận dạng thông qua đặc điểm sinh trắc đã có từ rất lâu, chẳng hạn như việc xác định danh tính người dùng thông qua giọng nói, đặc điểm khuôn mặt, dấu vân tay…

Xác thực dựa trên sinh trắc học không phải là ngành khoa học chính xác Kết quả xác thực dựa trên tỷ lệ (phần trăm) giống nhau giữa đầu vào sinh trắc học và mẫu sinh trắc học được lưu trong cơ sở dữ liệu Một hệ thống xác thực sử dụng đặc trưng sinh trắc sẽ phải định nghĩa một ngưỡng mà nếu tỷ lệ giống nhau giữa sinh trắc đầu vào và sinh trắc được lưu trong cơ sở dữ liệu lớn hơn hoặc bằng tỉ lệ này thì việc xác thực thành công, còn ngược lại thì xác thực bị thất bại Một hệ thống xác thực có hai loại tỷ lệ:

 Tỉ lệ chấp nhận sai (FAR): Là tỷ lệ mà khi người dùng giả danh nhưng được xác thực thành công

 Tỉ lệ từ chối sai (FRR): Là khi một người dùng chính xác lại không thể vượt qua được quá trình xác thực của hệ thống

Việc chúng ta xác định ra một ngưỡng xác thực cho hệ thống sẽ ảnh hưởng đến sự cân bằng của hai tỷ lệ trên Nếu một ngưỡng thấp thì sẽ làm tăng tỉ lệ FAR nghĩa là một người nào đó quá dễ dàng vượt qua được hệ thống xác thực Điều này làm tăng khả năng giả mạo của người dùng, hệ thống xác thực hoạt động không đảm bảo được tính an toàn

Ngược lại, nếu một hệ thống có một ngưỡng quá cao, dẫn tới tăng tỉ lệ FRR nghĩa là người dùng chính xác rất khó để chứng minh đúng họ là chính họ Điều này sẽ làm cho tính phổ biến của hệ thống này khó được chấp nhận rộng rãi

Khoa học nghiên cứu về sinh trắc học cho biết một số yếu tố có thể sử dụng để xác định tính duy nhất của một cá thể, có thể sử dụng một số đặc trưng sinh trắc để xác định cá thể như sau: a Dấu vân tay

7 Là một trong những đặc điểm nhận dạng sinh trắc phổ biến và được sử dụng rộng rãi Dấu vân tay có thể được số hóa và đưa vào máy tính thông qua thiết bị quét Tuy nhiên, nhận dạng dấu vân tay không đơn giản là so sánh ảnh bitmap (điều này dường như không thể vì chúng thường quá lớn và có thể bị sai lệch khi chụp quét) Cơ chế xử lý ở đây là xây dựng một biểu diễn bằng đồ thị từ một ảnh vân tay, trong đó mỗi đỉnh là một dạng đặc trưng xác định trước (ví dụ như chóp cuốn) Vì vậy bài toán nhận dạng dấu vân tay có thể chuyển thành một vấn đề thuật toán kinh điển là so trùng hai đồ thị

 Đầu đọc dấu vân tay

Trước khi có thể so sánh hoặc xác thực, điều đầu tiên chúng ta cần làm là lấy được vân tay ở dạng số hóa Phương pháp truyền thống sử dụng mực để in vân tay lên một mẩu giấy Mẩu giấy sau đó được quét bằng máy quét truyền thống Phương pháp này ngày nay không còn được sử dụng rộng rãi bởi vì hệ thống cơ sở dữ liệu vân tay được số hóa và những đầu đọc vân tay hiện đại hơn được sử dụng Các đầu đọc này không cần mực để hoạt động Những đầu đọc vân tay này chủ yếu quét vân tay dựa vào quang học, nhiệt độ, silicon hoặc sóng siêu âm Đầu đọc quang học là hệ thống phổ biến nhất ở thời điểm hiện tại Chúng hoạt động dựa trên nguyên lý sự phản xạ ánh sáng bị thay đổi tại vị trí đường vân tay chạm vào đầu đọc Kích thước đầu đọc quang học thường dao động trong khoảng 10 x 10 x 5 centimet và khá khó để có thể thu nhỏ kích thước trên bởi vì đầu đọc cần phải bao gồm nguồn sáng, bề mặt phản xạ và bộ cảm ứng ánh sáng Đầu đọc quang học này thường hoạt động hiệu quả nhưng đôi khi cũng gặp phải nhiều vấn đề nếu đầu đọc được sử dụng quá nhiều và không được lau chùi sạch sẽ Ngoài ra, đầu đọc quang học không thể dễ dàng bị lừa bởi hình ảnh vân tay nhưng sẽ gặp vấn đề nếu gặp một mô hình ba chiều mô phỏng dấu vân tay Vì thế, một vài đầu đọc sẽ được trang bị thêm bộ phận kiểm tra xem đó có phải là ngón tay còn sống hay không Đầu đọc quang học tương đối rẻ và được sản xuất bởi nhiều nhà sản xuất và có thể được tích hợp vào bàn phím, chuột hoặc màn hình máy tính

Kỹ thuật quét vân tay bằng silicon ra đời trước kỹ thuật quang học Chúng dựa vào điện dung của ngón tay Bộ cảm ứng ngón tay bằng dòng điện một chiều và điện dung bao gồm một dãy các tụ điện hình chữ nhật Một mặt của điện dung là ngón tay, mặt còn lại là một khu vực nhỏ (một điểm ảnh) trên bề mặt chip vi xử lý Ngón tay sẽ tiếp xúc với bề mặt con chip (thực ra là bề mặt phủ cách điện của con chip) Những gờ nhô lên của dấu vân tay sẽ gần hơn với điểm ảnh, và do đó sẽ có điện dung cao hơn Phần “thung lũng” (nằm giữa các gờ của dấu vân tay) nằm xa hơn do đó sẽ có điện dung thấp hơn

Một dãy các điện dung như vậy có thể đặt trên một con chip kích thước 15x15x5 milimet và do đó sẽ giải quyết được vấn đề kích thước Thẻ PCMCIA với đầu đọc vân tay bằng silicon đã có mặt trên thị trường Việc tích hợp đầu đọc silicon trên một thẻ

8 thông minh với kích thước nhỏ là chưa đạt được, nhưng điều đó đang được kỳ vọng trong tương lai

Chất lượng hình ảnh vân tay quét bởi đầu đọc silicon thường bị ảnh hưởng bởi độ ẩm của ngón tay vì đổ ẩm ảnh hưởng nhiều đến điện dung của ngón tay Điều này có nghĩa là với những ngón tay quá khô hoặc quá ướt sẽ không thể cho một hình ảnh vân tay với chất lượng tốt và những người thường xuyên có ngón tay bị ướt sẽ gặp vấn đề với hệ thông quét vân tay silicon

Trong khi đó, đầu đọc vân tay bằng sóng siêu âm là hình thức mới nhất và ít phổ biến nhất Đầu đọc sử dụng sóng siêu âm để xác định bề mặt vân tay Người dùng đặt ngón tay trên một mảnh thủy tinh và bộ cảm ứng siêu âm sẽ di chuyển và đọc toàn bộ vân tay Quá trình này chỉ mất từ một đến hai giây Sóng siêu âm không bị ảnh hưởng bởi bụi bẩn và chất lượng hình ảnh quét từ đầu đọc có chất lượng khá tốt

Vân tay thường không được so sánh và lưu trữ dưới dạng ảnh thô Kỹ thuật so trùng vân tay có thể được chia làm hai loại: loại chi tiết và loại tương quan Kỹ thuật so trùng chi tiết sẽ tìm những điểm đặc trưng của vân tay và so sánh vị trí tương đối của chúng với ngón tay đang quét Những điểm đặc trưng này bao gồm điểm kết thúc của gờ vân tay (ridge ending), vị trí nơi gờ vân tay chia làm nhiều đường (bifurcation), điểm vân tay (dot)

Vấn đề gặp phải là rất khó để tách lấy những điểm đặc trưng một cách chính xác khi chất lượng hình ảnh vân tay không được đảm bảo

Hình 2.3 : Hình ảnh dấu vân tay

Khả năng đọc vân tay phụ thuộc vào sự khác nhau của yếu tố môi trường và yếu tố làm việc Những yếu tố này bao gồm độ tuổi, giới tính, nghề nghiệp và chủng tộc

Các công nhân làm mỏ được xem như là khó quét vân tay nhất Ngoài ra, tỉ lệ dân số mất ngón tay cũng khá cao, với việc mất ngón tay trỏ bên trái có tỉ lệ cao nhất là 0.62%

Khát quát về hệ thống sinh trắc học

 Hệ thẩm định (Verification): Hệ thống thực hiện đối sánh 1-1 giữa mẫu sinh trắc học thu nhận được (Biometric sample) so với mẫu sinh trắc được lưu trong hệ thống (Biometric template) Kết quả trả lời câu hỏi mẫu sinh trắc thu nhận được có liên quan tới mẫu sinh trắc đã lưu trong hệ thống hay không, thông thường thì hệ thẩm định kết hợp với thông tin định danh chủ thể thực hiện chức năng xác thực

16 thẩm định sinh trắc (Authentication) Trong hệ xác thực thẩm định đòi hỏi cao về độ chính xác để xác nhận xem sinh trắc thu nhận được có phải là sinh trắc của chủ thể đã lưu hay không

 Nhận dạng (Identification, Recongnition): Hệ thống thực hiện chức năng tìm kiếm (1-n) từ một cơ sở dữ liệu để tìm một mẫu sinh trắc cụ thể nào đó đã lưu từ trước trong hệ thống, sau đó thực hiện đối sánh xấp xỉ để nhận dạng, phân lớp hoặc nhận dạng đồng nhất, ví dụ để nhận dạng ra mẫu vân tay tội phạm trong hồ sơ các dấu vân tay, từ đó mới xác định đúng danh tính của người sử hữu vân tay.

Đặc điểm của hệ thống sinh trắc học

Xác thực bằng mật khẩu truyền thống dùng mật khẩu không cần sử dụng các phương pháp nhận dạng mẫu phức tạp, mà chỉ cần so sánh trực tiếp mật khẩu Cơ chế này cho phép xây dựng hệ thống xác thực đảm bảo tính chính xác, ổn định và hiệu quả đúng như thiết kế Tuy nhiên vấn đề không an toàn và là điểm yếu nhất của hệ thống này là đòi hỏi người dùng phải ghi nhớ, từ đó nên độ dài mật khẩu thường bị rút ngắn lại và chứa thông tin dễ suy đoán bởi khả năng ghi nhớ của con người là có giới hạn Vì lẽ đó nên người ta sử dụng kết hợp thêm với hệ thống sinh trắc học nhờ những ưu điểm của hệ thống sinh trắc học Tuy nhiên khi thu nhận, xử lý, biểu diễn và chọn các đặc trưng thì kết quả phụ thuộc rất nhiều vào phương pháp lấy mẫu, môi trường lấy mẫu, trạng thái tương tác của người lấy mẫu với thiết bị và tùy theo loại mẫu sinh trắc thu nhận

 Thu nhận mẫu sinh trắc không ổn định: Như đã nói, tín hiệu sinh trắc học thu nhận phụ thuộc vào đặc trưng sinh lý, hành vi tương tác của người dùng Đối với nhận dạng khuôn mặt, do góc chụp hình khuôn mặt không thể tuyệt đối giống nhau qua các lần chụp nên kết quả lấy mẫu phụ thuộc lớn vào vị trí chụp hình khuôn mặt Vì thế các mẫu thu được đều có sự khác nhau

 Thay đổi của đặc trưng sinh trắc: Ngoài việc khó khăn trong quá trình thu nhận, đặc trưng sinh trắc còn bị ảnh hưởng bởi ngoại cảnh bên ngoài Với vân tay, các hoạt động làm việc, tai nạn lao động… ảnh hưởng nhiều tới chất lượng hình ảnh dấu vân tay trên đầu ngón tay thu nhận mẫu Nhận dạng khuôn mặt thì có thể gặp nhiều khó khăn trong việc thay đổi kiểu tóc, hình thành và phát triển râu, phẫu thuật thẩm mỹ…

 Tác động của môi trường: Các tác động của môi trường tại thời điểm thu nhận cũng ảnh hưởng tới kết quả lấy mẫu sinh trắc

 Giả mạo đặc trưng sinh trắc : Việc giả mạo sinh trắc không quá khó khăn như mọi người vẫn thường nghĩ Trong thực tế sự phát triển của công nghệ sinh học đã giúp các nhà nghiên cứu làm giả dấu vân tay một cách dễ dàng Hơn nữa, việc đảm bảo bí mật cho các đặc trưng sinh trắc này là một việc làm không khả thi Do vậy,

17 có thể nói việc lấy mẫu sinh trắc tương đối đơn giản, vấn đề chỉ là phụ thuộc vào công nghệ làm giả theo mẫu mà thôi

 Thu hồi đặc trưng sinh trắc: Việc thu hồi hay hủy bỏ đặc trưng sinh trắc rất khó khăn không giống như các hệ thống sử dụng mật khẩu Mỗi người chỉ có một đặc trưng ứng với một sinh trắc và tồn tại gần như theo suốt đời Vậy nên một khi sinh trắc đã bị giả mạo thì có thể hệ thống đó bị sụp đổ nếu hệ thống xác thực không có sự kết hợp với nhiều yếu tố khác[5]

 Sự thiếu đa dạng đặc điểm sinh trắc: Người dùng dường như phải sử dụng một đặc trưng sinh trắc cho nhiều hệ thống khác nhau và không có cơ hội lựa chọn như sử dụng mật khẩu Vì lẽ đó nên rất dễ bị đánh cắp đặc trưng sinh trắc [5]

 Độ tin cậy của người dùng: Việc sử dụng các đặc trưng sinh trắc của mình vào các dịch vụ trên Internet làm cho người dùng không yên tâm về vấn đề bảo mật và chưa có một cơ chế nào đảm bảo sự an toàn cho đặc trưng sinh trắc của người dùng lưu trên hệ thống

Ngoài ra, các thuật toán rút trích đặc trưng sinh trắc từ mẫu thu nhận cũng không hoàn hảo và có một độ lỗi nhất định Kết quả là để đối sánh hai mẫu sinh trắc học có giống nhau hay không là quá trình nhận dạng mẫu và ra quyết định khá phức tạp Do các nguyên nhân ảnh hưởng đã nêu trên, đối sánh sinh trắc học không thể thực hiện một cách tuyệt đối như với các hệ thống mật khẩu truyền thống Thông thường, đối sánh sinh trắc học thường dùng cách đối sánh giữa hai mẫu, sự giống nhau từng thành phần nhỏ được đánh giá bằng cho điểm (matching score) Khi số điểm đối sánh đủ lớn, vượt ngưỡng định trước, có thể coi là hai mẫu sinh trắc gần tương tự nhau

PHƯƠNG PHÁP RÚT TRÍCH ĐẶC TRƯNG

Phương pháp xác định khuôn mặt

Đã có nhiều công trình nghiên cứu đã tiến hành để tìm ra phương pháp xác định khuôn mặt người từ ảnh xám đến ngày nay là ảnh màu Dựa vào tính chất của các phương pháp xác định khuôn mặt, các phương pháp xác định khuôn mặt này được chia làm bốn hướng tiếp cận chính [19]:

 Hướng tiếp cận dựa trên so khớp mẫu: Mục tiêu của hướng tiếp cận này là dùng các mẫu đặc trưng sinh trắc chuẩn của khuôn mặt người (các mẫu này được chọn lựa và lưu trữ) để mô tả cho khuôn mặt người hay các đặc trưng khuôn mặt (các mẫu này phải chọn làm sao cho tách biệt nhau theo tiêu chuẩn mà các tác giả định ra để so sánh) Các mối tương quan giữa dữ liệu ảnh đưa vào và các mẫu dùng để xác định khuôn mặt người Trong so khớp mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một hàm Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và miệng Thông qua các giá trị tương quan này mà các tác giả quyết định có hay không có tồn tại khuôn mặt trong ảnh Hướng tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi (đã được chứng minh) Nhiều độ phân giải, đa tỷ lệ, các mẫu con và các mẫu biến dạng được xem xét thành bất biến về tỷ lệ và hình dáng Hình chiếu được dùng như các mẫu để xác định khuôn mặt người Dùng PCA (phân tích thành phần chính - Principal Component Analysis - PCA) để có một tập hình chiếu cơ bản từ các mẫu khuôn mặt, hình chiếu được mô tả như một mảng các bit Dùng đặc trưng hình chiếu riêng kết hợp biến đổi Hough để xác định khuôn mặt người Sau đó một phương pháp xác định dựa trên đa loại mẫu để xác định các thành phần của khuôn mặt được trình bày Phương pháp này định nghĩa một số giả thuyết để mô tả các khả năng của các đặc trưng khuôn mặt

Với một khuôn mặt sẽ có một tập giả thuyết, lý thuyết DepsterShafer Dùng một nhân tố tin cậy để kiểm ra sự tồn tại hay không của các đặc trưng của khuôn mặt và kết hợp nhân tố tin cậy này với một độ đo để xem xét có hay không có khuôn mặt trong ảnh

 Hướng tiếp cận dựa trên diện mạo: Trái ngược với các phương pháp so khớp mẫu với các mẫu đã được định nghĩa trước bởi những chuyên gia, các mẫu trong hướng tiếp cận này được học từ các ảnh mẫu Một cách tổng quát, các phương pháp theo hướng tiếp cận này áp dụng các kỹ thuật theo hướng xác suất thống kê và máy học để tìm những đặc tính liên quan của khuôn mặt và không phải là khuôn mặt Các đặc tính đã được học ở trong hình thái các mô hình phân bố hay các hàm biệt số nên dùng, có thể dùng các đặc tính này để xác định khuôn mặt người Đồng

19 thời, bài toán giảm số chiều thường được quan tâm để tăng hiệu quả tính toán cũng như hiệu quả xác định Các tiếp cận khác trong hướng tiếp cận dựa trên diện mạo là tìm một hàm biệt số (như: mặt phẳng quyết định, siêu phẳng để tách dữ liệu, hàm ngưỡng) để phân biệt hai lớp dữ liệu: khuôn mặt và không phải khuôn mặt

Bình thường, các mẫu ảnh được chiếu vào không gian có số chiều thấp hơn, rồi sau đó dùng một hàm biệt số (dựa trên các độ đo khoảng cách) để phân loại hoặc xây dựng mặt quyết định phi tuyến bằng mạng neural đa tầng Hoặc dùng SVM (Support Vector Machine) và các phương thức kernel, chiếu hoàn toàn các mẫu vào không gian có số chiều cao hơn để dữ liệu bị rời rạc hoàn toàn và ta có thể dùng một mặt phẳng quyết định phân loại các mẫu khuôn mặt và không phải khuôn mặt [7]

 Hướng tiếp cận dựa trên tri thức: Thực hiện mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các luật Thông thường là các luật mô tả quan hệ của các đặc trưng trên khuôn mặt Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt người Đây là hướng tiếp cận dạng top-down Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương ứng Ví dụ, một khuôn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khuôn mặt và có một mũi, một miệng Các quan hệ của các đặc trưng có thể được mô tả như quan hệ về khoảng cách và vị trí

Thông thường các tác giả sẽ trích đặc trưng của khuôn mặt trước tiên để có được các ứng viên, sau đó các ứng viên này sẽ được xác định thông qua các luật để biết ứng viên nào là khuôn mặt và ứng viên nào không phải khuôn mặt Thường áp dụng quá trình xác định để giảm số lượng xác định sai

Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang các luật một cách hiệu quả Nếu các luật này quá chi tiết (chặt chẽ) thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định lầm một vùng nào đó không phải là khuôn mặt mà lại xác định là khuôn mặt Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định các khuôn mặt có nhiều tư thế khác nhau

Có hai tác giả Yang và Huang [19] đã dùng một phương thức theo hướng tiếp cận này để xác định các khuôn mặt Hệ thống của hai tác giả này bao gồm ba mức luật Ở mức cao nhất, dùng một khung cửa sổ quét trên ảnh và thông qua một tập luật để tìm các ứng viên có thể là khuôn mặt Ở mức kế tiếp, hai ông dùng một tập luật để mô tả tổng quát hình dáng khuôn mặt Còn ở mức cuối cùng lại dùng một tập luật khác để xem

20 xét ở mức chi tiết các đặc trưng khuôn mặt Một hệ thống đa độ phân giải có thứ tự được dùng để xác định (hình 3.1)

Trong đó: Ảnh a là ảnh ban đầu có độ phân giải là n = 1 Ảnh b, c, d là ảnh có độ phân giải lần lượt là n = 4, 8, 16

Các luật ở mức cao nhất để tìm ứng viên như: “vùng trung tâm khuôn mặt (phần tối hơn trong hình 3.1) có bốn phần với một mức độ đều cơ bản”, “phần xung quanh bên trên của một khuôn mặt (phần sáng hơn trong hình 3.1) có một mức độ đều cơ bản”, và

“mức độ khác nhau giữa các giá trị xám trung bình của phần trung tâm và phần bao bên trên là đáng kể” Độ phân giải thấp nhất (mức một) của ảnh dùng để tìm ứng viên khuôn mặt mà còn tìm ở các mức phân giải tốt hơn Ở mức hai, xem xét biểu đồ histogram của các ứng viên để loại bớt ứng viên nào không phải là khuôn mặt, đồng thời dò ra cạnh bao xung quanh ứng viên Ở mức cuối cùng, những ứng viên nào còn lại sẽ được xem xét các đặc trưng của khuôn mặt về mắt và miệng Hai ông đã dùng một chiến lược “từ thô đến mịn” hay “làm rõ dần” để giảm số lượng tính toán trong xử lý Mặc dù tỷ lệ chính xác chưa cao, nhưng đây là tiền đề cho nhiều nghiên cứu sau này

 Hướng tiếp cận dựa trên đặc trưng không thay đổi Đây là hướng tiếp cận theo kiểu bottom-up Các tác giả cố gắng tìm các đặc trưng không thay đổi của khuôn mặt người để xác định khuôn mặt người Dựa trên nhận xét thực tế, con người dễ dàng nhận biết các khuôn mặt, các đối tượng trong các tư thế khác nhau và điều kiện ánh sáng khác nhau thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi Có nhiều nghiên cứu đầu tiên xác định các đặc trưng khuôn mặt rồi chỉ ra có khuôn mặt trong ảnh hay không Các đặc trưng như: lông mày, mắt, mũi, miệng, và đường viền của tóc được trích bằng phương pháp xác định cạnh Trên cơ sở các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan hệ của các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh Một vấn đề của các thuật toán theo hướng tiếp cận đặc trưng cần phải điều chỉnh cho phù hợp điều kiện ánh sáng, nhiễu và bị che khuất Đôi khi bóng của khuôn mặt sẽ tạo thêm cạnh mới mà cạnh này lại rõ hơn cạnh thật sự của khuôn mặt Vì thế nếu dùng cạnh để xác định sẽ gặp khó khăn [19]

Hình 3.1: Độ phân giải của 1 ảnh

Các đặc trưng khuôn mặt

Các đặc trưng khuôn mặt bao gồm [19]:

 Đặc trưng hình học: cấu trúc hình dạng và các thành phần trên khuôn mặt: miệng, mũi, mắt, lông mày Khoảng cách giữa mắt, mũi, miệng và hàm; đường bao các hốc mắt; các cạnh của miệng; vị trí của mũi, hai mắt và các vùng xung quanh Các thành phần khuôn mặt được rút trích để hình thành vector đặc trưng biểu diễn hình học khuôn mặt

 Đặc trưng về diện mạo biểu diễn sự thay đổi vẻ bề ngoài: kết cấu da như các nếp nhăn trên khuôn mặt; biểu đồ nhiệt khuôn mặt; các mẫu nhiệt khuôn mặt là duy nhất với mỗi người và đặc trưng nụ cười Các đặc trưng về diện mạo có thể được rút trích trên cả khuôn mặt hoặc một phần nào đó trên khuôn mặt

Một số phương pháp xác định các đặc trưng của khuôn mặt có tỷ lệ chính xác cao:

 Phương pháp xác định khuôn mặt từ một ảnh có hình nền phức tạp Phương pháp này dựa trên cạnh (dùng phương pháp Candy và heuristics) loại bỏ các cạnh để còn lại duy nhất một đường bao xung quanh khuôn mặt Một hình ellipse dùng

Hình 3.2: Điểm đặc trưng khuôn mặt

Hình 3.3: Diện mạo biểu diễn sự thay đổi khuôn mặt

22 để bao khuôn mặt, tách biệt vùng đầu và hình nền Tỷ lệ chính xác của thuật toán là 80%

 Phương pháp xác định khuôn mặt trong ảnh xám Dùng bộ lọc để làm nổi các biên, các phép toán hình thái học (morphology) được dùng để làm nổi bật các vùng có cường độ cao và hình dáng chắc chắn (như mắt) Thông qua histogram để tìm các đỉnh nổi bật để xác định các ngưỡng chuyển ảnh xám thành hai ảnh nhị phân

Các thành phần dính nhau đều xuất hiện trong hai ảnh nhị phân thì được xem là vùng của ứng viên khuôn mặt rồi phân loại xem có phải là khuôn mặt không

Phương pháp được kiểm tra trên các ảnh chỉ có đầu và vai của người Tuy nhiên còn vấn đề, làm sao sử dụng các phép toán morphology và làm sao xác định khuôn mặt trên các vùng ứng viên

 Phương pháp xác định khuôn mặt dựa mô hình xác suất: Để xác định khuôn mặt ở trong ảnh có hình nền phức tạp trên cơ sở một bộ xác định đặc trưng cục bộ và so khớp đồ thị ngẫu nhiên Ý chính là xem bài toán xác định khuôn mặt như là bài toán tìm kiếm với mục tiêu là tìm thứ tự các đặc trưng chắc chắn của khuôn mặt để tạo thành giống nhất một mẫu khuôn mặt Dùng năm đặc trưng (hai mắt, hai lỗ mũi, phần nối giữa mũi và miệng) để mô tả một khuôn mặt Luôn tính quan hệ khoảng cách với các đặc trưng cặp (như mắt trái, mắt phải), dùng phân bố Gauss để mô hình hóa Một mẫu khuôn mặt được đưa ra thông qua trung bình tương ứng cho một tập đa hướng, đa tỷ lệ của bộ lọc đạo hàm Gauss Từ một ảnh, các đặc trưng ứng viên được xác định bằng cách so khớp từng điểm ảnh khi lọc tương ứng với vector mẫu (tương tự mối tương quan), chọn hai ứng viên đặc trưng đứng đầu để tìm kiếm cho các đặc trưng khác của khuôn mặt Giống như xây dựng một đồ thị quan hệ mỗi node của đồ thị tương ứng như các đặc trưng của một khuôn mặt, đưa xác suất vào để xác định Tỷ lệ xác định chính xác là 86%

 Phương pháp xác định khuôn mặt dùng lý thuyết xác suất thống kê về hình dáng: Dùng hàm mật độ xác suất (Probility Density Function- PDF) qua N điểm đặc trưng, tương ứng (xi, yi) là đặc trưng thứ i với giả sử dựa vào phân bố Gauss có 2N-chiều Các tác giả áp dụng phương thức cực đại khả năng (Maximum Likelihood-ML) để xác định vị trí khuôn mặt Một thuận lợi của phương pháp này là các khuôn mặt bị che khuất vẫn có thể xác định được Nhưng phương pháp không xác định được đa khuôn mặt trong ảnh

 Phương pháp xác định khuôn mặt dựa vào đặc trưng, dùng số lượng lớn các dấu hiệu từ ảnh và cả dấu hiệu về ngữ cảnh: Đầu tiên dùng bộ lọc đạo hàm

Gauss thứ hai, xác định các điểm mấu chốt ở tại cực đại địa phương trong bộ lọc, rồi chỉ ra nơi có thể là đặc trưng Giai đoạn hai, kiểm tra các cạnh xung quanh điểm mấu chốt và nhóm chúng lại thành các vùng Tiêu chuẩn để nhóm các cạnh là gần,

23 tương tự hướng và cường độ Đo lường các đặc tính vùng như: chiều dài cạnh, cường độ cạnh và biến thiên cường độ được lưu trong một vector đặc trưng Từ dữ liệu đặc trưng khuôn mặt đã được huấn luyện, sẽ tính được giá trị trung bình và ma trận hiệp phương sai của mỗi đặc trưng khuôn mặt Một vùng là ứng viên khuôn mặt khi khoảng cách Mahalanobis giữa các vector đặc trưng đều dưới một ngưỡng

Rồi thông qua mạng Bayes để xác định ứng viên có phải là khuôn mặt không Tỷ lệ chính xác là 85%, tuy nhiên mức độ sai là 28%, và chỉ hiệu quả với hình khuôn mặt có kích thước 60x60 điểm ảnh Phương pháp này được dùng thêm với mô hình đường viền linh hoạt

 Phương pháp xác định khuôn mặt dựa trên tích đặc trưng võng mạc và cử động theo dao động nhỏ của mắt: Thuật toán hoạt động trên bản đồ hay vùng của các mấu chốt, mô hình hóa lưới võng mạc Đầu tiên tính toán ước lượng thô vùng khuôn mặt trên cơ sở bộ lọc Giai đoạn thứ hai tinh chế trên độ phân giải mịn hơn Tỷ lệ sai là 4.69%

 Phương pháp xác định khuôn mặt dựa trên cơ sở hình thái học: (morphology) để trích các đoạn giống mắt (eye-analogue) để xác định khuôn mặt người Phương pháp này cho rằng mắt và lông mày là đặc trưng nổi bật nhất và ổn định nhất của khuôn mặt con người, và nó rất hữu dụng để xác định khuôn mặt người Các đoạn giống mắt như là các cạnh trên đường viền của mắt Đầu tiên, các phép toán morphology như đóng, cắt bỏ sai khác và phân ngưỡng để trích các điểm ảnh có giá trị cường độ thay đổi đáng kể Các điểm ảnh này sẽ trở thành các điểm ảnh giống mắt Sau đó một tiến trình gán nhãn để sinh các đoạn giống mắt Các đoạn này được dùng để chỉ dẫn tìm kiếm các vùng tiềm năng có thể là khuôn mặt qua kết hợp các đặc tính hình học của mắt, mũi, lông mày, và miệng Các vùng này sẽ được một mạng neural xem xét có phải là khuôn mặt không Tỷ lệ chính xác là 94%

 Phương pháp xác định khuôn mặt dựa trên hình dáng và áp dụng cho các khuôn mặt chụp thẳng: Có hai giai đoạn để xác định khuôn mặt người: tập trung và phân loại chi tiết Làm có thứ tự các mảnh cạnh, các mảnh này được trích từ bộ xác định cạnh đơn giản thông qua sự khác biệt cường độ là quá trình tập trung Khi có các ứng viên từ quá trình trên, dùng thuật toán CART để xây dựng một cây phân loại từ các ảnh để huấn luyện, để xem xét ứng viên nào là khuôn mặt người

Khó khăn và thử thách trong bài toán xác định khuôn mặt người

Việc xác định khuôn mặt người có những khó khăn nhất định như sau:

- Hướng (pose) của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn nghiêng hay nhìn từ trên xuống Cùng trong một ảnh có thể có nhiều khuôn mặt ở những tư thế khác nhau

- Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt người, như: râu quai nón, mắt kính

- Các nét mặt (facial expression) khác nhau trên khuôn mặt, như: vui, buồn, ngạc nhiên

- Mặt người bị che khuất bởi các đối tượng khác có trong ảnh

- Điều kiện ảnh, đặc biệt là về độ sáng và chất lượng ảnh, chất lượng thiết bị thu hình

- Trục toạ độ của máy ảnh so với ảnh

- Kích thước khác nhau của các khuôn mặt người và đặc biệt là trong cùng một ảnh

- Màu sắc của môi trường xung quanh, hay màu sắc quần áo của người được chụp lấy ảnh

- Xuất hiện thành phần khuôn mặt hay không

- Nhiều khuôn mặt có vùng da dính lẫn nhau

Các khó khăn trên chứng tỏ rằng bất cứ phương pháp giải quyết (thuật toán) bài toán xác định khuôn mặt người sẽ không thể tránh khỏi một số khiếm khuyết nhất định

25 Để đánh giá và so sánh các phương pháp xác định mặt người, người ta thường dựa trên các tiêu chí sau:

- Tỷ lệ xác định chính xác là tỷ lệ số lượng các khuôn mặt người được xác định đúng từ hệ thống khi sử dụng một phương pháp để xây dựng so với số lượng khuôn mặt người thật sự có trong các ảnh (detection rate)

- Số lượng xác định nhầm là số lượng vùng trong ảnh không phải là khuôn mặt người mà hệ thống xác định nhầm là khuôn mặt người (false positives)

- Thời gian thực hiện là thời gian để máy tính xác định khuôn mặt người trong ảnh (running time).

Phương pháp rút trích đặc trưng

Trích rút đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra những thông tin mang những đặc điểm riêng biệt của một người Các khâu trong quá trình trích chọn đặc trưng:

- Đầu vào: Ảnh đã được chuẩn hóa

- Đầu ra: Vector đặc trưng của ảnh đầu vào

Ta có không gian dữ liệu quan sát S = {x} gồm n vector dữ liệu mẫu N chiều Dữ liệu thô tồn tại sự tương quan ngẫu nhiên giữa các thành phần, do đó có sự dư thừa dữ

Hình 3.4: Phương pháp rút trích đặc trưng sinh trắc

26 liệu Ý tưởng của phép biến đổi PCA là phân tích dữ liệu thành những không tương quan (gọi là các thành phần chính) để giảm độ dư thừa dữ liệu [13]

Phép biến đổi PCA được định nghĩa như sau: 𝑢 = Ψ 𝑇 𝑥

Trong đó 𝑥 = [𝑥 1 𝑥 2 𝑥 3 … 𝑥 𝑁 ] 𝑇 , 𝑢 = [𝑢 1 𝑢 2 𝑢 3 … 𝑢 𝑁 ] 𝑇 là các thành phần thứ i và j không tương quan trong không gian mới

Và ma trận Ψ là ma trận phép biến đổi với kích thước 𝑁 2 có dạng: Ψ 𝑇 = [V 𝑖 ] 𝑇 =

Trong đó 𝑉 𝑖 là các vector riêng tương ứng với ma trận hiệp phương sai của các x quan sát được

Eigenface đã được M A Turk và A P Pentland đề xuất năm 1991 Ý tưởng chính của eigenface là để lấy được các đặc trưng trong nghĩa toán học thay vì đặc trưng về mặt vật lý bằng cách sử dụng chuyển đổi toán học để được nhận dạng [13]

Giai đoạn đầu tiên, một số lượng lớn các hình ảnh khuôn mặt được đưa vào tập huấn luyện Những hình ảnh được huấn luyện là đại diện tốt nhất cho tất cả các khuôn mặt có thể được gặp phải Kích thước, hướng và cường độ ánh sáng nên được chuẩn hóa

Chọn tập ảnh huấn luận là T1, T2, T3, … TM các bức ảnh này đã được chỉnh cùng kích thước và chỉnh tâm Chúng ta biểu diễn mỗi bức ảnh Ti kích thước N x N bằng một vector T có kích thước N 2 chiều

- Bước 1: Tính vector trung bình

Khi đó ảnh trung bình được xác định theo công thức sau: Ψ = 1

- Bước 2: Tính 𝛷 𝑖 = 𝛤 𝑖 − 𝛹 với i = 1,2… N 2 là khác nhau của từng ảnh trong tập huấn luyện so với ảnh trung bình:

Ví dụ như tập ảnh được cho ở hình :

Khi đó ta được ảnh trung bình như ảnh bên dưới:

- Bước 3: Tính ma trận phương sai C của các vector quan sát

Sau đó ta tính được ma trận C:

𝑖=1 Ma trận C có kích thước N 2 x N 2 Trong đó 𝐴 = [Φ 1 Φ 2 … Φ 𝑀 ] 𝑘í𝑐ℎ 𝑡ℎướ𝑐 𝑀 𝑥 𝑀

- Bước 4: Tìm các vector riêng u i của ma trận phương sai C Tuy nhiên ma trận này có kích thước là N 2 x N 2 quá lớn nên việc tìm vector này không khả thi

Chúng ta xét ma trận 𝐴 𝐴 𝑇 có kích thước là MxM Tìm vector riêng Vi của ma trận A T A, ta có:

Hình 3.5: Tập ảnh huấn luyện của hệ thống

28 Nhân 2 vế với ma trận A và rút gọn ta được mối quan hệ : u i = A v i

Do A A T và A T A có cùng giá trị riêng và các vector riêng của chúng quan hệ với nhau theo: u i = A v i

Chú ý: A T A có thể có M giá trị riêng và vector riêng

M giá trị riêng của A T A cùng với vector riêng tưng ứng với M giá trị riêng lớn nhất của A A T

Sau đó tính M vector riêng ứng với M giá trị riêng lớn nhất của AA T : u i = Av i đồng thời chuẩn hóa vector ui sao cho

- Bước 5: Chọn K vector riêng ứng với K giá trị riêng lớn nhất

3.4.3 Biểu diễn khuôn mặt theo tập huấn luyện tìm được

Mỗi vector biểu diễn khuôn mặt (trừ đi vector trung bình) Φ 𝑖 – mean = ∑ 𝑤 𝑗 𝑣 𝑗

Trong đó vj gọi là các ảnh riêng, 𝑤 𝑗 = 𝑢 𝑗 𝑇 Φ 𝑖 chính là thành phần chính thứ j trong không gian mới uj là các vector ảnh riêng Mỗi ảnh được chuẩn hóa trong tập luyện sẽ được biểu diễn trong cơ sở này bởi vector: Ω 𝑖 =

VI XỬ LÝ BẢO MẬT

Giới thiệu vi xử lý bảo mật

Việc sử dụng các kỹ thuật mật mã là một yếu tố then chốt của các ứng dụng thương mại điện tử hiện nay Các ứng dụng này được sử dụng mật mã học theo nhiều cách khác nhau để bảo vệ sự riêng tư và bí mật của dữ liệu và đảm bảo tính toàn vẹn của dữ liệu

Vi xử lý IBM 4765 là một vi xử lý có thể lập trình và sử dụng để tính toán các quá trình mã hóa chuyên sâu, sử dụng dữ liệu từ máy chủ lưu trữ, thực hiện các nhiệm vụ nhạy cảm mà không phù hợp cho các máy tính có mục đích dùng chung kém an toàn

Nó là một sản phẩm quan trọng cho phép các giao dịch thương mại điện tử được thực hiện một cách an toàn và thích hợp cho một loạt các ứng dụng mật mã Việc sử dụng IBM Common Crytography Archtecture (CCA) là chương trình phần mềm hỗ trợ, vi xử lý có thể thực hiện các các giải thuật mã hóa phổ biến trong ngành công nghiệp như DES, RSA… hay trong các ứng dụng thương mại điện tử trên Internet Để sử dụng với AIX, Windown NT, Windown 2000…, IBM cũng cung cấp các chương trình hỗ trợ được hiện thực dưới dạng các API Tùy theo phiên bảo được sử dụng mà bộ API này có thể được mở rộng hay thay thế nhằm thích hợp với các chức năng mã hóa hay yêu cầu chuyên môn của hệ thống cần sử dụng Môi trường xử lý an toàn của IBM 4758 gồm có 486 vi xử lý tương thích, phần cứng tùy chỉnh được hiện thực SHA-1, DES, hệ thống mã hóa công khai, phần cứng dùng sinh số ngẫu nhiên Nó cũng có các cơ chế bảo vệ cảm biến, bảo vệ mạch điều khiển chống lại các hình thức tấn công chống lại môi trường an toàn

Một vi xử lý bảo mật là một môi trường tính toán có mục đích sử dụng nhằm chống lại được các hình thức tấn công vật lý và tấn công luận lý Các thiết bị dùng chạy chương trình phải hỗ trợ được và không bị thay đổi Các vi xử lý bảo mật vẫn phải an toàn ngay cả khi kẻ tấn công phân tích hay phá hủy một hoặc nhiều thiết bị Nhiều máy chủ trong môi trường phân bố rất khó hoặc không thể cung cấp bảo mật mức vật lý hoàn chỉnh cho các tác vụ nhạy cảm Trong một số ứng dụng, kẻ tấn công có thể là người dùng cuối, do vậy nên cần một thiết bị mà có thể tin tưởng ngay cả khi ta không thể kiểm soát được môi trường hoạt động của nó.

Giới thiệu sử dụng Toolkit trong IBM 4765 [8]

Toolkit trong IBM 4765 là tập hợp các thư viện, các file include…để giúp cho người lập trình có thể xây dựng, load và debug các ứng dụng viết bằng ngôn ngữ C hoặc assembler (ngôn ngữ lập trình nhúng) Một ứng dụng chạy trong vi xử lý được xem như là một “agent” hay một ứng dụng phía vi xử lý (coprocessor side application)

Tại phía máy trạm, một ứng dụng vi xử lý được biên dịch (compiled) và tạo liên kết (linked) sử dụng các trình biên dịch chạy trên máy trạm (được gọi là cross-compiler)

4.2.1 Các thành phần trong Toolkit Để phát triển một ứng dụng trong vi xử lý sử dụng Toolkit, ta cần các thành phần sau (các thành phần này đa phần đều được tích hợp sẵn trong Toolkit):

Sử dụng trình biên dịch (gcc) và linker cho mã chương trình phía máy trạm Có thể sử dụng YaST để cài đặt gcc cho máy trạm

Sử dụng gcc-based cross-compiler cho việc biên dịch code phía vi xử lý Để xây dựng một cross-compiler nên tham khảo code mẫu trong thư mục y4tk/4765/cross_compiler_scripts (y4tk là bộ Toolkit đi kèm sản phẩm vi xử lý IBM)

Một số thư viện được cung cấp sẵn trong bộ Toolkit, chứa tại thư mục y4kt/4765/lib32/card/gcc/stubs , để giúp chuyển đổi code phía vi xử lý (code c) thành mã nhúng chạy trong vi xử lý Khi lập trình các ứng dụng chạy trong IBM 4765, sử dụng bộ Toolkit được cung cấp bởi nhà sản xuất, bao gồm các file và các UDX (User Define Extention – các phần mở rộng được thiết lập bởi người lập trình), những file này chứa các interface để sử dụng các hàm mã hóa được hiện thực sẵn có trong vi xử lý

 Utilities Được sử dụng để chuẩn bị và load ứng dụng vào vi xử lý Các utilities bao gồm:

- mkfs.jffs2: Được sử dụng để tạo JFFS2 image để tải vào vi xử lý bằng DRUID

Trong IBM 4765, mkfs.jffs2 được sử để tạo cấu trúc thư mục trong thư mục /flashS3 khi được tải vào trong vi xử lý sử dụng DRUID hoặc CLU Hơn nữa, dựa vào phần khởi tạo trong init.sh sử dụng với IBM 4765, các file có thể được sao chép vào /lib và /ramS3

- Device Reload Utility for Insecure Development (DRUID): Sử dụng DRUID để tải một ứng vào vi xử lý DRUID được chứa trong thư mục bin/host/

- Coprocessor Load Utility (CLU): CLU kiểm tra và tải chữ kí số của hệ thống phần mềm và các lệnh vi xử lý vào trong vi xử lý Chương trình này được cung cấp cùng với ứng dụng IBM CCA và có tên khác nhau phụ thuộc vào hệ điều hành máy trạm (ví dụ có tên là csulclu trong Linux và csufclu trong AIX) Trong Linux thì chương trình này nằm ở thư mục /opt/IBM/4765/clu

- init.sh: Chứa thông tin cấu hình và đoạn lệnh để chạy ứng dụng trong vi xử lý Đoạn mã khởi tạo cấu hình các thông số như biến môi trường để phù hợp với phần bên phía vi xử lý Phần lớn thì người lập trình không cần phải sửa file này nếu không thật sự cần thiết

- Segment-3 Image Creation Makefile: Thư mục y4tk/4765/build_seg3_image chứa makefile để tự động tạo ra JFFS2 image để tải ứng dụng vào vi xử lý sử

31 dụng DRUID Trong makefile cũng chứa sẵn các đoạn mã chương trình giúp người lập trình sử dụng để debugg với ICAT (được mô tả ở phần Debugger)

Bộ Toolkit chứa những file dùng để nhập CLU để chuẩn bị cho việc chạy các tiến trình Nó bao gồm những file dùng để tải môi trường lập trình vào vi xử lý cũng như dùng xóa các thông số môi trường lập trình ra khỏi vi xử lý

Bộ Toolkit bao gồm IBM Interactive Code Analysis Tool (ICAT), là một chương trình để điều khiển và để debug phía vi xử lý Chi tiết về các thức hoạt động và sử dụng ICAT được mô tả trong [8]

Bộ Toolkit bao gồm 2 bản sao của hệ điều hành Linux, một được ký bởi khóa và được sở hữu bởi nhà sản xuất, cái còn lại được ký bởi khóa và sở hữu để lập trình Hai bản được nhúng trong hệ điều hành Linux là giống hệt nhau, và có thể được tải vào vi xử lý bởi CLU

Toolkit sau khi được cài đặt sẽ có cấu trúc thư mục như sau:

Hình 4.1: Cây thư mục sau khi cài đặt Toolkit

4.2.2 Lập trình ứng dụng IBM 4765 sử dụng Toolkit Ở phần này sẽ mô tả cách sử dụng bộ Toolkit để tạo một chương trình bên phía vi xử lý và tải nó vào trong vi xử lý (phần chưng trình chạy bên phía máy trạm sẽ giống như các ứng dụng thông thường khác)

Trong phần này sẽ mô tả một cách tổng quan nhất về từng bước thực hiện để lập trình một ứng dụng, bao gồm:

- Từng bước phát triển một ứng dụng

- Các đoạn mã yêu cầu đặc biệt để lập trình

- Các yêu cầu tùy chọn để cài đặt compiler, assembler, linker

- Cách để build một file JFFS2 chứa phần mã chạy bên vi xử lý của ứng dụng

- Cách để tải JFFS2 vào vi xử lý

- Cách thức để debugger một ứng dụng chạy trong vi xử lý

 Thiết lập biến môi trường

Một số biến môi trường phải được thiết lập trước khi build ứng dụng chạy trong vi xử lý:

- Y4TK_FS_ROOT phải được thiết lập là thư mục gốc chưa bộ Toolkit, ví dụ như bộ Toolkit được giải nén tại thư mục /home/user thì Y4TK_FS_ROOT sẽ được thiết lập giá trị là /home/user/y4tk/4765 Để build ứng dụng thì một số biến môi trường sau cũng phải được thiết lập:

- CROSS phải được thiết lập là thư mục gốc chứa compiler, assembler, linker Ví dụ như compiler được chứa ở thư mục /home/user/y4cross thì CROSS sẽ có giá trị là /home/user/y4cross

- ICAT_FS_ROOT phải được thiết lập là thư mục cài đặt ICAT (thường chứa đường dẫn đầy đủ là y4tk//debuggers//icatpyx-nnn, trong đó nnn là phiên bản của debugger Ví dụ như Toolkit được giải nén tại thư mục /home/user trong Linux thì ICAT_FS_ROOT sẽ có giá trị là /home/user/y4tk/4765debuggers/linux/icatpyx/ -nnn

Giới thiệu các API được IBM 4765 cung cấp sử dụng trong mô hình [9]

Các API được IBM 4765 cung cấp để cho phép ứng dụng chạy trên máy trạm có thể tương tác với các dịch vụ chạy trong vi xử lý Trong phần này sẽ mô tả các API được IBM cung cấp để ứng dụng bên phía máy chủ có thể tương tác với vi xử lý

IBM 4765 cung cấp hai giải thuật dùng để hash thông điệp là : - xcSha1 là hàm dùng để hash thông điệp với giải thuật hash là SHA-1 unsigned int xcSha1 (int fd, xcSha1_RB_t *pSHA1_rb) ; trong đó :

 fd là file mô tả được trả về khi /dev/skch được mở

 pSHA1_rb chứa địa chỉ của khối SHA-1

 Giá trị trả về là *pSHA1_rb chứa bản hash của dữ liệu

- xcSHA2 là hàm dùng để hash thông điệp với giải thuật hash là SHA-2 Các thông số tương tự như khi sử dụng mã hóa bằng SHA-1 và được mô tả chi tiết tại [9]

4.3.2 Hàm mã hóa đối xứng

IBM 4765 cung cấp một số hàm để sử dụng các dịch vụ mã hóa đối xứng như : - xcAES : dùng mã hóa và giải mã thông điệp sử dụng giải thuật AES unsigned int xcAES(int fd, xcAES_RB_t *pAES_rb) trong đó :

 fd là file mô tả trả về khi dev/skch được mở

 pAES_rb chứa địa chỉ của khối AES yêu cầu mã hóa được khởi tạo theo một số tùy chọn sau : o AES_ENCRYPT : để mã hóa dữ liệu nhập vào o AES_DECRYT : dùng để giải mã dữ liệu nhập vào o AES_MAC : dùng tạo mã xác thực thông điệp cho dữ liệu nhập vào o AES_128BIT_KEY : quy định sử dụng khóa có chiều dài 128 bit

(16byte) o AES_192BIT_KEY : quy định sử dụng khóa có chiều dài 192 bit (24byte) o AES_256BIT_KEY : quy định sử dụng khóa có chiều dài 256 bit (32byte) o AES_ECB_MODE : sử dụng theo mode Cipher Block Chaining (CBC – là mã hóa các khối riêng biệt độc lập với nhau)

37 o AES_ECB_MODE : sử dụng theo mode Electronic Code Book (ECB - mã hóa theo khối và kết quả mã hóa khối trước được kết hợp với khối sau để tạo đầu vào cho mã hóa khối sau) o AES_PREPAD : Để thêm dữ liệu cho những khối dữ liệu có chiều dài nhỏ hơn so với chiều dài quy định của khối dữ liệu đầu vào theo giải thuật mã hóa AES o AES_PAD_WITH_16 : thêm dữ liệu để có khối dữ liệu dài 16byte o AES_PAD_WITH_32 : thêm dữ liệu để có khối dữ liệu dài 32byte

- xcTDES : dùng mã hóa và giải mã thông điệp sử dụng giải thuật triple-DES unsigned int xcTDES(int fd, xcTDES_RB_t *pTDES_rb ); trong đó :

 fd là file mô tả trả về khi dev/skch được mở

 pTDES_rb chứa địa chỉ của khối TDES yêu cầu mã hóa được khởi tạo với một số tùy chọn : o DES_ENCRYPT : để mã hóa dữ liệu nhập vào o DES _DECRYT : dùng để giải mã dữ liệu nhập vào o DES _MAC : dùng tạo mã xác thực thông điệp cho dữ liệu nhập vào o DES _CBC_MODE : sử dụng theo mode Cipher Block Chaining (CBC

– là mã hóa các khối riêng biệt độc lập với nhau) o DES _ECB_MODE : sử dụng theo mode Electronic Code Book (ECB - mã hóa theo khối và kết quả mã hóa khối trước được kết hợp với khối sau để tạo đầu vào cho mã hóa khối sau) o DES _PREPAD : Để thêm dữ liệu cho những khối dữ liệu có chiều dài nhỏ hơn so với chiều dài quy định của khối dữ liệu đầu vào theo giải thuật mã hóa AES o DES _PAD_WITH_8 : thêm dữ liệu để có khối dữ liệu dài 8byte o DES _PAD_WITH_16 : thêm dữ liệu để có khối dữ liệu dài 16byte

- xcDES dùng mã hóa và giải mã dữ liệu hoặc sinh mã xác thực thông điệp (MAC) sử dụng giải thuật DES unsigned int xcDES(int fd, xcTDES_RB_t *pTDES_rb ); trong đó :

 fd là file mô tả trả về khi dev/skch được mở

 pTDES_rb chứa địa chỉ của khối TDES yêu cầu mã hóa được khởi tạo với một số tùy chọn : o DES_ENCRYPT : để mã hóa dữ liệu nhập vào o DES _DECRYT : dùng để giải mã dữ liệu nhập vào o DES _MAC : dùng tạo mã xác thực thông điệp cho dữ liệu nhập vào o DES _CBC_MODE : sử dụng theo mode Cipher Block Chaining (CBC

– là mã hóa các khối riêng biệt độc lập với nhau) o DES _ECB_MODE : sử dụng theo mode Electronic Code Book (ECB - mã hóa theo khối và kết quả mã hóa khối trước được kết hợp với khối sau để tạo đầu vào cho mã hóa khối sau) o DES _PREPAD : Để thêm dữ liệu cho những khối dữ liệu có chiều dài nhỏ hơn so với chiều dài quy định của khối dữ liệu đầu vào theo giải thuật mã hóa AES o DES _PAD_WITH_8 : thêm dữ liệu để có khối dữ liệu dài 8byte o DES _PAD_WITH_16 : thêm dữ liệu để có khối dữ liệu dài 16byte

4.3.3 Hàm mã hóa công khai

- xcRSAGenerate : hàm dùng để tạo cặp khóa RSA unsigned int xcRSAKeyGenerate(unsigned int fd, xcRSAKeyGen_RB_t *pRSAKeyGen_rb); trong đó :

 fd là file mô tả trả về khi dev/pka được mở

 pRSAKeyGen_rb chứa địa chỉ của cắp khóa sinh ra, được khởi tạo với một số tùy chọn được mô tả chi tiết tại [9]

- xcRSA : Mã hóa và giải mã khối dữ liệu sử dụng giải giải thuật RSA unsigned int xcRSAKeyGenerate(unsigned int fd, xcRSA_RB_t *pRSA_rb); trong đó :

 fd là file mô tả trả về khi dev/pka được mở

 pRSA _rb chứa địa chỉ của khối dữ liệu được yêu cầu mã hóa, được khởi tạo bởi một số tùy chọn: o RSA_PUBLIC: sử dụng khóa công khải để mã hóa và thường đi cùng với tùy chọn RSA_ENCRYPT

39 o RSA_PRIVATE: sử dụng khóa công khải để mã hóa và thường đi cùng với tùy chọn RSA_DECRYPT

4.3.4 Hàm tính modulo số nguyên lớn

- xcModMath : Hàm tính modulo số nguyên lớn unsigned int xcModMath(int fd, int cmd, int numints, xcModMath_Int_t *intbufs); trong đó :

 fd là file mô tả trả về khi dev/pka được mở

 cmd là tham số dùng xác định phép tính, được khởi tạo bởi một số tùy chọn: o MODM_MULT: dùng để tính C = A x B mod N o MODM_ EXP: dùng để tính C = A B mod N o MODM_MOD: dùng để tính C = AB mod N

 numints là số phần tử của mảng intbufs

 intbufs là mảng số nguyên lớn để tiến hành các phép modulo

4.3.5 Hàm sinh số ngẫu nhiên

- xcRandomNumberGenerate : Hàm sinh số ngẫu nhiên có chiều dài 64bit int xcDRBGinstantiate(int fd, // (Input) xcDRBGinstan_t *pDRBGinst); // (Input/Output) trong đó :

 fd là file mô tả trả về khi /dev/hwrng được mở

 pDRBGinst là con trỏ được cấu trúc như sau : o mechanism : dùng để thiết lập hằng số DRBG_HASH_MECH_SHA256 o securStren dùng thiết lập hằng số DRBG_SSTR_256 o pPersStr là con trỏ để chuẩn hóa chuỗi nhập vào persStrLen là 4bytes chiều dài của pPersStr và là 0 nếu con trỏ pPersStr NULL

CƠ SỞ LÝ THUYẾT

Xác thực

Trong thế giới thực (giữa các thực thể xã hội), khái niệm xác thực (authentication) thường gắn liền với các ngữ cảnh giao tiếp giữa hai bên (hoặc nhiều hơn) và một bên nào đó tiến hành các thủ tục xác minh xem phía bên kia có là đối tượng thực sự có danh tính đúng như đối tượng đã được cung cấp hay là kẻ giả mạo danh tính Trong thế giới máy tính (xử lý thông tin số và kết nối mạng), chúng ta có những thủ tục tương tự, tuy nhiên khái niệm các bên tham gia có khác Những chủ thể trực tiếp (subject) tham gia vào môi trường là các chương trình phần mềm, chính xác hơn là các tiến trình, nhưng chúng hoạt động thay mặt cho (dưới sự điều khiển) của các thực thể bên ngoài mà thông thường là người sử dụng Vì vậy về mặt kỹ thuật, cơ chế xác thực chính là cơ chế gắn kết của một danh tính (của thực thể bên ngoài) với một chủ thể bên trong hoạt động thay mặt Những thực thể bên ngoài cần cung cấp các thông tin cần thiết cho hệ thống để đảm bảo hệ thống xác minh đúng danh tính Những thông tin này có thể là [14]:

- Những gì mà thực thể biết (thông tin bí mật nào đó như định danh, mật khẩu, token…)

- Những gì mà thực thể sở hữu (ví dụ như smart card)

- Những yếu tố nằm ngay tại bản thân thực thể (các đặc trưng sinh trắc học như dấu vân tay, khuôn mặt, võng mạc mắt…)

- Vị trí hiện thời của thực thể (vị trí đang đứng của một khách hàng đầu cuối nào đó).

Quá trình xác thực

Quá trình xác thực bao gồm việc tiếp nhận thông tin xác thực từ phía thực thể rồi phân tích thông tin và dữ liệu lưu trữ trên hệ thống để xác minh xem thực sự thông tin được cung cấp có liên kết đúng với thực thể đó hay không Điều này cũng tiết lộ điểm chính của cơ chế xác thực là máy chủ cần lưu một số thông tin cần thiết của thực thể để tiến hành xác thực Các quá trình xác thực truyền thống thường sử dụng xác thực một yếu tố như mật khẩu, hoặc token Tuy nhiên, với sự trỗi dậy mạnh mẽ của thế giới tin học thì việc xác thực này đã không còn đảm bảo tính bảo mật cho hệ thống Từ đó đòi hỏi ra đời các hệ thống xác thực đa yếu tố (multi-factor authentication systems) Ví dụ việc kết hợp giữa mật khẩu và sinh trắc học

Một quá trình xác thực căn bản thường được mô tả gồm hai quá trình chính:

 Đăng ký: Trước hết, người dùng cần phải đăng ký thông tin cần thiết để xác thực với hệ thống (thường là các server) Hệ thống sẽ làm nhiệm vụ xác minh đây có phải là người dùng mới và hợp pháp hay không Nếu việc xác minh này trả về kết

41 quả đúng thì thông tin đăng ký của người dùng sẽ được lưu vào cơ sở dữ liệu trên hệ thống

Hình 5.1: Mô hình đăng ký

 Xác thực: Quá trình thứ hai, sau khi đăng ký thành công với hệ thống, người dùng muốn sử dụng các thông tin hay dịch vụ trên hệ thống thì đòi hỏi người dùng cần phải cung cấp đúng các thông tin đã đăng ký với hệ thống ở quá trình đăng ký Quá trình này gồm hai bước Bước một là bước tiếp nhận thông tin và kiểm tra tính hợp lệ của thông tin Bước hai là bước kiểm tra trong cơ sở dữ liệu nhằm xác minh các thông tin được cung cấp là đúng với thông tin nào đó đã được đăng ký trước đó

Nếu không có trong các thông tin đã đăng ký thì việc xác thực bị thất bại Ngược lại thì người dùng được xác thực thành công và có thể sử dụng các dịch vụ phù hợp mà hệ thống cung cấp

Hình 5.2: Mô hình xác thực

Việc kiểm tra so trùng trong quá trình xác thực thường được phân thành hai loại [5]:

 So trùng chính xác: Các thông tin được cung cấp phải trùng hoàn toàn với các thông tin đã được cung cấp trước đó trong quá trình đăng ký Thường được ứng dụng trong các hệ thống xác thực bằng định danh, mật khẩu, token…

 So trùng có xác xuất: Các thông tin được cung cấp có thể sai với một tỉ lệ phần trăm được quy định Nếu tỉ lệ phần trăm đúng nhỏ hơn tỉ lệ phần trăm được quy định trước thì việc xác thực thất bại Ngược lại thì xác thực thành công Thường được ứng dụng trong các hệ thống xác thực sử dụng đặc trưng sinh trắc như: dấu vân tay, võng mạc mắt, khuôn mặt…

Một số kiểu mã hóa được sử dụng

5.3.1 Mã hóa đối xứng (DES)

Mã hóa đối xứng DES (Data Encryption Standard) là một phương pháp mã hóa dữ liệu được sử dụng rộng rãi trên thế giới DES có ưu điểm là mã hóa nhanh, thực hiện mã hóa theo dạng khối 64 bit (block cipher) nên thích hợp cho việc xử lý song song đẩy nhanh tốc độ mã hóa và giải mã Hạn chế của giải thuật này là không còn an toàn với tốc độ tính toán hiện tại của máy tính Bị tấn công vét cạn trong khoảng thời gian ngắn do chiều dài khóa chỉ có 56 bit [20]

Hình 5.3 : Quá trình mã hóa và giải mã của DES

5.3.2 Mã hóa công khai (RSA)

Mã hóa công khai (hay còn gọi là mã hóa bất đối xứng ) là thuật toán mã hóa khóa công khai được ra đời năm 1976 bởi các tác giả R.Rivets, A.Shamir và L.Adleman Hệ mã hóa này dựa trên cở sở của bài toán:

- Bài toán Logarithm rời rạc

- Bài toán phân tích thành thừa số

Trong hệ thống mã hóa RSA thì các bản rõ, bản mã và các khóa là thuộc tập số nguyên Z N ={1… N-1) Trong đó tập ZN với N=p*q là các số nguyên tố khác nhau cùng với phép cộng và phép nhân Modulo (phép chia lấy dư) N tạo ra phép chia lấy dư số học N Phương pháp mã hóa và giải mã là khá đơn giản:

- Giải mã: P = D(C) = C kb mod N Trong đó: C là bản mã hóa (cipher text)

P là bản rõ (plain text) KB là khóa công khai (public key) kb là khóa bí mật (private key)

Hình 5.4: Quá trình mã hóa và giải mã với RSA

44 Độ an toàn của giải thuật này dựa trên cơ sở những khó khăn trong việc xác định thừa số nguyên tố của một số lớn Bảng dưới đây cho biết thời gian tính toán để xác định ra thừa số nguyên tố với độ dài số được phân tích [20]:

Là giải thuật sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu Các giá trị băm này đóng vai trò như là khóa để phân biệt các khối dữ liệu Với các khối dữ liệu bất kỳ thì đầu ra của hàm băm là một khối dữ liệu có độ dài cố định (MD5 là 128 bit, SHA- 1 là 160 bit) Hàm băm là hàm mã hóa một chiều (nghĩa là chỉ có quá trình mã hóa mà không có quá trình giải mã) Để đảm bảo cho hàm băm hoạt động đúng thì cần thỏa mãn hai tính chất cơ bản sau [20]:

- Tính bền vững xung đột yếu (weak collision resistance): với bất kì giá trị x, không thể tìm được giá trị y ≠ x mà H(y) = H(x)

- Tính bền xung đột mạnh (Strong collision resistance): Không thể tính được một cặp (x,y) x≠y, sao cho H(x) = H(y)

5.3.4 Mã xác thực thông điệp MAC sử dụng hàm băm MD5

Mã xác thực thông điệp MAC (Message Authentication Code) sử dụng hàm băm MD5: là hàm băm sử dụng cùng với một khóa bí mật để kiểm tra tính toàn vẹn cũng như

Hình 5.5: Thời gian phân tích thừa số nguyên tố trong giải thuật RSA

45 nguồn gốc thông điệp của thực thể nắm giữ khóa bí mật Ý tưởng của kỹ thuật này rất đơn giản được mô tả bởi hình dưới đây [20]:

Các công trình nghiên cứu liên quan

Trong nhiều năm qua, đã có rất nhiều nghiên cứu về bảo vệ tính riêng tư trong hệ thống xác thực bằng sinh trắc học Trong đó bảo vệ mẫu đặc trưng sinh trắc là một phần không thể thiếu trong lĩnh vực này

Trong tài liệu [10], Jain và các cộng sự đã trình bày một tổng quan chi tiết về các lược đồ bảo vệ mẫu đặc trưng sinh trắc và thảo luận về điểm mạnh điểm yếu của từng lược đồ cụ thể Hai cách tiếp cận để giải quyết vấn đề đó là biến đổi đặc trưng sinh trắc (Feature transformation) và mã hóa sinh trắc (Biometric cryptosystem) Đối với những biến đổi đặc trưng sinh trắc, cách này cho phép người dùng có thể thay đổi mẫu sinh trắc của mình nếu mẫu đăng ký trước đó có nghi ngờ là bị lộ như thay thế mật khẩu trong các hệ thống mật khẩu truyền thống mà không làm lộ đặc trưng sinh trắc Tuy nhiên phương pháp này thường có hiệu suất không cao và một số đòi hỏi điều kiện không phù hợp trong thực tế

Cách tiếp cận còn lại là sử dụng kết hợp mã hóa và đặc trưng sinh trắc để nhằm tận dụng những ưu nhược điểm của mỗi bên Cách tiếp cận này sử dụng những phương pháp cho kết quả cuối cùng là khóa mã hóa, khóa này có thể được sinh ra từ chính đặc trưng sinh trắc của người dùng hoặc có thể sinh ngẫu nhiên và kết hợp mới đặc trưng sinh trắc để tạo ra dữ liệu hỗ trợ cho quá trình xác thực Sau đó mẫu sinh trắc và khóa đều bị hủy đi, chỉ có dữ liệu hỗ trợ được lưu lại trong cơ sở dữ liệu để tái sinh mẫu sinh trắc và khóa bí mật trong quá trình xác thực Tuy vậy cách này không đảm bảo được tính có khả năng thay thế khi mẫu sinh trắc bị xâm hại Vì lý do này, một số nghiên cứu có xu hướng kết hợp hai cách tiếp cận này để tăng tính bảo mật cho hệ thống mà vẫn đảm bảo hiệu suất Một trong những phương pháp lai được nghiên cứu gần đây có thể kể tới như: Kết hợp giữa secure sketch và ANN (Artificial Neural Network) được đề xuất trong nghiên cứu [7], fuzzy vault kết với hàm biến đổi tuần hoàn trong công trình [11], fuzzy vault kết hợp với hàm biến đổi không suy ngược được để tăng cường tính

Hình 5.7: Mã xác thực thông điệp

46 bảo mật cho xác thực trong nghiên cứu [12], mã hóa homomorphic kết hợp với fuzzy commitment để tạo giao thức xác thực mờ trong nghiên cứu [6]

Hình 5.8: Bảo vệ đặc trưng sinh trắc

Trong những năm gần đây, nhiều giao thức xác thực từ xa sử dụng đặc trưng sinh trắc được đề xuất Tuy nhiên hầu hết những giao thứ đó chỉ hỗ trợ bảo vệ dữ liệu ở phía người dùng hoặc cao hơn là bảo vệ trên đường truyền mạng, mà chưa quan tâm đúng mức đến bảo mật ở phía máy chủ (server) Trong nghiên cứu [15], các tác giả vận dụng Biometric Encryption Key(BEK) để mã hóa và bảo vệ khóa bí mật Hệ thống BioPKI này chỉ đề cập đến vấn đề bảo mật của khóa bí mật mà bỏ qua việc bảo vệ mẫu đặc trưng sinh trắc được lưu trên cơ sở dữ liệu của server

Năm 2010, Kai Xi và đồng sự đã đề xuất giao thức mã hóa đặc trưng sinh trắc (biocrytographic) cho xác thực từ xa trong môi trường tính toán trên thiết bị di động

Trong giao thức này, đặc trưng sinh trắc được sử dụng để xác thực là dấu vân tay, mẫu dấu vân tay lưu trữ trong cơ sở dữ liệu được bảo vệ bằng kỹ thuật fuzzy vault Trong đó, các điểm quan trọng được trộn lẫn với các điểm giả tạo để tạo nên fuzzy vault nhằm đánh lừa kẻ tấn công Tất cả những phần tử trong tập fuzzy vault sẽ được đánh chỉ số

Server chỉ lưu trữ những chỉ số của những điểm thực chứ không lưu thông tin cụ thể Sự giao tiếp giữa người dùng và server được bảo vệ bằng hệ thống mã hóa công khai (PKI), mã hóa ECC (Elliptic Curve Cryptography) loại mã hóa này có độ phức tạp tính toán nhỏ nhưng độ bảo mật tương đối cao (tương đương RSA) Tuy nhiên hạn chế lớn nhất của giao thức này là tác giả chỉ mới tập trung vào bảo mật phía người dùng và đường truyền Còn server được giả sử là có độ an toàn cao và các hình thức tấn công từ phía server được bỏ qua Một hạn chế khác của nghiên cứu này là các tác giả phòng tránh tấn công lặp lại (Relay Attack) bằng cách sinh khóa phiên giữa người dùng và server bằng phương pháp động dựa trên những điểm thực của dấu vân tay Tuy nhiên trên server chỉ

47 lưu chỉ số của các điểm thực nên hoàn toàn không có khả năng sinh ra khóa phiên này.[17]

Năm 2013, Hisham và các cộng sự của ông đưa ra hướng tiếp cận khác trong đó kết hợp kỹ thuật steganography với mã hóa sinh trắc học nhằm tạo ra xác thực lẫn nhau một cách an toàn đồng thời tạo khóa phiên trao đổi giữa người dùng và server trong kiến trúc từ xa[1] Trong công trình này, tác giải cung cấp một vài bằng chứng cho thấy rằng việc che dấu dữ liệu sinh trắc trong những tấm ảnh dựa trên kỹ thuật steganography có thể làm tăng tính bảo mật khi truyền dữ liệu sinh trắc trên đường truyền mạng Thêm vào đó, để bảo vệ mẫu sinh trắc lưu trữ trên server trong khi vẫn đảm bảo tính tự hủy cho giao thức xác thực, tác giả đã sử dụng kỹ thuật biến đổi không khả nghịch sử dụng ma trận trực giao ngẫu nhiên nhằm chiếu các đặc trưng sinh trắc lên một không gian khác an toàn hơn nhằm bảo vệ mẫu sinh trắc gốc Tuy nhiên, các tác giả chưa xem xét đến trường hợp khả năng rằng chính server là kẻ đánh cắp thông tin trong cơ sở dữ liệu để giả danh người dùng hợp pháp Tấn công này đặc biệt nguy hiểm trong ngữ cảnh ngân hàng Bên cạnh đó, tính chất mở cũng cần được thảo luận trong kiến trúc xác thực từ xa Khi số lượng người dùng tăng lên, số lượng server ngày một tăng dẫn tới số lượng mẫu sinh trắc dùng xác thực ngày một nhiều, server sẽ phải lưu trữ rất nhiều mẫu của người dùng trong khi các mẫu này ở những server khác nhau có thể giống nhau Thiết kế như vậy gây tốn rất nhiều tài nguyên và hệ thống dễ bị tấn công theo kiểu cross- matching Để đảm bảo tính mở, Fengling và các cộng sự đã đề xuất mô hình xác thực từ xa với đặc trưng sinh trắc sử dụng giao thức Kerberos Giao thức này khá phù hợp với đặc trưng sinh trắc sử dụng trong thương mại điện tử Tuy nhiên điểm yếu của giao thức này là server xác thực KDC (Key Distributed Center) phải được giả định là đáng tin cậy và không có kỹ thuật nào bảo vệ thông tin riêng tư của người dùng chống lại những kẻ tấn công từ bên trong.

Mô hình Fuzzy Commitment

Các giao thức mã hóa được hình thành theo quy ước về tri thức chính xác Ví dụ như một hệ thống chữ ký số sử dụng giải thuật RSA để đảm bảo xác thực được rằng một thông điệp đó là do chính người này gửi, phần lớn các giả định rằng người dùng có sở hữu một khóa công khai hợp lệ (N,e) và một khóa bí mật duy nhất tương ứng là (N,d)

Khi một thông điệp nào đó được ký bởi khóa bí mật nói trên thì phải sử dụng chính xác khóa công khai duy nhất tưng ứng của nó mới có khả năng xác thực được Trong các hệ thống sinh trắc học, ví dụ như sử dụng khuôn mặt để xác thực, đặc trưng sinh trắc rất ít khi hoàn toàn giống nhau giữa hai hay nhiều lần cung cấp (do tính đặc trưng của hệ thống sinh trắc học đã được phân tích trong phần cơ sở lý thuyết – tổng quan về sinh trắc học) Hơn nữa, việc truyền tải dữ liệu trong mạng luôn chứ nhiều tín hiệu nhiễu, do vậy các giải thuật mã hóa thông thường với lý thuyết chính xác đã không còn áp dụng

48 được trong trường hợp này Để giải quyết vấn đề này, chúng ta tiếp cận tới một mảng kiến thức mới đó là lý thuyết về “fuzzy logic” (logic mờ) Trong đề tài luận văn này thì lý thuyết đó được thể hiện trong mô hình fuzzy commitment được áp dụng ở phần xác thực người dùng [2]

Hình 5.9: Mô hình fuzzy commitment Để bắt đầu với mô hình sử dụng fuzzy commitment trong sử dụng sinh trắc để xác thực, bước đầu ta cần có kiến thức về mã sửa lỗi (ECC – Error Correcting Code) Mục đích của mã sửa lỗi là để gửi thông điệp qua một môi trường có nhiều tín hiệu nhiễu có khả năng làm thay đổi dữ liệu truyền qua Khi cần gửi một thông điệp M ta cần ánh xạ thông điệp M sang một thông điệp mới có độ dài lớn hơn là C (bước encode) Sau khi nhận được một thông điệp mới gần giống với thông điệp ban đầu (bị nhiễu do quá trình truyền tải), ta cần sử dụng codeword đã được lưu kết hợp với thông điệp mới nhận được để tái xây dựng lại thông điệp M

Một mã sửa lỗi bao gồm một tập hợp C ⊆ {0,1} 𝑛 codeword Trong trường hợp thông điệp có k-bit thì ta có số thể hiện của thông điệp sẽ là 2 k trường hợp

.Để sử dụng mã sửa lỗi chúng ta cần xây dựng hàm mã hóa (encode) và hàm giải mã (decode) Chọn tập M = {0,1} k thể hiện không gian của thông điệp M cần truyền

Khi đó hàm g: M  C được gọi là hàm chuyển đổi, thể hiện một ánh xạ trực tiếp từ tập M (thông điệp) sang tập C (codeword) Ngược lại, ta có hàm g -1 là hàm để ta chuyển một thông nhận được về thông điệp được truyền ban đầu thông qua việc xây dựng lại codeword

49 Hàm f:{0,1} n  C U {ϕ }, được biết đến là hàm decoding, dùng để ánh xạ thông điệp nhận được về dạng gần giống với codeword được tạo ra trong quá trình encode (độ gần được đo bởi khoảng cách Hamming) Độ giải mã của ECC phụ thuộc vào khoảng cách Hamming giữa codeword lưu trên hệ thống với codeword nhận vào Trọng số Hamming của một chuỗi bit u có độ dài n bit được kí hiệu là ||u||, được định nghĩa là số bit 1 trong u Khoảng cách Hamming giữa hai chuỗi bit u, v được định nghĩa là số bit khác nhau của hai chuỗi u,v kí hiệu là ||u-v||

Chúng ta gọi hàm giải mã f với ngưỡng t nếu có khả năng sửa tới t bit Hay chính xác hơn, với mỗi codeword c thuộc tập C và số lỗi hay offset δ ∈ {0.1} 𝑛 với || δ || ≤ t, ta có f(c+ δ) = c Khi đó chúng ta có thể nói codeword C có ngưỡng sửa sai là t nếu nó tồn tại một hàm sửa lỗi f để C có thể sửa lỗi thành công với ngưỡng là t Ta nhận thấy rằng khoảng cách giữa hay hay nhiều codeword trong C phải nhỏ hơn 2t + 1 Khi đó ta định nghĩa một hàm gần nhất của một codeword c là f -1 (c ) [2]

Như cách tiếp cận đã mô tả ở trên, mã sửa lỗi truyền thống biến đổi thông điệp trở thành một codeword rồi truyền tải nó trên đường truyền với tín hiệu nhiễu (noisy channel) Một ví dụ khác là việc thu mẫu sinh trắc học có thể coi đó là một noisy channel bởi các khó khăn trong việc thu nhận mẫu sinh trắc đã được đề cập ở phần đầu Do đó chúng ta không có khả năng thêm những bit dư thừa (redundancy) vào thông điệp ban đầu để phục vụ cho quá trình sửa lỗi Vì vậy nên sử dụng lược đồ Fuzzy Commitment là một giải pháp được đề xuất để khắc phục vấn đề trên

Trong việc sử dụng đặc trưng sinh trắc, x được hiểu như là mẫu sinh trắc (biometric template) Codeword c được sinh ra ngẫu nhiên và sẽ thể hiện cho khóa bí mật được dùng để bảo vệ mẫu sinh trắc bằng cách mã hóa sử dụng mô hình Fuzzy F(x,c) và lưu F(x,c) trên máy chủ (sever) Để giải mã được ta cần có x’ là giá trị gần đúng của x ( mẫu sinh trắc thu được trong giai đoạn xác thực)

Giả sử cho không gian thông điệp M = {0,1} n , chúng ta định nghĩa hàm: g: M  C là hàm chuyển thông điệp M sang codeword C Chúng ta định nghĩa hàm: f: {0,1} n  M

Hàm f không phải là hàm ngược của g nên ta không thể chuyển ngược lại từ C sang thông điệp M nhưng chúng ta có thể chuyển sang một codeword gần giống trong không gian codeword C

Trong quá trình đăng ký, người dùng cung cấp một sinh trắc B Server sẽ chọn ngẫu nhiên một codeword c trong không gian codeword C và tính δ = B ⨁ 𝑐

50 sau đó tính hash(c) và lưu trong hệ thống giá trị của (hash(c) , δ) Khi xác thực, người dùng cung cấp sinh trắc B’ (B’ này sẽ khác B) do tính nhiễu của sinh trắc Server sẽ tính c’ = B’⨁ δ sau đó thực hiện quá trình decode c’ Cuối cùng là tính hash của c’ sau khi đã được decode để so sánh với bản hash(c) được lưu trong hệ thống [2]

Ví dụ: với số thập phân ta có thể chọn tập C là tập các điểm có dạng {100u, 100v} với u,v là các giá trị nguyên ngẫu nhiên Giả sử trong quá trình đăng ký, ta thu được vector x có giá trị là X = (745, 260) Chọn vector k(u,v) ngẫu nhiên có giá trị là

(3,3), k được xem như là khóa để sử dụng cho mã hóa thông điệp cần trao đổi Khi đó c=(300,300) Ta có thể tính được X cần truyền có giá trị là X = c+ 𝛿 Khi đó δ

=(445,-40) Giá trị δ này sẽ được lưu lại để phục vụ trong quá trình xác thực

Phép chiếu ngẫu nhiên

Ma trận trực giao là ma trận vuông với các phần tử thực sao cho các cột và hàng là những vector đơn vị trực giao (nghĩa là vector trực chuẩn) Hay nói tương đương, ma trận A trực giao nếu và chỉ nếu ma trận chuyển vị của nó bằng ma trận nghịch đảo của nó:

Mà A T A -1 = A -1 A T = I với I mà ma trận đơn vị

Trên không gian vector Euclide thì các phép biến đổi trực giao có các tính chất sau:

- Tính chất 1: Ánh xạ tuyến tính 𝜃: E  F giữa không gian vector Euclide E, F gọi là trực giao nếu nó bảo tồn tích vô hướng, nghĩa là:

51 - Tính chất 2: Một phép biến đổi tuyến tính 𝜃 của không gian vector Euclide thực E được gọi là phép biến đổi trực giao nếu:

Phép chiếu ngẫu nhiên (Random Projection - RP) là phương pháp sử dụng ma trận trực giao để ánh xạ một điểm sang một miền không gian mới mà vẫn bảo toàn được khoảng cách điểm

Phép chiếu trực giao ngẫu nhiên (Orthonormal Random Projection – ROP) là một công nghệ để khởi tạo và chiếu một tập điểm lên một ma trận trực giao mà kết quả thu được là khoảng cách giữa các điểm được giữ nguyên Trong việc bảo về mẫu sinh trắc được đề xuất bởi Jain [10], ROP thuộc về phép biến đổi không khả nghịch, nghĩa là ta có thể biến đổi từ một vùng không an toàn trở thành một vùng an toàn bằng cách chiếu chúng lên ma trận trực giao, tuy nhiên không có khả năng ánh xạ từ vùng an toàn sang vùng không an toàn Do đó phép chiếu trực giao ngẫu nhiên là một phương pháp bảo vệ đặc trưng sinh trắc hiệu quả [16]

- Tạo m vector ngẫu nhiên thuộc không gian R n (n là số chiều của vector đặc trưng sinh trắc x)

- Áp dụng quy trình Gram-Schimidt để tạo ma trận trực giao A[m x n] từ các vector ngẫu nhiên trên

- Biến đổi vector đặc trưng sinh trắc thành một vector đặc trưng sinh trắc biến đổi sử dụng ma trận trực giao A : y = Ax

Hình 5.10: Phép biến đổi ngẫu nhiên

 Quy trình Gram-Schimidt để tạo ma trận trực giao A từ tập vector độc lập tuyến tính {v 1 , v 2 , …,v n }

- Lần lượt tính các các vector u :

là phép nhân tích vô hướng

||v|| là độ dài của vector v Tuy nhiên ta có thể nhận thấy rằng tạo ma trận trực giao bằng phương pháp này yêu cầu một số lượng lớn tính toán, đồng thời khó trong việc tìm các vector

{v1, v2, …,vn} do các vector này cần độc lập tuyến tính Để khắc phục nhược điểm trên, Al-Assam đã đề xuất phương pháp sử dụng tính chất của các hàm lượng giác nhằm giảm độ phước tạp tính toán trong việc tạo ra ma trận

 Phương pháp của Hisham Al-Assam:

Trước tiên ta xét ma trận có kích thước 2 x 2 như sau:

− sin 𝜃 cos 𝜃] Có thể nhận thấy rằng ma trận này luôn trực giao với mọi θ Dựa vào tính chất này ta có thể tạo ra một ma trận 2n x 2n từ những ma trận 2x2 ở trên Al-Assam đề xuất phép xây dựng ma trận trực giao ngẫu nhiên như sau:

- Từ một tập n các giá trị ngẫu nhiên {θ 1 , θ 2 … θ 𝑛 } là các số thực nằm trong [0 2π] , ta tạo ra một ma trận trực giao A [2n x 2n] đường chéo là các ma trận 2x2 được mô tả ở trên [16]

XÂY DỰNG MÔ HÌNH THỰC NGHIỆM

Các kí hiệu được sử dụng trong mô hình

Các kí hiệu sử dụng trong mô hình

 B là vector đặc trưng sinh trắc của người dùng khi đăng ký với hệ thống

 B’ là vector đặc trưng sinh trắc của người dùng cung cấp trong giai đoạn xác thực

 BTC là vector đặc trưng sinh trắc đã được biến đổi qua phép biển đổi trực giao ngẫu nhiên

 S là khóa bí mật (thường là khóa bí mật S)

 KM là vector ngẫu nhiên để sinh ra ma trận biến đổi trực giao ngẫu nhiên

 M là ma trận trực giao ngẫu nhiên

 EPuSC (X) là mã hóa thông điệp X bởi khóa công khai của Secure Processor (sử dụng giải thuật mã hóa RSA)

 H(X) là băm thông điệp X bởi hàm băm MD5

 K là khóa ngẫu nhiên được người dùng sinh ra sử dụng cho mỗi lần phiên kết nối

 Ek (X) mã hóa thông điệp X bởi khóa k (sử dụng giải thuật mã hóa đối xứng DES)

 BL là Biometric Lock của người dùng

 K’ là khóa nhận được sau quá trình giải mã ở Secure Processor.

Huấn luyện cho hệ thống

Hệ thống sử dụng tập ảnh face94 để huấn luyện Tập huấn luyện gồm có 153 người, mỗi người có 20 hình chụp ở các góc khác nhau, biểu cảm khuôn mặt khác nhau Trong tập hình của mỗi người sẽ lấy ra 15 hình để huấn luyện và 5 hình còn lại dùng để kiểm tra Thực hiện theo mô tả chi tiết ở phần Rút trích đặc trưng (Chương 3).

Giai đoạn đăng ký người dùng mới

Ở giai đoạn này ta ứng dụng ma trận trực giao ngẫu nhiên và phép biến đổi trực giao với mục đích tạo ra đặc trưng sinh trắc được biến đổi để bảo vệ đặc trưng sinh trắc ban đầu được đăng ký với hệ thống

54 Trong giai đoạn đăng ký, người dùng sẽ sinh số ngẫu nhiên KM và lưu số này trên thiết bị của mình và sử dụng KM sinh ra ma trận trực giao M Sau đó người dùng sẽ cung cấp sinh trắc của mình (trong mô hình này sử dụng là khuôn mặt), sử dụng sinh trắc người dùng cung cấp để rút trích ra vector đặc trưng kí hiệu B Ta kết hợp vector đặc trưng B với ma trận trực giao M để tạo ra đặc trưng sinh trắc biến đổi kí hiệu là BTC Sở dĩ ta cần tạo ra đặc trưng sinh trắc biến đổi không những để bảo vệ đặc trưng sinh trắc thật của người dùng (do tính khó thu hồi của đặc trưng sinh trắc đã được mô tả tại Chương 2 giới thiệu về sinh trắc học) mà còn giúp cho việc thay thế mẫu đặc trưng sinh trắc lưu trên server nếu mẫu đặc trưng này bị lộ Bằng cách ta tạo ra một dãy số KM ngẫu nhiên mới để tạo ra một ma trận trực giao M ngẫu nhiên mới Từ đó kết hợp với đặc trưng sinh trắc của người dùng để tạo ra một đặc trưng sinh trắc biến đổi mới và đăng ký với hệ thống

BTC sẽ được mã hóa bởi khóa bí mật của người dùng sau đó được mã hóa tiếp bằng khóa công khai của vi xử lý bảo mật Cần mã hóa bằng khóa bằng khóa bí mật của người dùng trước sau đó mã hóa bởi khóa công khai của vi xử lý nhằm mục đích bảo vệ đặc trưng sinh trắc biến đổi lưu trên hệ thống Do lớp mã hóa ngoài cùng là mã hóa bằng khóa công khai vi xử lý nên chỉ có vi xử lý mới có khả năng giải mã và đọc thông điệp bên trong Ở trong được mã hóa bằng khóa bí mật của người dùng để tránh việc server yêu cầu vi xử lý giải mã để lấy BTC Khi đó,nếu server yêu cầu vi xử lý giải mã để mong muốn lấy được BTC, vi xử lý sẽ tiến hành giải mã lớp mã hóa đầu tiên bằng khóa bí mật của vi xử lý Sau đó, thông điệp bên trong được mã hóa bởi khóa công khai người dùng nhưng server lại là người yêu cầu giải mã nên vi xử lý sẽ hủy yêu cầu và trả về thông báo lỗi Cùng lúc đó người dùng cần đăng ký một số bí mật ( thường là khóa bí mật S), sau đó gửi hash(S) và BTC được mã hóa bởi khóa công khai của vi xử lý bảo mật lên lưu trữ trên server [16]

Hình 6.2: Giai đoạn đăng ký

55 Trong gia đoạn này, hệ thống thực hiện lần lượt các công việc cụ thể như sau:

- Bước 1: Nhận thông tin nhập của người dùng, kiểm tra các lỗi về cú pháp của thông tin

- Bước 2: Cung cấp ảnh khuôn mặt Ảnh này sẽ được xử lý và rút trích ra vector đặc trưng sinh trắc của người dùng

- Bước 3: Gửi các thông tin này tới máy chủ

- Bước 4: Máy chủ sẽ kiểm tra các thông tin và lưu lại nếu thông tin đăng ký là hợp lệ Nếu có bất kì lỗi nào xảy ra sẽ gửi thông báo lỗi về tới người dùng và kết thúc phiên đăng ký

Giao diện của quá trình đăng ký

Hình 6.3: Giao diện đăng ký một người dùng mới

Giai đoạn xác thực người dùng

Ở giai đoạn xác thực, chúng ta ứng dụng ý tưởng của Fuzzy Commitment để bảo vệ sinh trắc trong quá trình xác thực từ xa thông qua kênh không an toàn Ý tưởng chính của Fuzzy Commitment là người dùng sử dụng đặc trưng sinh trắc của mình để tạo ra biometric lock - BL và helper data để gửi cho server Sau khi nhận được BL và

56 helper data thì server sẽ sử dụng để giải mã ra khóa được người dùng sử dụng để mã hóa thông điệp Giai đoạn xác thực được mô tả chi tiết như hình bên dưới [16] :

Hình 6.4: Giai đoạn xác thực

Trong giai đoạn xác thực gồm những bước cụ thể sau:

- Bước 1(thực hiện trên thiết bị người dùng): Người dùng phải gửi yêu cầu kết nối tới hệ thống để được xác thực thông tin

- Bước 2 (thực hiện trên vi xử lý bảo mật): Hệ thống sẽ sinh ra số ngẫu nhiên

NA và mã hóa số NA bởi khóa công khai của người dùng Sau đó gửi bản mã hóa này tới người dùng Việc sinh số ngẫu nhiên này sẽ giúp cho vi xử lý xác định được các thông tin người dùng gửi là các thông tin được sử dụng cho phiên giao dịch này chứ không phải là các thông tin đã thực hiện trong các giao dịch trước đó Bằng cách đó hệ thống có thể tránh việc các thông tin của người dùng trong phiên giao dịch trước đã bị rò rỉ được sử dụng để xác thực lại với hệ thống (tấn công replay attack)

- Bước 3 : Server gửi số NA được mã hóa bởi khóa công khai người dùng tới người dùng Số NA được mã hóa bởi khóa công khai người dùng sẽ giúp cho việc bảo mật số NA không bị lộ lọt trong quá trình truyền từ vi xử lý thông qua server tới người dùng

57 - Bước 4 (thực hiện trên thiết bị người dùng): Người dùng giải mã thông tin nhận được NA Sau đó người dùng thực hiện lần lượt các bước sau:

 4.1: Người dùng cung cấp sinh trắc học (trong bài này là khuôn mặt) để tiến hành rút trích đặc trưng sinh trắc của người dùng được vector đặc trưng là B’

 4.2: Vector đặc trưng B’ được biến đổi qua phép biến đổi trực giao với ma trận M sinh ra từ vector KM lưu trên thiết bị từ bước đăng ký tạo ra

BC Sở dĩ cần thực hiện bước này bởi trong quá trình đăng ký, để bảo vệ đặc trưng sinh trắc của người dùng lưu trên hệ thống, chúng ta đã biến đổi đặc trưng sinh trắc sử dụng ma trận trực giao M Nên khi cung cấp một đặc trưng sinh trắc mới ta cũng cần phải biến đổi đặc trưng này thông qua ma trận trực giao M để khoảng cách Hamming giữa hai đặc trưng sinh trắc không bị thay đổi, giúp việc sửa lỗi được thực hiện thành công

 4.3: Sinh ra khóa ngẫu nhiên K, sau đó kết hợp K với NA (lấy được từ đầu bước 3) để tạo ra KNA Cũng giống như ý nghĩa của việc sinh ra số

NA đối với vi xử lý, thì người dùng sinh ra số K để xác định được là các thông tin mà hệ thống đang sử dụng là thông tin vừa được người dùng cung cấp, tránh việc bị kẻ tấn công sử dụng các thông tin đã được dùng trong phiên đăng nhập trước để giả danh, đánh lừa người dùng

 4.4: Kết hợp KNA với BC sinh ra ở bước 4.2 tạo ra biometric lock (BL)

Với BL được sinh ra, kẻ tấn công không thể nào suy ra được đặc trưng sinh trắc biến đổi (BC) của người dùng nếu không biết KNA

 4.5: Sử dụng khóa K sinh ra ở bước 3.3 để mã hóa S (sử dụng theo giải thuật mã hóa đối xứng) Sau đó gửi bản mã hóa S và BL tới server Sử dụng khóa K để mã hóa nên kẻ tấn công không thể biết được khóa bí mật S nếu không có khóa K và khóa K này chỉ có được nếu quá trình giải mã theo mô hình fuzzy commitment được thực hiện thành công ở vi xử lý

Do vậy nên khóa bí mật S được chuyển an toàn từ người dùng tới vi xử lý

- Bước 5 : Người dùng gửi BL và S được mã hóa bởi khóa K đến server

- Bước 6 (thực hiện ở server): Sau khi nhận được bản mã hóa S và BL Server tiến hành gửi các thông tin sau tới vi xử lý bảo mật được đặt trong server:

 Bản mã hóa S bởi khóa K

 Bản mã hóa BTC được lưu trong cơ sở dữ liệu

58 - Bước 7 (thực hiện trong vi xử lý bảo mật): Khi nhận được các thông tin từ server Vi xử lý bảo mật thực hiện các bước sau:

 7.1: Giải mã BTC bởi khóa bí mật của vi xử lý, sau đó giải mã tiếp bằng khóa công khai của người dùng, kết quả là nhận được BTC

 7.2: Từ BTC kết hợp BL để tạo ra khóa K’NA Do tính nhiễu của hệ thống sinh trắc, nên K’ NA nhận được đa phần sẽ khác so với K NA sinh ra tại bước 3.3

 7.3: Tiến hành giải mã K’ NA về K NA bằng giải thuật giải mã được mô tả trong phần 5.5 (Mô hình fuzzy commitment), với ngưỡng threshold được quy định trước trong hệ thống Giải thuật giải mã thực hiện theo giải thuật giải mã trong mô hình fuzzy commitment đã được mô tả ở phần trước

 7.4: Sau khi giải mã nhận được KNA kết hợp với NA mà vi xử lý sinh ra ở bước 2 trong quá trình xác thực để tạo ra khóa K Dùng K để giải mã bản mã hóa S để nhận khóa bí mật S

 7.5: Sử dụng hàm băm MD5 để băm S để tiến hành so sánh với bản băm khóa bí mật S được lưu trong hệ thống từ bước đăng ký Nếu quá trình so sánh trả về kết quả đúng thì vi xử lý sẽ trả về kết quả là hash(S + K)

Nếu quá trình so sánh bị lỗi thì vi xử lý sẽ trả về kết quả lỗi

- Bước 8 (thực hiện ở server): Gửi kết quả trả về từ vi xử lý cho người dùng

- Bước 9 (thực hiện trên thiết bị người dùng): Người dùng sẽ kiểm tra xem hash(S+K) có giống so với bản hash mà server gửi về ở bước 8 không Nếu kết quả là đúng thì người dùng xác thực server thành công Server và người dùng tiến hành trao đổi dữ liệu, yêu cầu thông qua việc sử dụng khóa K và quá trình xác thực thành công

Giao diện của quá trình đăng nhập của người dùng

Hình 6.5: Giao diện đăng nhập

Đánh giá hệ thống

6.5.1 Đánh giá hiệu suất của hệ thống Ở phần này sẽ đánh giá độ phức tạp của hệ thống Hệ thống được hiện thực gồm có hai quá trình chính Ở cả quá trình đăng ký và xác thực, hệ thống đều thực hiện các bước một cách lần lượt nên độ phức tạp của mô hình này sẽ là tổng của các độ phức tạp thành phần

 Tạo ra n giá trị ngẫu nhiên {θ1 , θ2 ,… θn}: Bước này nhằm tạo ra tập n giá trị ngẫu nhiên trong khoảng [0…2] để dùng làm dữ liệu tạo ma trận trực giao

Trong bước này ta gọi hàm radom và hàm này chạy n lần để tạo ra n giá trị ngẫu nhiên Độ phức tạp của bước này là O(n)

 Tạo ma trận trực giao : Ma trận này được mô tả chi tiết như phần Phép chiếu ngẫu nhiên (mục 4.3) theo phương pháp Al-Assam [1] Để tạo ma trận này ta cần gọi hàm sin và hàm cos n lần Gọi độ phức tạp của hàm sin là O(s) và hàm cos là O(c) thì độ phức tạo của việc tạo ma trận là O(n.c) + O(n.s) Ví dụ hàm sin và hàm cos được tính theo giải thuật “Arithmetic-geometric mean iteration” thì ta có s = c = O(M(k) log k) với k là số chữ số cần tính sin, cos và O(M(k)) là độ phức tạp của giải thuật để tính toán Cuối cùng độ phức tạp của giải thuật sinh ma trận trực giao sẽ là: O(2n.M(k).log(k))

 Phép chiếu lên ma trận trực giao: Đây là bước để thực hiện biến đổi đặc trưng sinh trắc từ đó tạo ra đặc trưng sinh trắc biến đổi và lưu trữ trên server Gọi M(2n x 2n) là ma trận trực giao, vector X(2n x p) sẽ là vector đặc trưng sinh trắc của người dùng Theo công thức tính độ phức tạp khi nhân 2 ma trận thì phép tính có độ phức tạp là O(4n 2 ) Tuy nhiên, theo phương pháp Al-Assam thì ma trận M là ma trận trực giao chỉ có đường chéo là các phần tử khác 0, nên với mỗi phần tử trong vector kết quả, ta chỉ cần 2 phép tính nhân và 1 phép tính cộng, từ đó ta có độ phức tạp của giải thuật là O(n.(2k 1.465 + log(k))) với k là số chữ số của con số trong phép tính, giả sử phép nhân được thực hiện theo giải thuật “3-way Toom–Cook multiplication”

 Phép toán XOR: độ phức tạp của phép toán này là O(n) với n là số bit của chuỗi cần XOR

 Giải thuật decode: Giải thuật decode được sử dụng trong mô hình là giải thuật sửa lỗi tuyến tính (linear error correcting code), với mỗi phần tử nó cần chạy giải thuật Nearest Neighbor Algorithm, giải thuật này có độ phức tạp là số vòng lặp tối đa là 2.t với t là ngưỡng threshold cho phép của giải thuật Như vậy với mỗi phần tử ta cần sử dụng 1 hàm min, 1 hàm max, 1 phép cộng, một phép trừ, như vậy có thể tính tổn độ phức tạp của giải thuật này là : O(n.(2log(k) + 2k + 2.t.log(k)))

60 Qua phân tích ở trên, ta nhận thấy các phép tính trong mô hình có độ phức tạp là đa thức

6.5.2 Đánh giá về độ bảo mật của hệ thống

Trong phần này sẽ mô tả về độ bảo mật của mô hình được đề xuất để chống lại một số hình thức tấn công phổ biến hiện nay Việc kết hợp sử dụng xác thực nhiều yếu tố giúp tăng khả năng bảo mật cho hệ thống, chúng ta sẽ đi phân tích chi tiết về cách chống lại các kiểu tấn công mà mô hình này có thể chống lại được

 Tấn công mẫu sinh trắc (Biometric template attack)

Trong mô hình được đề xuất, đặc trưng sinh trắc của người dùng được bảo vệ bởi phép biến đổi không khả nghịch Nghĩa là phép biến đổi được sử dụng để biến đổi đặc trưng sinh trắc người dùng (sử dụng chiếu lên ma trận trực giao ngẫu nhiên) là phép biến đổi một chiều, mà rất khó có thể tìm ra hàm nghịch đảo để chuyển đặc trưng sinh trắc biến đổi về dạng ban đầu Trong quá trình đăng ký, chúng ta lưu sinh trắc biến đổi (BTC) trên hệ thống Với cơ sở lý thuyết được đề cập ở trên thì giả sử kẻ tấn công lấy được đặc trưng sinh trắc biến đổi (BTC) thì cũng không thể từ đó để suy ra đặc trưng sinh trắc ban đầu (B) của người dùng Trong trường hợp đặc trưng sinh trắc biến đổi bị lộ, người dùng hoàn toàn có khả năng thay thế đặc trưng sinh trắc biến đổi này bằng cách sinh ra một KM mới để tạo ra một ma trận trực giao mới, từ đó tạo ra một đặc trưng sinh trắc biến đổi mới và đăng ký lại với hệ thống Công việc này tương tự như việc thay đổi mật khẩu trong các hệ thống xác thực đơn giản

 Tấn công lặp lại (Replay attack)

Tấn công lặp lại là việc kẻ tấn công có các thông tin của phiên giao dịch trước của người dùng và dùng chính thông tin này để giả người dùng đó thiết lập một phiên giao dịch mới Để chống lại hình thức tấn công này, mỗi phiên giao dịch thì vi xử lý sẽ sinh ra một số ngẫu nhiên NA để gửi cho người dùng Dựa vào số NA mà vi xử lý xác định được là các thông tin mà người dùng sử dụng xác thực là những thông tin vừa được cung cấp chứ không phải là các thông tin đã được sử dung trong một phiên xác thực nào trước đó Ở bên phía người dùng cũng sinh ra số ngẫu nhiên K (sử dụng như session key) để người dùng xác nhận được là các thông tin mà hệ thống gửi cho người dùng là thông tin mới cho phiên xác thực này chứ không phải các thông tin đã được gửi trong phiên xác thực nào trước đó Từ đó hệ thống tránh được việc kẻ tấn công có thể sử dụng các thông tin từ phiên xác thực trước bị lộ để giả danh người dùng hoặc giả danh server nhằm thực hiện mục đích bất hợp pháp Từ số NA thì người dùng sẽ kết hợp với khóa K ngẫu nhiên tạo ra KNA để kết hợp với đặc trưng sinh trắc tạo ra BL Khi đó nếu kẻ tấn công bắt được thông tin của phiên giao dịch trước biết được NA hoặc K hoặc cả hai thì cũng không thể giả danh người dùng hoặc giả danh server để thực hiện các mục đích giả danh của mình

 Tấn công nghe lén (Man-in-the-middle attack)

Tấn công nghe lén là kẻ tấn công sẽ đứng ở giữa và bắt các gói tin từ người dùng tới hệ thống và ngược lại để nhằm lấy được các thông tin trao đổi giữa người dùng với hệ thống Dựa vào mô hình ta có thể thấy, ở bước đăng ký, đặc trưng sinh trắc biến đổi được mã hóa bởi khóa công khai của vi xử lý, do đặc tính của hệ thống mã hóa công khai nên chỉ có vi xử lý có chứa khóa bí mật tưng ứng mới mở để đọc được nội dung bên trong, từ đó có thể loại bỏ việc tấn công nghe lén ở phần đăng ký Ở phần xác thực, giả sử kẻ tấn công bắt được BL, tuy nhiên kẻ tấn công cũng không thể giải mã phần BTC lưu trên máy chủ (bởi BTC được mã hóa bởi khóa công khai của vi xử lý) Với việc chỉ có BL thì kẻ tấn công không thể suy ra bất kì thông tin gì về khóa K và đặc trưng sinh trắc biến đổi của người dùng

Trong quá trình gửi khóa bí mật S thì khóa bí mật S này được mã hóa bởi khóa K được sinh ra ngẫu nhiên cho mỗi phiên xác thực (session key) Để nghe lén được các thông điệp trao đổi sau đó, kẻ tấn công buộc phải biết khóa K Tuy nhiên khóa K này chỉ được sinh ra sau quá trình giải mã theo mô hình fuzzy commitment thực hiện trong vi xử lý bảo mật Do vậy, ở quá trình xác thực, với việc chỉ có BL và khóa bí mật S được mã hóa bởi khóa K thì kẻ tấn công không thể tính toán ra được thông tin gì phục vụ cho quá trình nghe lén sau này

 Tấn công từ người dùng bên trong hệ thống (insider attack)

Trong mô hình này, đặc trưng sinh trắc của người dùng được biến đổi thông qua phép biến đổi ngẫu nhiên và sau đó được mã hóa bởi khóa công khai của vi xử lý

Giả sử kẻ tấn công là một người bên trong hệ thống (có thể là người dùng hợp pháp hoặc là quản trị cơ sở dữ liệu của hệ thống) thì kẻ tấn cũng cũng không thể giải mã thông điệp mã hóa được lưu trên cơ sở dữ liệu máy chủ Hơn nữa, đặc trưng sinh trắc biến đổi còn được mã hóa bởi khóa công khai người dùng, nếu server chính là người yêu cầu vi xử lý bảo mật giải mã nhằm lấy được thông tin thì việc yêu cầu này thất bại Do khi giải mã bằng khóa bí mật của vi xử lý, lớp mã mã tiếp theo cần dùng khóa công khai người dùng để giải mã, tuy nhiên người yêu cầu giải mã là server chứ không phải người dùng đã đăng kí Do vậy vi xử lý sẽ trả về kết quả lỗi Chính vì lẽ đó nên đặc trưng sinh trắc biến đổi được lưu trên server được bảo vệ an toàn cả với người quản trị hệ thống Và ngay cả khi đặc trưng sinh trắc biến đổi lưu trên máy chủ bị lộ, kẻ tấn công cũng rất khó có thể suy ra được đặc trưng sinh trắc ban đầu của người dùng Do đặc trưng này bị biến đổi qua phép biến đổi ngẫu nhiên (được trình bày tại mục 4.3)

Ngày đăng: 09/09/2024, 06:17

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Al-Assam, H., R. Rashid, and S. Jassim (2013). Combining steganography and biometric cryptosystems for secure mutual authentication and key exchange, The 8 th International Conference for Internet Technology and Secured Transactions (ICITST) Sách, tạp chí
Tiêu đề: 2013). Combining steganography and biometric cryptosystems for secure mutual authentication and key exchange
Tác giả: Al-Assam, H., R. Rashid, and S. Jassim
Năm: 2013
5. Einar Jónsson (2007). Co-Authentication: A Probabilistic Approach to Authentication, Master Thesis, Technical University of Denmark Sách, tạp chí
Tiêu đề: Co-Authentication: A Probabilistic Approach to Authentication
Tác giả: Einar Jónsson
Năm: 2007
6. Failla, P., Y. Sutcu, and M. Barni et al (2010). A privacy-preserving fuzzy commitment scheme for authentication using encrypted biometrics, inProceedings of the 12th ACM workshop on Multimedia and security, ACM:Roma, Italy, p. 241-246 Sách, tạp chí
Tiêu đề: A privacy-preserving fuzzy commitment scheme for authentication using encrypted biometrics
Tác giả: Failla, P., Y. Sutcu, and M. Barni et al
Năm: 2010
7. Huynh, V.Q.P., et al (2013). A Combination of ANN and Secure Sketch for Generating Strong Biometric Key, Journal of Science and Technology, Vietnamese Academy of Science and Technology. 51(4B), p. 30-39 Sách, tạp chí
Tiêu đề: A Combination of ANN and Secure Sketch for Generating Strong Biometric Key
Tác giả: Huynh, V.Q.P., et al
Năm: 2013
8. IBM Corp (2015). IBM 4765 PCIe Cryptographic Coprocessor Custom Software Developer's Toolkit Guide, pp 9-40 Sách, tạp chí
Tiêu đề: IBM 4765 PCIe Cryptographic Coprocessor Custom Software Developer's Toolkit Guide
Tác giả: IBM Corp
Năm: 2015
10. Jain, A.K., K. Nandakumar, and A. Nagar (2008). Biometric template security, EURASIP J.Adv. Signal Process,p. 1-17 Sách, tạp chí
Tiêu đề: Biometric template security
Tác giả: Jain, A.K., K. Nandakumar, and A. Nagar
Năm: 2008
11. Le, T.T.B., et al (2014). Protecting Biometric Features by Periodic Function- Based Transformation and Fuzzy Vault, Transactions on Large-Scale Data- and KnowledgeCentered Systems XVI, A. Hameurlain, et al., Editors, Springer Berlin Heidelberg, p. 57-70 Sách, tạp chí
Tiêu đề: Protecting Biometric Features by Periodic Function-Based Transformation and Fuzzy Vault
Tác giả: Le, T.T.B., et al
Năm: 2014
12. Lifang, W. and Y. Songlong (2010). A Face Based Fuzzy Vault Scheme for Secure Online Authentication , Second International Symposium on Data, Privacy and E-Commerce(ISDPE) Sách, tạp chí
Tiêu đề: A Face Based Fuzzy Vault Scheme for Secure Online Authentication
Tác giả: Lifang, W. and Y. Songlong
Năm: 2010
13. Matthew A.Turk and Alex P.Pentland (1991). Face Recognition Using Eigenfaces, Proc. of IEEE Conf. on Computer Vision and Pattern Recognition, pp. 586-591 Sách, tạp chí
Tiêu đề: Face Recognition Using "Eigenfaces
Tác giả: Matthew A.Turk and Alex P.Pentland
Năm: 1991
14. Mark Stamp (2006), Information Security: Principles and Practice, JohnWiley & Sons, Inc., Hoboken, New Jersey, ISBN-13 978-0-471-73848-0 Sách, tạp chí
Tiêu đề: Information Security: Principles and Practice
Tác giả: Mark Stamp
Năm: 2006
15. Nguyen, T.H.L. and T.T.H. Nguyen (2008). An approach to protect Private Key using fingerprint Biometric Encryption Key in BioPKI based security system, The 10 th International Conference on Control, Automation, Robotics and Vision, ICARCV Sách, tạp chí
Tiêu đề: An approach to protect Private Key using fingerprint Biometric Encryption Key in BioPKI based security system
Tác giả: Nguyen, T.H.L. and T.T.H. Nguyen
Năm: 2008
17. Xi, K., et al (2011). A fingerprint based bio-cryptographic security protocol designed for client/server authentication in mobile computing environment, Security and Communication Networks, p. 487-499 Sách, tạp chí
Tiêu đề: A fingerprint based bio-cryptographic security protocol designed for client/server authentication in mobile computing environment
Tác giả: Xi, K., et al
Năm: 2011
19. Yang G, Huang T S. Human (1994). Face detection in complex background. Pattern Recognition, pp 53-63 Sách, tạp chí
Tiêu đề: Face detection in complex background
Tác giả: Yang G, Huang T S. Human
Năm: 1994
3. Bundesamt für Sicherheit in der Informationstechnik (2011). Study of the Privacy and Accuracy of the Fuzzy Commitment Scheme Khác
9. IBM Corp (2015). IBM 4765 PCIe Cryptographic Coprocessor Custom Software Interface Reference Khác
18. Nguyen Thi Hoang Lan (2009), Hệ thống an ninh thông tin dựa trên sinh trắc học Bio-PKI, Đại học Bách Khoa Hà Nội Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.6 : Thiết bị quét võng mạc mắt - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 2.6 Thiết bị quét võng mạc mắt (Trang 24)
Hình 2.7 : Các đặc trưng sinh trắc và tính chất của nó - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 2.7 Các đặc trưng sinh trắc và tính chất của nó (Trang 26)
Hình 3.1: Độ phân giải của 1 ảnh - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 3.1 Độ phân giải của 1 ảnh (Trang 31)
Hình 3.3: Diện mạo biểu diễn sự thay đổi khuôn mặt - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 3.3 Diện mạo biểu diễn sự thay đổi khuôn mặt (Trang 32)
Hình 3.4: Phương pháp rút trích đặc trưng sinh trắc - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 3.4 Phương pháp rút trích đặc trưng sinh trắc (Trang 36)
Hình 3.5: Tập ảnh huấn luyện của hệ thống - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 3.5 Tập ảnh huấn luyện của hệ thống (Trang 38)
Hình 4.2: Sơ đồ chạy một chương trình trong vi xử lý - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 4.2 Sơ đồ chạy một chương trình trong vi xử lý (Trang 44)
Hình 4.3:  Các nhãn debugg sử dụng để debugg ứng dụng - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 4.3 Các nhãn debugg sử dụng để debugg ứng dụng (Trang 45)
Hình 4.4:  Một số thư viện bên phía máy trạm và vi xử lý - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 4.4 Một số thư viện bên phía máy trạm và vi xử lý (Trang 46)
Hình 5.1: Mô hình đăng ký - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.1 Mô hình đăng ký (Trang 52)
Hình 5.2: Mô hình xác thực - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.2 Mô hình xác thực (Trang 53)
Hình 5.3 : Quá trình mã hóa và giải mã của DES - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.3 Quá trình mã hóa và giải mã của DES (Trang 54)
Hình 5.4: Quá trình mã hóa và giải mã với RSA - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.4 Quá trình mã hóa và giải mã với RSA (Trang 54)
Hình 5.6: Hàm hash - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.6 Hàm hash (Trang 55)
Hình 5.5: Thời gian phân tích thừa số nguyên tố trong giải thuật RSA - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.5 Thời gian phân tích thừa số nguyên tố trong giải thuật RSA (Trang 55)
Hình 5.7: Mã xác thực thông điệp - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.7 Mã xác thực thông điệp (Trang 56)
Hình 5.8:  Bảo vệ đặc trưng sinh trắc - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.8 Bảo vệ đặc trưng sinh trắc (Trang 57)
Hình 5.9:  Mô hình fuzzy commitment - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.9 Mô hình fuzzy commitment (Trang 59)
Hình 5.10:  Phép biến đổi ngẫu nhiên - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 5.10 Phép biến đổi ngẫu nhiên (Trang 62)
Hình 6.3:  Giao diện đăng ký một người dùng mới - Luận văn thạc sĩ Khoa học máy tính: Bảo vệ đặc trưng sinh trắc trong xác thực từ xa bằng vi xử lý bảo mật
Hình 6.3 Giao diện đăng ký một người dùng mới (Trang 66)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN