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 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
+ 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
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
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ữ
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ũ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
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ờ.
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
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
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
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