Download as pdf or txt
Download as pdf or txt
You are on page 1of 103

BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI

TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG HÀ NỘI

GIÁO TRÌNH
AN TOÀN BẢO MẬT THÔNG TIN
NGÀNH: CÔNG NGHỆ THÔNG TIN

Hà Nội, năm ……………

(Lưu hành nội bộ)

1
MỤC LỤC
BÀI 1: TỔNG QUAN VỀ AN TOÀN BẢO MẬT THÔNG TIN ....................................... 4
1.1. Nội dung của an toàn và bảo mật thông tin .................................................................. 4
1.2. Các kiểu tấn công ......................................................................................................... 6
1.3. Các kiểu chiến lược an toàn hệ thống thông tin ........................................................... 8
1.4. Các mức bảo vệ trên mạng ........................................................................................... 9
1.5. An toàn thông tin bằng mật mã .................................................................................. 11
1.6. Vai trò, phân loại và tiêu chuẩn đánh giá hệ mật mã.................................................. 12
Câu hỏi ôn tập ................................................................................................................... 15
BÀI 2: MÃ HÓA VÀ CHỨNG THỰC THÔNG TIN ....................................................... 16
2.1. Mã hóa đối xứng ......................................................................................................... 16
2.1.1 Nguyên tắc mã hóa đối xứng ............................................................................... 16
2.1.2. Các giải thuật mã hóa đối xứng .......................................................................... 20
2.1.3. Phân phối khóa trong mã hóa đối xứng .............................................................. 33
2.2. Mã hóa khóa công khai ............................................................................................... 36
2.2.1. Nguyên lý mã hóa khóa công khai ...................................................................... 36
2.2.2. Giải thuật mã hóa khóa công khai - RSA ........................................................... 38
2.2.3. Quản lý khóa ....................................................................................................... 41
2.3. Chứng thực thông tin .................................................................................................. 46
2.3.1. Giới thiệu về chứng thực thông tin ..................................................................... 46
2.3.2. Các hàm băm và giải thuật HMAC ..................................................................... 49
2.3.3. Chữ ký số ............................................................................................................ 52
2.4. Mã hóa tập tin trên Windows ..................................................................................... 53
Câu hỏi ôn tập: ................................................................................................................... 57
BÀI 3: BẢO MẬT WEB VÀ EMAIL ................................................................................. 59
3.1. Bảo mật Web .............................................................................................................. 59
3.2. Bảo mật Email ............................................................................................................ 62
3.2.1 Giao thức OpenPGP ............................................................................................. 62
3.2.2. Tiêu chuẩn Secure/Multipurpose Internet Mail Extensions (S/MIME) .............. 65
3.2.3. Phương thức xác thực DKIM .............................................................................. 68
3.3. Cấu hình và bảo mật Web........................................................................................... 71
Câu hỏi ôn tập .................................................................................................................... 74
BÀI 4: GIAO THỨC IP SECURITY ................................................................................. 75
4.1. Giới thiệu .................................................................................................................... 75
4.2. Kiến trúc IP Security .................................................................................................. 76
4.2.1 Kiến trúc IPSec .................................................................................................... 76
4.2.2. Khung giao thức IPSec ....................................................................................... 77

2
4.2.3. Tính năng của IPSec ........................................................................................... 79
4.2.4. Các giao thức IPSec ............................................................................................ 80
4.2.5. Hoạt động của IP Security : ................................................................................ 82
4.3. Cấu hình IP Security ................................................................................................... 84
Câu hỏi ôn tập: ................................................................................................................... 88
BÀI 5: BẢO MẬT MẠNG KHÔNG DÂY ......................................................................... 90
5.1. Tổng quan về mạng LAN không dây ......................................................................... 90
5.2. Bảo mật cho mạng LAN không dây ........................................................................... 90
5.3. Tổng quan về giao thức WAP .................................................................................... 96
5.4. Giao thức bảo mật Wirless Transport Layer Security (WTLS) .................................. 99
Câu hỏi ôn tập: ................................................................................................................. 101
TÀI LIỆU THAM KHẢO ................................................................................................. 103

3
BÀI 1: TỔNG QUAN VỀ AN TOÀN BẢO MẬT THÔNG TIN

1.1. Nội dung của an toàn và bảo mật thông tin

Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn đề an toàn bảo
mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện pháp nhằm
đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật. Chẳng hạn
là các biện pháp như:

 Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư có được chuyển
nguyên vẹn đến người nhận hay không.
 Dùng mật mã mã hóa thông điệp để chỉ có người gửi và người nhận hiểu được
thông điệp. Phương pháp này thường được sử dụng trong chính trị và quân sự.
 Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi được bảo vệ nghiêm
ngặt, chỉ có những người được cấp quyền mới có thể xem tài liệu.

Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển của
mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và gửi đi
trên mạng Internet. Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng,
các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát
triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý
tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông
tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể
có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các
phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm sau:

- Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Môi trường khó
bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất
đó là môi trường mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất hiện
nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán.

An toàn thông tin bao gồm các nội dung sau:


4
- Tính bí mật: tính kín đáo riêng tư của thông tin

- Tính xác thực của thông tin, bao gồm xác thực đối tác, xác thực thông tin trao
đổi.

- Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách
nhiệm về thông tin mà mình đã gửi.

Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính
có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng
không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ
liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng. Xác định càng
chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu
các thiệt hại.

Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi
phạm thụ động. Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông
tin (đánh cắp thông tin). Việc làm đó có khi không biết được nội dung cụ thể nhưng có
thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong
phần đầu các gói tin. Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao
đổi. Vì vậy vi pham thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ
liệu được trao đổi. Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện
pháp ngăn chặn hiệu quả. Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội
dung, xóa bỏ, làm trễ, xắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc
sau đó một thời gian. Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để
làm sai lệch nội dung thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhưng để ngăn
chặn hiệu quả thì khó khăn hơn nhiều.
Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo hai hướng
chính như sau:
1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (Network
Security)
2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại từ
bên ngoài (System Security)

Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là an

5
toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm
bảo là an toàn tuyệt đối.

1.2. Các kiểu tấn công

Để xem xét những vấn đề bảo mật liên quan đến truyền thông trên mạng, chúng
ta hãy lấy một bối cảnh sau: có ba nhân vật tên là Alice, Bob và Trudy, trong đó Alice
và Bob thực hiện trao đổi thông tin với nhau, còn Trudy là kẻ xấu, đặt thiết bị can thiệp
vào kênh truyền tin giữa Alice và Bob. Sau đây là các loại hành động tấn công của
Trudy mà ảnh hưởng đến quá trình truyền tin giữa Alice và Bob:
1) Xem trộm thông tin (Release of Message Content)

Trong trường hợp này Trudy chặn các thông điệp Alice gửi cho Bob, và xem
được nội dung của thông điệp.

Trudy

điệp của Alice

Networ

Alice Bob

Hình 1-1. Xem trộm thông điệp

2) Thay đổi thông điệp (Modification of Message)

Trudy chặn các thông điệp Alice gửi cho Bob và ngăn không cho các thông
điệp này đến đích. Sau đó Trudy thay đổi nội dung của thông điệp và gửi tiếp cho
Bob. Bob nghĩ rằng nhận được thông điệp nguyên bản ban đầu của Alice mà không
biết rằng chúng đã bị sửa đổi.

6
Hình 1-2. Sửa thông điệp

3) Mạo danh (Masquerade)


Trong trường hợp này Trudy giả là Alice gửi thông điệp cho Bob. Bob không
biết điều này và nghĩ rằng thông điệp là của Alice.

Hình 1-3. Mạo danh

4) Phát lại thông điệp (Replay)

Trudy sao chép lại thông điệp Alice gửi cho Bob. Sau đó một thời gian Trudy
gửi bản sao chép này cho Bob. Bob tin rằng thông điệp thứ hai vẫn là từ Alice, nội dung
hai thông điệp là giống nhau. Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy
nhiên trong nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo thông
điệp. Xét tình huống sau: giả sử Bob là ngân hàng còn Alice là một khách hàng. Alice
gửi thông điệp đề nghị Bob chuyển cho Trudy 1000$. Alice có áp dụng các biện pháp

7
như chữ ký điện tử với mục đích không cho Trudy mạo danh cũng như sửa thông điệp.
Tuy nhiên nếu Trudy sao chép và phát lại thông điệp thì các biện pháp bảo vệ này không
có ý nghĩa. Bob tin rằng Alice gửi tiếp một thông điệp mới để chuyển thêm cho Trudy
1000$ nữa.

Hình 1-4. Phát lại thông điệp

1.3. Các kiểu chiến lược an toàn hệ thống thông tin

a. Giới hạn quyền hạn tối thiểu (Last Privilege)

Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cùng
chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng
đối tượng đó chỉ được sử dụng một số tài nguyên nhất định.

b. Bảo vệ theo chiều sâu (Defence In Depth)

Nguyên tắc này nhắc nhở chúng ta : Không nên dựa vào một chế độ an toàn nào
dù cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau.

c. Nút thắt (Choke Point)

Tạo ra một “cửa khẩu” hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình
bằng con đường duy nhất chính là “cửa khẩu” này. => phải tổ chức một cơ cấu kiểm
soát và điều khiển thông tin đi qua cửa này.

d. Điểm nối yếu nhất (Weakest Link)

Chiến lược này dựa trên nguyên tắc: “ Một dây xích chỉ chắc tại mắt duy nhất,

8
một bức tường chỉ cứng tại điểm yếu nhất”

Kẻ phá hoại thường tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta
cần phải gia cố các yếu điểm của hệ thống. Thông thường chúng ta chỉ quan tâm đến
kẻ tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý được coi là yếu
điểm nhất trong hệ thống của chúng ta.

e. Tính toàn cục

Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ. Nếu
có một kẻ nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng
cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong.

f. Tính đa dạng bảo vệ

Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu
không có kẻ tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các
hệ thống khác.

1.4. Các mức bảo vệ trên mạng

Vì không thể có một giải pháp an toàn tuyệt đối nên người ta thường phải sử dụng
đồng thời nhiều mức bảo vệ khác nhau tạo thành nhiều hàng rào chắn đối với các hoạt
động xâm phạm. Việc bảo vệ thông tin trên mạng chủ yếu là bảo vệ thông tin cất giữ
trong máy tính, đặc biệt là các server trên mạng. Bởi thế ngoài một số biện pháp nhằm
chống thất thoát thông tin trên đường truyền mọi cố gắng tập trung vào việc xây dựng
các mức rào chắn từ ngoài vào trong cho các hệ thống kết nối vào mạng. Thông thường
bao gồm các mức bảo vệ sau:

a. Quyền truy nhập

Lớp bảo vệ trong cùng là quyền truy nhập nhằm kiểm soát các tài nguyên của
mạng và quyền hạn trên tài nguyên đó. Dĩ nhiên là kiểm soát được các cấu trúc dữ liệu
càng chi tiết càng tốt. Hiện tại việc kiểm soát thường ở mức tệp.

b. Đăng ký tên /mật khẩu.

Thực ra đây cũng là kiểm soát quyền truy nhập, nhưng không phải truy nhập ở
mức thông tin mà ở mức hệ thống. Đây là phương pháp bảo vệ phổ biến nhất vì nó đơn

9
giản ít phí tổn và cũng rất hiệu quả. Mỗi người sử dụng muốn được tham gia vào mạng
để sử dụng tài nguyên đều phải có đăng ký tên và mật khẩu trước. Người quản trị mạng
có trách nhiệm quản lý, kiểm soát mọi hoạt động của mạng và xác định quyền truy nhập
của những người sử dụng khác theo thời gian và không gian (nghĩa là người sử dụng
chỉ được truy nhập trong một khoảng thời gian nào đó tại một vị trí nhất định nào đó).

Về lý thuyết nếu mọi người đều giữ kín được mật khẩu và tên đăng ký của mình
thì sẽ không xảy ra các truy nhập trái phép. Song điều đó khó đảm bảo trong thực tế vì
nhiều nguyên nhân rất đời thường làm giảm hiệu quả của lớp bảo vệ này. Có thể khắc
phục bằng cách người quản mạng chịu trách nhiệm đặt mật khẩu hoặc thay đổi mật khẩu
theo thời gian.

c. Mã hoá dữ liệu

Để bảo mật thông tin trên đường truyền người ta sử dụng các phương pháp mã
hoá. Dữ liệu bị biến đổi từ dạng nhận thức được sang dạng không nhận thức được theo
một thuật toán nào đó và sẽ được biến đổi ngược lại ở trạm nhận (giải mã). Đây là lớp
bảo vệ thông tin rất quan trọng.

d. Bảo vệ vật lý

Ngăn cản các truy nhập vật lý vào hệ thống. Thường dùng các biện pháp truyền
thống như ngăn cấm tuyệt đối người không phận sự vào phòng đặt máy mạng, dùng ổ
khoá trên máy tính hoặc các máy trạm không có ổ mềm.

e. Tường lửa

Ngăn chặn thâm nhập trái phép và lọc bỏ các gói tin không muốn gửi hoặc nhận
vì các lý do nào đó để bảo vệ một máy tính hoặc cả mạng nội bộ (intranet).

10
f. Quản trị mạng.

Trong thời đại phát triển của công nghệ thông tin, mạng máy tính quyết định toàn
bộ hoạt động của một cơ quan, hay một công ty xí nghiệp. Vì vậy việc bảo đảm cho hệ
thống mạng máy tính hoạt động một cách an toàn, không xảy ra sự cố là một công việc
cấp thiết hàng đầu. Công tác quản trị mạng máy tính phải được thực hiện một cách khoa
học đảm bảo các yêu cầu sau :

- Toàn bộ hệ thống hoạt động bình thường trong giờ làm việc.
- Có hệ thống dự phòng khi có sự cố về phần cứng hoặc phần mềm xảy ra.
- Backup dữ liệu quan trọng theo định kỳ.
- Bảo dưỡng mạng theo định kỳ.
- Bảo mật dữ liệu, phân quyền truy cập, tổ chức nhóm làm việc trên mạng.
1.5. An toàn thông tin bằng mật mã

Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí
mật. Mật mã bao gồm: Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã hóa và
giải mã.

11
Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận
thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình
này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình
ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã
hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã. Đây là một
lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng.

Để bảo vệ thông tin bằng mật mã người ta thường tiếp cận theo hai hướng:

- Theo đường truyền (Link_Oriented_Security).

- Từ nút đến nút (End_to_End).

Theo cách thứ nhất thông tin được mã hoá để bảo vệ trên đường truyền giữa hai
nút mà không quan tâm đến nguồn và đích của thông tin đó. Ở đây ta lưu ý rằng thông
tin chỉ được bảo vệ trên đường truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó
mã hoá để truyền đi tiếp, do đó các nút cần phải được bảo vệ tốt.

Ngược lại theo cách thứ hai thông tin trên mạng được bảo vệ trên toàn đường
truyền từ nguồn đến đích. Thông tin sẽ được mã hoá ngay sau khi mới tạo ra và chỉ
được giải mã khi về đến đích. Cách này mắc phải nhược điểm là chỉ có dữ liệu của
người dùng thì mới có thể mã hóa được còn dữ liệu điều khiển thì giữ nguyên để có thể
xử lý tại các nút.

1.6. Vai trò, phân loại và tiêu chuẩn đánh giá hệ mật mã

a) Vai trò của hệ mật mã

Các hệ mật mã phải thực hiện được các vai trò sau:

- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText) để đảm
bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin
(Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn.

- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ
thống đến người nhận hợp pháp là xác thực (Authenticity).

- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo,
mạo danh để gửi thông tin trên mạng.

Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp
12
tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu
đã được mã hoá. Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau,
nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mã
hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo yêu cầu về độ an toàn.

Các thành phần của một hệ mật mã :

Định nghĩa :

Một hệ mật là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

- P là một tập hợp hữu hạn các bản rõ (PlainText), nó được gọi là không gian
bản rõ.

- C là tập các hữu hạn các bản mã (Crypto), nó còn được gọi là không gian các
bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên
một phần tử của P, với k  K.

- K là tập hữu hạn các khoá hay còn gọi là không gian khoá. Đối với mỗi phần
tử k của K được gọi là một khoá (Key). Số lượng của không gian khoá phải đủ lớn để
“kẻ địch: không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn).

- Đối với mỗi k  K có một quy tắc mã eK: P  C và một quy tắc giải mã
tương ứng dK  D. Mỗi eK: P  C và dK: C  P là những hàm mà:

dK (eK(x))=x với mọi bản rõ x  P.

Mã hoá với khoá mã và khoá giải giống nhau

13
b) Phân loại hệ mật mã

Có nhiều cách để phân loại hệ mật mã. Dựa vào cách truyền khóa có thể phân các
hệ mật mã thành hai loại:

- Hệ mật đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật dung
chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu. Do đó khoá phải
được giữ bí mật tuyệt đối.

- Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai) : Hay còn gọi
là hệ mật mã công khai, các hệ mật này dùng một khoá để mã hoá sau đó dùng một
khoá khác để giải mã, nghĩa là khoá để mã hoá và giải mã là khác nhau. Các khoá này
tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá
kia. Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải mã phải giữ bí
mật.

Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại:
Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau
năm 1970). Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm
hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác
nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối
(tiến hành mã từng khối dữ liệu với khóa như nhau).

c) Tiêu chuẩn đánh giá hệ mật mã

Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tính chất sau:

i) Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an toàn
cao. Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an toàn tính
toán mà không cần phải cài đặt. Một hệ mật được coi là an toàn nếu để phá hệ mật mã
này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian vô cùng lớn,
không thể chấp nhận được.

Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:

- Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khoá,
công khai thuật toán.

14
- Khi cho khoá công khai eK và bản rõ P thì chúng ta dễ dàng tính được eK(P) =
C. Ngược lại khi cho dK và bản mã C thì dễ dàng tính được dK(M)=P. Khi không biết dK
thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm f: X  Y thì việc tính
y=f(x) với mọi x X là dễ còn việc tìm x khi biết y lại là vấn đề khó và nó được gọi là
hàm một chiều.

- Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ.

ii) Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc
độ mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh.

iii) Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền
công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với
các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật
mã.

Câu hỏi ôn tập

1) Nêu các hình thức tấn công trong quá trình truyền tin trên mạng.
2) Trình bày các mức bảo vệ trên mạng
3) Trình bày vai trò, phân loại và tiêu chuẩn đánh giá hệ mật mã

15
BÀI 2: MÃ HÓA VÀ CHỨNG THỰC THÔNG TIN
2.1. Mã hóa đối xứng

2.1.1 Nguyên tắc mã hóa đối xứng

Trong phần này chúng ta sẽ tìm hiểu một số khái niệm cơ bản về phương pháp mã
hóa đối xứng. Đây là phương pháp chủ yếu trong việc bảo đảm tính bảo mật
(confidentiality) của một hệ truyền tin. Trước tiên, chúng ta sẽ tìm hiểu phương pháp
mã hóa Ceasar và sau đó là mô hình tổng quát của phương pháp mã hóa đối xứng cùng
một số tính chất liên quan.

a) Mã hóa Ceasar

Thế kỷ thứ 3 trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ
ra phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ
đứng sau nó k vị trí trong bảng chữ cái. Giả sử chọn k = 3, ta có bảng chuyển đổi như
sau:
Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z

Chữ thay thế: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

(sau Z sẽ vòng lại là A, do đó x  A, y  B và z  C)


Giả sử có bản tin gốc (bản rõ): meet me after the toga party

Như vậy bản tin mã hóa (bản mã) sẽ là: PHHW PH DIWHU WKH WRJD
SDUWB
Thay vì gửi trực tiếp bản rõ cho các cấp dưới, Ceasar gửi bản mã. Khi cấp dưới nhận

được bản mã, tiến hành giải mã theo quy trình ngược lại để có được bản rõ. Như vậy
nếu đối thủ của Ceasar có lấy được bản mã, thì cũng không hiểu được ý nghĩa của bản
mã.

Chúng ta hãy gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Phương pháp Ceasar được biểu diễn như sau: với mỗi chữ cái p thay bằng chữ mã hóa
C, trong đó:

16
C = (p + k) mod 26 (trong đó mod là phép chia lấy số dư)
Và quá trình giải mã đơn giản là:
p = (C – k) mod 26

k được gọi là khóa. Dĩ nhiên là Ceasar và cấp dưới phải cùng dùng chung một giá trị
khóa k, nếu không bản tin giải mã sẽ không giống bản rõ ban đầu.
Ngày nay phương pháp mã hóa của Ceasar không được xem là an toàn. Giả sử đối thủ
của Ceasar có được bản mã PHHW PH DIWHU WKH WRJD SDUWB và biết được
phương pháp mã hóa và giải mã là phép cộng trừ modulo 26. Đối thủ có thể thử tất cả
25 trường hợp của k như sau:

KEY PHHW PH DIWHU WKH WRJD SDUWB


1 oggv og chvgt vjg vqic rctva
2 nffu nf bgufs uif uphb qbsuz
3 meet me after the toga party
4 ldds ld zesdq sgd snfz ozqsx
5 kccr kc ydrcp rfc rmey nyprw
6 jbbq jb xcqbo qeb qldx mxoqv
7 iaap ia wbpan pda pkcw lwnpu
8 hzzo hz vaozm ocz ojbv kvmot
9 gyyn gy uznyl nby niau julns
10 fxxm fx tymxk max mhzt itkmr
11 ewwl ew sxlwj lzw lgys hsjlq
12 dvvk dv rwkvi kyv kfxr grikp
13 cuuj cu qvjuh jxu jewq fqhjo
14 btti bt puitg iwt idvp epgin
15 assh as othsf hvs hcuo dofhm
16 zrrg zr nsgre gur gbtn cnegl
17 yqqf yq mrfqd ftq fasm bmdfk
18 xppe xp lqepc esp ezrl alcej
19 wood wo kpdob dro dyqk zkbdi
20 vnnc vn jocna cqn cxpj yjach
21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc

Trong 25 trường hợp trên, chỉ có trường hợp k=3 thì bản giải mã tương ứng là có ý

17
nghĩa. Do đó đối thủ có thể chắc chắn rằng “meet me after the toga party” là
bản rõ ban đầu.

b) Mô hình mã hóa đối xứng (Symmetric Ciphers)


Phương pháp Ceasar là phương pháp mã hóa đơn giản nhất của mã hóa đối xứng.
Về mặt khái niệm, phương pháp mã hóa đối xứng tổng quát được biểu diễn bằng mô
hình sau:

Hình 2-1. Mô hình mã hóa đối xứng

Mô hình trên gồm 5 yếu tố:


 Bản rõ P (plaintext)
 Thuật toán mã hóa E (encrypt algorithm)
 Khóa bí mật K (secret key)
 Bản mã C (ciphertext)
 Thuật toán giải mã D (decrypt algorithm) Trong đó: C = E (P, K)
P = D (C, K)
Thuật toán mã hóa và giải mã sử dụng chung một khóa, thuật toán giải mã là
phép toán ngược của thuật toán mã hóa (trong mã hóa Ceasar, E là phép cộng còn D là
phép trừ). Vì vậy mô hình trên được gọi là phương pháp mã hóa đối xứng.
Bản mã C được gởi đi trên kênh truyền. Do bản mã C đã được biến đổi so với
bản rõ P, cho nên những người thứ ba can thiệp vào kênh truyền để lấy được bản mã C,
thì không hiểu được ý nghĩa của bản mã. Đây chính là đặc điểm quan trọng của mã hóa,
cho phép đảm bảo tính bảo mật (confidentiality) của một hệ truyền tin đã đề cập trong
bài 1.

18
Một đặc tính quan trọng của mã hóa đối xứng là khóa phải được giữ bí mật giữa
người gởi và người nhận, hay nói cách khác khóa phải được chuyển một cách an toàn
từ người gởi đến người nhận. Có thể đặt ra câu hỏi là nếu đã có một kênh an toàn để
chuyển khóa như vậy thì tại sao không dùng kênh đó để chuyển bản tin, tại sao cần đến
chuyện mã hóa? Câu trả lời là nội dung bản tin thì có thể rất dài, còn khóa thì thường
là ngắn. Ngoài ra một khóa còn có thể áp dụng để truyền tin nhiều lần. Do đó nếu chỉ
chuyển khóa trên kênh an toàn thì đỡ tốn kém chi phí.
Đặc tính quan trọng thứ hai của một hệ mã hóa đối xứng là tính an toàn của hệ
mã. Như đã thấy ở phần mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra được bản
rõ ban đầu mà không cần biết khóa bí mật. Hành động đi tìm bản rõ từ bản mã mà không
cần khóa như vậy được gọi là hành động phá mã (cryptanalysis). Do đó một hệ mã hóa
đối xứng được gọi là an toàn khi và chỉ khi nó không thể bị phá mã (điều kiện lý tưởng)
hoặc thời gian phá mã là bất khả thi.
Trong phương pháp Ceasar, lý do mà phương pháp này kém an toàn là ở chỗ khóa
k chỉ có 25 giá trị, do đó kẻ phá mã có thể thử được hết tất cả các trường hợp của khóa
rất nhanh chóng. Phương pháp tấn công này được gọi là phương pháp vét cạn khóa
(brute- force attack). Chỉ cần nới rộng miền giá trị của khóa thì có thể tăng thời gian
phá mã đến một mức độ được coi là bất khả thi. Bảng dưới đây liệt kê một số ví dụ về
thời gian phá mã trung bình tương ứng với kích thước của khóa.
Kích thước Số lượng khóa Thời gian thực hiện Thời gian thực hiện
khóa (bít) (tốc độ thử: 103 (tốc độ thử: 109
khóa/giây) khóa/giây)
32 232 ≈ 4.3 x 109 35.8 phút 2.15 mili giây
56 256 ≈ 7.2 x 1016 1142 năm 10.01 giờ
128 2128 ≈ 3.4 x 1038 5.4 x 1024 năm 5.4 x 1018 năm
168 2168 ≈ 3. 7 x 1050 5.9 x 1036 năm 5.9 x 1030 năm
hoán vị 26 ký tự 26! ≈ 4 x 1026 6.4 x 1012 năm 6.4 x 106 năm

(tốc độ CPU hiện nay khoảng 3x109 Hz, tuổi vũ trụ vào khoảng ≈ 1010 năm)
Bảng 2-1. Thời gian vét cạn khóa theo kích thước khóa

Chúng ta chấp nhận rằng một phương pháp mã hóa đối xứng là an toàn nếu phương
pháp đó có điều kiện sau:
 Không tồn tại kỹ thuật tấn công tắt nào khác tốt hơn phương pháp vét cạn khóa

19
 Miền giá trị khóa đủ lớn để việc vét cạn khóa là bất khả thi.

2.1.2. Các giải thuật mã hóa đối xứng

Thuật toán mã hóa đối xứng có thể phân thành hai nhóm phụ

- Thuật toán mã hóa theo khối (Block ciphers): trong đó từng khối dữ liệu trong văn
bản gốc ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài. Độ dài mỗi
khối gọi là kích thước khối (block size), thường được tính bằng đơn vị bit. Ví dụ thuật
toán 3-Way có kích thước khối bằng 96 bit. Một số thuật toán khối thông dụng là: DES,
3DES, RC5, RC6, 3-Way, CAST, Camelia, Blowfish, MARS, Serpent, Twofish,
GOST...

- Thuật toán mã hóa dòng (Stream ciphers): trong đó dữ liệu đầu vào được mã hóa
từng bit một. Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối, được dùng
khi khối lượng dữ liệu cần mã hóa chưa được biết trước, ví dụ trong kết nối không dây.
Có thể coi thuật toán dòng là thuật toán khối với kích thước mỗi khối là 1 bit. Một số
thuật toán dòng thông dụng: RC4, A5/1, A5/2, Chameleon.

Chúng ta sẽ cùng xem xét một số giải thuật mã hóa đối xứng phổ biến.

1. Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)


Xét lại phương pháp Ceasar với k=3:

Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z

Chữ thay thế: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Phương pháp đơn bảng tổng quát hóa phương pháp Ceasar bằng cách dòng mã hóa
không phải là một dịch chuyển k vị trí của các chữ cái A, B, C, … nữa mà là một hoán
vị của 26 chữ cái này. Lúc này mỗi hoán vị được xem như là một khóa. Giả sử có hoán
vị sau:
Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y
z

Khóa: Z P B Y J R S K F L X Q N W V D H M G U T O I A E
C
Như vậy bản rõ: meet me after the toga party được mã hóa thành:

NJJU NJ ZRUJM UKJ UVSZ DZMUE

20
Quá trình giải mã được tiến hành ngược lại để cho ra bản rõ ban đầu.

Việc mã hóa được tiến hành bằng cách thay thế một chữ cái trong bản rõ thành một
chữ cái trong bản mã, nên phương pháp này được gọi là phương pháp thay thế. Số lượng
hoán vị của 26 chữ cái là 26!, đây cũng chính là số lượng khóa của phương pháp này.
Vì 26! là một con số khá lớn nên việc tấn công phá mã vét cạn khóa là bất khả thi (6400
thiên niên kỷ với tốc độ thử khóa là 109 khóa/giây). Vì vậy mã hóa đơn bảng đã được
xem là một phương pháp mã hóa an toàn trong suốt 1000 năm sau công nguyên.

Tuy nhiên vào thế kỷ thứ 9, một nhà hiền triết người Ả Rập tên là Al-Kindi
đã phát hiện ra một phương pháp phá mã khả thi khác. Phương pháp phá mã này
dựa trên nhận xét sau:
Trong ngôn ngữ tiếng Anh, tần suất sử dụng của các chữ cái không đều nhau, chữ
E được sử dụng nhiều nhất, còn các chữ ít được sử dụng thường là Z, Q, J. Tương tự
như vậy đối với cụm 2 chữ cái (digram), cụm chữ TH được sử dụng nhiều nhất. Bảng
sau thống kê tần suất sử dụng của các chữ cái, cụm 2 chữ, cụm 3 chữ (trigram) trong
tiếng Anh:

Chữ cái (%) Cụm 2 chữ (%) Cụm 3 chữ (%) Từ (%)
E 13.05 TH 3.16 THE 4.72 THE 6.42
T 9.02 IN 1.54 ING 1.42 OF 4.02
O 8.21 ER 1.33 AND 1.13 AND 3.15
A 7.81 RE 1.30 ION 1.00 TO 2.36
N 7.28 AN 1.08 ENT 0.98 A 2.09
I 6.77 HE 1.08 FOR 0.76 IN 1.77
R 6.64 AR 1.02 TIO 0.75 THAT 1.25
S 6.46 EN 1.02 ERE 0.69 IS 1.03
H 5.85 TI 1.02 HER 0.68 I 0.94
D 4.11 TE 0.98 ATE 0.66 IT 0.93
L 3.60 AT 0.88 VER 0.63 FOR 0.77
C 2.93 ON 0.84 TER 0.62 AS 0.76
F 2.88 HA 0.84 THA 0.62 WITH 0.76
U 2.77 OU 0.72 ATI 0.59 WAS 0.72
M 2.62 IT 0.71 HAT 0.55 HIS 0.71
P 2.15 ES 0.69 ERS 0.54 HE 0.71
Y 1.51 ST 0.68 HIS 0.52 BE 0.63

21
W 1.49 OR 0.68 RES 0.50 NOT 0.61
G 1.39 NT 0.67 ILL 0.47 BY 0.57
B 1.28 HI 0.66 ARE 0.46 BUT 0.56
V 1.00 EA 0.64 CON 0.45 HAVE 0.55
K 0.42 VE 0.64 NCE 0.45 YOU 0.55
X 0.30 CO 0.59 ALL 0.44 WHICH 0.53
J 0.23 DE 0.55 EVE 0.44 ARE 0.50
Q 0.14 RA 0.55 ITH 0.44 ON 0.47
Z 0.09 RO 0.55 TED 0.44 OR 0.45
Bảng 2-2. Bảng liệt kê tần suất chữ cái tiếng Anh

Phương pháp mã hóa đơn bảng ánh xạ một chữ cái trong bản rõ thành một chữ cái
khác trong bản mã. Do đó các chữ cái trong bản mã cũng sẽ tuân theo luật phân bố tần
suất trên. Nếu chữ E được thay bằng chữ K thì tần suất xuất hiện của chữ K trong bản
mã là 13.05%. Đây chính là cơ sở để thực hiện phá mã.
Xét bản mã sau:
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPPDPTGUDTMOHMQ

Số lần xuất hiện của các chữ cái là:


A 2 F 3 K 0 P 17 U 9
B 2 G 3 L 0 Q 3 V 5
C 0 H 6 M 7 R 0 W 4
D 6 I 1 N 0 S 10 X 5
E 6 J 0 O 9 T 4 Y 2
Z 13
Số lần xuất hiện của các digram (xuất hiện từ 2 lần trở lên) là:
DT 2 HZ 2 PE 2 TS 2 XU 2
DZ 2 MO 2 PO 3 UD 2 ZO 2
EP 3 OH 2 PP 2 UZ 3 ZS 2
FP 3 OP 3 SX 3 VU 2 ZU 2
HM 2 PD 3 SZ 2 WS 2 ZW 3
Do đó ta có thể đoán P là mã hóa của e, Z là mã hóa của t. Vì TH có tần suất cao
nhất trong các digram nên trong 4 digram ZO, ZS, ZU, ZW có thể đoán ZW là th. Chú
ý rằng trong dòng thứ nhất có cụm ZWSZ, nếu giả thiết rằng 4 chữ trên thuộc một từ
thì từ đó có dạng th_t, từ đó có thể kết luận rằng S là mã hóa của a (vì từ THAT có tần
suất xuất hiện cao). Như vậy đến bước này, ta đã phá mã được như sau:

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSX
22
AIZ
t a e e t a th a t e e a a
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
e t ta t ha e ee a e th t a
EPYEPOPDZSZUFPOMBZWPPDPTGUDTMOHMQ
e e e tat e thee e
Cứ tiếp tục như vậy, dĩ nhiên việc thử không phải lúc nào cũng suôn sẻ,
có những lúc phải thử và sai nhiều lần. Cuối cùng ta có được bản giải mã sau
khi đã tách từ như sau:
it was disclosed yesterday that several
informal but direct contacts have been
made with political representatives of
the enemy in moscow
Như vậy việc phá mã dựa trên tần suất chữ cái tốn thời gian ít hơn nhiều so
với con số 6400 thiên niên kỷ. Lý do là ứng một chữ cái trong bản gốc thì cũng là
một chữ cái trong bản mã nên vẫn bảo toàn quy tắc phân bố tần suất của các chữ
cái. Để khắc phục điểm yếu này, có hai phương pháp. Phương pháp thứ nhất là mã
hóa nhiều chữ cái cùng lúc. Phương pháp thứ hai là làm sao để một chữ cái trong
bản rõ thì có tương ứng nhiều chữ cái khác nhau trong bản mã.

2. Mã hóa DES (Data Encryption Standard)


Chuẩn mã hoá dữ liệu DES được Văn phòng tiêu chuẩn của Mỹ (U.S National
Bureau for Standards) công bố năm 1971 để sử dụng trong các cơ quan chính phủ liên
bang. Giải thuật được phát triển tại Công ty IBM dựa trên hệ mã hoá LUCIFER của
Feistel.

DES là thuật toán mã hoá khối (block algrithm), với cỡ của một khối là 64 bít.
Một khối 64 bít bản rõ được đưa vào, sau khi mã hoá dữ liệu đưa ra là một khối bản mã
64 bít. Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá. Khoá mã có độ
dài 64 bít, trong đó có 8 bít chẵn lẻ được sử dụng để kiểm soát lỗi. Các bít chẵn lẻ nằm
ở các vị trí 8, 16, 24,... , 64. Tức là cứ 8 bít khoá thì trong đó có 1 bít kiểm soát lỗi, bít
này qui định số bít có giá trị “1” của khối 8 bít đó theo tính bù chẵn.

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, nó

23
áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản rõ 16 lần (Như hình vẽ)

Thuật toán chỉ sử dụng các phép toán số học và lôgíc trên các số 64 bít, 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 hiện tại 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 chíp với mục đích đặc biệt này.

24
L0

K1

K2

K16

Hình 2-2: Sơ đồ mã DES

Tóm lại DES có một số đặc điểm sau:


25
 Sử dụng khoá 56 bít.
 Xử lý khối vào 64 bít, biến đổi khối vào thành khối ra 64 bít.
 Mã hoá và giải mã được sử dụng cùng một khoá.
 DES được thiết kế để chạy trên phần cứng.
DES thường được sử dụng để mã hoá các dòng dữ liệu mạng và mã hoá dữ liệu được
lưu trữ trên đĩa.

Mô tả thuật toán
DES thực hiện trên từng khối 64 bít bản rõ. Sau khi thực hiện hoán vị khởi đầu,
khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bít. Tiếp đó, có 16 vòng lặp
giống hệt nhau được thực hiện, được gọi là các hàm , trong đó dữ liệu được kết hợp
với khoá. Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối cùng
(hoán vị ngược) sẽ kết thúc thuật toán.

Trong mỗi vòng lặp, các bít của khoá được dịch đi và có 48 bít được chọn ra từ
56 bít của khoá. Nửa phải của dữ liệu được mở rộng thành 48 bít bằng một phép hoán
vị mở rộng, tiếp đó khối 48 bít này được kết hợp với khối 48 bít đã được thay đổi và
hoán vị của khoá bằng toán tử XOR. Khối kết quả của phép tính XOR được lựa chọn
ra 32 bít bằng cách sử dụng thuật toán thay thế và hoán vị lần nữa. Đó là bốn thao tác
tạo nên hàm . Tiếp đó, đầu ra của hàm  được kết hợp với nửa trái bằng một toán tử
XOR. Kết quả của các bước thực hiện này trở thành nửa phải mới; nửa phải cũ trở thành
nửa trái mới. Sự thực hiện này được lặp lại 16 lần, tạo thành 16 vòng của DES.

Nếu Bi là kết quả của vòng thứ i, Li và Ri là hai nửa trái và phải của Bi, Ki là khoá
48 bít của vòng thứ i, và  là hàm thực hiện thay thế, hoán vị và XOR với khoá, ta có
biểu diễn của một vòng sẽ như sau:

Li=Ri-1
Ri=Li-1 XOR (Ri-1,Ki)

26
Hình 2-3: Một vòng lặp DES

Hoán vị khởi đầu

Hoán vị khởi đầu đổi chỗ khối dữ liệu vào, thay đổi vị trí của các bít trong
khối dữ liệu vào, như được mô tả trong Bảng hoán vị khởi đầu. Bảng này, và tất
cả các bảng khác sau này, được đọc từ trái qua phải, từ trên xuống dưới. Ví dụ,
hoán vị khởi đầu chuyển bít 1 thành bít 58, bít 2 thành bít 50, bít 3 thành bít 42,...

27
Bảng Hoán vị khởi đầu

58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
Hoán vị khởi đầu và tương ứng là hoán vị ngược không làm ảnh hưởng
đến sự an toàn của DES.
Khoá chuyển đổi
Đầu tiên, khoá 64 bít được giảm xuống thành một khoá 56 bít bằng
cách bỏ qua 8 bít chẵn lẻ. Sự loại bỏ được thực hiện theo Bảng sau:

Bảng khoá chuyển đổi:

57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4

Các bít chẵn lẻ này có thể được sử dụng để đảm bảo rằng không có lỗi nào xảy ra
khi đưa khoá vào. Sau khi khoá 56 bít được trích ra, một khoá khác 48 bít được sinh ra
cho mỗi vòng của DES. Những khoá này, ki, được xác định bằng cách:

+ Đầu tiên, khoá 56 bít được chia làm hai phần mỗi phần 28 bít. Sau đó, các phần
này được dịch trái một hoặc hai bít, phụ thuộc vào vòng đó. Số bít được dịch được cho
trong Bảng sau:
Bảng số bít dịch của một vòng

Vòng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Số bít dịch 1122222212 2 2 2 2 2 1

+ Sau khi được dịch, 48 bít được lựa chọn ra từ 56 bít. Bởi vì sự thực hiện này
đổi chỗ thứ tự các bít như là sự lựa chọn một tập con các bít, nó được gọi là hoán vị
nén (compression permutation), hoặc hoán vị lựa chọn (permuted choice). Sự thực
28
hiện này cung cấp một tập hợp các bít cùng cỡ với đầu ra của hoán vị mở rộng. Bảng
4 định nghĩa hoán vị nén (cũng gọi là hoán vị lựa chọn). Ví dụ, bít ở vị trí 33 của
khoá dịch được chuyển tới vị trí 35 của đầu ra, và bít ở vị trí 18 của khoá dịch bị bỏ
qua.

Bảng hoán vị nén:

14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32

Hoán vị mở rộng
Ở thao tác này, nửa phải của dữ liệu, Ri, được mở rộng từ 32 bít thành 48 bít. Bởi
vì sự thực hiện này thay đổi thứ tự của các bít bằng cách lặp lại một bít nào đó, nó được
hiểu như là một sự hoán vị mở rộng. Sự thực hiện này nhằm mục đích tạo ra kết quả là
dữ liệu cùng cỡ với khoá để thực hiện thao tác XOR.

Định nghĩa hoán vị mở rộng - hộp E. Với mỗi bộ 4 bít của khối dữ liệu vào, bít
đầu tiên và bít thứ tư mỗi bít tương ứng với 2 bít của khối dữ liệu ra, trong khi bít thứ
hai và bít thứ ba mỗi bít tương ứng với một bít của khối dữ liệu ra. Bảng dưới mô tả vị
trí của các bít trong khối dữ liệu ra theo khối dữ liệu vào. Ví dụ, bít ở vị trí thứ 3 của
khối dữ liệu vào được chuyển tới vị trí thứ 4 trong khối dữ liệu ra. Và bít ở vị trí 21 của
khối dữ liệu vào được chuyển tới vị trí 30 và 32 trong khối dữ liệu ra.

Bảng hoán vị mở rộng E:

32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 12 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1

Mặc dù khối dữ liệu ra rộng hơn khối dữ liệu vào, nhưng một khối dữ liệu vào
chỉ có duy nhất một khối dữ liệu ra.

29
Hộp thay thế S
Sau khi được nén, khoá được XOR với khối mở rộng, 48 bít kết quả được chuyển
sang giai đoạn thay thế. Sự thay thế được thực hiện bởi 8 hộp thay thế (substitution
boxes, S-boxes). Khối 48 bít được chia thành 8 khối 6 bít. Mỗi khối được thực hiện trên
một hộp S riêng biệt (separate S-box): khối 1 được thực hiện trên hộp S1, khối 2 được
thực hiện trên hộp S2,... , khối 8 được thực hiện trên hộp S8.

Mỗi hộp S là một bảng gồm 4 hàng và 16 cột. Mỗi phần tử của hộp là một số 4
bít. Sáu bít vào hộp S sẽ xác định số hàng và số cột để tìm kết quả ra. Bảng 6 biểu diễn
8 hộp S. Những bít vào xác định một phần tử trong hộp S một cách riêng biệt. Sáu bít
vào của hộp được ký hiệu là b1, b2, b3, b4, b5 và b6. Bít b1 và b6 được kết hợp thành
một số 2 bít, nhận giá trị từ 0 đến 3, tương ứng với một hàng trong bảng. Bốn bít ở giữa,
từ b2 tới b5, được kết hợp thành một số 4 bít, nhận giá trị từ 0 đến 15, tương ứng với
một cột trong bảng.
Ví dụ, giả sử ta đưa dữ liệu vào hộp S thứ 6 (bít 31 tới bít 36 của hàm XOR) là
110010. Bít đầu tiên và bít cuối cùng kết hợp thành 10, tương ứng với hàng thứ 3 của
hộp S thứ 6. Bốn bít giữa kết hợp thành 1001, tương ứng với cột thứ 10 của hộp S thứ
6. Phần tử hàng 3 cột 9 của hộp S thứ 6 là 0. Giá trị 0000 được thay thế cho 110010.

Kết quả của sự thay thế là 8 khối 4 bít, và chúng được kết hợp lại thành một khối
32 bít. Khối này được chuyển tới bước tiếp theo: hộp hoán vị P (P- box permutation).

Hộp S thứ nhất

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Hộp S thứ 2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

30
Hộp S thứ 3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

Hộp S thứ 4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Hộp S thứ 5

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
Hộp S thứ 6

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Hộp S thứ 7

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

31
Hộp S thứ 8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Hộp hoán vị P
Khối dữ liệu 32 bít ra của hộp thay thế S được hoán vị tiếp trong hộp P. Sự hoán
vị này ánh xạ mỗi bít dữ liệu vào tới một vị trí trong khối dữ liệu ra; không bít nào được
sử dụng hai lần và cũng không bít nào bị bỏ qua. Nó được gọi là hoán vị trực tiếp
(straight permutation). Bảng hoán vị cho ta vị trí của mỗi bí cần chuyển. Ví dụ, bít 4
chuyển tới bít 21, trong khi bít 32 chuyển tới bít 4.

Bảng hộp hoán vị P

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

Cuối cùng, kết quả của hộp hoá vị P được XOR với nửa trái của khối 64 bít khởi đầu.
Sau đó, nửa trái và phải được chuyển đổi cho nhau và một vòng mới được tiếp tục.

Hoán vị cuối cùng


Hoán vị cuối cùng là nghịch đảo của hoán vị khởi đầu, và nó được mô tả trong
bảng dưới. Chú ý rằng nửa trái và nửa phải không được tráo đổi sau vòng cuối cùng của
DES; thay vào đó khối nối R16L16 được sử dụng như khối dữ liệu ra của hoán vị cuối
cùng. Không có gì đưa ra ở đây; tráo đổi các nửa và dịch vòng hoán vị sẽ cho chính xác
như kết quả trước; điều đó có nghĩa là thuật toán có thể được sử dụng cho cả mã hoá và
giải mã.

Bảng hoán vị cuối cùng:

40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27

32
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Giải mã DES
Sau khi thay đổi, hoán vị, XOR, và dịch vòng, chúng ta có thể nghĩ rằng thuật toán
giải mã phức tạp, khó hiểu như thuật toán mã hoá và hoàn toàn khác thuật toán mã hoá.
Trái lại, sự hoạt động được lựa chọn để đưa ra một đặc tính hữu ích: cùng thuật toán
làm việc cho cả mã hoá và giải mã.

Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hoá một khối. Chỉ
có sự khác nhau đó là các khoá phải được sử dụng theo thứ tự ngược lại. Nghĩa là, nếu
các khoá mã hoá cho mỗi vòng là k1, k2, k3 ,... , k15, k16 thì các khoá giải là k16, k15,... ,
k3, k2, k1. Giải thuật để tổng hợp khoá cho mỗi vòng cũng tương tự. Có khác là các khoá
được dịch phải và số vị trí bit để dịch được lấy theo chiều ngược lại.

2.1.3. Phân phối khóa trong mã hóa đối xứng

Giả sử có N người sử dụng, trao đổi dữ liệu bằng mã hóa đối xứng, mỗi cặp
người sử dụng cần có một khóa bí mật riêng, dẫn đến cần có N(N-1)/2 khóa bí mật.
Việc thiết lập các khóa bí mật này sẽ gây ra khó khăn cho các người sử dụng vì mỗi
người cần thiết lập N-1 khóa.

KAB
A B

KAC KBC
KAE

KAD

KDC

Phương pháp trao đổi khóa bằng trung tâm phân phối khóa (Key Distribution
Center – KDC) giúp đơn giản hóa vấn đề này. Trong mô hình sử dụng KDC, mỗi người
sử dụng chỉ cần có một khóa bí mật với KDC. Còn khóa dùng để trao đổi dữ liệu giữa
các người sử dụng sẽ do KDC cung cấp.

33
Giả sử Alice có khóa bí mật KA với KDC và Bob có khóa bí mật KB với KDC.
Bây giờ Alice muốn trao đổi dữ liệu với Bob. Quá trình thiết lập khóa chung KAB giữa
Alice và Bob gồm các bước:
1) Alice gửi yêu cầu muốn trao đổi dữ liệu với Bob cho KDC.
2) KDC tạo một khóa bí mật KAB và mã hóa thành hai bản mã. Một bản mã được
mã hóa bằng khóa bí mật của Alice E(KAB, KA) và một bản mã được mã hóa bằng khóa
bí mật của Bob E(KAB, KB).
3) Alice giải mã E(KAB, KA) để có KAB
4) Alice gửi E(KAB, KB) cho Bob, Bob giải mã để có được KAB
5) Alice và Bob trao đổi dữ liệu qua khóa bí mật KAB

KDC
1. REQUEST to B

2. E(KAB, KA)||E(KAB, KB)

E(KAB,
K B)

Hình 2-4. Trao đổi khóa bít mật dùng KDC

Như vậy, khóa KAB chỉ có KDC, Alice và Bob biết. Trách nhiệm của KDC là
giữ bí mật khóa này. Alice và Bob dùng khóa KAB để mã hóa dữ liệu. Khi kết thúc quá
trình truyền dữ liệu, KAB được hủy bỏ. Lần sau nếu Alice lại truyền số liệu với Bob thì
KDC sẽ cung cấp khóa KAB khác. Như vậy chỉ cần Alice có thiết lập khóa bí mật KA

34
với KDC thì Alice có thể truyền số liệu không chỉ với Bob mà còn với những người
khác.
Một khái niệm quan trọng khác có thể rút ra từ mô hình dùng KDC là khái niệm
khóa chủ và khóa phiên (master key và session key). Trong ví dụ trên các khóa KA, KB
không được sử dụng trực tiếp để mã hóa dữ liệu, chúng chỉ được dùng để mã hóa các
khóa tạm KAB. Các khóa KAB này mới trực tiếp mã hóa dữ liệu và bị hủy bỏ khi sau
quá trình truyền dữ liệu kết thúc. Vì vậy KA, KB được gọi là khóa chủ, chúng ít được
sử dụng nên người phá mã khó có cơ hội thu thập bản mã để phá mã. Khóa KA, KB
được sử dụng lâu dài. Còn KAB được gọi là khóa phiên, KAB chỉ tồn tại trong một phiên
truyền dữ liệu duy nhất mà thôi.

35
2.2. Mã hóa khóa công khai

2.2.1. Nguyên lý mã hóa khóa công khai

Mã hóa đối xứng dù rằng đã phát triển từ cổ điển đến hiện đại, vẫn tồn tại hai điểm
yếu sau:
 Vấn đề trao đổi khóa giữa người gửi và người nhận: Cần phải có một kênh
an toàn để trao đổi khóa sao cho khóa phải được giữ bí mật chỉ có người gửi
và người nhận biết. Điều này tỏ ra không hợp lý khi mà ngày nay, khối lượng
thông tin luân chuyển trên khắp thế giới là rất lớn. Việc thiết lập một kênh an
toàn như vậy sẽ tốn kém về mặt chi phí và chậm trễ về mặt thời gian.
 Tính bí mật của khóa: không có cơ sở quy trách nhiệm nếu khóa bị tiết lộ.

Vào năm 1976 Whitfield Diffie và Martin Hellman đã tìm ra một phương pháp mã
hóa khác mà có thể giải quyết được hai vấn đề trên, đó là mã hóa khóa công khai (public
key cryptography) hay còn gọi là mã hóa bất đối xứng (asymetric cryptography). Đây
có thể xem là một bước đột phá quan trọng nhất trong lĩnh vực mã hóa.
Xét lại mô hình mã hóa đối xứng:

̂Để khắc phục điểm yếu của mã hóa đối xứng người ta tập trung vào nghiên cứu theo
hướng: có phương pháp nào để việc mã hóa và giải mã dùng hai khóa khác nhau? Có
nghĩa là C = E(P, K1) và P = D(C, K2). Nếu thực hiện được như vậy thì chúng ta sẽ có
2 phương án áp dụng:

Phương án 1: người nhận (Bob) giữ bí mật khóa K2, còn khóa K1 thì công khai
cho tất cả mọi người biết. Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa.

36
Bob dùng K2 để giải mã. Ở đây Trudy cũng biết khóa K1, tuy nhiên không thể dùng
chính K1 để giải mã mà phải dùng K2. Do đó chỉ có duy nhất Bob mới có thể giải mã
được. Điều này bảo đảm tính bảo mật của quá trình truyền dữ liệu. Ưu điểm của phương
án này là không cần phải truyền khóa K1 trên kênh an toàn.

P = D(C, K1) P = D(C, K2)

Phương án 2: người gửi (Alice) giữ bí mật khóa K1, còn khóa K2 thì công khai
cho tất cả mọi người biết. Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã
hóa. Bob dùng K2 để giải mã. Ở đây Trudy cũng biết khóa K2 nên Trudy cũng có thể
giải mã được. Do đó phương án này không đảm bảo tính bảo mật. Tuy nhiên lại có tính
chất quan trọng là đảm bảo tính chứng thực và tính không từ chối. Vì chỉ có duy nhất
Alice biết được khóa K1, nên nếu Bob dùng K2 để giải mã ra bản tin, thì điều đó có
nghĩa là Alice là người gửi bản mã. Nếu Trudy cũng có khóa K1 để gửi bản mã thì Alice
sẽ bị quy trách nhiệm làm lộ khóa K1. Trong phương án này cũng không cần phải truyền
K2 trên kênh an toàn.

Vì vậy nếu kết hợp phương án 1 và phương án 2, thì mô hình đề xuất của chúng
ta khắc phục được các nhược điểm của mã hóa đối xứng.

Trong cả hai phương án, một khóa được giữ bí mật chỉ một người biết, còn khóa
kia được công khai. Do đó mô hình mã hóa trên được gọi là mã hóa khóa công khai
(hay mã hóa bất đối xứng). Để thuận tiện ta quy ước lại các ký hiệu như sau:
- Để tránh nhầm lẫn với khóa bí mật của mã đối xứng, khóa bí mật trong mô
hình trên được gọi là khóa riêng (private key) và ký hiệu là KR.
- Khóa công khai (public key) được ký hiệu là KU.

- Bản rõ được ký hiệu là M, còn bản mã giữ nguyên ký hiệu là C

- Phương án 1 viết lại thành:

C = E(M, KU)

M = D(C, KR)
37
- Phương án 2 viết lại thành:

C = E(M, KR)

M = D(C, KU)

Vấn đề còn lại ở đây là liệu có tồn tại một mô hình mã hóa và giải mã dùng hai
khóa khác nhau như vậy không? Dĩ nhiên là hai khóa KU và KR không thể nào hoàn
toàn độc lập với nhau. Phải có một mối quan hệ nào đó giữa KU và KR thì mới có thể
tiến hành giải mã hóa và giải mã được. Có nghĩa là KR = f(KU). Tuy nhiên một yêu cầu
rất quan trọng là việc tính KR = f(KU) phải là bất khả thi về mặt thời gian. Nếu nguyên
tắc này bị vi phạm thì việc giữ bí mật khóa KR không còn ý nghĩa vì từ khóa công khai
KU có thể tính được KR.

Để có được cặp khóa KR và KU như trên, người ta thường dùng các hàm một
chiều (oneway function). Các hàm một chiều có tính chất là hàm nghịch đảo của chúng
rất khó thực hiện. Sau đây là ví dụ về hàm một chiều: việc sinh ra hai số nguyên tố lớn
p, q và tính tích N = pq thì thực hiện dễ dàng. Tuy nhiên nếu chỉ cho trước N và thực
hiện phân tích N để tìm lại hai số nguyên tố p, q là việc hoàn toàn bất khả thi về mặt thời
gian. Chúng ta sẽ xem cách thức áp dụng hàm một chiều này để tạo khóa KR và KU
trong phần mã hóa RSA.
Có nhiều phương pháp mã hóa thuộc loại mã hóa khóa công khai. Đó là các
phương pháp Knapsack, RSA, Elgaman, và phương pháp đường cong elliptic ECC….
Mỗi phương pháp có cách thức ứng dụng hàm một chiều khác nhau.

2.2.2. Giải thuật mã hóa khóa công khai - RSA

Thuật toán RSA được 3 nhà khoa học Ron Rivest, Adi Shamir và Len Adleman mô tả
lần đầu tiên vào năm 1977 tại học viện công nghệ Massachusetts (MIT). Tên của thuật
toán được lấy từ 3 chữ cái đầu của tên 3 tác giả.
Trước đó, vào năm 1973, Clifford Cocks, 1 nhà toán học người Anh làm việc tại
GCHQ (Goverment Communications Headquarters – 1 cơ quan tình báo của vương quốc
Anh), đã mô tả 1 thuật toán tương tự. Với khả năng tính toán tại thời điểm đó thì thuật
toán này không khả thi và chưa bao giờ được thử nghiệm. Tuy nhiên, phát minh này chỉ
được công bố vào năm 1997 vì được xếp vào loại tuyệt mật.
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Mỹ vào năm 1983 (Số đăng

38
ký 4.105.829). Bằng sáng chế này hết hạn vào ngày 21/09/2000. Tuy nhiên, do thuật
toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá
trị bên ngoài nước Mỹ. Ngoài ra, nếu công trình của Clifford Cocks đã được công bố
trước đó thì bằng sáng chế RSA đã không thể đăng ký.
Thuật toán RSA có 2 khóa: khóa công khai (public key) và khóa bí mật (private
key). Mỗi khóa là những số cố định được sử dụng trong quá trình mã hóa và giải mã.
Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những
thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật
tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa
bí mật mới có thể giải mã được.
Các bước mã hóa
a) Sinh khóa và chia sẻ khóa
Với thuật toán RSA, đầu tiên chúng ta cần tạo ra cho mình 1 cặp khóa
bao gồm khóa công khai và khóa bí mật (khóa riêng) theo các bước sau:
Bước 1: Chọn hai số nguyên tố lớn p và q
và tính N = pq, sao cho M < 2i-1
< N < 2i
Bước 2: Tính n = (p - 1)(q- 1)
Bước 3: Tìm một số e nguyên tố cùng nhau với n
Bước 4: Tìm một số d sao cho e.d1 mod n (d là nghịch đảo của e trong
phép modulo n)
Bước 5: Hủy bỏ n, p và q, chọn khóa công khai KU là cặp (e, N), khóa
riêng KR là cặp (d, N).
c) Mã hóa
Theo Phương án 1, mã hóa bảo mật: C=E(M, KU)=Me mod N
Theo Phương án 2, mã hóa chứng thực: C=E(M, KR)=Md mod N
d) Giải mã
Theo Phương án 1, giải mã bảo mật: M =D(C, KR)=Cd mod N

Theo Phương án 2, giải mã chứng thực: M = D(C, KU)=Ce mod N


Bản rõ M có kích thước i-1 bít, bản mã C có kích thước i bít Phép mã hóa RSA thỏa
mãn =M

39
Không thể tính được KR từ KU
Ví dụ: Chứng minh = M (trong Phương án 1)
Từ Bước 4 trong Sinh mã, suy ta ed=kn+1 (kZ)
- Nên =Cd mod N=Med mod N = Mkn+1 mod N = Mk(p-1)(q-1)+1 mod N
- Nếu M mod p=0, thì Mk(p-1)(q-1)+1 M  0 mod p
- Ngược lại, thì do p nguyên tố nên (M, p)=1, do đó Mk(p-1)(q-

1)+1mod p = M(Mp-1)k(q-1) mod P

= M(1)k(q-1) mod P =M
mod P Vậy Mk(p-1)(q-1)+1-M chia hết cho p
- Tương tự Mk(p-1)(q-1)+1-M chia hết cho q
- Do p và q là các số nguyên tố nên Mk(p-1)(q-1)+1-M chia hết cho
N=pq Suy ra Mk(p-1)(q-1)+1M mod N

Do M và <N, từ = Mk(p-1)(q-1)+1 M
mod N nên M=

Độ an toàn của RSA


Sau đây ta sẽ xem xét một số cách tấn công phương pháp RSA.
i) Vét cạn khóa: cách tấn công này thử tất cả các khóa d có thể có để tìm ra bản giải mã
có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng. Với N lớn, việc tấn công
là bất khả thi.

ii) Phân tích N thành thừa số nguyên tố N = pq: Chúng ta đã nói rằng việc phân tích phải
là bất khả thi thì mới là hàm một chiều, là nguyên tắc hoạt động của RSA. Tuy nhiên,
nhiều thuật toán phân tích mới đã được đề xuất, cùng với tốc độ xử lý của máy tính ngày
càng nhanh, đã làm cho việc phân tích N không còn quá khó khăn như trước đây. Năm
1977, các tác giả của RSA đã treo giải thưởng cho ai phá được RSA có kích thước của
N vào khoảng 428 bít, tức 129 chữ số. Các tác giả này ước đoán phải mất 40 nghìn triệu
triệu năm mới có thể giải được. Tuy nhiên vào năm 1994, câu đố này đã được giải chỉ
trong vòng 8 tháng. Bảng sau liệt kê kích thước N của các RSA đã phá mã được cho đến
hiện nay.

40
Bảng liệt kê các mốc phá mã RSA

Dĩ nhiên là việc phá mã trên chỉ được thực hiện trong phòng thí nghiệm. Tuy nhiên
người ta cho rằng kích thước của N phải khoảng 1024 bít (309 chữ số) thì mới bảo đảm
an toàn thật sự.

iii) Đo thời gian: đây là một phương pháp phá mã không dựa vào mặt toán học của
thuật toán RSA, mà dựa vào một “hiệu ứng lề” sinh ra bởi quá trình giải mã RSA.

Hiệu ứng lề đó là thời gian thực hiện giải mã. Giả sử người phá mã có thể đo được
thời giải mã dùng thuật toán bình phương liên tiếp. Trong thuật toán bình phương liên
tiếp, nếu một bít của d là 1 thì xảy ra hai phép modulo, nếu bít đó là 0 thì chỉ có một phép
modulo, do đó thời gian thực hiện giải mã là khác nhau. Bằng một số phép thử chosen-
plaintext, người phá mã có thể biết được các bít của d là 0 hay 1 và từ đó biết được d.
Phương pháp phá mã này là một ví dụ cho thấy việc thiết kế một hệ mã an toàn rất phức
tạp. Người thiết kế phải lường trước được hết các tình huống có thể xảy ra.

2.2.3. Quản lý khóa

Khi hai người sử dụng muốn truyền dữ liệu với nhau bằng phương pháp mã hóa
khóa công khai, trước tiên họ phải trao đổi khóa công khai cho nhau. Vì đây là khóa
công khai nên không cần giữ bí mật việc trao đổi này, khóa có thể truyền công khai trên
kênh thường. Alice và Bob, hay bất cứ người nào khác có thể công bố rộng rãi khóa
công khai của mình theo mô hình bên dưới:

41
Hình 2-5. Trao đổi khóa công khai tự phát

Tuy nhiên ở đây chúng ta lại gặp phải vấn đề về chứng thực. Làm như thế nào mà
Alice có thể đảm bảo rằng KUB chính là khóa công khai của Bob? Trudy có thể mạo
danh Bob bằng cách lấy khóa KUT của Trudy và nói rằng đó là khóa công khai của Bob.

Vì vậy, việc trao đổi khóa công khai theo mô hình trên đặt gánh nặng lên vai của
từng cá nhân. Alice muốn gửi thông điệp cho Bob hay bất cứ người nào khác thì phải
tin tưởng vào khóa công khai của Bob hay của người đó. Tương tự như vậy cho Bob.
Để giảm gánh nặng cho từng cá nhân, một mô hình gọi là “chứng chỉ khóa công
khai‟ (public-key certificate) được sử dụng. Trong mô hình này có một tổ chức làm
nhiệm vụ cấp chứng chỉ được gọi là trung tâm chứng thực (Certificate Authority – CA).
Các bước thực hiện cấp chứng chỉ cho Alice như sau:
1) Alice gửi định danh IDA và khóa công khai KUA của mình đến trung tâm
chứng thực.
2) Trung tâm chứng nhận kiểm tra tính hợp lệ của Alice, ví dụ nếu IDA là
“Microsoft”, thì Alice phải có bằng chứng chứng tỏ mình thực sự là công ty
Microsoft.
3) Dựa trên cơ sở đó, trung tâm chứng thực cấp một chứng chỉ CA để xác nhận
rằng khóa công khai KUA đó là tương ứng với IDA. Chứng chỉ được ký chứng thực
bằng khóa riêng của trung tâm để đảm bảo rằng nội dung của chứng chỉ là do trung tâm
ban hành.

42
CA = E(IDA|| KUA , KRAuth)

(|| là phép nối dãy bít)

4) Alice công khai chứng chỉ CA .


5) Bob muốn trao đổi thông tin với Alice thì sẽ giải mã CA bằng khóa công khai
của trung tâm chứng thực để có được khóa công khai KUA của Alice. Do đó nếu Bob
tin tưởng vào trung tâm chứng thực thì Bob sẽ tin tưởng là KUA là tương ứng với IDA,
tức tương ứng với Alice.

C = E(ID || K ,
CB = E(IDB|| KUB ,
KRAuth)
A B
CB

Hình 2-6. Trao đổi khóa công khai dùng trung tâm chứng thực

Như vậy có thể thấy rằng nếu Bob muốn gởi thông điệp cho Alice, Cindy, hay
Darth…, thì Bob không cần phải tin tưởng vào khóa công khai của Alice, Cindy, hay
Darth nữa. Bob chỉ cần tin tưởng vào trung tâm chứng thực và khóa công khai của trung
tâm chứng thực là đủ.
Hiện nay mô hình chứng chỉ khóa công khai đang được áp dụng rộng rãi với chuẩn
của chứng chỉ là chuẩn X.509. Trên thế giới có khoảng 80 tổ chức chứng thực chứng
chỉ khóa công khai.
Dùng mã hóa khóa công khai để trao đổi khóa bí mật

Do đặc điểm toán học của phương pháp mã hóa khóa công khai, thời gian mã hóa
và giải mã của phương pháp này chậm hơn so với phương án mã hóa đối xứng. Trong
thực tế, đối với vấn đề bảo đảm tính bảo mật, người ta vẫn sử dụng phương pháp mã
hóa đối xứng. Mã hóa khóa công khai được dùng để thiết lập khóa bí mật cho mỗi phiên
trao đổi dữ liệu. Lúc này khóa bí mật được gọi là khóa phiên (session key), các phiên

43
trao đổi dữ liệu khác nhau sẽ dùng các khóa bí mật khác nhau.
Hình dưới mô tả một mô hình đơn giản để thiết lập khóa phiên KS giữa Alice và
Bob.

1.CA
2.CB

3.E( E(KS, KRA), KUB)


4. E(P, KS)

Hình 2-7. Thiết lập khóa phiên bí mật bằng mã hóa khóa công khai

Alice tạo một khóa phiên KS , mã hóa bằng khóa riêng của Alice, sau đó mã hóa
bằng khóa công khai của Bob. Bob giải mã KS dùng khóa riêng của Bob và khóa công
khai của Alice. Nhờ tính bảo mật, Alice biết chắc rằng ngoài Alice chỉ có Bob mới biết
được KS. Nhờ tính không từ chối, Bob biết rằng ngoài Bob chỉ có Alice mới biết được
KS vì Alice dùng khóa riêng để mã hóa KS. Do đó KS có thể dùng làm khóa bí mật cho
mã hóa đối xứng để trao đổi dữ liệu giữa Alice và Bob. Sau phiên trao đổi dữ liệu, KS
được hủy bỏ nên khóa bí mật này sẽ ít có khả năng bị lộ. Lúc này vai trò của mã hóa
khóa công khai không phải là bảo mật dữ liệu nữa (việc này do mã hóa đối xứng đảm
trách) mà là bảo đảm tính bí mật của khóa đối xứng, chỉ có A và B biết khóa KS.
Phương pháp trao đổi khóa Diffie – Hellman

Phương pháp trao đổi khóa Diffie-Hellman dùng để thiết lập một khóa bí mật giữa
người gởi và người nhận mà không cần dùng đến mã hóa công khai như ở phần 4.6.2.
Phương pháp này dùng hàm một chiều làm hàm logarith rời rạc. Diffie-Hellman không
có ý nghĩa về mặt mã hóa giống như RSA.

Trước tiên Alice và Bob sẽ thống nhất sử dụng chung một số nguyên tố p và một
số g nhỏ hơn p và là primitive root của p (nghĩa là phép toán gx mod p khả nghịch). Hai
số p và g không cần giữ bí mật. Sau đó Alice chọn một số a và giữ bí mật số a này. Bob
cũng chọn một số b và giữ bí mật số b. Tiếp theo Alice tính và gửi ga mod p cho Bob,
Bob tính và gửi gb mod p cho Bob. Trên cơ sở đó Alice tính:

(gb)a mod p = gab mod p


44
Bob tính:

(ga)b mod p = gab mod p

Do đó Alice và Bob có chung giá trị gab mod p. Giá trị này có thể dùng làm khóa
cho phép mã hóa đối xứng.

Như vậy, kẻ phá mã Trudy có thể có được g, p, ga và gb . Muốn tính được gab
mod p, Trudy không thể dùng cách:

gagb mod p = ga+b mod p ≠ gab mod p

Muốn tính được gab mod p , Trudy phải tính được a hoặc được b. Tuy nhiên việc
tính
a hay b theo công thức:

a = dlogg, p ga hay b = dlogg, p gb

là không khả thi do tính phức tạp của phép logarith rời rạc. Vậy Trudy không thể
nào tính được gab mod p. Hay nói cách khác, khóa dùng chung được trao đổi bí mật
giữa Alice và Bob.
Tuy nhiên, thuật toán Diffie-Hellman lại thất bại đối với cách tấn công kẻ-đứng-
giữa. Trong phương pháp tấn công này, Trudy đứng giữa Alice và Bob. Trudy chặn các
thông điệp của Alice và Bob, giả mạo các thông điệp mà Alice và Bob không hay biết.
Alice vẫn nghĩ là nhận dữ liệu từ Bob và ngược lại.

Do đó Trudy có thể thiết lập khóa Diffie-Hellman gat mod p với Alice và khóa gbt mod
p với Bob. Khi Alice gửi dữ liệu, Trudy giải mã bằng khóa gat mod p, sau đó mã hóa lại
bằng gbt mod p và gửi cho Bob. Như vậy Alice và Bob không hay biết còn Trudy thì
xem trộm được dữ liệu.

45
Hình 2-8. Tấn công kẻ-đứng-giữa với phương pháp Diffie--Hellman

Để an toàn, quá trình thiết lập khóa Diffie-Hellman vẫn phải được mã hóa bằng
một khóa công khai. Lúc này một câu hỏi được đặt ra là nếu đã được bảo vệ bằng khóa
công khai rồi, thì có thể chọn khóa đối xứng bất kỳ, cần gì chọn khóa Diffie-Hellman?
Tuy nhiên có một số trường hợp, khi mà cách thức tấn công kẻ-đứng-giữa không thể
thực hiện được, thì phương thức Diffie-Hellman tỏ ra rất hữu dụng.

Giả sử Trudy ghi nhận lại hết tất cả các thông điệp giữa Alice và Bob. Sau này
nếu Trudy phát hiện ra được khóa riêng KRA và KRB của Alice và Bob, Trudy có thể
khôi phục lại được khóa đối xứng KS. Và từ đó Trudy có thể khôi phục lại các bản rõ
mà được mã hóa bằng khóa KS này. Bây giờ ta xét mô hình sau dùng Diffie-Hellman
được bảo vệ bằng mã hóa khóa công khai:

CA

CB

E(E(gb mod p||T , KRB), KUA)

Hình 2-9. Bảo vệ khóa Diffie-Hellman bằng khóa công khai

Trong mô hình trên, dù cho sau này Trudy phát hiện ra được khóa riêng KRA và
KRB của Alice và Bob, và Trudy tìm ra được ga mod p và gb mod p. Tuy vậy, Trudy

cũng không thể nào khôi phục lại được khóa bí mật gab mod p. Và do đó không thể
khôi phục lại các bản rõ giữa Alice và Bob. Đây chính là ý nghĩa của phương pháp
Diffie-Hellman.

2.3. Chứng thực thông tin

2.3.1. Giới thiệu về chứng thực thông tin

Để tìm hiểu về tính chứng thực của mã hóa đối xứng và mã hóa khóa công khai,
trong những bài trước, chúng ta đã giả sử rằng một thông điệp có ý nghĩa thì phải có

46
một cấu trúc nào đó. Chẳng hạn như đối với ngôn ngữ, một câu văn chỉ có ý nghĩa khi
chữ cái được kết hợp với nhau theo các quy tắc từ vựng và ngữ pháp của một ngôn ngữ.
Do đó nếu Trudy can thiệp sửa đổi bản mã thì bản giải mã sẽ là một chuỗi bít vô nghĩa,
và người nhận biết được là dữ liệu đã bị thay đổi. Ta có hai kết luận sau về tính chứng
thực của mã hóa đối xứng và mã hóa khóa công khai:
- KL1: Trudy không thể tìm ra một bản mã CT, sao cho khi Bob giải mã bằng
khóa KAB (hay khóa KUA với mã khóa công khai) cho ra bản rõ PT có ý nghĩa theo ý
muốn của Trudy.
- KL2: Hơn nữa, Trudy cũng không thể tìm ra một bản mã CT sao cho PT là một
bản tin có ý nghĩa, mà chỉ là một dãy bít lộn xộn, không cấu trúc.

Tuy nhiên trong thực tế có nhiều loại dữ liệu mà các bít gần như là ngẫu nhiên.
Chẳng hạn như dữ liệu hình ảnh bitmap hay âm thanh. Ngoài ra đối với máy tính, việc
nhận dạng ra thế nào là dãy bít có ý nghĩa là một công việc khó khăn. Do đó trong thực
tế, chúng ta hầu như chấp nhận rằng bất cứ dãy bít nào cũng có thể có ý nghĩa. Lúc này
các phương pháp mã hóa đối xứng và mã hóa công khai không thể bảo đảm tính chứng
thực.
Để giải quyết vấn đề này, mã hóa phải vận dụng khái niệm redundancy của lĩnh
vực truyền số liệu, tức thêm vào một ít dữ liệu (checksum) để biến bản tin, từ dãy bít
ngẫu nhiên, trở thành dãy bít có cấu trúc.

Trong quá trình truyền số liệu, do tác động nhiễu của môi trường, bản tin lúc đến
đích có thể bị sai lệch so với bản tin ban đầu trước khi truyền. Để phát hiện nhiễu, một
đoạn bít ngắn gọi là checksum được tính toán từ dãy bít của bản tin, và gắn vào sau bản
tin để tạo redundancy, và được truyền cùng với bản tin đến đích.

bản tin checksum

Chúng ta hãy xem xét lại một phương pháp kiểm lỗi checksum phổ biến là CRC
(cyclic redundancy check). Trong phương pháp này, một đoạn bít ngắn được chọn làm
số chia, lấy dãy bít của thông điệp chia cho số chia này, phần dư còn lại được gọi là
giá trị checksum CRC. Phép chia này khác phép chia thường ở chỗ dùng phép XOR
thay cho phép trừ. Giả sử thông điệp là 10101011 và số chia là 10011, quá trình tính

47
như sau:

10101011 10011

10011 1011

11001

10011

10101

10011

110

Giá trị CRC là phần dư 0110 (ít hơn 1 bít so với số chia). Giá trị này được gửi
kèm thông điệp đến người nhận. Người nhận cũng thực hiện phép tính CRC như vậy.
Nếu giá trị CRC người nhận tính được trùng khớp với CRC của người gửi thì có nghĩa
là thông điệp không bị lỗi trong quá trình truyền dữ liệu. Trong phương pháp CRC
không khó để tìm ra hai dãy bít khác nhau mà có cùng CRC. Có nghĩa là có thể xảy ra
lỗi mà không phát hiện được. Tuy nhiên xác suất ngẫu nhiên xảy ra lỗi trên đường
truyền mà làm cho dãy bít truyền và dãy bít nhận có cùng giá trị CRC là rất thấp.

Nếu áp dụng cơ chế checksum vào chứng thực thông điệp, người gởi có thể tính
checksum từ dãy bít của thông điệp, sau đó nối checksum này vào dãy bít đó. Như vậy
chúng ta được một dãy bít có cấu trúc. Sau đó tiến hành mã hóa đối xứng hay mã hóa
công khai trên dãy bít mới. Vì kích thước của checksum là ngắn nên cũng không ảnh
hưởng lắm đến tốc độ mã hóa và băng thông sử dụng.

48
Cụ thể, mô hình mã hóa đối xứng bảo mật và chứng thực được sửa thành như sau:

Hình 2-10. Mô hình chứng thực mã hóa đối xứng có dùng checksum

Mô hình chứng thực bằng mã hóa khóa công khai được sửa thành:

Hình 2-11. Mô hình chứng thực mã hóa khóa công khai có dùng checksum

Nếu Trudy sửa bảng mã C, thì bản giải mã của Bob, ký hiệu MT và CST, sẽ mất
đi tính cấu trúc. Nghĩa là checksum CSB mà Bob tính được từ MT không giống với
CST. Và Bob biết được là bản tin bị thay đổi đường truyền. Nếu hàm checksum có độ
phức tạp cao thì xác suất để CSB = CST là rất thấp.
Ngoài ra còn có hai phương thức chứng thực thông điệp khác mà chúng ta sẽ tìm
hiểu là mã chứng thực thông điệp MAC và hàm băm (Hash function).

2.3.2. Các hàm băm và giải thuật HMAC

a) Mã chứng thực thông điệp


Mã chứng thực thông điệp (MAC) có thể coi là một dạng checksum của mã hóa, được
tính theo công thức MAC = C(M, K), trong đó:
1) M là thông điệp cần tính MAC
2) K là khóa bí mật được chia sẽ giữa người gởi và người nhận
3) C là hàm tính MAC
Vì MAC có khóa K bít mật giữa người gởi và người nhận nên chỉ có người gởi và người
nhận mới có thể tính được giá trị MAC tương ứng. Mô hình ứng dụng MAC để chứng
thực thông điệp như sau:
Bên gửi Bên nhận

MAC
MAC
Tính MAC

Khóa bí mật So sánh


Khóa bí mật K

Hình 2-12. Chứng thực dùng MAC

Trudy, nếu chỉ sửa M thành MT thì giá trị MACB sẽ khác MACA và Bob phát hiện
được. Nếu Trudy muốn sửa thông điệp mà Bob không biết, thì cần sửa luôn MACA
thành MACT tính được từ MT. Tuy nhiên Trudy không biết khóa K, do đó không tính
được MACT cần thiết. Mô hình trên không đảm bảo tính bảo mật. Để có tính bảo mật,
M và MACA cần được mã hóa trước khi truyền đi.

Trong phần trước, ta đã thấy mã hóa đối xứng cũng có tính chứng thực, như vậy
thì tại sao không dùng mã hóa đối xứng mà cần dùng MAC? Câu trả lời là trong một số
trường hợp người ta không cần tính bảo mật mà chỉ cần tính chứng thực, nên sử dụng
MAC tiết kiệm được thời gian xử lý hơn.
Trong thực tế, người ta hay dùng mô hình CBC và phương pháp DES của mã hóa
đối xứng để tính giá trị MAC. Hình dưới đây trình bày lại mô hình CBC

Như vậy thông điệp M sẽ được chia thành các khối (P0, P1, …, Pn-1), dùng thêm một
vector khởi tạo IV, thì bản mã Cn-1 được chọn làm giá trị MAC cho M. Như vậy kích
thước của MAC là 64 bít, kích thước của khóa K là 56 bít.
b) Hàm băm – Hash function

Trong khi phương pháp checksum CRC cho phép hai dãy bít có cùng checksum,
thì hàm băm H(x) là một hàm tính checksum mạnh thỏa mãn các yêu cầu sau:
1. H có thể áp dụng cho các thông điệp x với các độ dài khác nhau
2. Kích thước của output h = H(x) là cố định và nhỏ
3. Tính một chiều: với một h cho trước, không thể tìm lại được x sao cho h = H(x)
(về mặt thời gian tính toán)
4. Tính chống trùng yếu: cho trước một x, không thể tìm y≠ x sao cho H(x) = H(y)
5. Tính chống trùng mạnh: không thể tìm ra cặp x, y bất kỳ (x≠y) sao cho H(x)
=H(y), hay nói cách khác nếu H(x) = H(y) thì có thể chắc chắn rằng x = y.

Kích thước của input x là bất kỳ còn kích thước của h là nhỏ, ví dụ giả sử kích
thước của x là 512 bít còn kích thước của h là 128 bít. Như vậy trung bình có khoảng
2384 giá trị x mà có cùng giá trị h. Việc trùng là không thể loại bỏ. Tính chống trùng của
hàm Hash là yêu cầu rằng việc tìm ra hai input x như vậy thì phải là rất khó về mặt thời
gian tính toán.

Hình 2-13. Ánh xạ giữa thông điệp và giá trị hash không phải là song ánh

Lấy ví dụ với đối tượng con người. Xét hai hàm sau: hàm lấy khuôn mặt và hàm
lấy dấu vây tay. Có thể thấy hàm lấy khuôn mặt không phải là hàm hash vì chúng có
thể tìm ra 2 người giống nhau ở khuôn mặt. Còn hàm lấy dấu vân tay là hàm hash vì
trên khắp thế giới không tìm ra hai người giống nhau về dấu vân tay.
Một yêu cầu nữa của hàm Hash là kích thước của output h không được quá lớn.
Nếu kích thước h lớn thì dễ đạt được tính chống trùng tuy nhiên sẽ tốn dung lượng
đường truyền.

Hàm băm cũng có thể dùng để tính MAC bằng cách truyền thêm khóa bí mật K vào hàm
băm. Lúc này, giá trị kết xuất được gọi là HMAC - keyed-hash message authentication
code (HMAC or KHMAC). Đây là một kiểu của message authentication code
(MAC). HMAC được tính toán bằng cách sử dụng một hàm hash cùng với khóa bí mật.
Bây giờ, chúng ta có hàm hash như sau: H(M,K)=h, trong đó M là dữ liệu cần băm và
K là khóa bí mật. Với việc dùng thêm secret key, hàm HMAC cung cấp thêm tính năng
xác thực nguồn tin và có thể chống lại man-in-the-middle attack.

Chúng ta xem lại ví dụ “Alice truyền dữ liệu (M) cho Bob”. Để đảm bảo dữ liệu toàn
vẹn và thêm tính năng xác thực bằng cách dùng secret key (K), Alice thực hiện băm dữ
liệu H(M,K)=h và gửi kèm giá trị này với M. Bên Bob, khi nhận được dữ liệu sẽ băm
lại H(M,K)=x và so sánh “x” với giá trị “h” gửi kèm. Nếu x=h thì M không bị thay đổi
trong khi truyền. Giả sử có một attacker đứng giữa Alice – Bob và đánh cắp dữ liệu
nhưng không biết secret key (K). Attacker biến đổi Mà M’, băm lại giá trị
này H(M’,K’)=h’ và gửi cặp (M’,h’) sang cho Bob. Phía nhận tính toán
lại, H(M’,K)=x’ và so sánh với “h’”. Kết quả khác nhau vì tập đầu vào (M’,K)
phía Bob khác với (M’,K’) phía attacker. Điều này chứng tỏ dữ liệu bị thay đổi và không
phải do Alice gửi.

2.3.3. Chữ ký số

Trong phần này chúng ta tìm hiểu cách thức ứng dụng hàm băm vào vấn đề chứng
thực mà ta gọi là chữ ký điện tử. Việc sử dụng khóa bí mật chung cho người gửi và
người nhận trong mã chứng thực thông điệp MAC sẽ gặp phải vấn đề tính không từ chối
tương tự như mã hóa đối xứng. Dùng hàm băm và mã hóa khóa công khai khắc phục
được vấn đề này.
Trước tiên xét một mô hình đơn giản:
Trong mô hình này Alice tính giá trị băm của thông điệp cần gửi và gửi kèm cho
Bob. Bob tính lại giá trị băm của thông điệp nhận được và so sánh với giá trị băm của
Alice. Tương tự như vấn đề download file, nếu Trudy sửa thông điệp M thì HB ≠ HA và
Bob sẽ phát hiện.
Tuy nhiên, Trudy cũng có thể sửa luôn giá trị băm HA do Alice gửi và Bob không
thể phát hiện. Để tránh vấn đề này cần sử dụng mã hóa khóa công khai để chứng thực
HA theo mô hình sau:

Hình 2-14. Mô hình chữ ký điện tử

Trong mô hình này, Alice sau khi tính giá trị hash HA cho thông điệp M thì sẽ
mã hóa HA bằng khóa riêng của Alice để tạo thành chữ ký điện tử DS. Alice gửi kèm
DS theo M cho Bob. Bob dùng khóa công khai của Alice để giải mã chữ ký điện tử DS
và có được giá trị hash HA của Alice. Vì Trudy không có KRA nên không thể sửa được
HA.
Ngoài ra, vì Alice là người duy nhất có KRA, nên chỉ có Alice mới có thể tạo DS
từ M. Do đó Alice không thể từ chối là đã gửi bản tin.

Vậy dùng chữ ký điện tử thì có ưu điểm gì hơn so với cách dùng checksum trong
mô hình ở hình 5-2? Chữ ký điện tử chỉ cần mã hóa giá trị hash mà không cần mã hóa
toàn bộ thông điệp M. Vì phương pháp mã hóa khóa công khai tốn kém thời gian nên
nếu M là một thông điệp dài, thì việc không mã hóa M giúp tiết kiệm được nhiều thời
gian.

2.4. Mã hóa tập tin trên Windows

Mỗi hệ điều hành lại có một loại định dạng ổ cứng khác nhau, mặc dù chúng vẫn dùng
chung một thiết bị ổ cứng vật lý. Ví dụ như Linux thì sử dụng ext3, ex4 và ext2, trong
khi đó macOS lại sử dụng Apple FIle System - APFS, còn với hệ điều hành Window ta
có New Technology File System -–NTFS. Để sử dụng được ổ cứng trên hệ điều hành
nào thì phải định dạng ổ cứng của mình theo định dạng quy định sẵn ở trên hệ điều hành
đó.
Windows 10 là một trong những hệ điều hành bị kẻ xấu nhắm tới nhiều nhất, vì đây là
hệ điều hành sử dụng phổ biến nhất hiện nay. Vậy nên việc mã hóa ổ cứng NTFS là một
lớp bảo vệ an toàn cho những dữ liệu được lưu trên ổ cứng. Trên Windows 10 có sẵn
một tính năng giúp mã hóa các tập tin và thư mục đã lưu trên ổ cứng với định dạng
NTFS, với mục đích là để bảo vệ chúng khỏi các truy cập không mong muốn, nó có tên
là Encrypting File System hay EFS. EFS cung cấp khả năng mã hóa cũng như giải mã
hiệu quả nhờ sử dụng các thuật toán mã hóa tiêu chuẩn và tiên tiến. Một khi tập tin đã
được mã hóa thì bất kỳ người dùng hay ứng dụng nào nếu không có key mã hóa chính
xác sẽ không thể mở hay chỉnh sửa tập tin đó được.
Mã hóa hệ thống tệp hoặc là Mã hóa EFS – Encrypting File System là một trong các
thành phần của hệ thống tệp NTFS. Nó có sẵn trên một loạt các hệ điều hành Windows.
Nó cũng được hỗ trợ trên các phiên bản Windows 10, Windows 8.1, Windows 8,
Windows 7, Windows Vista, Windows XP, Windows 2000 và Windows Server. Có các
hệ thống tệp mật mã khác có sẵn trên các hệ điều hành khác ngoài Windows
nhưng Microsoft EFS chỉ dành riêng cho Hệ điều hành Windows. Nó sử dụng mã hóa
khóa đối xứng với sự kết hợp với công nghệ khóa công khai để bảo vệ tệp. Dữ liệu tệp
sau đó được mã hóa bằng thuật toán đối xứng được gọi là DESX.
Khóa được sử dụng cho các loại mã hóa đối xứng này được gọi là Khóa mã hóa tệp
(hoặc FEK). FEK này được trả về được mã hóa bằng thuật toán công khai hoặc khóa
riêng tư như RSA và được lưu trữ với tệp. Khía cạnh tích cực chính của việc sử dụng
hai thuật toán khác nhau là tốc độ mã hóa các tệp đó. Và sự gia tăng tốc độ mã hóa các
tệp này giúp người dùng mã hóa hiệu quả các khối dữ liệu lớn. Tốc độ của các thuật
toán đối xứng nhanh hơn 1000 lần so với các kỹ thuật mã hóa bất đối xứng truyền thống.

Quá trình mã hóa EFS


Quá trình này khá đơn giản nhưng an toàn.
Mã hóa
Bước đầu tiên liên quan đến tập tin. Sử dụng Khóa đối xứng (FEK), tệp được mã hóa.
Bây giờ Khóa đối xứng (FEK) được mã hóa bằng khóa công khai cho người dùng và
FEK được mã hóa được lưu trữ trong tiêu đề của tệp được mã hóa.
Giải mã
Trước hết, FEK được mã hóa từ Tiêu đề của tệp được mã hóa được tìm nạp và giải mã
bằng Khóa công khai.
Bây giờ, FEK được giải mã được sử dụng để giải mã tệp được mã hóa cuối cùng và sau
đó tệp được thực hiện có thể đọc được đối với người dùng được ủy quyền.

Cách mã hóa FILE hoặc THƯ MỤC trên Windows 10, 8, 7


Bật tính năng mã hóa file trên Windows 10 bằng Local Group Policy Editor.
Local Group Policy Editor là một công cụ rất tốt để có thể tùy biến hệ thống Windows
10. Tuy nhiên nó chỉ có thể sử dụng được trên Windows 7, 8, 10 với bản Pro, Enterprise,
Edu mà thôi, phiên bản Windows 10 Home không được trang bị công cụ này.
+ Bước 1: Đầu tiên, mở hộp thoại Run bằng tổ hợp phím Windows + R, nhập vào
lệnh gpedit.msc => rồi bấm Enter để truy cập nhanh vào Local G roup Policy
Editor trên Windows 10.

+ Bước 2: Cửa sổ Local Group Policy Editor hiện ra, truy cập vào thư mục NTFS theo
đường dẫn sau:
Computer Configuration\Administrative Templates\System\Filesystem\NTFS
Vì công cụ này không có thanh địa chỉ như Registry Editor nên buộc phải tự truy cập
thông qua cây thư mục bên trái.
=> Sau khi vào được, hãy tìm trong danh sách các policies bên phải một policy có
tên Do not allow encryption on all NTFS volumes => Click chọn policy này rồi
bấm policy setting hoặc double-click lên tên để chỉnh sửa cài đặt của nó.
+ Bước 3: Tại đây, hãy chuyển từ tùy chọn mặc định là Not
configured sang Disabled để kích hoạt tính năng mã hóa NTFS trên Windows 10 => sau
đó bấm OK để lưu thiết lập này, và khởi động lại máy tính để các thay đổi có hiệu lực.
Ngược lại, nếu muốn tắt tính năng này chỉ việc chuyển sang Enabled và lưu lại là
xong.

Cách mã hóa tập tin, thư mục trên Windows 10

Sau khi kích hoạt tính năng mã hóa NTFS, chúng ta cần làm theo các bước sau để mã
hóa một tập tin, một thư mục bất kỳ trên Windows 10.

+ Bước 1: Hãy mở File Explorer lên bằng cách nhấn tổ hợp Windows + E => click
chuột phải vào tập tin hoặc thư mục muốn mã hóa => rồi chọn Properties.
+ Bước 2: Cửa sổ Properties xuất hiện => ở phần Attribute s trong tab General hãy tìm
và click vào nút Advanced để mở các cài đặt về thuộc tính nâng cáo của thư mục, tập
tin đang lựa chọn.
+ Bước 3: Lúc này, ở mục Compress or encrypt attri butes sẽ có hai lựa chọn là:

 Compress contents to save disk space:Nén thư mục, tập tin để tiết kiệm dung
lượng.

 Encrypt contents to secure data: Mã hóa tập tin, thư mục để bảo vệ chúng.
Tích chọn vào dòng Encrypt contents to s ecure data => rồi bấm OK để xác nhận việc
mã hóa dữ liệu của tập tin, thư mục đang chọn. Chúng ta cũng có thể lựa chọn nén các
tập tin, thư mục để tiết kiệm dung lương ổ cứng nếu muốn.
Bên cạnh đó, nếu dòng Encrypt c ontents to secure data không sáng lên nghĩa là tính
năng này vẫn chưa được kích hoạt, cần kiểm tra kỹ các bước bên trên và thực hiện lại
nếu có thể.

Câu hỏi ôn tập:

1. Nêu điểm yếu của mã hóa đối xứng.


2. Nêu nguyên tắc của mã hóa khóa công khai? Tại sao trong mã hóa khóa công
khai không cần dùng đến kênh an toàn để truyền khóa?
3. Trong mã hóa khóa công khai, khóa riêng và khóa công khai có phải là 2 khóa
tùy ý, không liên quan? Nếu có liên quan, tại sao không thể tính khóa riêng từ khóa
công khai?
4. Ngoài vấn đề truyền khóa, mã hóa khóa công khai còn ưu điểm hơn mã hóa đối
xứng ở điểm nào?
5. Nêu nhược điểm của mã hóa khóa công khai.
6. Diffie-Hellman không phải là một phương pháp mã hóa khóa công khai. Vậy
Diffie-Hellman là gì?
7. Để bảo đảm tính chứng thực dùng mã hóa đối xứng hay mã hóa khóa công khai,
bản rõ phải có tính chất gì? Tại sao?
8. Nếu bản rõ là một dãy bít ngẫu nhiên, cần làm gì để bản rõ trở thành có cấu trúc?
9. Sử dụng MAC để chứng thực có ưu điểm gì so với chứng thực bằng mã hóa đối
xứng?
BÀI 3: BẢO MẬT WEB VÀ EMAIL
3.1. Bảo mật Web

Trên thực tế bất kỳ trang web cũng đều có nguy cơ bị xâm phạm. Khi website có
lỗ hổng, hacker dễ dàng xâm nhập, tấn công và khai thác dữ liệu khiến website bị nhiễm
độc gây nguy hiểm không chỉ cho chủ sở hữu trang web mà cho cả những khách truy
cập. Phần lớn các vi phạm bảo mật trang web không phải là để đánh cắp dữ liệu hoặc
phá hoại bố cục trang web, mà là sử dụng máy chủ của trang để chuyển tiếp email spam
hoặc thiết lập máy chủ web tạm thời, thông thường để phục vụ các file bất hợp pháp.
Các máy bị xâm nhập có thể bị biến thành một phần của mạng botnet, để đào Bitcoin,
hoặc dùng ransomware tấn công nạn nhân. Với sự phát triển của các hệ thống mã hóa,
một loạt các giao thức đã được sử dụng để tăng cường bảo mật cho website. Tiêu biểu
như SSL và TLS, giao thức HTTPS.

Giao thức SSL


Về cơ bản SSL (viết tắt của Secure Sockets Layer – Lớp cổng bảo mật) là một công
nghệ tiêu chuẩn để giữ kết nối internet được an toàn. Nó giúp bảo vệ những dữ liệu nhạy
cảm của người dùng khi truy vấn tài nguyên mạng, ngăn chặn tội phạm công nghệ có
thể sửa đổi, đánh cắp các dữ liệu quan trọng như thông tin thẻ tín dụng, nội dung email,
giao dịch ngân hàng…

SSL sẽ nâng cao bảo mật trên trình duyệt, đảm bảo mọi dữ liệu được truyền tải giữa máy
chủ và máy khách được an toàn thông qua việc mã hóa dữ liệu bằng các thuật toán phức
tạp khiến nó khó có thể đọc hơn.

Bên cạnh SSL, còn có một chứng chỉ bảo mật khác là TLS.

TLS – Transport Layer Security


TLS – Transport Layer Security (Bảo mật lớp truyền tải) là một phiên bản mới của SSL
được cập nhật thường xuyên. Cả SSL và TLS đều là giao thức bảo mật thông tin truyền
tải trên Internet. Trên thực tế chúng ta vẫn thường sử dụng tên gọi SSL do chúng phổ
biến hơn.

Nhưng khi sử dụng SSL có nghĩa là cũng đang sử dụng TLS với tùy chọn mã hóa ECC,
RSA hoặc DSA theo một số nhà cung cấp dịch vụ bảo mật SSL cho website.
Khi website được cài đặt SSL, trên thanh địa chỉ trình duyệt trạng thái sẽ được chuyển
sang https (Hyper Text Transfer Protocol Secure) thay vì http và được hiển thị hình một
chiếc khóa và lời cảnh báo bảo mật sẽ biến mất.

Lịch sử các phiên bản SSL


Dưới đây là lịch sử phát triển của SSL và TLS với các phiên bản qua các năm.

SSL 1.0 – Phiên bản thử nghiệm không được phát hành công khai do các vấn đề bảo
mật.

SSL 2.0 – Phát hành vào năm 1995 bởi Netscape Communications phát triển nhằm thực
hiện giao thức HTTPS trong trình duyệt . Cho đến năm 2011 nó bị gạt bỏ do vẫn có các
lỗ hổng bảo mật.

SSL 3.0 – Phát hành năm 1996. Bị loại bỏ vào năm 2015 do liên quan tới các vấn đề bảo
mật.

TLS 1.0 – Được phát hành vào năm 1999 dưới dạng bản nâng cấp lên SSL 3.0. Dự kiến
ngừng sử dụng vào năm 2020.

TLS 1.1 – Được phát hành vào năm 2006. Dự kiến ngừng sử dụng vào năm 2020.

TLS 1.2 – Được phát hát hành năm 2008.


TLS 1.3 – Được phát hát hành năm 2018.

Cách SSL và TLS hoạt động để bảo vệ dữ liệu


Khi website được cài đặt SSL/TLS trên máy chủ sẽ có một khóa công khai và khóa riêng
tư được bật. Khóa này sẽ có chức năng xác thực mã hóa trên máy chủ và bắt đầu mã hóa
luồng tin với giao thức https. Khi người dùng truy cập vào website, trình duyệt web trên
máy tính của họ sẽ tìm kiếm và kiểm tra chứng chỉ thông tin về SSL/TLS của trang web.

Nếu chứng chỉ SSL không hợp lệ, người dùng của bạn có thể gặp phải lỗi “kết nối của
bạn không phải là riêng tư “, điều này có thể khiến họ rời khỏi trang web của bạn. Nhất
là đối với các website thương mại điện tử, ngân hàng… (những website có hoạt động
mua bán liên quan trực tiếp tới tài giao dịch tiền tệ). Khi website được xác nhận chứng
chỉ SSL hợp lệ nó sẽ tạo ra các liên kết thông tin được mã hóa giữa máy chủ và máy
khách, việc này khiến quá trình giao nhận dữ liệu được nâng cao bảo mật, khó đánh cắp
hơn, khó đọc dữ liệu hơn.

Quá trình này được mô tả đơn giản qua 5 bước sau đây:

1.Trình duyệt kết nối với máy chủ web được bảo mật bằng SSL (https). Trình duyệt
yêu cầu máy chủ tự nhận dạng.

2. Máy chủ gửi một bản sao chứng chỉ SSL của nó, bao gồm cả khóa công khai và
riêng tư của máy chủ.

3. Trình duyệt kiểm tra gốc chứng chỉ dựa trên danh sách CA đáng tin cậy. Nếu trình
duyệt tin cậy chứng chỉ, nó sẽ tạo, mã hóa và gửi lại khóa phiên đối xứng bằng khóa
công khai cho máy chủ.

4. Máy chủ giải mã khóa phiên đối xứng bằng khóa riêng của nó và gửi lại một xác
nhận được mã hóa bằng khóa phiên để bắt đầu phiên được mã hóa.

5. Máy chủ và trình duyệt hiện mã hóa tất cả dữ liệu được truyền bằng khóa cho phiên
hoạt động.

Cần biết thêm, giao thức HTTP là giao thức thông thường, đối với giao thức nâng cao
HTTPS chính cụm từ viết tắt của HTTP và SSL.

Nên sử dụng SSL hay TLS.


Như đã biết, TLS là một phiên bản nâng cao sửa đổi cho SSL, tuy nhiên qua hơn hai
thập kỷ chúng ta đã quá quen với cái tên SSL. Và cho đến tận ngày nay chúng ta vẫn
gọi nó với thuật ngữ SSL.

Trên thực tế, các nhà cung cấp chứng chỉ SSL (hoặc các đơn vị cung cấp hosting, máy
chủ) vẫn cập nhật các giao thức bảo mật mới với cái tên song song là “Chứng chỉ SSL
/ TLS” để giúp người dùng không bị nhầm lẫn.

Trong tương lai, khi việc hoàn thiện các giao thức bảo mật được tốt hơn, chúng ta sẽ dễ
dàng chuyển đổi giữa SSL và TLS, việc này có thể được cập nhật tự động hoặc qua các
công cụ hỗ trợ khác nhau.

3.2. Bảo mật Email

3.2.1 Giao thức OpenPGP

OpenPGP là một giao thức không độc quyền để mã hóa giao tiếp email bằng mật mã
khóa công khai. Nó dựa trên phần mềm PGP (Pretty Good Privacy) ban đầu. Giao thức
OpenPGP xác định các định dạng chuẩn cho tin nhắn, chữ ký và chứng chỉ được mã hóa
để trao đổi khóa chung.

Pretty Good Privacy được phát triển bởi nhà khoa học Phil Zimmerman vào năm 1991.
Phil Zimmerman chính là người muốn tạo ra một nền tảng mã hóa nguồn mở có thể
được sử dụng bởi bất kỳ ai trên thế giới mà không phải trả những khoản phí quá lớn. Cái
tên được lấy cảm hứng từ cửa hàng tạp hóa địa phương Zimmerman, Ralph's Pretty
Good Grocery. Sau khi phát hành công khai vào năm 1993, PGP đã được sử dụng rộng
rãi như một tiêu chuẩn cho mã hóa. Zimmerman lần đầu tiên phát hành các file cho cư
dân tại Hoa Kỳ (tải xuống qua FTP). Tuy nhiên, nhà khoa học Phil Zimmerman muốn
bất kỳ ai cũng có cơ hội tải xuống các file này, cho dù họ đang sống ở đâu. Một bản cập
nhật đã được phát hành vào năm 1996, nhưng chính phủ Mỹ lại cố gắng ngăn nó phổ
biến rộng rãi với lý do Zimmerman không có giấy phép xuất ra khỏi lãnh thổ nước Mỹ
theo quy định.

Zimmerman đã phát hành bản cập nhật vào năm 1996 thông qua công ty do ông thành
lập, PGP Inc. 14 năm sau, Zimmerman bán PGP Inc cho tập đoàn bảo mật khổng lồ
Symantec Group. Đây cũng là nhà phát triển phần mềm diệt virus hiện chịu trách nhiệm
cập nhật PGP để bảo vệ thông tin liên lạc qua email. Symantec Group cũng đã phát triển
một biến thể nguồn mở - OpenPGP, được sử dụng cùng với phiên bản được cấp phép.

Đặc điểm OpenPGP

OpenPGP là một trong những phần mềm được cung cấp rộng rãi đầu tiên để triển khai
mật mã khóa công khai. Nó là một hệ thống mật mã kết hợp, sử dụng cả mã hóa đối
xứng và mã hóa bất đối xứng để bảo đảm mức độ bảo mật cao.

PGP sử dụng kết hợp mật mã hóa khóa công khai và thuật toán khóa đối xứng cộng thêm
với hệ thống xác lập mối quan hệ giữa khóa công khai và chỉ danh người dùng (ID).
Phiên bản đầu tiên của hệ thống này thường được biết dưới tên mạng lưới tín nhiệm dựa
trên các mối quan hệ ngang hàng (khác với hệ thống X.509 với cấu trúc cây dựa vào các
nhà cung cấp chứng thực số). Các phiên bản PGP về sau dựa trên các kiến trúc tương tự
như hạ tầng khóa công khai.

PGP sử dụng thuật toán mật mã hóa khóa bất đối xứng. Trong các hệ thống này, người
sử dụng đầu tiên phải có một cặp khóa: khóa công khai và khóa bí mật. Người gửi sử
dụng khóa công khai của người nhận để mã hóa một khóa chung (còn gọi là khóa phiên)
dùng trong các thuật toán mật mã hóa khóa đối xứng. Khóa phiên này chính là khóa để
mật mã hóa các thông tin được gửi qua lại trong phiên giao dịch. Rất nhiều khóa công
khai của những người sử dụng PGP được lưu trữ trên các máy chủ khóa PGP trên khắp
thế giới (các máy chủ mirror lẫn nhau).

Người nhận trong hệ thống PGP sử dụng khóa phiên để giải mã các gói tin. Khóa phiên
này cũng được gửi kèm với thông điệp nhưng được mật mã hóa bằng hệ thống mật mã
bất đối xứng và có thể tự giải mã với khóa bí mật của người nhận. Hệ thống phải sử
dụng cả hai dạng thuật toán để tận dụng ưu thế của cả hai: thuật toán bất đối xứng đơn
giản việc phân phối khóa còn thuật toán đối xứng có ưu thế về tốc độ (nhanh hơn cỡ
1000 lần).

Một chiến lược tương tự cũng được dùng (mặc định) để phát hiện xem thông điệp có bị
thay đổi hoặc giả mạo người gửi. Để thực hiện 2 mục tiêu trên người gửi phải ký văn
bản với thuật toán RSA hoặc DSA. Đầu tiên, PGP tính giá trị hàm băm của văn bản đó
rồi tạo ra chữ ký số với khóa bí mật của người gửi và gửi cả văn bản và chữ ký số đến
người nhận. Khi nhận được văn bản, người nhận tính lại giá trị băm của văn bản đó đồng
thời giải mã chữ ký số bằng khóa công khai của người gửi. Nếu 2 giá trị băm này giống
nhau thì có thể khẳng định (với xác suất rất cao) là văn bản chưa bị thay đổi kể từ khi
gửi và người gửi đúng là người sở hữu khóa bí mật tương ứng.

Trong các đặc tả gần đây của OpenPGP, các chữ ký tin cậy có thể được sử dụng để tạo
ra các nhà cung cấp chứng thực số (CA). Một chữ ký tin cậy có thể chứng tỏ rằng một
khóa thực sự thuộc về một người sử dụng và người đó đáng tin cậy để ký xác nhận một
khóa của mức thấp hơn. Một chữ ký có mức 0 tương đương với chữ ký trong mô hình
mạng lưới tín nhiệm. Chữ ký ở mức 1 tương đương với chữ ký của một CA vì nó có khả
năng xác nhận cho một số lượng không hạn chế chữ ký ở mức 0. Chữ ký ở mức 2 tương
tự như chữ ký trong danh sách các CA mặc định trong Internet Explorer; nó cho phép
người chủ tạo ra các CA khác.

PGP cũng được thiết kế với khả năng hủy bỏ/thu hồi các chứng thực có khả năng đã bị
vô hiệu hóa. Về một khía cạnh nào đó, điều này tương đương với danh sách chứng thực
bị thu hồi của mô hình hạ tầng khóa công khai. Các phiên bản PGP gần đây cũng hỗ trợ
tính năng hạn sử dụng của chứng thực.

Vấn đề xác định mối quan hệ giữa khóa công khai và người sở hữu không phải là vấn
đề riêng của PGP. Tất cả các hệ thống sử dụng cặp khóa công khai và khóa bí mật đều
phải đối phó với vấn đề này và cho đến nay chưa có một giải pháp hoàn thiện nào được
tìm ra. Mô hình ban đầu của PGP trao cho quyền quyết định cuối cùng người sử dụng
còn các mô hình PKI thì quy định tất cả các chứng thực phải được xác nhận (có thể
không trực tiếp) bởi một nhà cung cấp chứng thực trung tâm.

Như vậy, OpenPGP sử dụng kết hợp mật mã hóa khóa công khai và thuật toán khóa đối
xứng cộng thêm với hệ thống xác lập mối quan hệ giữa khóa công khai và chỉ danh
người dùng ID. Người sử dụng đầu tiên phải có một cặp khóa: khóa công khai và khóa
bí mật. Người gửi sử dụng khóa công khai của người nhận để mã hóa một khóa chung
(còn gọi là khóa phiên). Khóa phiên được dùng để mã hóa dữ liệu còn khóa công khai
mã hóa chậm hơn nên được dùng để mã hóa khóa phiên. Người nhận sau khi nhận được
dữ liệu sẽ dùng khóa bí mật của mình để giải mã tìm ra khóa phiên, sau đó dùng khóa
phiên này để giải mã dữ liệu gốc.

3.2.2. Tiêu chuẩn Secure/Multipurpose Internet Mail Extensions (S/MIME)

Tiêu chuẩn Secure/Multipurpose Internet Mail Extensions (S/MIME) - Tiêu chuẩn an


toàn mở rộng thư Internet đa mục đích cung cấp một phương thức gửi/nhận thông điệp
thư Internet đa mục đích một cách an toàn do Nhóm chuyên trách kỹ thuật Internet
(Internet Engineering Task Force - IETF) phát hành dưới dạng RFC (RFC - Request for
Comments, là những tài liệu kỹ thuật và tổ chức về Internet, bao gồm những tài liệu đặc
tả kỹ thuật và chính sách được tổ chức IETF phát hành). S/MIME là một tiêu chuẩn cho
mã hóa khóa công khai (tham khảo trong Giải thuật mã hóa công khai RSA) và ký dữ
liệu mở rộng thư Internet đa mục đích MIME.

Trước khi công bố tiêu chuẩn S/MIME, các nhà quản trị chỉ sử dụng Giao thức truyền
thư đơn giản SMTP được chấp nhận rộng rãi, tuy nhiên, giao thức này không đảm bảo
an toàn hoặc có đảm bảo an toàn nhưng phải sử dụng các giải pháp mang tính độc quyền.
Do đó, các nhà quản trị lựa chọn một giải pháp nhằm tăng cường tính an toàn và đảm
bảo kết nối, S/MIME ra đời đã hỗ trợ giao thức SMTP chuyển sang một cấp độ tiếp theo
là cho phép kết nối thư điện tử phổ biến rộng rãi mà vẫn đảm bảo an toàn.

Các phiên bản S/MIME gồm:

- Phiên bản đầu tiên của S/MIME được các nhà cung cấp về an toàn bảo mật phát triển
năm 1995, tuy nhiên phiên bản này không được công bố chính thức.

- Phiên bản thứ hai là S/MIME v2 được IETF chính thức công bố vào tháng 3/1998 là
một tiêu chuẩn Internet tại RFC 2311 (Đặc tả kỹ thuật thông điệp S/MIME phiên bản 2)
và RFC 2312 (Xử lý chứng thư S/MIME phiên bản 2). Các RFC này đưa ra một khung
dựa trên tiêu chuẩn Internet mà các nhà cung cấp có thể tuân theo khi cung cấp các giải
pháp an toàn thông điệp có khả năng tương tác. Kể từ đó, S/MIME đã trở thành một
trong những tiêu chuẩn hàng đầu về bảo mật thông điệp.

- Phiên bản thứ ba là S/MIME v3 được IETF đề xuất vào tháng 6/1999 nhằm tăng cường
khả năng của S/MIME, bao gồm RFC 2632 (Xử lý chứng thư S/MIME phiên bản 3),
RFC 2633 (Đặc tả kỹ thuật thông điệp S/MIME phiên bản 3) và RFC 2634 (Các dịch vụ
an toàn mở rộng cho S/MIME). Sau đó RFC 2633 đã được cập nhật thành RFC 3851
(Đặc tả kỹ thuật thông điệp S/MIME phiên bản 3.1) vào tháng 6/2004 và được cập nhật
mới đây nhất tại RFC 5751 (Đặc tả kỹ thuật thông điệp S/MIME phiên bản 3.2) vào
tháng 1/2010.

Đặc điểm kỹ thuật

S/MIME là một tập các đặc tả kỹ thuật để đảm bảo cho thư điện tử. S/MIME dựa trên
tiêu chuẩn MIME đã được sử dụng rộng rãi và mô tả một giao thức với các dịch vụ an
toàn thông qua việc ký số và mã hóa các đối tượng kiểu MIME. Các dịch vụ bảo mật cơ
bản được cung cấp bởi S/MIME là xác thực, chống chối bỏ, toàn vẹn và riêng tư của
thông điệp. Các dịch vụ an toàn mở rộng bao gồm dịch vụ nhận đã ký số, nhãn an toàn,
danh sách thư an toàn và một phương thức xác định chứng thư số của người ký.

Định dạng thông điệp S/MIME

Thông điệp S/MIME là sự kết hợp của nội dung kiểu MIME và cú pháp thông điệp mật
mã (Cryptographic Message Syntax – CMS). Đây là cú pháp được sử dụng để ký số,
phân loại, xác thực hay mã hóa nội dung thông điệp tùy ý. Dữ liệu phải được bảo đảm
luôn luôn là một thực thể kiểu MIME (bao gồm các thông tin như văn bản thông thường
(ngoại trừ văn bản sử dụng bộ kí tự ASCII), các nội dung dạng 8-bít như hình ảnh, âm
thanh, video và các chương trình máy tính). Thực thể kiểu MIME và các dữ liệu khác,
chẳng hạn như chứng thư số hay và định danh thuật toán, được xử lý để tạo ra một đối
tượng CMS. Đối tượng CMS thường được mã hóa sử dụng base64 (một thuật ngữ chỉ
một số cơ chế mã hóa tương tự dùng để mã hóa dữ liệu bằng cách xử lý số và biên dịch
nó thành dạng 64 ký tự trong bảng mã ASCII) với kiểu nội dung (content-type)
application/pkcs7-mime bao gồm 6 kiểu nội dung như sau: “data”, “signedData”,
“envelopedData”, “signedAndEnvelopedData”, “digestedData” và “encryptedData”.
Bên nhận phải hỗ trợ kiểu “data”, “signedData” và “envelopedData”, bên gửi có thể gửi
hoặc không gửi bất kỳ kiểu nội dung nào, phụ thuộc vào dịch vụ của bên gửi. Phần mở
rộng tệp tin cho kiểu nội dung này có dạng “.p7s”. Tham số bổ sung “smime-type” chỉ
ra thông điệp được mã hóa hay được ký số. Nếu thông điệp chứa một thành phần bản rõ
(clear-text) thì thành phần này cùng với đối tượng CMS được kết hợp với nhau thành
nội dung đã ký/đa phần (multipart/signed) và đối tượng CMS là thuộc kiểu nội dung
application/pkcs7-signature. Cuối cùng, đối tượng CMS được gói trong định dạng kiểu
MIME. Ngoài ra, S/MIME cũng cung cấp định dạng chỉ cho việc gói (enveloped) dữ
liệu và một số định dạng khác chỉ thực hiện việc ký dữ liệu, một số định dạng đồng thời
thực hiện ký và gói dữ liệu.

Thông điệp ký số và mã hóa kiểu S/MIME

Đầu tiên, thông điệp sẽ được ký số và sau đó mã hóa. Ký số là dịch vụ thường được sử
dụng của S/MIME, trong đó chữ ký số là bản đối chiếu đến chữ ký pháp lý, truyền thống
trên một tài liệu giấy, nó cung cấp khả năng bảo mật như tính xác thực, tính chống chối
bỏ, tính toàn vẹn. Với việc được mã hóa, thông điệp không thể được đọc bởi bất kỳ
người nào không được phép. Mặc dù mã hóa thông điệp không được sử dụng rộng rãi
như chữ ký số nhưng nó giải quyết được các vấn đề mà nhiều người cho là điểm yếu
nghiêm trọng trong thư điện tử Internet: tính bảo mật và tính toàn vẹn dữ liệu. Các thông
điệp đã được ký số và sau đó mã hóa vẫn có thể được thay thế bằng một thông điệp chỉ
được mã hóa.

Việc ký và sau đó mã hóa thông điệp là phương pháp phổ biến trong việc ký và mã hóa
các thông điệp nhưng vẫn còn có nhiều phương pháp khác. Thông điệp chỉ ký số cũng
như thông điệp chỉ mã hóa đều là các thực thể kiểu MIME và do đó chúng có thể được
ký số hoặc mã hóa thêm một lần nữa. Điều này có thể thực hiện trên máy khách thư
(mail client) hoặc nếu máy khách thư có khả năng linh hoạt thì người sử dụng có thể
quyết định xem có nên mã hóa trước khi ký số hoặc ký số trước khi mã hóa thông điệp.

Các dịch vụ an toàn mở rộng (Enhanced Security Services - ESS)

Có một vài mở rộng dịch vụ an toàn tùy chọn cho S/MIME quy định tại RFC 2634 và
RFC 5035.

Việc nhận có ký số: Thiết lập cờ (flag) đặc biệt cho các thông điệp ký số để yêu cầu
xác nhận việc nhận thông điệp đã ký số. Việc này chứng minh rằng thông điệp đã được
nhận bởi người nhận được phép và xác minh chính xác chữ ký số. Việc nhận có ký số
được tạo ra bằng cách ký thông điệp gốc hoàn chỉnh (bao gồm cả chữ ký ban đầu).

Nhãn an toàn: Thuộc tính nhãn an toàn trong một thông điệp đã ký xác định phân loại
mức độ an toàn của các nội dung đã ký số. Chúng có thể dựa vào những khuyến nghị
như đánh dấu, phân loại, ràng buộc, mật, bí mật, tuyệt mật hoặc dựa vào chính sách
bảo mật riêng của một tổ chức. Từ đó, máy khách thư có thể quyết định có hay không
hiển thị các nội dung của thông điệp cho người dùng.
Quản lý danh sách thư: Khi gửi thông điệp mã hóa cho một số lượng lớn người nhận,
máy khách sẽ phải mã hóa các khóa của từng phiên sử dụng khóa công khai của người
nhận. Với phần mở rộng quản lý danh sách thư, người dùng sẽ chỉ mã hóa thông điệp
một lần duy nhất sử dụng khóa công khai của máy khách thư chứa toàn bộ danh sách
gửi thư. Danh sách gửi thư sau đó sẽ được mã hóa và chuyển tiếp thông điệp cho mỗi
người nhận.

Quản lý danh sách thư S/MIME cũng có một số thuộc tính mở rộng để ngăn chặn các
vòng lặp giữa danh sách gửi thư.

3.2.3. Phương thức xác thực DKIM

DKIM là viết tắt của từ Domain Keys Identified Mail đây là một phương thức giúp xác
nhận các email giúp tránh email giả, nó được thiết kế để cho phép người nhận kiểm tra
email được xác nhận là đến từ tên miền cụ thể nào? và thực tự tên miền này có được ủy
quyền hay không? DKIM được thiết kế để ngăn chặn các địa chỉ người gửi giả mạo
trong email một trong những kỹ thuật thường được sử dụng nhất hiện nay đó là thư lừa
đảo và email spam gửi các mã độc tấn công.

DKIM cung cấp cho hai hoạt động riêng biệt, là chữ ký và xác minh. Một trong số chúng
có thể được xử lý bởi một mô-đun của một tác nhân chuyển thư (MTA). Tổ chức ký kết
sử dụng có thể là người xử lý trực tiếp thư, chẳng hạn như tác giả, trang gửi hoặc trung
gian tiếp theo dọc theo đường chuyển tuyến của thư hoặc người xử lý gián tiếp như dịch
vụ độc lập cung cấp hỗ trợ cho người xử lý trực tiếp. Các mô-đun ký hiệu chèn một hoặc
nhiều DKIM-Signature:trường tiêu đề, có thể thay mặt cho tổ chức tác giả hoặc nhà
cung cấp dịch vụ gốc. Việc xác minh các mô-đun thường hành động thay mặt cho tổ
chức người nhận, có thể ở mỗi bước gửi.

DKIM ra đời là kết quả của sự kết hợp giữa, “enhanced DomainKeys” của Yahoo và
“Identified Internet Mail” của Cisco . Việc sáp nhập này là cơ sở cho một loạt các thông
số kỹ thuật theo tiêu chuẩn IETF và các tài liệu hỗ trợ mà cuối cùng dẫn đến STD 76 ,
hiện tại đang sử dụng là RFC 6376 . “Identified Internet Mail” được Cisco đề xuất như
một tiêu chuẩn xác thực thư dựa trên chữ ký, trong khi DomainKey được thiết kế
bởi Yahoo để xác minh tên miền DNS của người gửi e-mail và tính toàn vẹn của thư .

Các khía cạnh của DomainKeys, cùng với các phần của Identified Internet Mail, được
kết hợp để tạo Thư được xác định tên miền (DKIM). Nhà cung cấp dịch vụ xu hướng
triển khai DKIM bao gồm Yahoo , Gmail , AOL và FastMail . Bất kỳ thư nào từ các tổ
chức này đều phải mang theo chữ ký DKIM.

Cách thức hoạt động của DKIM là gì?

DKIM, viết tắt của Domain Keys Identified Mail, là một phương thức để xác thực một
thư điện tử. DKIM cho phép xác thực “chủ thể” nào được dùng để gửi thư đi, và trong
quá trình gửi thư, có sự thay đổi nào về nội dung không. Nếu không có sự thay đổi, thư
sẽ được xác nhận qua kiểm tra DKIM và coi như hợp lệ.

Đây là một phương pháp xác thực chứ không phải là một phương pháp chống spam.
Nhưng vì có tính năng đảm bảo thư là thật (địa chỉ người gửi, hay ít nhất tên miền gửi
thư là thật) trong khi thực tế đa số spam đều là thư giả mạo (mạo tên người khác, tên
miền khác) nên nó hỗ trợ việc chống spam.

DKIM cung cấp cho hai hoạt động riêng biệt: chữ ký và xác minh. Một trong số chúng
có thể được xử lý bởi một mô-đun của một tác nhân chuyển thư (MTA).

Các bước thực hiện


Tùy theo hệ thống Mail server khác nhau sẽ có hướng dẫn khác nhau về cấu hình DKIM
ở phía server, nhưng hầu hết đều phải thực hiện các bước:

 Bước 1: Sinh ra cặp khóa private/public, có nhiều phần mềm hỗ trợ việc này
(ví dụ: OpenSSL)
 Bước 2: Đưa khóa Public lên khai báo bản ghi TXT trên DNS theo đúng
domain gửi email.

 Bước 3: Cấu hình Mail server sử dụng khóa private để ký vào email trước khi
gửi email. Khóa này chỉ lưu trên Mail server nên không thể giả mạo.

Xử lý ở bên nhận:

 Bước 1: Nhận được email từ bên gửi và thấy email có thông điệp được mã hóa
do cấu hình DKIM.

 Bước 2: Query DNS để lấy khóa public của domain bên gửi để giải mã, nếu
giả mã đúng thì xác nhận nguồn gửi và email đảm báo, ngược lại sẽ tùy chính
sách của bên nhận để từ chối hoặc nhận email.

Trước hết, cần lưu ý DKIM sử dụng bộ khóa chung – khóa riêng, nhưng DKIM không
có chức năng thiết lập các đường hầm truyền dẫn như việc sử dụng kết nối TLS, SSL.

Tương tự như bản ghi SPF, DKIM sử dụng định dạng TXT trong các bản ghi DNS. Khi
bộ khóa DKIM được tạo ra, khóa riêng được lưu trữ trên server gửi mail, còn khóa chung
được thêm vào bản ghi DNS của tên miền.

Có hai hành động liên quan đến DKIM được thực hiện với mỗi email.

 Trên máy chủ gửi đi, các trường thông tin sẽ được mã hóa với thuật toán và
các quy định thiết lập trước. Từ đó tạo ra một chữ ký DKIM và được gắn vào
header của email.

 Khi nhận được email, máy chủ nhận sẽ lấy giá trị khóa chung từ DNS của tên
miền, nếu tên miền đã được thiết lập DKIM và xác thực chữ ký DKIM trong
header của email, để giải mã chữ ký DKIM ra các trường thông tin trước khi
được mã hóa. Một loạt các so sánh theo tiêu chuẩn của DKIM được thực hiện,
và nếu các so sánh này đều trùng lặp, email sẽ được xác nhận là toàn vẹn,
không có thay đổi về nội dung trong quá trình trung chuyển.
3.3. Cấu hình và bảo mật Web

HTTPS (Hypertext Transfer Protocol Secure), là một giao thức kết hợp giữa giao
thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo
mật trên Internet. Việc cấu hình HTTPS cho ứng dụng, Website không chỉ nhằm mục
đích bảo vệ tính toàn vẹn dữ liệu mà còn giúp cho người dùng truy cập trang Web được
an toàn hơn.

Hướng dẫn cấu hình bảo mật HTTPS cho IIS 8/8.5 và IIS 10 trên Windows Server
2012/2016:
Bước 1: Copy 02 file Cert từ bộ phận quản trị hệ thống chứng thư số lên Server cần
cài đặt HTTPS (gồm 2 file Certificate.cer và intermediate.cer).
Bước 2: Cài đặt chứng thư Intermediate.cer

 Mở một Microsoft Management Console (MMC). Nhấn Start → Run và gõ vào


mmc, nhấn OK;

 Từ menu của màn hình MMC, chọn File → Add/Remove Snap-in, nhấn Add;

 Từ danh sách snap-ins, chọn Certificates, nhấn Add, chọn Computer account,
nhấn Next, chọn Local computer, nhấn Finish, nhấn Close, nhấn OK;
 Trong khung bên trái, nhấn chọn mục Intermediate Certification Authorities.
Nhấp chuột phải vào Certificates, chọn All Tasks → Import. Trong màn hình Certificate
Import, nhấn Next. Tới đây chọn đường dẫn đến file intermediate.cer và nhấn Next.
Chọn mục “Place all certificate in the following store: Intermediate Certification
Authorities”, nhấn Next, nhấn Finish;

Bước 3: Cài đặt chứng thư số Certificate.cer vào IIS

 Nhấn Start → Administrative Tools → Internet Information Services (IIS)


Manager;

 Từ menu bên trái, nhấp chọn vào tên máy chủ;

 Từ menu ở giữa, trong mục Security, nhấp đúp vào mục Server Certificates;

 Từ menu bên phải, chọn Complete Certificate Request;


 Chọn đường dẫn đến file certificate.cer. Nhập vào tên gợi nhớ cho chứng thư số
trong mục Friendly name. Lưu ý: Nếu tổ chức đang trang bị chứng thư số cho nhiều
tên miền (Wildcard), cần phải thêm ký tự * vào đầu của Friendly Name, ví dụ
*.cpc.vn. Khi đó có thể chia sẻ chứng thư số này cho nhiều website được host chung
trên máy chủ này. ChọnPersonal Store. Sau đó nhấn OK.

Bước 4: Cấu hình SSL cho website


 Nhấn Start → Administrative Tools → Internet Information Services (IIS)
Manager;

 Từ menu bên trái, nhấp chọn vào tên máy chủ;

 Trong mục Sites, chọn website cần cấu hình SSL

 Trong menu bên phải, chọn “Bindings…”;

 Trong màn hình Site Bindings, nhấn Add. Nếu đang gia hạn chứng thư số cho
website, thì trong màn hình này, bạn chọn dòng “https” và sau đó nhấn Edit;

 Trong màn hình Add Site Bindings, chọn “https” trong mục Type, chọn Port cần
chạy SSL (443), nhập vào tên miền của website trong mục Host Name, cuối cùng chọn
chứng thư số vừa cài đặt trong bước trước đó. Sau đó nhấn OK.

Câu hỏi ôn tập

1. SSL là gì? Phân biệt SSL và TLS.


2. HTTPS là gì? Mô tả hoạt động của giao thức này.
3. Trình bày khái niệm và hoạt động của giao thức PGP
4. Trình bày khái niệm và hoạt động của giao thức S/MIME
5. Trình bày khái niệm và hoạt động của giao thức DKIM
BÀI 4: GIAO THỨC IP SECURITY
4.1. Giới thiệu

Thuật ngữ IPSec là một từ viết tắt của thuật ngữ Internet Protocol Security.
Giao thức IPSec được phát triển bởi tổ chức Internet Engineering Task Force (IETF).
IPSec bao gồm một hệ thống các giao thức chuẩn, cung cấp các dịch vụ bảo mật quá
trình truyền thông tin trên nền tảng Internet Protocol (IP). Bao gồm xác thực và mã hoá
(Authenticating and Encrypting) cho mỗi gói IP (IP packet) trong quá trình truyền thông
tin.

Mọi giao tiếp trong một mạng trên cơ sở IP đều dựa trên các giao thức IP. Do đó, khi
một cơ chế bảo mật cao được tích hợp với giao thức IP, toàn bộ mạng được bảo mật bởi
vì các giao tiếp đều đi qua tầng 3 (Network layer) trong mô hình OSI. (Đó là lý do tại
sao IPSec được phát triển ở giao thức tầng 3 thay vì tầng 2).

Hình 4-1: IPSec trong mô hình OSI

IPSec được thiết kế như phần mở rộng của giao thức IP, được thực hiện thống nhất trong
cả hai phiên bản IPv4 và IPv6. Đối với IPv4, việc áp dụng IPSec là một tuỳ chọn, nhưng
đối với IPv6, giao thức bảo mật này được triển khai bắt buộc.
4.2. Kiến trúc IP Security

4.2.1 Kiến trúc IPSec

IPSec là một giao thức phức tạp, dựa trên nền của nhiều kỹ thuật cơ sở khác nhau
như mật mã, xác thực, trao đổi khoá… Xét về mặt kiến trúc, IPSec được xây dựng
dựa trên các thành phần cơ bản sau đây, mỗi thành phần được định nghĩa trong một
tài liệu riêng tương ứng:

Hình 4-2: Vị trí IPSec trong OSI

- Kiến trúc IPSec (RFC 2401): Quy định các cấu trúc, các khái niệm và yêu cầu
của IPSec.

- Giao thức ESP (RFC 2406): Mô tả giao thức ESP, là một giao thức mật mã và
xác thực thông tin trong IPSec.
- Giao thức AH (RFC 2402): Định nghĩa một giao thức khác với chức năng gần
giống ESP. Như vậy khi triển khai IPSec, người sử dụng có thể chọn dùng ESP hoặc
AH, mỗi giao thức có ưu và nhược điểm riêng.

- Thuật toán mật mã: Định nghĩa các thuật toán mã hoá và giải mã sử dụng trong
IPSec. IPSec chủ yếu dựa vào các thuật toán mã hoá đối xứng.

- Thuật toán xác thực: Định nghĩa các thuật toán xác thực thông tin sử dụng trong
AH và ESP.

- Quản lý khoá (RFC 2408): Mô tả các cơ chế quản lý và trao đổi khoá trong IPSec.

- Miền thực thi (Domain of Interpretation – DOI): Định nghĩa môi trường thực thi
IPSec. IPSec không phải là một công nghệ riêng biệt mà là sự tổ hợp của nhiều cơ chế,
giao thức và kỹ thuật khác nhau, trong đó mỗi giao thức, cơ chế đều có nhiều chế độ
hoạt động khác nhau. Việc xác định một tập các chế độ cần thiết để triển khai IPSec
trong một tình huống cụ thể là chức năng của miền thực thi.

Xét về mặt ứng dụng, IPSec thực chất là một giao thức hoạt động song song với IP
nhằm cung cấp 2 chức năng cơ bản mà IP nguyên thuỷ chưa có, đó là mã hoá và
xác thực gói dữ liệu. Một cách khái quát có thể xem IPSec là một tổ hợp gồm hai
thành phần:

 Giao thức đóng gói [AH + ESP]: Bảo vệ truyền thông IP, dựa vào SA
(khóa, địa chỉ, các thuật toán mật mã)

 Giao thức trao đổi khoá IKE (Internet Key Exchange): Để thiết lập các
SA (SA – Security Association) cho AH hoặc ESP, và duy trì/quản lí các kết
nối.

4.2.2. Khung giao thức IPSec

IPSec là một tập các chuẩn mở, được phát triển bởi IETF.
Hình 4-3: Khung giao thức được sử dụng trong IPSec.

Một số tính năng được khuyến khích sử dụng khi làm việc với IPSec:

– Các giao thức bảo mật


IPSec:

+ AH (Authentication Header)

+ ESP (Encapsulation Security Payload)

– Các thuật toán mã hóa:

+ DES (Data Encryption Standard)

+ 3 DES (Triple DES)

– Các chức năng toàn vẹn dữ liệu:

+ HMAC (Hash – ased Message Authentication Code)

+ MD5 (Message Digest 5)


+ SHA-1 (Secure Hash Algorithm -1)
– Các phương pháp xác thực (peer Authentication):
+ Rivest, Shamir, and Adelman (RSA) Digital Signatures

+ RSA Encrypted Nonces

– Các giao thức quản lý khoá:


+ DH (Diffie- Hellman)

+ CA (Certificate Authority)
– Các chính sách an ninh:
+ IKE (Internet Key Exchange)

+ ISAKMP (Internet Security Association and Key Management Protocol)

4.2.3. Tính năng của IPSec

Để thực hiện được chức năng chính của mình là bảo mật dữ liệu trong VPN,
IPSec cung cấp những tính năng sau:
 Sự bảo mật dữ liệu (Data Confidentiality):

Đảm bảo dữ liệu được an toàn, tránh những kẻ tấn công phá hoại bằng cách thay
đổi nội dung hoặc đánh cắp dữ liệu quan trọng. Việc bảo vệ dữ liệu được thực hiện
bằng các thuật toán mã hóa như DES, 3DES và AES. Tuy nhiên, đây là một tính
năng tùy chọn trong IPSec.
 Sự toàn vẹn dữ liệu (Data Integrity):
Đảm bảo rằng dữ liệu không bị thay đổi trong suốt quá trình trao đổi. Data
Integrity bản thân nó không cung cấp sự an toàn dữ liệu. Nó sử dụng thuật toán
băm (hash) để kiểm tra dữ liệu bên trong gói tin có bị thay đổi hay không.

Những gói tin nào bị phát hiện là đã bị thay đổi thì sẽ bị loại bỏ. Những thuật toán
băm: MD5 hoặc SHA-1.

 Chứng thực nguồn dữ liệu (Data Origin Authentication):

Mỗi điểm cuối của VPN dùng tính năng này để xác định đầu phía bên kia có
thực sự là người muốn kết nối đến mình hay không. Lưu ý là tính năng này
không tồn tại một mình mà phụ thuộc vào tính năng toàn vẹn dữ liệu. Việc
chứng thực dựa vào những kĩ thuật: Pre-shared key, RSA-encryption, RSA-
signature.

 Tránh trùng lặp (Anti-replay):

Đảm bảo gói tin không bị trùng lặp bằng việc đánh số thứ tự. Gói tin nào trùng sẽ
bị loại bỏ, đây cũng là tính năng tùy chọn.
4.2.4. Các giao thức IPSec

Để trao đổi và thỏa thuận các thông số nhằm tạo nên một môi trường bảo mật giữa 2 đầu
cuối, IPSec dùng 3 giao thức:
– IKE (Internet Key Exchange)
– ESP (Encapsulation Security Payload)
– AH (Authentication Header)
Internet Key Exchange (IKE)

Là giao thức thực hiện quá trình trao đổi khóa và thỏa thuận các thông số bảo mật như:
thuật toán mã hóa được áp dụng, khoảng thời gian khóa cần được thay đổi . Sau khi thỏa
thuận xong thì sẽ thiết lập “hợp đồng” giữa 2 bên, khi đó IPSec SA (Security
Association) được tạo ra. SA là những thông số bảo mật đã được thỏa thuận thành công,
các thông số SA này sẽ được lưu trong cơ sở dữ liệu của SA.

Ngoài ra IKE còn dùng 2 giao thức khác để chứng thực đầu cuối và tạo khóa: ISAKMP
(Internet Security Association and Key Management Protocol) và Oakley.
– ISAKMP: là giao thức thực hiện việc thiết lập, thỏa thuận và quản lý chính sách bảo
mật SA.
– Oakley: là giao thức làm nhiệm vụ chứng thực khóa, bản chất là dùng thuật toán Diffie-
Hellman để trao đổi khóa bí mật thông qua môi trường chưa bảo mật.
Lưu ý: Giao thức IKE dùng UDP port 500.

Encapsulating Security Payload (ESP)

Là giao thức cung cấp sự an toàn, toàn vẹn, chứng thực nguồn dữ liệu và những tùy
chọn khác, chẳng hạn anti-replay. ESP cung cấp gần như toàn bộ tính năng của
IPSec, ngoài ra nó còn cung cấp tính năng mã hóa dữ liệu. Do đó, ESP được sử
dụng phổ biến trong IPSec VPN. ESP bao gồm những tính năng sau:
 Tính bảo mật (Data confidentiality)
 Tính toàn vẹn dữ liệu (Data integrity)
 Chứng thực nguồn dữ liệu (Data origin authentication)
 Tránh trùng lặp (Anti-replay)

Những tính năng trên cũng là những tính năng đặc trưng và chính yếu nhất của
IPSec.

Lưu ý: ESP sử dụng IP protocol number 50.

Hoạt động của ESP

ESP chèn một header vào sau phần IP header và trước header của giao thức lớp trên.
Header này có thể là một IP header mới trong tunnel mode hoặc IP header của gói tin
ban đầu trong transport mode. Hình sau cho thấy vị trí của ESP header trong transport

mode và tunnel mode:

Hình 4-4: IP Packet được bảo vệ bởi ESP trong Transport Mode

Hình 4-5: IP Packet được bảo vệ bởi ESP trong Tunnel Mode

Authentication Header (AH)

Là giao thức cung cấp sự toàn vẹn, chứng thực nguồn dữ liệu và một số tùy chọn
khác. Nhưng khác với ESP, nó không cung cấp chức năng bảo mật (data

confidential). AH đảm bảo dữ liệu không bị thay đổi trong quá trình truyền dẫn
nhưng không mã hóa dữ liệu.
Hình 4.6: IP Packet được bảo vệ bởi AH

Trường AH chỉ định cái sẽ theo sau AH header. Trong transport mode, nó sẽ là giá trị
của giao thức lớp trên đang được bảo vệ (chẳng hạn UDP hoặc TCP).
Trong tunnel mode, giá trị này là 4. Vị trí của AH trong transport và tunnel mode được
mô tả ở hình sau:

Hình 4-7: IP Packet được bảo vệ bởi AH trong Transport Mode

Trong Tunnel mode, AH đóng gói gói tin IP và thêm vào một IP header trước AH

header.

Hình 4-8: IP Packet được bảo vệ bởi AH trong Tunnel Mode

4.2.5. Hoạt động của IP Security :

Mục đích chính của IPSec là bảo vệ luồng dữ liệu mong muốn dựa trên các dịch vụ
bảo mật có sẵn, hoạt động của IPSec có thể chia thành 5 bước chính như sau:

Hình 4-9: Hoạt động của IPSec


 A gửi các traffic cần bảo vệ tới B
 Router A và B thỏa thuận các tham số IKE Phase 1
IKE SA ← IKE Phase 1 → IKE SA

 Router A và B thoả thuận các chính sách IKE Phase 2


IPSec SA ← IKE Phase 2 → IPSec SA

 Thông tin được truyền dẫn qua tunnel IPSec


 Kết thúc tunnel IPSec

Bước 1: Traffic cần được bảo vệ khởi tạo quá trình IPSec. Ở đây, các thiết đầu cuối
IPSec sẽ nhận ra đâu là lưu lượng cần được bảo vệ thông qua trường địa chỉ.
Bước 2: IKE Phase 1 – IKE xác thực các bên và một tập các dịch vụ bảo mật được thoả
thuận và công nhận để thiết lập IKE SA. Trong phase này, sẽ thiết lập một kênh truyền
thông an toàn để tiến hành thoả thuận IPSec SA trong Phase 2.
Bước 3: IKE Phase 2 – IKE thoả thuận các tham số IPSec SA và thiết lập các IPSec SA
tương đương ở hai phía. Các tham số bảo mật này được sử dụng để bảo vệ dữ liệu và các
gói tin trao đổi giữa các điểm đầu cuối. Kết quả cuối cùng của hai bước trên sẽ tạo ra
một kênh thông tin bảo mật giữa hai bên.

Bước 4: Truyền dữ liệu – Dữ liệu được truyền giữa các bên IPSec dựa trên cơ sở các
thông số bảo mật và các khoá được lưu trữ trong cơ sở dữ liệu SA.

Bước 5: Kết thúc đường hầm IPSec – Do các IPSec SA hết hạn hoặc bị xoá.
Hình 4-10: Ứng dụng của IPSec

Các Ứng dụng của IPSec :

 Bảo vệ kết nối từ các mạng chi nhánh đến mạng trung tâm thông qua
Internet.
 Bảo vệ kết nối truy cập từ xa (Remote Access).
 Thiết lập các kết nối Intranet và Extranet .
 Nâng cao tính bảo mật của các giao dịch thương mại điện tử.

4.3. Cấu hình IP Security

IPSec VPN Site to Site là 1 giao thức được sử dụng để kết nối 2 chi nhánh, văn phòng,
cho phép truyền dữ liệu, thoại, video... 1 cách an toàn giữa 2 site. IPSec VPN sẽ tạo 1
tunnel thông qua mạng internet và được mã hóa bằng các thuật toán mã hóa tiên tiến để
cung cấp bảo mật cho dữ liệu khi truyền giữa 2 site.

Các bước cấu hình


 Bước 1: Cấu hình access-list không cho NAT giữa IP nội bộ của 2 Site

 Bước 2: Cấu hình ISAKMP, bật mã hóa và chứng thực cho VPN

 Bước 3: Cấu hình access-list cho phép VPN Traffic

 Bước 4: Tạo IPSec Transform

 Bước 5: Tạo Crypto Map

 Bước 6: Gán Crypto Map vào cổng nối ra internet

Cấu hình VPN Site to Site trên Router Cisco

Trong bài lab này chúng ta sẽ sử dụng Packet Tracert để thực hiện. Mô hình gồm 2
site là HQ gồm 2 VLAN 10.0.0.0/24 và 10.0.1.0/24 và BR là 172.16.1.0/24 sử dụng
NAT để truy cập Internet. Yêu cầu bài Lab là cấu hình IPSec VPN Site to site để tạo 1
tunnel cho phép 2 site có thể truy cập được lẫn nhau

Bước 1: Cấu hình access-list không cho NAT giữa IP nội bộ của 2 Site
Ở đây, 2 site được cấu hình Network Address Translation (NAT) để cho phép mạng nội
bộ truy cập ra internet. Khi cấu hình IPSec VPN Tunnel, chúng ta tạo thêm access-list
để không cho route NAT các gói tin VPN
HQ(config)#ip access-list extended NAT
HQ(config-ext-nacl)#10 deny ip 10.0.0.0 0.0.0.255 172.16.1.0
0.0.0.255
HQ(config-ext-nacl)#20 deny ip 10.0.1.0 0.0.0.255 172.16.1.0
0.0.0.255
HQ(config-ext-nacl)#30 permit ip 10.0.0.0 0.0.0.255 any
HQ(config-ext-nacl)#40 permit ip 10.0.1.0 0.0.0.255 any
HQ(config-ext-nacl)#exit
HQ(config)#ip nat inside source list NAT interface g0/0/1
overload
Bước 2: Cấu hình ISAKMP
HQ(config)#crypto isakmp policy 10
HQ(config-isakmp)#encryption 3des
HQ(config-isakmp)#hash md5
HQ(config-isakmp)#authentication pre-share
HQ(config-isakmp)#group 2
HQ(config-isakmp)#exit
HQ(config)#crypto isakmp key cnttshop address 100.0.0.1
Bước 3: Cấu hình access-list cho phép VPN Traffic
HQ(config)#ip access-list extended VPN
HQ(config-ext-nacl)#10 permit ip 10.0.0.0 0.0.0.255 172.16.1.0
0.0.0.255
HQ(config-ext-nacl)#20 permit ip 10.0.1.0 0.0.0.255 172.16.1.0
0.0.0.255
Bước 4: Tạo IPSec Transform
HQ(config)#crypto ipsec transform-set SET1 esp-3des esp-md5-
hmac
Bước 5: Tạo Crypto Map
HQ(config)#crypto map MAP1 10 ipsec-isakmp
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
HQ(config-crypto-map)#set peer 100.0.0.1
HQ(config-crypto-map)#set transform-set SET1
HQ(config-crypto-map)#match address VPN
Bước 6: Gán Crypto Map vào cổng nối ra internet
HQ(config)#interface g0/0/1
HQ(config-if)#crypto map MAP1
*Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
HQ(config-if)#
Tương tự cấu hình cho Router tại site BR

BR(config)# crypto isakmp policy 10

BR(config-isakmp)#encryption 3des
BR(config-isakmp)#hash md5

BR(config-isakmp)#authentication pre-share

BR(config-isakmp)#group 2

BR(config-isakmp)#exit
BR(config)# crypto isakmp
key cnttshop address 100.0.0.100

BR(config)# ip access-list extended VPN

BR(config-ext-nacl)# 10 permit ip 172.16.1.0 0.0.0.255


10.0.0.0 0.0.0.255
BR(config-ext-nacl)# 20 permit ip 172.16.1.0 0.0.0.255
10.0.1.0 0.0.0.255
BR(config-ext-nacl)# exit

BR(config)# crypto ipsec transform-set SET1 esp-3des esp-


md5-hmac

BR(config)# crypto map MAP1 10 ipsec-isakmp

BR(config-crypto-map)# set peer 100.0.0.100

BR(config-crypto-map)# set transform-set SET1

BR(config-crypto-map)# match address VPN


BR(config-crypto-map)# exit

BR(config)# interface g0/0/0

BR(config- if)# crypto map MAP1

Kiểm tra kết nối VPN Tunnel


Từ PC 172.16.1.10 tại site BR ping đến 2 server 10.0.1.10 và 10.0.0.10 tại HQ
Tương tự từ Server 10.0.0.10 ở HQ ping đến PC 172.16.1.10 tại BR
Show crypto isakmp sa
HQ#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-
id slot status
100.0.0.1 100.0.0.100 QM_IDLE 1078 0 AC
TIVE
IPv6 Crypto ISAKMP SA
HQ#
show crypto ipsec sa
HQ#sh crypto ipsec sa
interface: GigabitEthernet0/0/1
Crypto map tag: MAP1, local addr 100.0.0.100
protected vrf: (none)
local ident (addr/mask/prot/port):
(10.0.0.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port):
(172.16.1.0/255.255.255.0/0/0)
current_peer 100.0.0.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 13, #pkts encrypt: 13, #pkts digest: 0
#pkts decaps: 21, #pkts decrypt: 21, #pkts verify: 0
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 100.0.0.100, remote crypto
endpt.:100.0.0.1
path mtu 1500, ip mtu 1500, ip mtu idb
GigabitEthernet0/0/1
current outbound spi: 0x21F222F3(569516787)
inbound esp sas:
spi: 0x76A122D8(1990271704)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: FPGA:1, crypto map:
MAP1
sa timing: remaining key lifetime (k/sec):
(4525504/1971)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x21F222F3(569516787)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2005, flow_id: FPGA:1, crypto map:
MAP1
sa timing: remaining key lifetime (k/sec):
(4525504/1971)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
local ident (addr/mask/prot/port):
(10.0.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port):
(172.16.1.0/255.255.255.0/0/0)
current_peer 100.0.0.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 6, #pkts encrypt: 6, #pkts digest: 0
#pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed:
0
#send errors 0, #recv errors 0
local crypto endpt.: 100.0.0.100, remote crypto
endpt.:100.0.0.1
path mtu 1500, ip mtu 1500, ip mtu idb
GigabitEthernet0/0/1
current outbound spi: 0x52AD046A(1387070570)
inbound esp sas:
spi: 0x2903737D(688092029)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2009, flow_id: FPGA:1, crypto map:
MAP1
sa timing: remaining key lifetime (k/sec):
(4525504/1994)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x52AD046A(1387070570)
transform: esp-3des esp-md5-hmac ,
in use settings ={Tunnel, }
conn id: 2010, flow_id: FPGA:1, crypto map:
MAP1
sa timing: remaining key lifetime (k/sec):
(4525504/1994)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
HQ#

Câu hỏi ôn tập:

1. Nêu khái niệm và tính năng giao thức IP Security


2. Mô tả kiến trúc và cơ chế hoạt động của giao thức IP Sec
3. Tìm hiểu thêm các cách cấu hình IP Sec trên các loại router khác nhau.
BÀI 5: BẢO MẬT MẠNG KHÔNG DÂY
5.1. Tổng quan về mạng LAN không dây

Mạng không dây là một hệ thống các thiết bị được nhóm lại với nhau, có khả năng
giao tiếp thông qua sóng vô tuyến thay vì các đường truyền dẫn bằng dây.

Ưu điểm:
- Giá thành giảm nhiều đối với mọi thành phần người sử dụng.
- Công nghệ không dây đã được tích hợp rộng rãi trong bộ vi xử lý dành cho máy
tính xách tay của INTEL và AMD, do đó tất cả người dùng máy tính xách tay đều có
sẵn tính năng kết nối mạng không dây.
- Mạng Wireless cung cấp tất cả các tính năng của công nghệ mạng LAN như là
Ethernet và Token Ring mà không bị giới hạn về kết nối vật lý (giới hạn về cable).
- Tính linh động: tạo ra sự thoải mái trong việc truyền tải dữ liệu giữa các thiết bị
có hỗ trợ mà không có sự ràng buột về khoảng cách và không gian như mạng có dây
thông thường. Người dùng mạng Wireless có thể kết nối vào mạng trong khi di chuyển
bất cứ nơi nào trong phạm vi phủ sóng của thiết bị tập trung (Access Point).
- Mạng WLAN sử dụng sóng hồng ngoại (Infrared Light) và sóng Radio (Radio
Frequency) để truyền nhận dữ liệu thay vì dùng Twist- Pair và Fiber Optic Cable. Thông
thường thì sóng Radio được dung phổ biến hơn vì nó truyền xa hơn, lâu hơn, rộng hơn,
băng thông cao hơn.

Nhược điểm:
- Tốc độ mạng Wireless bị phụ thuộc vào băng thông. Tốc độ của mạng Wireless
thấp hơn mạng cố định, vì mạng Wireless chuẩn phải xác nhận cẩn thận những frame đã
nhận để tránh tình trạng mất dữ liệu.
- Trong mạng cố định truyền thống thì tín hiệu truyền trong dây dẫn nên có thể
được bảo mật an toàn hơn. Còn trên mạng Wireless thì việc “đánh hơi” rất dễ dàng bởi
vì mạng Wireless sử dụng sóng Radio thì có thể bị bắt và xử lí được bởi bất kỳ thiết bị
nhận nào nằm trong phạm vi cho phép, ngoài ra mạng Wireless thì có ranh giới không
rõ ràng cho nên rất khó quản lý.

5.2. Bảo mật cho mạng LAN không dây

Bảo mật mạng là một vấn đề rất rộng và ngày càng trở nên khó khăn hơn. Mạng
không dây trong các gia đình, trong các doanh nghiệp, trong các tổ chức chính phủ luôn
có thể “tạo điều kiện” để các hacker dễ dàng thâm nhập lấy trộm hoặc sửa đổi dữ liệu
và có thể gây nên những hậu quả cực kì nghiêm trọng. Thế nhưng người sử dụng vẫn
chưa quan tâm đúng mức đến việc bảo vệ mạng không dây. Nguyên nhân chủ yếu là do
người sử dụng ngại đụng đến các thiết lập thông số kỹ thuật rắc rối nên chỉ cần lắp thiết
bị WiFi và cho máy tính kết nối Internet là xem như được. Vì vậy, bảo vệ an ninh cho
mạng không dây luôn là vấn đề cần được quan tâm thường xuyên.

Các lỗ hổng của mạng không dây:


Hạn chế về khả năng quản trị: mạng không dây có thể cho phép mọi đối tượng kết
nối với hệ thống trong vùng phủ sóng. Bất kì ai có các thiết bị có khả năng kết nối không
dây khi nằm trong vùng bán kính phủ sóng của Access Point đều có thể kết nối và khai
thác các tài nguyên của hệ thống. Khả năng này là nguy cơ tạo điều kiện cho tin tặc thực
hiện các biện pháp nghe lén thông tin hoặc xâm nhập vào hệ thống từ các tòa nhà bên
cạnh.Tuy vùng phủ sóng của mạng không dây bị hạn chế nhưng tín hiệu của chúng có
thể thu được từ khoảng cách trên 100m so với điểm phát sóng. Đối với các cơ sở lớn sử
dụng hệ thống đa điểm truy cập (AP) để kết nối mạng không dây với mạng có dây, thì
mỗi điểm AP đều chứa đựng các nguy cơ tấn công của tin tặc.

Khả năng mã hóa dữ liệu: Mặc dù thông tin truyền trên mạng đã được mã hoá
nhằm ngăn chặn việc truy cập bất hợp pháp, nhưng các hacker có thể sử dụng những
thiết bị Wi-Fi đã được thay đổi để chặn dữ liệu rồi giải mã chúng và truyền thông tin
"rác" vào mạng, gây nên những rắc rối khác cho hệ thống. Chỉ cần một máy tính có card
mạng WiFi là bạn có thể tha hồ lướt web và xâm nhập bất hợp pháp vào các máy tính
gia nhập mạng.

Xác thực quyền người dùng: Hầu hết các thiết bị kết nối của mạng không dây
trên thị trường đều cho phép mặc định ở chế độ mở hoàn toàn, nghĩa là không
cung cấp đầy đủ quyền quản trị cho người quản lý và không có khả năng xác thực quyền
người dùng cũng như phân quyền cho các kết nối xuất phát từ hệ thống.

Phát hiện và phòng chống tấn công: Các hình thức tấn công trên mạng rất đa dạng
và hacker ngày càng có nhiều cách để xâm nhập và phá hoại hệ thống. Điều này gây trở
ngại cho hầu hết các tổ chức khi tìm kiếm giải pháp chống các cuộc tấn công đa dạng
trên mạng và khó khăn khi lựa chọn giải pháp phòng chống hiệu quả nhất.
Kênh vô tuyến dễ mắc phải các nhược điểm: bị nghe trộm và có các truyền dẫn
không được phép hơn là mạng hữu tuyến. Một vấn đề cần quan tâm của truyền dẫn vô
tuyến là những người không được phép có thể can thiệp vào từ bên ngoài.
Chính vì vậy, đã có một số chuẩn bảo mật và công cụ an ninh được phát triển để
ngăn chặn các khả năng tấn công vào mạng không dây. Việc tăng cường khả năng bảo
mật vẫn đang là cuộc chiến giữa các nhà cung cấp dịch vụ và hacker.
Song song với việc nhận thức về lợi ích của mạng không dây, người dùng cần phải
biết cách bảo vệ dữ liệu của mình trong môi trường không dây đang có nhiều sự thay
đổi về khả năng bảo mật. Bên cạnh đó, người dùng cũng cần phải phối hợp với các nhà
cung cấp dịch vụ để có thể tạo ra các phương án bảo mật hoàn chỉnh hơn cho mạng
không dây.Các biện pháp thiết lập hệ thống an ninh mạng không dây:
Những sai lầm phổ biến về bảo mật
Mặc định, các nhà sản xuất tắt chế độ bảo mật để cho việc thiết lập ban đầu được
dễ dàng, khi sử dụng bạn phải mở lại. Tuy nhiên, bạn cần phải cẩn thận khi kích hoạt
tính năng bảo mật, dưới đây là một số sai lầm thường gặp phải:

Không thay đổi mật khẩu của nhà sản xuất. Khi lần đầu tiên cài đặt router không
dây, bạn rất dễ quên thay đổi mật khẩu mặc định của nhà sản xuất. Nếu không thay đổi,
có thể người khác sẽ dùng mật khẩu mặc định truy cập vào router và thay đổi các thiết
lập để thoải mái truy cập vào mạng. Kinh nghiệm: Luôn thay mật khẩu mặc định.

Không kích hoạt tính năng mã hóa. Nếu không kích hoạt tính năng mã hóa, bạn sẽ
quảng bá mật khẩu và e-mail của mình đến bất cứ ai trong tầm phủ sóng, người khác có
thể cố tình dùng các phầm mềm nghe lén miễn phí như AirSnort (airsnort.shmoo.com)
để lấy thông tin rồi phân tích dữ liệu.
Kinh nghiệm: Hãy bật chế độ mã hóa kẻo người khác có thể đọc được thông tin
của bạn.

Không kiểm tra chế độ bảo mật. Bạn mua một router không dây, kết nối Internet
băng rộng, lắp cả máy in vào, rồi có thể mua thêm nhiều thiết bị không dây khác nữa.
Có thể vào một ngày nào đó, máy in sẽ tự động in hết giấy bởi vì bạn không thiết lập
các tính năng bảo mật.
Kinh nghiệm: Đừng cho rằng mạng của bạn đã an toàn. Hãy nhờ những người
am hiểu kiểm tra hộ.
Quá tích cực với các thiết lập bảo mật. Mỗi card mạng không dây đều có một địa
chỉ phần cứng (địa chỉ MAC _Medium Access Control) mà router không dây có thể
dùng để kiểm soát những máy tính nào được phép nối vào mạng. Khi bật chế độ lọc địa
chỉ MAC, có khả năng bạn sẽ quên thêm địa chỉ MAC của máy tính bạn đang sử dụng
vào danh sách, như thế bạn sẽ tự cô lập chính mình.
Kinh nghiệm: Phải kiểm tra cẩn thận khi thiết lập tính năng bảo mật.

Các biện pháp thiết lập hệ thống an ninh cho mạng không dây:
Mạng có thể giúp bạn chia sẻ dữ liệu và truy nhập Internet một cách dễ dàng.
Nhưng với một mạng không dây, các thông tin bạn truyền đi bằng sóng vô tuyến, vì vậy
bất kỳ ai cũng có thể “nghe thấy” tín hiệu mà bạn truyền đi trong phạm vi truyền tín
hiệu. Dưới đây là các cách để bạn có thể bảo vệ mạng không dây của mình:

Sử dụng mật khẩu: Không nên dùng mật khẩu truy cập hệ thống chỉ là khoảng
trắng hay do phần mềm thiết bị tự động tạo ra. Đừng bao giờ tạo một mật khẩu dễ dàng.
Nhớ đừng dùng những từ dễ đoán ra, hãy kết hợp các chữ cái, con số, biểu tượng với
nhau và nhớ phải tạo password dài hơn bảy kí tự. Bạn không nên dùng ngày sinh, tên
người hoặc đơn giản như ABCD1234. Hãy ghi nhớ password của mình và không nên
lưu trên máy tính. Không nên dùng chức năng nhớ password và hãy chịu khó gõ
password mỗi lần đăng nhập.

Thay đổi SSID mặc định: Các thiết bị không dây có một SSID mặc định được thiết
lập bới nhà sản xuất. SSID là tên của mạng không dây và có thể được thiết lập lên tới
32 ký tự. Các sản phẩm không dây Linksys sử dụng SSID mặc định là linksys. Các
hacker có thể tham gia vào mạng nếu chúng biết được SSID của mạng. Việc thay đổi
SSID thành một tên có tính chất riêng (bảo mật) sẽ đảm bảo cho mạng của bạn hơn.

Địa chỉ MAC: Chỉ cho phép các thiết bị có địa chỉ MAC nhất định được tham gia
vào hệ thống. Tất cả các thiết bị có nối mạng đều có một chuỗi 12 kí tự duy nhất dùng
làm số định danh cho từng thiết bị, từ chuyên môn gọi là địa chỉ MAC (Media Access
Control). Danh sách địa chỉ MAC các thiết bị nối mạng không dây sử dụng trong hệ
thống mạng được khai báo thông qua phần mềm quản trị Access Point. Muốn vào mạng
thì địa chỉ MAC trên Wireless Adapter phải nằm trong danh sách các địa chỉ MAC của
Access Point. Để hệ thống hoạt động an toàn hơn, chỉ những thiết bị nối mạng có số
đăng kí MAC nhất định mới được quyền truy cập vào hệ thống.
Nhưng với một vài câu lệnh thì Access Point sẽ mở cổng đón người lạ vào.

Trong Windows XP hay Windows 2000, thủ tục xác định địa chỉ MAC của các
thiết bị mạng như sau: Nhấn chuột vào Star/ Run, nhập vào dòng lệnh cmd rồi nhấn
phím OK. Trong cửa sổ DOS của tiện ích cmd, nhập vào dòng lệnh ipconfig /all (có
khoảng trống phân cách), rồi nhấn phím Enter. Sau dấu “:” của dòng thông báo Physical
Address chính là địa chỉ MAC của thiết bị mạng.

Với Windows 98/ Me chỉ cần nhập câu lệnh winipconfig vào trong cửa sổ của lệnh
Run, địa chỉ MAC sẽ nằm trên dòng thông báo có nhãn “ Adapter Address”.

Thay đổi mật khẩu mặc định: Đối với các sản phẩm không dây như là các điểm
truy nhập hay thiết bị định tuyến, bạn sẽ được yêu cầu một mật khẩu khi muốn thay đổi
các thiết lập của thiết bị. Các thiết bị này có một mật khẩu mặc định được thiết lập bới
nhà sản xuất (mật khẩu mặc định của các thiết bị Linksys là admin). Nếu các hacker biết
được mật khẩu đó, chúng có thể sẽ truy nhập vào thiết bị đó và thay đổi các thiết lập của
mạng. Để ngăn chặn những truy nhập không được xác thực, chúng ta cần thay đổi mật
khẩu mặc định như vậy sẽ làm cho các khách hàng hay những đối tượng khác khó có
thể truy nhập được vào thiết bị.

Áp dụng tiêu chuẩn bảo mật cho hệ thống:


Giao thức WEP
WEP (Wired Equivalent Privacy) nghĩa là bảo mật tương đương với mạng có dây
(Wired LAN). Khái niệm này là một phần trong chuẩn IEEE 802.11. Theo định nghĩa,
WEP được thiết kế để đảm bảo tính bảo mật cho mạng không dây đạt mức độ như mạng
nối cáp truyền thống. Đối với mạng LAN (định nghĩa theo chuẩn IEEE 802.3), bảo mật
dữ liệu trên đường truyền đối với các tấn công bên ngoài được đảm bảo qua biện pháp
giới hạn vật lý, tức là hacker không thể truy xuất trực tiếp đến hệ thống đường truyền
cáp. Do đó chuẩn 802.3 không đặt ra vấn đề mã hóa dữ liệu để chống lại các truy cập
trái phép. Đối với chuẩn 802.11, vấn đề mã hóa dữ liệu được ưu tiên hàng đầu do đặc
tính của mạng không dây là không thể giới hạn về mặt vật lý truy cập đến đường truyền,
bất cứ ai trong vùng phủ sóng đều có thể truy cập dữ liệu nếu không được bảo vệ.

Như vậy, WEP cung cấp bảo mật cho dữ liệu trên mạng không dây qua phương
thức mã hóa sử dụng thuật toán đối xứng RC4, được Ron Rivest - thuộc hãng RSA
Security Inc nổi tiếng - phát triển. Thuật toán RC4 cho phép chiều dài của khóa thay đổi
và có thể lên đến 256 bit. Chuẩn 802.11 đòi hỏi bắt buộc các thiết bị WEP phải hỗ trợ
chiều dài khóa tối thiểu là 40 bit, đồng thời đảm bảo tùy chọn hỗ trợ cho các khóa dài
hơn. Hiện nay, đa số các thiết bị không dây hỗ trợ WEP với ba chiều dài khóa: 40 bit,
64 bit và 128 bit.

Với phương thức mã hóa RC4, WEP cung cấp tính bảo mật và toàn vẹn của thông tin
trên mạng không dây, đồng thời được xem như một phương thức kiểm soát truy cập.
Một máy nối mạng không dây không có khóa WEP chính xác sẽ không thể truy cập đến
Access Point (AP) và cũng không thể giải mã cũng như thay đổi dữ liệu trên đường
truyền.

WPA- Wi-Fi Protected Access: được thiết kế nhằm thay thế Wep vì có tính bảo
mật cao hơn Wep. Wap có thể tự động thay đổi khóa nên gây khó khăn cho các harker
khi dò khóa của mạng. Ngoài ra nó còn cải tiến cả phương thức chứng thực và mã hóa,
sử dụng hệ thống kiểm tra và bảo đảm tính bảo mật tốt hơn wep.s

* WAP 2: WPA2 là thế hệ thứ hai của WPA và nó được tích hợp trong thiết bị
WRT54GC của Linksys. Nó được tạo ra không phải để khắc phục những hạn chế của
WPA, nó có thể tương thích ngược với các sản phẩm hỗ trợ WPA. Sự khác biệt chính
giữa hai kiểu mã hoá bảo mật này là WPA2 sử dụng công nghệ AES-Advanced
Encryption Standard/Chuẩn mã hoá nâng cao để mã hoá dữ liệu trong khi đó WPA sử
dụng TKIP (như giới thiệu ở trên). AES có khả năng cung cấp đầy đủ tính bảo mật để
có thể làm việc cùng với các chuẩn mã hoá ở mức độ cao hơn tại nhiều tổ chức chính
phủ. Cũng như WPA, WPA2 có thể hỗ trợ cho cả doanh nghiệp và người dùng gia đình.

*VPN, EAP và LEAP


Một số giao thức và giải pháp bảo mật, chẳng hạn như mạng riên ảo VPN (Virtual
Private Network) và giao thức nhận thực khả mở EAP (Extensible Authentication
Protocol) đang được nghiên cứu và phát triển. Sử dụng EAP, Access Point không cần
cung cấp nhận thực tới Client nhưng chuyển trách nhiệm đó tới 1 Server phức hợp phục
vụ mục đích đó. Bằng việc sử dụng 1 Server VPN tích hợp, công nghệ VPN tạo ra một
đường ngầm trên các giao thức IP đang tồn tại. Đường hầm này là một kết nối lớp 3 đối
lập với kết nối lớp 2 giữa AP và node đang gửi.

EAP: là một trong những kiểu nhận thực sớm nhất tương tự như Giao thức nhận
thực đòi hỏi bắt tay CHAP (Challenge Handshake Authentication Protocol) trên mạng
hữu tuyến. EAP cho phép các bộ tương thích thuê bao vô tuyến truyền thông với các
Server back-end khác nhau, chẳng hạn như RADIUS (Remote Authentication Dial-in
User Service)

LEAP (Lightweight Extensible Authentication Protocol) – Giao thức nhận thực


khả mở đơn giản,được phát triển bởi Cisco.Nhận thực tương hỗ tức là cả người sử dụng
và AP mà người sử dụng muốn truy cập tới phải được nhận thực trước khi truy cập vào
một mạng hợp nhất được phép. Nhân thực tương hỗ bảo vệ các hãng khỏi những APs
không có thẩm quyền.LEAP cung cấp sự bảo mật trong quá trình trao đổi uỷ nhiệm,các
mật mã sử dụng WEP key động và cung cấp nhận thực tương hỗ

5.3. Tổng quan về giao thức WAP

Tiêu chuẩn Wireless Application Protocol (WAP) – Giao thức ứng dụng không
dây cho phép các hệ thống thông tin truy cập không dây vào Internet từ các thiết bị di
động như điện thoại di động, điện thoại thông minh, thiết bị kỹ thuật số hỗ trợ cá nhân
(Personal Digital Assistant – PDA)... Một trình duyệt web cài đặt trên các thiết bị di
động sử dụng giao thức WAP truy cập Internet được gọi là một trình duyệt WAP. WAP
là tiêu chuẩn được duy trì và phát triển bởi một tổ chức công nghiệp (an industry
consortium) WAP Forum (Diễn đàn WAP). Được thành lập bởi công ty Ericsson,
Motorola, Nokia và Openwwave vào tháng 06/1997, WAP Forum bao gồm hàng trăm
thành viên là các công ty cung cấp cơ sở hạ tầng, công ty phần mềm và cung cấp nội
dung. Mục tiêu của WAP Forum là đưa ra các vấn đề về truy cập Internet không dây,
đảm bảo truy cập không bị giới hạn bởi các nhà thầu và các công nghệ mạng. WAP
Forum đã công bố lần lượt các phiên bản WAP 1.0 tới 1.1, 1.2 và 1.2.1, đến nay phiên
bản mới nhất là WAP 2.0, được công bố vào năm 1998.

Các đặc điểm của WAP

a) Kiến trúc giao thức


Hình vẽ bên dưới hiển thị kiến trúc WAP gồm 03 thực thể: WAP browser (trình duyệt
WAP), cổng kết nối WAP (WAP gateway) và một máy chủ (server) trên Internet.

Hình 5- 1: Kiến trúc WAP


Khi một thiết bị di động muốn truy cập vào mạng Internet, tất cả các kết nối phải đi qua
cổng kết nối WAP. Cổng WAP này biên dịch tất cả các giao thức sử dụng trong WAP
thành các giao thức sử dụng trên mạng Internet. Ví dụ, một proxy WAP mã hóa (hoặc
giải mã) nội dung để giảm kích cỡ dữ liệu được gửi đi qua môi trường không dây. Một
ví dụ khác là giao thức Bảo mật tầng giao vận không dây (Wireless Transport Layer
Security - WTLS). Kết nối giữa thiết bị di động và cổng kết nối WAP được bảo mật bởi
giao thức WTLS. WTLS chỉ sử dụng giữa thiết bị di động và cổng kết nối WAP, trong
khi cặp giao thức Tầng ổ bảo mật/ Bảo mật tầng truyền tải (Secure Sockets
Layer/Transport Layer Security - SSL/TLS) có thể được sử dụng giữa cổng kết nối và
mạng Internet. Điều này có nghĩa là cổng WAP phải giải mã các lưu lượng mã hóa bởi
WTLS sau đó mã hóa lại (sử dụng SSL/TLS) như hình vẽ sau:

Hình 5-2: Lưu lượng WTLS chuyển đổi sang lưu lượng SSL/TLS

b) Xếp chồng giao thức WAP


Trong nhiều năm, mô hình xếp chồng giao thức (a protocol stack) được phát triển
bởi OSI (Open Systems Initiative – hay còn gọi là mô hình OSI). Mô hình này cung cấp
một ngôn ngữ chung về các chức năng xác định bởi một xếp chồng giao thức và giúp
các nhà phát triển xây dựng, triển khai hệ thống trở nên dễ dàng, thống nhất hơn. Ánh
xạ giữa mô hình xếp chồng giao thức WAP tới mô hình OSI được thể hiện như hình vẽ
3 dưới đây:
Hình 5-3: Xếp chồng giao thức WAP

Xếp chồng giao thức WAP bao gồm các thành phần sau:

- Lớp liên kết dữ liệu và vật lý: Trong WAP, giao thức Điểm tới Điểm (Point to
Point - PPP) sử dụng trên nền các giao thức truyền tin Over – The – Air (OTA).

- Lớp mạng: Giao thức Internet (Internet Protocol- IP) là giao thức được lựa chọn
trong xếp chồng giao thức WAP. Tuy nhiên không phải tất cả mạng không dây
có khả năng truyền tải IP, do đó một số giao thức mạng không đóng gói (non-
packet) hoặc SMS có thể được sử dụng.

- Lớp truyền tải: Giao thức UDP được lựa chọn sử dụng. Tuy nhiên giao thức này
có thể không khả thi chạy trên nền các mạng không phải là mạng IP. Do đó, giao
thức gói tin phân nhỏ không dây (Wireless Datagram Protocol - WDP) là một sự
lựa chọn bổ sung khi UDP không được sử dụng. WDP xử lý datagram (gói tin
phân nhỏ) từ các lớp cao hơn vào các định dạng đáp ứng các yêu cầu về đường
truyền vật lý mà bộ truyền tin có thể gửi nhận như tin nhắn SMS (GSM SMS)
hoặc Dữ liệu gói CDMA (CDMA Packet Data).

- Lớp Phiên làm việc: Chức năng của lớp phiên làm việc được bao gồm trong Giao
thức giao dịch không dây (Wirless Transaction Protocol - WTP). WTP hoạt động
giữa giao thức WSP và Giao thức bảo mật tầng giao vận không dây (Wirless
Transport Layer Security - WTLS). Nó thực hiện chức năng truyền tải thông điệp
tại mức cao, đáp ứng nhu cầu xác định bởi các lớp trên cùng của xếp chồng giao
thức. WTP bóc tách khối dữ liệu vào datagram mức thấp hơn và kết nối, sắp xếp
các datagram thành các dữ liệu hữu ích. Khi datagram không đáng tin cậy, WTP
sử dụng kỹ thuật như truyền phát lại (retransmission) nhằm cung cấp khả năng
tin cậy cho dịch vụ.

- Lớp Trình diễn: Chức năng của lớp trình diễn được bao gồm trong Giao thức
phiên làm việc không dây (Wireless Session Protocol - WSP). WSP được thiết
kế để triển khai một giao thức yêu cầu – hồi đáp tương tự như giao thức HTTP,
sử dụng giao thức này, một máy khách (client) thực hiện một yêu cầu và sau đó
máy chủ xử lý và gửi trả lại một hồi đáp tương tự như một hồi đáp trong HTTP.
WSP có một số đặc tính không có trong HTTP do đặc tính di động của máy khách
WAP, ví dụ, một điện thoại di động (máy khách) không mất kết nối tới máy chủ
khi họ chuyển đổi các trạm kết nối cơ sở.

- Lớp Ứng dụng: Một số chức năng của lớp ứng dụng bao gồm trong WSP và
trong Môi trường ứng dụng không dây (Wireless Application Environment -
WAE). WAE đưa ra một môi trường nền tảng phần mềm cho các phần mềm ứng
dụng. WAE được xây dựng cho các chương trình trình duyệt nhỏ (micro browser
program). Nó làm việc tương tự như các trình duyệt WWW, biên dịch Ngôn ngữ
đánh dấu siêu văn bản (Hypertext markup language – HTML) và ngôn ngữ
Javascript. WAE bao gồm Ngôn ngữ đánh dấu không dây (Wireless Markup
Language – WML), WMLScript và Ứng dụng điện thoại không dây (Wireless
Telephony Application _WTA).

+ Ngôn ngữ đánh dấu không dây (WML): WML là ngôn ngữ đánh dấu của WAP
được chuyển đổi từ HTML cho các đặc tính mạng không dây.

+ WMLScript là ngôn ngữ kịch bản tích hợp của WML, tương tự như JavaScript
hoặc ECMAScript, WML Script có thể xử lý nhiều chức năng của một trình
duyệt và điện thoại bằng việc tải các kịch bản (scripts) từ máy chủ.

+ WTA là giao diện điện thoại của WAE, sử dụng để xử lý các chức năng điện
thoại của thiết bị di động từ WML, WMLScript hoặc từ một mạng và triệu hồi
các chức năng nếu nhận được yêu cầu từ một mạng nào đó.

Ứng dụng

Tiêu chuẩn WAP ứng dụng ngôn ngữ WML để triển khai và thể hiện các trang web tiêu
chuẩn cho phù hợp với các thiết bị di động. Sử dụng khuôn dạng tín hiệu dữ liệu tối ưu,
WAP được thiết kế để duyệt các nội dung web tới thiết bị vô tuyến thông qua loại bỏ
các thành phần đồ họa nhằm hiển thị trên màn hình nhỏ và hạn chế băng thông. Ngày
này WAP hỗ trợ hầu hết cho các thiết bị di động, đặc biệt là điện thoại thông minh
(smartphone).

5.4. Giao thức bảo mật Wirless Transport Layer Security (WTLS)

Mục tiêu của giao thức bảo mật lớp truyền tải vô tuyến WTLS (Wireless Transport
Layer Security) là đảm bảo tính năng bảo mật giữa các thiết bị đầu cuối WAP và cổng/ủy
quyền WAP. WTLS đưa ra khung làm việc cho các kết nối an toàn cho các ứng dụng
truyền thông 2 chiều. WTLS sử dụng các thành phần từ các giao thức bảo mật cơ bản
của Internet như lớp socket an toàn SSL (Socket Security Layer) và bảo mật lớp truyền
tải TLS (Transport Layer Security). Nguyên tắc của WTLS cho phép chứng nhận các
dữ liệu gốc, xác nhận bản quyền của bản tin. Để đảm bảo tính riêng tư và tính toàn vẹn
của dữ liệu, các kỹ thuật mã hoá và các mã nhận thực bản tin được sử dụng. Để thiết lập
các đấu nối an toàn, trong pha thiết lập được tạo ra các tham số cần thiết như: đặt tham
số, chuyển đổi khoá và nhận thực. Giống như các giao thức khác của WAP, WTLS tối
ưu cho các kênh truyền thông băng hẹp.

WTLS thiết lập một phiên làm việc giữa một máy khách (thiết bị di động) và một
máy chủ (cổng kết nối WAP). Phiên này thường gọi là giai đoạn “bắt tay” (handshake).
Trong suốt giai đoạn bắt tay, các tham số bảo mật được sử dụng để bảo vệ phiên làm
việc thực hiện kết nối. Các tham số này gồm giao thức mã hóa, thuật toán ký số, khóa
công khai… WTLS bao gồm việc hỗ trợ cả hai cơ chế bắt tay đầy đủ (a full handshake)
với các tất cả các tham số bảo mật và cơ chế bắt tay nhẹ (a lightweigh handshake) với
một số tham số bảo mật tại các phiên làm việc trước được sử dụng lại.

Khi một phiên làm việc bắt đầu thiết lập, tất cả kết nối giữa máy khách và máy
chủ đều được mã hóa. WTLS cũng hỗ trợ chức năng trì hoãn một phiên làm việc và kích
hoạt phiên trở lại. Các phiên làm việc vẫn còn hiệu lực khi các khóa bí mật vẫn còn hiệu
lực, vì vậy, nguy cơ một kẻ tấn công ăn cắp khóa bí mật trở nên cao hơn. Đó là lý do
WTLS cho phép các khóa có thể tái thương thảo (renegotiated) trong suốt một phiên
làm việc.

WTLS cũng sử dụng chứng thư số. Bởi vì chứng thư số không thực sự được thiết
kế sử dụng cho các thiết bị di động. WAP xác định một định dạng mới của chứng thư
số để tối ưu hóa việc lưu trữ trên thiết bị di động và truyền tải qua mạng không dây. Các
chứng thư này có chức năng tương tự chứng thư khởi đầu X.509.

WTLS được cung cấp bởi WAP Forum, đây là một giải pháp cho vấn đề bảo mật
trên WAP. WTLS là một tầng lớp chọn hoạt động trên tầng vận chuyển (WDP) và được
xây dựng dựa trên hai giao thức Internet đó là TLS (Transport Layer Security) v1.0, tầng
này cũng dựa trên một tầng khác đó là SSL (Secure Sockets Layer) v3.0. WTLS cũng
có các đặc điểm cơ bản như tất cả các tầng trước đây trong ngăn xếp WAP: nó là điểu
chỉnh của một giao thức Internet cho phù hợp với điều kiện độ trễ cao, băng thông thấp,
cùng với bộ nhớ và khả năng xử lý giới hạn của các thiết bị WAP. WTLS cũng cố gắng
giảm bớt chi phí liên quan đến việc thiết lập một kết nối an toàn giữa hai ứng dụng.
WTLS cung cấp cùng một mức độ bảo mật như ở SSL 3.0 nhưng giảm đi khoảng thời
gian giao tác. Các dịch vụ mà nó cung cấp là:

- Tính bảo mật (Privacy) bảo đảm dữ liệu gửi đi giữa server và client không thể
được truy cập từ bất kỳ người nào khác. Không ai có thể giải mã thông điệp cho họ có
thể nhìn thấy các thông điệp này ở dạng đã được mã hoá.

- Định danh server đảm bảo một server thật sự.

- Định danh client giúp server gốc giới hạn khả năng truy cập đến những nội dung
mà nó cung cấp. Xác định chỉ một số client nào đó mới có thể truy cập vào những trang
nào đó cho phép mà thôi.

- Bảo toàn dữ liệu sẽ đảm bảo nội dung dữ liệu trên đường truyền giữa server và
client sẽ không bị chỉnh sửa mà không được thông báo. Hình dưới đây mô tả cách WAP
gateway điều khiển các phiên làm việc an toàn. Một phiên SSL chuẩn được mở ra giữa
web server và WAP gateway và một phiên WTLS được khởi tạo giữa gateway và thiết
bị di động. Nội dung mã hoá được gửi đi thông qua nối kết này từ server đến gateway,
gateway biên dịch và gửi nó đến cho điện thoại di động. Hình 1.15. Mô hình làm việc
của Wap gateway Sau đó WTLS giao quyền lại cho giao thức SSL làm việc trên Internet.
Việc chuyển đổi giữa SSL và WTLS thực hiện bên trong bộ nhớ của WAP gateway .
Điều quan trọng là các thông tin không được mã hoá sẽ không được lưu trữ bên trong
gateway, vì như thế sẽ làm mất tác dụng tất cả các phương pháp bảo mật được dùng để
bảo vệ dữ liệu lưu trữ với những người không được định danh. Mặc dù các WAP
gateway được cung cấp nhiều chức năng để bảo đảm ở cấp an toàn cao nhất, thế nhưng
vẫn cón nhiều vấn đề liên quan đến giải pháp an toàn cho WAP. WTLS là một tầng tuỳ
chọn trong ngăn xếp WAP. Điều này có nghĩa là cơ chế bảo mật trong WAP chỉ có giá
trị khi được yêu cầu và không được xây dựng như là một chức năng trong kiến trúc
WAP. Do đó, thông tin lưu chuyển đến và đi qua WAP gateway thường không được mã
hoá, trừ phi chúng ta dùng các kết nối SSL để giao tiếp giữa các server gốc và gateway.

Câu hỏi ôn tập:

1. Trình bày khái niệm Mạng LAN không dây


2. Trình bày các vấn đề về bảo mật đối với mạng LAN không dây và các kỹ thuật đảm
bảo an toàn cho mạng

3. Trình bày cơ chế hoạt động của giao thức WAP

4. Trình bày giao thức WTLS.


TÀI LIỆU THAM KHẢO
[1]. Giáo trình An toàn và bảo mật thông tin: Tác giả Võ Đào Thị Hồng Tuyết, CĐ Kinh
Tế Kỹ Thuật TP HCM, 2020.

[2]. Giáo trình Mật mã học và An toàn thông tin: Tác giả Thái Thanh Tùng, NXB Thông
tin và Truyền thông, 2011.

[3]. Bài giảng An toàn và bảo mật thông tin: Tác giả Trần Minh Văn, ĐH Nha Trang,
2008

[4]. Giáo trình An toàn và bảo mật thông tin: Tác giả Nguyễn Hữu Tuân, ĐH Hàng Hải,
2008

[5]. Network Security Essentials: Applications and Standards, William Stallings,


Prentice Hall, 2011

You might also like