ĐỖ QUỐC TRƯỞNG ĐẢM BẢO AN TOÀN THÔNG TIN TRÊN WEB SỬ DỤNG KỸ THUẬT MÃ HÓA ỨNG DỤNG VÀO GỬI NHẬN CÔNG VĂN TÀI LIỆU TRONG HỆ THỐNG MẠNG QUÂN SỰ Chuyên ngành: Khoa học máy tính Mã số chu
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỖ QUỐC TRƯỞNG
ĐẢM BẢO AN TOÀN THÔNG TIN TRÊN WEB SỬ DỤNG KỸ THUẬT MÃ HÓA ỨNG DỤNG VÀO GỬI NHẬN CÔNG VĂN TÀI
LIỆU TRONG HỆ THỐNG MẠNG QUÂN SỰ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2020
Trang 2ĐỖ QUỐC TRƯỞNG
ĐẢM BẢO AN TOÀN THÔNG TIN TRÊN WEB SỬ DỤNG KỸ THUẬT MÃ HÓA ỨNG DỤNG VÀO GỬI NHẬN CÔNG VĂN TÀI
LIỆU TRONG HỆ THỐNG MẠNG QUÂN SỰ
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS PHẠM THẾ QUẾ
Thái Nguyên - 2020
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của chính bản thân, luận văn này hoàn toàn được hình thành và phát triển từ quan điểm của chính cá nhân tôi, dưới sự hướng dẫn chỉ bảo của TS Phạm Thế Quế Các kết quả nghiên cứu trong luận văn là trung thực và chưa được công bố trong các công trình nào khác
Học viên
Đỗ Quốc Trưởng
Trang 4LỜI CẢM ƠN
Để hoàn thành luận văn “Đảm bảo an toàn thông tin trên web sử dụng
kỹ thuật mã hóa ứng dụng vào gửi nhận công văn tài liệu trong hệ thống mạng Quân sự” học viên đã nhận được sự hướng dẫn và giúp đỡ nhiệt tình của nhiều tập thể và cá nhân
Trước hết, học viên xin bày tỏ lòng biết ơn chân thành đến ban lãnh đạo cùng quý thầy cô trong khoa Công nghệ thông tin - Trường Đại học Công nghệ thông tin và truyền thông, Đại học Thái Nguyên đã tận tình dạy dỗ, truyền đạt kiến thức, kinh nghiệm và tạo điều kiện thuận lợi cho học viên trong suốt thời gian học tập và thực hiện đề tài
Đặc biệt, xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng dẫn TS Phạm Thế Quế, người đã gợi cho học viên những ý tưởng về đề tài, đã tận tình hướng dẫn và giúp đỡ để đề tài được thực hiện và hoàn thành
Tôi cũng xin cảm ơn cơ quan, bạn bè đồng nghiệp, gia đình và những người thân đã cùng chia sẻ, giúp đỡ, động viên, tạo điều kiện thuận lợi để tôi hoàn thành tốt nhiệm vụ học tập và hoàn thành bản luận văn
Thái nguyên, ngày tháng… năm 2020
Học viên
Đỗ Quốc Trưởng
Trang 5MỤC LỤC
MỞ ĐẦU 06
Chương 1: TỔNG QUAN VỀ AN TOÀN THÔNG TIN VÀ BẢO MẬT TRÊN WEB 09
1.1 Quá trình phát triển của web 09
1.2 Quá trình phát triển của web 09
1.3 Các hiểm họa đối với an toàn thông tin trên web 09
1.3.1 Tấn công vào vùng ẩn 09
1.3.2 Can thiệp vào tham số trên URL 10
1.3.3 Tấn công dùng cookie 10
1.3.4 Các lỗ hổng bảo mật 10
1.3.5 Cấu hình không an toàn 10
1.3.6 Tràn bộ đệm 10
1.3.7 Tấn công từ chối dịch vụ DoS (Denial of Service) 11
1.4 Các vấn đề bảo mật ứng dụng web 11
1.4.1 Giao thức IPSec 11
1.4.2 Giao thức SSL và TLS 11
1.4.3 Giao thức SET 14
1.4.4 So sánh giữa SET và SSL 16
1.5 An toàn thông tin trong môi trường web 17
1.5.1 Vấn đề an toàn thông tin 17
1.5.2 Chứng chỉ số và cơ chế xác thực 17
1.5.3 Chứng chỉ khóa công khai 21
1.6 Kết luận chương 25
Chương 2: MÃ KHÓA ĐỐI XỨNG, MÃ KHÓA CÔNG KHAI, CHỮ KÝ SỐ TRONG BẢO MẬT GỬI NHẬN CÔNG VĂN TÀI LIỆU GIỮA CÁC ĐƠN VỊ TRONG QUÂN SỰ 26
2.1 Mã khóa đối xứng 26
2.1.1 Định nghĩa 26
Trang 62.1.2 Chuẩn mã hóa dữ liệu DES 27
2.2 Mã khóa bất đối xứng (mã hóa khóa công khai) 32
2.2.1 Giới thiệu chung 32
2.2.2 Hệ mật mã RSA 35
2.2.3 Hàm băm 39
2.3 Chữ ký số 42
2.3.1 Khái niệm 42
2.3.2 Phân loại chữ ký số 43
2.3.3 Một số lược đồ chữ ký cơ bản 46
2.3.4 Quá trình ký và xác thực chữ ký số 51
2.3.5 Các phương pháp tấn công chữ ký điện tử 52
2.4 Bảo mật việc gửi nhận công văn tài liệu trong hệ thống Quân sự 52
2.4.1 Trình tự quản lý công văn tài liệu chuyển đi 53
2.4.2 Kiểm tra, đăng ký và đóng dấu công văn tài liệu 53
2.4.3 Trình tự quản lý công văn tài liệu đến 53
2.5 Kết luận chương 53
Chương 3: XÂY DỰNG CHƯƠNG TRÌNH BẢO MẬT GỬI NHẬN CÔNG VĂN TÀI LIỆU TRONG HỆ THỐNG MẠNG QUÂN SỰ 55
3.1 Hiện trạng về gửi nhận công văn tài liệu ở các đơn vị Quân sự 55
3.2 Bảo đảm an toàn thông tin trong đơn vị Quân sự 57
3.3 Cài đặt chương trình và thử nghiệm 59
3.4 Đáng giá kết quả thử nghiệm chương trình 63
KẾT LUẬN 64
KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN 65
TÀI LIỆU THAM KHẢO 66
Trang 7DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT
Từ viết tắt Tiếng anh Nghĩa tiếng việt
CA Certificate Authority Cơ quan chứng thực chữ ký số
DS Digital Signatures Chữ ký số
DSA Digital Signature
Algorithm
Giải thuật ký điện tử
DES Data Encryption Standard Chuẩn mã hóa dữ liệu
DSS Digital Signature Standard Chuẩn chữ ký số
DoS Denial of Service Tấn công từ chối dịch vụ
FTP File Transfer Protocol Giao thức truyền tập tin
HTML Hypertext Markup
Language Ngôn ngữ đánh dấu siêu văn bản
HTTP Hypertext Transfer
Protocol
Giao thức truyền siêu văn bản
LDAP Lightweight Directory
Access Protocol
Giao thức ứng dụng truy cập các cấu trúc thư mục
RSA Rivest, Shamir and
Adleman Giải thuật mã hóa công khai
PKI Public Key Infrastructure Cơ sở hạ tầng khóa công khai
SHA Secure Hash Algorithm Giải thuật băm an toàn
SSL Secure Socket Layer Giao thức an ninh thông tin
Trang 8Từ viết tắt Tiếng anh Nghĩa tiếng việt
SQL Structured Query Language Ngôn ngữ truy vấn
TCP/IP Transmission Control
Protocol/Internet Protocol
Một hệ thống các giao thức hỗ trợ việc truyền thông tin trên mạng TLS Transport Layer Security Bảo mật tầng giao vận
URL Uniform Resource Locator Định vị tài nguyên thống nhất
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình hoạt động của web 09
Hình 1.2: Sử dụng SSL gửi và nhận trên internet 12
Hình 1.3: Sơ đồ hoạt động của SSL 14
Hình 1.4: Dùng mật khẩu để xác thực máy khách kết nối tới máy dịch vụ 18
Hình 1.5: Chứng thực của máy khách kết nối tới máy dịch vụ 20
Hình 1.6: Sơ đồ hoạt động của Hệ thống cấp chứng chỉ khóa công khai 22
Hình 1.7: Mô hình dây chuyền chứng thực 24
Hình 2.1: Sơ đồ mã hóa khóa đối xứng 26
Hình 2.2: Một vòng của DES 28
Hình 2.3: Hàm f của DES 29
Hình 2.4: Sơ đồ thuật toán tạo các khóa từ K1 đến K16 30
Hình 2.5: Sơ đồ mô tả chi tiết DES 31
Hình 2.6: Gửi nhận tài liệu mã hóa bất đối xứng 33
Hình 2.7: Sơ đồ mô tả chi tiết thuật toán RSA 37
Hình 2.8: Sơ đồ mô tả bản băm thông điệp 39
Hình 2.9: Đường đi đúng của thông tin 40
Hình 2.10: Thông tin bị lấy trộm và đã bị thay đổi trên đường truyền 40
Hình 2.11: Mô hình lược đồ chữ ký khôi phục thông điệp 46
Hình 2.12: Quá trình ký thông điệp 51
Hình 2.13: Mô hình lược đồ chữ ký khôi phục thông điệp 52
Hình 3.1: Sử dụng thiết bị lưu trữ di động để trao đổi tài liệu (USB) 55
Hình 3.2: Sử dụng máy tính kết nối internet để gửi tài liệu 56
Hình 3.3: Chương trình gửi nhận công văn tài liệu đang triển khai 56
Hình 3.4: Giao diện tạo khóa 59
Hình 3.5: Giao diện gửi tài liệu 60
Hình 3.6: Giao diện lựa chọn các chế độ gửi tài liệu 60
Hình 3.7: Giao diện tài liệu đến khi gửi bảo mật và ký số 61
Hình 3.8: Giao diện giải mã tài liệu thành công 61
Hình 3.9: Giao diện xác thực chữ ký tài liệu thành công 62
Hình 3.10: Giao diện xác thực chữ ký tài liệu không thành công 62
Trang 10MỞ ĐẦU
1 Đặt vấn đề
1.1 Sự cần thiết lựa chọn đề tài
Hiện nay tình hình an toàn thông tin số ở nước ta diễn biến phức tạp đe dọa nghiêm trọng đến ứng dụng công nghệ thông tin phục vụ phát triển kinh tế
xã hội và đảm bảo Quốc phòng an ninh Bảo mật và đảm bảo an toàn thông tin
dữ liệu đang nhiều nhà khoa học tập trung nghiên cứu, là một chủ đề rộng có liên quan đến nhiều lĩnh vực, trong thực tế có thể có nhiều phương pháp được thực hiện để đảm bảo an toàn thông tin dữ liệu Ngày nay, với sự phát triển nhanh chóng của hạ tầng truyền thông, người sử dụng dựa trên nền tảng này để truyền các thông tin trên mạng thì các nguy cơ xâm nhập vào các hệ thống thông tin, các mạng dữ liệu ngày càng gia tăng Nhiều chuyên gia đang tập trung nghiên cứu và tìm mọi giải pháp để đảm bảo an toàn, an ninh cho hệ thống, đặc biệt là các hệ thống mạng máy tính trong Quân sự Việc bảo mật cho
hệ thống mạng máy tính có thể thực hiện theo nhiều phương diện, ở nhiều tầng khác nhau, bao gồm từ phương diện kiểm soát truy nhập vật lý vào hệ thống, thực hiện sửa chữa, cập nhật, nâng cấp hệ điều hành cũng như vá mọi lỗ hổng
về an ninh, quản lý các hoạt động gửi nhận công văn và truyền tải văn bản trên mạng (Giám sát qua tường lửa, các bộ định tuyến Router, phát hiện và phòng ngừa sự xâm nhập,…) xây dựng các giải pháp bảo mật ở mỗi phần mềm để quản lý người dùng thông qua việc cấp quyền sử dụng, mật khẩu, mật mã, mã hóa dữ liệu để che giấu thông tin
Trên thực tế hiện nay các chiến lược Quân sự Quốc phòng các phương
án tác chiến, các bí mật về khoa học Quân sự cho đến các công văn tài liệu bí mật, tuyệt mật đều được tạo lập soạn thảo lưu trữ trên các máy tính Do không kiểm soát được việc sử dụng các thiết bị lưu trữ di động như USB, thẻ nhớ, ổ cứng di động hay các thiết bị thu phát sóng như USB 3G, Wifi…nên tất các các tài nguyên thông tin Quân sự đang nằm trên không gian mạng đều có thể bị lộ lọt, bị làm giả, bị chỉnh sửa…Nhận thức được vấn đề nêu trên nên em đã chọn
đề tài: “Đảm bảo an toàn thông tin trên web sử dụng kỹ thuật mã hóa ứng dụng
Trang 11vào gửi nhận công văn tài liệu trong hệ thống mạng Quân sự” Làm luận văn báo cáo tốt nghiệp của mình
1.2 Mục tiêu nghiên cứu của đề tài
Nghiên cứu một số kỹ thuật mã hóa, chữ ký số sử dụng trên môi trường Web Sau đó là xây dựng chương trình ứng dụng vào thực tế đơn vị
2 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài là đảm bảo an toàn dữ liệu gửi trên môi trường Web, các giao thức bảo mật, các thuật toán mã hóa đối xứng (như DES), bất đối xứng (như mật mã khóa công khai RSA), chữ ký số, ứng dụng mã hóa
và chữ ký số trong gửi nhận công văn tài liệu trên hệ thống mạng Quân sự
3 Hướng nghiên cứu của đề tài
- Nghiên cứu các vấn đề mất an toàn thông tin trên môi trường web, cơ
sở khoa học của mã hóa, chữ ký số của các tác giả trong và ngoài nước, các bài báo thông tin trên mạng từ đó trình bày theo ý tưởng của mình và đề xuất các giải pháp bảo mật, an toàn thông tin trong gửi nhận công văn tài liệu qua mạng của các đơn vị trong toàn quân
- Cài đặt đưa vào triển khai thực tiễn tại đơn vị chương trình gửi nhận công văn tài liệu để làm nổi bật tính bảo mật, an toàn thông tin so với các chương trình cũ hiện hành
4 Cấu trúc của luận văn
Luận văn gồm: Phần mở đầu, ba chương chính, kết luận và tài liệu tham khảo cụ thể:
Phần mở đầu: Trình bày lý do chọn đề tài và bố cục của luận văn
Chương 1: Tổng quan về an toàn thông tin và bảo mật trên web
Chương 2 Mã khóa đối xứng, mã khóa công khai, chữ ký số trong bảo mật gửi nhận công văn tài liệu giữa các đơn vị trong Quân sự
Chương 3 Xây dựng chương trình bảo mật gửi nhận công văn tài liệu trong hệ thống mạng Quân sự
Kết luận và hướng phát triển của luận văn
Trang 125 Phương pháp nghiên cứu
- Thu thập, phân tích và tổng các tài liệu, thông tin về các nội dung có
liên quan đến đề tài
- Tìm hiểu về các hiểm họa an toàn thông tin trên web
- Tìm hiểu về hệ mật mã đối xứng, hệ mật mã bất đối xứng, chữ ký số để
mã hóa dữ liệu, xác thực thông tin trong gửi nhận công văn tài liệu
- Phân tích nghiệp vụ gửi nhận công văn hiện tại ở đơn vị để xây dựng chương trình gắn sát với thực tế người sử dụng đảm bảo an toàn thông tin cho tài liệu
6 Ý nghĩa khoa học của đề tài
- Ứng dụng các dịch vụ của web kết hợp với các giải pháp an toàn thông tin, chú trọng nghiên cứu khóa công khai, chữ ký số để xây dựng phần mềm gửi/nhận công văn tài liệu trên hệ thống mạng Quân sự Hệ thống đáp ứng yêu cầu về truyền tài thông tin trong Quân sự: “Kịp thời, chính xác, bí mật, an toàn”, góp phần hiện đại hóa Quân đội
- Cài đặt thành công chương trình đưa vào sử dụng thực tế tại đơn vị
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN VÀ BẢO MẬT TRÊN WEB
1.1 Quá trình phát triển của web
Ý tưởng về web do Tim Berners Lee, ông đã phát minh ra một giao thức
cơ bản cho việc chuyển tải các tài liệu lên mạng là HTTP, ngôn ngữ đánh dấu siêu văn bản HTML để mô tả cấu trúc của một tài liệu Kể từ khi ra đời web đã phát triển không ngừng và đã trải qua các thế hệ web 1.0, web 2.0, web 3.0, web 4.0, web 5.0
1.2 Mô hình hoạt động của web
Từ một trình duyệt, người dùng gõ vào địa chỉ của một trang web, trình duyệt sẽ thực hiện một kết nối tới máy chủ tên miền để chuyển đổi tên miền ra địa chỉ IP tương ứng Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của website có địa chỉ IP này qua cổng 80 Dựa trên giao thức HTTP, trình duyệt sẽ gửi yêu cầu GET đến máy chủ Khi đó máy chủ sẽ xử lý các yêu cầu của người dùng, rồi gửi trả kết quả về cho phía client
Hình 1.1: Mô hình hoạt động của web
1.3 Các hiểm hoạ đối với an toàn web
Trang 141.3.2 Can thiệp vào tham số trên URL
Dùng các câu lệnh SQL để khai thác cơ sở dữ liệu trên server bị lỗi, điển hình nhất là tấn công bằng "SQL INJECT" Khi hacker gửi những dữ liệu (thông qua các form), ứng dụng web sẽ thực hiện và trả về trình duyệt kết quả câu truy vấn hay những thông báo lỗi có liên quan đến cơ sở dữ liệu và từ đó có thể điều khiển toàn bộ hệ thống ứng dụng
1.3.3 Tấn công dùng cookie
Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa trình chủ
và trình duyệt của người dùng chứa thông tin về người dùng đã ghé thăm trang web và những vùng mà họ đã đi qua trong trang web và lưu trên đĩa cứng của máy tính Những người biết tận dụng những thông tin này có thể gây nên những hậu quả nghiêm trọng
1.3.5 Cấu hình không an toàn
Các phần mềm và hệ điều hành trên máy chủ không được cập nhật với bản vá lỗi bảo mật mới nhất, không phân đúng quyền cho các thư mục và tập tin trong trang web, những chức năng quản lý và debug được triển khai không cần thiết, phần mềm web server đăng quá nhiều thông tin trong trang báo lỗi, cấu hình SSL và các hàm mã hóa không đúng
1.3.6 Tràn bộ đệm
Tin tặc gửi một đoạn mã được thiết kế đặc biệt đến ứng dụng, tin tặc có thể làm cho ứng dụng web thi hành bất kỳ đoạn mã nào, điều này tương đương với việc chiếm quyền làm chủ máy server
Trang 151.3.7 Tấn công từ chối dịch vụ DoS (Denial of Service)
Là các cuộc tấn công trên hệ thống mạng nhằm ngăn cản những truy xuất tới các dịch vụ, làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu cầu bằng cách làm tràn ngập số lượng kết nối, quá tải server hoặc ứng dụng chạy trên server
1.4 Các vấn đề bảo mật ứng dụng web
1.4.1 Giao thức IPSec
- IPSec là một tiêu chuẩn nhằm bổ sung an toàn cho Internet, được xác định trong RFC 1825, so với giao thức IP, IPSec thêm vào hai trường mào đầu
IP để cung cấp tính năng xác thực và bảo mật tại lớp IP
- IPSec có hai cơ chế mã hoá là Tunnel Mode và Transport Mode, sử dụng thuật toán mã hoá đối xứng để mã hoá truyền thông Các thực thể tham gia truyền thông sử dụng các khoá chia sẻ được tạo ra bằng thuật toán Diffie-Hellman kèm với việc xác thực để đảm bảo khoá đối xứng được thiết lập giữa những bên truyền thông một cách chính xác
- Trước khi IPSec trao đổi dữ liệu đã xác thực hoặc mã hoá, cả bên gửi
và bên nhận phải thống nhất với nhau về thuật toán mã hoá và khoá (hoặc các khoá) sử dụng
1.4.2 Giao thức SSL và TLS
1.4.2.1 Lịch sử SSL, TLS
Giao thức SSL (Secure Socket Layer) đầu tiên do Netscape phát triển để bảo mật dữ liệu gửi và nhận trên Internet của các giao thức thuộc lớp ứng dụng như HTTP, LDAP hay POP3 Các phiên bản gồm: SSL 1.0, SSL 2.0 - 1994, SSL 3.0 - 1996 SSL nhanh chóng hoàn thiện qua các phiên bản sau đó nó trở thành giao thức phổ biến nhất cho an toàn truyền thông trên WWW
Tổ chức IETF (Internet Engineering Task Force) đã chuẩn hoá SSL và đặt lại tên là TLS (Transport Layer Security) Mặc dù là có sự thay đổi về tên nhưng TSL chỉ là một phiên bản mới của SSL Phiên bản TLS v1.0 (được biết
Trang 16đến như là SSL v3.1)-1999 tuy nhiên các giao thức hoạt động không được đầy
đủ TLS còn được nâng cấp hơn nữa các chức năng qua các phiên bản TLS v1.1 vào năm 2006, TLS v1.2 vào năm 2008, TLS v1.3 vào năm 2018 Tuy nhiên SSL là thuật ngữ được sử dụng rộng rãi hơn
Hình 1.2: Sử dụng SSL gửi và nhận trên internet 1.4.2.2 Nhiệm vụ và kiến trúc SSL
- Nhiệm vụ: Xác thực server, xác thực client, mã hoá kết nối
- Kiến trúc SSL: Gồm 4 giao thức con sau: SSL Handshake, SSL Change Cipher Spec, SSL Alert, SSL Record Layer
- SSL là một lớp (bảo mật) trung gian giữa lớp vận chuyển và lớp ứng dụng SSL được xếp lớp lên trên một dịch vụ vận chuyển định hướng nối kết
và đáng tin cậy, SSL nằm trong tầng ứng dụng của giao thức TCP/IP
- SSL Record Protocol: Sử dụng để trao đổi tất cả các kiểu dữ liệu trong một phiên - bao gồm các thông điệp, dữ liệu của các giao thức SSL khác và dữ liệu của ứng dụng SSL Record Protocol liên quan đến việc bảo mật và đảm bảo toàn vẹn dữ liệu, mục đích là thu nhận những thông điệp mà ứng dụng chuẩn bị gửi, phân mảnh dữ liệu cần truyền, đóng gói, bổ xung header tạo thành một đối tượng bản ghi được mã hoá và có thể truyền bằng giao thức TCP
- Handshake Protocol: Giao thức này được sử dụng để khởi tạo phiên SSL giữa client và server, nhờ giao thức này các bên sẽ xác thực lẫn nhau và thoả thuận các tham số cho phiên làm việc sẽ được thiết lập
Trang 17- Alert Protocol: Sử dụng để mang các thông điệp của phiên liên quan tới việc trao đổi dữ liệu và hoạt động của các giao thức
- Change Cipher Spec Protocol: Chứa một thông điệp mang giá trị 1 làm chuyển trạng thái của một phiên từ “đang chờ” sang “bền vững”
1.4.2.3 Hoạt động của SSL
Khi trình duyệt của một máy khách đến một Website bí mật của một máy chủ, máy chủ gửi một lời chào tới trình duyệt Trình duyệt đáp lại bằng một lời chào Việc tiến hành trao đổi lời chào, hoặc bắt tay cho phép 2 máy tính quyết định các chuẩn mã hoá và nén (mà chúng cùng hỗ trợ)
Trình duyệt máy khách yêu cầu máy chủ đưa ra một chứng chỉ số Máy chủ gửi cho trình duyệt một chứng chỉ đã được công nhận bởi CA Trình duyệt kiểm tra chữ ký số có trên chứng chỉ của máy chủ, dựa vào khoá công khai của
CA, khoá này được lưu giữ trong trình duyệt Hoạt động này xác thực máy chủ thương mại
Máy khách và máy chủ thoả thuận rằng mọi trao đổi phải được giữ bí mật, bởi vì những thông tin này là quan trọng Để thực hiện bí mật, SSL sử dụng mã hoá khoá công khai (không đối xứng) và mã hoá khoá riêng (đối xứng) Thoạt đầu, trình duyệt sinh ra một khoá riêng dùng chung cho cả hai Sau đó, trình duyệt mã hoá khoá riêng bằng khoá công khai của máy chủ Khoá công khai của máy chủ được lưu giữ trong chứng chỉ số, máy chủ gửi chứng chỉ này cho trình duyệt trong quá trình xác thực Một khi khoá được mã hoá, trình duyệt gửi nó cho máy chủ Ngược lại, máy chủ giải mã thông báo bằng khoá riêng của nó và tìm ra khoá riêng dùng chung Tất cả các thông báo giữa máy khách
và máy chủ được mã hoá bằng khoá riêng dùng chung (cũng được biết đến như
là một khoá phiên)
Sau khi kết thúc phiên giao dịch, khoá phiên bị huỷ bỏ Một kết nối mới lại bắt đầu tương tự
Trang 18
Hình 1.3: Sơ đồ hoạt động của SSL
1.4.3 Giao thức SET
1.4.3.1 Giới thiệu tổng quan về SET
SET là một giao thức chuẩn để đảm bảo an toàn cho các giao dịch thẻ tín dụng trong các mạng không an toàn và Internet SET không phải là một hệ thống thanh toán mà là một bộ các giao thức và khuôn dạng an toàn cho phép người sử dụng triển khai cơ sở hạ tầng thanh toán bằng thẻ tín dụng trên một mạng một cách an toàn
1.4.3.2 Nguyên tắc thanh toán bằng thẻ với giao thức SET
Trong giao thức SET, có 5 thực thể gồm: Chủ thẻ, Thương nhân, Ngân hàng thương nhân, Tổ chức cấp thẻ, Cơ quan chứng thực
1.4.3.3 Mô tả một quá trình giao dịch
Bước 1: Chủ thẻ và thương nhân đăng ký với một CA để nhận được
chứng chỉ số
Bước 2: Khách hàng duyệt website và đặt mua hàng với hình thức thanh toán là SET
Trang 19- Thương nhân gửi một bản sao chứng chỉ của mình để khách hàng xác minh rằng đây là một kho hàng hợp lệ Thương nhân cũng gửi chứng chỉ số của ngân hàng thanh toán
- Khách hàng nhận và xác minh chứng chỉ của Thương nhân để khẳng định thương nhân đó có hợp lệ hay không
- Khách hàng gửi thông điệp đặt hàng cho thương nhân bao gồm thông tin đặt hàng, thông tin thanh toán và thông tin để đảm bảo thanh toán chỉ có thể được thực hiện với lệnh cụ thể này Thông tin đặt hàng được mã hoá bằng khoá công khai của Thương nhân, còn thông tin thanh toán được mã hoá bằng khoá công khai của ngân hàng
- Thương nhân xác minh khách hàng và yêu cầu Ngân hàng thương nhân
uỷ quyền thanh toán bằng cách gửi lệnh đặt hàng bao hàm khoá công khai của ngân hàng, thông tin thanh toán của khách hàng và chứng chỉ của Thương nhân
- Ngân hàng thương nhân xác minh và uỷ quyền thanh toán
- Thương nhân xác nhận lệnh và giao hàng và điền uỷ quyền này vào lệnh rồi gửi xác nhận lệnh cho khách hàng, sau đó giao hàng cho khách hàng Thông qua ngân hàng thanh toán yêu cầu ngân hàng của chủ thẻ thanh toán Để khởi động thanh toán, thương nhân tạo và ký một yêu cầu cầm giữ và gửi cho cổng nối thanh toán Do đã có uỷ quyền, cổng nối thanh toán chuyển yêu cầu cầm giữ thành nguồn tiền chuyển vào tài khoản của Thương nhân
- Tổ chức cấp thẻ in hoá đơn thẻ tín dụng cho khách hàng
1.4.3.4 Mã hóa SET
- Sử dụng khóa đối xứng: Gói dữ liệu được mã hóa bằng cách dùng một khóa đối xứng ngẫu nhiên (DES 56 bit) Khóa này được mã hóa với khóa công khai (RSA) trong thông báo của người nhận Kết quả thu được gọi là “Phong
bì số” của thông báo
- Sử dụng khóa bất đối xứng, chữ ký số:
Trang 20+ Mật mã khóa phi đối xứng: Mật mã khóa công khai được dùng để mã
hóa các khóa DES và dùng để xác thực, mỗi lần SET thực hiện xử lý dùng hai
cặp khóa bất đối xứng: một cặp khóa trao đổi để mã hóa và giải mã khóa phiên,
và một cặp “signature” để tạo và xác minh các chữ ký số (160 bit)
+ Chữ ký số: Nhằm bảo đảm tính xác thực và toàn vẹn của thông báo,
người nhận ký số có thể chắc chắn rằng thông báo thật sự đến từ người gửi
+ Chứng chỉ số: Dùng để xác nhận bên tham gia, CA sẽ tạo ra một thông
báo chứa tên của người tham gia và khóa công khai của nó
+ Chữ ký kép: Chữ ký kép liên kết 2 thông điệp dành cho hai đối tượng
nhận khác nhau gồm thông tin đặt hàng OI cho thương nhân và thông tin thanh
toán PI cho ngân hàng
1.4.3.5 Ưu điểm của SET
Đảm bảo tính chính xác của thông tin cho bên gửi và bên nhận, sự toàn
vẹn của thông tin trong quá trình truyền dữ liệu thông qua việc sử dụng chữ ký
số, khó bẻ khoá, bảo vệ tất cả những người tham gia hợp pháp trong giao dịch
và sử dụng một cách an toàn nhất, hạn chế tình trạng từ chối dịch vụ và lừa đảo
qua mạng do có cơ chế xác thực cả hai phía
1.4.3.6 Hạn chế của SET
Yêu cầu phần mềm, phần cứng chuyên dụng với chi phí cao, độ trễ khi
giao dịch do tính phức tạp của các thuật toán mã hóa công khai và thường xuyên
tiến hành giao dịch với các ngân hàng trung gian, hệ thống cồng kềnh và quá
trình giao dịch chậm, các tổ chức tài chính phải trả thêm phí cài đặt và duy trì
PKI cho CA, các giao dịch dựa trên tài khoản như: séc điện tử không hỗ trợ
trong SET
1.4.4 So sánh giữa SET và SSL
- SSL: Không sử dụng cổng nối thanh toán và Thương nhân nhận được
cả thông tin về việc đặt hàng lẫn thông tin thẻ tín dụng, thực hiện xác thực tại
thời điểm khởi đầu của mỗi phiên, không yêu cầu cơ quan chứng thực gốc
Trang 21- SET: Giấu thông tin về thẻ tín dụng của khách hàng đối với Thương nhân và cùng giấu thông tin về đơn hàng đối với các ngân hàng để bảo vệ việc riêng tư, xác thực tại mỗi lần yêu cầu/đáp ứng, Yêu cầu cơ quan chứng thực gốc và kiến trúc phân cấp
1.5 An toàn thông tin trong môi trường web
1.5.1 Vấn đề an toàn thông tin
An toàn thông tin là vấn đề đặc biệt quan trọng cần phải được đảm bảo
an toàn trước việc khai thác thông tin trái phép và cần tập trung vào việc bảo
vệ các tài sản khi chúng được chuyển tiếp giữa client và server phải đảm bảo tính toàn vẹn, an toàn và bao gồm cả tính xác thực Các kỹ thuật đảm bảo cho
an toàn giao dịch điện tử chính là sử dụng các hệ mật mã, các chứng chỉ số và
sử dụng chữ ký số trong quá trình thực hiện các giao dịch
1.5.2 Chứng chỉ số và cơ chế xác thực
1.5.2.1 Chứng chỉ số
Chứng chỉ số là một tệp tin điện tử được sử dụng để nhận diện một cá nhân, một tổ chức,… nó gắn định danh của đối tượng đó với một khóa công khai, giống như bằng lái xe, hộ chiếu hoặc chứng minh thư của một người
Cơ quan chứng thực chữ ký số (Certificate Authority - CA) Đó là một đơn vị có thẩm quyền xác nhận định danh và cấp các chứng chỉ số CA có thể
là một đối tác thứ ba đứng độc lập hoặc các tổ chức vận hành một hệ thống tự cấp các chứng chỉ cho nội bộ của họ Các phương pháp để xác định định danh phụ thuộc vào các chính sách mà CA đặt ra Chính sách lập ra phải đảm bảo việc cấp chứng chỉ số là đúng đắn, ai được cấp và mục đích dùng vào việc gì
Thông thường, trước khi cấp một chứng chỉ số, CA sẽ cung cấp một thủ tục cần thiết phải thực hiện cho các loại chứng chỉ số Trong chứng chỉ số chứa một khóa công khai được gắn với một tên duy nhất của một đối tượng Các chứng chỉ số giúp ngăn chặn việc sử dụng khóa công khai một cách giả mạo Chỉ có khóa công khai được chứng thực bởi chứng chỉ số sẽ làm việc với khóa
Trang 22bí mật tương ứng, nó được sở hữu bởi đối tượng có định danh nằm trong chứng chỉ số Ngoài khóa công khai, chứng chỉ số còn chứa thông tin về đối tượng như: tên để nhận diện, hạn dùng, tên của CA cấp chứng chỉ số, mã số,…Điều quan trọng nhất là chữ ký số phải được chứng thực bởi CA Nó cho phép chứng chỉ số như đã được đóng dấu để người sử dụng có thể dùng các phần mềm ký
số để kiểm tra chính các chữ số đó
1.5.2.2 Cơ chế xác thực
Việc giao tiếp trên mạng điển hình là giữa một máy khách - Client và một máy dịch vụ - Server Việc chứng thực có thể thực hiện ở cả hai phía
Có hai hình thức xác thực máy khách: Xác thực dựa trên tên truy nhập
và mật khẩu, xác thực dựa trên chứng chỉ số
- Xác thực dựa trên tên truy nhập và mật khẩu (Username và Password) Tất cả các máy dịch vụ cho phép người dùng nhập mật khẩu, để có thể truy nhập vào hệ thống Máy dịch vụ sẽ quản lý danh sách các Username, Password này và thực hiện việc xác thực người sử dụng trước khi cho phép họ truy nhập tài nguyên của hệ thống
Hình 1.4: Dùng mật khẩu để xác thực máy khách kết nối tới máy dịch vụ
Khi sử dụng loại xác thực này, người dùng phải nhập mật khẩu cho mỗi máy khách khác nhau, máy dịch vụ sẽ lưu lại dấu vết của các mật khẩu này cho mỗi người dùng Quá trình này được thưc hiện theo các bước sau:
Trang 23Bước 1: Để đáp lại yêu cầu từ máy dịch vụ, máy khách sẽ hiện hộp thoại yêu cầu nhập mật khẩu, người dùng phải nhập mật khẩu cho mỗi máy dịch vụ khác nhau trong cùng một phiên làm việc
Bước 2: Máy khách gửi mật khẩu qua mạng, không cần một hình thức
mã hóa nào
Bước 3: Máy dịch vụ tìm kiếm mật khẩu trong cơ sở dữ liệu
Bước 4: Máy dịch vụ xác định xem mật khẩu đó có quyền truy cập vào những tài nguyên nào của hệ thống
- Xác thực dựa trên chứng chỉ số: Máy khách ký số vào dữ liệu, sau đó gửi cả chữ ký số và chứng chỉ số qua mạng Máy dịch vụ sẽ dùng kỹ thuật mã hóa khóa công khai để kiểm tra chữ ký và xác định tính hợp lệ của chứng chỉ
số Chứng chỉ số có thể thay thế 3 bước đầu của phương pháp chứng thực bằng mật khẩu với cơ chế cho phép người dùng chỉ phải nhập mật khẩu một lần và không phải truyền qua mạng, người quản trị có thể điều khiển quyền truy nhập một cách tập trung
Chứng chỉ số chứng thực cho máy khách kết nối tới máy dịch vụ có dùng giao thức bảo mật SSL truyền thông tin an toàn, máy khách và máy chủ quản
lý các hoạt động mã hóa và giải mã trong một phiên Web an toàn qua mạng, giao thức SSL là một phiên bản an toàn của HTTP, được gọi là HTTPs, SSL
có 2 độ dài của khóa phiên riêng được sinh ra trong mọi giao dịch có mã hóa là
40 bits và 128 bits) Máy khách phải có chứng chỉ số để cho máy dịch vụ nhận diện Sử dụng chứng chỉ số để chứng thực có lợi thế hơn khi dùng mật khẩu Bởi vì nó dựa trên những gì mà người sử dụng có: Khóa bí mật và mật khẩu để bảo vệ khóa bí mật Điều cần chú ý là chỉ có chủ nhân của máy khách mới được phép truy nhập vào máy khách, phải nhập mật khẩu để vào cơ sở dữ liệu của chương trình có sử dụng khóa bí mật
Cả hai cơ chế xác thực trên đều phải truy nhập mức vật lý tới các máy cá nhân Mã hóa khóa công khai chỉ có thể kiểm tra việc sử dụng khóa bí mật tương ứng khóa công khai trong chứng chỉ số Nó không đảm nhận trách nhiệm
Trang 24bảo mật vật lý và mật khẩu sử dụng của khóa bí mật Trách nhiệm này thuộc
về người sử dụng
Quá trình xác thực bằng chứng chỉ số thực hiện như sau:
Bước 1: Phần mềm máy khách quản lý cơ sở dữ liệu về các cặp khóa bí mật và khóa công khai Máy khách sẽ yêu cầu nhập mật khẩu để truy nhập vào
cơ sở dữ liệu này chỉ một lần hoặc theo định kỳ Khi máy khách truy cập vào máy dịch vụ có sử dụng SSL, để xác thực máy khách dựa trên chứng chỉ số, người dùng chỉ phải nhập mật khẩu một lần, họ không phải nhập lại khi cần truy nhập lần thứ hai
Bước 2: Máy khách dùng khóa bí mật tương ứng với khóa công khai ghi trong chứng chỉ số để ký lên dữ liệu được tạo ra ngẫu nhiên cho mục đích chứng thực từ cả phía máy khách và máy dịch vụ Dữ liệu này và chữ ký số vừa thiết lập là một bằng chứng để xác định tính hợp lệ của khóa bí mật Chữ ký số có thể được kiểm tra bằng khóa công khai tương ứng với khóa bí mật đã dùng để
ký và nó là duy nhất trong mỗi phiên làm việc của giao thức SSL
Bước 3: Máy khách gửi cả chứng chỉ số và dữ liệu kèm theo (một phần
dữ liệu được tạo ngẫu nhiên và được ký) qua mạng
Hình 1.5 Chứng thực của máy khách kết nối tới máy dịch vụ
Bước 4: Máy dịch vụ sử dụng chứng chỉ số và dữ liệu kèm theo đó để xác thực người dùng
Trang 25Bước 5: Máy dịch vụ có thể thực hiện tuỳ chọn các nhiệm vụ xác thực khác như lưu trữ và quản lý các chứng chỉ số hoặc xác định xem người sử dụng
có những quyền gì đối với các tài nguyên của hệ thống
1.5.3 Chứng chỉ khóa công khai
1.5.3.1 Giới thiệu chung
Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn
bộ hệ thống bao gồm nhà cung cấp chứng thực số cùng các cơ chế liên quan sử dụng các thuật toán mật mã khóa công khai trong trao đổi thông tin PKI cho phép những người tham gia xác thực nhau và sử dụng thông tin từ các chứng thực khóa công khai để mã hóa và giải mã thông tin trong quá trình trao đổi PKI cho phép các trao đổi thông tin tr ên mạng đảm bảo tính bí mật, toàn vẹn
và xác thực lẫn nhau
Một người muốn dùng kỹ thuật mã hóa khóa công khai để mã hóa một thông điệp và gửi cho người nhận, người gửi cần một bản sao khóa công khai của người nhận Khi một người bất kì muốn kiểm tra chữ ký số thì cần phải có một bản sao khóa công khai của thành viên ký Chúng ta gọi cả hai thành viên
mã hóa thông điệp và thành viên kiểm tra chữ ký số là những người sử dụng khóa công khai Một tổ chức chứng thực đóng vai trò xác nhận khóa công khai phải thực hiện các kỹ thuật đảm bảo dễ dàng phát hiện bất kỳ sự thay đổi phần thông tin nào chứa trong chứng chỉ
Khi khóa công khai được gửi đến cho người sử dụng, thì không cần thiết phải giữ bí mật khóa công khai này Tuy nhiên người dùng khóa công khai phải đảm bảo rằng khóa công khai đang dùng đúng là dành cho thành viên khác (có thể là người nhận thông điệp có chủ định hoặc bộ sinh chữ ký số được yêu cầu) Nếu Hacker dùng khóa công khai khác thay thế khóa công khai hợp lệ, nội dung các thông điệp đã mã hóa có thể bị lộ Vì vậy để truyền thông an toàn giữa người gửi và người nhận thì họ phải có được bản sao khóa công khai của nhau Đây chính là hình thức phân phối khóa công khai thủ công
Tuy nhiên hình thức phân phối khóa công khai kiểu này bị coi là không
Trang 26thực tế khi số lượng người sử dụng trở lên quá lớn hay Các chứng chỉ khóa công khai giúp cho việc phân phối khóa công khai trở nên có hệ thống
Hệ thống cấp chứng chỉ khóa công khai làm việc như sau:
Một CA phát hành các chứng chỉ cho những người nắm giữ cặp khóa công khai và khóa riêng Một chứng chỉ gồm khóa công khai và thông tin để nhận dạng duy nhất chủ thể của chứng chỉ khóa công khai Khi chủ thể của chứng chỉ khóa công khai là một người hoặc một chủ thể hợp pháp nào đấy
Chứng chỉ khóa công khai được CA ký bằng khóa riêng của họ
Hình 1.6: Sơ đồ hoạt động của Hệ thống cấp chứng chỉ khóa công khai
Một khi hệ thống các chứng chỉ được thiết lập, người dùng cần khóa công khai của một trong các thuê bao của CA, họ chỉ cần lấy bản sao chứng chỉ của thuê bao để lấy ra khóa công khai, kiểm tra chữ ký của CA có trên chứng chỉ hay không? Kiểu hệ thống này tương đối đơn giản và kinh tế khi thiết lập trên diện rộng và theo hình thức tự động bởi vì một trong các đặc tính quan trọng của chứng chỉ là: “Các chứng chỉ có thể được phát hành mà không cần phải bảo
vệ thông qua các dịch vụ an toàn truyền thông để đảm bảo sự xác thực và toàn vẹn”
Như vậy không cần giữ bí mật khóa công khai và có nghĩa các chứng chỉ cũng không phải là bí mật Hơn nữa ở đây không đòi hỏi các yêu cầu về tính xác thực và toàn vẹn (chữ ký của cơ quan chứng thực có trong chứng chỉ đã
Trang 27cung cấp tính xác thực và toàn vẹn) Không thể làm giả chứng chỉ khi nó đang được phát hành cho người sử dụng khóa công khai vì chữ ký số của cơ quan chứng thực được kiểm tra chính xác Chính vì thế các chứng chỉ khóa công khai được phát hành theo cách: thông qua các máy chủ, hệ thống thư mục, các giao thức truyền thông khác,…
Lợi ích cơ bản của hệ thống cấp chứng chỉ là: Một người sử dụng khóa công khai có thể có được số lượng lớn khóa công khai của các thành viên khác một cách tin cậy, nhờ khóa công khai của cơ quan chứng thực Lưu ý rằng chứng chỉ chỉ hữu ích khi người dùng khóa công khai tin cậy cơ quan chứng thực là tổ chức đã phát hành các chứng chỉ hợp lệ
1.5.3.2 Mô hình cơ quan chứng thực (CA)
Nếu việc thiết lập một CA (có thể phát hành các chứng chỉ khóa công khai cho tất cả những người nắm giữ cặp khóa công khai và khóa riêng trên thế giới) là khả thi và khi tất cả những người sử dụng khóa công khai tin cậy vào các chứng chỉ được CA này phát hành thì chúng ta giải quyết vấn đề khóa công khai Rất tiếc là điều này không thể thực hiện được Đơn giản vì nó không thực
tế đối với một CA Một CA không thể có đầy đủ thông tin và các mối quan hệ với các thuê bao để có thể phát hành các chứng chỉ để được tất cả những người dùng khóa công khai chấp nhận Vì vậy, chúng ta cần chấp nhận sự tồn tại của nhiều CA trên thế giới Giả thiết khi có nhiều CA, để có được khóa công khai của CA, người dùng có thể tìm và sử dụng một chứng chỉ khác, nó chứa khóa công khai của CA này nhưng lại do CA khác phát hành - khóa công khai của
CA này được người dùng nắm giữ một cách an toàn Như vậy CA phải là một
tổ chức tin cậy để ký và phát hành chứng thực
Tuy vậy, một người sử dụng có thể áp dụng đệ qui chứng chỉ để thu được khóa công khai của các CA và khóa công khai của những người sử dụng từ xa Điều này dẫn đến một mô hình được gọi là dây chuyền chứng thực hoặc đường dẫn chứng thực dựa vào các hệ thống phân phối khóa công khai như sau:
Trang 28Hình 1.7: Mô hình dây chuyền chứng thực 1.5.3.3 Thời hạn tồn tại và việc thu hồi chứng chỉ
Trong hệ thống kỹ thuật, một cặp khóa bất kì có thời gian tồn tại bị giới hạn nhằm kiểm soát các cơ hội thám mã và hạn chế thời gian có thể xảy ra tấn công Vì vậy, một chứng chỉ có thời gian hợp lệ được quy định trước, có ngày giờ bắt đầu và ngày giờ kết thúc Sau khi chứng chỉ số hết hạn, sự ràng buộc giữa khóa công khai và chủ thể của chứng chỉ có thể không còn hợp lệ nữa và chứng chỉ không còn được tin cậy Một người sử dụng khóa công khai không nên dùng chứng chỉ đã hết hạn, trừ khi muốn kiểm tra chữ ký trên tài liệu cũ
Thời hạn kết thúc của chứng chỉ còn dùng để bảo vệ những người dùng chống lại việc tiếp tục sử dụng khóa công khai - thông qua chứng chỉ đã được phát hành trước khi thoả hiệp Có nhiều trường hợp, trong đó một CA muốn huỷ bỏ hoặc thu hồi chứng chỉ trước khi thời hạn sử dụng của nó kết thúc Chứng chỉ bị thu hồi trong trường hợp phát hiện hoặc nghi ngờ có thỏa hiệp khóa riêng tương ứng
Trang 291.6 Kết luận chương
Trong chương này, luận văn đã trình bày tổng quan về sự ra đời và cách thức hoạt động của web, các hiểm họa đối với an toàn thông tin trên web cùng với đó tìm hiểm về các giao thức để bảo đảm an toàn thông tin khi triển khai ứng dụng chạy trên web, tìm hiểu về chứng chỉ số và các cơ chế xác thực giữa máy dịch vụ và máy khách
Trang 30CHƯƠNG 2
MÃ KHOÁ ĐỐI XỨNG, MÃ KHOÁ CÔNG KHAI, CHỮ KÝ SỐ TRONG BẢO MẬT GỬI NHẬN CÔNG VĂN TÀI LIỆU GIỮA CÁC
ĐƠN VỊ QUÂN SỰ 2.1 Mã khóa đối xứng
2.1.1 Định nghĩa
Thuật toán khóa đối xứng là thuật toán trong đó các khóa dùng cho việc
mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia)
Trong rất nhiều trường hợp, khóa để mã hóa và khóa giải mã là giống nhau hoặc chỉ khác nhau nhờ một biến đổi giữa hai khóa Thuật toán này còn
có nhiều tên gọi khác như thuật toán khóa bí mật, thuật toán khóa đơn giản, Thuật toán này yêu cầu người gửi và người nhận phải thỏa thuận một khóa trước khi văn bản được gửi đi, và khóa này phải được cất giấu bí mật Độ an toàn của thuật toán này vẫn phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất kì người nào cũng có thể mã hóa và giải mã các văn bản trong hệ thống mã hóa Sự mã hóa và giải mã của thuật toán được mô tả như sau: EK(P) = C và
DK(C) = P
Hình 2.1: Sơ đồ mã hóa khóa đối xứng
Các vấn đề đối với phương pháp mã hóa đối xứng:
Phương pháp mã hóa đối xứng đòi hỏi người mã và người giải mã phải cùng dùng chung một khóa Khi đó khóa phải được giữ bí mật tuyệt đối, do vậy
ta dễ dàng xác định một khóa nếu biết khóa kia
Hệ mã hóa khóa đối xứng không an toàn nếu khóa bị lộ với xác suất cao Trong hệ này, khoá phải được gửi đi trên kênh an toàn Do vậy, vấn đề quản lý
Trang 31và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ mã hóa khóa đối xứng Người gửi và người nhận luôn phải thống nhất với nhau về khóa Việc
thay đổi khóa là rất khó và dễ bị lộ
2.1.2 Chuẩn mã hóa dữ liệu DES
2.1.2.1 Giới thiệu
DES (Data Encryption Standard) là một thuật toán mã hoá khối (block algorithm), nó mã hoá một khối dữ liệu 64 bits bằng một khoá 56 bits Một khối bản rõ 64 bits đưa vào thực hiện, sau khi mã hoá, dữ liệu ra là một khối bản mã
64 bits Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá
Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹ thuật thay thế và hoán vị bản rõ dựa trên khoá, đó là các vòng lặp DES sử dụng 16 vòng lặp áp dụng cùng một kiểu kết hợp các kỹ thuật trên khối bản
rõ
Thuật toán này chỉ sử dụng các phép số học và logic thông thường trên các số 64 bits, vì vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện về công nghệ phần cứng lúc bấy giờ Ban đầu, sự thực hiện các phần mềm kiểu này rất thô sơ, nhưng ngày nay thì việc đó đã tốt hơn và với đặc tính lặp đi lặp lại của thuật toán đã tạo nên ý tưởng sử dụng chip với mục đích đặc biệt này
2.1.2.2 Mô tả thuật toán DES
DES mã hóa một xâu bits x của bản rõ độ dài 64 bằng một khóa 56 bits Bản mã nhận được cũng là một xâu bits có độ dài 64
Thuật toán thực hiện theo 3 giai đoạn
+ Với bản rõ cho trước x, một xâu bits x0 sẽ được xây dựng bằng cách hoán vị các bits của x theo phép hoán vị cố định ban đầu IP Ta viết:
x0 = IP(X) = L0R0, trong đó L0 gồm 32 bits đầu và R0 là 32 bits cuối + Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính LiRi, 1
i 16 theo qui tắc sau:
Li = Ri-1
Trang 32Ri = Li-1 f(Ri-1, Ki)
Trong đó ký hiệu phép hoặc loại trừ của hai xâu bit (cộng theo modulo 2) f là một hàm mà ta sẽ mô tả ở sau, còn K1, K2, , K16 là các xâu bits độ dài 48 được tính như hàm của khoá K (trên thực tế mỗi Ki là một phép chọn hoán vị bits trong K) K1, , K16 sẽ tạo thành bảng khoá Một vòng của phép mã hoá được mô tả trên hình 2.1
+ Áp dụng phép hoán vị ngược IP -1 cho xâu bit R16L16, ta thu được bản
mã y Tức là y = IP -1 (R16L16) Hãy chú ý thứ tự đã đảo của L16 và R16
Hình 2.2: Một vòng của DES
Hàm f có hai biến vào: biến thứ nhất A là xâu bits độ dài 32, biến thứ
hai J là một xâu bits độ dài 48 Đầu ra của f là một xâu bits độ dài 32
Các bước thực hiện như sau:
- Biến thứ nhất A được mở rộng thành một xâu bits độ dài 48 theo một hàm mở rộng cố định E E(A) gồm 32 bits của A (được hoán vị theo cách cố định) với 16 bits xuất hiện hai lần Tính E(A) J và viết kết quả thành một chuỗi 8 xâu 6 bits = B1B2B3B4B5B6B7B8
Trang 33- Dùng 8 bảng S1, S2, …, S8 (được gọi là các hộp S) Với mỗi Si là một bảng 4*16 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bits có
độ dài 6 (Ký hiệu Bi = b1b2b3b4b5b6), ta tính Si(Bi) như sau: Hai bit b1b6 xác định biểu diễn nhị phân của hàng r của Si (0 r 3) và 4 bit (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Si (0 c 15) Khi đó Si(Bi) sẽ xác định phần tử Si(r, c), phần tử này viết dưới dạng nhị phân là một xâu bits có độ dài 4 (Bởi vậy, mỗi Si có thể coi là một hàm mã mà đầu vào là một xâu bits
có độ dài 2 và một xâu bits có độ dài 4) Bằng cách tương tự tính các Ci = Si(Bi),
1 i 8
- Xâu bits C = C1C2 C8 có độ dài 32 bits được hoán vị theo cách hoán
vị cố định P Xâu kết quả là P(C) được xác định là f(A,J)
- (Hàm f được mô tả trong hình 2.3 Chủ yếu nó gồm một phép thế (sử dụng hộp S), tiếp sau đó là hoán vị P)
Hình 2.3: Hàm f của DES
Trang 34- Sau cùng ta mô tả việc tính toán bảng khoá từ khoá K Trên thực tế, K
là một xâu bits độ dài 64, trong đó 56 bits là khoá và 8 bit để kiểm tra tính chẵn
lẻ nhằm phát hiện sai Các bit ở các vị trí 8, 16, …, 64 được xác định sao cho mỗi byte chứa một số lẻ các số “1” Bởi vậy một sai sót đơn lẻ có thể phát hiện được trong nhóm 8 bits Các bits kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá
- Với một khoá K 64 bits cho trước, ta loại bỏ các bits kiểm tra tính chẵn
lẻ và hoán vị các bits còn lại của K theo phép hoán vị PC-1
Hình 2.4: Sơ đồ thuật toán tạo các khóa từ K1 đến K16
Trang 35Hình 2.5: Sơ đồ mô tả chi tiết DES