Giao thức SSL Secure Socket Layer• SSL đ ợc sử dụng rộng rãi trong giao dịch điện tử VD: truyền dữ liệu thẻ tín dụng, mật khẩu, số bí mật cá nhân - PIN trên Internet • Toàn bộ cơ chế ho
Trang 1an toµn m¹ng th«ng tin
B¶o mËt Web (Web Security)
Trang 2Nội dung
• Các vấn đề về bảo mật Web
• Các bộ giao thức bảo mật cho Web: SSL và TLS
• Giao dịch điện tử an toàn (Secure Electronic Transaction -SET)
Trang 3Các vấn đề về bảo mật Web
• Hiện nay, Web đ ợc sử dụng rất rộng rãi trong kinh doanh, các tổ chức và cá nhân
• Nh ng Web rất dễ bị tấn công!
• Các nguy cơ bảo mật có thể xảy ra với Web:
–Khó đảm bảo bí mật dữ liệu
–Khó đảm bảo toàn vẹn dữ liệu
–Dễ bị tấn công từ chối dịch vụ (DoS)
–Khó khăn trong nhận thực
• Do vậy, cần có cơ chế bảo mật cho Web
Trang 4C¸c giao thøc b¶o mËt cho Web
trong bé giao thøc TCP/IP
• Web ch¹y trªn nÒn bé giao thøc TCP/IP
• Trong bé giao thøc TCP/IP, c¸c giao thøc b¶o mËt cho Web gåm
cã IPSec (líp m¹ng); SSL hoÆc TLS (líp vËn chuyÓn); vµ SET (líp øng dông)
Trang 5Giao thức SSL (Secure Socket Layer)
• Là giao thức đa mục đích đ
ợc thiết kế để tạo ra các giao
tiếp bảo mật giữa hai ch ơng
Trang 6Giao thức SSL (Secure Socket Layer)
• SSL đ ợc sử dụng rộng rãi trong giao dịch điện tử (VD:
truyền dữ liệu thẻ tín dụng, mật khẩu, số bí mật cá nhân - PIN trên Internet)
• Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hóa trong SSL đ ợc phổ biến công khai, trừ khóa chia sẻ tạm
thời (khóa phiên) đ ợc sinh ra tại thời điểm trao đổi giữa hai ứng dụng đ ợc tạo ngẫu nhiên và phải giữ bí mật
• SSL yêu cầu chứng thực của một bên thứ ba (CA) thông qua chứng chỉ số trên cơ sở mật mã khóa công khai RSA
Trang 7Ví dụ về
SSL
• Đảm bảo bí mật và toàn vẹn nếu có chữ ký số
• Phụ thuộc vào việc trao đổi khoá công khai nh thế nào Nhận thực, nhận dạng và chống thoái thác
Trang 8Giao thức
bắt tay
SSL bao gồm một số nhóm con giao thức; trong đó quan trọng nhất là giao thức bắt tay
Trang 9• Ví dụ về liên kết SSL giữa một trình duyệt Web và một máy chủ Web
– Máy chủ và máy khách trao đổi lời chào (hello) và xác định các thuật toán mật mã và nén dữ liệu sẽ sử dụng trong phiên giao dịch
– Trao đổi số nhận dạng phiên (Session ID) và khóa phiên (Session key) – ứng dụng khách yêu cầu chứng chỉ số của ứng dụng chủ Chứng thực
điện tử này đ ợc xác nhận bởi một cơ quan trung gian có uy tín (CA) chẳng hạn RSA Security hay VeriSign Inc
– ứng dụng khách sử dụng thông tin trong chứng chỉ số để mã hóa thông tin gửi tới máy chủ mà chỉ có máy chủ đó mới có thể giải mã
Trang 10§é an toµn th«ng tin cña SSL
§é an toµn cña th«ng tin trªn c¬ së SSL phô thuéc vµo c¸c yÕu tè sau:
1 Sè nhËn d¹ng phiªn lµm viÖc ngÉu nhiªn
2 ThuËt to¸n b¶o mËt sö dông
3 §é dµi cña khãa
Trang 11Các thuật toán mật mã chủ yếu
sử dụng trong SSL
• Đảm bảo bí mật thông tin
- Bảo mật dữ liệu: IDEA, RC2, RC4, DES, 3DES,
Fortezza (thuật toán khóa đối xứng phân loại dùng trong phần cứng)
- Trao đổi khóa: RSA, KEA (thuật toán trao đổi khóa)
• Đảm bảo nhận thực và toàn vẹn dữ liệu
- DSA (thuật toán tạo và nhận dạng chữ ký số)
- RSA
- SHA-1, MD5 để tạo MAC phục vụ cho nhận thực
Trang 12Hoạt động của giao thức ghi
Trang 13Khu«n d¹ng cña giao thøc ghi
B¶n râ (cã thÓ ® îc nÐn)
Lo¹i néi
dung
§· ®
îc m·
ho¸
Phiªn b¶n phô
Trang 14Tải của giao thức ghi
(a) Giao thức thay đổi mã
(d) Các giao thức lớp cao khác (VD: HTTP, ) (b) Giao thức cảnh báo
(c) Giao thức bắt tay
Loại Chiều dài Nội dung
Nội dung mờ Mức Cảnh báo
Trang 15Giao thức thay đổi mật mã
(SSL Change Cipher Spec Protocol)
• Một trong ba giao thức đặc tr ng của SSL
• Cập nhật các đặc tính kỹ thuật sao cho phù hợp
mật mã sử dụng
Trang 16Giao thức cảnh báo (SSL Alert Protocol)
• Liên quan tới các cảnh báo
• Có hai mức độ cảnh báo: báo hiệu hoặc nguy hiểm
• Cảnh báo đặc biệt
• bản tin lạ, địa chỉ MAC lạ, không giải nén đ
ợc, các tham số bất hợp pháp
• không có chứng chỉ, chứng chỉ xấu, chứng chỉ không đ ợc hỗ trợ
• Cũng đ ợc nén và mã hoá nh mọi dữ liệu SSL
Trang 17Giao thức bắt tay (SSL Handshake Protocol)
• Cho phép các máy chủ và máy khách:
–Nhận thực máy chủ và trao đổi khoá
–Nhận thực máy khách và trao đổi khoá
Trang 19Giao thức TSL (Transport Layer Security)
• TSL là chuẩn do tổ chức IETF (*) đ a ra có chức năng t ơng tự với SSL; với một số điểm khác biệt sau đây:
–trong khuôn dạng ghi số phiên bản
–dùng HMAC thay cho MAC
–dùng một hàm giả ngẫu nhiên (pseudo-random) để tăng tính bí mật
Trang 20Giao dịch điện tử an toàn (Secure Electronic Transactions - SET)
• SET là một đặc tả kỹ thuật mở về bảo mật và mã hoá
• SET có chức năng bảo vệ các giao dịch bằng thẻ tín dụng (credit card) qua Internet (th ơng mại điện tử)
• Các tổ chức liên qua đến SET:
– MasterCard, Visa,
– IBM, Microsoft, Netscape,
– RSA, Terisa, Verisign
Trang 21Các yêu cầu đối với th ơng mại điện tử và
ph ơng thức bảo mật của SET
• Bí mật thông tin thanh toán và thông tin đặt hàng
SET sử dụng mã hoá
• Đảm bảo toàn vẹn đối với mọi dữ liệu truyền
SET sử dụng chữ ký số
• Nhận thực đ ợc ng ời sở hữu thẻ là ng ời dùng hợp
pháp của thẻ tín dụng đó
SET sử dụng chữ ký số và chứng chỉ số
• Nhận thực đ ợc Ng ời kinh doanh có thể chấp nhận
các giao dịch bằng thẻ tín dụng thông qua mối quan
hệ của Ng ời kinh doanh với một tổ chức tài chính SET sử dụng chữ ký số và chứng chỉ số
Trang 22Các yêu cầu đối với SET
• Dùng những kỹ thuật và hệ thống bảo mật tốt nhất bảo vệ các bên tham gia hợp pháp trong quá trình
Trang 24C¸c tÝnh n¨ng c¬ b¶n cña SET
• BÝ mËt th«ng tin:
–Tµi kho¶n cña ng êi së h÷u thÎ vµ th«ng tin thanh to¸n
® îc b¶o mËt khi truyÒn qua m¹ng
–Tµi kho¶n cña ng êi së h÷u thÎ vµ th«ng tin thanh to¸n
(VD: sè cña thÎ tÝn dông) ® îc bÝ mËt víi chÝnh ng êi
Trang 25Các tính năng cơ bản của SET
• Nhận thực tài khoản của ng ời sở hữu thẻ:
–Ng ời kinh doanh có thể xác minh xem khách hàng có
phải là chủ hợp pháp của thẻ tín dụng hay không –Để đạt mục đích này, SET dùng chứng chỉ số X.509v3 + chữ ký số RSA
• Nhận thực ng ời kinh doanh:
–Khách hàng có thể nhận thực ng ời kinh doanh và kiểm tra xem ng ời kinh doanh đó có thực sự đ ợc phép nhận
thanh toán bằng thẻ tín dụng hay không –Để đạt mục đích này, SET dùng chứng chỉ số X.509v3 + chữ ký số RSA
Trang 26Nh÷ng thµnh phÇn tham gia vµo SET
Ng êi kinh doanh
Trang 27Những thành phần tham gia vào SET
• Ng ời sở hữu thẻ
–Là chủ hợp pháp của một thẻ tín dụng, có thể
sử dụng thẻ tín dụng để trả tiền khi mua
• Ng ời kinh doanh
–Bán hàng hoá hoặc dịch vụ qua mạng (trang Web
hoặc E-mail) cho những ng ời sở hữu thẻ
–Phải có mối quan hệ với một ng ời nhận thanh toán
• Ng ời phát hành thẻ
–Một tổ chức tài chính (th ờng là một ngân hàng) lập tài
khoản và phát hành thẻ tín dụng cho Ng ời sở hữu thẻ
–Chịu trách nhiệm trả nợ cho ng ời sở hữu thẻ
Trang 28Những thành phần tham gia vào SET
• Ng ời nhận thanh toán
–Một tổ chức tài chính thiết lập và duy trì
tài khoản cho những ng ời kinh doanh
–Cấp phép thanh toán bằng thẻ và xử lý thanh toán
–Chuyển tiền tới tài khoản của ng ời kinh doanh, sau đó số tiền này sẽ đ ợc đ ợc hoàn trả bởi ng ời phát hành thẻ
• Cổng thanh toán
–Giao diện giữa SET và các mạng thanh toán bằng thẻ
• Ng ời có thẩm quyền cấp chứng chỉ (CA)
Trang 29Chuỗi sự kiện của giao dịch điện tử
1 Khách hàng mở một tài khoản (account).
2 Khách hàng nhận đ ợc một chứng chỉ.
3 Ng ời kinh doanh có các chứng chỉ riêng của họ.
5 Ng ời kinh doanh đ ợc kiểm tra.
6 Thông tin đặt hàng và thông tin thanh toán đ ợc gửi đi.
7 Ng ời kinh doanh yêu cầu chứng nhận thanh toán.
8 Ng ời kinh doanh khẳng định đơn đặt hàng với khách hàng
9 Ng ời kinh doanh cung cấp hàng hoá hoặc dịch vụ.
10 Ng ời kinh doanh yêu cầu thanh toán.
Trang 30M« h×nh giao dÞch th ¬ng m¹i ®iÖn tö
Trang 31Ch÷ ký kÐp (Dual Signature - DS)
• Kh¸i niÖm: liªn kÕt hai b¶n tin göi cho hai ng êi nhËn
Trang 32Tại sao cần chữ ký kép?
• Giả sử khách hàng gửi cho ng ời kinh doanh hai bản
tin:
–Thông tin đặt hàng (OI) đã ký
–Thông tin thanh toán (PI) đã ký
–Ng ời kinh doanh chuyển thông tin thanh toán tới ngân hàng
• Nếu ng ời kinh doanh có một thông tin đặt hàng (OI)
thứ hai nào đó từ chính khách hàng đó, ng ời kinh
doanh có thể công bố rằng thông tin thanh toán (PI)
thứ nhất là của thông tin đặt hàng (OI) thứ hai
–VD: giá trị đơn đặt hàng OI thứ nhất là 500 USD, giá trị yêu
Trang 34Tạo chữ ký kép
• Thực hiện hàm Hash (VD: SHA-1) với thông tin
thanh toán (PI) và thông tin đặt hàng (OI), đ ợc
PIMD và IOMD t ơng ứng
• Ghép hai giá trị PIMD và OIMD với nhau
[H(PI) || H(OI)]
rồi thực hiện hàm Hash với giá trị ghép, đ ợc MD
của thông tin đặt hàng + thanh toán (POMD)
POMD = H [H(PI) || H(OI)]
• Khách hàng mã hoá POMD bằng khoá riêng của
Trang 35Ng êi kinh doanh x¸c nhËn ch÷ ký kÐp
• Ng êi kinh doanh lÊy ra kho¸ chung cña kh¸ch
• Hai gi¸ trÞ nµy ph¶i gièng nhau!
Trang 36• Hai gi¸ trÞ nµy ph¶i gièng nhau!
Trang 37Đã làm đ ợc gì với Chữ ký kép?
Đã xác nhận đ ợc những điều sau đây:
• Ng ời kinh doanh đã nhận OI và đã xác nhận chữ ký
• Ngân hàng đã nhận PI và đã xác nhận chữ ký
• Khách hàng đã liên kết OI và PI và có thể chứng
minh đ ợc sự liên kết này
Trang 38Các loại giao dịch đ ợc SET hỗ trợ
• Đăng ký ng ời sở hữu thẻ
• Đăng ký ng ời bán hàng
• Yêu cầu mua hàng
• Cấp phép thanh toán
• Thu nhận thanh toán
• Xin cấp chứng chỉ
• H ớng dẫn mua hàng
• Thông báo mua hàng
• Giao dịch bán hàng
• Thay đổi giấy phép
• Thay đổi thu nhận thanh toán
• Thay đổi thẻ tín dụng
Trang 39Yêu cầu mua hàng
• Yêu cầu mua hàng thực hiện theo bốn b ớc:
–Yêu cầu ban đầu: hỏi chứng chỉ của ng ời bán
hàng và cổng thanh toán (bản tin này gồm: nhãn của thẻ tín dụng + ID của khách hàng)
–Đáp ứng ban đầu: đáp ứng đã ký bằng khoá riêng
của ng ời kinh doanh + chứng chỉ của ng ời kinh
doanh + chứng chỉ trao đổi khoá của cổng thanh toán
–Yêu cầu mua hàng: mô tả sau
–Đáp ứng mua hàng: mô tả sau
Trang 41Bản tin yêu cầu mua hàng
Ng ời sở hữu thẻ tạo ra Bản tin yêu cầu mua hànggửi tới ng ời kinh doanh Bản tin đó có những thông tin sau:
1 Thông tin liên quan tới mua hàng: thông tin này sẽ đ ợc
ng ời kinh doanh chuyển tới cổng thanh toán (bao gồm PI, chữ ký kép, OIMD, phong bì số)
2 Thông tin liên quan tới đặt hàng: thông tin mà ng ời
kinh doanh cần (bao gồm OI, chữ ký kép, PIMD)
3 Chứng chỉ của ng ời sở hữu thẻ: thông tin mà ng ời kinh
doanh và cổng thanh toán cần (bao gồm khoá chung của
ng ời sở hữu thẻ)
Trang 43Ng ời kinh doanh xử lý yêu cầu mua hàng
1 Xác nhận chứng chỉ của Ng ời sở hữu thẻ bằng
cách kiểm tra chữ ký của CA
2 Xác nhận chữ ký kép bằng khoá công khai của
khách hàng để đảm bảo đơn dặt hàng không bị
thay đổi trong quá trình truyền và đảm bảo rằng
nó đã đ ợc ký bằng khoá riêng của khách hàng
3 Xử lý đơn đặt hàng và chuyển thông tin thanh
toán tới cổng thanh toán để xin phép (mô tả trong slide sau)
4 Gửi đáp ứng mua hàng tới Ng ời sở hữu thẻ
Trang 44Bản tin yêu cầu cấp phép
Ng ời kinh doanh gửi Bản tin yêu cầu cấp phép gửi tới cổng thanh toán Bản tin đó có những thông tin sau:
khách hàng (bao gồm PI, chữ ký kép, OIMD, phong bì số)
doanh tạo ra, bao gồm
khoá riêng cuả ng ời kinh doanh và đ ợc mã hoá bằng khoá
đối xứng sử dụng một lần tạo ra bởi ng ời kinh doanh)
bằng khoá chung của cổng thanh toán)
Trang 45Cổng thanh toán cấp phép thanh toán
1 Kiểm tra mọi chứng chỉ
2 Giải mã phong bì số của giấy phép để lấy khoá đối xứng ra, rồi
dùng khoá đó giải mã giấy phép đó
3 Kiểm tra chữ ký số của Ng ời kinh doanh trên giấy phép
4 Giải mã phong bì số của tiền trả để lấy khoá đối xứng ra, rồi lấy
khoá đó để giải mã tiền trả
5 Kiểm tra chữ ký kép trên khối tiền trả
6 Kiểm tra xem ID giao dịch từ Ng ời kinh doanh có trùng với ID
trong PI nhận đ ợc (trực tiếp) từ khách hàng
7 Yêu cầu và nhận một giấy phép từ Ng ời phát hành thẻ
Trang 46Thu nhận thanh toán
• Ng ời kinh doanh gửi tới Cổng thanh toán một yêu cầu thu tiền
• Cổng thanh toán kiểm tra yêu cầu này, rồi chuyển tiền tới tài khoản của Ng ời kinh doanh
• Thông báo cho Ng ời kinh doanh bằng đáp ứng thu giữ tiền trả
Trang 47HÕt