CÁC GIAO THỨC ĐẢM BẢO AN NINH CHO TẦNG ỨNG DỤNG
Trang 1LỜI NÓI ĐẦU
Không phải nói thì ai cũng biết, chúng ta đang sống trong một thời đại hiệnđại, thời đại của khoa học kỹ thuật, của công nghệ thông tin Mọi giao dịch và nhucầu trao đổi thông tin, dữ liệu qua mạng máy tính ngày càng lớn Vấn đề đặt ra làlàm sao đảm bảo an toàn mọi mặt cho người dùng? Trả lời câu hỏi này, người ta đãdùng rất nhiều biện pháp khác nhau, bảo vệ từ khi tạo thông điệp,trong quá trìnhtruyền đi qua mạng, khi người dùng nhận thông điệp để có thể bảo vệ tối đaquyền lợi của người sử dụng
Trong bài tiểu luận này em đã trình bày các giao thức đảm bảo an ninh tầngứng dụng mà em đã nghiên cứu như giao thức xác thực ứng dụng Kerberos, giaothức xác thực X.509, giao thức đảm bảo an ninh thư điện tử PGP, S/MIME và giaothức đảm bảo giao dịch trong thương mại điện tử SET
Em xin chân thành cảm ơn!
Sinh viên thực hiện : Nguyễn Hải ĐiềmGiảng viên hướng dẫn : Nguyễn Duy Tân
Trang 2CÁC GIAO THỨC ĐẢM BẢO AN NINH
CHO TẦNG ỨNG DỤNG
I)Giao thức PGP(Pretty Good Privacy)
1)Giới thiệu về giao thức
+ Giao thức này được Do Phil Zimmermann phát triển vào năm 1991
+Chương trình miễn phí, chạy trên nhiều môi trường khác nhau (phầncứng, hệ điều hành)
-Có phiên bản thương mại nếu cần hỗ trợ kỹ thuật
+Dựa trên các giải thuật mật mã hoá an toàn nhất
+Chủ yếu ứng dụng cho thư điện tử và file
Người gửi tạo mẩu tin, sử dụng SHA-1 để sinh Hash 160 bit của mẩu tin,
ký hash vói RSA sử dụng khoá riêng của người gửi và đính kèm vào mẩutin
Người nhận sử dụng RSA với khoá công khai của người gửi để giải mã vàkhôi phục bản hash Người nhận kiểm tra mẩu tin nhận sử dụng bản hashcủa nó và so sánh với bản hash đã được giải mã
Trang 3và đính kèm với mẩu tin.
Người nhận sử dụng RSA với khoá riêng để giải mã và khôi phục khoá phiên.Khoá phiên được sử dụng và để giải mã mẩu tin
So sánh
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 KR a = Khóa riêng của A
Z = Nén KU a = Khóa công khai của A
Z -1 = Cởi nén
Trang 5d) Nén của PGP
Theo mặc định PGP nén mẩu tin sau khi ký nhưng trước khi mã.Như vậycần lưu mẩu tin chưa nén và chữ ký để kiểm chứng về sau Vì rằng nén làkhông duy nhất Ở đây sử dụng thuật toán nén ZIP
PGP nén thông báo sử dụng giải thuật ZIP
Ký trước khi nén
Thuận tiện lưu trữ và kiểm tra, nếu ký sau khi nén thì
o Cần lưu phiên bản nén với chữ ký, hoặc
o Cần nén lại thông báo mỗi lần muốn kiểm tra
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
o Mỗi phiên bản cài đặt có tốc độ và tỷ lệ nén khác nhau
o Nếu ký sau khi nén thì các chương trình PGP cần sử dụngcùng một phiên bản của giải thuật nén
Mã hóa sau khi nén
Ít dữ liệu sẽ khiến việc mã hóa nhanh hơn
Thông báo nén khó phá mã hơn thông báo thô
e) 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)
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
Trang 6 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%
Nhưng có thao tác nén bù lại
Tóm lại cần có khoá phiên cho mỗi mẩu tin ,có kích thước khác nhau :56bit –DES, 128 bit CAST hoặc IDEA, 168 bit Triple-DES, được sinh ra sửdụng dữ liệu đầu vào ngẫu nhiên lấy từ sử dụng trước và thời gian gõ bànphím của người sử dụng
Trang 7Bảng chuyển đổi cơ số 64
f) 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ạnkhác
g) Danh tính khoá của PGP
Trang 8 Với một thông báo nhất định cần xác định sử dụng khóa nào trongnhiề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ý
h) Khoá riêng và khoá công khai của PGP
Vì có nhiều khoá riêng và khoá công khai có thể sử dụng, nên cần phải xácđịnh rõ cái nào được dùng để mã hoá khoá khoá phiên trong mẩu tin Có thểgửi khoá công khai đầy đủ với từng mẩu tin Nhưng điều đó là không đủ, vìcần phải nêu rõ danh tính của người gửi Do đó có thể sử dụng định danh khoá
để xác định người gửi Có ít nhất 64 bit có ý nghĩa của khoá và là duy nhất, cóthể sử dụng định danh của khoá trong chữ ký
Trang 9i) Các chùm khoá của PGP
Mỗi người sử dụng PGP có một cặp chùm khoá Chùm khoá công khaichứa mọi khoá công khai của người sử dụng PGP khác được người đó biết vàđược đánh số bằng định danh khoá (ID key) Chùm khoá riêng chứa các cặpkhoá công khai/riêng của người đó được đánh số bởi định danh khoá và mã
Trang 10của khoá lấy từ giai đoạn duyệt Hash An toàn của khoá công khai như vậyphụ thuộc vào độ an toàn của giai đoạn duyệt.
Cấu trúc khoá riêng và khoá công khai của PGP
j) Sinh mẩu tin PGP
Trang 11Cách PGP gửi thông tin từ A sang B
k ) Quản lý khoá của PGP
Thay vì dựa trên các CA (cơ quan chứng thực), đối vởi PGP mỗi ngườidù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
Trang 12n) Mô hình PGP tin cậy
II) Giao thức S/MIME (Secure/Multipurpose Internet Mail Extensions)
1) Giới thiệu về 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 antoàn thông tin
MIME khắc phục những hạn chế của SMTP (Simple Mail TransferProtocol)
Không truyền được file nhị phân (chương trình, ảnh, )
Chỉ gửi được các ký tự ASCII 7 bit
Không nhận thông báo vượt quá kích thước cho phép
Trang 13 S/MIME có xu hướng trở thành chuẩn công nghiệp sử dụng trongthương mại và hành chính
S/MIME dùng cho cá nhân
2) Các chức năng của S/MIME
Các chữ ký điện tử DSS và RSA, các hàm hash: SHA-1 và MD5, mãhoá phiên :Elgamal và RSA ,mã mẩu tin :AES ,Triple-DES,RC2/40,
…,MAC;HMAC với SHA-1
Có quá trình đối thoại để quyết định sử dụng thuật toán nào
4) Các mẩu tin S/MIME
S/MIME bảo vệ các thực thể MIME với chữ ký, mã hoặc cả 2 tạo thànhcác đối tượng đóng gói MIME .có phạm vi các kiểu nội dung khácnhau ;dữ liệu đóng phong bì ,dữ liệu được ký ,dữ liệu rõ ràng được ký ,yêucầu đăng ký chứng nhận mẩu tin
5) Xử lý chứng thực của S/MIME
S/MIME sử dụng các chứng thực khóa công khai theo X.509 v3
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
Trang 14 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áckhó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
III) Giao thức SET (Secure Electronic Transactions)
1) Giới thiệu
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índụ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
đảm bảo truyền tin an toàn giữa các bên
đảm bảo tính tin cậy
sử dụng chứng thực X.509v3
đả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
2) Các thành phần của SET
Trang 153) Giao dịch SET
1 Người mua mở tài khoản
2 Người mua nhận được chứng nhận
3 Người bán có chứng nhận cuả họ
4 Người mua đặt hàng
5 Người bán được kiểm chứng
6 Đơn đặt hàng và trả tiền được gửi
7 Người bán yêu cầu giấy phép trả tiền
8 Người bán duyệt đơn đặt hàng
Trang 16 Thông tin đơn đặt OI cho người bán
Thông tin trả tiền PI cho ngân hàng
Không bên nào biết chi tiết của người khác Nhưng cần phải biết là họđược kết nối với nhau Sử dụng chữ ký kép cho mục đích này
Ký trên bản ghép của OI và PI
5) Xây dựng chữ ký kép
Trang 176) 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
+ Yêu cầu mua
Trao đổi yêu cầu trả tiền gồm 4 mẩu tin như sau
1 Khởi tạo yêu cầu - nhận chứng nhận
2 Khởi tạo trả lời – ký trả lời
3 Yêu cầu trả tiền của OI-PI
4 Trả lời trả tiền –đơn phúc đáp
Yêu cầu mua –Khách hàng
Trang 18Yêu cầu mua - Người bán
1 Kiểm tra chứng nhận người giữ thẻ bằng chữ ký của CA
2 Kiểm tra chữ ký kép bằng cách sử dụng khoá chữ ký công khai củangười mua để tin tưởng rằng đơn không bị giả mạo khi truyền và được
ký sử dụng chữ ký khoá riêng của người giữ thẻ
3 Xử lý đơn đặt và gửi tiếp thông tin trả tiền cho cổng trả tiền để xác thực
Trang 19Xác thực tại Payment Gateway (cổng trả tiền)
1 Kiểm chứng mọi chứng nhận
2 Giải mã phong bì điện tử của khối giấy phép và nhận được khoá đốixứng, sau đó giải mã khối giâý phép
3 Kiểm tra chữ ký của người bán trên khối giấy phép
4 Giải mã phong bì điện tử khối trả tiền ,nhận được khoá đối xứng, sau đógiải mã khối trả tiền
Trang 205 Kiểm tra chữ ký kép trên khối trả tiền
6 Kiểm tra rằng, thanh toán ID nhận được từ người bán phù hợp với danhtính trong PI nhận được (không trực tiếp) từ người bán
7 Yêu cầu và nhận được giấy phép từ nơi phát hành
8 Gửi trả lời giấy phép cho người bán
Yêu cầu thanh toán
Người bán gửi cho cổng trả tiền yêu cầu nhận trả tiền Cổng kiểm trayêu cầu đó Sau đó yêu cầu chuyển tiền đến tài khoản người bán Thông báocho người bán và chờ trả lời việc nhận
IV) Giao thức Kerberos
1) Giới thiệu về Kerberos
Kerberos phục vụ cho việc xác thực thông tin truyền giữa người A và ngườiB
Kerberos sử dụng chuẩn mã hoá DES trong một phiên truyền, cung cấp việcxác thực cho người dùng
+ Một ví dụ đơn giản về việc đối thoại giữa 2 người sử dụng Kerboros
Trong một môi trường mạng có nhiều người sử dụng Bảo mật sẽ làm chomọi người không biết thông tin gì về nhau
(1) C AS: IDC||PC||IDV(2) AS C: Ticket
ID ||Ticket
Trang 21Ticket = E(Kv, [IDC||ADC||IDV])
Trang 22a Cách hoạt động của Kerberos+ Kerberos phục vụ cho tất cả người dùng, và người dùng phải cómật khẩu trong cơ sở dữ liệu của Kerberos, tất cả người dùngKerberos phải đăng ký với Kerberos
+ Kerberos cung cấp khoá cho tất cả người dùng đã đăng ký vớiKerberos
Trang 231) C AS: IDc||IDtgs||TS1
(2) AS C: E(Kc, [Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs])
(3) C TGS: IDtgsrem||Tickettgs||Authenticatorc
(4) TGS C: E(Kc,tgs, [Kc,tgsrem||IDtgsrem||TS4||Tickettgsrem])
(5) C TGS rem : IDvrem||Tickettgsrem||Authenticatorc
(6) TGS rem C: E(Kc,tgsrem, [Kc,vrem||IDvrem||TS6||Ticketvrem])
(7) C V rem : Ticketvrem||Authenticatorc
V) Giao thức SSL (Secure Sockets Layer)
1) Giới thiệu về SSL
Trang 24SSL là giao thức được biết đến nhiều nhất về khả năng bảo mật và độ tin cậytrong giao dịch khách - chủ (client-server) trên mạng internet Bản thân SSLđược dựa trên các khái niệm khá đơn giản Nó sắp xếp các thuật toán mã hoá
và khoá giữa 2 lần gửi - nhận của một giao dịch Sau đó thiết lập một đưòngdẫn ảo mã hoá thông qua các giao thức khác (như HTTP) SSL cũng có thểthẩm định cả hai chiều của giao dịch thông qua việc dùng các “chứng chỉ”
Biểu đồ 1 Các giao thức con của SSL trong mô hình TCP/IP
Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP Do
Trang 25TCP/IP Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thứckhác như IPSec (IP Security Protocol) Vì giao thức này đòi hỏi nhân hệ điềuhành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP SSL cũng có thể dễ dàng vượt
qua tường lửa và proxy, cũng như NAT (Network Address Translation) mà
không cần nguồn cung cấp
Trang 26Biểu đồ 2 Từng bước thành lập một kết nối SSL
Như bạn thấy trên hình, quá trình thiết lập kết nối SSL bắt đầu bằng việc traođổi các tham số mã hoá và sau đó xác nhận các server một cách tuỳ ý (dùng
gia thức SSL Handshake) Nếu “bắt tay” (Handshake) thành công, cả hai chiều
Trang 27thể được gửi thông qua đường hầm (tunnel) mã hoá (dùng SSL Record Layer).
Trong thực tế, tiến trình trên còn phức tạp hơn một chút Để tránh những cái
“bắt tay” không cần thiết, một số tham số mã hoá được giữ lại Các thông báođược gửi đi Bộ mã hoá cũng có thể được thay đổi Tuy nhiên, bất chấp cácđặc điểm kĩ thuật đó, cách thức phổ biến nhất của tiến trình này làm việc thực
3) Mở rộng thêm về SSL, mặc dù SSL là giao thức được biết đến nhiều nhất
và phổ biến nhất, nhưng nó không phải là giao thức duy nhất dùng cho mụcđích an toàn và giao vận trong web Cũng khá quan trọng để biết rằng, từ sauphát minh SSL v1.0 ra đời , có ít nhất năm giao thức khác hoặc ít hơn hoặcnhiều hơn đóng vai trò quan trọng trong an ninh truy cập World Wide Web
Cụ thể:
SSL v2.0
Phiên bản này được tạo ra bởi Netscape Communications năm 1994
Mục đích chính của giao thức này là cung cấp an toàn cho các giao dịch trên
World Wide Web Thật không may, nhanh chóng sau đó người ta thấy con số yếu kém về an toàn trong phiên bản đầu của giao thức SSL này Do đó làm
cho nó kém tin cậy hơn với cách dùng mang tính chất thương mại
Cấu trúc của MAC yếu
Có khả năng để các nhóm bắt buộc dùng bộ mã hoá yếu
Không bảo vệ quá trình “bắt tay”
Có khả năng những kẻ tấn công dùng kiểu cắt xén (truncation attack)
SSL v3.0
Được phát hành vào năm 1996 bởi Netscape Communications SSL v3.0giải quyết hầu hết các vấn đề của SSL v2.0 và kết hợp rất nhiều thành phần
Trang 28của PCT Nhanh chóng sau đó nó trở thành giao thức phổ biến nhất cho an
toàn truyền thông trên World Wide Web
Cài đặt Apache hỗ trợ SSL/TLS
Bước đầu tiên để cài đặt phần mềm Apache có hỗ trợ SSL/TLS là cấu
hình và cài đặt Apache 2 web server, tạo ra một người dùng và một nhóm
được đặt tên là “apache” Một cách cài đặt an toàn đã được xuất bản trên
SecurityFocus, trong bài báo Security Apache 2.0: Step-by-Step Chỉ có một
điểm khác nhau duy nhất là tiến trình để thiết lập mod_ssl và mod_setenvif
Nó đòi hỏi phải tương thích với một số phiên bản của Internet Explorer
Trang 29CHỮ KÝ ĐIỆN TỬ
Chữ ký điện tử là gì?
Chữ ký điện tử (tiếng Anh: 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 đó
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ủamộ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ử (electronicsignature) 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ử baohàm chữ ký số)
Về căn bản, khái niệm chữ ký điện tử cũng giống như chữ viết tay Bạn dùng
nó để xác nhận lời hứa hay cam kết của mình và sau đó không thể rút lại được Chữ
ký điện tử không đòi hỏi phải sử dụng giấy mực, nó gắn đặc điểm nhận dạng củangười ký vào một bản cam kết nào đó
Có được một bản chứng nhận điện tử cũng giống như dùng bằng lái xe đểxác nhận nhận dạng của mình Bạn có thể thi lấy được bằng lái xe tại Hà Nội những
nó lại cho phép bạn điều khiển phương tiện tại TP HCM Tương tự như vậy, bảnchứng nhận điện tử là vật để khẳng định nhân dạng của bạn trên Internet với nhữngngười chấp nhận nó
Trong Liên minh Châu Âu, Nghị viện và Hội đồng Châu Âu đã ra Chỉ thị 1999/93/EC, thiết lập một cơ cấu chung về chữ ký điện tử trong cộng đồng lãnh thổ
Mục đích của chỉ thị này là đảm bảo chức năng thông suốt của thị trường nội địa trong lĩnh vực bưu chính viễn thông và thương mại điện tử Ý tưởng này xuất phát
từ các thành viên của Liên Minh Châu Âu nhằm tận dụng tối đa những tiện ích của thương mại điện tử, tăng niềm tin cuả khách hàng và cùng lúc đưa ra cho các nhà