Với đặcđiểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực
Trang 1
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Khoa Công Nghệ Thông Tin
Trang 2Hà Nội - 2023
Trang 3
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Khoa Công Nghệ Thông Tin
Trang 4Hà Nội - 2023
Trang 5MỤC LỤC
2.3 Thiết kế, cài đặt chương trình đề mô thuật toán 13
2.4.2 Kiến trúc tổng quan về chữ kí số và chữ kí số RSA(Tàng Trọng Phi)222.4.3 Giải thuật RSA và hàm băm mật mã MD5 (Hoàng Kỳ Phong) 272.4.4 Các điểm yếu của chữ kí số RSA (Nguyễn Xuân Phú) 31
2.5.1 Chương trình demo (Tàng Trọng Phi – Python) 36
CHƯƠNG III: KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM
44
Trang 6LỜI NÓI ĐẦU
Ngày nay trong mọi hoạt động của con người thông tin đóng một vai tròquan trọng không thể thiếu Xã hội càng phát triển nhu cầu trao đổi thông tingiữa các thành phần trong xã hội ngày càng lớn Mạng máy tính ra đời đã manglại cho con người rất nhiều lợi ích trong việc trao đổi và xử lý thông tin mộtcách nhanh chóng và chính xác Chính từ những thuận lợi này đã đặt ra chochúng ta một câu hỏi, liệu thông tin đi từ nơi gửi đến nơi nhận có đảm bảo tuyệtđối an toàn, ai có thể đảm bảm thông tin của ta không bị truy cập bất hợp pháp.Thông tin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới thông tin côngcộng có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ dẫn đến sự tổnthất không thể lường được Đặc biệt là đối với những số liệu của hệ thống ngânhàng, hệ thống thương mại, cơ quan quản lý của chính phủ hoặc thuộc lĩnh vựcquân sự được lưu giữ và truyền dẫn trên mạng Nếu như vì nhân tố an toàn màthông tin không dám đưa lên mạng thì hiệu suất làm việc cũng như hiệu suất lợidụng nguồn dữ liệu đều sẽ bị ảnh hưởng Trước các yêu cầu cần thiết đó, việc
mã hoá thông tin sẽ đảm bảo an toàn cho thông tin tại nơi lưu trữ cũng như khithông tin được truyền trên mạng
Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp cóthể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thốngthông tin của tổ chức Vì vậy an toàn thông tin là nhiệm vụ quan trọng, nặng nề
và khó đoán trước đối với các hệ thống thông tin
Một trong những ứng dụng của an toàn thông tin là chữ ký số Với đặcđiểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hàng, Kế toán…
Để ứng dụng các phương pháp trên vào thực tiễn, được sự hướng dẫn của
Trang 7CHƯƠNG I: TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan về an toàn và bảo mật thông tin
An toàn thông tin là các hoạt động bảo vệ tài sản thông tin và là một lĩnhvực rộng lớn Nó bao gồm cả những sản phẩm và những quy trình nhằm ngănchặn truy cập trái phép, hiệu chỉnh, xóa thông tin,…
An toàn thông tin liên quan đến hai khía cạnh đó là an toàn về mặt vật lý
và an toàn về mặt kỹ thuật
Bảo mật thông tin là bảo vệ thông tin dữ liệu cá nhân, tổ chức nhằm tránhkhỏi sự ” đánh cắp, ăn cắp” bởi những kẻ xấu hoặc tin tặc An ninh thông tincũng như sự bảo mật an toàn thông tin nói chung Việc bảo mật tốt những dữliệu và thông tin sẽ tránh những rủi ro không đáng có cho chính cá nhân vàdoanh nghiệp của bạn
1.2 Sự cần thiết của An toàn và bảo mật thông tin
Hệ thống thông tin là thành phần thiết yếu trong mọi cơ quan, tổ chức vàđem lại khả năng xử lý thông tin, là tài sản quan trọng nhưng hệ thống thông tincũng chứa rất nhiều điểm yếu và rủi do Do máy tính được phát triển với tốc độrất nhanh để đáp ứng nhiều yêu cầu của người dùng, các phiên bản được pháthành liên tục với các tính năng mới được thêm vào ngày càng nhiều, điều nàylàm cho các phần mềm không được kiểm tra kỹ trước khi phát hành và bên trong
Trang 8+ Đảm bảo tính toàn vẹn
+ Đảm bảo tính xác thực
+ Đảm bảo tính sẵn sàng
- Mục đích của an toàn và bảo mật thông tin
+ Bảo vệ tài nguyên của hệ thống
Các hệ thống máy tính lưu giữ rất nhiều thông tin và tài nguyên cần đượcbảo vệ Trong một tổ chức, những thông tin và tài nguyên này có thể là dữ liệu
kế toán, thông tin nguồn nhân lực, thông tin quản lý, bán hàng, nghiên cứu, sángchế, phân phối, thông tin về tổ chức và thông tin về các hệ thống nghiên cứu.Đối với rất nhiều tổ chức, toàn bộ dữ liệu quan trọng của họ thường được lưutrong một cơ sở dữ liệu và được quản lý và sử dụng bởi các chương trình phầnmềm
Các tấn công vào hệ thống có thể xuất phát từ những đối thủ của tổ chứchoặc cá nhân do đó, các phương pháp để bảo đảm an toàn cho những thông tinnày có thể rất phức tạp và nhạy cảm Các tấn công có thể xuất phát từ nhiềunguồn khác nhau, cả từ bên trong và bên ngoài tổ chức Hậu quả mà những tấncông thành công để lại sẽ rất nghiêm trọng
+ Bảo đảm tính riêng tư
Các hệ thống máy tính lưu giữ rất nhiều thông tin cá nhân cần được giữ bímật Những thông tin này bao gồm: Số thẻ bảo hiểm xã hội, số thẻ ngân hàng, sốthẻ tín dụng, thông tin về gia đình,
Tính riêng tư là yêu cầu rất quan trọng mà các ngân hàng, các công ty tíndụng, các công ty đầu tư và các hãng khác cần phải đảm bảo để gửi đi các tài
Trang 9riêng tư Hậu quả nghiêm trọng sẽ xảy ra nếu một kẻ giả mạo truy nhập đượcnhững thông tin cá nhân.
=> Một trong những ứng dụng của an toàn thông tin là chữ ký số Với đặc
điểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hang, Kế toán…Vì lý
do đó, nhóm 3 chúng em đã nghiên cứu về Chữ kí điện tử RSA và những vấn đề
có liên quan đồng thời có viết được các chương trình nhằm mục đích demo vềnhững vấn đề trên
Khóa công khai thường được phân phối thông qua chứng thực khóa công khai
Trang 10Chữ kí số (Digital Signature) là một chuỗi dữ liệu liên kết với một thôngđiệp (message) và thực thể tạo ra thông điệp.
Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) làmột phương pháp sinh chữ ký số
Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) làmột phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực sựđược tạo ra bởi 1 bên chỉ định
Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ
số và giải thuật kiểm tra chữ kỹ số
- Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm:
+ Giải thuật tạo chữ ký số
+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể kýđược
Trang 11+ Phương pháp khôi phục dữ liệu từ thông điệp.
Hàm băm (Hash Funtion) là hàm toán học chuyển đổi thông điệp(message) có độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùythuộc vào thuật toán băm) Dãy bít này được gọi là thông điệp rút gọn (messagedisgest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu
Ví dụ: Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau :Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice có thểđọc được Để làm được điều này, Alice gửi cho Bob một chiếc hộp có khóa đã
mở sẵn (Khóa công khai) và giữ lại chìa khóa Bob nhận chiếc hộp, cho vào đómột tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉcần sập chốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau đó Bob gửi chiếc hộplại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tin trong thư.Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìakhóa chính là khóa bí mật
● Quá trình ký (Bên gửi)
Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sửdụng một giải thuật băm (Hashing algorithm)
Trang 12● Quá trình kiểm tra chữ kí (Bên nhận)
Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sửdụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)
Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số
-> chuỗi đại diện thông điệp MD2
So sánh MD1 và MD2:
+ Nếu MD1 = MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảotính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứngthực)
+ Nếu MD1 <>MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửađổi hoặc không thực sự xuất phát từ người gửi
CHƯƠNG II: KẾT QUẢ NGHIÊN CỨU 2.1 Giới thiệu
Tên đề tài nghiên cứu: Tìm hiểu về chữ ký điện tử RSA và viết ứng dụngminh họa
1 Kiến trúc tổng quan chữ ký số và chữ
ký số sử dụng RSA
Đã tìm hiểu được kiến trúc tổng quan của chữ ký điện tử nói chung cũng như chữ ký điện tử RSA nói riêng
2 Giải thuật RSA và hàm băm mật mã
MD5
Nắm được giải thuật RSA trong chữ ký điện tử RSA và hàm băm mật mã MD5
Trang 13pháp tấn công đối với chữ ký
số RSA
5 Ứng dụng chữ ký và sử dụng giải thuật
RSA
Ứng dụng được chứ ký số RSA và viết được các chươngtrình demo
Nhằm minh họa phần nội dung kiến thức về chữ kí điện tử RSA, nhóm 3 đãphân công cho từng thành viên xây dựng các chương trình ứng dụng web và ứngdụng desktop trên nền các ngôn ngữ lập trình riêng biệt, cụ thể :
+ Tàng Trọng Phi - Ngôn ngữ lập trình Python
+ Hoàng Kỳ Phong - Ngôn ngữ lập trình C#
+ Nguyễn Xuân Phú - Ngôn ngữ lập trình Java
+ Nguyễn Vi Phượng - Ngôn ngữ lập trình PHP
2.2 Nội dung thuật toán
Giải thuật RSA
● Tạo khóa:
Giải thuật RSA có hai khóa:
Khóa công khai (Public key – Kpub): được công bố rộng rãi cho mọi
Trang 14Khóa bí mật (Private key – Kpr ): không được chia sẻ được chia cho mọi người và được dùng để ký chữ ký số.
● Các bước tạo khóa:
B1: Đầu vào là hai SNT p và q
Trang 152.3 Thiết kế, cài đặt chương trình đề mô thuật toán2.3.1 Giao diện chương trình đề mô
● Giao diện tạo khóa
Trang 16● Giao diện thực hiện ký
● Giao diện xác thực chữ ký
Trang 17● Quá trình tạo khóa
● Quá trình ký
Trang 18● Quá trình xác thực chữ ký (tài liệu không có gì thay đổi)
● Quá trình xác thực chữ ký (tài liệu có thay đổi)
Trang 192.3.2 Cài đặt và triển khai
Trang 20Giới thiệu cài đặt và chạy chương trình trên ngôn ngữ lập trình C#
● Sử dụng thư viện using System.Security.Cryptography;
● Hàm EuclideMoRong() sử dụng thuật toán Euclide mở rộng để tìmphần tử nghịch đảo theo modulo
Trang 21● Hàm RSA_mod() : sử dụng thuật toán bình phương và nhân tính lũythừa theo modulo
● Hàm tạo khóa
● Hàm mã hóa RSA
Trang 22● Hàm giải mã RSA
Trang 23● Hàm thực hiện ký
Trang 24● Quá trình tạo khóa
● Quá trình ký
Trang 25● Quá trình xác thực chữ ký (tài liệu không có gì thay đổi)
Trang 26● Quá trình xác thực chữ ký (tài liệu có thay đổi)
2.4 Thực hiện bài toán2.4.1 Phân công công việc
Toàng Trọng Phi Kiến trúc tổng quan về chữ kí số và chữ kí số
RSAHoàng Kỳ Phong Giải thuật RSA và hàm băm mật mã MD5Nguyễn Xuân Phú Các điểm yếu của chữ kí số RSA
Nguyễn Vi Phượng Các dạng tấn công
Nguyễn Vi Phượng Ứng dụng chữ kí số RSA
2.4.2 Kiến trúc tổng quan về chữ kí số và chữ kí số RSA (Tàng Trọng
Trang 27Chữ kí số (Digital Signature) là một chuỗi dữ liệu liên kết với một thôngđiệp (message) và thực thể tạo ra thông điệp.
Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) làmột phương pháp sinh chữ ký số
Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) làmột phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực sựđược tạo ra bởi 1 bên chỉ định
Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ
số và giải thuật kiểm tra chữ kỹ số
- Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm:
+ Giải thuật tạo chữ ký số
+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được
- Quá trình kiểm tra chữ ký số (Digital signature verification process) :
+ Giải thuật kiểm tra chữ ký số
+ Phương pháp khôi phục dữ liệu từ thông điệp
Hàm băm (Hash Funtion) là hàm toán học chuyển đổi thông điệp (message) có
độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùy thuộc vào thuậttoán băm) Dãy bít này được gọi là thông điệp rút gọn (message disgest) hay giá
Trang 28lại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tin trong thư.Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìakhóa chính là khóa bí mật.
● Quá trình ký (Bên gửi)
Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụngmột giải thuật băm (Hashing algorithm)
Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi và
1 giải thuật tạo chữ ký (Signature/ Encryption algorithm) Kết quả chữ ký số(Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa(Encryted message digest)
Thông điệp ban đầu (message) được ghép với chữ ký số (Digitalsignature) tạo thành thông điệp đã được ký (Signed message)
Trang 29Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;
Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sửdụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)
Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số
-> chuỗi đại diện thông điệp MD2
So sánh MD1 và MD2:
+Nếu MD1 = MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảotính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứngthực)
+Nếu MD1 <>MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửađổi hoặc không thực sự xuất phát từ người gửi
b Kiến trúc chữ kí số RSA
Trang 30Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụng một giải thuật băm (Hashing algorithm) MD5
Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi và giải thuật tạo chữ ký (Signature/ Encryption algorithm) RSA Kết quả chữ ký số (Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa bởigiải thuật RSA (Encryted message digest)
Thông điệp ban đầu (message) được ghép với chữ ký số( Digital signature) tạo thành thông điệp đã được ký (Signed message)
Thông điệp đã được ký (Signed message) được gửi cho người nhận
● Quá trình kiểm tra chữ ký (Bên nhận)
Trang 31Tách chữ ký số RSA và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;
Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trong quá trình ký là MD5)
Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số RSA-> chuỗi đại diện thông điệp MD2
So sánh MD1 và MD2:
+ Nếu MD1 =MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảo
Trang 32Giải thuật RSA có hai khóa:
Khóa công khai (Public key – Kpub ): được công bố rộng rãi cho mọi người và được dùng để thẩm định chữ ký số
Khóa bí mật (Private key – Kpr ): không được chia sẻ được chia cho mọi người và được dùng để ký chữ ký số
Trang 33● Các bước tạo khóa:
B1: Đầu vào là hai SNT p và q
Trang 34băm (hash) dài 128-bit Là một chuẩn Internet (RFC 1321), MD5 đã được dùngtrong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tínhtoàn vẹn của tập tin Một bảng băm MD5 thường được diễn tả bằng một số hệthập lục phân 32 ký tự.
● Thuật toán:
MD5 chuyển một đoạn thông tin chiều dài thay đổi thành một kết quảchiều dài không đổi 128 bit Mẩu tin đầu vào được chia thành từng đoạn 512 bit;mẩu tin sau đó được độn sao cho chiều dài của nó chia chẵn cho 512 Công việcđộn vào như sau: đầu tiên một bit đơn, 1, được gắn vào cuối mẩu tin Tiếp theo
là một dãy các số zero sao cho chiều dài của mẩu tin lên tới 64 bit ít hơn so vớibội số của 512 Những bit còn lại được lấp đầy bằng một số nguyên 64-bit đạidiện cho chiều dài của mẩu tin gốc
Trang 35● Tính chất:
Trang 36Chấp nhập tất cả dữ liệu chuyển vào
2.3.4 Các điểm yếu của chữ kí số RSA (Nguyễn Xuân Phú)
a Điểm yếu của chữ ký nói chung
Sự xuất hiện của chữ ký số và chức năng tiền định của nó, đặc biệt là vaitrò của nó như là một công cụ trong việc xác định tính nguyên gốc, xác định tácgiả, bảo đảm tính toàn vẹn của tài liệu số, đã đóng một vai trò vô cùng quantrọng trong việc xác định địa vị pháp lý của tài liệu số trong giao dịch số Việc
sử dụng chữ ký số trong phần lớn trường hợp là cơ sở khẳng định giá trị pháp lýcủa những văn bản điện tử tương đương với tài liệu giấy Hiện nay, chữ ký số làphương tiện duy nhất để xác nhận giá trị pháp lý của tài liệu điện tử
Như vậy, với sự xuất hiện của chữ ký số, vấn đề giá trị pháp lý của tàiliệu điện tử, có thể coi như đã được giải quyết Việc sử dụng chữ ký số tronggiao dịch cũng có những ưu điểm và bất cập nhất định Dưới đây là những hạnchế của chữ ký số:
Sự lệ thuộc vào máy móc và chương trình phần mềm: chữ ký số là mộtchương trình phần mềm máy tính Để kiểm tra tính xác thực của chữ ký cần có
hệ thống máy tính và phần mềm tương thích
Tính bảo mật không tuyệt đối: Nếu chữ ký bằng tay được thực hiện trêngiấy, được ký trực tiếp và luôn đi kèm với vật mang tin, chữ ký tay không thểchuyển giao cho người khác, thì chữ ký số không như vậy Chữ ký số là một bộmật mã được cấp cho người sử dụng, đây là phần mềm máy tính không phụthuộc vào vật mang tin Chính vì vậy, trở ngại lớn nhất khi sử dụng chữ ký số làkhả năng tách biệt khỏi chủ nhân của chữ ký Nói cách khác, chủ nhân của chữ
ký số không phải là người duy nhất có được mật mã của chữ ký Tồn tại một sốnhóm đối tượng có thể có được mật mã, đó là: bộ phận cung cấp phần mềm; bộphận cài đặt phần mềm, những người có thể sử dụng máy tính có cài đặt phần