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
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
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ỉ
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.
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.
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.
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
• 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 ) ) ;
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
− t
2
)
2
+ ··· + (m
k
− t
k
)
2
• Độ sai lệch được tính bằng: score =
d
MT
=
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].
(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
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
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
, . . . , 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
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
, 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
+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
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
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