MỤC LỤC
MỞ ĐẦU 1
PHẦN A. CƠ SỞ LÝ THUYẾT CHUNG 3
CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ BẢO MẬT VÀ XÁC THỰC 3
1.1. Bảo mật và xác thực 3
1.2. Vấn đề xác thực người dùng và tầm quan trọng của nó. 5
CHƯƠNG 2. CÁC PHƯƠNG THỨC XÁC THỰC 6
2.1. Giới thiệu 6
2.2. Xác thực theo thẻ 6
2.3. Xác thực dựa theo nhân trắc quan 8
2.4. Xác thực dựa theo tri thức 9
CHƯƠNG 3. CÁC HỆ THỐNG XÁC THỰC NGƯỜI DÙNG BẰNG HÌNH ẢNH HIỆN NAY 12
3.1. Tại sao sử dụng Graphical Password lại tốt hơn 12
3.2. Một số hệ thống xác thực người dùng bằng hình ảnh. 13
3.2.1. Dejavu. 13
3.2.2. Draw A Secret(DAS). 16
3.2.3. Passface 19
3.2.4. Passpoint 23
PHẦN B. BÀI TOÁN XÁC THỰC NGƯỜI DÙNG BẰNG HÌNH ẢNH. 28
CHƯƠNG IV. MÔ TẢ BÀI TOÁN. 28
4.1. Giới thiệu 28
4.2. Mô tả khái quát hệ thống. 28
4.3. Kết luận 29
CHƯƠNG V. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ỨNG DỤNG.30
5.1.Giới thiệu: 30
5.2. Hệ thống xác thực: 30
5.2.1. Yêu cầu đối với hệ thống: 30
5.2.2. Các quá trình của hệ thống: 30
5.2.3. Mô tả bài toán xác thực người dùng : 31
5.2.4. Thiết kế cơ sở dữ liệu: 32
5.2.5. Mô tả module chương trình nguồn: 34
CHƯƠNG VI. GIỚI THIỆU CHƯƠNG TRÌNH. 54
6.1. Giới thiệu chương trình: 54
6.2. Mô tả dịch vụ 54
6.3. Cách sử dụng, khai thác dịch vụ 55
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
66 trang |
Chia sẻ: lethao | Lượt xem: 2254 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Hệ thống xác thực người dùng bằng hình ảnh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ây là hình ảnh của một số hệ thống xác thực người dùng bằng hình ảnh:
Hình 7: Hệ thống xác thực người dùng bằng hình ảnh.
Chương này sẽ trình bày chi tiết về một số hệ thống thống sử dụng phương thức xác thực người dùng bằng hình ảnh đó là : Hệ thống Dejavu, hệ thống Draw a scret (DAS), Passface và Passpoint… Qua đó đưa ra ưu, nhược điểm cũng như ứng dụng của hệ thống thống trong thực tế.
3.2. Một số hệ thống xác thực người dùng bằng hình ảnh.
3.2.1. Dejavu.
Đây là một hệ thống xác thực người dùng bằng hình ảnh được Rachna và Adrian Perriq [4],[5] đưa ra. Cho đến nay Dejavu được công nhận là một hệ thống rất thực tế và dễ sử dụng. Có thể nói đây là hệ thống xác thực người dùng bằng hình được sử dụng phổ biến nhất. Password của người dùng rất dễ hình dung nhưng lại không thể ghi lại được hay nói cách khác là khó miêu tả với người khác. Dejavu được sử dụng rất nhiều trên PDA, PC...
Để đăng nhập vào hệ thống Dejavu thì người dùng bắt buộc phải học một danh sách gồm p hình ảnh gọi là images portfilio (là những hình ảnh khó miêu tả). Khi đăng nhập hệ thống sẽ đưa ra n hình ảnh và người dùng phải chọn m hình ảnh( trong đó tập m hình ảnh là tập con của p hình ảnh đã học ban đầu). Các ảnh mà hệ thống sinh ra là ảnh màu rất đặc biệt không phải là các ảnh phong cảnh, vật, hay là gương mặt người sẽ được giới thiệu trong các hệ thống xác thực bằng hình ảnh khác ở phần sau. Sử dụng hệ thống lần đầu tiên người dùng sẽ phải đăng kí và học một số ảnh tuỳ theo người quản trị đặt ra.Với giao diện rất thiện và dễ sử dụng của hệ thống và sử dụng hệ thống Random Art của Adrej Bouer để sinh ra các ảnh ngẫu nhiên. Ảnh ngẫu nhiên được sinh ra từ hệ thống Random Art:
Hình 8: Ảnh được sinh ra từ hệ thống Random Art.
Hệ thống Dejavu đuợc mô tả qua hình vẽ dưới đây:
Hinh 8: Giao diện của hệ thống xác thực người dùng Dejavu.
Random Art là chương trình sinh ra các công thức toán học một cách ngẫu nhiên . Các công thức này sẽ định nghĩa màu cho mỗi pixel trên ảnh. Mỗi hình ảnh được sinh ra từ Random Art có tính thẩm mĩ cao. Đặc biệt những ảnh này khó miêu tả bởi vì chúng không phải là ảnh phong cảnh hay ảnh
những nhân vật nổi tiếng…
Sau đây là thuật toán Randon Art dùng để sinh ra hình ảnh :
algorithm RandomArt(G; i; d)
input: grammar G = [r1,...,rn]
initial rule i
depth d
output: expression E
begin
(1) Suppose ri = [(a1,p1),...,(ak; pk)].
(2) If d <= 0 then let a = a1 and goto step (4).
(3) Let a be one of (a1,...,ak), picking ai with probability pi.
(4) If a is a terminal rule let E = a and go to step (6).
(5) Suppose a = f(ri1,..,rim) where m is the arity of f.
While d >= 0 and rnd() <= 0.5 do d : = d-1.
for each j=1,...,m let Ej=RandomArt(G,Ij,d-1).
let E=f(E1,...,Em).
(6)return E.
end
Về việc hệ thống Dejavu lưu trữ các hình ảnh : Mỗi hình ảnh là một seed, hệ thống chỉ cần lưu seed chứ không cần phải lưu toàn bộ hình ảnh (seed is 8 byte long) và Portfilio được tách ra và lưu trên nhiều server, khi người dùng login nó sẽ được gộp lại. Trong hệ thống Dejavu thì có khoảng 10.000 ảnh có sẵn đuợc sinh ra từ Random Art.
Mỗi lần người dùng đăng nhập vào hệ thống sẽ đưa ra một danh sách các ảnh trong đó gồm có : Porfilio images (là những ảnh mà người dùng đã học) và Decoy images (là những ảnh bẫy). Nếu người dùng chọn đúng các ảnh đã học thì đăng nhập thành công. Nếu chọn sai thì người dùng sẽ phải đăng nhập lại với danh sách các ảnh mới đã thay đổi. Sau một vài lần đăng nhập không thành công hệ thống sẽ từ chối việc đăng nhập tiếp. Xét tính an toàn của hệ thống Dejavu giả sử một người cố tình tấn công vào hệ thống thì khả năng sẽ là : 1/mn trong đó m là số lượng ảnh của người dùng đã học,n là số lượng ảnh của hệ thống đưa ra. Theo như kết quả của những cuộc kiểm tra tính khả thi của hệ thống : 90% người đăng nhập thành công khi sử dụng Dejavu so với phương thức sử dụng mật khẩu kí tự hay sử dụng hệ thống xác thực bằng thẻ là 70%. Nhưng nhược điểm của Dejavu là thời gian đăng nhập so với các phương pháp truyền thống là lâu hơn và không gian để hiển thị các ảnh làm mật khẩu cũng lớn hơn so với các không gian nhập mật khẩu của các hệ thống xác thực truyền thống..
3.2.2. Draw A Secret (DAS).
Hệ thống đuợc K.Reiter và đồng nghiệp cùng nghiên cứu và phát triển [6]. Đối với hệ thống DAS thì mật khẩu sử dụng là những hình ảnh đơn giản được vẽ trên một lưới 2D. Hệ thống DAS được thiết kế chủ yếu cho PDA, bởi vì các thiết bị này sử dụng bút điện tử rất tiện cho việc vẽ các ảnh đơn giản. Nhưng hệ thống này cũng có thể dùng trên PC. Hệ thống sẽ yêu cầu người dùng vẽ một ảnh mẫu trên một lưới 2D để tạo mật khẩu. Dưới đây là một ví dụ về mât khẩu của hệ thống DAS, Jermyn là người đã đưa ra việc vẽ một hình ảnh trên một luới hai chiều 5x5 để làm mật khẩu. So với mật khẩu là chuỗi các kí tự thì không gian để nhập mật khẩu của hệ thống DAS là lớn hơn vì hình ảnh vẽ ra phải đủ lớn thì nguời dùng mới dễ nhớ. Hình ảnh dưới đây là một ví dụ về hệ thống DAS:
Hình 9: Hệ thống sử dụng công nghệ Draw-a-Secret của Jermyn.
Hệ thống DAS sử dụng công nghệ “Passdoodle”đó là những hình vẽ nguệch ngoạc được vẽ trên một lưới 2 chiều GxG. Mật khẩu chính là hình ảnh mà người dùng vẽ tính từ khi đặt bút xuống cho đến lúc kết thúc và được lưu vào thiết bị bằng cách sử dụng hàm băm. Trong quá trình đăng nhập người dùng sẽ phải vẽ lại ảnh trên lưới. Hình ảnh vẽ sẽ sinh ra một hàm băm. Sau đó hệ thống sẽ so sánh hàm băm có trong cơ sở dữ liệu để xác thực người dùng. Nếu đúng thì người dùng đăng nhập thành công còn nếu ảnh vẽ vào không đúng thì hệ thống sẽ bắt người dùng đăng nhập lại. Sau một vài lần hệ thống sẽ từ chối quá trình đăng nhập. Đối với hệ thống DAS thì có tính an toàn cao vì mật khẩu là do người dùng tự định nghĩa bằng những hình ảnh tự vẽ. So với mật khẩu là các kí tự thì mật khẩu của hệ thống DAS là dễ nhớ hơn. Đối với dạng mật khẩu thông thường thì các hacker có thể sử dụng các công cụ hay phần mềm để dò ra mật khẩu người dùng. Nhưng đối với hệ thống DAS mật khẩu là do người dùng nghĩ và vẽ ra, nó có thể chỉ có nghĩa với người dùng mà bất cứ ai khác cũng không hiểu được do đó việc đánh cắp mật khẩu của người dùng là rất khó. Giả sử chúng ta xét mật khẩu nhập vào trên một luới 2D 5x5 như hình vẽ dưới đây :
Hình 10: Ví dụ về mật khẩu của hệ thống DAS.
Gọi L là độ dài của mật khẩu trong hệ thống xác thực DAS thì L chính là tổng số các ô trên lưới mà người dùng vẽ mật khẩu. Mỗi ô được xem như là toạ độ hai chiều (x,y) Є [1…G] x [1…G]. Thì theo như kết quả thu được thì với L=12 và được vẽ trên lưới 5x5số mật khẩu sẽ là hơn hẳn so với mật khẩu dạng chuỗi kí tự với độ dài là của mật khẩu là 8.
Vì hệ thống thiết kế chủ yếu cho các thiết bị di động yêu cầu phải có bút và màn hình cảm ứng nên phạm vi sử dụng của hệ thống cũng không lớn và cũng chưa phổ biến trên thế giới cũng như ở nước ta. Tuy nhiên hệ thống DAS cũng được sử dụng trên các PC thay vì vẽ hình ảnh để làm mật khẩu thì người dùng sẽ dùng chuột để tạo các chữ kí. Mật khẩu được tính từ khi nguời dùng đạt chuột vẽ cho đến khi kết thúc. Cũng tương tự như hình ảnh chữ ký cũng được lưu lại bằng cách sử dụng hàm băm. Nali và Thorpe đã xây dựng hệ thống xác thực người dùng DAS trên PC. Hệ thống sẽ yêu cầu người dùng tạo chữ ký làm mật khẩu. Khi đăng nhập vào hệ thống người dùng sẽ phải dùng chuột vẽ lại chữ ký đó để đăng nhập với một dung sai do hệ thống đặt ra. Mật khẩu mà người dùng vẽ sẽ được mã hoã bằng hàm băm sau đó so sánh với mật khẩu đã được lưu trong cơ sở dữ liêu của hệ thống. Nếu đúng người dùng sẽ đăng nhập vào hệ thống thành công. Hệ thống đuợc mô tả bằng hình vẽ dưới đây:
Hinh 11: Chữ ký đuợc vẽ bằng chuột.
Hoặc hệ thống DAS xác thực người dùng trên PC mật khẩu cũng có thể là các điểm được vẽ trên lưới, nhưng nếu mật khẩu là các điểm thì độ an toàn của hệ thống không cao. Vì vậy mật khẩu là các điểm vẫn chưa được dùng phổ biến. Nó được mô tả bằng hình vẽ dưới đây:
Hình 12: Ví dụ về mật khẩu là các điểm được vẽ trên lưới.
Nhưng trong một tương lai gần khi tất cả các chức năng được tích hợp vào các thiết bị di động đặc biệt là trên điện thoại di động thì hệ thống DAS sẽ đáp ứng đuợc yêu cầu của người dùng về yêu cầu an toàn của hệ thống.
3.2.3. Passface.
Passface là công nghệ được Deal Use Coporation đưa ra và phát triển [7],[8],[9]. Hệ thống Passface được miêu tả cụ thể như sau: Hệ thống sẽ yêu cầu người dùng học 4 hình ảnh là gương mặt trong tập các hình ảnh có sẵn trong cơ sở dữ liệu và 4 hình ảnh đó chính là password của người dùng. Khi đăng nhập, hệ thống sẽ đưa cho người dùng một lưới 3x3 gồm 9 hình ảnh (là những gương mặt). Trong 9 ảnh đó chỉ có một ảnh mà người dùng đã học. Người dùng sẽ phải chọn ảnh đó. Quá trình này sẽ lặp lại 4 lần cho đến khi người dùng chọn hết ảnh đã học (Người dùng có thể click vào bất cứ vị trí nào trên ảnh mà mình chọn). Sau khi chọn hết ảnh người dùng sẽ đăng nhập vào hệ thống. Đây là một số hình ảnh của hệ thống Passface :
Hình 13: Hệ thống Passface.
Hình ảnh mà hệ thống Passface sử dụng không chỉ là những gương mặt mà còn sử dụng rất nhiều hình ảnh rất thẩm mĩ khác :
Hình 14: Ví dụ về hệ thống Passface.
Nếu chọn sai ảnh thì hệ thống sẽ lặp lại quá trình đăng nhập một vài lần.
Hệ thống xác thực người dùng Passface SDK dươi đây sẽ cho chúng ta hiểu rõ hơn về hệ thống xác thực người dùng bằng hình ảnh. Hệ thống này xác thực người dùng trên các ứng dụng web. Hình ảnh sau mô tả cấu trúc hệ thống:
Hinh 15: Cấu trúc hệ thống Passface SDK.
Passfaceclient là một giao diện người dùng để người dùng chọn những hình ảnh, Database là thư viện ảnh của hệ thống Passface lưu trữ các file ảnh có định dạng .JPG. Thay vì phải nhỡ mật khẩu chữ thông thường thì người dùng phải nhớ được những gương mặt mà mình đã chọn. Đối với những người dùng mới thì hệ thống sẽ yêu cầu người dùng đăng kí và học ảnh để làm mật khẩu, số ảnh mà người dùng phải học phụ thuộc vào từng hệ thống thường là trong khoảng 3 đến 7 ảnh. Nếu số ảnh người dùng học là 3 ảnh thì khi đăng nhập hệ thống sẽ đưa ra một luới có 9 ảnh trong đó có một ảnh người dùng đã học và 8 ảnh bẫy. Quá trình này sẽ lặp lại 3 lần mỗi lần nguời dùng phải chọn một ảnh mà mình đã học. Tất cả những ảnh bao gồm mật khẩu của người dùng và ảnh bẫy đều được lưu trên máy chủ (application server). Dưới đây là một số skin khi đăng nhập của hệ thống Passface SDK:
Hình 16: Quá trình đăng nhập của hệ thống Passface SDK.
Hệ thống Passface sử dụng hình ảnh là chủ yếu là gương mặt người hoặc
một số hình ảnh đặc biệt khác nên so với các hệ thống Graphical Password khác dễ nhớ đối với người dùng. Những hệ thống mà Passface sử dụng được lấy từ địa chỉ : Do các ảnh là dễ nhớ nên cũng rất dễ bị lộ và dễ bị tấn công so với các hệ thống đã nói ở trên. Vì vậy để an toàn thì Passface khuyến cáo với người dùng là không nên sử dụng ảnh là guơng mặt của những người nổi tiếng mà mình yêu thích.
3.2.4. Passpoint.
Passpoint là công nghệ được Blonder phát triển. Đây là một hệ thống xác thực người dùng đặc biệt được đánh giá có độ an toàn cao. Hệ thống Passpoint được mô tả như sau : Hệ thống sẽ đưa ra một ảnh có sẵn trong cơ sở dữ liệu có độ phân giải lớn rõ nét. Người dùng sẽ click vào một số toạ độ trên ảnh để tạo password cho mình những toạ độ này do người dùng lựa chọn bất kì trên ảnh mẫu sao cho dễ nhớ nhất. Password của người dùng chính là toạ độ mà người dùng đã click trên ảnh sau đó hệ thống sẽ lưu password với một dụng sai do hệ thống đặt ra. Dung sai càng bé thì độ an toàn càng của hệ thống càng cao nhưng lại càng khó đối với người dùng vì khi đó yêu cầu tính chính xác cao. Hệ thống lưu mật khẩu của người dùng bằng cách sử dụng hàm băm. Khi đăng nhập vào hệ thống yêu cầu người dùng kích vào các vị đã chọn với sai số cho phép. Mật khẩu mà người dùng kích trên ảnh cũng được chương trình chuyển thành dạng hàm băm, sau đó sẽ được so sánh với hàm băm đã lưu. Nếu chọn đúng thì hệ thống đăng nhập thành công. Nếu sai sẽ quay trở lại quá trình đăng nhập. Quá trình này chỉ lặp lại một vài lần. Những hình ảnh mà hệ thống Passpoit sử dụng cho người dùng kích chọn toạ độ là những hình ảnh có độ phân giải cao, trên ảnh có nhiều đối tuợng có thể là người , hay là các đồ vật để khi người dùng dễ dàng nhớ những vị trí mà mình đã kích thông qua những đặc điểm này. Ví dụ như hình ảnh được đưa ra dưới đây được sử dụng để người dùng kích chon mật khẩu :
Hình 17: Giao diện của hệ thống Passpoint.
Hình 18: Người dùng chọn các điểm để đăng nhập.
Hình 19: Hình ảnh dùng trong hệ thống Passpoint của Wiedenbeck.
Để đánh giá mức độ an toàn của hể thống Passpoint so với các hệ thống khác đặc biệt là các hệ thống xác thực truyền thống. Ta so sánh hệ thống Passpoint và hệ thống Textpassword. Giả sử trong textpass độ dài của password là 8-64 ký tự thì số password có thể là :
còn trong Passpoint nếu hình ảnh có độ phân giải 1024x752 với dung sai 20x20 pixel và 5 lần click thì số password có thể là : . Do đó hệ thống Passpoint có độ an toàn cao và đặc biệt hơn cả là người dùng không thể trao đổi mật khẩu với người khác vì nó là toạ độ nên không tốn không gian lưu trữ và trước khi lưu trữ trên cơ sở dữ liệu của hệ thống thì các toạ độ này còn được mã hoá bằng các thuật toán như là DES, MD5.
Một số hệ thống yêu cầu người dùng kích đúng thư tự mà người dùng đã kích tạo mật khẩu, do các điểm trên ảnh là nhỏ. Do đó có nhược điểm là khó nhớ đối với nguời dùng. Hệ thống Passpoin vẫn chưa hỗ trợ được người dùng trong trường hợp người dùng không thể nhớ được các toạ độ mà mình đã kích chọn làm mật khẩu, do đó đây cũng là một hanh chế của hệ thống.
PHẦN B . BÀI TOÁN XÁC THỰC NGƯỜI DÙNG BẰNG HÌNH ẢNH.
CHƯƠNG 4: MÔ TẢ BÀI TOÁN
4.1. Giới thiệu.
Chương này mô tả chi tiết về hệ thống xác thực người dùng bằng hình ảnh dựa vào những hệ thống đã tồn tại và hệ thống đang phát triển đã đưa ra ở phần trên. Chương 4 sẽ mô tả chi tiết hệ thống xác thực người dùng đang xây dựng trong thực tế cụ thể là xác thực người dùng bằng hình ảnh khi đăng nhậptrên website và mô hình chạy Demo mô tả nguyên tắc hoạt động của hệ thống trên các ứng dụng. Các yêu cầu của hệ thống, cũng như yêu cầu về kỹ thuật về phần cứng và phần mềm.
4.2. Mô tả khái quát hệ thống.
Hệ thống xác thực người dùng bằng hình ảnh đã được sử dụng trên thế giới trong vài năm gấn đây, còn ở Việt Nam hệ thống này vẫn chưa được sử dụng phổ biến. Như đã giới thiệu ở trên hệ thống xác thực người dùng bằng hình ảnh thay vì yêu cầu người dùng nhập mật khẩu bằng các kí tự thì hệ thống sẽ yêu cầu người dùng kích chọn ảnh hoặc các điểm trên ảnh làm mật khẩu để đăng nhập. Ta có thể xem bức tranh toàn cảnh hệ thống xác thực người dùng trong hình vẽ dưới:
Hình 20: Quá trình xác thực người dùng.
Hệ thống xác thực người dùng cấu hình bao gồm những phần chính :
Một máy chủ lưu thông tin chi tiết của người dùng như là: Thông tin cá nhân của người dùng khi đăng kí hệ thống..
Các client là user interface để người dùng chọn ảnh.
Thư viện các hình ảnh chính là cơ sở dữ liệu của hệ thống. Cơ sở dữ liệu này chứa ảnh bẫy và ảnh mà người dùng chọn làm mật khẩu, các ảnh này thường có dịnh dạng .GIF hoặc .JPG.
Với sự phát triển như vũ bão và xâm nhập vào cuộc sống con người mạnh mẽ của internet ở Việt Nam hiện nay. Để đáp ứng được nhu cầu an toàn cho những thông tin cá nhân, nguồn tài nguyên chia sẻ… của người dùng trên internet, chính vì lý do này ý tưởng “Phát triển hệ thống xác thực người dùng bằng hình ảnh “ ra đời.
Loại hệ thống xác thực người dùng bằng hình ảnh :
Hệ thống sẽ đưa ra một danh sách các ảnh nhỏ cho nguời dùng chọn, người dùng sẽ phải chọn một số ảnh mà người dùng đã học trong số các ảnh đó để đăng nhập vào hệ thống.
Hệ thống sẽ cho người dùng chọn một ảnh trong một tập ảnh, sau đó hệ thống sẽ hiển thị ảnh đó với độ phân giải cao để người dùng kích chọn vào các toạ độ mà người dùng đã học trước đó trên ảnh để đăng nhập vào hệ thống.
Công nghệ sử dụng:
Ngôn ngữ lập trình: Hệ thống xác thực người dùng bằng hình ảnh được xây dựng bằng kỹ thuật và ngôn ngữ lập trình hiện đại .NET.
Hệ quản trị cơ sở dữ liệu: Yêu cầu hệ quản trị cơ sở dữ liệu phổ biến, với năng lực đảm bảo độ tin cậy tối thiểu. Cơ sở dữ liệu dùng trong hệ thống: SQL server 2000. Trong tương lai các hệ quản trị dữ liệu như Oracle sẽ được cân nhắc chính khi hệ thống đạt được các điều kiện sau:
Ổn định cao về mô hình phát triển.
Tốc độ phát triển cơ sở dữ liệu tăng nhanh.
Số lượng người đăng nhập vào hệ thống tăng nhanh và lớn.
Trong thời gian thử nghiệm chúng tôi tập trung mô phỏng mô hình kết nối của hệ thống xác thực người dùng truy suất vào cơ sơ dữ liệu trên SQL server 2000.
Máy thử nghiệm trên web:
Hệ điều hành : Window server 2003.
Ram từ 512Mb trở lên, chip 2.06 Ghz.
Máy thử nghiệm trên Application:
Hệ điều hành : Window XP professional.
Ram từ 128 Mb trở lên, chip 1,7 Ghz.
4.3. Kết luận.
Hệ thống mới chỉ được chạy thử nghiệm chưa được sử dụng một cách rộng rãi. Và đang hoàn thiện để đưa vào khai thác. Từ mô hình này là cơ sở để chúng em sẽ xây dựng những phần mềm sử dụng để xác thực người dùng trên Web cũng như trên các ứng dụng sử dụng trên PC trong tuơng lai gần.
CHƯƠNG 5: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ỨNG DỤNG.
5.1 Giới thiệu.
Sau khi nghiên cứu hoạt động của các hệ thống xác thực người dùng bằng hình ảnh(Chương 3), chúng ta đi xây dựng ứng dụng. Ứng dụng của chúng ta bao gồm các phần sau :
Xây dựng hệ thống xác thực người dùng trên ứng dụng Web, hệ thống xác thực có chức năng sau:
Người dùng là một thành viên của Website để có quyền của member thì người dùng phải đăng nhập vào hệ thống bằng hệ thống xác thực người dùng bằng hình ảnh.
Hệ thống xác thực sẽ đưa ra một danh sách các ảnh cho người dùng chọn sau khi chọn đúng người dùng sẽ đăng nhập vào h thống.
Xây dựng hệ thống xác thực người dùng trên ứng dụng Desktop, hệ thống này sử dụng trên các ứng dụng trên máy Desktop bao gồm các chức năng sau:
Để sử dụng các ứng dụng trên máy Desktop thì người dùng phải đăng nhập, chương trình sẽ xác thực người dùng, nếu đúng người dùng sẽ có quyền sử dụng các chương trình trên máy.
Hệ thống đưa ra một ảnh có độ phân giải lớn, người dùng sẽ phải kích chọn các điểm trên ảnh, Nếu chọn đúng các điểm mà người dùng đã học mật khẩu thì đăng nhập thành công.
5.2. Hệ thống xác thực.
5.2.1. Yêu cầu đối với hệ thống.
Hệ thống xác thực trên ứng dụng Destop dựa trên việc nhận dạng toạ độ của những điểm do người dùng kích trên ảnh, còn đối với hệ thống xác thực trên Website thì các ảnh trong một danh sách các ảnh mà hệ thống đưa ra. Nhưng quá trình này phải dễ dàng cho người sử dụng và cũng phải tin cậy.
Hệ thống cũng phải ngăn ngừa người dùng chọn một mật khẩu không đủ mạnh, để nâng cao tính an toàn cho hệ thống.
Mật khẩu của hệ thống phải đạt được yêu cầu là khó trao đổi giữa các người dùng.
5.2.2. Các quá trình của hệ thống.
Một số quá trình của hệ thống xác thực người dùng:
Quá trình tạo người dùng mới:
Người dùng sẽ phải nhập thông tin cá nhân của mình.
Người dùng sẽ phải chọn mật khẩu từ hình ảnh do hệ thống đưa ra. Bằng cách chọn một số ảnh làm mật khẩu đối với hệ thống xác thực trên Web, hay chọn toạ độ trên một ảnh làm mật khẩu đối với hệ thống xác thực trên các ứng dụng Desktop.
Quá trình đăng nhập:
Người dùng nhập lại mật khẩu mình đã đăng kí bằng các hình ảnh hệ thống đưa ra.
Chương trình phía máy khách chuyển các thông tin đăng nhập của người dùng về cho phía máy chủ xử lý.
Máy chủ so sánh thông tin nhận được từ máy khách để xác thực người dùng sau đó trả lại kết quả cho phía máy khách. Nếu đúng thì người dùng đăng nhập thành công. Hệ thống sẽ từ chối quá trình đăng nhập sau một vài lần đăng nhập không thành công của người dùng.
Trợ giúp người dùng:
Trong trường hợp người dùng quên mật khẩu, hệ thống sẽ trợ giúp người dùng nhớ lại mật khẩu bằng những thông tin mà người dùng chỉ ra từ quá trình đăng kí.
5.2.3. Mô tả bài toán xác thực người dùng.
Mô hình tổng quát của quá trình xác thực người dùng:
Hình 21: Mô hình tổng quá của hệ thống.
Hệ thống trong bài toán mô tả phương thức và trình tự mà một hệ thống xác thực người dùng. Hệ thốn sẽ đưa ra cho nguời dùng hình ảnh để nguời dùng sẽ nhập mật khẩu để đăng nhập. Hệ thống sẽ mã hoá mật khẩu của người dùng bằng thuật toán MD5, sau đó sẽ so sánh với mật khẩu mà người dùng đã học đã được mã hoá và lưu vào trong cơ sở dữ liệu của hệ thống. Nếu sai thì gửi help cho người dùng thông báo cho người dùng biết và yêu cầu người dùng nhập lại. Nếu đúng thì hệ thống cũng gửi cho người dùng thông báo đã nhập đúng mật khẩu và đăng nhập thành công. Hệ thống được chạy Demo trên Website và trên máy Desktop và từ ứng dụng này sẽ được mở rộng ra vô số các ứng dụng hay bất cứ hệ thống nào trên internet trong tương lai không xa.
Khách hàng có thể khai thác hệ thống như sau:
Khách hàng sử dụng hệ thống đăng nhập người dùng vào việc xác thực người dùng trên các ứng dụng thương mại điện tử trên internet, các ứng dụng trên Desktop PC, hay xác thực tài khoản của người dùng tại ngân hàng…
Sau quá trình đăng nhập , người dùng sẽ nhận được kết quả phản hồi từ hệ thống là quá trình có đăng nhập thành công hay không.
Việc so sánh mật khẩu của người dùng nhập vào với mật khẩu mà người dùng đã chọn trong quá trình đăng nhập sẽ được hệ thống tự động xử lý. Các yêu cầu đã được lập trình đầy đủ sẽ được xử lý hoàn toàn tự động và đáp ứng ngay.
5.2.4. Thiết kế cơ sở dữ liệu.
Với hệ thống thực thì cơ sở dữ liệu mà hệ thống truy cập vào và lấy dữ liệu ra nằm trên máy chủ cở sở dữ liệu, mật khẩu người dùng nhập vào sẽ được so sánh với mật khẩu mà người dùng đã học được lấy ra từ cơ sở dữ liệu của máy chủ. Việc cập nhật hình ảnh và thông tin trong cơ sở dữ liệu là do người quản trị hệ thống của Website cập nhật, còn người dùng chỉ có thể cập nhật được mật khẩu của mình trong cơ sở dữ liệu trong hệ thống sau mỗi lần thay đổi mật khẩu hay thông tin của mình.
Trong hệ thống xác thực người dùng mà chúng em xây dựng Application server và Database server đều nằm cùng trên một máy chủ.
*Cơ sở dữ liệu mô phỏng cho hệ thống xác thực người dùng trên Web:
Bảng User lưu danh sách và thông tin của người dùng tương ứng với mã người dùng.
STT
Tên Trường
Kiểu
Mô tả
1
Acount_ID
Int
Mã người dùng
2
Acount_Name
Text
Tên đăng nhập
3
FistName
Text
Tên đệm
4
LastName
Text
Tên người dùng
5
Gender
Bit
Giới tính
6
Age
Int
Tuổi
7
Email
Text
Email của người dùng
8
Address
Text
Địa chỉ người dùng
9
City_ID
Int
Mã thành phố
10
Country_ID
Int
Mã quốc gia
11
Phone
Text
Số điện thoại
12
Fax
Text
Số fax
13
Postcode
Text
Mã bưu điện
14
Note
Text
Ghi chú
15
UserPassWord
text
Mật khẩu người dùng
Bảng Country lưu tên quốc gia tương ứng với mã quốc gia.
STT
Tên Trường
Kiểu
Mô tả
1
Country_ID
Int
Mã quốc gia
2
Country_Name
Text
Tên quốc gia
Bảng City lưu mã thành phố và tên thành phố ứng với mỗi mã quốc gia.
STT
Tên Trường
Kiểu
Mô tả
1
City_ID
Int
Mã thành phố
2
City_Name
Text
Tên thành phố
3
Country_ID
Int
Mã quốc gia
Bảng Images lưu tất cả các ảnh của hệ thống.
STT
Tên Trường
Kiểu
Mô tả
1
Image_ID
Int
Mã ảnh
2
Image_Url
Text
Đường dẫn ảnh
3
Signature
Text
Vì trong hệ thống xác thực người dùng không phải lưu các ảnh mà chỉ lưu đường dẫn các ảnh và thông tin của người dùng đều dưới dạng text, nên các trường trong cơ sở dữ liệu đặt là kiểu text để không phải chuyển kiểu khi thực hiện chương trình.
*Cơ sở dữ liệu mô phỏng cho hệ thống xác thực người dùng trên các ứng dụng trên máy Desktop:
Các bảng trong cơ sở dữ liệu của hệ thống xác thực người đối với các ứng dụng trên máy Desktop sẽ giống hệt các bảng trong hệ thống xác thực người dùng trên Web. Nhưng có hai đặc điểm khác nhau là:
Số hình ảnh lưu trong cơ sở dữ liệu của hệ thống xác thực trên Web thì nhiều hơn so với hệ thống xác thực trên các ứng dụng của Desktop. Hơn nữa những vì khi đăng nhập trên Web thì người dùng phải chọn một số ảnh trong số danh sách các ảnh mà hệ thống đưa ra, còn đối với các ứng dụng trên Desktop thì người dùng phải chọn các toạ độ trên một ảnh lớn. Vì vậy các ảnh trên sử dụng trên hệ thống xác thực trên các ứng dụng của Desktop là lớn và có độ phân giải cao hơn rất nhiều.
Mật khẩu và hệ thống lưu vào trong cơ sở dữ liệu đối với ứng dụng Web là đường dẫn của các ảnh mà người dùng chọn. Còn đối với hệ thống xác thực trên các ứng dụng của Desktop là toạ độ của các điểm mà người dùng kích đã đuợc mã hoá. Đó là sự khác biệt giữa hai hệ thống trên.
5.2.5. Mô tả các module của chương trình nguồn.
Chương trình gồm 3 phần:
Database server: SQL SERVER 2000, lưu thư viện ảnh và thông tin của người dùng người dùng.
Application Server: Bao gồm các lớp chịu trách nhiệm tiếp nhận yêu cầu từ Application Client, thao tác với Database, xử lý kết quả trả lại cho Application Client. Cài đặt các lớp:
Lớp Common: Lấy thông tin cấu hình từ file cấu hình.
namespace ImageAuthentication.Library
{
public class Common
{
public static AccountInfo curAccount = null;
public static string ConnectionString
{
get
{
return System.Configuration.ConfigurationManager
.AppSettings["ConnectionString"