Thẻ căn cước công dân có cơ chế xác thực bằng mã PIN, mã PIN có thể thay đổi, nếu nhập sai quá 3 lần thẻ sẽ bị khóa cho đến khi được mở lại. Thẻ có chức năng lưu thông tin như: Số căn cước công dân, họ tên, ngày sinh, giới tính, ảnh , vân tay…vv và chức năng nạp tiền , thanh toán hóa đơn. Các thông tin trước khi lưu phải được mã hóa (sử dụng AES với khóa được tạo ra từ mã PIN). Có thể thay đổi thông tin người dùng.
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC PHÁT TRIỂN PHẦN MỀM TRONG THẺ THÔNG MINH Đề tài: XÂY DỰNG THẺ CĂN CƯỚC CÔNG DÂN Giảng viên hướng dẫn: ThS Sinh viên thực hiện: Nhóm 10 Hà Nội, 5-2022 1 2 LỜI NÓI ĐẦU Xã hội ngày càng phát triển, các thiết bị thông minh ra đời ngày càng nhiều Đặc biệt phải kể đến là những chiếc thẻ thông minh (Smart card) Kèm theo đó là sự phát triển của công nghệ bán dẫn cho phép các nhà sản xuất chip tạo ra những con chip hay thẻ thông minh ngày càng nhỏ gọn cùng với sức mạnh tính toán cao Tuy nhiên việc có quá nhiều nhà sản xuất chip, công việc phát triển ứng dụng cho thẻ thông minh gặp khó khăn về sự tương thích Do đó nhu cầu về một nền tảng chung bên trong chip được đặt ra, công nghệ JavaCard được phát triển để phục vụ mục đích này Với việc tạo ra một môi trường ảo chung trên tất cả các hệ điều hành hỗ trợ JavaCard, công nghệ này đã giúp cho việc phát triển ứng dụng chip trở nên dễ dàng giúp tiết kiệm thời gian nghiên cứu phát triển Hiện nay, thư viện tại các trường Đại học, Cao đẳng đều là thư viện đóng Tại mỗi phòng Thư viện để phải có nhân viên trực để quản lý sinh viên Vì vậy, thẻ thư viện thông minh hình thành mở phục vụ sinh viên ngày càng trở nên cần thiết giảm bớt sức lao động của người quản lý Với sự phát triển mạnh mẽ hiện nay về công nghệ việc xây dựng hệ thống thẻ thư viện mở sẽ trở nên dễ dàng Tuy nhiên, vấn đề chung của các khi vận hành những hệ thống này là về mặt chi phí và tính ổn định khi sử dụng Dưới sự hướng dẫn của cô Cao Thanh Vinh nhóm chúng em đã chọn đề tài “Xây dựng thẻ thư viện sử dụng Smart Card” Hệ thống mượn trả sách giờ đây sẽ sử dụng những chiếc thẻ từ và máy đọc thẻ, thông tin của người dùng vẫn sẽ được mã hoá và ẩn vào trong thẻ Chỉ khi nào biết được mã PIN thì mới có thể xem được thông tin Điều này giúp vẫn đảm bảo được tính bảo mật thông tin người dung của hệ thống Do hạn chế về mặt kiến thức nên không thể tránh khỏi sai sót trong quá trình làm báo cáo, nhóm chúng em rất mong được sự giúp đỡ và góp ý của cô và các bạn Chúng em xin chân thành cảm ơn! I LỜI CẢM ƠN Lời đầu tiên em xin gửi lời cảm ơn sâu sắc nhất đến cô ThS Cao Thanh Vinh đã hướng dẫn, định hướng cho nhóm chúng em, đồng thời, cũng đã cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong suốt quá trình học tập và nghiên cứu để em có thể hoàn thành bài tập lớn này Nhóm chúng em xin chân thành cảm ơn đến các thầy, cô trong Khoa Công nghệ thông tin, Trường Học Viện Kỹ Thuật Mật Mã cùng với ban lãnh đạo nhà trường đã nhiệt tình giảng dạy, cung cấp những trang thiết bị tốt nhất và truyền đạt những kiến thức, kinh nghiệm quý giá trong suốt quá trình học tập rèn luyện tại trường Chúng em rất mong nhận được những sự góp ý quý báu của thầy cô, bạn bè Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc I MỤC LỤC DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ ii DANH MỤC BẢNG BIỂU iii CHƯƠNG 1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1 1.1 Phân tích bài toán 1 1.1.1 Mô tả bài toán 1 1.1.2 Các chức năng 1 1.1.3 Mục tiêu đạt được 1 1.2 Phân tích hệ thống 2 1.2.1 Sơ đồ phân rã chức năng 2 1.2.2 Biểu đồ ca sử dụng tổng quát 2 1.2.3 Biểu đồ ca sử dụng chi tiết .3 1.2.4 Đặc tả 4 1.2.5 Biểu đồ hoạt động 8 1.3 Thiết kế hệ thống 13 CHƯƠNG 2 CÀI ĐẶT VÀ THỰC NGHIỆM 14 2.1 Khởi tạo Project 14 2.2 Thiết kế hoàn thiện chức năng về pin .14 2.3 Thiết kế giao diện chức năng kết nối Applet với Netbean 14 2.4 Hoàn thiện module khởi tạo, cập nhập thông tin .14 2.5 Phát triển module 14 2.6 Hoàn thiện project và các tài liệu liên quan 14 KẾT LUẬN 15 Kết luận chung 15 I Hướng phát triển 15 Kiến nghị và đề xuất 15 TÀI LIỆU THAM KHẢO 16 PHỤ LỤC 1 II DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ Hình 1 1 Sơ đồ phân rã chức năng 2 Hình 1 2 Biểu đồ Usecase tổng quát 3 Hình 1 3 Biểu đồ Usecase quản lý thẻ 3 Hình 1 4 Biểu đồ Usecase quản lý thẻ 4 Hình 1 5 Biểu đồ hoạt động tổng quát 8 Hình 1 6 Biểu đồ hoạt động chức năng cập nhật thông tin 9 Hình 1 7 Biểu đồ hoạt động chức năng nạp tiền vào thẻ 10 Hình 1 8 Biểu đồ hoạt động chức năng thanh toán hóa đơn 11 Hình 1 9 Biểu đồ hoạt động chức năng đổi mã PIN 12 ii DANH MỤC BẢNG BIỂU Bảng 1 1 Đặc tả chức năng đăng nhập 4 Bảng 1 2 Đặc tả chức năng cập nhật thông tin 5 Bảng 1 3 Đặc tả chức năng nạp tiền vào thẻ .6 Bảng 1 4 Đặc tả chức năng thanh toán hóa đơn 6 Bảng 1 5 Đặc tả chức năng đổi mã PIN 7 iii CHƯƠNG 1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1.1 Phân tích bài toán Bước đầu để hiểu rõ về bài toán cần giải quyết và để giảm các vấn đề phát sinh trong quá trình xây dựng hệ thống chúng ta cần phân tích bài toán một cách cụ thể 1.1.1 Mô tả bài toán Thẻ căn cước công dân có cơ chế xác thực bằng mã PIN, mã PIN có thể thay đổi, nếu nhập sai quá 3 lần thẻ sẽ bị khóa cho đến khi được mở lại Thẻ có chức năng lưu thông tin như: Số căn cước công dân, họ tên, ngày sinh, giới tính, ảnh , vân tay… vv và chức năng nạp tiền , thanh toán hóa đơn Các thông tin trước khi lưu phải được mã hóa (sử dụng AES với khóa được tạo ra từ mã PIN) Có thể thay đổi thông tin người dùng 1.1.2 Các chức năng Cơ chế xác thực thể thẻ bằng mã pin – VERIFY PIN Thay đổi mã PIN Giới hạn số lần sai khi nhập mã pin ( 3 lần và có cảnh bảo số lần nhập) Lưu thông tin chủ thẻ Cho phép thay đổi thông tin cá nhân chủ thẻ ( những thông tin cho phép sửa đổi) Mã hoá thông tin trước khi lưu xuống thẻ - sử dụng khoá AES Chức năng nạp tiền Chức năng thanh toán hóa đơn Xây dựng phần mềm giao tiếp với máy tính 1.1.3 Mục tiêu đạt được Sản phẩm sau khi hoàn thiện cần đáp ứng đủ các yêu cầu sau: Tạo phần mềm cho thẻ (Applet) và Phần mềm giao tiếp với người dùng (Java Swing - Netbeans) 1 Hình 1 4 Biểu đồ Usecase quản lý thẻ 1.2.4 Đặc tả Use Case 1.2.4.1 Đăng nhập Bảng 1 1 Đặc tả chức năng đăng nhập Đăng nhập Actor User Brief Description Khi User chọn chức năng đăng nhập hệ thống Pre-conditions Kết nối thẻ Basic Flows 1 Người dùng chọn đăng nhập hệ thống 2 Hệ thống hiển thị màn hình đăng nhập 3 Hệ thống yêu cầu người dùng nhập mã pin 4 Kiểm tra mã pin 5 5 Hệ thống lưu trữ thông tin rồi trả về kết quả đăng nhập 6 Nếu thành công hệ thống hiển thị màn hình đăng nhập thành công Alternative Flows Mã pin không hợp lệ: Khi người dùng nhập sai mã pin - Hệ thống hiển thị màn hình đăng nhập để người dùng nhập lại mã pin kèm theo thông báo: “Mã pin sai, mã pin nhập sai quá 3 lần thì tài khoản sẽ bị khóa” - Quay lại bước đăng nhập 1.2.4.2 Cập nhật thông tin Use Case Bảng 1 2 Đặc tả chức năng cập nhật thông tin Cập nhật thông tin Actor User Brief Description User chọn chức năng cập nhật thông tin Pre-conditions Đăng nhập thành công Basic Flows 1 Người dùng chọn chức năng thay đổi thông tin 2 Hệ thống hiển thị màn hình thay đổi thông tin 3 Người dùng nhập các thông tin muốn thay đổi gồm: họ tên, ngày sinh, địa chỉ, ảnh, vân tay, giới tính, quốc tịch 4 Hệ thống lưu trữ thông tin rồi trả về kết quả 5 Nếu thành công hệ thống hiển thị màn hình thay đổi thông tin thành công Alternative Flows Thay đổi thông tin không hợp lệ: Khi người dùng nhập thông tin, hình ảnh sai 6 Use Case 1.2.4.3 Nạp tiền vào thẻ Actor Bảng 1 3 Đặc tả chức năng nạp tiền vào thẻ Brief Description Nạp tiền vào thẻ User Chức năng nạp tiền vào thẻ Pre-conditions Đăng nhập thành công Basic Flows 1 Người dùng chọn chức năng nạp tiền vào thẻ Alternative Flows 2 Hệ thống hiển thị giao diện nạp tiền gồm số dư và số tiền cần nhập để nạp tiền 3 Người dùng nhập số tiền cần nạp và chọn button “Nạp tiền” 4 Hệ thống lưu trữ thông tin rồi trả về kết quả 5 Nếu thành công hệ thống hiển thị màn hình nạp tiền thành công và cập nhật số dư tài khoản 6 Kết thúc Usecase 1.2.4.4 Thanh toán hóa đơn Use Case Bảng 1 4 Đặc tả chức năng thanh toán hóa đơn Thanh toán hóa đơn Actor User Brief Description Chức năng thanh toán hóa đơn Pre-conditions Đăng nhập thành công Basic Flows 1 Người dùng chọn chức năng thanh toán hóa đơn 2 Hệ thống hiển thị giao diện thanh toán hóa đơn gồm: số dư, số tiền thanh toán hóa đơn và mã hóa đơn 3 Người dùng nhập mã hóa đơn và số tiền cần thanh toán 7 Alternative Flows 4 Hệ thống kiểm tra thông tin 5 Hệ thống lưu trữ thông tin rồi trả về kết quả 6 Nếu thành công hệ thống hiển thị thanh toán thành công và cập nhật lại số dư tài khoản 7 Kết thúc Usecase Nếu số dư tài khoản ít hơn số tiền thanh toán hóa đơn sẽ hiển thị thông báo “ số dư không đủ” 1.2.4.5 Đổi mã pin Use Case Bảng 1 5 Đặc tả chức năng đổi mã PIN Đổi mã PIN Actor User Brief Description Chức năng đổi mã PIN Pre-conditions Đăng nhập thành công Basic Flows 1 Người dùng chọn đổi mã PIN 2 Hệ thống hiển thị màn hình đổi mã PIN 3 Người dùng nhập mã PIN cũ , mã PIN mới và xác nhận lại mã PIN mới 4 Sau khi nhập người dùng chọn “Xác nhận” 5 Hệ thống kiểm tra xem nếu mã PIN cũ đã nhập đúng, mã PIN mới và xác nhận mã PIN mới trùng nhau kèm khác mã PIN cũ thì thành công Ngược lại nếu sai thì hiển thị thông báo 6 Nếu thành công hệ thống hiển thị màn hình đổi mã PIN thành công 7 Kết thúc Usecase Alternative Flows Mã PIN không hợp lệ: Khi người dùng nhập sai mã PIN cũ hoặc mã PIN mới trùng mã PIN cũ 8 - Hệ thống hiển thị màn hình đổi mã PIN để người dùng nhập lại thông tin kèm theo thông báo mã PIN đã tồn tại - Quay lại bước đổi mã PIN 9 1.2.5 Biểu đồ hoạt động Hình 1 5 Biểu đồ hoạt động tổng quát 10 1.2.5.1 Cập nhật thông tin Hình 1 6 Biểu đồ hoạt động chức năng cập nhật thông tin 11