Tải bản đầy đủ (.pdf) (102 trang)

Khóa luận tốt nghiệp Tìm hiểu hệ thống PKL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.41 MB, 102 trang )

Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………


………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
TpHCM, ngày … tháng … năm …
Giáo viên hướng dẫn
[ký tên và ghi rõ họ tên]
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
TpHCM, ngày … tháng … năm …
Giáo viên phản biện
[ký tên và ghi rõ họ tên]
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành

Tìm Hiểu Hệ Thống PKI Trang
3
Mục Lục
Nội dung Trang
Nhận Xét Của Giáo Viên Hướng Dẫn…………………………… 1
Nhận Xét Của Giáo Viên Phản Biện…………………………… 2
Mục Lục …………………………………………………………… 3
Lời Cảm Ơn……………………………………………………… 4
Chương 1: Mở Đầu
1.1 Mục Đích Đồ Án……………………………………………… 5
1.2 Phương Pháp Thực Hiện……………………………………… 5
Chương 2: Tổng Quan Về PKI
2.1 Khái Niệm Cyptography………………………………………… 6
2.2 Tính Chất Của Cyptography……………………………………. 6
2.3 Ứng Dụng……………………………………………………… 6
2.4 Một Số Khái Niệm Liên Quan………………………………… 6
2.5 Khái Niệm Chìa Khóa………………………………………… 7
2.6 Thuật Toán Mã Hóa……………………………………………. 8
2.7 Một Số Phương Pháp Tấn Hệ Thống Thông Tin Mã Hóa………. 9
2.8 Một Số Thuật Toán Nổi Tiếng………………………………… 10
2.9 Hàm Hash………………………………………………………. 12
2.10 Public Key Infrastructure……………………………………… 13
Chương 3: Triển Khai Hệ Thống PKI Trên Windows Server 2003
A. Yêu Cầu ………………………………………………………… 16
B. Nội Dung Chính ………………………………………………… 16
C. Mô Hình Tổng Quát …………………………………………… 16
D. Triển Khai
+ Phần 1: Cài đặt các services phục vụ cho hệ thống PKI… 17
+ Phần 2: Ứng dụng PKI trong việc gửi mail có chứng thực
và mã hóa…………………………………………. 35

+ Phần 3: Chứng thực Web Browser bằng Certificate……… 54
+ Phần 4: Ứng Dụng PKI Trong VPN……………………… 77
Chương 4: Tổng Kết
4.1 Những Việc Đã Làm
4.2 Hướng Phát Triển
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
4
Lời Cảm Ơn
- Trong quá trình thực hiện đề tài này, tuy đã gặp một số khó khăn nhất định,
nhưng chúng em cũng đã hoàn thành yêu cầu của đồ án đề ra. Chúng em xin
chân thành cám ơn Ban giám hiệu Trường Cao Đẳng Nguyễn Tất Thành,
cám ơn quý thầy cô Khoa Công Nghệ Thông Tin. Đặc biệt là chúng em rất
cám ơn thầy Lê Trí Anh đã tận tình giúp đỡ chúng em thực hiện đồ án này.
Nhờ sự giúp đỡ của nhà trường, quý thầy cô và thầy Trí Anh mà chúng đã
hoàn thành đồ án này.
- Do kiến thức có hạn nên trong quá trình làm đề tài này, chúng em cũng còn
nhiều thiếu sót, kính mong quý thầy cô thông cảm.
- Chúng em xin hứa sẽ làm hết mình để đạt được kết quả tốt nghiệp và sau này
có thể giúp ích cho xã hội, đất nước để không phụ lòng mong mỏi của quý
thầy cô. Em thành thật cám ơn
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
5
Chương 1: MỞ ĐẦU
1.1 Mục Đích Đồ Án
C
ông nghệ thông tin là ngành đã được ứng dụng từ lâu. Tuy nhiên, kể từ thế kỷ
20 trở lại đây, ngành công nghệ thông tin mới thật sự phát triển mạnh mẽ trong tất
cả các lĩnh vực. Công nghệ thông tin không những phát triển ở những nước có nền

kinh tế phát triển mà còn ở những nước có nền kinh tế đang phát triển hoặc chưa
phát triển. Trong tất cả các lĩnh vực của đời sống ngày nay, ngành công nghệ thông
tin thật sự chiếm một vai trò rất quan trọng.
- Công nghệ thông tin không những đã và đang phát triển về rất nhiều lĩnh vực:
phần cứng, phần mềm, mạng máy tính…v.v. Trong đó, công nghệ mạng máy tính
đóng một vai trò rất quan trọng, là một cầu nối kết nối thông tin toàn cầu, nhờ công
nghệ mạng máy tính mà mọi người trên thế giới có thể trao đổi tài liệu, dữ liệu, tin
tức, gửi email, lướt web, điều khiển từ xa…cho nhau khi tham gia vào hệ thống
mạng, giúp con người tiết kiệm được nhiều thời gian, sức lực, tiền của…v.v
- Trong mạng máy tính, chia ra rất nhiều mảng nghiên cứu nhiều vấn đề khác nhau,
trong đó, nghiên cứu về vấn đề hạ tầng mã hóa công cộng cũng rất thiết thực và
được ứng dụng nhiều trong các lĩnh vực bảo mật, mã hóa dữ liệu…v.v. Với nhu cầu
như vậy, trong đồ án này, chúng ta sẽ tìm hiểu về những ứng dụng của hệ thống
(Public Key Infrastructure) PKI trong thực tiễn. Mục đích cụ thể của đồ án này là:
+ Tìm hiểu và ứng dụng PKI
+ Sử dụng hệ thống PKI để chứng thực mã hóa mail trong Mail Server
+ Sử dụng hệ thống PKI trong việc chứng thực một web site
+ Ứng dụng PKI trong VPN
+ Phát triển thêm phần sử dụng hệ thống PKI với các phần mềm mã nguồn
mở
1.2 Phương Pháp Thực Hiện
- Để thực hiện đề tài này, ta cần phải tìm hiểu tất cả tài liệu liên quan đến hệ thống
mã hóa công cộng PKI.
- Nghiên cứu các bài hướng dẫn sử dụng từ các forums, tìm và đọc tài liệu từ các
trang web về mạng máy tính nói về PKI
- Bên cạnh đó, ta cần tìm những người chuyên về lĩnh vực này, học hỏi kinh nghiệm
của những người đã làm được…
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
6

Chương 2: TỔNG QUAN VỀ PKI
2.1 Khái Niệm Cyptography
Cyptography được dịch là "mật mã học", là một ngành có nhiều thuật ngữ có thể
làm cho nhiều người cảm thấy khó hiểu như: "hash function", "one-time pad" hay
Rijndael Sau đây là một số khái niệm thường dùng trong ngành mật mã học mà
trong quá trình hoàn thành khóa luận chúng em đã nghiên cứu, hy vọng có thể giúp
ích cho những ai mong muốn tìm hiểu về lĩnh vực này.
Cryptography (hay crypto) - mật mã học – ngành khoa học nghiên cứu về việc
giấu thông tin. Cụ thể hơn, mật mã học là ngành học nghiên cứu về những cách
chuyển đổi thông tin từ dạng "có thể hiểu được" thành dạng "không thể hiểu được"
và ngược lại.
2.2 Tính Chất Cyptography
Cryptography giúp đảm bảo những tính chất sau cho thông tin:
• Tính bí mật (confidentiality): Thông tin chỉ được tiết lộ cho những ai được phép.
• Tính toàn vẹn (integrity):Thông tin không thể bị thay đổi mà không bị phát hiện.
• Tính xác thực (authentication): Người gửi (hoặc người nhận) có thể chứng minh
đúng họ.
• Tính không chối bỏ (non-repudiation): Người gửi hoặc nhận sau này không thể
chối bỏ việc đã gửi hoặc nhận thông tin
2.3 Ứng Dụng
Mật mã có rất nhiều ứng dụng trong thực tế như bảo vệ giao dịch tài chính (rút tiền
ngân hàng, mua bán qua mạng), bảo vệ bí mật cá nhân Nếu kẻ tấn công đã vượt
qua tường lửa và các hệ thống bảo vệ khác thì mật mã chính là hàng phòng thủ cuối
cùng cho dữ liệu của bạn.
2.4 Một Số Khái Niệm Liên Quan
Cần phân biệt khái niệm Cryptography với khái niệm Steganography (tạm dịch là
giấu thông tin). Điểm khác nhau căn bản nhất giữa hai khái niệm này là:
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
7

Cryptography là việc giấu nội dung của thông tin, trong khi Steganography là
việc giấu sự tồn tại của thông tin đó.
Cryptosystem (viết tắt của Cryptographic system): Hệ thống mã hóa thông tin, có
thể là phần mềm như PGP, Ax-Crypt, Truecrypt giao thức như SSL, IPsec hay
đơn giản là một thuật toán như DES.
Encrypt (Encipher): Mã hóa – quá trình biến đổi thông tin từ dạng ban đầu - có thể
hiểu được thành dạng không thể hiểu được, với mục đích giữ bí mật thông tin đó.
Decrypt (decipher): Giải mã – quá trình ngược lại với mã hóa, khôi phục lại thông
tin ban đầu từ thông tin đã được mã hóa.
Plaintext (cleartext): Dữ liệu gốc (chưa được mã hóa).
Ciphertext: Dữ liệu đã được mã hóa.
Lưu ý: từ text (hay message) ở đây được dùng theo quy ước, được hiểu là tất cả
những dữ liệu được mã hóa (hay giải mã) chứ không chỉ là văn bản chữ như nghĩa
thông thường. Khi dịch ra tiếng Việt, từ "văn bản" và từ "thông điệp" cũng tuân
theo quy ước tương tự.
Cipher (hay cypher): Thuật toán dùng để thực hiện quá trình mã hóa hay giải mã.
Gọi tắt là thuật toán.
Key: Chìa khóa – thông tin dùng cho qui trình mã hóa và giải mã.
(Xem "Sơ đồ mã hóa và giải mã một thông điệp")
Cryptanalysis: Nếu coi mật mã học là việc cất dữ liệu của bạn vào một cái hộp sau
đó dùng chìa khóa khóa lại, thì cryptanalysis là ngành nghiên cứu những phương
pháp mở hộp để xem dữ liệu khi không có chìa khóa.
Hình 1.1 Sơ đồ mã hóa và giải mã một thông điệp
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
8
2.5 Khái Niệm Về Chìa Khóa
Password: Mật khẩu, là một hay nhiều từ mà người dùng phải biết để được cấp
quyền truy cập.
Trong thực tế, mật khẩu do người dùng tạo ra thường không đủ độ an toàn để được

dùng trực tiếp trong thuật toán. Vì vậy, trong bất cứ hệ thống mã hóa dữ liệu
nghiêm túc nào cũng phải có bước chuyển đổi mật khẩu ban đầu thành chìa khóa có
độ an toàn thích hợp. Bước tạo chìa khóa này thường được gọi là key derivation,
key stretching hay key initialization.
Key Derivation Function: Là một hàm hash được thiết kế sao cho chìa an toàn hơn
đối với tấn công kiểu brute-force hay cổ điển. Hàm này được thực hiện lại nhiều lần
trên mật khẩu ban đầu cùng với một số ngẫu nhiên để tạo ra một chìa khóa có độ an
toàn cao hơn. Số ngẫu nhiên này gọi là salt, còn số lần lặp lại là iteration.
Ví dụ một mật khẩu là "pandoras B0x", cùng với salt là "230391827", đi qua hàm
hash SHA-1 1000 lần cho kết quả là một chìa khóa có độ dài 160 bit như sau:
3BD454A72E0E7CD6959DE0580E3C19F51601C359 (thể hiện dưới dạng số thập
lục phân).
Keylength (Keysize): Độ dài (hay độ lớn) của chìa khóa. Nói một chìa khóa có độ
dài 128 bit có nghĩa chìa đó là một số nhị phân có độ dài 128 chữ số. Một thuật toán
có chìa khóa càng dài thì càng có nhiều khả năng chống lại tấn công kiểu brute-
force.
2.6 Thuật Toán Mã Hóa
Cổ điển
• Substitution: Thay thế – phương pháp mã hóa trong đó từng kí tự (hoặc từng
nhóm kí tự) của văn bản ban đầu được thay thế bằng một (hay một nhóm) kí tự khác.
Tuy không còn được sử dụng nhưng ý tưởng của phương pháp này vẫn được tiếp
tục trong những thuật toán hiện đại.
• Transposition: Hoán vị – phương pháp mã hóa trong đó các kí tự trong văn bản
ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các kí tự không hề bị biến đổi.
Hiện đại
• Symmetric cryptography: Mã hóa đối xứng, tức là cả hai quá trình mã hóa và
giải mã đều dùng một chìa khóa. Để đảm bảo tính an toàn, chìa khóa này phải được
giữ bí mật. Vì thế các thuật toán loại này còn có tên gọi khác là secret key
cryptography (hay private key cryptography), tức là thuật toán mã hóa dùng chìa
khóa riêng (hay bí mật). Các thuật toán loại này lý tưởng cho mục đích mã hóa dữ

Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
9
liệu của cá nhân hay tổ chức đơn lẻ nhưng bộc lộ hạn chế khi thông tin đó phải
được chia sẻ với một bên thứ hai.
Giả sử nếu Alice chỉ gửi thông điệp đã mã hóa cho Bob mà không hề báo trước về
thuật toán sử dụng, Bob sẽ chẳng hiểu Alice muốn nói gì. Vì thế bắt buộc Alice phải
thông báo cho Bob về chìa khóa và thuật toán sử dụng tại một thời điểm nào đó
trước đấy. Alice có thể làm điều này một cách trực tiếp (mặt đối mặt) hay gián tiếp
(gửi qua email, tin nhắn ). Điều này dẫn tới khả năng bị người thứ ba xem trộm
chìa khóa và có thể giải mã được thông điệp Alice mã hóa gửi cho Bob.
Mã hóa đối xứng có thể phân thành hai nhóm phụ:
- Block ciphers: Thuật toán khối – trong đó từng khối dữ liệu trong văn bản
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à block size, thường được tính bằng đơn vị bit
- Stream ciphers: Thuật toán dòng – 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.
• Asymmetric cryptography: mã hóa bất đối xứng, sử dụng một cặp chìa khóa có
liên quan với nhau về mặt toán học, một chìa công khai dùng để mã hoá (public
key) và một chìa bí mật dùng để giải mã (private key). Một thông điệp sau khi được
mã hóa bởi chìa công khai sẽ chỉ có thể được giải mã với chìa bí mật tương ứng. Do
các thuật toán loại này sử dụng một chìa khóa công khai (không bí mật) nên còn có
tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công
khai).
Quay lại với Alice và Bob, nếu Alice muốn gửi một thông điệp bí mật tới Bob, cô ta
sẽ tìm chìa công khai của Bob. Sau khi kiểm tra chắc chắn chìa khóa đó chính là của
Bob chứ không của ai khác (thông qua chứng chỉ điện tử – digital certificate), Alice

dùng nó để mã hóa thông điệp của mình và gửi tới Bob. Khi Bob nhận được bức
thông điệp đã mã hóa anh ta sẽ dùng chìa bí mật của mình để giải mã nó. Nếu giải
mã thành công thì bức thông điệp đó đúng là dành cho Bob. Alice và Bob trong
trường hợp này có thể là hai người chưa từng quen biết. Một hệ thống như vậy cho
phép hai người thực hiện được giao dịch trong khi không chia sẻ trước một thông
tin bí mật nào cả.
Một trong những hạn chế của các thuật toán mã hóa bất đối xứng là tốc độ chậm, do
đó trong thực tế người ta thường sử dụng một hệ thống lai tạp trong đó dữ liệu được
mã hóa bởi một thuật toán đối xứng, chỉ có chìa dùng để thực hiện việc mã hóa này
mới được mã hóa bằng thuật toán bất đối xứng.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
10
2.7 Một Số Phương Pháp Tấn Công Hệ Thống Thông Tin Mã Hóa
Bất cứ ai cũng có thể tạo ra một hệ thống thông tin mã hóa cho riêng mình. Nhưng
để có một hệ thống an toàn và hiệu quả đòi hỏi người thiết kế phải có kiến thức toán
học sâu sắc, có kinh nghiệm về bảo mật và am hiểu các phương pháp tấn công.
• Brute-force attack (exhaustive key search): phương pháp tấn công bằng cách
thử tất cả những chìa khóa có thể có. Đây là phương pháp tấn công thô sơ nhất và
cũng khó khăn nhất.
Theo lý thuyết, tất cả các thuật toán hiện đại đều có thể bị đánh bại bởi brute-force
nhưng trong thực tiễn việc này chỉ có thể thực hiện được trong thời gian hàng triệu,
thậm chí hàng tỉ năm. Vì thế có thể coi một thuật toán là an toàn nếu như không còn
cách nào khác để tấn công nó dễ hơn là brute-force.
Ví dụ: Thuật toán DES có độ dài chìa khóa là 56 bit tức là có tổng cộng tất cả 256
chìa để dùng. Nếu ai đó muốn "bẻ khoá” DES bằng cách thử hàng loạt chìa (brute-
force attack) thì sẽ phải thử đến 256 lần (khoảng hơn 70 triệu tỉ lần).
• Frequency analysis: thống kê tần suất, chỉ có thể áp dụng được đối với các thuật
toán cổ điển dùng phương pháp thay thế, ví dụ phương pháp Caesar. Để thực hiện
phương pháp này ta cần một lượng văn bản đã mã hóa đủ lớn để phép thống kê

được chính xác. Ngoài ra còn phải biết ngôn ngữ sử dụng trong văn bản ban đầu,
nếu văn bản ban đầu là tiếng Anh thì nhiều khả năng kí tự xuất hiện nhiều nhất
trong văn bản đã mã hóa là do chữ e mã hóa thành, kí tự nhiều thứ nhì bắt nguồn từ
chữ a
• Differential cryptanalysis: Eli Biham và Adi Shamir tìm ra phương pháp này vào
khoảng cuối những năm 1980; nó thường được sử dụng để tấn công các thuật toán
khối (block cipher). Phương pháp này dựa trên việc phân tích những biến đổi của
hai văn bản gốc có liên quan khi được mã hóa bởi cùng một chìa.
Còn rất nhiều phương pháp khác như Mod-n cryptanalysis, Linear cryptanalysis,
Birthday attack, Algebraic attack mà bất cứ ai thiết kế hệ thống mã hóa cũng phải
chú ý tới.
2.8 Một Số Thuật Toán Nổi Tiếng
• One-time Pad (OTP): xuất hiện từ đầu thế kỉ 20 và còn có tên gọi khác là
Vernam Cipher, OTP được mệnh danh là cái chén thánh của ngành mã hóa dữ liệu.
OTP là thuật toán duy nhất chứng minh được về lý thuyết là không thể phá được
ngay cả với tài nguyên vô tận (tức là có thể chống lại kiểu tấn công brute-force). Để
có thể đạt được mức độ bảo mật của OTP, tất cả những điều kiện sau phải được thỏa
mãn:
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
11
- Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã hóa.
- Chìa khóa chỉ được dùng một lần.
- Chìa khóa phải là một số ngẫu nhiên thực.
Mới nghe qua có vẻ đơn giản nhưng trong thực tế những điều kiện này khó có thể
thỏa mãn được. Giả sử Alice muốn mã hóa chỉ 10MB dữ liệu bằng OTP, cô ta phải
cần một chìa khóa có độ dài 10MB. Để tạo ra một số ngẫu nhiên lớn như vậy Alice
cần một bộ tạo số ngẫu nhiên thực (TRNG - True Random Number Generator). Các
thiết bị này sử dụng nguồn ngẫu nhiên vật lý như sự phân rã hạt nhân hay bức xạ
nền vũ trụ. Hơn nữa việc lưu trữ, chuyển giao và bảo vệ một chìa khóa như vậy

cũng hết sức khó khăn.
Dễ dàng hơn, Alice cũng có thể dùng một bộ tạo số ngẫu nhiên ảo (PRNG - Pseudo
Random Number Generator) nhưng khi đó mức độ bảo mật giảm xuống gần bằng
zero hay cùng lắm chỉ tương đương với một thuật toán dòng như RC4 mà thôi.
Do có những khó khăn như vậy nên việc sử dụng OTP trong thực tế là không khả
thi.
• DES: viết tắt của Data Encryption Standard. DES là một thuật toán khối với kích
thước khối 64 bit và kích thước chìa 56 bit. Tiền thân của nó là Lucifer, một thuật
toán do IBM phát triển. Cuối năm 1976, DES được chọn làm chuẩn mã hóa dữ liệu
của nước Mỹ, sau đó được sử dụng rộng rãi trên toàn thế giới. DES cùng với mã
hóa bất đối xứng đã mở ra một thời kì mới cho ngành mã hóa thông tin. Trước DES,
việc nghiên cứu và sử dụng mã hóa dữ liệu chỉ giới hạn trong chính phủ và quân
đội. Từ khi có DES, các sản phẩm sử dụng nó tràn ngập thị trường. Đồng thời, việc
nghiên cứu mã hóa thông tin cũng không còn là bí mật nữa mà đã trở thành một
ngành khoa học máy tính bình thường.
Trong khoảng 20 năm sau đó, DES đã trải qua nhiều khảo sát, phân tích kỹ lưỡng
và được công nhận là an toàn đối với các dạng tấn công (tất nhiên, ngoại trừ brute-
force).
Tới tháng 7 năm 1998, EFF (Electronic Frontier Foundation) đã "brute-force" thành
công DES trong 56 giờ. Ít lâu sau đó cùng với mạng tính toán ngang hàng
Distribute.net, tổ chức này đã lập nên kỉ lục mới là 22 giờ 15 phút. Sự kiện này
chứng tỏ cỡ chìa 56 bit của DES đã lỗi thời và cần được thay thế.
• AES: viết tắt của Advance Encryption Standard. Tháng 12 năm 1997, viện tiêu
chuẩn và công nghệ Mỹ (NIST – National Institute of Standard and Technology)
kêu gọi phát triển một thuật toán mới thay thế cho 3DES (một biến thể an toàn hơn
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
12
của DES với chìa khóa dài 112 bit). Thuật toán được chọn phải là thuật toán khối có
kích thước khối là 128 bit, hỗ trợ chìa khóa có kích thước 128 bit, 192 bit và 256

bit.
15 thuật toán được gửi đến từ nhiều nơi trên thế giới, 5 thuật toán lọt vào vòng hai:
Rijndael, Twofish, Serpent, RC6 và MARS. Tháng 11 năm 2001, Rijndael đuợc
chọn làm AES (một phần nhờ có tốc độ nhanh hơn so với các đối thủ), chính thức
thay thế DES trong vai trò chuẩn mã hóa dữ liệu.
• RSA: là một thuật toán mã hóa bất đối xứng được sử dụng rất rộng rãi trong giao
dịch điện tử. Cái tên RSA có nguồn gốc từ ba chữ cái đầu của tên ba người đồng
thiết kế ra nó: Ronald Rivest, Adi Shamir và Leonard Adleman.
Ngoài ra còn nhiều thuật toán khác nhưng do khuôn khổ bài viết có hạn nên không
thể đi sâu, mà chỉ liệt kê một số thuật toán thông dụng:
Các thuật toán đối xứng:
• Thuật toán dòng: RC4, A5/1, A5/2, Chameleon
• Thuật toán khối: 3DES, RC5, RC6, 3-Way, CAST, Camelia, Blowfish, MARS,
Serpent, Twofish, GOST
Các thuật toán bất đối xứng: Elliptic Curve, ElGamal, Diffie Hellman
2.9 Hàm Hash
Hàm hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì
qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra.
Ví dụ, từ "Illuminatus" đi qua hàm SHA-1 cho kết quả:
783A3AE2ACDD7DBA5E1FA0269CBC58D.
Ta chỉ cần đổi "Illuminatus" thành "Illuminati" (chuyển "us" thành "i") kết quả sẽ
trở nên hoàn toàn khác (nhưng vẫn có độ dài cố định là 160 bit)
A766F44DDEA5CACC3323CE3E7D73AE82.
Hai tính chất quan trọng của hàm này là:
• Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự
như việc bạn không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của nó
được.
• Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông
điệp khác nhau có cùng một kết quả hash, là cực kì nhỏ.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành

Tìm Hiểu Hệ Thống PKI Trang
13
Một số ứng dụng của hàm hash:
• Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash
của một file với giá trị trước đó để kiểm tra xem file đó có bị ai đó thay đổi hay
không.
• Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị
hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là
nhỏ nhất.
• Tạo chìa khóa từ mật khẩu.
• Tạo chữ kí điện tử.
SHA-1 và MD5 là hai hàm hash thông dụng nhất và được sử dụng trong rất nhiều
hệ thống bảo mật. Vào tháng 8 năm 2004, tại hội nghị Crypto 2004, người ta đã tìm
thấy va chạm đối với MD5 và SHA-0, một phiên bản yếu hơn của hàm hash SHA-1.
Không bao lâu sau đó, vào khoảng giữa tháng 2 năm 2005, một nhóm ba nhà mật
mã học người Trung Quốc đã phát hiện ra một phương pháp có thể tìm thấy va
chạm đối với SHA-1 chỉ trong vòng 269 bước tính toán (tức là có thể nhanh hơn
brute-force vài nghìn lần).
Người dùng bình thường cũng không cần phải hoảng sợ trước những phát hiện này
bởi vì ít nhất phải một vài năm nữa người ta mới có khả năng mang những kết quả
đó vào trong thực tế. Tuy vậy, các chuyên gia vẫn khuyên nên bắt đầu chuyển sang
các hàm hash an toàn hơn như SHA-256, SHA-384 hay SHA-512.
2.10 Public Key Infrastructure
2.10.1 PKI là gì?
Internet đã xuất sắc trong việc trở thành bệ phóng số một cho thương mại và giao
dịch toàn cầu. Tính phổ biến rộng rãi một mặt đã thúc đẩy bùng nổ Internet, tuy
nhiên, mặt khác khó mà bảo đảm rằng những giao dịch trên Internet luôn an toàn.
Các tổ chức chính phủ, doanh nghiệp và các cá nhân đòi hỏi máy móc không những
phải bảo vệ toàn vẹn thông tin lưu chuyển trên Internet mà còn phải cho họ cảm
giác tin cậy giống như khi giao dịch trên giấy tờ.

Trước khi giao phó các giao dịch nhạy cảm của mình cho Internet, người sử dụng
đòi hỏi mức an toàn đặc biệt. Họ muốn rằng giao dịch điện tử phải đáng tin cậy và
phải được bảo vệ chống xem trộm. Họ muốn được chắc chắn rằng những người
tham gia giao dịch phải là những người mà họ thỉnh cầu, và họ muốn được bảo đảm
rằng không ai có thể phủ nhận hành vi liên quan của mình trong giao dịch khi có sự
cố xảy ra.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
14
Cơ sở hạ tầng chìa khóa công cộng (PKI) đã đáp ứng cho những yêu cầu trên. Dựa
trên cách sử dụng của chìa khóa mật mã công cộng và chữ ký điện tử, một PKI
chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu
cầu bảo mật của người sử dụng khi gởi đi những thông tin quan trọng qua Internet
và các mạng khác.
Chìa khóa mật mã công cộng (Public Key cryptography) bảo đảm độ tin cậy đối
với các thông tin hoặc thông điệp quan trọng bằng cách sử dụng các thuật toán, hay
còn gọi là chìa khóa, để mã hóa dữ liệu và một chìa khóa để giải mã chúng. Trong
dịch vụ Chìa khóa mật mã công cộng, người sử dụng nhận được phần mềm mã hóa
đặc biệt và một cặp chìa khóa, trong đó có một chìa là chìa khóa công cộng (Public
key) để có thể sử dụng dịch vụ, chìa còn lại là chìa khóa cá nhân (Private key) mà
người sử dụng phải giữ bí mật.
Hai chìa khóa này có liên quan mật thiết đến nhau, sao cho một thông điệp được mã
hóa bởi một chìa khóa mật mã công cộng thì chỉ giải mã được bởi một chìa khóa cá
nhân tương ứng. Một người sử dụng, ví dụ là Bob, mã hóa một thông điệp gởi đi
bằng chìa khóa công cộng của người nhận là Alice. Khi nhận được thông điệp này,
Alice sẽ giải mã nó bằng chìa khóa cá nhân của mình. Tất cả các chìa khóa công
cộng đều được phát hành trong những cuốn niên giám điện tử.
Tổ chức cấp giấy chứng nhận là một thành phần chính của PKI. Nó là một tổ chức
thứ ba đáng tin cậy chịu trách nhiệm phát hành giấy chứng nhận kỹ thuật số và quản
lý chúng trong thời hạn có hiệu lực. Chứng nhận kỹ thuật số là những tập tin điện tử

chứa các chìa khóa mật mã công cộng và các thông tin nhận dạng đặc biệt về người
sử dụng. Các giấy chứng nhận này có "dán tem" xác nhận và không thể làm giả
được. Cũng giống như việc phát hành hộ chiếu, tổ chức cấp giấy chứng nhận xác
nhận rằng cá nhân được cấp giấy chứng nhận kỹ thuật số là người đáp ứng đủ điều
kiện.
Chữ ký điện tử là một xác minh điện tử ngang bằng với một chữ ký truyền thống
trên giấy - tức là có giá trị duy nhất, có thể kiểm chứng được và chỉ người ký mới
có thể tạo ra nó. Thông điệp hay tài liệu dù đã được mã hóa hay chưa, hễ có chữ ký
điện tử thì cũng đảm bảo được rằng thông tin trong đó không bị xâm phạm trong
quá trình lưu chuyển.
Các chính phủ, doanh nghiệp, cá nhân hội nhập vào cuộc cách mạng số hóa đều sẽ
dùng Chứng nhận kỹ thuật số. Khi phát hành một số lượng lớn giấy chứng nhận như
vậy thì cần phải đề ra biện pháp quản lý việc sử dụng. Quản lý giấy chứng nhận là
một công việc về lâu về dài của Tổ chức cấp giấy chứng nhận PKI. Trên khắp thế
giới, các công ty lớn và nhỏ đều đầu tư cho Cơ sở hạ tầng chìa khóa công cộng như
là một giải pháp hữu hiệu cho sáng tạo tập trung, phân phối, quản lý, chứng nhận
cải tiến và đổi mới.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
15
2.10.2 PKI hoạt động như thế nào ?
Bob và Alice muốn liên lạc với nhau qua Internet, dùng PKI để chắc chắc rằng
thông tin trao đổi giữa họ được bảo mật. Bob đã có chứng nhận kỹ thuật số, nhưng
Alice thì chưa. Để có nó, cô phải chứng minh được với Tổ chức cấp giấy chứng
nhận cô thực sự là Alice. Một khi các thông số nhận dạng của Alice đã được Tổ
chức thông qua, họ sẽ phát hành cho cô một chứng nhận kỹ thuật số. Chứng nhận
điện tử này có giá trị thực sự, giống như tấm hộ chiếu vậy, nó đại diện cho Alice.
Nó gồm có những chi tiết nhận dạng Alice, một bản sao chìa khóa công cộng của cô
và thời hạn của giấy chứng nhận cũng như chữ ký kỹ thuật số của Tổ chức chứng
nhận. Alice cũng nhận được chìa khóa cá nhân kèm theo chìa khóa công cộng. Chìa

khóa cá nhân này được lưu ý là phải giữ bí mật, không được san sẻ với bất cứ ai.
Bây giờ thì Alice đã có chứng nhận kỹ thuật số, Bob có thể gởi cho cô những thông
tin quan trọng được số hóa. Bob có thể xác nhận với cô là thông điệp đó xuất phát
từ anh ta cũng như được bảo đảm rằng nội dung thông điệp không bị thay đổi và
không có ai khác ngoài Alice đọc nó.
Diễn biến thực tế không phải mất nhiều thời gian như những giải thích trên, phần
mềm tại máy trạm của Bob tạo ra một chữ ký điện tử và mã hóa thông điệp có chứa
chữ ký đó. Phần mềm sử dụng chìa khóa cá nhân của Bob để tạo ra chữ ký điện tử
và dùng chìa khóa công cộng của Alice để mã hóa thông điệp. Khi Alice nhận được
thông điệp đã được mã hóa có chữ ký của Bob, phần mềm sẽ dùng chìa khóa cá
nhân của cô để giải mã thông điệp. Vì chỉ có duy nhất chìa khóa cá nhân của Alice
mới có thể giải mã thông điệp đã được mã hóa bằng chìa khóa công cộng của cô,
cho nên độ tin cậy của thông tin hoàn toàn được bảo đảm. Sau đó, phần mềm dùng
chìa khóa công cộng của Bob xác minh chữ ký điện tử, để đảm bảo rằng chính Bob
đã gởi thông điệp đi, và thông tin không bị xâm phạm trên đường di chuyển.
Bảng sau đây minh họa cho tiến trình của chữ ký điện tử và độ tin cậy cao đáp ứng
cho yêu cầu giao dịch điện tử an toàn của Bob và Alice.
Bob muốn chuyển một thư điện tử đến cho Alice,
với yêu cầu rằng giao dịch phải chứng minh được
chính anh đã gởi nó đi và nội dung bức thư
không bị thay đổi.
Phần mềm PKI dùng chìa khóa
cá nhân của Bob tạo ra một chữ
ký điện tử cho bức thư
Bob muốn chắc chắn rằng không ai ngoài Alice
đọc được bức thư này
Phần mềm PKI của Bob dùng
chìa khóa công cộng của Alice
để mã hóa thông điệp của Bob.
Alice muốn đọc thư do Bob gởi

Phần mềm PKI dùng chìa khóa
cá nhân của Alice để để giải mã
thông điệp.
Alice muốn kiểm chứng rằng chính Bob đã gởi đi
Phần mềm PKI của Alice dùng
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
16
thông điệp đó và nội dung thông điệp không bị
chỉnh sửa.
chìa khóa công cộng của Bob để
kiểm chứng chữ ký điện tử của
anh ta.
Chương 3: TRIỂN KHAI HỆ THỐNG PKI TRÊN WINDOWS
SERVER 2003
A. Yêu Cầu
- Phải có 1 hệ thống mạng máy tính, ít nhất là 2 máy, trong đó, 1 máy Server
và các máy trạm. Do điều kiện có hạn nên đề tài này chúng em chỉ triển trên
hệ thống máy ảo VMWare gồm có 1 máy Windows Server 2003 và máy
Windows XP
- Trên máy Server phải cài các services sau đây:
+
B. Nội Dung Chính
Phần 1: Cài đặt các services phục vụ cho hệ thống PKI
Phần 2: Ứng dụng PKI trong việc gửi mail có chứng thực và mã hóa
Phần 3: Chứng thực Web Browser bằng Certificate
Phần 4: Ứng dụng VPN
C. Mô Hình Tổng Quát
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang

17
D. Triển Khai
Cài các phần mềm và dịch vụ mạng trên máy Windows Server 2003
* Phần 1: Cài đặt các services phục vụ cho hệ thống PKI
a) Cài đặt và cấu hình DNS Server:
 Khái quát về DNS
- DNS là một hệ cơ sở dữ liệu phân tán dùng để ánh xạ tên miền và các
địa chỉ IP. DNS đưa ra một phương pháp đặc biệt để duy trì và liên kết
các ánh xạ này trong một thể thống nhất, trong một phạm vi lớn hơn các
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
18
máy tính kết nối tới Internet để tạo địa chỉ liên kết dạng URL (Universal
Resourse Locators). Theo phương pháp này mỗi máy tính sẽ không cần
sử dụng địa chỉ IP cho kết nối
Các tên DNS tạo ra theo định dạng sau, ví dụ: Infosec, vasc.com.vn.
Trong khi danh sách các kiểu tên DNS được thiết kế lại bởi ICANN
(Công ty quản lý dịch vụ tên miền), một số các kiểu thông thường bao
gồm: edu( dạng các website giáo dục , .mil (các website cho quân đội),
org (thuộc dạng các tổ chức phi thương mại), .com (các tổ chức kinh tế),
…Và cũng có các tên miền chỉ định theo tên nước, ví dụ : .ie (Ireland),.jp
(Japan),.de(Germany)
Khi một máy tính (một DNS Client) muốn tìm kiếm một URL, nó đưa ra
yêu cầu (GetHostByName) tới DNS Server của nó. DNS Client sử dụng
một DNS resolver để định vị DNS Server không xác định được tên miền
cần tìm hay DNS server không có chút thông tin gì về URL đó trong
vùng nhớ đệm của nó, nó sẻ không thể trả lời yêu cầu của client ngay lập
tức. Thay vào đó DNS server sẽ hoặc sử dụng một DNS Forwarder hoặc
tạo lại yêu cầu theo quy tắc đệ quy
Hệ thống tên miền (Domain Name Services) làmột dịch vụ tên miền của

Internet theo chuẩn TCP/IP. Dịch vụ DNS làm cho những máy khách trên
hệ thống mạng của bạn có khả năng đăng ký và phân giải tên miền DNS.
Những tên miền này được sử dụng để tìm và truy cập những tài nguyên
được đưa ra bằng những máy tính khác trên hệ thống mạng của bạn hoặc
trên hệ thống mạng khác như là Internet
DNS là tên viết tắt của Domain Name Services, một hệ thống mà tên của
các máy tính và những dịch vụ được tổ chức vào hệ thống miền phân cấp.
Tên DNS được sử dụng trong hệ thống mạng TCP/IP như là Internet
những máy tính và dịch vụ định vị xuyên qua tên thân mật của user. Khi
một user truy cập vào tên DNS vào trình ứng dụng, dịch vụ DNS có thể
phân giải tên miền để kết hợp thông tin khác nhau như là địa chỉ IP.
Ví dụ, tất cả user thích tên thân mật hơn như là example.microsoft.com
để định vị máy tính như là Mail Server hoặc Web Server trên hệ thống
mạng. Một tên thân mật có thể dễ dàng hơn để học và nhớ. Tuy nhiên
những máy tính liên lạc với nhau trong hệ thống mạng bằng cách sử dụng
những địa chỉ số. Lợi dụng tài nguyên hệ thống mạng dễ dàng hơn, tên
của dịch vụ như là DNS cung cấp phương pháp để ánh xạ tên thân mật
của user cho máy tính hoặc dịch vụ tới những địa chỉ số của chính nó.
Nếu bạn sử dụng bất kỳ trình duyệt Web nào thì bạn sử dụng DNS
 Cài đặt:
1. Ta vào Start  Setting Control Panel Add or Remove Programs
 Add/Remove Windows Components. Xuất hiện cửa sổ Windows
Component Wizard, ở cửa sổ này, ta chọn Network Services. Nhấn Detail.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
19
Hình 3.1
2. Trong cửa sổ Networking Services, ta chọn dòng Domain Name System
(DNS), nhấn OK.
Hình 3.2

Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
20
3. Trở về cửa sổ Windows Component Wizard, nhấn Next
Hình 3.3
4. Nhấn Finish để kết thúc cài đặt dịch vụ.
Hình 3.4
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
21
 Cấu Hình DNS
* Tạo 1 Forward Lookup Zone.
1. Vào Start  Administrative Tools  DNS để mở dịch vụ DNS. Ở cửa
sổ đầu tiên, ta Right Click vào mục Forward Lookup Zone, chọn New
Zone.
Hình 3.5
2. Ở cửa sổ kế tiếp ta nhấn Next. Cửa sổ tiếp theo ở phần Zone Type, ta
chọn Primary zone, nhấn Next.
Hình 3.6
3. Ở cửa sổ Zone Name, ta đặt tên Domain Name là pki.com, nhấn Next
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
22
Hình 3.7
4. Cửa sổ Zone File, chọn mục Create a new file with this file name: gõ
vào textbox pki.com.dns, nhấn Next
Hình 3.8
5. Tiếp tục nhấn Next cho đến khi hoàn tất, nhấn Finish.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang

23
Hình 3.9
6. Khi ta tạo xong Zone pki.com, ta Right Click vào zone này chọn New
Host (A)…xuất hiện hộp thoại tiếp theo.
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
24
Hình 3.10
7. Ở hộp thoại New Host, ở textbox name: gõ tên server, IP Address: gõ
192.168.1.2. Click Add Host.
Hình 3.11
8. Sau đó hiện lên bảng thông báo, ta nhấn OK, cửa sổ tiếp theo nhấn Done
để thực hiện việc Add Host.
Hình 3.12
* Tạo 1 Reverse Lookup Zone
- Ta thực hiện các bước tương tự như trên, riêng ở phần Network ID ta gõ
vào 192.168.1 nhấn Next cho đến khi xuất hiện hộp thoại cuối nhấn Finish
để hoàn thành
Báo Cáo Tốt Nghiệp CĐ Nguyễn Tất Thành
Tìm Hiểu Hệ Thống PKI Trang
25
Hình 3.13
1. Trong nhánh Reverse Lookup Zone, chọn nhánh 192.168.1.x Subnet ta R.C
vào nhánh này chọn New Pointer (PTR)…
Hình 3.14

×