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.
Trang 1HỌ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
Trang 3LỜ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 Đặcbiệt phải kể đến là những chiếc thẻ thông minh (Smart card) Kèm theo đó là sự pháttriể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 haythẻ 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ặpkhó 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ệctạ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ôngnghệ 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ờigian 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ạimỗ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ớtsứ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 đề chungcủ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 Dohạ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!
Trang 4LỜ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àiliệ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ếnthứ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
Trang 5MỤ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
Trang 6Hướ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
Trang 7DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Trang 8DANH 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
Trang 9DANH 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
Trang 10CHƯƠ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 sinhtrong 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ănglư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 tinngườ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 (JavaSwing - Netbeans)
Trang 11 Kết nối thẻ với Phần mềm.
Đăng nhập bằng mã PIN, nhập sai 3 lần sẽ bị khoá thẻ
Có chức năng mượn trả sách, xác thực bằng khoá công khai
Đổi mã PIN
Lưu thông tin người dùng
Mã hoá AES: sử dụng trong lưu thông tin - mã hoá tên, ngày sinh, giới tính rồi lưu xuống thẻ, khi đọc thông tin lên sẽ giải mã và show ra màn hình
1.2 Phân tích hệ thống
1.2.1 Sơ đồ phân rã chức năng
Hình 1 1 Sơ đồ phân rã chức năng
Khởi tạo dữ liệu thẻ
Đổi thông tin
Đổi mã pin
Thanh toán hóa đơn
Nạp tiền vào thẻ
Đăng xuất
Trang 121.2.2 Biểu đồ ca sử dụng tổng quát
Biểu đồ usecase tổng quát gồm 2 usecase chính:
Quản lý thẻ
Quản lý dữ liệu thẻ
Hình 1 2 Biểu đồ Usecase tổng quát
1.2.3 Biểu đồ ca sử dụng chi tiết
1.2.3.1 Biểu đồ ca sử dụng quản lý thẻ
Biểu đồ ca sử dụng quản lý thẻ gồm 2 usecase:
Khóa thẻ
Mở khóa thẻ
Trang 13Hình 1 3 Biểu đồ Usecase quản lý thẻ
1.2.3.2 Biểu đồ ca sử dụng quản lý dữ liệu thẻ
Biểu đồ ca sử dụng quản lý dữ liệu thẻ gồm các usecase:
Khởi tạo dữ liệu thẻ
Đổi thông tin
Đổi mã PIN
Thanh toán hóa đơn
Nạp tiền vào thẻ
Đăng xuất
Trang 14Hình 1 4 Biểu đồ Usecase quản lý thẻ
3 Hệ thống yêu cầu người dùng nhập mã pin
4 Kiểm tra mã pin
Trang 155 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
Bảng 1 2 Đặc tả chức năng cập nhật thông tin
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
Trang 161.2.4.3 Nạp tiền vào thẻ
Bảng 1 3 Đặc tả chức năng nạp tiền vào thẻ
Brief Description 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ẻ
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
Alternative Flows
1.2.4.4 Thanh toán hóa đơn
Bảng 1 4 Đặc tả chức năng thanh toán hóa đơn
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
Trang 174 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
Alternative Flows 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
Bảng 1 5 Đặc tả chức năng đổi mã PIN
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ũ
Trang 18- 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
Trang 191.2.5 Biểu đồ hoạt động
Hình 1 5 Biểu đồ hoạt động tổng quát
Trang 201.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
Trang 211.2.5.2 Nạp tiền vào thẻ
Trang 221.2.5.3 Thanh toán hóa đơn
Hình 1 8 Biểu đồ hoạt động chức năng thanh toán hóa đơn
Trang 231.2.5.4 Đổi mã PIN
Hình 1 9 Biểu đồ hoạt động chức năng đổi mã PIN
Trang 241.3 Thiết kế hệ thống
Chức năng quản lý thẻ:
● Ban đầu để thực hiện các yêu cầu trên thẻ thì người dùng phải nhập đúng
mã PIN nhưng có hạn chế số lần nhập mã PIN nếu nhập sai quá ba lầnthì thẻ sẽ bị khóa (Block)
● Người dùng sử dụng chức năng Unblock để mở khoá thẻ
Chức năng quản lý dữ liệu thẻ:
● Khởi tạo dữ liệu thẻ: là chức năng cho phép người dùng đăng ký 1 thẻmới
● Đổi mã PIN: chức năng cho phép người dùng đổi mã PIN hiện tại
● Đổi thông tin: là chức năng cho phép người dùng cập nhật thông tinngười dùng
● Thanh toán hóa đơn: là chức năng cho người dùng thanh toán các hóađơn bằng thẻ căn cước
● Nạp tiền vào thẻ: là chức năng cho phép người dùng nạp tiền vào tàikhoản của thẻ hiện tại
● Đăng xuất: là chức năng cho phép người dùng đăng xuất thẻ hiện tại và
có thể đăng nhập bằng 1 thẻ khác
Trang 25CHƯƠNG 2 CÀI ĐẶT VÀ THỰC
NGHIỆM
Tóm tắt Chương 2 được trình bày tại đây, dài khoảng từ 5 đến 10 dòng
2.1 Khởi tạo Project
2.2 Thiết kế hoàn thiện chức năng về pin
2.3 Thiết kế giao diện chức năng kết nối Applet với Netbean
2.4 Hoàn thiện module khởi tạo, cập nhập thông tin
2.5 Phát triển module
2.6 Hoàn thiện project và các tài liệu liên quan
Trang 27TÀI LIỆU THAM KHẢO
[1] T H Cormen, C E Leiserson, and R L Rivet, Introduction to Algorithm MIT
Press, McGraw-Hill, 1990
[2] J W DuBois, S Schuetze-Coburn, S Cumming, and D Paolino, “Outline of
discourse transcription,” in Talking Data: Transcription and Coding in Discourse Research, J A Edwards and M D Lampert, Ed Hillsdale, NJ:
Lawrence Erlbaum Associates, 1993, pp 45-89
[3] J M Airey, J H Rohfl, F Brooks Jr., “Towards Image Realism with Interactive
Update Rates in Complex Virtual Building Environments,” Comptuer Graphics,
Vol 24, No 2, pp 41-50, 1990
[4] S Brandt, G Nutt, T Berk, M Humphrey, “Soft Real time Application
Execution with Dynamic Quality of Service Assurance,” in Proceedings of the Sixth IEEE/IFIP International Workshop on Quality of Service, Hawaii, USA,
May 1998, pp 154-163
[5] K Riley, “Language theory: Applications versus practice,” presented at the Conf
of the Modern Language Association, Boston, MA, December 27-30, 1990
[6] J Jones (1991) Networks (2nd ed.) [Online] Available: http://www.atm.com.
Trang 28PHỤ LỤC