An toàn bảo mật thông tin
Lời mở đầu
Hiện nay, hệ thống công nghệ thông tin ngày càng phát triển, việc áp dụng
mạng máy tính vào trong các hoạt động ngày càng phổ biến. Việc sử dụng thư điện tử
đang ngày càng nhiều vì thư điện tử là dịch vụ mạng phổ dụng nhất. Hiện nay các
thông báo không được bảo mật có thể đọc được nội dung trong quá trình thông báo di
chuyển trên mạng; những người dùng có đủ quyền có thể đọc được nội dung thông báo
trên máy đích; thông báo dễ dàng bị giả mạo bởi một người khác và tính toàn vẹn của
thông báo không báo không được bảo đảm. Do đó, cần phải xây dựng các giao thức để
đảm bảo an toàn.
Với đề tài “ Nghiên cứu các giao thức đảm bảo an ninh cho tầng ứng dụng
và xây dựng chương trình mô phỏng” em đã tìm hiểu một số giao thức bảo mật
thường dùng với sự giúp đỡ nhiệt tình của thầy Nguyễn Duy Tân. Tuy nhiên, do khả
năng còn hạn hẹp nên không tránh được những sai xót, rất mong được sự góp ý của
thầy và các bạn để bài tiểu luận được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Sinh viên: Nguyễn Thị Ánh_TK6LC1
1
An toàn bảo mật thông tin
Mỗi tầng khác nhau thì có những giao thức đảm bảo an ninh khác nhau.
Tầng ứng dụng bao gồm các giao thức: Kerberos, S| MIME, PGP, SET
1. Giao thức Kerberos
Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máy tính hoạt
động trên những đường truyền không an toàn. Giao thức Kerberos có khả năng chống
lại việc nghe lén hay gửi lại các gói tin cũ và đảm bảo tính toàn vẹn của dữ liệu. Mục
tiêu khi thiết kế giao thức này là nhằm vào mô hình client - server và đảm bảo nhận
thực cho cả hai chiều.
Tên của giao thức Kerberos được lấy từ tên của con chó ba đầu Cerberus canh gác
cổng địa ngục trong thần thoại Hy Lạp. Giao thức được xây dựng dựa trên mã hoá đối
xứng và cần đến một bên thứ ba mà cả hai phía tham gia giao dịch tin tưởng.
1.1 Lịch sử phát triển
Học viện kỹ thuật Massachusetts (MIT) phát triển Kerberos để bảo vệ các dịch vụ
mạng cung cấp bởi dự án Athena. Tên của giao thức được đặt theo tên của con chó ba
đầu Cerberus canh gác cổng địa ngục trong thần thoại của Hy Lạp. Giao thức đã được
phát triển dưới nhiều phiên bản, trong đó các phiên bản từ 1 đến 3 chỉ dùng trong nội
bộ MIT.
Các tác giả chính của phiên bản 4, Steve Miller và Clifford Neuman, đã xuất bản
giao thức ra công chúng vào cuối thập niên 1980, mặc dù mục đích chính của họ là chỉ
phục vụ cho dự án Athena.
Phiên bản 5, do John Kohl và Clifford Neuman thiết kế, xuất hiện trong tài liệu
(RFC1510) RFC 1510 - The Kerberos Network Authentication Service (V5) vào năm
1993 (được thay thế bởi RFC 4120 vào năm 2005 - RFC 4120 - The Kerberos
Network Authentication Service (V5) với mục đích sửa các lỗi của phiên bản 4.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
2
An toàn bảo mật thông tin
MIT đã cung cấp các phiên bản thực hiện Kerberoslo miễn phí dưới giấy phép tương
tự như dùng cho các sản phẩm BSD.Chính phủ Hoa Kỳ đã cấm xuất khẩu Kerberos vì
nó có sử dụng thuật toán DES 56 bit. Tuy nhiên, trước khi chính sách xuất khẩu của
Hoa Kỳ thay đổi năm 2000, đã có phiên bản KTH-KRB viết tại Thuỵ Điển thực hiện
Kerberos 4 được phân phối rộng rãi bên ngoài Hoa Kỳ. Phiên bản này được dựa trên
một phiên bản khác có tên là eBones. eBones lại dựa trên một phiên bản được xuất
khẩu của MIT thực hiện Kerberos 4 (patch-level 9) gọi là Bones (loại bỏ các hàm mật
mã và các lệnh gọi chúng). Eric Young, một lập trình viên người Austraulia, đã phục
hồi lại các lệnh gọi hàm và sử dụng các hàm mật mã trong thư viện của anh ta. Một
phiên bản khác thực hiện Kerberos 5, Heimdal, cũng được thực hiện bởi nhóm đã xuất
bản KTH-KRB.
Các hệ điều hành Windows 2000, Windows XP và Windows Server 2003 sử dụng
một phiên bản thực hiện Kerberos làm phương pháp mặc định để xác thực. Những bổ
sung của Microsoft vào bộ giao thức Kerberos được đề cập trong tài liệu RFC 3244
RFC 3244 - Microsoft Windows 2000 Kerberos Change Password and Set Password
Protocols ("Microsoft Windows 2000 Kerberos Change Password and Set Password
Protocols"). Hệ điều hành Mac OS X cũng sử dụng Kerberos trong các phiên bản
Clients và Server của mình. Năm 2005, nhóm làm việc của IETF về Kerberos cập nhật
các đặc điểm kỹ thuật tại địa chỉ Internet Engineering Task Force. Các cập nhật gần
đây bao gồm:
RFC 3961: "Các quy định về mật mã hóa và kiểm tra tổng";
RFC 3962: Mã hoá AES cho Kerberos 5";
RFC 4120: Phiên bản mới về tiêu chuẩn Kerberos V5: "The Kerberos Network
Authentication Service (V5)". Phiên bản này thay thế RFC 1510, làm rõ các vấn đề
của giao thức và cách sử dụng;
RFC 4121: Phiên bản mới của tiêu chuẩn GSS-API: "Cơ cấu GSS-API của Kerberos
Version 5: Version 2."
1.2Nguyên tắc hoạt động
Kerberos được thiết kế dựa trên giao thức Needham-Schroeder. Kerberos sử dụng
một bên thứ ba tham gia vào quá trình nhận thực gọi là "trung tâm phân phối khóa"
( key distribution center - KDC). KDC bao gồm hai chức năng: "máy chủ xác thực"
(authentication server - AS) và "máy chủ cung cấp vé" (ticket granting server - TGS).
Sinh viên: Nguyễn Thị Ánh_TK6LC1
3
An toàn bảo mật thông tin
"Vé" trong hệ thống Kerberos chính là các chứng thực chứng minh nhân dạng của
người sử dụng. Mỗi người sử dụng (cả máy chủ và máy khách) trong hệ thống chia sẻ
một khóa chung với máy chủ Kerberos. Việc sở hữu thông tin về khóa chính là bằng
chứng để chứng minh nhân dạng của một người sử dụng. Trong mỗi giao dịch giữa hai
người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo ra một khoá phiên dùng cho
phiên giao dịch đó.
1.3Ứng dụng của Kerberos
Các phần mềm sau có thể dùng Kerberos để nhận thực:
+ OpenSSH (với Kerberos v5 hoặc cao hơn)
+ NFS (kể từ NFSv3)
+ PAM (với mô đun pam_krb5)
+ SOCKS (kể từ SOCKS5)
+ Apache (với mô đun mod auth kerb)
+ Devecot IMAP4 và POP3
+ Một cách gián tiếp, tất cả phần mềm sử dụng SASL để nhận thực, chẳng hạn
như OpenLDAP
+ Bộ Kerberos còn đi kèm với các bộ phần mềm máy chủ và máy khách của rsh
FTP và Telnet
+ Hệ thống X Windows
1.4 Hoạt động
Sau đây là mô tả một phiên giao dịch (giản lược) của Kerberos. Trong đó: AS =
Máy chủ nhận thực (authentication server), TGS = Máy chủ cấp vé (ticket granting
server), SS = Máy chủ dịch vụ (service server). Một cách vắn tắt: người sử dụng nhận
thực mình với máy chủ nhận thực AS, sau đó chứng minh với máy chủ cấp vé TGS
rằng mình đã được nhận thực để nhận vé, cuối cùng chứng minh với máy chủ dịch vụ
SS rằng mình đã được chấp thuận để sử dụng dịch vụ.
1. Người sử dụng nhập tên và mật khẩu tại máy tính của mình (máy khách).
2. Phần mềm máy khách thực hiện hàm băm một chiều trên mật khẩu nhận được. Kết
quả sẽ được dùng làm khóa bí mật của người sử dụng.
3. Phần mềm máy khách gửi một gói tin (không mật mã hóa) tới máy chủ dịch vụ AS
để yêu cầu dịch vụ. Nội dung của gói tin đại ý: "người dùng XYZ muốn sử dụng dịch
vụ". Cần chú ý là cả khoá bí mật lẫn mật khẩu đều không được gửi tới AS.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
4
An toàn bảo mật thông tin
4. AS kiểm tra nhân dạnh của người yêu cầu có nằm trong cơ sở dữ liệu của mình
không. Nếu có thì AS gửi 2 gói tin sau tới người sử dụng:
Gói tin A: "Khóa phiên TGS/máy khách" được mật mã hóa với khóa bí mật của người
sửdụng.
Gói tin B: "Vé chấp thuận" (bao gồm chỉ danh người sử dụng (ID), địa chỉ mạng của
người sử dụng, thời hạn của vé và "Khóa phiên TGS/máy khách") được mật mã hóa
với khóa bí mật của TGS.
5. Khi nhận được 2 gói tin trên, phần mềm máy khách giải mã gói tin A để có khóa
phiên với TGS. (Người sử dụng không thể giải mã được gói tin B vì nó được mã hóa
với khóa bí mật của TGS). Tại thời điểm này, người dùng có thể nhận thực mình với
TGS.
6. Khi yêu cầu dịch vụ, người sử dụng gửi 2 gói tin sau tới TGS:
Gói tin C: Bao gồm "Vé chấp thuận" từ gói tin B và chỉ danh (ID) của yêu cầu dịch vụ.
Gói tin D: Phần nhận thực (bao gồm chỉ danh người sử dụng và thời điểm yêu cầu),
mật mã hóa với "Khóa phiên TGS/máy khách".
7. Khi nhận được 2 gói tin C và D, TGS giải mã D rồi gửi 2 gói tin sau tới người sử
dụng:
Gói tin E: "Vé" (bao gồm chỉ danh người sử dụng, địa chỉ mạng người sử dụng, thời
hạn sử dụng và "Khóa phiên máy chủ/máy khách") mật mã hóa với khóa bí mật của
máy chủ cung cấp dịch vụ.
Gói tin F: "Khóa phiên máy chủ/máy khách" mật mã hóa với "Khóa phiên TGS/máy
khách".
8. Khi nhận được 2 gói tin E và F, người sử dụng đã có đủ thông tin để nhận thực với
máy chủ cung cấp dịch vụ SS. Máy khách gửi tới SS 2 gói tin:
Gói tin E thu được từ bước trước (trong đó có "Khóa phiên máy chủ/máy khách" mật
mã hóa với khóa bí mật của SS).
Gói tin G: phần nhận thực mới, bao gồm chỉ danh người sử dụng, thời điểm yêu cầu và
được mật mã hóa với "Khóa phiên máy chủ/máy khách".
9. SS giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tới người sử dụng để
xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch vụ:
Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mật mã hóa với
"Khóa phiên máy chủ/máy khách".
Sinh viên: Nguyễn Thị Ánh_TK6LC1
5
An toàn bảo mật thông tin
10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật chính
xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt đầu gửi yêu
cầu sử dụng dịch vụ.
11. Máy chủ cung cấp dịch vụ cho người sử dụng.
1.5 Xác thực Kerberos
Nhằm đối phó với các hiểm họa sau
– Người dùng giả danh là người khác
– Người dùng thay đổi địa chỉ mạng của client
– Người dùng xem trộm thông tin trao đổi và thực hiện kiểu tấn công lặp
lại
Bao gồm 1 server tập trung có chức năng xác thực người dùng và các server
dịch vụ phân tán
– Tin cậy server tập trung thay vì các client
– Giải phóng chức năng xác thực khỏi các server dịch vụ và các client
Ký hiệu
– C : Client
– AS : Server xác thực
– V : Server dịch vụ
– IDC : Danh tính người dùng trên C
– IDV : Danh tính của V
– PC : Mật khẩu của người dùng trên C
– ADC : Địa chỉ mạng của C
– KV : Khóa bí mật chia sẻ bởi AS và V
– ║ : Phép ghép
– TGS : Server cấp thẻ
– TS : Nhãn thời gian
Một hội thoại xác thực đơn giản
• Giao thức
(1) C → AS : IDC ║ PC ║ IDV
(2) AS → C : Thẻ
(3) C → V : IDC ║ Thẻ
Sinh viên: Nguyễn Thị Ánh_TK6LC1
6
An toàn bảo mật thông tin
Thẻ = EKV[IDC ║ ADC ║ IDV]
• Hạn chế
– Mật khẩu truyền từ C đến AS không được bảo mật
– Nếu thẻ chỉ sử dụng được một lần thì phải cấp thẻ mới cho mỗi lần truy
nhập cùng một dịch vụ
– Nếu thẻ sử dụng được nhiều lần thì có thể bị lấy cắp để sử dụng trước
khi hết hạn
– Cần thẻ mới cho mỗi dịch vụ khác nhau
Hội thoại xác thực Kerberos 4
(a) Trao đổi với dịch vụ xác thực : để có thẻ cấp thẻ
(1) C → AS : IDC ║ IDtgs ║ TS1
(2) AS → C : EKC[KC,tgs ║ IDtgs ║ TS2 ║ Hạn2 ║ Thẻtgs]
Thẻtgs = EKtgs[KC,tgs ║ IDC ║ ADC ║ IDtgs ║ TS2 ║ Hạn2]
(b) Trao đổi với dịch vụ cấp thẻ : để có thẻ dịch vụ
(3) C → TGS : IDV ║ Thẻtgs ║ DấuC
(4) TGS → C : EKC,tgs[KC,V ║ IDV ║ TS4 ║ ThẻV]
ThẻV = EKV[KC,V ║ IDC ║ ADC ║ IDV ║ TS4 ║ Hạn4]
DấuC = EKC,tgs[IDC ║ ADC ║ TS3]
(c) Trao đổi xác thực client/server : để có dịch vụ
(5) C → V : ThẻV ║ DấuC
(6) V → C : EKC,V[TS5 + 1]
DấuC = EKC,V[IDC ║ ADC ║ TS5]
Phân hệ Kerberos
• Một phân hệ Kerberos bao gồm
– Một server Kerberos chứa trong CSDL danh tính và mật khẩu băm của
các thành viên
– Một số người dùng đăng ký làm thành viên
– Một số server dịch vụ, mỗi server có một khóa bí mật riêng chỉ chia sẻ
với server Kerberos
• Mỗi phân hệ Kerberos thường tương ứng với một phạm vi hành chính
Sinh viên: Nguyễn Thị Ánh_TK6LC1
7
An toàn bảo mật thông tin
• Hai phân hệ có thể tương tác với nhau nếu 2 server chia sẻ 1 khóa bí mật và
đăng ký với nhau
– Điều kiện là phải tin tưởng lẫn nhau
Kerberos 5
• Phát triển vào giữa những năm 1990 (sau Kerberos 4 vài năm) đặc tả trong RFC
1510
• Có một số cải tiến so với phiên bản 4
– Khắc phục những khiếm khuyết của môi trường
+ Phụ thuộc giải thuật mã hóa, phụ thuộc giao thức mạng, trật tự byte
thông báo không theo chuẩn, giá trị hạn dùng thẻ có thể quá nhỏ,
không cho phép ủy nhiệm truy nhập, tương tác đa phân hệ dựa trên
quá nhiều quan hệ tay đôi
– Khắc phục những thiếu sót kỹ thuật
+ Mã hóa hai lần có một lần thừa, phương thức mã hóa PCBC để
đảm bảo tính toàn vẹn không chuẩn dễ bị tấn công, khóa phiên sử
dụng nhiều lần có thể bị khai thác để tấn công lặp lại, có thể bị tấn
công mật khẩu
Sinh viên: Nguyễn Thị Ánh_TK6LC1
8
An toàn bảo mật thông tin
1.6 Nhược điểm
Tồn tại một điểm yếu: Nếu máy chủ trung tâm ngừng hoạt động thì mọi hoạt động
sẽ ngừng lại. Điểm yếu này có thể được hạn chế bằng cách sử dụng nhiều máy chủ
Kerberos.
Giao thức đòi hỏi đồng hồ của tất cả những máy tính liên quan phải được đồng bộ.
Nếu không đảm bảo điều này, cơ chế nhận thực giữa trên thời hạn sử dụng sẽ không
hoạt động. Thiết lập mặc định đòi hỏi các đồng hồ không được sai lệch quá 10 phút.
Cơ chế thay đổi mật khẩu không được tiêu chuẩn hóa.
2 PGP(Pretty Good Privacy)
Mật mã hóa PGP (Pretty Good Privacy®) làm một phần mềm máy tính dùng để
mật mã hóa dữ liệu và xác thực. Phiên bản PGP đầu tiên do Phil Zimmermann được
công bố vào năm 1991. Kể từ đó, phần mềm này đã có nhiều cải tiến và hiện nay tập
đoàn PGP cung cấp nhiều phần mềm dựa trên nền tảng này. Với mục tiêu ban đầu là
phục vụ cho mã hóa thư điện tử, PGP hiện nay đã trở thành một giải pháp mã hóa cho
các công ty lớn, chính phủ cũng như các cá nhân. Các phần mềm dựa trên PGP được
dùng để mã hóa và bảo vệ thông tin lưu trữ trên máy tính xách tay, máy tính để bàn,
máy chủ và trong quá trình trao đổi thông qua email, IM hoặc chuyển file. Giao thức
hoạt động của hệ thống này có ảnh hưởng lớn và trở thành một trong hai tiêu chuẩn mã
hóa (tiêu chuẩn còn lại là S/MIME).
2.1 Ứng dụng của PGP
Mục tiêu ban đầu của PGP nhằm vào mật mã hóa nội dung các thông điệp thư
điện tử và các tệp đính kèm cho người dùng phổ thông. Bắt đầu từ 2002, các sản phẩm
PGP đã được đa dạng hóa thành một tập hợp ứng dụng mật mã và có thể được đặt dưới
sự quản trị của một máy chủ. Các ứng dụng PGP giờ đây bao gồm: thư điện tử, chữ ký
số, mật mã hóa ổ đĩa cứng máy tính xách tay, bảo mật tệp và thư mục, bảo mật các
phiên trao đổi IM, mật mã hóa luồng chuyển tệp, bảo vệ các tệp và thư mục lưu trữ
trên máy chủ mạng.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
9
An toàn bảo mật thông tin
Phiên bản PGP Desktop 9.x dành cho máy để bàn bao gồm các tính năng: thư
điện tử, chữ ký số, bảo mật IM, mật mã hóa ổ đĩa cứng máy tính xách tay, bảo mật tệp
và thư mục, tệp nén tự giải mã, xóa file an toàn. Các tính năng riêng biệt được cấp
phép theo các cách khác nhau tùy theo yêu cầu.
Phiên bản PGP Universal 2.x dành cho máy chủ cho phép triển khai ứng dụng
tập trung, thiết lập chính sách an ninh và lập báo cáo. Phần mềm này được dùng để
mật mã hóa thư điện tử một cách tự động tại cổng ra vào (gateway) và quản lý các
phần mềm máy khách PGP Desktop 9.x. Nó làm việc với máy chủ khóa công khai
PGP (gọi là PGP Global Directory) để tìm kiếm khóa của người nhận và có khả năng
gửi thư điện tử an toàn ngay cả khi không tìm thấy khóa của người nhận bằng cách sử
dụng phiên làm việc HTTPS.
Với ứng dụng PGP Desktop 9.0 được quản lý bởi PGP Universal Server 2.0, tất
cả các ứng dụng mật mã hóa PGP được dựa trên nền kiến trúc proxy mới. Các phần
mềm này giúp loại bỏ việc sử dụng các plug-in của thư điện tử và tránh cho người
dùng việc sử dụng các ứng dụng khác. Tất cả các hoạt động của máy chủ cũng như
máy khách đều tự động tuân theo một chính sách an ninh. PGP Universal server còn tự
động hóa các quá trình tạo, quản lý và kết thúc các khóa chia sẻ giữa các ứng dụng
PGP.
Các phiên bản mới của PGP cho phép sử dụng cả 2 tiêu chuẩn: OpenPGP và
S/MIME, cho phép trao đổi với bất kỳ ứng dụng nào tuân theo tiêu chuẩn của NIST.
2.2Các dịch vụ
Bao gồm 5 dịch vụ: xác thực, bảo mật, nén, tương thích thư điện tử, phân và ghép.
Ba dịch vụ sau trong suốt với người dung
Xác thực của PGP
Sinh viên: Nguyễn Thị Ánh_TK6LC1
10
An toàn bảo mật thông tin
M = Thông báo gốc EP = Mã hóa khóa công khai
H = Hàm băm DP = Giải mã khóa công khai
║ = Ghép KRa = Khóa riêng của A
Z = Nén KUa = Khóa công khai của A
Z-1 = Cởi nén
Bảo mật của PGP
EC = Mã hóa đối xứng
DC = Giải mã đối xứng
Ks = Khóa phiên
Nén của PGP
PGP nén thông báo sử dụng giải thuật ZIP
Ký trước khi nén
o Thuận tiện lưu trữ và kiểm tra, nếu ký sau khi nén thì
Cần lưu phiên bản nén với chữ ký, hoặc
Cần nén lại thông báo mỗi lần muốn kiểm tra
o Các phiên bản khác nhau của giải thuật nén không cho kết quả duy nhất
Sinh viên: Nguyễn Thị Ánh_TK6LC1
11
An toàn bảo mật thông tin
Mỗi phiên bản cài đặt có tốc độ và tỷ lệ nén khác nhau
Nếu ký sau khi nén thì các chương trình PGP cần sử dụng cùng
một phiên bản của giải thuật nén
Mã hóa sau khi nén
o Ít dữ liệu sẽ khiến việc mã hóa nhanh hơn
o Thông báo nén khó phá mã hơn thông báo thô
Tương thích thư điện tử của PGP
PGP bao giờ cũng phải gửi dữ liệu nhị phân
Nhiều hệ thống thư điện tử chỉ chấp nhận văn bản ASCII (các ký tự đọc được)
o Thư điện tử vốn chỉ chứa văn bản đọc được
PGP dùng giải thuật cơ số 64 chuyển đổi dữ liệu nhị phân sang các ký tự ASCII
đọc được
o Mỗi 3 byte nhị phân chuyển thành 4 ký tự đọc được
Hiệu ứng phụ của việc chuyển đổi là kích thước thông báo tăng lên 33%
o Nhưng có thao tác nén bù lại
Phân và ghép của PGP
Các giao thức thư điện tử thường hạn chế độ dài tối đa của thông báo. Ví dụ
thường là 50 KB
PGP phân thông báo quá lớn thành nhiều thông báo đủ nhỏ
Việc phân đoạn thông báo thực hiện sau tất cả các công đoạn khác
Bên nhận sẽ ghép các thông báo nhỏ trước khi thực hiện các công đoạn khác
2.3 Danh tính khóa PGP
Với một thông báo nhất định cần xác định sử dụng khóa nào trong nhiều
khóa công khai / khóa riêng. Có thể gửi khóa công khai cùng với thông báo
nhưng lãng phí đường truyền không cần thiết
Gán cho mỗi khóa một danh tính riêng. Gồm 64 bit bên phải của khóa. Xác
suất cao là mỗi khóa có một danh tính duy nhất
Sử dụng danh tính khóa trong chữ ký
Sinh viên: Nguyễn Thị Ánh_TK6LC1
12
An toàn bảo mật thông tin
2.4 Quản lí khóa PGP
Thay vì dựa trên các CA (cơ quan chứng thực), đối vởi PGP mỗi người
dùng là một CA. Có thể chứng thực cho những người dùng quen biết.
Tạo nên một mạng lưới tin cậy. Tin các khóa đã được chứng thực
Mỗi khóa có một chỉ số tin cậy
Người dùng có thể thu hồi khóa của bản thân
2.5 Hoạt động của PGP
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ả 2 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
Sinh viên: Nguyễn Thị Ánh_TK6LC1
13
An toàn bảo mật thông tin
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 thông điệp rồi tạo ra chữ ký số với khóa bí mật của người gửi. 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ị 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 quá trình mã hóa cũng như kiểm tra chữ ký, một điều vô cùng quan trọng
là khóa công khai được sử dụng thực sự thuộc về người được cho là sở hữu nó. Nếu
chỉ đơn giản là download một khóa công khai từ đâu đó sẽ không thể đảm bảo được
điều này. PGP thực hiện việc phân phối khóa thông qua chứng thực số được tạo nên
bởi những kỹ thuật mật mã sáo cho việc sửa đổi (không hợp pháp) có thể dễ dàng bị
phát hiện. Tuy nhiên chỉ điều này thôi thì chưa đủ vì nó chỉ ngăn chặn được việc sửa
đổi sau khi chứng thực đã được tạo ra. Người dùng còn cần phải được trang bị khả
năng kiểm kha xem khóa công khai có thực sự thuộc về người được cho là sở hữu hay
không. Từ phiên bản đầu tiên, PGP đã có một cơ chế hỗ trợ điều này gọi là mạng lưới
tín nhiệm. Mỗi khóa công khai (rộng hơn là các thông tin gắn với một khóa hay một
người) đều có thể được một bên thứ 3 xác nhận (theo cách điện tử).
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.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
14
An toàn bảo mật thông tin
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 khóa công khai/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.
2.6 An ninh
Khi được sử dụng đúng cách, PGP được xem là có độ an toàn rất cao. Hiện nay
chưa có phương pháp nào được biết tới có khả năng phá vỡ được PGP ở tất cả các
phiên bản. Năm 1996, nhà mật mã học Bruce Schneier đánh giá các phiên bản đầu tiên
của PGP là "thứ gần nhất với mật mã hóa của quân đội mà mọi người có được"
(Applied Cryptography, xuất bản lần 2, trang 587).
Trái với những hệ thống an ninh/giao thức như SSL chỉ nhằm bảo vệ thông tin
trên đường truyền, PGP có thể bảo vệ cả dữ liệu cho mục đích lưu trữ lâu dài (hệ thống
file).
Cũng giống như các hệ thống mật mã và phần mềm khác, an ninh của PGP có
thể bị vô hiệu trong trường hợp sử dụng sai hoặc thông qua các dạng tấn công gián
tiếp. Trong một trường hợp, FBI nhập mật khẩu PGP của người bị tình nghi. Sau đó,
toàn bộ các tệp/email của người đó bị vô hiệu và là chứng cứ để kết án.
Ngoài những vấn đề trên, về khía cạnh mật mã học, an ninh của PGP phụ thuộc
vào các giả định về thuật toán mà nó sử dụng trong điều kiện về thiết bị và kỹ thuật
đương thời. Chẳng hạn, phiên bản PGP đầu tiên sử dụng thuật toán RSA để mã hóa
khóa phiên; an ninh của thuật toán này lại phụ thuộc vào bản chất hàm một chiều của
bài toán phân tích ra thừa số nguyên tố. Nếu có kỹ thuật mới giải bài toán này được
phát hiện thì an ninh của thuật toán, cũng như PGP sẽ bị phá vỡ. Tương tự như vậy,
thuật toán khóa đối xứng trong PGP là IDEA cũng có thể gặp phải những vấn đề về an
ninh trong tương lai. Những phiên bản PGP gần đây hỗ trợ thêm những thuật toán
khác nữa; vì thế mức độ an toàn trước tấn công về mặt mật mã học cũng thay đổi.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
15
An toàn bảo mật thông tin
Do các tổ chức nghiên cứu lớn về mật mã học (như NSA, GCHQ ) không
công bố những phát hiện mới của mình nên có thể tồn những phương pháp giải mã
những thông điệp PGP mà không cần biết đến khóa bí mật được sử dụng. Điều này
cũng đúng với bất kỳ hệ thống mật mã nào khác không chỉ là PGP.
Hiện nay PGP cho sử dụng một số thuật toán khác nhau để thực hiện việc mã
hóa. Vì thế các thông điệp mã hóa với PGP hiện tại không nhất thiết có những điểm
yếu giống như PGP phiên bản đầu. Tuy nhiên cũng có một số tin đồn về sự không an
toàn của PGP phiên bản đầu tiên (sử dụng các thuật toán RSA và IDEA). Phil
Zimmerman, tác giả của PGP, đã từng bị chính phủ Hoa Kỳ điều tra trong vòng 3 năm
về việc vi phạm những quy chế trong xuất khẩu phần mềm mật mã. Quá trình điều tra
đã được kết thúc một cách đột ngột. Zimmerman cũng từng tuyên bố rằng sở dĩ chính
phủ Hoa Kỳ kết thúc điều tra là vì họ đã tìm ra cách phá vỡ PGP trong thời kỳ đó.
Từ những lập luận ở trên, có thể khẳng định tương đối chắc chắn rằng tại thời
điểm hiện tại chỉ những cơ quan thuộc về chính phủ mới có đủ những nguồn lực cần
thiết để có thể phá vỡ những thông điệp PGP. Đối với tấn công phân tích mật mã từ
phía cá nhân thì PGP vẫn tương đối an toàn.
2.7Tình trạng hiện tại
Tháng 8 năm 2002, một số thành viên cũ của đội ngũ phát triển PGP thành lập Tập
đoàn PGP (PGP Corporation) và mua lại các tài sản liên quan tới PGP từ NAI. PGP
Corp tiếp tục hỗ trợ những người sử dụng PGP và tôn trọng các hợp đồng hỗ trợ còn
hiệu lực. Zimmermann trở thành cố vấn đặc biệt và nhà tư vấn cho PGP Corp đồng
thời vẫn tiếp tục các mối quan hệ tại Hush Communications và Veridis cũng như điều
hành công ty tư vấn riêng của mình.
NAI vẫn giữ bản quyền phiên bản dòng lệnh của PGP và tiếp tục bán ra dưới tên là
"McAfee E-Business Server." Cho tới trước tháng 1 năm 2004 theo thỏa thuận đã ký
với NAI, PGP Corp không được quyền cung cấp phiên bản dòng lệnh của PGP. Tới
giữa năm 2004, PGP Corp bắt đầu cung cấp sản phẩm này.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
16
An toàn bảo mật thông tin
Với sự hợp tác của Zimmermann, Veridis phát triển và bán một phiên bản dòng
lệnh tương thích với OpenPGP có tên là Filecrypt. Filecrypt và GnuPG được cung cấp
đầy đủ mã nguồn cũng như cung cấp các phiên bản trước đó trên nhiều nền tảng khác
nhau.
Sau khi mua lại tài sản liên quan tới PGP từ NAI (2002), PGP Corp cung cấp hỗ
trợ kỹ thuật về PGP trên toàn thế giới.
Lịch sử các phiên bản của PGP Corp như sau:
• 2002
o PGP 7.2 cho Mac OS 9.
o PGP Personal và PGP Freeware.
o PGP 8.0 cho Macintosh và Windows.
o PGP Corporation công bố mã nguồn.
• 2003
o PGP Desktop 8.0.1DE cho Windows tiếng Đức.
o PGP Desktop 8.0.2.
o PGP Desktop 8.0.3 cho Macintosh và Windows.
o Công bố và đóng gói PGP Universal INFO, một dòng sản phẩm mới.
o PGP Universal 1.1 (30 tháng 12).
• 2004
o PGP Universal 1.2.
o PGP Desktop 8.1.
o PGP Command Line 8.5.
o PGP Corporation và Symantec đưa ra giải pháp an ninh thư điện tử tích
hợp PGP Universal cho doanh nghiệp.
o PGP Software Development Kit (SDK) nhận được FIPS 140-2 Level 1
từ NIST.
• 2005
Sinh viên: Nguyễn Thị Ánh_TK6LC1
17
An toàn bảo mật thông tin
o PGP Universal 2.0 và PGP Desktop 9.0 cũng như dịch vụ PGP Global
Directory.
o "Tiger" cho Mac OS X 10.4 .
o Nâng cấp PGP 9.0.1 Freeware thành bản đầy đủ tính năng dưới dạng
phần mềm dùng thử 30 ngày.
o PGP Whole Disk Encryption được chính thức phát hành như một sản
phẩm độc lập
o PGP 9.0.2 với phần cập nhật cho bản chuyển mã quốc tế và bản địa hóa
tiếng Đức.
o PGP 9.0.2 với phần cập nhật cho bản địa hóa tiếng Nhật.
3 S|MIME
Nâng cấp từ chuẩn khuôn dạng thư điện tử MIME có thêm tính năng an toàn
thông tin
MIME khắc phục những hạn chế của SMTP (Simple Mail Transfer Protocol)
o Không truyền được file nhị phân (chương trình, ảnh, )
o Chỉ gửi được các ký tự ASCII 7 bit
o Không nhận thông báo vượt quá kích thước cho phép
S/MIME có xu hướng trở thành chuẩn công nghiệp sử dụng trong thương mại
và hành chính. PGP dùng cho cá nhân.
3.1 Các chức năng của S|MIME
Bao bọc dữ liệu. Mã hóa nội dung thông báo và các khóa liên quan
Ký dữ liệu
o Chữ ký số tạo thành nhờ mã hóa thông tin tổng hợp thông báo sử dụng
khóa riêng của người ký
o Thông báo và chữ ký số được chuyển đổi cơ số 64
Ký và để nguyên dữ liệu. Chỉ chữ ký số được chuyển đổi cơ số 64
Ký và bao bọc dữ liệu. Kết hợp ký và bao bọc dữ liệu
3.2 Xử lý chứng thực S|MIME
S/MIME sử dụng các chứng thực khóa công khai theo X.509 v3
Sinh viên: Nguyễn Thị Ánh_TK6LC1
18
An toàn bảo mật thông tin
Phương thức quản lý khóa lai ghép giữa cấu trúc phân cấp CA theo đúng
X.509 và mạng lưới tin cậy của PGP
Mỗi người dùng có một danh sách các khóa của bản thân, danh sách các
khóa tin cậy và danh sách thu hồi chứng thực
Chứng thực phải được ký bởi CA tin cậy
4 Giao dịch điện tử an toàn (SET- Secure Electronic Transaction)
Phát triển năm 1996 bởi Mastercard, Visa, …
Đặc tả mở về mã hóa và bảo mật nhằm bảo vệ các giao dịch thẻ tín dụng trên
Internet. Không phải hệ thống trả tiền điện tử
Là một tập hợp các định dạng & giao thức
o đảm bảo truyền tin an toàn giữa các bên
o đảm bảo tính tin cậy, sử dụng chứng thực X.509v3
o đảm bảo tính riêng tư, thông tin chỉ được truy cập hạn chế bởi những
bên thực sự cần.
Giao dịch SET
1. customer receives a certificate
2. merchants have their own certificates
3. customer places an order
4. customer opens account
5. Merchant(nha buon) is verified
6. order and payment are sent
7. merchant requests payment authorization
8. merchant confirms order
9. merchant provides goods or service
10.merchant requests payment
5 Chữ ký điện tử (electronic signature)
Là thông tin đi kèm theo dữ liệu(văn bản, hình ảnh, video,…) nhằm mục đích
xác định người chủ của dữ liệu đó.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
19
An toàn bảo mật thông tin
Chữ ký điện tử được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế,
chữ ký điện tử cũng cần đảm bảo các chức năng: xác định được người chủ của một dữ
liệu nào đó: văn bản, ảnh, video, dữ liệu đó có bị thay đổi hay không.
Hai khái niệm chữ ký số (digital signature) và chữ ký điện tử (electronic
signature) thường được dùng thay thế cho nhau mặc dù chúng không hoàn toàn có
cùng nghĩa. Chữ ký số chỉ là một tập con của chữ ký điện tử (chữ ký điện tử bao hàm
chữ ký số).
5.1 Lịch sử
Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với
việc sử dụng mã Morse và điện tín. Vào năm 1889, tòa án tối cao bang New
Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử. Tuy nhiên, chỉ với
những phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc
sống một cách rộng rãi.
Vào thập niên 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để
truyền đi các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên
giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử.
Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các
số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn
hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi
cài đặt phần mềm máy tính, ký các hợp đồng điện tử online.
5.2 Kiểm tra pháp lý đối với chữ ký điện tử
Khi một chữ ký điện tử trên hợp đồng hay văn bản bị nghi ngờ thì chữ ký đó
phải vượt qua một số kiểm tra trước khi có thể xử tại tòa án. Các điều kiện này có thể
thay đổi tùy theo quy định của pháp luật, thậm chí trong một số trường hợp văn bản
không có chữ ký (telex, fax ).
Tại Hoa Kỳ, các bước yêu cầu cho chữ ký điện tử bao gồm:
• Cung cấp thông tin cho người yêu cầu về tính pháp lý của chữ ký điện tử; các
yêu cầu về phần cứng, phần mềm; các lựa chọn ký và chi phí (nếu có);
• Xác thực các bên để nhận diện rủi ro kinh doanh và yêu cầu;
Sinh viên: Nguyễn Thị Ánh_TK6LC1
20
An toàn bảo mật thông tin
• Đưa toàn bộ văn bản ra xem xét (các bên có thể phải điền số liệu);
• Yêu cầu các bên xác nhận sự tự nguyện ký vào văn bản;
• Đảm bảo các văn bản được xem xét không bị thay đổi từ khi ký;
• Cung cấp cho các bên các văn bản gốc pháp lý để lưu giữ.
Vấn đề quan trọng cần được xem xét là sự giả mạo (giả mạo chữ ký và giả mạo
sự chấp nhận). Tòa án phải giả định rằng sự giả mạo là không thể thực hiện. Tuy
nhiên, đối với chữ ký điện tử thì việc làm giả là không quá khó khăn.Thông thường,
các doanh nghiệp thường phải dựa trên các phương tiện khác để kiểm tra chữ ký điện
tử chẳng hạn như gọi điện trực tiếp cho người ký trước khi giao dịch, dựa trên các
quan hệ truyền thống hay không dựa hoàn toàn vào các văn bản dưới dạng điện tử.
Đây là các thông lệ trong kinh doanh nên được áp dụng trong bất kỳ môi trường nào vì
sự giả mạo cũng là một vấn đề thường xảy ra trong môi trường kinh doanh truyền
thống. Chữ ký điện tử cũng như chữ ký truyền thống đều không đủ khả năng ngăn
chặn hoàn toàn việc làm giả.
Các ví dụ về chữ ký điện tử nêu ở trên chưa phải là chữ ký số bởi vì chúng thiếu
các đảm bảo mật mã học về nhận dạng người tạo ra và thiếu các kiểm tra tính toàn vẹn
của dữ liệu. Các chữ ký này có tính chất pháp lý trên được gắn với văn bản trong một
số trường hợp cụ thể.
5.3 Những sử dụng giả luật của chữ ký điện tử
Một số trang web và các điều khoản sử dụng phần mềm tuyên bố một số hành
động gắn với chữ ký điện tử. Chẳng hạn, một trang web có thể tuyên bố rằng với việc
truy cập vào trang web, bạn đã chấp nhận một số quy định. Một ví dụ khác là khi cài
đặt phần mềm, trước khi cài sẽ xuất hiện một màn hình thông báo rằng với việc tiếp
tục cài đặt thì bạn chấp nhận một số điều về bản quyền. Các điều khoản này có thể
không được thông báo trước khi bán và không phải lúc nào cũng được hiển thị đầy đủ
khi bạn cài đặt. Các điều kiện về bản quyền này thường bao gồm các điều cấm người
sử dụng công bố các thông tin về sản phẩm nếu không được sự cho phép của nhà sản
xuất, các điều hạn chế người sử dụng nghiên cứu sản phẩm (reverse engineering) kể cả
cho mục đích hợp pháp như để tạo ra các tệp theo định dạng của phần mềm. Trong
Sinh viên: Nguyễn Thị Ánh_TK6LC1
21
An toàn bảo mật thông tin
một số trường hợp, các điều khoản này có thể trái với quy định của pháp luật. Một số
người cho rằng các điều trên là hợp lý để bảo vệ các bí mật công nghệ. Tuy nhiên một
khi sản phẩm đã được bán rộng rãi thì lý do này cũng không thực sự thuyết phục.
Tính pháp lý của các điều khoản đề cập ở trên không rõ ràng. Tại Hoa Kỳ, chỉ
có 2 tiểu bang chấp thuận bản sửa đổi của Luật thương mại thống nhất (Uniform
Commercial Code) cho phép những hạn chế về bản quyền và thông báo sau bán hàng.
Tại Anh, điều 9 của Quy chế thương mại điện tử năm 2002 (Electronic-Commerce
(EC Directive) Regulations 2002 - SI 2002/2003) cho phép người mua có khả năng
xác định trước các bước kỹ thuật khác nhau để kết thúc hợp đồng.
5.4 Chữ ký mật mã
Một chữ ký điện tử sẽ là một chữ ký số nếu nó sử dụng một phương pháp mã
hóa nào đó để đảm bảo tính toàn vẹn (thông tin) và tính xác thực. Ví dụ như một bản
dự thảo hợp đồng soạn bởi bên bán hàng gửi bằng email tới người mua sau khi được
ký (điện tử). Một điều cần lưu ý là cơ chế của chữ ký điện tử khác hoàn toàn với các
cơ chế sửa lỗi (như giá trị kiểm tra - checksum ). Các cơ chế kiểm tra không đảm bảo
rằng văn bản đã bị thay đổi hay chưa. Các cơ chế kiểm tra tính toàn vẹn thì không bao
giờ bao gồm khả năng sửa lỗi.
Hiện nay, các tiêu chuẩn được sử dụng phổ biến cho chữ ký điện tử là
OpenPGP, được hỗ trợ bởi PGP và GnuPG, và các tiêu chuẩn S/MIME (có trong
Microsoft Outlook). Tất cả các mô hình về chữ ký điện tử đều giả định rằng người
nhận có khả năng có được khóa công khai của chính người gửi và có khả năng kiểm
tra tính toàn vẹn của văn bản nhận được. Ở đây không yêu cầu giữa 2 bên phải có một
kênh thông tin an toàn.
Một văn bản được ký có thể được mã hóa khi gửi nhưng điều này không bắt
buộc. Việc đảm bảo tính bí mật và tính toàn vẹn của dữ liệu có thể được tiến hành độc
lập.
Sinh viên: Nguyễn Thị Ánh_TK6LC1
22
An toàn bảo mật thông tin
Xây dựng chữ ký kép
Các bước thực hiện mua bán
Gửi yêu cầu mua
Xác thực yêu cầu mua
Yêu cầu trả tiền
Sinh viên: Nguyễn Thị Ánh_TK6LC1
23