ĐẠI HỌC THÁI NGUYÊN
TRƯỜ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
ĐẠI HỌC THÁI NGUYÊN
TRƯỜ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Ự
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
LỜ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
LỜ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
i
MỤ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
ii
2.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
iii
DANH 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ố
Digital Signature Giải thuật ký điện tử DSA Algorithm
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
Hypertext Markup HTML Ngôn ngữ đánh dấu siêu văn bản Language
Hypertext Transfer Giao thức truyền siêu văn bản HTTP Protocol
Lightweight Directory Giao thức ứng dụng truy cập các LDAP Access Protocol cấu trúc thư mục
Rivest, Shamir and RSA Giải thuật mã hóa công khai Adleman
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
iv
Từ viết tắt Tiếng anh Nghĩa tiếng việt
SQL Structured Query Language Ngôn ngữ truy vấn
Một hệ thống các giao thức hỗ trợ Transmission Control TCP/IP việc truyền thông tin trên mạng Protocol/Internet Protocol
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
v
DANH 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
6
MỞ ĐẦ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
7
và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
8
5. 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ị.
9
CHƯƠ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
1.3.1. Tấn công vào vùng ẩn
Dựa vào chức năng "View Source" của trình duyệt mà có thể biết được
thông tin về các phiên làm việc của client do đó có thể tìm ra sơ hở của trang
web mà ta muốn tấn công và từ đó có thể truy cập vào hệ thống của máy chủ...
10
1.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.4. Các lỗ hổng bảo mật
Hiện nay các lỗ hổng được phát hiện ra ngày càng nhiều về hệ điều hành,
máy chủ web, và các phần mềm của các hãng khác... Tuy khi phát hiện ra được
và có bổ sung các bảng path nhưng các khách hàng không cập nhật thường
xuyên nên là cơ hội cho các hacker tấn cô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.
11
1.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
12
đế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.
13
- 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ự.
14
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.
15
- 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ố:
16
+ 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.
17
- 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
18
bí 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:
19
Bướ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
20
bả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.
21
Bướ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
22
thự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ỉ đã
23
cung 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:
24
Hì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.
25
1.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.
26
CHƯƠ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ý
27
và 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
28
Ri = 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.
29
- 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
30
- 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.
Ta viết: PC - 1(K) = C0D0
- Với thay đổi từ 1 đến 16 :
Ci = LSi(Ci-1) , Di = LSi(Di-1)
Và Ki = PC-2(CiDi). LSi thể hiện sự dịch (sang trái) 1 hoặc 2 bits
phụ thuộc vào giá trị của i: Dịch 1 vị trí nếu i = 1, 2, 9 hoặc 16 và dịch 2 vị trí
trong các trường hợp còn lại. PC-2 là một hoán vị cố định khác được mô tả trên
hình 2.4 như sau:
Hình 2.4: Sơ đồ thuật toán tạo các khóa từ K1 đến K16
31
Bản rõ (Plaintext)
Bản mã (Ciphertext)
Hình 2.5: Sơ đồ mô tả chi tiết DES
2.1.2.3 Giải mã DES
Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hóa cùng
một khối. Chỉ có sự khác nhau đó là các khóa phải được sử dụng theo thứ tự
ngược lại. Nghĩa là, nếu các khóa mã hóa cho mỗi vòng là k1, k2, k3, …, k15, k16
thì các khóa giải mã là k16, k15, …, k3, k2, k1.
Ví dụ: Cho K = 12695BC9B7B7F8
Z = 0123456789ABCDEF,
32
Ở đây các số được viết theo cơ số 16 (hexadecimal), mỗi ký tự thay cho
4 bits.
Thực hiện thuật toán lập mã ở trên ta thu được bản mã:
x = 85E813540F0AB405 và thực hiện thuật toán giải mã x ta lại thu
được bản rõ Z.
2.1.2.4. Ứng dụng của DES
Một ứng dụng quan trọng của DES là trong giao dịch Ngân hàng là DES
được dùng để mã hoá các số định danh cá nhân (PIN) và việc chuyển tài khoản
bằng máy rút tiền tự động (ATM).
2.1.2.5. Các cơ chế hoạt động của DES
Thuật toán DES mã hóa đoạn tin 64 bits thành đoạn tin mã hóa 64 bits.
Nếu mỗi khối 64 bits được mã hóa một cách độc lập thì ta có chế độ mã hóa
ECB (Electronic Code Book). Có hai ch ế độ khác của mã hóa DES là CBC
(Cipher Block Chaining) và CFB (Cipher Feedback), nó làm cho m ỗi đoạn tin
mã hóa 64 bits phụ thuộc vào các đoạn tin trước đó thông qua phép toán XOR.
Các thuật toán mã hóa đối xứng có một số trở ngại không thuận tiện khi
hai người muốn trao đổi các thông tin bí mật cần phải chia sẻ khóa bí mật. Khóa
cần phải được trao đổi theo một cách thức an toàn, mà không phải bằng các
phương thức thông thường vẫn dùng để liên lạc. Điều này thông thường là bất
tiện và mật mã khóa công khai (hay khóa bất đối xứng) được đưa ra như là một
giải pháp thay thế.
2.2. Mã khóa bất đối xứng (mã hóa khóa công khai)
2.2.1. Giới thiệu chung
Trong mật mã hóa khóa công khai có hai khóa được sử dụng, là khóa
công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân), trong đó
khóa công khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã (cũng
có thể thực hiện ngược lại). Rất khó để có thể thu được khóa bí mật từ khóa
công khai. Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công
33
khai của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắc chắn rằng
chỉ có họ có thể giải mã các thông điệp được mã hóa bằng khóa đó.
Hình 2.6: Gửi nhận tài liệu mã hóa bất đối xứng
Quy trình mã hóa bất đối xứng như sau:
- Bên nhận sẽ tạo ra một cặp public key và private key. Người này giữ
lại private key cho riêng mình và cất cẩn thận, còn public key thì chuyển cho
bên gửi.
- Bên gửi sử dụng public key để mã hóa dữ liệu, sau đó gửi file đã mã
hóa lại cho bên nhận.
Bên nhận lúc này sẽ sử dụng private key đã lưu khi nãy để giải mã dữ
liệu và sử dụng.
Các thuật toán khóa công khai thông thường dựa trên các vấn đề toán học
với độ khó NP. Ví dụ RSA, dựa trên độ khó của bài toán phân tích ra thừa số
nguyên tố. Vì lý do nào đó, các hệ thống mật mã hóa lai ghép được sử dụng
trong thực tế; khóa được trao đổi thông qua mật mã khóa công khai, và phần
còn lại của thông tin được mật mã hóa bằng cách sử dụng thuật toán khóa đối
xứng (điều này về cơ bản là nhanh hơn). Mật mã hóa đường cong elip là một
dạng thuật toán khóa công khai có thể có một số ưu điểm hơn so với các hệ
thống khác.
34
Mật mã khóa công khai cũng cung cấp cơ chế cho chữ ký số, là cách xác
thực với độ bảo mật cao (giả thiết cho rằng khóa bí mật được đảm bảo giữ an
toàn) rằng thông điệp mà người nhận đã nhận được là chính xác được gửi đi từ
phía người gửi mà họ yêu cầu. Các chữ ký như vậy (theo luật định hay được
suy diễn mặc định) được coi là chữ ký số tương đương với chữ ký thật trên các
tài liệu được in ra giấy. Sử dụng hợp thức các thiết kế có chất lượng cao và các
bổ sung khác tạo ra độ an toàn cao, làm cho chữ ký số vượt qua phần lớn các
chữ ký thật về mức độ thực của nó (khó bị giả mạo hơn). Các chữ ký số là trung
tâm trong các hoạt động của hạ tầng khóa công cộng (PKI) và rất nhiều hệ
thống an ninh mạng (ví dụ các mạng riêng ảo VPN,…). Giống như mật mã hóa,
các thuật toán lai ghép thông thường được sử dụng trong thực tế, thay vì ký trên
toàn bộ chứng từ thì thường ký trên các văn bản đại diện (là văn bản nhận được
từ chứng từ ban đầu sau khi sử dụng các thuật toán băm) .
Mật mã khóa công khai cũng cung cấp nền tảng cho các kỹ thuật khóa
thỏa thuận xác thực mật khẩu và kỹ năng kiểm chứng mật khẩu. Điều này là
quan trọng khi xét theo phương diện của các chứng minh rằng việc xác thực chỉ
bằng mật khẩu sẽ không đảm bảo an toàn trên mạng chỉ với khóa mật mã đối
xứng và các hàm băm.
Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật
trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để
mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là
không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.
Hệ thống mật mã khóa công khai có thể sử dụng với các mục đích:
- Mã hóa: Giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải
mã được.
- Tạo chữ ký số: Cho phép kiểm tra một văn bản có phải đã được tạo với
một khóa bí mật nào đó hay không.
- Thỏa thuận khóa: Cho phép thiết lập khóa dùng để gửi nhận tài liệu và
truyền tải văn bản mật giữa 2 bên.
35
Thông thường, các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối
lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi
điểm mà chúng mang lại khiến cho mật mã hóa khóa công khai được áp dụng
trong nhiều ứng dụng bảo mật của thực tiễn.
Về khía cạnh an toàn, các thuật toán mật mã khóa bất đối xứng cũng
không khác nhiều với các thuật toán mã khóa đối xứng. Có những thuật toán
được dùng rộng rãi, có thuật toán chủ yếu trên lý thuyết; có thuật toán vẫn được
xem là an toàn, có thuật toán đã bị phá vỡ... Cũng cần lưu ý là những thuật toán
được dùng rộng rãi không phải lúc nào cũng đảm bảo an toàn. Một số thuật
toán có những chứng minh về độ an toàn với những tiêu chuẩn khác nhau.
Nhiều chứng minh gắn việc phá vỡ thuật toán với những bài toán nổi tiếng vẫn
được cho là không có lời giải trong thời gian đa thức. Nhìn chung, chưa có thuật
toán nào được chứng minh là an toàn tuyệt đối (như hệ thống mật mã sử dụng
một lần). Vì vậy, cũng giống như tất cả các thuật toán mật mã nói chung, các
thuật toán mã khóa công khai vẫn cần phải được sử dụng một cách thận trọng
tuy cặp khóa bí mật và khóa công khai được tạo ra bởi các tính toán rất phức
tạp.
Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là bảo mật: Một
văn bản được mã hóa bằng khóa công khai của một người sử dụng thì chỉ có
thể giải mã với khóa bí mật của người đó. Các thuật toán tạo chữ ký số khóa
công khai còn dùng để nhận thực. Người gửi thông điệp có thể mã hóa văn bản
và gửi kèm chữ ký số được tạo ra khóa bí mật của mình. Nếu người nhận thông
điệp có thể kiểm tra chữ ký số bằng khóa công khai của người gửi thì giải mã
được văn bản gửi kèm có thể tin chắc chắn rằng văn bản thực sự là của người
gửi gắn với khóa công khai của người đó.
2.2.2. Hệ mật mã RSA
2.2.2.1. Sự ra đời của hệ mật mã RSA
Hệ mật mã RSA là hệ mật mã khoá công khai được phát minh bởi Ron
Rivest, Adi Shamir và Len Adleman, được công bố năm 1977. RSA được dùng
36
để bảo mật dữ liệu trên đường truyền, bảo đảm tính riêng tư và xác thực của tài
liệu, bảo đảm phiên đăng nhập truy cập từ xa.
RSA đáp ứng đầy đủ yêu cầu bảo mật thông tin nên được sử dụng trong
nhiều phần mềm bảo mật của hệ thống thư điện tử và hệ thống quản lý, điều
hành, tác nghiệp. Hiện tại hệ mật mã RSA đủ để đảm bảo tính riêng tư và xác
thực dữ liệu số. Để đảm bảo an toàn thông tin trong quá trình gửi/nhận công
văn tài liệu và truyền tải văn bản qua mạng thì sử dụng hệ mật mã RSA là giải
pháp tốt và an toàn nhất hiện nay.
2.2.2.2. Mô tả thuật toán
- Sinh khoá:
+ Chọn ngẫu nhiên hai số nguyên tố lớn p và q, với p # q
+ Tính n = p*q
+ Ta có (n) = (p-1)(q-1) là hàm Euler của n
+ Chọn một số tự nhiên e sao cho 1 < e < (n) và e nguyên tố cùng nhau
với (n)
+ Ta tìm được duy nhất d = e-1 mod (n)
+ Khoá công khai là
- Mã hóa:
+ Để gửi dữ liệu cần mã hóa thì người gửi thực hiện:
+ Thu nhận khóa công khai của người nhận
+ Biến đổi thông điệp muốn gửi M thành những số nguyên m < n theo
một hàm có thể đảo ngược (Từ m có thể xác định được M) được thỏa thuận từ
trước.
+ Tính c = me mod n
- Giải mã:
+ Để khôi phục lại thông điệp M ban đầu, người nhận thực hiện các bước
theo thứ tự sau:
37
+ Tính m = cd mod n với 0 ≤ m ≤ n
+ Thực hiện phép biến đổi ngược từ số m thành chuỗi ký tự tương ứng
chưa thông tin M ban đầu.
Hình 2.7: Sơ đồ mô tả chi tiết thuật toán RSA
Ví dụ
Sinh khoá:
+ Chọn 2 số nguyên tố: p = 61, q = 53
+ Tính n = 61.53 = 3233
+ Ta có (n) = (p-1)(q-1) = 60.52 = 3120
+ Chọn e = 17
+ Tính d = e-1 mod 3120 bằng giải thuật Euclid mở rộng ta có d = 2753.
+ Khoá công khai
+ Khoá bí mật
Mã hoá:
Để mã hóa văn bản có giá trị m = 123, ta thực hiện phép tính:
38
c = me mod n = 12317 mod 3233 = 855
Giải mã:
Để giải mã văn bản có giá trị 855, ta thực hiện phép tính:
cd = 8552753 mod 3233 = 123
Cả hai phép tính trên đều có thể được thực hiện hiệu quả thuật toán bình
phương liên tiếp
2.2.2.3. Tốc độ RSA
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán
mã hóa đối xứng khác.
2.2.3. Hàm băm (Hash function)
Chúng ta có thể thấy rằng chữ ký số nói chung chỉ cho phép ký các bức
điện nhỏ. Thông thường khi sử dụng, chữ ký được sinh ra có độ dài lớn hơn so
với văn bản ký, do vậy kích thước văn bản sau khi ký sẽ tăng lên.
Một cách đơn giản để giải bài toán này là chia các bức điện dài thành
nhiều đoạn, sau đó ký lên các đoạn đó độc lập nhau. Điều này cũng tương tự
như mã hóa một chuỗi dài bản rõ bằng cách mã hoá mỗi ký tự bản rõ độc lập
nhau sử dụng cùng một bản khoá. Biện pháp này có một số vấn đề trong việc
tạo ra các chữ ký số. Trước hết với một bức điện dài, ta kết thúc bằng một chữ
ký rất lớn.
+ Thứ nhất: Với một thông điệp có kích thước a, thì sau khi ký kích thước
của chữ ký sẽ là 2a (trong trường hợp sử dụng DSS).
+ Thứ hai: Với các chữ ký “an toàn” thì tốc độ chậm vì chúng dùng nhiều
phép tính số học phức tạp như số mũ modulo.
+ Thứ ba là kết quả sau khi ký: Nội dung của thông điệp có thể bị xáo
trộn các đoạn với nhau, hoặc một số đoạn có thể bị mất mát, trong khi người
nhận cần phải xác minh lại thông điệp. Vì vậy mục tiêu chính là cần phải bảo
vệ tính toàn vẹn của thông điệp. Giải pháp cho các vấn đề vướng mắc đến chữ
ký số là dùng thông điệp đại diện và Hàm băm để trợ giúp cho việc ký số.
39
2.2.3.1. Khái niệm thông điệp đại diện
Mỗi thông điệp tùy ý sau khi sử dụng thuật toán băm sẽ được thu gọn
thành bản băm duy nhất - được gọi là thông điệp đại diện - có kích thước cố
định (128 bits, 256 bits, 512 bits).
2.2.3.2. Khái niệm hàm băm
Hàm băm là bất kỳ hàm nào có thể được sử dụng để ánh xạ dữ liệu có
kích thước tùy ý thành các giá trị kích thước cố định. Các giá trị được trả về
bởi một hàm băm được gọi là giá trị băm, mã băm, hoặc đơn giản là băm.
Hình 2.8: Sơ đồ mô tả bản băm thông điệp
- Đặc tính quan trọng của hàm băm
Hàm băm h là hàm một chiều (one – way hash) có các đặc tính sau:
+ Với thông điệp đầu vào X thu được bản băm Y = h(X) là duy nhất.
+ Nếu dữ liệu trong thông điệp X thay đổi hay bị xóa để thành thông
điệp X’ thì h(X’) ≠ h(X). Cho dù chỉ có một sự thay đổi nhỏ hay chỉ là xóa đi
một bits dữ liệu của thông điệp thì giá trị băm cũng vẫn thay đổi. Điều này có
nghĩa là: Hai thông điệp khác nhau thì giá trị hàm băm hoàn toàn khác nhau.
+ Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm.
Nghĩa là với thông điệp X thì dễ dàng tính được Y = h(X), nhưng lại không thể
tính suy ngược lại được X nếu chỉ biết hàm băm h(X).
2.2.3.3. Tính chất của hàm băm
Việc đưa hàm băm h vào dùng trong sơ đồ chữ ký số không làm giảm sự
an toàn của sơ đồ chữ ký số vì nó là bản tóm lược văn bản - văn bản đại diện
40
cho thông điệp được ký chứ không phải là thông điệp gốc. Điều cần thiết là
hàm băm cần thỏa mãn một số tính chất sau để tránh bị giả mạo:
Tính chất 1: Hàm băm h không va chạm yếu: h là hàm băm không có
tính va chạm yếu nếu khi cho trước một bức điện X, không thể tiến hành về
mặt tính toán để tìm ra một bức điện X’ ≠ X mà h(X’) = h(X).
Xét một kiểu tấn công: Thông tin cần phải truyền từ A đến B (Hình 2.9).
Nhưng trên đường truyền, thông tin bị lấy trộm và thay đổi (Hình 2.10)
Hình 2.9: Đường đi đúng của thông tin
Hình 2.10: Thông tin bị lấy trộm và đã bị thay đổi trên đường truyền
Người A gửi cho B (X, Y) với Y = sigK(h(X)). Nhưng trên đường truyền,
thông tin bị lấy trộm. Hacke bằng cách nào đó tìm được một bản thông điệp
X’ có h(X’) = h(X) mà X’≠ X. Sau đó Hacker đưa X’ thay thế X rồi truyền tiếp
cho B. Người B nhận được và thông tin vẫn được xác thực là đúng đắn.
Tính chất 2: Hàm băm h không va chạm mạnh: h là hàm băm không có
tính va chạm mạnh nếu không có khả năng tính toá n để tìm ra hai bức thông
điệp X và X’ mà X ≠ X’ và h(X’) = h(X).
Xét kiểu tấn công sau: Đầu tiên, Hacker tìm được hai bức thông điệp X’
và X (với X’≠ X) mà có h(X’) = h(X) (ta coi X là hợp lệ, còn X’ là giả mạo).
Tiếp theo kẻ này đưa cho A và thuyết phục A ký vào bản tóm lược h(X)
để nhận được Y. Khi đó (X’, Y) là bức thông điệp giả mạo nhưng hợp lệ.
41
Tính chất 3: Hàm băm h là hàm một chiều: h là hàm một chiều nếu cho
trước một bản tóm lược của văn bản Y thì không thể thực hiện về mặt tính toán
để tìm ra thông điệp ban đầu X sao cho h(X) = Y.
Xét kiểu tấn công sau: Việc giả mạo chữ ký trên bản tóm lược Y thường
xảy ra với các sơ đồ chữ ký số. Giả sử, Hacker tính được chữ ký trên bản tóm
lược Y, sau đó hắn tìm được bản thông điệp X’ được tính ngược từ bản đại diện
Y = h(X). Hacker thay thế bản thông điệp X hợp lệ bằng bản thông điệp X’ giả
mạo nhưng lại có Y = h(X’). Và ký số trên bản đại diện cho X’ bằng đúng chữ
ký hợp lệ. Như vậy thì (X’, Y) là bức điện giả mạo nhưng hợp lệ.
2.2.3.4. Ý nghĩa của việc dùng thông điệp đại diện và hàm băm
Hàm băm trợ giúp cho các sơ đồ chữ ký số nhằm giảm dung lượng của
dữ liệu cần thiết để truyền qua mạng (lúc này chỉ còn bao gồm dung lượng của
thông điệp gốc và 256 bits (sử dụng MD) hay 320 bits (sử dụng SHA) của chữ
ký số được ký trên văn bản đại diện của thông điệp gốc), điều này tương đương
với việc giảm thời gian truyền tin qua mạng.
Hàm băm thường kết hợp với chữ ký số để tạo một loại chữ ký điện tử
vừa an toàn (không thể cắt/dán) vừa dùng để kiểm tra tính toàn vẹn của thông
điệp. Sau đây là sơ đồ tạo chữ ký số và sơ đồ xác thực chữ ký số có sử dụng
hàm băm.
2.2.3.5. Giải thuật băm SHA
SHA (Secure Hash Algorithm hay thuật giải băm an toàn) là năm thuật
giải được chấp nhận bởi FIPS dùng để chuyển một đoạn dữ liệu nhất định thành
một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao. 5 thuật toán
đó bao gồm:
- SHA-1 (trả lại kết quả dài 160 bit)
- SHA-224 (trả lại kết quả dài 224 bit)
- SHA-256 (trả lại kết quả dài 256 bit)
- SHA-384 (trả lại kết quả dài 384 bit)
- SHA-512 (trả lại kết quả dài 512 bit)
42
2.3. Chữ ký số
2.3.1. Khái niệm
- Chữ ký điện tử (electronic signature) được tạo lập dưới dạng từ, chữ,
số, ký hiệu, âm thanh hoặc các hình thức khác bằng phương tiện số, gắn liền
hoặc kết hợp một cách logic với thông điệp số, có khả năng xác nhận ng
ười ký thông điệp dữ liệu và xác nhận sự chấp thuận của người đó đối với nội
dung thông điệp đã ký. Chữ ký điện tử cũng giống như chữ viết tay, tức là chữ
ký điện tử được dùng để xác nhận lời hứa hay cam kết của người nào đó và sau
đó không thể chối bỏ được. Chữ ký điện tử không đòi hỏi phải sử dụng giấy
mực mà nó gắn đặc điểm nhận dạng của người ký vào một bản cam kết nào đó.
Như vậy, chữ ký điện tử sẽ chứng thực được định danh người gửi và bảo vệ sự
toàn vẹn dữ liệu.
- Chữ ký điện tử cần đảm bảo các chức năng: Xác định được người chủ
của một dữ liệu nào đó và xác thực dữ liệu đó có bị thay đổi hay không.
- Chữ ký số (digital signature) là một dạng chữ ký điện tử (là tập con của
chữ ký điện tử) được tạo ra bằng sự biến đổi một thông điệp dữ liệu sử dụng hệ
mật mã khóa công khai, theo đó người có thông điệp dữ liệu ban đầu và khóa
công khai của người ký có thể xác thực được chữ ký số vừa ký.
Chữ ký của một người trên tài liệu thường đặt ở cuối văn bản để xác nhận
nguồn gốc hay trách nhiệm của người ký với tài liệu đó. Với tài liệu đã được
“số hóa” nếu chữ ký đặt ở cuối văn bản thì việc sao chép “ chữ ký số” là dễ
dàng và không thể phân biệt bản gốc với bản sao vì chữ ký số là các số 0, 1. Vì
vậy một chữ ký số đặt ở cuối “ tài liệu số” không thể chịu trách nhiệm đối với
toàn bộ nội dung văn bản, mà chữ ký số phải được ký trên từng bit của dữ liệu
đó. Nhưng chữ ký số cũng không thể ký trên bất kỳ tài liệu nào với độ dài tùy
ý, vì như vậy chữ ký số sẽ có độ dài rất lớn. Với tài liệu dài người ta ký trên
văn bản đại diện của nó. Văn bản đại diện của tài liệu được tạo ra bởi hàm băm.
Với chữ ký thông thường thì nó là một phần của tài liệu, nhưng chữ ký
số không gắn theo kiểu vật lý vào thông điệp. Đối với chữ ký thông thường
43
người ta kiểm tra bằng cách so sánh với chữ ký đúng và dĩ nhiên phương pháp
này cũng không phải là an toàn nó có thể giả mạo. Đối với chữ ký số, người ta
có thể kiểm tra thông qua thuật toán kiểm tra công khai. Bởi vì chữ ký số là
một chuỗi số liên quan đến thông điệp và do vậy khi thông điệp thay đổi thì
chữ ký số cũng thay đổi, chính vì vậy chữ ký số đảm bảo tính toàn vẹn của
thông điệp, chữ ký số không thể sử dụng lại và cũng không thể giả mạo được.
Hai thuộc tính không thể làm giả được và xác thực không chối bỏ của người ký
chữ ký số là nguyên tắc để đảm bảo an toàn cho các hệ thống sử dụng chữ ký
số trong truyền tải thông tin và dữ liệu qua mạng.
Định nghĩa: Một sơ đồ chữ ký số là một bộ 5 (M, MS, K, S, V) trong đó:
M: Tập hữu hạn các thông điệp.
MS: Tập hữu hạn các chữ ký
K: Không gian khóa, là tập hữu hạn các khóa.
+ Với mỗi k K tồn tại một thuật toán ký sigk’ S và một thuật toán xác
minh verk'' V. Mỗi sigk: M MS và verk: M x MS {true, false} là các hàm
thỏa mãn:
Một sơ đồ chữ ký số gồm có 2 phần: Thuật toán ký và thuật toán xác
minh
x M, y MS thì: Verk’’(x;y) = { true nếu y = sigk′(x) false nếu y = sigk′(x)
Với mỗi k K, sigk’ và verk’’ là các hàm có thời gian đa thức, trong đó
verk là hàm công khai xác minh chữ ký, còn sigk là hàm mật để ký.
2.3.2. Phân loại chữ ký số
Có 2 loại: chữ ký kèm thông điệp và chữ ký khôi phục thông điệp.
2.3.2.1. Lược đồ chữ ký kèm thông điệp
Loại lược đồ chữ ký số này được dùng phổ biến trong thực tế. Chúng
dựa vào các hàm băm mật mã và ít bị tấn công giả mạo hơn.
44
- Lược đồ chữ ký số mà yêu cầu phải có thông điệp đầu vào cho thuật
toán chứng thực chữ ký được gọi là lược đồ chữ ký kèm thông điệp. Một số
lược đồ chữ ký kèm thông điệp (bản rõ) như: Lược đồ chữ ký EL Gamal, lược
đồ chữ ký DSA.
- Thuật toán sinh khóa
+ Mỗi người dùng sử dụng một khóa bí mật để ký thông điệp và một
khóa công khai tương ứng để người dùng khác trong hệ thống dùng trong quá
trình xác thực chữ ký số.
+ Mỗi người dùng A chọn một khóa k = (k’, k’’) € K, Sigk’ là thuật toán
ký với mỗi khóa k (mỗi Sigk’ là một ánh xạ 1-1 từ Mh tới MS).
+Thuật toán Verk’’ tương ứng là một ánh xạ từ Mh xMS đến tập hợp {True,
False} sao cho:
Verk’’(m; s) = { true nếu sigk′(m) = s false nếu sigk′(m) ≠ s
Với m € Mh, s € MS: ở đây m = h(P) với P € M. Verk’’ được gọi là thuật
toán kiểm thử để chứng thực chữ ký, h là hàm một chiều từ M đến Mh (Mh là
tập hợp các giá trị băm).
Với khóa k = (k’, k’’), trong đó khóa công khai của A là k’’, khóa bí mật
là k’.
- Thuật toán sinh chữ ký và chứng thực chữ ký
Mỗi người dùng A ký một thông điệp P € M với chữ ký s. Một người
dùng B bất kỳ có thể xác minh chữ ký đó có đúng là của A hay không?
Quá trình sinh chữ ký
+ Chọn một chữ ký k = (k’, k’’) € K
+ Tính m = h(P) và s = Sigk’(m)
+ Chữ ký của A cho thông điệp P là s, P và s được gửi đến B.
Quá trình xác nhận chữ ký
+ Xác thực đúng khóa công khai của A là k’’
+ Tính m = h(P) và u = Verk’’ (m, s).
45
+Chấp nhận chữ ký của A nếu u = true
2.3.2.2. Lược đồ chữ ký khôi phục thông điệp
Thông điệp có thể được khôi phục từ chính bản thân chữ ký. Trong thực
tế lược đồ ký kiểu này thường dùng để ký cho các thông điệp
- Định nghĩa: Lược đồ chữ ký khôi phục thông điệp là lược đồ chữ ký số
không đòi hòi hỏi phải có thông điệp gốc làm đầu vào để chứng thực chữ ký
mà thông điệp gốc sẽ được phục hồi từ chính chữ ký đó. Một số lược đồ chữ
ký tự khôi phục bản rõ như: Lược đồ chữ ký RSA.
- Thuật toán sinh khóa: Mỗi người dùng tạo một khóa bí mật dùng để ký
thông điệp và một khóa công khai tương ứng để người dùng khác trong hệ thống
dùng xác thực chữ ký.
+ Mỗi người dùng A chọn một khóa k = (k’, k’’) € K Sigk’ là thuật toán
ký với mỗi khóa k (mỗi Sigk’ là một ánh xạ 1-1 từ Mh tới MS).
R là một hàm sao cho R(M) = MR và có nghịch đảo là R-1
+ Thuật toán Verk’’ tương ứng là một ánh xạ từ MS đến MR sao cho:
Verk’’* sigk’ là một ánh xạ trên MR, k € K. Verk’’ là thuật toán chứng thực chữ
ký.
+ Cặp khóa k = (k’, k’’), trong đó khóa công khai của A là k’’, khóa bí
mật của A là k’.
- Thuật toán sinh chữ ký và xác nhận chữ ký
Thuật toán sinh chữ ký: Người dùng A ký một thông điệp P € M với
chữ ký s. Một người dùng B bất kỳ có thể xác thực chữ ký và phục hồi thông
điệp P từ chữ ký đó.
+ Chọn khóa k = (k’, k’’) € K,
+ Tính m = R(P) và s = Sigk’(m). (R, R-1 là các hàm được công khai).
+ Chữ ký của A lên thông điệp P là s, và sau đó A gửi s cho B.
Thuật toán xác nhận chữ ký:
Người dùng B thực hiện các bước sau để xác minh chữ ký:
+ Xác thực đúng khóa công khai của A là k’’.
46
+ Tính m = Verk’’(s).
+ Xác thực m = MR (Nếu m € MR thì từ chối chữ ký).
+ Phục hồi thông điệp P từ m bằng cách tính R-1(m).
Hình 2.11: Mô hình lược đồ chữ ký khôi phục thông điệp
2.3.3. Một số lược đồ chữ ký cơ bản
2.3.3.1. Lược đồ chữ ký RSA
Lược đồ chữ ký cơ bản nhất và có ứng dụng rộng rãi, đáng tin cậy nhất
hiện nay đó là lược đồ chữ ký RSA. Đặc điểm của các sơ đồ chữ ký này là mức
độ tính toán phụ thuộc hoàn toàn vào độ lớn của giải thuật giải quyết các bài
toán nhân số nguyên - bài toán lũy thừa. Sơ đồ chữ ký bao gồm cả hai loại kèm
thông điệp và khôi phục thông điệp, đây là sơ đồ có ứng dụng thực tế rộng rãi
nhất dựa trên công nghệ sử dụng khóa công khai.
- Thuật toán sinh khoá:
Người dùng A tạo khoá công khai và khoá bí mật theo phương thức sau:
Sinh ra hai số nguyên tố lớn ngẫu nhiên p và q
Tính n = p*q và (n) = (p-1)*(q-1)
Chọn e là số tự nhiên ngẫu nhiên sao cho 1 < e < (n) và nguyên
tố cùng nhau với (n)
Ta tìm được duy nhất d e-1 mod (n) nhờ giải thuật Euclid
mở rộng.
Khoá công khai của A là
- Thuật toán sinh chữ ký:
Người dùng A ký lên thông điệp m theo trình tự như sau:
47
+ Số hóa thông điệp Y thành các số nguyên m € [0, n-1]; m = R (Y).
+ Tính s = md mod n
Chữ ký của A lên thông điệp m là s, gửi s cho B
- Thuật toán xác nhận chữ ký:
Để xác thực chữ ký s là của A, B làm như sau:
+ Xác thực khóa công khai của A là
+ Tính m =se mod n
+ Xác nhận chữ ký nếu m € MR, ngược lại chối bỏ chữ ký của A.
+ Khôi phục lại Y = R-1(m).
- Tóm tắt lược đồ ký theo RSA
+ Cho n = p.q với p và q là các số nguyên tố
+ Cho P = A = Zn K = {(n, p, q, a, b), n = pq, p và q là nguyên tố, ab 1
mod (n)}. Các giá trị n, b là công khai
+ Với mỗi k = {(n, p, q, a, b)} Ta định nghĩa:
Sigk(x) = xa mod n
Verk(x,y) = true x b (mod n) với x, y Zn
2.3.3.2. Lược đồ chữ ký DSA (Digital Signature Standard)
- Giải thuật sinh khoá
Mỗi một người dùng tạo một khoá công khai và một khoá bí mật tương
ứng theo cách sau:
+ Chọn một số nguyên tố q sao cho 2159 < q < 2160
+ Chọn một số nguyên tố p sao cho 2511+64t < p < 2512+64t ở đó t [0,8]
+ Chọn g là một số nguyên bất kỳ nhỏ hơn p, α = g(p-1)/q mod p
+ α khác 1
+ Chọn số nguyên a sao cho : 1 ≤ a ≤ q - 1
+ Tính β = αa mod p
+ Khoá riêng của người dùng là a, khoá công khai là bộ (p,q, α, β)
- Giải thuật sinh chữ ký
Khi cần sinh chữ ký cho một thông điệp Z, thực thể phải làm những việc
48
như sau:
+ Chọn một số nguyên mật k, 0 < k < q - 1
+ Tính γ = (αk mod p) mod q.
+ Tính k-1 mod q.
+ Tính δ = k-1(h(Z) + aγ) mod q
+ Chữ ký của người dùng cho Z là cặp (δ, γ)
- Giải thuật xác nhận chữ ký
Khi cần xác nhận chữ ký cho một thông điệp m thực thể phải làm những
việc như sau:
+ Dành lấy khoá công khai của thực thể ký (p,q, α, β)
+ Nếu điều kiện : 0 < δ, γ < q không thoả mãn thì từ chối chữ ký
+ Tinh w = δ-1 mod q và h(Z)
+ Tính e1 = w.h(Z) mod q và e2 = γw mod q
+ Tính v = (αe1 βe2 mod p) mod q
+ Nếu v = γ thì chấp nhận chữ ký ngoài ra thì từ chối.
Ví dụ:
Giả sử q = 101, p = 78q + 1 = 7879.
3 là phần tử nguyên thuỷ trong Z7879 nên ta có thể lấy: α = 378 mod 7879
= 170
Giả sử a = 75, khi đó β = αa mod 7879 = 4576
Muốn kí bức điện x = 1234, ta chọn số ngẫu nhiên k = 50, vì thế có k-1
mod 101 = 99. Khi đó có :
γ = (17050 mod 7879) mod 101 = 2518 mod 101 = 94
Và δ = (1234 +75.94)99 mod 101 = 96
Chữ kí (94, 97) trên bức điện 1234 được xác minh bằng các tính toán
sau: 96-1 mod 101 =25
e1 = 1234.25 mod 101 = 45
e2 = 94.25 mod 101 = 2
49
Có (17045 457627 mod 7879) mod 101 = 2518 mod 101 = 94 vì thế chữ
kí hợp lệ.
- Tóm tắt lược đồ chữ ký số DSA
Giả sử p là số nguyên tố 512 bits sao cho bài toán logarit rời rạc trong
Z p là khó giải.
Cho q là số nguyên tố 160 bits là ước của (p-1)
Giả thiết α Z p là căn bậc q của 1 modulo p
Cho p Zp và a = Zq× Zp và định nghĩa:
A = {(p, q, α, a, β) : β ≡ αa (mod p)}
Các số p, q, α và β là công khai, có a mật.
Với K = (p, q, α , a, β ) và với một số ngẫu nhiên (mật) k ,1 ≤ k ≤ q-1,
ta định nghĩa:
Quá trình ký số sigk (x, k) = (γ, δ) trong đó
γ = ( αk mod p) mod q và
δ = (x +aγ)k-1 mod q với x Zp và γ, δ Zq
Quá trình xác minh sẽ hoàn toàn sau các tính toán :
e1 = xδ-1 mod q
e2 = γδ-1 mod q
verk(x, g, δ) = true (αe1βe2 mod p) mod q = γ
- Các tính chất của chữ ký số DSA
+ Ðộ an toàn: Độ an toàn của chữ ký phụ thuộc vào độ an toàn của khoá
bí mật. Người sử dụng phải bảo vệ khóa bí mật của mình. Nếu khoá bí mật đảm
bảo an toàn tuyệt đối thì chữ ký cũng có mức độ an toàn hầu như tuyệt đối. Mặt
khác, với khoá công khai, chữ ký DSA là an toàn khi từ khoá công khai không
thể tìm được khoá bí mật, ta có:
50
Cho p là một số nguyên tố rất lớn, phương trình toán học sau là không
thể giải được: y = ax mod p (1) với y, a = g(p-1)/q và khác 1. Ðể xem xét điều này
trước hết chúng ta nhận xét phương trình có nghiệm x duy nhất thuộc khoảng
[1,q]. Thật vậy giả sử có hai nghiệm l à x1 và x2 và ta có:
y = ax1 mod p và y = ax2 mod p.
Không mất tính tổng quát giả sử x1 < x2 từ đây suy ra:
ax1 chia hết cho p (không thoả mãn do p nguyên tố)
Tồn tại k nhỏ hơn p sao cho ak ≡ 1 (mod p). Với giá trị a có dạng
a = g(p-1)/q thì điều này không thể xảy ra khi g < p.
Song trên thực tế, nhiều khi một bức điện được dùng làm một tài liệu đối
chứng, chẳng hạn như bản hợp đồng hay một di chúc và vì thế cần xác minh
chữ ký sau nhiều năm kể từ lúc bức điện được ký. Bởi vậy, điều quan trọng là
có phương án dự phòng liên quan đến sự an toàn của sơ đồ chữ ký khi đối mặt
với hệ thống mật mã.
+ Nhược điểm: Nhược điểm lớn nhất về mặt kỹ thuật là kích thước
modulo p bị cố định = 512 bits. Nhiều người muốn kích thước này có thể thay
đổi được nếu cần, có thể dùng kích cỡ lớn hơn. Ðáp ứng những đòi hỏi này,
NIST đã chọn tiêu chuẩn cho phép có nhiều cỡ modulo, nghĩa là cỡ modulo bất
kì chia hết cho 64 trong phạm vi từ 512 đến 1024 bits.
Một nhược điểm nữa là DSA là chữ ký được tạo ra nhanh hơn việc thực
hiện xác minh nó. Trong khi đó, nếu d ùng RSA làm sơ đồ chữ ký với số mũ
xác minh công khai nhỏ hơn (chẳng hạn = 3) thì có thể xác minh nhanh hơn
nhiều so với việc lập chữ ký. Ðiều này dẫn đến hai vấn đề liên quan đến những
ứng dụng của sơ đồ chữ ký.
Nhiều khi việc ký chỉ thực hiện một lần, song việc xác minh chữ ký số
lại thực hiện nhiều lần trong nhiều năm. Ðiều này lại gợi ý nhu cầu có thuật
toán xác minh nhanh hơn. Sự đáp ứng của NIST đối với yêu cầu về số lần xác
51
minh chữ ký thực ra không có vấn đề gì ngoài yêu cầu về tốc độ, miễn là cả hai
quá trình có thể thực hiện đủ nhanh.
2.3.4. Quá trình ký và xác thực chữ ký số
Hình 2.12: Quá trình ký thông điệp
2.3.4.1. Quá trình ký số:
- Tính toán chuỗi đại diện của thông điệp sử dụng một giải thuật băm
- Chuỗi đại diện được ký sử dụng khóa bí mật của người gửi và 1 giải
thuật tạo chữ ký kết quả tạo chữ ký số.
- Thông điệp ban đầu được ghép với chữ ký số tạo thành thông điệp đã
được ký
- Thông điệp đã được ký được gửi cho người nhận
2.3.4.2. Quá trình kiểm tra chữ ký số
- 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 của thông điệp gốc sử dụng giải thuật băm MD1 (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:
52
+ Nếu MD1 =MD2 -> chữ ký kiểm tra thành công. Thông điệp đảm bảo
tí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ứng
thự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.
Hình 2.13: Sơ đồ xác nhận chữ ký số
2.3.5. Các phương pháp tấn công chữ ký điện tử
- Total break (tấn công toàn bộ): Hacker không những tính được thông
tin về khóa bí mật (private key) mà còn có thể sử dụng một thuật toán sinh
chữ ký tương ứng tạo ra được chữ ký cho thông điệp.
- Selective forgery (giả mạo chữ ký có lựa chọn): Hacker có khả năng
tạo ra được một tập hợp các chữ ký cho một lớp các thông điệp nhất định, các
thông điệp này được ký mà không cần có khóa bí mật của người ký.
- Existential forgery (giả mạo với thông điệp biết trước): Hacker có khả
năng giả mạo chữ ký cho một thông điệp, Hacker không thể hoặc có rất ít khả
năng kiểm soát được thông điệp giả mạo này.
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ự
53
2.4.1. Trình tự quản lý công văn tài liệu chuyển đi
- Kiểm tra, đăng ký và đóng dấu văn bản.
- Chuyển và theo dõi văn bản đi.
- Lưu và đính chính văn bản đi.
2.4.2. Kiểm tra, đăng ký và đóng dấu công văn tài liệu
- Tất cả văn bản do cơ quan, đơn vị ban hành phải được đưa đến Văn thư
để đăng ký, quản lý.
- Văn thư có trách nhiệm kiểm tra lần cuối về thể thức và kỹ thuật trình
bày văn bản để phát hiện những sai sót và thông báo cho đơn vị hoặc người
soạn thảo văn bản sửa chữa trước khi làm thủ tục ban hành.
- Ghi số, thời gian ban hành văn bản
- Vào Sổ Đăng ký văn bản đi hoặc nhập thông tin vào cơ sở dữ liệu máy
tính theo Biểu ghi đăng nhập thông tin văn bản.
- Đóng dấu của cơ quan, đơn vị và dấu độ mật, khẩn (nếu có).
2.4.3. Trình tự quản lý công văn tài liệu đến
- Tiếp nhận văn bản đến: Tài liệu, văn bản, đơn, thư gửi đến cơ quan,
đơn vị bất kỳ từ nguồn nào đều phải chuyển đến Văn thư đăng ký, quản lý.
- Đăng ký văn bản đến:
- Trình, chuyển giao văn bản đến.
- Giải quyết văn bản đến.
- Theo dõi, đôn đốc và kiểm tra việc giải quyết văn bản đến.
- Thời hạn giải quyết văn bản đến.
2.5. Kết luận chương
Trong chương 2, luận văn đã trình bày những vấn đề mang tính cơ sở
khoa học, nền tảng cho việc sử dụng chữ ký số vào việc bảo mật và xác thực
thông tin. Chúng ta cũng đã nghiên cứu hệ mật mã là DES, RSA. Khái niệm
chữ ký số, phân loại, một số sơ đồ chữ ký hiện đang được sử dụng phổ biến.
Với chữ ký thông thường, nó là một phần không thể thiếu được của tài
liệu và kiểm tra bằng cách so sánh nó với các chữ ký xác thực khác, tuy nhiên
54
chữ ký số không gắn theo kiểu vật lý vào tài liệu và có thể kiểm tra nhờ một
thuật toán kiểm tra công khai. Trong chương tiếp theo sẽ tìm hiểu về việc ứng
dụng các thuật toán mã hóa và chữ ký số trong gửi nhận công văn tài liệu và
truyền tải văn bản qua mạng sao cho đảm bảo an toàn, an ninh thông tin của
các đơn vị trong Quân đội hiện nay.
55
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Ự
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ự
- Hiện nay văn bản hành chính trong các cơ quan, đơn vị Quân sự gồm:
Quyết định, chỉ thị, quy chế, quy định, thông báo, hướng dẫn, chương trình, kế
hoạch, nghị quyết, dự án, tờ trình, đề án, phương án, hợp đồng, báo cáo, biên
bản, công điện, công văn hành chính, bản ghi nhớ, bản cam kết, bản thoả thuận,
giấy chứng nhận, giấy ủy quyền, giấy công tác, giấy giới thiệu, giấy nghỉ phép,
giấy mời, giấy ủy nhiệm, giấy biên nhận hồ sơ, phiếu gửi, phiếu trình, phiếu
giải quyết văn bản, phiếu trình giải quyết công việc, phiếu chuyển, phiếu báo,
thư công đều được soạn thảo trên các máy tính. Việc trao đổi các tài liệu này
đôi khi sử dụng các thiết bị lưu trữ di động như USB, thẻ nhớ, ổ cứng di động.
Hình 3.1: Sử dụng thiết bị lưu trữ di động để trao đổi tài liệu (USB)
- Cán bộ chiến sĩ còn sử dụng máy tính kết nối internet để soạn thảo công
văn tài liệu và gửi tài liệu mật giữa các cá nhân với nhau làm lộ lọt thông tin
Quân sự ra ngoài và mất kiểm soát.
- Máy tính cá nhân, thiết bị lưu trữ di dộng, lưu trữ tài liệu Quân sự còn
mang ra ngoài đơn vị để làm việc và sửa chữa mà tài liệu chưa được mã hóa
gây mất an toàn thông tin.
56
Hình 3.2: Sử dụng máy tính kết nối internet để gửi tài liệu
- Hệ thống gửi nhận công văn tài liệu đang triển khai ở một số đơn vị vẫn
chưa có hệ thống gửi bảo mật và ký số mà chỉ gửi tài liệu theo cách thông
thường. Các hệ thống chạy trên nền web vẫn chưa cài đặt các giao thức bảo mật
cần thiết.
Hình 3.3: Chương trình gửi nhận công văn tài liệu đang triển khai
57
3.2. Bảo đảm an toàn thông tin trong đơn vị Quân sự
Bảo đảm an toàn thông tin là một nội dung cơ bản của công tác bảo vệ
an ninh Quân đội, có vai trò rất quan trọng trong việc bảo đảm an ninh, an toàn
cho các hoạt động của toàn quân, góp phần giữ vững an ninh quốc gia, trật tự,
an toàn xã hội. Trong tình hình hiện nay, công tác bảo vệ bí mật quân sự càng
phải được thực hiện nghiêm.
Để đảm bảo an toàn thông tin, tránh lộ, lọt thông tin bí mật Nhà nước, bí
mật quân sự và các thông tin quân sự quốc phòng, các đơn vị Quân đội đã triển
khai thực hiện đồng bộ nhiều giải pháp quan trọng. 100% cơ quan, đơn vị đảm
bảo sự lãnh đạo tuyệt đối, trực tiếp về mọi mặt của cấp ủy Đảng đối với hoạt
động trao đổi, lưu trữ, sử dụng thông tin quân sự quốc phòng.
Các đơn vị quán triệt sâu sắc và thực hiện nghiêm túc các chỉ thị, quy
định của Đảng, Nhà nước, Quân ủy Trung ương, Bộ Quốc phòng, Tổng Cục
Chính trị về công tác đảm bảo an toàn thông tin, trọng tâm là Thông tư số
202/2016 của Bộ Quốc phòng quy định về bảo đảm an toàn thông tin trong
Quân đội nhân dân Việt Nam; Chỉ thị số 03 của Bộ Quốc phòng về tăng cường
công tác bảo đảm thông tin về một số vấn đề tổ chức tác chiến không gian
mạng; Quy chế quản lý, cung cấp và sử dụng dịch vụ Internet trong quân đội…
Công tác giáo dục chính trị, tư tưởng để mỗi cán bộ, chiến sĩ hiểu rõ âm
mưu, thủ đoạn của kẻ thù trong tình hình mới, nhất là nhận thức rõ tính chất
phức tạp của cuộc đấu tranh về tư tưởng, văn hóa trên không gian mạng được
đẩy mạnh ở các cơ quan, đơn vị. Qua đó, góp phần nâng cao nhận thức của cán
bộ, chiến sĩ, quân nhân chuyên nghiệp về vị trí, vai trò, tầm quan trọng của an
toàn thông tin trong cơ quan, đơn vị.
Công tác đảm bảo an ninh, an toàn thông tin mạng được 100% đơn vị,
cán bộ, chiến sĩ thực hiện chặt chẽ, nghiêm túc, đúng quy định. Việc giám định,
kiểm tra tiêu chuẩn an ninh, kỹ thuật của các thiết bị, phương tiện chuyên ngành
(phần cứng, phần mềm) được thực hiện nghiêm túc, đúng quy trình trước khi
58
đưa vào sử dụng, đảm bảo an toàn tuyệt đối hệ thống trang thiết bị phục vụ mục
đích quân sự.
100% máy tính quân sự tại các đơn vị không kết nối mạng Internet, không
dùng các thiết bị có khả năng kết nối mạng Internet như DCOM, 3G, 4G, Wifi,
thiết bị di động thông minh.
Việc trao đổi thông tin, dữ liệu giữa máy tính quân sự và máy tính
Internet được thực hiện thông qua máy tính trung gian có triển khai giải pháp
bảo đảm an toàn thông tin và sử dụng đĩa CD, DVD để sao chép các tập tin.
Việc tạo lập, lưu trữ, chuyển nhận thông tin quân sự trên mạng Internet
được kiểm soát chặt chẽ và phải được sự đồng ý của lực lượng bảo vệ an ninh
và người chỉ huy, đồng thời sử dụng giải pháp bảo mật phù hợp.
Tài liệu, văn bản của đơn vị, cơ quan được phân loại 3 mức độ mật (tối
mật, tuyệt mật, mật) trước khi lưu hành. Tài liệu đóng dấu mật tuyệt đối không
được phô tô, sao chép, chụp lại dưới mọi hình thức. Việc sử dụng, lưu trữ, trao
đổi tài liệu giữa các phòng, ban, đơn vị được thực hiện chặt chẽ, đúng quy trình,
quy định, đảm bảo đúng người, đúng việc.
Cán bộ, quân nhân sử dụng các trang mạng xã hội cho mục đích cá nhân
đều tuân thủ, chấp hành nghiêm các quy định của pháp luật về bảo vệ bí mật
Nhà nước, bí mật quân đội, không tiết lộ thông tin cá nhân và cơ quan, đơn vị.
Cán bộ, quân nhân thực hiện quản lý chặt chẽ tài khoản cá nhân trên
mạng xã hội, thường xuyên thay đổi mật khẩu để tránh bị kẻ xấu lợi dụng chiếm
đoạt, đăng tải, phát tán thông tin trái quy định của pháp luật, xuyên tạc chống
phá Đảng, nhà nước, quân đội.
Thường xuyên áp dụng các biện pháp về công nghệ, kỹ thuật như cài đặt
tường lửa, các phần mềm diệt virus, phần mềm xóa dữ liệu an toàn, phần mềm
mã hóa dữ liệu, phần mềm quét lỗi hệ thống và các thiết bị bảo đảm an toàn
phần cứng của hệ thống máy tính để đảm bảo an toàn thông tin trong đơn vị
quân đội. Tăng cường công tác quản lý bí mật quân sự trên các phương tiện
thông tin và truyền thông, nhất là quản lý việc sử dụng dịch vụ internet và các
59
thiết bị công nghệ thông tin. Các đơn vị quản lý chặt chẽ thông tin trên mạng,
không để cán bộ, nhân viên, chiến sĩ truy cập vào các trang mạng có nội dung
phản động, sai trái; đưa các thông tin, hình ảnh có nội dung liên quan đến bí
mật quân sự hoặc “nhạy cảm” trên các phương tiện truyền thông, mạng xã hội.
Khi phát hiện thông tin, hình ảnh liên quan đến bí mật quân sự trên mạng xã
hội, cần nhanh chóng báo cáo cấp trên và phối hợp chặt chẽ với cơ quan chức
năng để có biện pháp xử lý kịp thời. Việc trao đổi, cung cấp thông tin cho báo
chí, xuất bản, cơ quan nghiên cứu khoa học và các phương tiện thông tin đại
chúng trong và ngoài Quân đội phải thực hiện theo đúng quy định của Bộ Quốc
phòng, không được để lộ, lọt thông tin bí mật quân sự.
Thực hiện hiệu quả công tác bảo đảm an toàn thông tin là cơ sở quan
trọng để chủ động phòng ngừa, ngăn chặn, đấu tranh làm thất bại âm mưu, thủ
đoạn phá hoại của các thế lực thù địch, bảo đảm an ninh, an toàn các hoạt động
của Quân đội, góp phần giữ vững an ninh quốc gia, trật tự, an toàn xã hội trong
sự nghiệp xây dựng và bảo vệ Tổ quốc.
3.3. Cài đặt chương trình và thử nghiệm
Chương trình thử nghiệm được xây dựng bằng ngôn ngữ lập trình PHP
chạy với chương trình tạo máy chủ Web Xampp. Quá trình gửi công văn tài
liệu, tại máy client chọn file tài liệu bất kỳ sau đó tiến hành quá trình mã hoá
và ký công văn tài liệu sử dụng thuật toán mã hoá RSA, dữ liệu sau khi mã hoá
và ký sẽ gửi đến server. Người nhận phải sử dụng khóa bí mật của mình để giải
mã đối với tài liệu công văn gửi bảo mật thì mới đọc được.
- Tạo khóa để sử dụng chức năng gửi nhận bảo mật và ký số
Hình 3.4: Giao diện tạo khóa
60
- Lựa chọn đối tượng nhận công văn tài liệu nhập thông tin gửi
Hình 3.5: Giao diện gửi tài liệu
- Chọn file tài liệu cần gửi và lựa chọn đúng kiểu gửi bảo mật hoặc gửi
ký số để xác thực thông tin.
Hình 3.6: Giao diện lựa chọn các chế độ gửi tài liệu
61
- Tài liệu nhận được yêu cầu phải giải mã mới đọc được
Hình 3.7: Giao diện tài liệu đến khi gửi bảo mật và ký số
Hình 3.8: Giao diện giải mã tài liệu thành công
62
- Nếu công văn tài liệu nguyên vẹn không bị chỉnh sửa sẽ có thông báo
chữ ký trùng khớp với người gửi.
Hình 3.9: Giao diện xác thực chữ ký tài liệu thành công
- Nếu công văn tài liệu bị chỉnh sửa khi xác thực chữ ký sẽ báo không
hợp lệ.
Hình 3.10: Giao diện xác thực chữ ký tài liệu không thành công
63
3.4. Đáng giá kết quả thử nghiệm chương trình
Nắm bắt được yêu cầu phải bảo mật khi truyền tải văn bản trong hệ thống
mạng cục bộ và gửi nhận công văn tài liệu trong thực tế của các cơ đơn vị trong
Quân đội, tác giả đã lựa 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 vào gửi nhận công văn tài liệu trong hệ thống
mạng Quân sự ". Trong quá trình xây dựng chương trình triển khai vào thực tế
đã đạt được một số kết quả như sau:
- Đi sâu tìm hiểu các vấn đề bảo mật nền tảng đó là mã hóa khóa bí mật
(đại diện là DES), mã hóa khóa công khai (đại diện là RSA).
- Nghiên cứu về chữ ký số, các lược đồ chữ ký số và phân loại các lược
đồ chữ ký số, hạ tầng khóa công khai, chứng chỉ số.
- Xây dựng thành công chương trình gửi nhận công văn tài liệu trong đơn
vị. Đã triển khai vào thực tế thay thế cho cách gửi nhận file qua các thiết bị lưu
trữ di dộng tăng cường tính bảo mật.
- Xác thực được nguồn tài liệu gửi đi từ ai, chứng thực của người gửi qua
phần gửi chữ ký số.
- Đảm bảo được an toàn thông tin giữa người gửi và người nhận.
Bên cạnh kết quả đạt được chương trình mới dừng lại ở bản Demo chưa
xây dựng hết các nghiệp vụ trong gửi nhận công văn tài liệu đang diễn ra tại
đơn vị mình cũng như các đơn vị quân đội trong toàn quân.
64
KẾT LUẬN
Luận văn nghiên cứu các hiểm hoạ thường gặp của web, tìm hiểu mô
hình và xu thế phát triển của web, một số chuẩn an toàn web, kỹ thuật và công
nghệ để giải quyết vấn đề an toàn và bảo mật web hiện nay từ đó phân tích,
tổng hợp một số cơ sở mật mã cần thiết để áp dụng các hệ mật một cách tin cậy
trong an toàn và bảo mật web, tiến hành xây dựng mô hình an toàn và bảo mật
các ứng dụng trên nền tảng web.
Trong luận văn này, tác giả đã đề cập đến hai kỹ thuật chính trong an
toàn thông tin đó là mã hoá và ký số cùng với những vấn đề liên quan đến bảo
mật ứng dụng web. Hai kỹ thuật này cũng được ứng dụng trên website góp
phần vào việc đảm bảo an toàn thông tin trong quá trình trao đổi dữ liệu giữa
các đơn vị Quân sự.
65
KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN:
Với bước đầu nghiên cứu cài đặt thử nghiệm chương trình đã tạo tiền đề
ứng dụng an toàn dữ liệu trao đổi trong môi trường web và từ đó đưa chương
trình vào ứng dụng thực tế. Trong thời gian tới, tôi sẽ tiếp tục phát triển đề tài
với phương hướng cụ thể như sau:
Nghiên cứu một số cơ sở mật mã cần thiết để áp dụng các hệ mật một
cách tin cậy trong an toàn và bảo mật web, tìm hiểu sâu hơn về quy trình nghiệp
vụ của các đơn vị Quân sự để xây dựng chương trình sát với yêu cầu thực tiễn.
Tìm hiểu ứng dụng công nghệ của Blockchain vào công tác bảo mật dữ liệu và
số hóa dữ liệu trong Quân đội.
66
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt:
[1]. Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, Đại học
Quốc gia Hà Nội, 2002.
[2]. Dương Anh Đức, Trần Minh Triết, Giáo trình mã hóa và ứng dụng,
Đại học Quốc gia TP.HCM, 2005.
[3]. Đỗ Xuân Bình, Chữ ký số, chứng chỉ số và cơ sở hạ tầng khóa công
khai các vấn đề kỹ thuật và ứng dụng, NXB Bưu điện, Hà Nội, 2007.
[4]. Trịnh Nhật Tiến, Một số vấn đề về an toàn dữ liệu, Đại học Quốc gia
Hà Nội, 2004.
Tài liệu tiếng Anh:
[5]. Dan Boneh, Twenty Years of Attacks on RSA Cryptosystem’,
Report, Standford University, 1999.
[6]. Nick Goots, Boris Izotoz, Alexander Moldovyan, Nick Moldovyan,
Modern Cryptography-Protect Your Data with Fast Block Ciphers, 2003.
[7]. William Stallings, Cryptography and network security: Principle and
practice, prentice hall, 2004.
[8]. A. Mennezes, P.van Oorshoot, S. Vanstone, Handbook of Applied
Cryptography, CRC Press, 1997