ĐẠ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à , khóa bí mật 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 = <3233, 17>

+ Khoá bí mật = <3233, 2753>

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à , khóa bí mật 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