Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
1,27 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN II ĐỀ TÀI: BẢO MẬT HỆ THỐNG KHO LƯU TRỮ THÔNG MINH BẰNG CẢM BIẾN VÂN TAY NGUYỄN QUANG ĐỨC duc.nq181407@sis.hust.edu.vn Ngành KT Điều khiển & Tự động hóa Giảng viên hướng dẫn: PGS TS Nguyễn Quang Địch Bộ môn: Tự Động Hóa Cơng Nghiệp Trường: Điện – Điện tử HÀ NỘI, 2/2022 Chữ ký GVHD BỘ GIÁO DỤC & ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐH BÁCH KHOA HÀ NỘI Độc lập – Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Quang Đức Khóa…K63……………………Trường: Điện- Điện tử Ngành: CN ĐK &TĐH Tên đề tài: Bảo mật hệ thống kho lưu trữ thông minh cảm biến vân tay Nội dung đề tài: Tìm hiểu hệ thống bảo mật vân tay chương trình nhận diện vân tay áp dụng kho lưu trữ thông minh Cán hướng dẫn: PGS.TS Nguyễn Quang Địch Thời gian giao đề tài: 10/2/2021 Thời gian hoàn thành: 4/3/2021 Ngày 04 tháng 03 năm 2022 LÃNH ĐẠO BỘ MÔN CÁN BỘ HƯỚNG DẪN SINH VIÊN THỰC HIỆN (Ký ghi rõ họ tên) Tóm tắt nội dung đồ án Nội dung dồ án: Bảo mật hệ thống kho lưu trữ thông minh cảm biến vân tay Các công cụ sử dụng: - Cảm biến vân tay FPM-10A - Lập trình Python hệ điều hành Ubuntu - Phần mềm thiết kế giao diện Qt Designer Dựa kiến thức tìm hiểu kiến thức học, kết đồ án có phù hợp với vấn đề đặt Nội dung đồ án áp dụng nhiều vào công việc, học tập thực tiễn Mục lục Giới thiệu chung .7 Chương 1: Hệ thống nhận dạng vân tay 1.1 Nhận dạng vân tay 1.1.1 Tổng quan 1.1.2 Nhận dạng dấu vân tay 1.1.3 Ứng dụng nhận dạng vân tay 1.2 Hệ thống nhận diện vân tay 10 1.3 Cơ sở nhận dạng 11 1.4 Phương pháp nhận dạng vân tay 14 1.4.1 Thuật toán xử lý ảnh 14 1.4.2 Phương pháp trích điểm đặc trưng 14 1.5 Đối sánh vân tay 15 Chương 2: Chương trình nhận diện vân tay .17 2.1 Giới thiệu chương trình 17 2.1.1 phần mềm 17 2.1.2 Phần cứng 17 a Cảm biến vân tay 17 b Cơ sở máy quét quang học 18 2.2 Cảm biến vân tay FPM-10A 19 2.2.1 Cách thức hoạt động .19 2.2.2 Các thông số kĩ thuật .19 2.2.3 Giao diện phần cứng .20 a Truyền thông nối tiếp: 20 b Giao tiếp phần cứng .22 2.2.4 Hệ thống tài nguyên 23 a Bộ đệm 23 b Thư viện vân tay 23 c Thông số cấu hình hệ thống 23 d Địa mô-đun 24 2.3 Giao tiếp UART 24 2.3.1 Giới thiệu UART 24 2.3.2 Giao tiếp nối tiếp song song 25 2.3.3 Cách thức hoạt động .25 Chương Lưu đồ thuật toán 27 3.1 Lưu đồ thuật toán 27 3.2 Tạo sở liệu với SQLite 28 3.3 Giao diện phần mềm .29 3.4 Chương trình code 31 Kết luận 34 Tài liệu tham khảo 35 Danh mục hình ảnh Hình Hệ thống nhận diện vân tay 10 Hình Vân Tay 12 Hình Bề mặt S vùng vân tay 13 Hình Điểm Core Delta .13 Hình CCD ( Charge Coupled Device ) 18 Hình Các chân cảm biến 21 Hình Truyền thơng UART 25 Hình Gói liệu UART 26 Hình Tạo sở liệu với SQLite .29 Hình 10 Giao diện đăng nhập 29 Hình 11 Giao diện hình 30 Giới thiệu chung Trong thời đại ngày nay, phát triển không ngừng khoa học kỹ thuật giúp cho người thuận tiện công việc ngày Với bùng nổ cơng nghệ thơng tin, q trình tồn cầu hóa diễn nhanh chóng, bảo mật riêng tư thông tin cá nhân để nhận biết người hàng tỉ người trái đất địi hỏi phải có tiêu chuẩn, hệ thống đảm nhận chức Cơng nghệ sinh trắc đời đáp ứng yêu cầu Trong tổ chức, quan an ninh, quân sự, hành chính, khoa học… ln có nhu cầu kiểm tra trả lời câu hỏi: “người có phải đối tượng hay khơng?”, “người có quyền truy cập sử dụng thiết bị đó?”, “người có biết thơng tin đó?”… Phương pháp dựa vào thẻ truyền thống (ví dụ dùng chìa khóa…), phương pháp dựa vào trí thức (ví dụ dùng mật PIN – Personal Identification Number) sử dụng phổ biến thực tế chứng minh khơng hiệu tính an tồn khơng cao khó nhớ Người ta nhận thấy đặc trưng sinh trắc dễ dàng bị thay thế, chia sẻ hay giả mạo , chúng xem đáng tin cậy nhận dạng người so với phương pháp Vân tay đặc điểm đặc biệt người tính đa dạng nó, người sở hữu dấu vân tay khác nhau, trường hợp người có dấu vân tay trùng Bằng việc sử dụng vân tay mật mã, việc xác nhận người thực hệ thống nhận dạng vân tay an tồn nhanh chóng Chương 1: Hệ thống nhận dạng vân tay 1.1 Nhận dạng vân tay 1.1.1 Tổng quan Vân tay vết lằn tạo nên hoa văn bề mặt da đầu ngón tay mà ta quen gọi dòng đường vân Một thẻ mẫu in vân, gọi thường gồm hai loại: vân tay lăn (rolled) vân tay ấn (plain) Vân tay thu nhận sensor gọi vân tay sống, dạng phổ biến nước công nghiệp Dấu vết vân tay nghi can để lại trường gọi vân tay trường, dạng vân chất lượng xấu không đầy đủ nên khó nhận dạng - Một cấu trúc đường vân lý tưởng bao gồm dòng đường vân dòng đường rãnh chạy xen kẽ nhau, “song song” với nhau, đường vân bị kẹp hai đường rãnh ngược lại, đường rãnh bị kẹp hai đường vân - Tùy theo chất lượng mà ảnh vân tay chia làm miền con: vùng có cấu trúc rõ ràng, vùng bị phá hủy khôi phục lại vùng bị phá hủy khôi phục - Đặc trưng vân tay: Hình dạng đường vân tay phong phú, song phân loại theo lớp khác Vùng vân trung tâm dùng để phân loại vùng vân nằm dấu vân tay giới hạn đường bao đường bao Việc phân loại đường vân giúp rút ngắn thời gian nhận dạng vân - Điểm gặp ba dòng vân khác gọi tam phân điểm (delta), cịn điểm mà quanh có dịng vân chạy vòng quanh gọi tâm điểm (core) - Số đếm vân số đường vân cắt đoạn thẳng nối hai điểm mốc Điểm mốc tâm điểm (core), tam phân điểm (delta) hay điểm đặc trưng chi tiết - Đặc điểm chi tiết vân tay: Một số đường vân chạy liên tục đến vị trí bị phân hai, ba nhánh (điểm rẽ nhánh) có bị đột ngột kết thúc (điểm cụt) gọi đặc điểm chi tiết 1.1.2 Nhận dạng dấu vân tay - Nhận dạng vân tay hoạt động theo nguyên tắc: Khi đặt ngón tay lên thiết bị đọc dấu vân tay, thiết bị quét hình ảnh ngón tay đưa vào hệ thống Hệ thống xử lý dấu vân tay, chuyển sang dạng liệu số đối chiếu đặc điểm vân tay với liệu lưu trữ hệ thống - Nếu dấu vân tay khớp với liệu hệ thống chức thực Trên lý thuyết, nhận dạng vân tay cho phép loại bỏ hoàn toàn loại mật song đảm bảo tính bảo mật người dùng đăng nhập thiết bị 1.1.3 Ứng dụng nhận dạng vân tay - So sánh dấu vân tay vốn coi phương tiện hữu hiệu hỗ trợ cho nhà điều tra trình phá án xét xử Người ta tìm tung tích tội phạm nạn nhân thơng qua dấu vân tay trường Tuy nhiên phương pháp bộc lộ vài khuyết điểm tác động yếu tố khách quan môi trường thời tiết, trường sau khảo sát,…và yếu tố chủ quan gây nhiễu Nếu đơn dựa vào yếu tố kỹ thuật mà bỏ qua loạt biện pháp nghiệp vụ khác, sai số lên tới 10% Mặc dù vậy, phương pháp nhận dạng vân tay phổ biến nhiều nơi nhiều quốc gia,mặc nhiên phương pháp nhận dạng vân tay sử dụng việc điều tra phá án cảnh sát việc nâng cao xác nhận dạng vân tay vấn để thiết yếu - Ngày nay, người ta lợi dụng đặc điểm riêng biệt vân tay để xây dựng hệ thống bảo mật thông tin riêng tư cho người sở hữu chúng, từ việc dùng ổ khóa vân tay thay cho ổ khóa thơng thường việc dùng vân tay thay mật phổ biến thời đại công nghệ thông tin Người ta cần quét dấu vân tay qua thiết bị chức mở cánh cửa, đăng nhập vào hệ thống máy vi tính, qua phịng bí mật hay trạm bảo vệ bí mật - Trong lĩnh vực quản lý nhân sự, phương pháp nhận dạng vân tay hỗ trợ đắc lực cho việc quản lý chấm cơng nhà máy, xí nghiệp, công ty máy máy chấm công vân tay Tuy nhiên, phổ biến có lẽ dấu vân tay qua mặt sau chứng minh thư để xác định cách nhanh đặc điểm, hồ sơ công dân lưu sở liệu 1.2 Hệ thống nhận diện vân tay Hệ thống nhận dạng: hệ thống xác thực cá nhân cách tìm kiếm đối sánh đặc tính sinh trắc người với toàn mẫu sinh trắc lưu giữ sở liệu Hình Hệ thống nhận diện vân tay Hình Các chân cảm biến STT chân Tên gọi Công mô tả Loại Vin in Nguồn điện đầu vào (dây đỏ) TD out Đầu liệu nối tiếp: Mức logic TTL (dây màu xanh cây) RD in Nhập liệu nối tiếp: Mức logic TTL (dây trắng) GND - Tín hiệu đất: nối đất (dây đen) NC - Không xác định b Giao tiếp phần cứng Thông qua giao diện nối tiếp, mô-đun kết nối với nguồn: chân gửi liệu (TD) kết nối với đầu nhận liệu máy chủ (RXD), chân nhận liệu mô-đun (RD) kết nối với đầu gửi liệu máy tính chủ (TXD) - Chân TXD (đầu ra, mức logic TTL) Nguồn Dòng diện VOL IOL=-4mA VOH IOH= 4mA Tối thiểu Thơng số Điển hình 2.4 Đơn Tối đa vị Lưu ý 0.4 V Logic 3.3 V Logic - Chân RXD (đầu vào, mức logic TTL) Nguồn Điều kiện Tối thiểu VIL VIH IIH VImax Số tham khảo Điển Tối hình đa 0.6 2.4 Đơn vị V Logic V Logic VIH =5V mA VIH =3.3V 30 uA -0.3 - Thông số đầu vào nguồn điện 5.5 Lưu ý V Điện áp đầu vào giới hạn Thơng số Nguồn, dịng điện Điện áp cung cấp Vin Điện áp cực hạn Vinmax Đơn Lưu ý Điển Tối vị hình đa 6.0 V Giá trị hoạt động bình thường 7.0 V Vượt phạm vi -0.3 gây thiệt hại vĩnh viễn Tối thiểu 3.6 Dòng điện hoạt động Icc Dòng điện cao điểm Ipeak 90 100 110 mA 150 mA 2.2.4 Hệ thống tài nguyên a Bộ đệm - Bộ đệm hình ảnh: Bộ đệm hình ảnh ImageBuffer sử dụng để lưu trữ liệu hình ảnh sử dụng xử lý hình ảnh bên mơ-đun Khi tải lên / tải xuống hình ảnh, định dạng hình ảnh 256x288 pixel - Bộ đệm tệp tính CharBuffer1 CharBuffer2 sử dụng để lưu trữ tệp tính phổ biến tệp tính mẫu b Thư viện vân tay - Mô-đun mở vùng lưu trữ FLASH làm vùng lưu trữ mẫu vân tay, thường gọi thư viện vân tay Dữ liệu thư viện vân tay bảo vệ tắt nguồn - Các mẫu vân tay lưu trữ theo số thứ tự, dung lượng sở liệu vân tay N số thứ tự mẫu vân tay sở liệu vân tay xác định là: 0, 1, N-2, N- c Thơng số cấu hình hệ thống - Tốc độ Baud: Nếu giá trị tham số N (giá trị N nằm khoảng từ đến 12), tốc độ truyền tương ứng (9600xN) bps - Mức độ bảo mật: Tham số kiểm soát việc so sánh dấu vân tay ngưỡng so sánh q trình tìm kiếm Nó chia thành mức, phạm vi giá trị là: 1,2,3,4,5 Khi mức độ bảo mật 1, tỷ lệ chấp nhận sai cao tỷ lệ từ chối thấp Mức độ bảo mật Khi tỷ lệ sai thấp nhất, tỷ lệ từ chối cao d Địa mơ-đun - Mỗi mơ-đun có địa nhận dạng, mô-đun giao tiếp với máy trên, hướng dẫn, liệu truyền dạng gói liệu, gói chứa địa chứa mục địa Mô-đun phản ứng với hướng dẫn gói liệu có chứa địa địa họ - Địa mô-đun byte giá trị mặc định là: 0xFFFFFFFF Người dùng sửa đổi địa mô-đun Sau địa mô-đun sửa đổi, địa lưu sau mô-đun bị điện 2.3 Giao tiếp UART Giao thức truyền thông đóng vai trị quan trọng việc tổ chức giao tiếp thiết bị Nó thiết kế theo nhiều cách khác dựa yêu cầu hệ thống giao thức có quy tắc cụ thể thống thiết bị để việc truyền liệu thực thành cơng Trong đề tài nhóm em sử dụng giao thức UART để giao tiếp 2.3.1 Giới thiệu UART UART (Universal Asynchronous Receiver / Transmitter) vi mạch sẵn có vi điều khiển, Tất loại kiến trúc vi điều khiển có phần cứng UART tích hợp giao tiếp nối tiếp sử dụng hai cáp để liên lạc Chức UART truyền liệu nối tiếp Trong UART, giao tiếp hai thiết bị thực theo hai cách giao tiếp liệu nối tiếp giao tiếp liệu song song Hình Truyền thông UART 2.3.2 Giao tiếp nối tiếp song song - Giao tiếp liệu nối tiếp: liệu truyền qua cáp đường dây dạng bit-bit cần hai cáp Truyền thông liệu nối tiếp không đắt so sánh với giao tiếp song song Nó địi hỏi mạch dây Vì vậy, giao tiếp hữu ích mạch ghép so với giao tiếp song song - Giao tiếp liệu song song: liệu truyền qua nhiều cáp lúc Truyền liệu song song tốn nhanh, địi hỏi phần cứng cáp bổ sung Các ví dụ tốt cho giao tiếp máy in cũ, PCI, RAM, v.v 2.3.3 Cách thức hoạt động Việc truyền liệu UART thực cách sử dụng bus liệu dạng song song thiết bị khác vi điều khiển, nhớ, CPU, v.v Sau nhận liệu song song từ bus, tạo thành gói liệu cách thêm ba bit bắt đầu, dừng lại trung bình Nó đọc bit gói liệu chuyển đổi liệu nhận thành dạng song song để loại bỏ ba bit gói liệu Tóm lại, gói liệu nhận UART chuyển song song phía bus liệu đầu nhận Dữ liệu truyền qua UART tổ chức thành gói Mỗi gói chứa bit bắt đầu, đến bit liệu (tùy thuộc vào UART), bit chẵn lẻ tùy chọn bit dừng Hình Gói liệu UART - Start-bit: Start-bit gọi bit đồng hóa đặt trước liệu thực tế Để bắt đầu truyền liệu, truyền UART kéo đường liệu từ mức điện áp cao (1) xuống mức điện áp thấp (0) UART thu thông báo chuyển đổi từ mức cao sang mức thấp qua đường liệu bắt đầu hiểu liệu thực Nói chung, có start-bit - Bit dừng đặt phần cuối gói liệu Thơng thường, bit dài bit thường sử dụng bit Để dừng sóng, UART giữ đường liệu mức điện áp cao - Bit chẵn lẻ cho phép người nhận đảm bảo liệu liệu thu thập có hay khơng Đây hệ thống kiểm tra lỗi cấp thấp & bit chẵn lẻ có sẵn hai phạm vi Chẵn lẻ – chẵn lẻ Chẵn lẻ – lẻ Trên thực tế, bit không sử dụng rộng rãi nên không bắt buộc - Các bit liệu bao gồm liệu thực truyền từ người gửi đến người nhận Độ dài khung liệu nằm khoảng & Nếu bit chẵn lẻ không sử dụng chiều dài khung liệu dài bit Nói chung, LSB liệu truyền trước tiên sau hữu ích cho việc truyền Chương Lưu đồ thuật tốn chương trình code 3.1 Lưu đồ thuật toán - Tổng quát: Lấy mẫu vân tay → Chọn vân tay để nhận dạng → Nhận dạng - Lưu đồ giải thuật trình lấy mẫu vân tay - Lưu đồ giải thuật trình chọn vân tay để nhận dạng - Lưu đồ giải thuật trình nhận dạng 3.2 Tạo sở liệu với SQLite - SQLite hệ trị sở liệu (DBMS) quan hệ tương tự Mysql, Đặc điểm bật SQLite so với DBMS khác gọn, nhẹ, đơn giản, đặt biệt khơng cần mơ hình server-client, khơng cần cài đặt, cấu hình hay khởi động nên khơng có khái niệm user, password hay quyền hạn SQLite Database Dữ liệu lưu file - Để lập sở liệu, ta lập bảng với nội dung sau: + Tên đăng nhập (Usersname) + Mật (Password) + Vân tay: Các ảnh vân tay liệu người lưu tên i sô thứ tự mẫu vân tay người (i = 1, 2, 3,…) Trong chương trình i = 0, 1, 2… Hình Tạo sở liệu với SQLite 3.3 Giao diện phần mềm - Kết nối thiết bị với máy tính Sử dụng phần mềm QT Designer để thiết kế giao diện chương trình nhận dạng vân tay Hình 10 Giao diện đăng nhập - Có thể sử dụng tên đăng nhập vân tay để đăng nhập vào hệ thống - Để sử dụng chương trình, trước hết phải kích chuột vào hình vân tay giao diện để máy tính thực việc kết nối với thiết bị kích hoạt Cảm biến hoạt động - Áp ngón tay lên mặt gương thiết bị cho bề mặt vân tay ngón tay gần khớp với bề mặt gương, ảnh vân tay thu rõ nét đầy đủ nhất, trình nhận dạng xác Để tăng độ xác nhận dạng, người lấy ảnh lần - Quá trình xử lý nhận dạng bắt đầu, trình cần khoảng thời gian định Kết thúc trình xử lý, vây tay cần nhận dạng trùng với vân tay sở liệu xuất cửa sổ hình Hình 11 Giao diện hình 3.4 Chương trình code Fingerprint finger = Fingerprint(&mySerial); void setup() { Serial.begin(9600); while (!Serial); // For Yun/Leo/Micro/Zero/ delay(100); Serial.println("\n\nfinger detect test"); // set the data rate for the sensor serial port finger.begin(57600); delay(5); if (finger.verifyPassword()) { Serial.println("Found fingerprint sensor!"); } else { Serial.println("Did not find fingerprint sensor :("); while (1) { delay(1); } } Serial.println(F("Reading sensor parameters")); finger.getParameters(); Serial.print(F("Status: 0x")); Serial.println(finger.status_reg, HEX); Serial.print(F("Sys ID: 0x")); Serial.println(finger.system_id, HEX); Serial.print(F("Capacity: ")); Serial.println(finger.capacity); Serial.print(F("Security level: ")); Serial.println(finger.security_level); Serial.print(F("Device address: ")); Serial.println(finger.device_addr, HEX); Serial.print(F("Packet len: ")); Serial.println(finger.packet_len); Serial.print(F("Baud rate: ")); Serial.println(finger.baud_rate); finger.getTemplateCount(); if (finger.templateCount == 0) { Serial.print("Sensor doesn't contain any fingerprint data Please run the 'enroll' example."); } else { Serial.println("Waiting for valid finger "); Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates"); } } void loop() // run over and over again { getFingerprintID(); delay(50); //don't ned to run this at full speed } uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p; default: Serial.println("Unknown error"); return p; } // OK success! p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } // OK converted! p = finger.fingerSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; } else { Serial.println("Unknown error"); return p; } // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); return finger.fingerID; } // returns -1 if failed, otherwise returns ID # int getFingerprintIDez() { uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); return finger.fingerID; } Kết luận Trong thời gian tìm hiểu thực đồ án hướng dẫn tận tình PGS TS Nguyễn Quang Địch mơn Tự động hóa Cơng Nghiệp – Viện điện, em hồn thành đồ án với đề tài: Bảo mật hệ thống tủ lưu trũ thông minh cảm biến vân tay Dù cố gắng hoàn thành đồ án có hướng dẫn thầy tầm hiểu biết cịn hạn chế chưa có kinh nghiệm thực tiễn nên chắn đồ án cịn nhiều hạn chế thiếu sót Vì vậy, em mong sủa chữa đóng góp ý kiến thầy cô bạn để em rút kinh nghiệm bổ sug thêm kiến thức Em xin chân thành cảm ơn! Tài liệu tham khảo [1] https://hshop.vn/products/cam-bien-nhan-dang-van-tay-fpm10a [2] https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter [3] https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library