Tải bản đầy đủ (.pdf) (44 trang)

tổng quan bài toán nhận dạng cách gõ phím

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 44 trang )

Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Mục lục
1 Nhóm thực hiện 5
2 Tổng quan 5
2.1 Ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Lịch sử phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Những tiêu chuẩn đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Xây dựng mẫu dữ liệu 7
3.1 Lựa chọn thuộc tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 Scan code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2 Dwell time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.3 Flight time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.4 Xây dựng biểu đồ dựa trên các thuộc tính dwell time và flight time . . . . . . . 9
3.2 Quy trình thu thập mẫu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Xây dựng hồ sơ tham chiếu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Các giải thuật phân lớp 14
4.1 Sử dụng mạng nơron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 Sử dụng độ đo khoảng cách . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.1 Khoảng cách Euclid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.2 Khoảng cách Euclid dạng chuẩn . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.3 Khoảng cách Manhattan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.4 Khoảng cách Manhattan (scaled) . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.5 Khoảng cách Mahalanobis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.6 Khoảng cách Mahalanobis dạng chuẩn . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.7 Lân cận gần nhất (Mahalanobis) . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Outlier-count (z-score) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 Các giải thuật khác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 Lượng giá giải thuật 22
5.1 Nhu cầu về bộ test chuẩn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Cách thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Huấn luyện và kiểm nghiệm giải thuật . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


5.4 Tính toán hiệu quả của mỗi giải thuật . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 Ứng dụng demo 27
6.1 Psylock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.1 Đăng ký . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1.2 Tạo hồ sơ cá nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
6.1.3 Xác nhận cách gõ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2 BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2.1 Cài đặt chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2.2 Đăng ký . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2.3 Tạo hồ sơ cá nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.2.4 Xác nhận cách gõ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7 Tổng kết 41
7.1 Đánh giá ưu khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1
7.1.1 Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.2 Khuyết điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2 Các hướng nghiên cứu tiếp theo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Tài liệu 43
Chỉ mục 44
2
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Danh sách hình vẽ
1 Đồ thị quan hệ giữa FAR, FRR và EER . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Đồ thị thể hiện Zero -miss rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Flight time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 Biểu đồ theo dwell time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Biểu đồ digraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6 Biểu đồ trigraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7 Mạng nơron nhân tạo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

8 Đường cong ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9 Trang chủ Psylo ck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10 Chọn Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11 Trang chủ Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12 Đăng ký Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
13 Mail xá c nhận Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
14 Đăng nhập Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
15 Giao diện ban đầu của Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
16 Đổi sang giao diện tiếng Anh của Psylock Demo . . . . . . . . . . . . . . . . . . . . . 30
17 Giao diện tiếng Anh của Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . 30
18 Huấn luyện Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
19 Thông báo huấn luyện xong Psylock Demo . . . . . . . . . . . . . . . . . . . . . . . . 3 1
20 Giao diện Psylock Demo verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
21 Giao diện Psylock Demo verify đúng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
22 Giao diện Psylock Demo verify phát hiện giả mạo . . . . . . . . . . . . . . . . . . . . . 32
23 Chạy tập tin cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
24 Bước 1 cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3
25 Bước 2 cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4
26 Bước 3 cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4
27 Cửa sổ cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5
28 Hoàn tất cài đặt BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
29 Icon BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
30 Màn hình chính BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
31 Màn hình đăng ký BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
32 Huấn luyện BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
33 Hoàn tất huấn luyện BioPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
34 Kích hoạt BioPassword verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
35 Màn hình BioPassword verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
36 Màn hình BioPassword verify đúng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
37 Màn hình BioPassword verify phát hiện giả mạ o . . . . . . . . . . . . . . . . . . . . . 41

3
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Danh sách bảng
1 Bảng xếp hạng các giải thuật theo Equal-error rate. . . . . . . . . . . . . . . . . . . . 26
2 Bảng xếp hạng các giải thuật theo Zero-miss false alarm rate. . . . . . . . . . . . . . . 26
4
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
1 Nhóm thực hiện
Nguyễn Đức Ho àng - 10 11 076
Phạm Linh Huy - 10 11 026
Huỳnh Nguyễn Kossel - 10 11 033
Hứa Lê Thanh Vy - 10 11 070
2 Tổng quan
2.1 Ứng dụng
Để đăng nhập vào những hệ thống như tài khoản ngân hàng, website, hay mạng nội bộ công ty, tài
khoản và mật khẩu là một phương thức an ninh rất quen thuộc và được áp dụng rộng rãi cho đến
hiện nay. Nhưng đồng hành với phương thức an ninh này cũng có nhiều những vấn đề về bảo mật.
Việc giữ bí mật về mật khẩu là một vấn đề hết sức khó khăn và cũng có lắm rủi ro. Những mật khẩu
đơn giản thì dễ dàng bị bẻ gãy, những mật khẩu phức tạp thì thật sự khó nhớ. Để giải quyết vấn đề
này, r ất nhiều nghiên cứu trên rất nhiều lĩnh vực đã được thực hiện không chỉ ở lĩnh vực mã hoá, mật
mã mà còn trên những lĩnh vực nhân trắc học như nhận dạng vân tay, khuôn mặt, bàn tay, (Nhân
trắc học dựa trên đặc trưng sinh học) hay nhận dạng giọng nói, chữ viết tay, đánh máy, (Nhân trắc
học dựa trên đặ c trưng hành vi).
Trong số các hướng nghiên cứu về nhâ n trắc học dựa trên đặc trưng hành vi để áp dụng giải
bài toán về bảo mật chứng thực, tài liệu này sẽ trình bày về nhâ n trắc học hành vi dựa trên đặc
trưng đánh máy với tên gọi trong thuật ngữ chuyên ngành là Keystroke Dynamics hay Typing
Dynamics.
Thực chất, kỹ thuật này tập trung vào việc rút trích thông tin đặc trưng từ những tương tác giữa
một người và một thiết bị có chức năng như bàn phím và sử dụng thông tin này để tự động chứng
thực và/hay định danh ng ười dùng. Ý tưởng cơ bản dựa trên giả thuyết là mỗi người tương tác với

bàn phím theo một cách riê ng duy nhất. Giả định những sự tương tác của một người với bàn phím đủ
đặc biệt để cung cấp một chữ ký tham chiếu duy nhất. Với một chữ ký có được, nhiệm vụ tiếp theo
là phát triển một phương pháp tự động để phân biệt một chữ ký tham chiếu từ một tập hợp tất cả
những chữ ký tham chiếu (Thực chất đây là bước phân lớp). Độ chính xác của tiến trình này là mục
tiêu chính trong các nghiên cứu. Những nhân tố nào ảnh hưởng đến độ chính xác của sự phân lớp?
Đó là những thuộc tính hay thuật toán phân lớp hay sự kết hợp của cả hai? Đó là những câu hỏi đặt
ra trên những nghiên cứu trong lĩnh v ực này.
2.2 Lịch sử phát triển
Vào thế chiến thứ II khi quân đội truyền tin bằng mã Morse, với một phương pháp được gọi là "The
Fist of the Sender" tình báo quân đội đã phát hiện ra rằng mỗi người có một nhịp điệu nhấn tín hiệu
riêng duy nhất, điều này có thể giúp họ có thể phân biệt đồng minh hay quân địch.
5
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Năm 19 79, Viện nghiên cứu Stanford (SRI International) phát triển một giải pháp nhân trắc học
dựa trên phần cứng sử dụng cùng một nguyên lý như "The Fist of the Sender".
Năm 1984, SRI International thực hiện một nghiên cứu cho Viện nghiên cứu quốc gia Hoa Kỳ (the
National Bureau of Standards) với việc sử dụng Keystroke Dynamics cho an ninh máy tính. Kết quả
của nghiên cứu này đạt đến độ chính xác 98%.
Năm 2000, BioPassword giải quyết một vấn đề quan trọng trong việc xác thực người dùng sau
khi vượt qua chương trình kiểm định Comparative Testing của the Financial Services Technology
Consortium (FSTC)/International Biometric Group (IBG). Chương trình này đo hiệu suất thế giới
thực của những công nghệ nhân trắc học hàng đầu trong 2 lĩnh vực IT security và thương mại điện
tử.
Năm 2001, công nghệ Keystroke Dynamics được tích hợp vào các sản phẩm tiêu dùng từ điện thoại
di động cho đến các thiết bị bảo mật cá nhân.
Năm 2 002, BioPassword giành được bản quyền công nghệ Keystroke Dynamics và ứng dụng
Keystroke Dynamics vào chứng thực mạng, ng ân hàng, thương mại điện tử, y tế, chính phủ và giáo
dục.
Năm 2007, C ác nghiên cứu về lĩnh vực Keystroke Dynamic của Psylock vào được chung kết giải
thưởng danh tiếng Global Security Challenge và đạt giải ba IT-Sec urity Award 2008 của Đức. Với tỉ

lệ (FAR/FRR) c ủa mình, Psylock khẳng định vị trí dẫn đầu công nghệ .
2.3 Những tiêu chuẩn đánh giá
False Acceptance Rate (FAR) hay (FMR) : Tỷ lệ khả năng hệ thống chấp nhận những input
không hợp lệ - Tỷ lệ chấp nhận sai.
False Rejection Rate (FRR) hay (FNMR) : Tỷ lệ khả năng hệ thống không chấp nhận những
input hợp lệ - Tỷ lệ loại bỏ sai.
Equal Error Rate (EER) hay (CER) : Tỷ lệ mà tại đó những lỗi chấp nhận sai và những lỗi loại
bỏ sai bằng nhau. Tỷ lệ này càng nhỏ thì hệ thống càng đạt đến độ chính xác cao.
Hình 1: Đồ thị quan hệ giữa FAR, FRR và EER [7].
6
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Zero-miss false-alarm rate (Zero-miss rate): là một độ đo hiệu quả của thuật toán được định
nghĩa là tỷ lệ mà tại đó FAR là nhỏ nhất sao cho FRR là nhỏ nhất. Với Hit rate = 1 −F RR và False
Alarm Rate = FAR ta có Ze ro-miss rate và EER được minh hoạ như hình sau:
Hình 2: Hình 1 tà i liệu [5].
3 Xây dựng mẫu dữ liệu
3.1 Lựa chọn thuộc tính
Về cơ bản Keystroke Dynamics hoạt động với một tiến trình gồ m 3 giai đoạn:
• Bước 1: Các đặc điểm tương tác với bàn phím của người dùng được thu thập lại.
• Bước 2: Hệ thống phát triển một mô hình mẫu.
• Bước 3: Phát sinh quá trình phân lớp dựa trên các đặc điểm đánh máy của người dùng và mô
hình mẫu đã được xây dựng.
Bước quan trọng nhất của Keystroke Dynamics là việc lựa chọn các đặc điểm đánh máy của người
dùng. Mục đích của tiến trình này là thu thập lại các đặc điểm tương tác với bàn phím riêng biệt của
mỗi người dùng khác nhau. Các đặc điểm này bao gồm 3 thuộc tính chính sau đây:
1. Scan code: mã vị trí của phím.
7
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
2. Dwell time: thờ i gian đè một phím.
3. Flig ht time: thời gian giữa các phím.

3.1.1 Scan code
Scan code là một giá trị số duy nhất ứng với mỗi phím trên bàn phím. Chẳng hạn khi đánh một ký
tự in hoa, sẽ có hai cách. Một là người dùng sẽ ấn phím Caps Lock rồi ấn phím cần đánh. Hai là sử
dụng phím Shift + phím cần gõ. Hoặc khi khi cầ n gõ số 1 cũng có hai cách là sử dụng phím 1 ngay
bên trên phím Q hoặc gõ phím 1 tại khu vực các phím chỉ toàn là số (khu vực phím Num Lock). Khi
đó mã vị trí phím (scan code) của hai phím số 1 này là khác nhau.
3.1.2 Dwell time
Dwell time là thời gian người dùng đè một phím cho tới khi nhả ra khi đánh máy.
3.1.3 Flight time
Flight time là thời gian đánh n phím liên tục (n thường là 2 hoặc 3).
8
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Hình 3: Flight time [8].
Giải thích:
Chữ P nghĩa là Press: lúc bắt đầu nhấn một phím nào đó. Chữ R ng hĩa là Release: lúc thả phím ra.
• Dwell time (D1) D1 = R1 −P 1 : từ lúc đè phím cho tới lúc nhả phím ra
• Flight time
Chia ra 3 loại như sau:
1. Nhả phím - Ấn phím (D2)
– Thời gian từ lúc ấn phím đầu tiên cho đến lúc ấn phím tiếp theo.
– Là một giá trị dương
– D2 = P 2 − P 1.
2. Ấn phím - Ấn phím (D3)
– Khoảng thời gian khi nhả phím đầu cho đến lúc ấn phím tiếp theo
– Có thể là một giá trị âm nếu phím đầu tiên chưa nhả mà phím tiếp theo đã được ấn
xuống.
– D3 = P 2 − R1.
3. Nhả phím - Nhả phím (D4)
– Khoảng thời gian từ lúc nhả phím thứ nhất đến lúc nhả phím thứ ha i.
– Là một giá trị dương.

– D4 = R2 −R1
3.1.4 Xây dựng biểu đồ dựa trên các thuộc tính dwell time và flight time
Biểu đồ theo dwell time
9
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Hình 4: B iể u đồ trên thể hiện thời gian đánh mỗi ký tự trong chuỗi THE BROWN FOX [8].
Biểu đồ theo Flight tim e Từ đặc điểm c ủa flight time người ta thường xây dựng 2 loại biểu đồ
để hỗ trợ trong việc phân lớp.
Biểu đồ digraph Biểu đồ digraph được xây dựng dựa trên khoảng thời gian từ lúc bấm phím
đầu tiên đến lúc nhấn phím thứ 2.
10
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Hình 5: B iể u đồ digraph [8].
Biểu đồ trên thể hiện thời gian đánh 2 ký tự liên tiếp (tính bằng giây). Những chữ trên trên đường
nằm trên trục ngang (gồm 2 ký tự) là những chữ thường xuất hiện khi người dùng đánh máy (chữ
tiếng anh). Bao gồm 20 chữ là: th, he, nd, ne, in, er, an, ng, me, we, is, at, on, es, ay, or, hi, the, ing,
are.
Biểu đồ trigraph Biểu đồ trigraph thể hiện thời gian từ lúc đánh phím thứ 1 đến phím thứ 3.
Ví dụ như người dùng đánh vào chuỗi american. Người ta phân tích thời gian (mili giây) đánh những
ký tự liên tiếp như sau:
S1: ame 277; mer 255; eri 2 97; ric 326; ica 235
Sắp xếp lại theo thời gian tă ng dần:
S1: ica 235 mer 255; ame 277; eri 297; r ic 326
So sánh các những lần nhập chuỗi american để tính sự khác biệt về thời gian giữa những lần nhập.
11
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Hình 6: Biểu đồ trigraph [8].
Tính chỉ số khoảng cách:
D(S1, S2) = (1 + 1 + 0 + 1 + 1)/12 = 0.33
Số này được làm làm tròn nên giá trị của nó nằm trong khoảng [0, 1].

3.2 Quy trình thu thập mẫu
Mục đích của quá trình thu thập dữ liệu là để trích rút ra những đặc trưng của mỗi người, hình
thành thông tin cá nhân. Có 2 phương pháp thu thập dữ liệu: thu thập tĩnh (static) và thu thập
động (dynamic). Thu thập tĩnh là quá trình xãy ra trước khi người dùng chứng thực bằng hệ thống,
thu thập động là quá trình xãy ra thường xuyên sau khi người dùng chứng thực thành công bằng hệ
thống. Hai phương pháp này còn phụ thuộc vào kiểu văn bản thu thập, có 2 kiểu văn bản là văn bản
dài, văn bản ngắn.
Trong cả 2 phương phá p thu thập động và thu thập tĩnh, người dùng được yêu cầu nhập 1 đoạn
văn bản theo tuần tự để cung cấp mẫu giới hạn về những kiểu kí tự của người dùng. Trong kiểu nhập
văn bản dài, người sử dụng s ẽ được yêu cầu nhậ p vào một chuỗi văn bản rồi lựa chọn cẩn thận các
khoảng chứa thuộc tính như digraphs, trigraphs, và dwell time. Thông thường môt đoạn văn bài dài
có thể có chiều dài từ 100 tới 1500 kí tự. Một sản phẩm thương mại là Psylock (www.psylock.com)
sử dụng kiểu nhập văn bản dài này và có kết quả rất chính xác. Có một số nghiên cứu liên quan cho
rằng digraph hoặc trigraph có nhiều sự phân biệt hơn so với những kiểu khác. Chẳng hạn, Leggett và
Villiam (1991) tìm ra five digraphs đủ cho mục đích chứng thực người dùng, và một số nghiên cứu
khác của Revett (2005) và Sim và Janakirama (2008) kết quả chỉ ra rằng digra phs chỉ ra sự phân biệt
nhiều nhất, nhưng sẽ phụ thuộc vào kiểu nội dung khảo sát.
Hình thức nhập văn bản ngắn trong phương pháp thu thập tĩnh đòi hỏi người dùng phải nhập vào
cùng một chuỗi kí tự (ví dụ : username và password) nhiều lần khoảng 10 - 15 lần. Một sản phẩm
thương mại là BioPassword (www.biopassword.com). Mặc định, người dùng sẽ đăng nhập bằng ID và
Password (ID và Password thường có 6-8 ký tự), nên trong bình sẽ có khoả ng 14 ký tự được nhập
mỗi lần, và người sẽ phải nhập khoảng 10-15 lần, có mộ t số lượng chữ kí sẽ được lặp lại mà dựa vào
12
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
đó để xây dựng lên mô hình thuộc tính.
Hình thức nhập văn bản dài trong phương pháp thu thập tĩnh có một trở ngại là gây phiền cho
người dùng, nghĩa là người dùng cần nhập một đoạn văn bản dài. Mặc định, người dùng phải nhập
một đoạn văn bản trên 10 lần cùng một nội dung. Một thuận lợi của kiểu nhập văn bản dài là khi
người dùng vô tình đánh sai một kí tự thì hệ thống sẽ bỏ qua, còn đối với kiểu nhập văn bản ngắn
thì khi nhập sai hệ thống sẽ yêu cầu người dùng nhập lại từ đầu.

Thêm một trường hợp cho phương pháp thu thập tĩnh (sử dụng cả kiểu nhập văn bản dài và nhập
văn ngắn) là theo dõi liên tục cách gõ của người dùng. Quan sát cách gõ của người dùng khi họ tương
tác với máy tính (chẳng hạn, khi người dùng gõ một từ). việc quan sát người dùng có thể bắt đầu tại
quá trình chứng thực (sử dụng phương pháp đăng nhập bằng ID/Password) và sau đó khi người dùng
tương tác với hệ thống. Một tr ong những chìa khóa thuận lợi cho cách tiếp cận này là người dùng
không phải thực hiện thao tác thu thập. Người dùng sẽ tương tác với máy tính bình thường và các
thuộc tính sẽ được trích lọc và sẽ được sử dụng cho việc xây dựng mô hình chứng thực. Và thêm một
thuận lợi khác cho cách tiếp cận này là nó có thể kiểm tra ngẫu nhiên thời gian giữa 2 lần lựa chọn
khi mà kiểu gõ được thay đổi trong mối quan hệ với một số điểm thời gian trước . Nếu hệ thống cảnh
báo một thay đổi trong kiểu gõ, điều đó có thể là một tín hiệu cho rằng người dùng hiện tại không
giống với người sử dụng trước đó. Có một trường hợp xảy ra khi người dùng đăng nhập vào máy tính,
người dùng này đi đâu đó trong một thời gian ngắn và ng ười khác có thể có quyền sử dụng máy với
quyền cao nhất. Trong trường hợp này thì việc chứng thực có thể đặt tại màn hình chờ.
3.3 Xây dựng hồ sơ tham chiếu
Sau khi người dùng hoàn tất việc đăng ký vào hệ thống, một mô hình đặc trưng cho cách gõ phím
của họ sẽ được xây dựng và lưu trữ nhằm mục đích chứng thực (authentication) và nhận dạng
(identification). Thông thường, dữ liệu đăng ký sẽ được lưu trữ trong một cấu trúc dữ liệu gọi là Bản
ghi thông tin nhân trắc học (Biometric Informatio n Record – BIR). BIR được lưu trữ ở dạng mã hóa
trên một máy chủ và được truy xuất khi cần chứng thực hay nhận dạng một người dùng. Điều này
có thể khiến BIR dễ bị tấn công off-line, nếu kẻ tấn công biết được hàm băm hay mã băm của cấu
trúc mã hóa. Để giảm thiểu tỷ lệ thành công của những đợ t tấn c ông off-line, nhiều phương pháp đã
được áp dụng như: làm rối mã, tăng độ ngẫu nhiên (chỉ số entropy) trong không gian dữ liệu dùng
cho việc chứng thực. Sau cùng, đặc tả hình thức cho việc lưu trữ dữ liệu BIR là rất quan trọng. Hiện
tại, việc trao đổi dữ liệu giữa các phòng thí nghiệm về cơ bản là không thể thực hiện được, vì vẫn còn
thiếu một chuẩn định dạng chung cho việc lưu trữ dữ liệu nhân trắc học, đặc biệt là trong lĩnh vực
nhân trắc học hành vi.
Với một định dạng lưu trữ phù hợp cho BIR), công việc tiếp theo là xây dựng một bộ phân lớp
(classifier) sử dụng những thông tin rút tr ích được từ một lần chứng thực và từ những nội dung
của BIR) liên quan. Nhiều nghiên c ứu về hệ thống chứng thực dựa trên cách gõ phím đều tập trung
vào việc xây dựng một mô hình phân lớp có độ chính xác cao. Đã có rất nhiều mô hình được xây

dựng, từ các mô hình thống kê đơn giản, đến nhiều thuật toán máy học khác nhau, và những mô
hình lai phức tạp. Quá trình phân lớp có thể thao tác theo một trong hai phương thức: chứng thực
13
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
(authentication) hoặc nhận dạng (identification). Hầu hết các báo cáo nghiên cứu trong lĩnh vực
này đều tập trung vào bài toán chứng thực. Bài toán chứng thực đơn giản hơn bài toán nhận dạng,
vì nó chỉ là q uá trình so khớp 1:1 giữa thông tin đang đăng nhập và BIR liên quan. Khi một người
đăng nhập vào hệ thống, những thuộc tính đã được ghi nhận trong quá trình đăng ký (và được lưu
trữ trong BIR) sẽ được rút trích và so sánh với BIR liên quan. Nếu chúng khớp nhau, thì người dùng
đó được phép đăng nhập hệ thống. Còn đối với bài toán nhận dạng, cần phải tìm ra BIR khớp nhất
với thông tin đăng nhập đầu vào. Việc này đòi hỏi phải duyệt qua từng bản ghi trong cơ sở dữ liệu
lưu trữ BIR, mà khối lượng dữ liệu này thường rất lớn trong các ứng dụng thương mại điện tử. Một
giải pháp hiệu quả có thể cần phải chia các BIR) theo một số tiêu chí tối ưu hóa.
Hầu hết các phương pháp chứng thực (tương tự cho phương pháp nhận dạng) đều sử dụng một
số dạng thuật toán máy học tự động. Các phương pháp này được phân thành nhiều loại. Loại cơ bản
đầu tiên được xác định dựa trên việc phân loại dữ liệu: dữ liệu thuộc dạng một-lớp (one-class) hay
hai-lớp (two-class). Ví dụ, nếu ta chỉ sử dụng thông tin đăng ký để xử lý, thì đó là hệ thống quyết
định một-lớp. Ta chỉ có mẫu của những lần chứng thực thành công. Mục tiêu của quá trình chứng
thực là phân biệt giữa những lần chứng thực hợp lệ và không hợp lệ. Nếu bộ phân lớp hoạt động dựa
theo những mẫu như vậy – thì đó là dạng học c ó g iám sát, và kỹ thuật điển hình dùng cho dạng họ c
này là các mạng nơron (neural networks) – do đó cần tìm cách huấn luyện cho hệ thống với chỉ một
lớp dữ liệu cho sẵn. Các hệ thống hai-lớp dùng cả mẫu dữ liệu hợp lệ của người dùng, lẫn mẫu dữ
liệu không hợ p lệ (đó ng vai những kẻ giả danh). Lọai dữ liệu này phù hợp cho một giải thuật học có
giám sát như: vectơ hỗ trợ (Support vector machines - SVM), hay tập thô (rough sets).
Một cách phân loại phương pháp chứng thực khác là dựa trên các độ đo khoả ng cách (distance
metrics) được dùng để phân biệt giữa người dùng hợp lệ và kẻ giả danh. Các hệ thống này sẽ tạo ra
một mô hình tham chiếu cho một người dùng hợp lệ (lưu thành một BIR). Bộ phân lớp phải xác định
được thông tin đăng nhập và của ngườ i dùng đó có khớp với nhau không, dựa trên các độ đo khoảng
cách đã chọn. Có nhiều độ đo khoảng cách đã được dùng như, từ độ đo khoảng cách Hamming, đến
khoảng cách chỉnh sửa (edit dista nce ), và các độ đo thống kê có thứ tự cao hơn.

Các ng hiên cứu đã chứng minh rằng những cách phân loại này không loại trừ lẫn nhau, và nhiều
độ đo khác nhau đã được khả o sát theo nhiều tổ hợp để cho ra cách phân lớp có độ chính xác cao
nhất (tức là giảm tối đa chỉ số EER).
4 Các giải thuật phân lớp
4.1 Sử dụng mạng nơron
Giải thuật này được mô tả bởi Haider [4]. Ta sử dụng một mạ ng nơron truyền thẳng được huấn luyện
bởi thuật toán lan truyền ngược. Trong quá trình huấn luyện, một mạng nơron có p nút nhập, một
nút xuất, và 
2p
3
 nút ẩn. Giải thuật gốc được thiết kế với 6 nút nhập, 4 nút ẩn vì vectơ đặc trưng
thời gian các tác giả sử dụng chỉ có 6 thuộc tính (xem hình 7). ở đây ta đang xét trường hợp tổng
quát p thuộc tính. Tất cả các trọng số mạng đều được khởi tạo là 0.1, và hệ số bias của mỗi nút được
14
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Input #1
Input #2
Input #3
Input #4
Input #5
Input #6
Output
Lớp ẩn
Lớp
nhập
Lớp xuất
Hình 7: Mạng nơron nhân tạo
khởi tạo ngẫu nhiên. Mạng nơron này được huấn luyện để xuất ra 1.0 cho mỗi bộ dữ liệu dùng để
huấn luyện. Chúng ta huấn luyện 500 epoch với tham số tỷ lệ học (learning rate) là 0.0001. Trong
quá trình test, vectơ test sẽ chạy qua mạng nơron đã huấn luyện, và kết quả xuất ra sẽ được ghi nhận

lại. Gọi s là kết quả xuất ra của mạng, độ sai lệch được tính bằng 1 − s vì nếu s gầ n với giá trị 1.0
thì vectơ test gần giống với vectơ dùng để huấn luyện; ngược lại, nếu s gần với 0.0 thì chúng không
giống nhau.
4.2 Sử dụng độ đo khoảng cách
4.2.1 Khoảng cách Euclid
Mô tả giải thuật Giải thuật này [3] mô hình hóa mỗi mật khẩu thành một điểm trong không gian
p-chiều, với p là số lượng thuộc tính trong các vectơ đặc trưng thời gian. Tương tự ta xem tập dữ liệu
dùng để huấn luyện là một tập hợp điểm, và mức độ sai lệch của một vectơ test tùy vào khoảng cách
của nó đối với điểm trung tâm của tập hợp điểm trên. Cụ thể hơn, trong quá trình huấn luyện, vectơ
trung bình của tập các vectơ đặc trưng thời gian sẽ được tính toán. Trong quá trình test, độ sai lệch
sẽ được tính theo bình phương khoảng cách Euclid giữa vectơ test và vectơ trung bình.
Công thức chung
• n là số vectơ dùng để huấn luyện
• k là số chiều của mỗi vectơ
• Tập dữ liệu dùng để huấn luyện: R
1
(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k

)
15
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
• Khi đó vectơ trung bình M = (
r
1
1
+r
2
1
+···+r
n
1
n
, . . . ,
r
1
k
+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)

• T = (t
1
, t
2
, . . . , t
k
) là vectơ test
• Độ sai lệch được tính bằng: score =

(m
1
− t
1
)
2
+ (m
2
− t
2
)
2
+ ··· + (m
k
− t
k
)
2
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].
1 euclideanTrain <− function ( YTrain ) {
2 dmod <− li s t ( mean = colMeans ( YTrain ) ) ;

3 return( dmod );
4 }
5
6 euc lideanScore <− function ( dmod, YScore ) {
7 p <− length ( dmod$mean ) ;
8 n <− nrow( YScore ) ;
9
10 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
11
12 meanMatrix <− matrix( dmod$mean, byrow=TRUE, nrow=n , ncol=p ) ;
13
14 scores <− rowSums( ( YScore − meanMatrix )^2 );
15
16 return( s c o r e s ) ;
17 }
4.2.2 Khoảng cách Euclid dạng chuẩn
Mô tả giải thuật Giải thuật phân lớp dựa trên độ đo này được đề xuất bởi S. Bleha [1], còn được
tác giả gọi là "Bộ phân lớp dựa trên khoảng cách nhỏ nhất được chuẩn hoá ". Vecto r trung bình của
tập các vectơ đặc trưng thời gian input trong quá trình huấn luyện (mean vector) được tính toán
tương tự như thuật toán phân lớp dựa trên khoảng cách Euclid thông thường. Trong giai đoạn tes t,
khoảng cách Euclid giữa vectơ đặc trưng thời g ian của việc gõ phím đầu vào ở giai đoạn test (test
vector) và mean vector được tính toán, nhưng điểm số cuối cùng không được tính trên khoảng cách
này mà sẽ được tính trên khoảng cách đã được "chuẩn hoá" lại bằng cách chia cho tích của chuẩn 2
vectơ (test và mean vector)
Công thức chung
• n là số vectơ dùng để huấn luyện
16
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
• k là số chiều của mỗi vectơ
• Tập dữ liệu dùng để huấn luyện: R

1
(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k
)
• Khi đó vectơ trung bình M = (
r
1
1
+r
2
1
+···+r
n
1
n
, . . . ,
r
1

k
+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)
• T = (t
1
, t
2
, . . . , t
k
) là vectơ test
• Khoảng cách Euclid: d =

(m
1
− t
1
)
2
+ (m
2

− t
2
)
2
+ ··· + (m
k
− t
k
)
2
• Độ sai lệch được tính bằng: score =
d
MT 
=
d

m
2
1
+···+m
2
k

t
2
1
+···+t
2
k
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].

1 euclideanNormTrain <− function ( YTrain ) {
2 dmod <− li s t ( mean = colMeans ( YTrain ) ) ;
3 return( dmod );
4 }
5
6 euclideanNormScore <− function ( dmod , YScore ) {
7 p <− length ( dmod$mean ) ;
8 n <− nrow( YScore ) ;
9
10 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
11
12 meanMatrix <− matrix( dmod$mean, byrow=TRUE, nrow=n , ncol=p ) ;
13
14 scores <− ( rowSums( ( YScore − meanMatrix )^2 )) / ( sqrt (rowSums( YScore ^2))
15 ∗ sqrt (rowSums( meanMatrix ^ 2 ) ) );
16
17 return( s c o r e s ) ;
18 }
4.2.3 Khoảng cách Manhattan
Mô tả giải thuật Giải thuật phân lớp này [3] gần giống với giải thuật dùng độ đo Euclid, nhưng
cách tính khoảng cách dùng độ đo Manhattan thay vì Euclid. Tr ong quá trình huấn luyện, vectơ trung
bình của tập các vectơ đặc trưng thời gian sẽ được tính toán. Trong quá trình test, độ sai lệch sẽ được
tính theo khoảng cách Manhattan giữa vectơ test và vectơ trung bình.
17
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Công thức chung
• n là số vectơ dùng để huấn luyện
• k là số chiều của mỗi vectơ
• Tập dữ liệu dùng để huấn luyện: R
1

(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k
)
• Khi đó vectơ trung bình M = (
r
1
1
+r
2
1
+···+r
n
1
n
, . . . ,
r
1
k

+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)
• T = (t
1
, t
2
, . . . , t
k
) là vectơ test
• Độ sai lệch được tính bằng: score = |m
1
− t
1
| + |m
2
− t
2
| + ··· + |m
k
− t

k
| =

k
i=1
|m
i
− t
i
|
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].
1 manhattanTrain <− function ( YTrain ) {
2 dmod <− li s t ( mean = colMeans ( YTrain ) ) ;
3 return( dmod );
4 }
5
6 manhattanScore <− function ( dmod , YScore ) {
7 p <− length ( dmod$mean ) ;
8 n <− nrow( YScore ) ;
9
10 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
11
12 meanMatrix <− matrix( dmod$mean, byrow=TRUE, nrow=n , ncol=p ) ;
13
14 scores <− rowSums( abs( YScore − meanMatrix ) ) ;
15
16 return( s c o r e s ) ;
17 }
4.2.4 Khoảng cách Manhattan (scaled)
Mô tả giải thuật Trong g iai đoạn huấn luyện, vectơ trung bình của tập các vectơ đặc trưng thời

gian input trong quá trình huấn luyện (mean vector) được tính toá n, đồng thời độ lệch tuyệt đối trung
bình theo từng đặc trưng của các vectơ input này cũng được tính. Trong giai đoạn test, việc tính toán
khoảng Manhattan trên từng đặc trưng của vectơ phải chia thêm cho giá trị độ lệch tuyệt đối trung
bình ứng với đặc trưng – giá trị này được tính trên tập mẫu huấn luyện. Điểm số sẽ được tính trên
khoảng cách Manhattan được scaled này.
18
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Công thức chung
• n là số vectơ dùng để huấn luyện
• k là số chiều của mỗi vectơ
• Tập dữ liệu dùng để huấn luyện: R
1
(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k
)
• Khi đó vectơ trung bình M = (
r
1

1
+r
2
1
+···+r
n
1
n
, . . . ,
r
1
k
+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)
• Vectơ độ lệch tuyệt đối trung bình A = (
|r
1
1
−m
1

|+···+|r
n
1
−m
1
|
n
, . . . ,
|r
1
k
−m
k
|+···+|r
n
k
−m
k
|
n
) =
(a
1
, . . . , a
k
)
• T = (t
1
, t
2

, . . . , t
k
) là vectơ test
• Độ sai lệch được tính bằng: score =
|m
1
−t
1
|
a
1
+
|m
2
−t
2
|
a
2
+ ··· +
|m
k
−t
k
|
a
k
=

k

i=1
|m
i
−t
i
|
a
i
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].
1 manhattanScaledTrain <− function ( YTrain ) {
2 mt <− matrix( YTrain , byrow=TRUE, nrow=ncol (YTrain ) , ncol=nrow( YTrain ) ) ;
3 dmod <− li st ( mean = colMeans ( YTrain ) ,
4 aaa = rowMeans (abs(mt − colMeans ( YTrain )))
5 ) ;
6 return( dmod );
7 }
8
9 manhattanScaledScore <− function ( dmod, YScore ) {
10 p <− length ( dmod$mean ) ;
11 n <− nrow( YScore ) ;
12
13 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
14
15 meanMatrix <− matrix( dmod$mean, byrow=TRUE, nrow=n , ncol=p ) ;
16 mt <− abs( YScore − meanMatrix ) ;
17 mttemp <− matrix( mt, byrow=TRUE, nrow=ncol (mt) , ncol=nrow(mt ) ) ;
18
19 scores <− colSums ( mtte mp / dmod$aaa );
20
21 return( s c o r e s ) ;

22 }
19
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
4.2.5 Khoảng cách Mahalanobis
Mô tả giải thuật Giải thuật phân lớp này [3] gần giống với giải thuật dùng độ đo Euclid và
Manhattan, nhưng cách tính khoảng cách phức tạp hơn nhiều. Khoảng cách Mahalanobis có thể xem
như một dạng mở rộng của khoảng cách Euclid áp dụng cho độ liên thuộc giữa các thuộc tính đặc
trưng. Trong quá trình huấn luyện, cả vectơ trung bình của tập c ác vectơ đặc trưng thời gian và ma
trận hiệp phương sai sẽ được tính toán. Trong quá trình test, độ sai lệch sẽ được tính bằng khoảng
cách Mahalanobis giữa vectơ trung bình và vectơ test.
Công thức chung
• n là số vectơ dùng để huấn luyện
• k là số chiều của mỗi vectơ
• S là ma trận hiệp phương sai
• Tập dữ liệu dùng để huấn luyện: R
1
(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k

)
• Khi đó vectơ trung bình M = (
r
1
1
+r
2
1
+···+r
n
1
n
, . . . ,
r
1
k
+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)
• T = (t
1

, t
2
, . . . , t
k
) là vectơ test
• Độ sai lệch được tính bằng: score = (M − T )

S
−1
(M − T )
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].
1 mahalanobisTrain <− function ( YTrain ) {
2 dmod <− li s t ( mean = colMeans ( YTrain ) ,
3 covInv = ginv ( cov( YTrain ) ) );
4 return( dmod );
5 }
6
7 mahalanobisScore <− function ( dmod, YScore ) {
8 p <− length ( dmod$mean ) ;
9 n <− nrow( YScore ) ;
10
11 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
12
13 scores <− mahalanobis( YScore , dmod$mean, dmod$covInv , inverted=TRUE ) ;
14
15 return( s c o r e s ) ;
16 }
20
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
4.2.6 Khoảng cách Mahalanobis dạng chuẩn

Mô tả giải thuật Giải thuật phân lớp dựa trên độ đo này được đề xuất bởi S. Bleha [1], còn được
tác giả gọi là "Bộ phân lớp Bayes đã được chuẩn hóa". Trong quá trình huấn luyện, vectơ trung bình
của tập các vectơ đặc trưng thời gian và ma trận hiệp phương sai được tính toán. Trong giai đoạn
test, khoảng cách Mahalanobis giữa vectơ test và vectơ trung bình được tính toán. Độ sai lệch sau
cùng được tính bằng cách chia khoảng Mahalanobis cho xy.
Công thức chung
• n là số vectơ dùng để huấn luyện
• k là số chiều của mỗi vectơ
• S là ma trận hiệp phương sai
• Tập dữ liệu dùng để huấn luyện: R
1
(r
1
1
, . . . , r
1
k
), . . . , R
n
(r
n
1
, . . . , r
n
k
)
• Khi đó vectơ trung bình M = (
r
1
1

+r
2
1
+···+r
n
1
n
, . . . ,
r
1
k
+r
2
k
+···+r
n
k
n
) = (m
1
, . . . , m
k
)
• T = (t
1
, t
2
, . . . , t
k
) là vectơ test

• Độ sai lệch được tính bằng: score =
(M−T )

S
−1
(M−T )
MT 
Cài đặt Đoạn mã sau được cài đặt bằng ngôn ngữ R [6].
1 mahalanobisNormTrain <− function ( YTrain ) {
2 dmod <− li s t ( mean = colMeans ( YTrain ) ,
3 covInv = ginv ( cov( YTrain ) ) ) ;
4 return( dmod );
5 }
6
7 mahalanobisNormScore <− function ( dmod , YScore ) {
8 p <− length ( dmod$mean ) ;
9 n <− nrow( YScore ) ;
10
11 i f ( ncol ( YScore ) != p ) stop ( " Training/test␣ feature ␣length ␣mismatch␣" ) ;
12
13 d2 <− mahalanobis( YScore , dmod$mean, dmod$covInv , inv erte d=TRUE ) ;
14 scores <− ( rowSums(( YScore − d2 )^2 )/d2 ) ;
15
16 return( s c o r e s ) ;
17 }
21
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
4.2.7 Lân cận gần nhất (Mahalanobis)
Mô tả giải thuật Giải thuật này được mô tả bởi Cho [2]. Trong quá trình huấn luyện, ta sẽ lưu
một danh sách các vectơ dùng để huấn luyện, và tính toán ma trận hiệp phương sai. Trong giai đoạn

test, ta sẽ tính khoảng cách Mahalanobis giữa mỗi vectơ dùng để huấn luyện và vectơ test. Độ sai lệch
(score) được tính bằng khoảng cách giữa vectơ test và vectơ dùng để huấn luyện gần nhất.
4.3 Outlier-count (z-score)
Mô tả giải thuật Giải thuật này được mô tả bởi Ha ider [4], và tác giả gọi nói là "kỹ thuật thống
kê". Trong quá trình huấn luyện, ta sẽ tính giá trị trung bình và độ lệch chuẩn của mỗi thuộc tính
đặc trưng thời gian. Trong quá trình test, ta tính giá trị tuyệt đối z-score của mỗi đặc trưng trong
vectơ test. Giá trị z-score của thuộc tính thứ i được tính bằng
|x
i
−y
i
|
s
i
; với x
i
và y
i
là thuộc tính thứ
i tương ứng trong vectơ test và vectơ trung bình, và s
i
là độ lệch chuẩn tính trong quá trình huấn
luyện. Độ sai lệch (score) được tính bằng số lượng z- score vược quá một ngưỡng threshold.
4.4 Các giải thuật khác
Ngoài ra , còn một số giải thuật khác áp dụng được cho bài toán chứng thực dạng này [5]. Điển hình
như: Mạng nơron tự động liên kết (auto-assoc), máy vectơ hỗ trợ một lớp (SVM one-class), k-means,
v.v
5 Lượng giá giải thuật
5.1 Nhu cầu về bộ test chuẩn
Để đánh giá hiệu quả của một giải thuật phân lớ p trong bài toán chứng thực (authentication), ta

thường dùng hai số đo FAR và FRR. Ví dụ so sánh giải thuật dùng mạng nơron tự động kết nối (auto-
associative neural network) của Cho [2], và giải thuật Outlier-Count (z-score) thiết kế bởi Haider [4].
Theo báo cáo của Cho, mạng nơron đạt được FAR = 0.0% và FRR = 1.0%. Trong khi Outlier-count
được báo cáo là chỉ đạt FAR = 1 3% và FRR = 2%. Dựa vào các thông tin trê n, ta thường dễ dàng
kết luận mạng nơron đạt hiệu q uả cao hơn (do chỉ số FAR và FRR thấp hơn). Nhưng kết luận này
không có ý nghĩa vì có rất nhiều khác biệt trong phương pháp đánh giá kết quả của hai nghiên cứu
này:
1. Mạng nơron được huấn luyện bằng một tập thuộ c tính khác với tậ p thuộc tính dùng cho giải
thuật Outlier-Count
2. Bộ test dùng để huấn luyện mạng nơron có dữ liệu được lặp lại rất nhiều lần
3. Mạng nơron không được huấn luyện cho trường hợp người dùng có cách gõ phím khô ng nhất
quán, hoặc là trường hợp có sai khác lớn trong bộ dữ liệu ghi nhận thời gian gõ.
22
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
4. Người dùng chỉ được thử sai đúng một lần trong giải thuật dùng mạng nơron, trong khi được
thử sai đến 2 lần trong Outlier-Count
5. Hai giải thuật dùng hai ngưỡng khác nhau để quyết định độ sai lệch cho phép trong kết quả đầu
ra.
Bất kỳ lý do nào trong 5 lý do trên đều có thể lý giải tại sao mạng nơron cho ra tỉ lệ lỗi thấp hơn
Outlier-count. Nếu tất cả các yếu tố này được thống nhất, ta sẽ thấy điều ngược lại là Outlier-count
có hiệu quả cao hơn giải thuật dùng mạng nơron. Vì vậy năm 2009, các nhà nghiên cứu của Đại học
Carnegie Mellon [5] đã thiết kế một bộ test benchmark dùng làm chuẩn chung cho việc đá nh giá các
giải thuật phân lớp trong bài toá n nhậ n dạng cách gõ phím.
5.2 Cách thu thập dữ liệu
Lựa chọ n mật khẩu Mật khẩu được dùng trong việc thu thập dữ liệu thô là: .tie5Roanl. Mật
khẩu này đạt độ khó là 7 (theo chương trình password checker của Microsoft); và độ dài là 10 ký tự,
bao gồm đầy đủ chữ hoa, chữ thường, dấu chấm câu và chữ số. Đây là độ dài được dùng phổ biến
nhất trong các nghiên cứu về cách gõ phím.
Thu thập dữ liệu Có tất cả 51 người được chọn từ trường đại học C MU để tiến hành việc thu
thập dữ liệu. Những người này phải hoàn thành 8 lượt thu thập dữ liệu (mỗi lượt gõ 50 lần mật khẩu

nêu trên), tổng cộng 400 mẫu dữ liệu. Họ phải chờ ít nhất một ngày giữa hai lượt thu thập, để ghi
nhận được sự khác biệt theo thời điểm gõ. Tập các đối tượng được khảo sát trên gồm 30 nam, 21 nữ.
Trong đó có 8 người thuận tay trái, 43 người thuận tay phải. Độ tuổi của nhóm trung niên là 31 - 40,
thanh niên là 18 - 20 và người lớn tuổi nhất là 61 - 70 tuổi. Mỗi lượt thu thập dữ liệu kéo dài 1,25
đến 11 phút, thời gian trung bình của một lượt là 3 phút.
Rút trích thuộc tính Ta không thể đưa dữ liệu thô (gồm các sự kiện liên quan đến phím được gõ
và các mốc thời gian) vào sử dụng trực tiếp. Do đó, cần phải rút trích một tập thuộc tính. Những
thuộc tính này được tổ chức thành một vectơ gọi là vectơ thời gian (timing vector). Những nhà nghiên
cứu khác nhau sẽ sử dụng các tổ hợp thuộc tính khác nhau trong công trình nghiên cứu của họ. Còn
các nhà nghiên cứu của CMU thì sử dụng toàn bộ các thuộc tính rút trích được. Đặc biệt, họ xét
phím Enter cũng là một phần của mật khẩu (tức là mật khẩu gồm 10 ký tự và 11 lần gõ phím). Các
thuộc tính thời gian keydown-keydown, keyup-keydown và thời gian giữ phím của tất cả các ký tự
trong mật khẩu đều được rút trích. Với mỗi mật khẩu, tổng cộng 31 thuộc tính được rút trích để tạo
thành một vectơ thời gian. Thời gian được tính bằng đơn vị giây, lưu trữ ở dạng số thập phân.
5.3 Huấn luyện và kiểm nghiệm giải thuật
Killourhy và Maxion [5] đã liệt kê 14 giải thuật cho Keystroke Dynamics. Để đánh giá độ tối ưu của
mỗi giải thuật này, họ đưa r a một phương pháp để huấn luyện, kiểm thử và tính toán tính hiệu quả
23
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
cho từng giải thuật.
Như đã trình bày phần trước, có 51 người tham gia việc huấ n luyện và thử nghiệm. Việc kiểm nghiệm
sẽ được tiến hành như sau:
Giả định rằng một trong số 51 người tham gia thử nghiệm là user thật cần đăng nhập vào hệ thống.
Còn lại 50 người kia là những user giả mạo tìm cách đăng nhập vào hệ thống. Chúng ta bắt đầu tiến
hành kiểm tra tính hiệu quả của mỗi giải thuật như sau:
1. Thực hiện tiến trình huấn luyện của user thật với các thu thập về vectơ thời gian trong 200 lần
nhập password đầu của user. Sau quá trình này giải thuật xây dựng một mô hình hành vi của
user đó.
2. Thực hiện tiếp tiến trình kiểm nghiệm (kiểm tra user thật đăng nhập hệ thống sau khi use r đó
đã được huấn luyện) với 200 nhập password tiếp theo của user thật. Đồng thời với mỗi lần nhập

như vậy tương ứng với một vectơ thời gian, ta ghi nhận lại các điểm số của user thật.
3. Cuối cùng thực hiện tiến trình kiểm nghiệm đố i với những user giả mạo. Cho các user này tìm
cách đăng nhập bất hợp lệ vào hệ thống. Mỗi user giả mạo cho thực hiện 5 lần đăng nhập. Có
tất cả 50 user g iả mạo vì vậy nên tổng số lần các user giả mạo tìm cách đăng nhập hệ thống là
50 x 5 = 250 lần. Với mỗi lần như vậy ứng với một vectơ thời than, ta ghi nhận lại điểm số các
user giả mạ o.
Tiến trình này sau đó sẽ đượ c thực hiện lại, khi đó ta thay đổi user thật là một người khác, và 50
người còn lại là user giả mạo. Sau khi huấn luyện và kiểm nghiệm 14 giải thuật, chúng ta có tổng cộng
là 51 x 14 =714 bộ cá c điểm số của người dùng thật và người giả mạo.
5.4 Tính toán hiệu quả của mỗi giải thuật
Để tính toán tính hiệu quả của mỗi giải thuật, chúng ta sử dụng các điểm số đã thu thập được để xây
dựng nên một biểu đồ thể hiện gọi là đường cong ROC.
24
Nhóm 34 - K20 Tổng quan bài toán nhận dạng cách gõ phím
Hình 8: Hình 1 tà i liệu [5].
Biểu đồ tr ê n được xây dựng từ tập các ngưỡng được lựa chọn. Việc lựa chọn ngưỡng xây dựng nên
các điểm trên đường cong ROC. Với việc các ngưỡng liên tiếp nhau được lựa chọn, đường cong ROC
mô tả được Hit rate và False Alarm Rate. Ha i độ đo thường được sử dụng nhất để xác định ngưỡng
là Equal-erro r rate (EER) và Zero-miss rate). Để tính ra EER, ngưỡng được chọn sao cho tỉ lệ FAR
bằng tỉ lệ FRR. Để tính tỉ lệ Zero-miss false-alarm, ngưỡng được chọn sao cho tỉ lệ FRR nhỏ nhất vơi
FAR cũng nhỏ nhấ t.
Biểu đồ trên chỉ thể hiện các thống số đối vớ i một user thử nghiệm ứng với giải thuật Nearest
Neighbor (Mahalanois). Như vậy ta cần xây dựng 714 biểu đồ như vậy cho tất cả các giải thuật. Cuối
cùng ta có được độ đo trung bình ứng với mỗi giải thuật liệt kê trong bảng sau:
25

×