Bài giảng tổng quan về giao thức SSL môn bảo mật thông tin (Secure Sockets Layer) , nếu bạn đang tìm hiểu về SSL cũng như bạn đang học môn bảo mật thông tin. Bạn có thể thử xem và tải tài liệu powerpoint (bao gồm 59 slide ) này về. Tôi hi vọng những thông tin này thiết thực và giúp bạn có thể hoàn thành tốt môn học cũng như hiểu biết thêm về giao thức Secure Sockets Layer.
Trang 1CHÀO MỪNG THẦY VÀ CÁC BẠN ĐẾN VỚI BÀI
THUYẾT TRÌNH CỦA
NHÓM MÌNH
Trang 2Secure Sockets Layer
Trang 3SSL
SSL là viết tắt của từ Secure Sockets Layer
Đây là một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết giữa máy chủ web và trình duyệt
Liên kết này đảm bảo tất cả dữ liệu trao đổi giữa máy chủ web và trình duyệt luôn được bảo mật và an toàn.
SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các trình duyệt được mang tính riêng tư, tách rời
SSL là một chuẩn công nghệ được sử dụng bởi hàng triệu trang web trong việc bảo
vệ các giao dịch trực tuyến với khách hàng của họ.
Trang 4✘ Ngày nay việc bảo mật thông
tin là yếu tố quan trọng để quyết
định sự sống còn của một tổ
chức ,một công ty hay doanh
nghiệp Với sự phát triển nhanh
chóng của công nghệ đã mang
lại nhiều tiện ích cho người
dùng nhưng đồng thời cũng đặt
ra một nhu cầu hết sức cấp thiết
về sự an toàn và bảo mật Và
SSL chính là giải pháp tốt nhất
hiện nay đáp ứng những nhu
cầu đó và nó được coi như là “lá
chắn cuối cùng” trong bảo mật
thương mại điện tử
✘ Giao thức SSL ban đầu được phát triển bởi Netscape.Version 1.0 thì
đã không bao giờ được công bố rộng rãi.Version 2.0 được công bố vào tháng 2/1995 nhưng chứa nhiều lỗ hỏng bảo mật và sau cùng đưa đến mô hình SSL version 3.0 được ban hành năm
1996 Bản sau cùng này được dùng cho TLS version 1.0 và được IETF xác định như một giao thức chuẩn trong RFC 2246 vào tháng 1/1999 Ngày nay Visa,
MasterCard, American Express cũng như nhiều công ty giải pháp tài chính hàng đầu khác trên thế giới đã và đang ứng dụng SSL trong thương mại điện tử
Tại sao lại sử dụng
SSL ?
Trang 5Việc truyền các thông tin nhạy cảm trên mạng rất không an toàn vì những vấn đề sau:
đổi thông tin với đúng
đối tượng cần trao đổi
Thuật toán mã hóa được sử dụng với SSL bao gồm hàm băm mã hóa,tương tự như 1 checksum.Nó đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền dẫn.Hàm băm mã hóa giải quyết vấn đề thứ 3,tính toàn vẹn dữ liệu
Chú ý rằng,cả xác thực và mã hóa đều là tùy chọn, và phụ thuộc vào cipher suites (các
bộ mã hóa) được đàm phán giữa 2 đối tượng
SSL giải quyết vấn đề đầu tiên bằng cách cho phép 1 cách tùy chọn mỗi bên trao đổi có thể chắc chắn về định danh của phía đối tác trong 1 quá trình gọi là thentication (xác thực).Một khi các bên đã được xác thực,SSL cung cấp 1 kết nối được mã hóa giữa 2 bên để truyền bảo mật các message Việc mã hóa trong quá trình trao đổi thông tin giữa 2 bên cung cấp sự riêng tư bí mật,vì vậy mà giải quyết được vấn đề thứ 2
Trang 6Một ví dụ rõ ràng nhất mà trong đó
bạn nên sử dụng SSL là trao đổi
thông tin giao dịch qua mạng
(e-commerce).Trong trao đổi
e-commerce,thật dại dột khi giả định
rằng bạn có thể chắc chắn về định
danh của server mà bạn đang trao đổi
thông tin Ai đó có thể dễ dàng tạo ra
1 Website giả hứa hẹn các dịch vụ
tuyệt vời ,chỉ để cho bạn nhập vào đó
số tài khoản.SSL cho phép bạn,
client,xác thực về định danh của
server.Nó cũng cho phép server xác
thực định danh của client,mặc dù
trong các giao tác Internet,việc này
hiếm khi được làm.PTIT
Một khi client và server đã hài lòng với định danh của mỗi bên đối tác SSL cung cấp tính bảo mật và tính toàn vẹn thông qua các thuật toán mã hóa mà
nó sử dụng.Điều này cho phép các thông tin nhạy cảm,như số tài khoản,được truyền đi 1 cách an toàn trên
Internet
Trong khi SSL cung cấp tính xác thực,tính bảo mật và toàn vẹn dự liệu, nó không cung cấp non-repudiation (tính không từ chối) Non-repudiation có
nghĩa là khi 1 đối tượng gửi đi
1 message ,thì sau đó không thể phủ nhận việc mình đã gửi
message đó Khi 1 chữ kí số tương đương được liên kết với
1 message, việc trao đổi này sau đó có thể được chứng minh SSL 1 mình nó không cung cấp non-udiation
Trang 7SSL
✘ Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet Toàn bộ cơ chế hoạt động và hệ thống thuật toán
mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính
Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử
(digital certificate) dựa trên mật mã công khai (thí dụ RSA) Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích cấp độ
an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử
SSL hoạt động như
thế nào?
Trang 8 Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay” (handshake protocol) và giao thức “bản ghi” (record protocol) Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu, còn giao thức bản ghi xác định
khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối tượng đó Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web
và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi
“lời chào” (hellos) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn về thuật toán
mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) duy nhất cho lần làm việc đó Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server).
Trang 9✘ Chứng thực điện tử thường
được xác nhận rộng rãi bởi
một cơ quan trung gian (là CA
-Certificate Authority) như
RSA Data Sercurity hay
cho các giao dịch trên mạng, ở
đây là các máy chủ webserver.
✘ Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy chủ
đó có thể giải mã Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một số
tham số: (i) số nhận dạng theo phiên làm việc
ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược đồ
mã hoá thông tin.
Trang 103 KEA - thuật toán trao đổi khoá), phát minh và sử dụng của chính phủ Mỹ
4 MD5 - thuật toán tạo giá trị “băm” (message digest), phát minh bởi Rivest;
5 RC2, RC4 - mã hoá Rivest, phát triển bởi công ty RSA Data Security;
6 RSA - thuật toán khoá công khai, cho mã hoá va xác thực, phát triển bởi Rivest, Shamir và Adleman;
7 RSA key exchange - thuật toán trao đổi khoá cho SSL dựa trên thuật toán RSA;
8 SHA-1 - thuật toán hàm băm an toàn, phát triển và sử dụng bởi chính phủ Mỹ
9 SKIPJACK - thuật toán khoá đối xứng phân loại được thực hiện trong phần cứng Fortezza, sử dụng bởi chính phủ Mỹ
10 Triple-DES - mã hoá DES ba lần.
Trang 11 Cơ sở lý thuyết và cơ chế hoạt động
của các thuật toán sử dụng về bảo mật bên trên hiện nay là phổ biến rộng rãi và công khai, trừ các giải
pháp thực hiện trong ứng dụng thực hành vào trong các sản phẩm bảo mật (phần cứng, phần dẻo, phần
mềm).
Trang 12 Việc trao đổi trên
mạng sử dụng SSL bắt
đầu với việc trao đổi
thông tin qua lại giữa
- Đàm phán cipher suite.
- Xác thực định danh (tùy chọn)
- Hình thành cơ chế bảo mật thông tin, bằng cách thỏa thuận các cơ chế mã hóa
Tiến trình SSL:
Trang 13Đàm phán Cipher suite
SSL
client và server xem cipher suite nào mà chúng sẽ
sử dùng.Một cipher suite là 1 tập các thuật toán
mã hóa và kích thước khóa mà máy tính có thể
thông tin về các thuật toán trao đổi khóa công
băm mã hóa.Client nói với server các cipher suite
nào nó có sẵn và server lựa chọn cipher suite tốt
nhất có thể chấp nhận
Trang 14 Trong SSL,bước xác thực là tùy chọn ,nhưng trong ví dụ về giao tác
e-commerce trên Web, client theo thông thường sẽ muốn xác thực
server.Việc xác thực server cho phép client chắc chắn rằng chính
server này đại diện cho đối tượng mà client tin tưởng
Để chứng minh server thuộc về tổ chức mà nó khẳng định là nó đại
diện,server phải trình chứng chỉ khóa công khai của nó cho
client.Nếu chứng chỉ này là hợp lệ, client có thể chắc chắn về định
danh của server
Thông tin trao đổi qua lại giữa client và server cho phép chúng
thỏa thuận 1 khóa bí mật chung.Ví dụ,với RSA, client dùng khóa
công khai của server,có được từ chứng chỉ khóa công khai, để mã
hóa thông tin khóa bí mật.Client gửi thông tin khóa bí mật đã được
mã hóa đến server.Chỉ có server mới có thể giải mã cái message
này bởi vì quá trình giải mã phải cần đến khóa riêng của server
Xác thực server
SSL
Trang 15Gửi dữ liệu đã
mã hóa
SSL
Bây giờ, cả client và server có thể truy cập đến khóa bí mật
chung Với mỗi message, chúng dùng đến hàm băm mã hóa,
đã được chọn trong bước thứ nhất của tiến trình này, và chia
sẻ thông tin bí mật, để tính toán 1 HMAC nối thêm vào
message Sau đó, chúng dùng khóa bí mật và thuật toán
khóa bí mật đã được đàm phán ở bước đầu tiên của tiến trình
này để mã hóa dữ liệu và HMAC an toàn Client và server
giờ đây có thể trao đổi thông tin với nhau 1 cách an toàn với
các dữ liệu đã băm và mã hóa
Trang 16 Giao thức SSL:PTIT 2009
Phần trước cung cấp sự mô tả sơ lược về SSL handshake, là sự trao đổi thông tin giữa client và server trước khi gửi các message đã được
mã hóa.Phần này mô tả chi tiết hơn.Hình sau minh họa chuỗi tuần
tự các message được trao đổi
trong SSL handshake.Các
message mà chỉ được gửi trong 1 trường hợp nào đó được đánh dấu
là tùy chọn
Trang 171) Client hello: client gửi đến server các thông tin bao gồm phiên bản SSL cao nhất và 1 danh sách các cipher suite mà
nó hỗ trợ (TLS 1.0 được chỉ ra như là SSL3.1).Thông tin cipher suite bao gồm các thuật toán mã hóa và kích thước khóa
2) Server hello: server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhất mà cả client và server hỗ trợ và gửi thông tin này về cho client
3) Certificate: server gửi cho client 1 chứng chỉ hoặc 1 chuỗi chứng chỉ.Về cơ bản,1 chuỗi chứng chỉ bắt đầu bằng chứng chỉ khóa công khai của server và kết thúc bằng chứng chỉ gốc của tổ chức có thẩm quyền chứng chỉ.Message này là tùy chọn,nhưng nó được dùng bất cứ khi nào xác thực server là cần thiết
4) Certificate request: nếu server cần xác thực client,nó gửi cho client 1 yêu cầu xem chứng chỉ.Trong các ứng dụng internet,message này hiếm khi được gửi đi
5) Server key exchange: server gửi cho client 1 message trao đổi khóa server trong khi khóa công khai được gửi ở phần 3) bên trên thì không đủ cho trao đổi khóa
6) Server hello done: server nói với client rằng nó hoàn thành các message đàm phán ban đầu
7) Certificate: nếu server cần chứng chỉ từ client trong message 4, client gửi chuỗi chứng chỉ của nó,cũng giống như server làm trong message 3
Trang 188) Client key exchange: client sinh ra thông tin được dùng để tạo ra khóa trong mã hóa đối xứng.Với RSA, client
mã hóa thông tin khóa này bằng khóa công khai của server rồi gửi nó đến server
9) Certificate verify: message này được gửi khi client trình ra chứng chỉ như trên.Mục tiêu của nó là cho phép server hoàn thành tiến trình xác thực client.Khi message này được dùng,client gửi thông tin với chữ kí số tạo bằng hàm băm mã hóa.Khi server giải mã thông tin này bằng khóa công khai của client,server có thể
xác thực client
10) Change cipher spec: client gửi message bảo server thay đổi kiểu mã hóa
11) Finished: client nói với server rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn
12) Change cipher spec: server gửi message bảo client thay đổi kiểu mã hóa
13) Finished: server nói với client rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn.Kết thúc SSL handshake 14) Encrypted data: client và server trao đổi với nhau,sử dụng thuật toán mã hóa đối xứng và hàm băm mã hóa đã đàm phán ở message 1 và 2,và dùng khóa bí mật mà client gửi cho server trong message 8
15) Closed messages : Kết thúc 1kết nối,mỗi bên gửi 1 message close-notify để thông báo đầu kia biết kết nối bị đóng
Trang 19 Nếu các tham số được sinh ra
trong 1 phiên SSL được lưu
lại,các tham số này có thể
thỉnh thoảng được dùng lại cho các phiên SSL sau.Việc lưu lại các tham số phiên SSL cho
phép các trao đổi bảo mật về sau được bắt đầu nhanh chóng
hơn.
Trang 20Giao thức SSL/TLS định nghĩa 1 chuỗi
các bước đặc biệt để bảo đảm 1 kết nối
“được bảo vệ”.Tuy nhiên,việc lựa chọn
Cipher suite sẽ tác động trực tiếp đến loại
bảo mật mà kết nối có được.Ví dụ,nếu 1
cipher suite nặc danh được chọn,ứng dụng
không có cách nào để kiểm tra định danh của
đầu xa.Nếu 1 suite-không có mã hóa, được
chọn,tính bí mật của dữ liệu không thể được
bảo vệ.Thêm vào đó,giao thức SSL/TLS
không chỉ rõ rằng những tài liệu chứng nhận
nhận được phải khớp với những cái mà đầu
kia gửi.Nếu kết nối theo cách nào đó mà bị
redirect đến 1 kẻ xấu,nhưng tài liệu chứng
nhận của kẻ xấu này khi trình ra thì được
chấp nhận dựa trên những tư liệu tin tưởng
hiện tại,kết nối này sẽ được xét là hợp lệ
Khi dùng
SSLSockets/SSLEngines,nên
luôn luôn kiểm tra tài liệu chứng nhận của đầu xa trước khi gửi bất kì dữ liệu nào.Các
lớp SSLSockets và
SSLEngines không tự động
kiểm tra hostname trong URL
có khớp với hostname trong tài liệu chứng nhận của đầu kia hay không.Một ứng dụng
có thể bị khai thác bằng URL spoofing nếu hostname không được kiểm tra
Các giao thức như HTTPS cần thiết phải kiểm tra hostname.Các ứng dụng có thể dùng
HostnameVerifier
để viết chồng lên luật hostname HTTPS mặc định
Lựa chọn Cipher suite và xóa Entity verification:
Trang 21 Tìm hiểu về các thuật toán trong mã hóa SSL/TLS
Nếu bạn nghiên cứu SSL và
mã hóa đủ lâu, cuối cùng bạn
sẽ đi qua từ “cipher” hay còn gọi là mật mã Mật mã là một phần rất quan trọng của mã hóa.
Trang 22SSL
✘ Mật mã là thuật toán, cụ thể hơn là
chúng là một tập hợp các bước
thực hiện mã hóa cũng như giải mã
tương ứng Ngày nay mật mã phụ
thuộc vào khả năng xử lý tiên tiến
của máy tính Tuy nhiên nó không
phải là phụ thuộc hoàn toàn Một
trong những mật mã lịch sử đầu
tiên nổi tiếng thuộc về Caesar –
hoàng đế Rome và nhà cung cấp
món salad khai vị ưa thích – người
đã sử dụng nó để giao tiếp với các
tướng lĩnh của mình trong các hoạt
động quân sự.
✘ Trong những năm qua, mật
mã đã trở nên phức tạp hơn, nhưng logic đằng sau chúng vẫn giữ nguyên Cho dù đó
là Caesar băng qua Rubicon, mật mã Enigma khét tiếng của Thế chiến II hay một số thuật toán của ngày hôm nay – ý tưởng luôn luôn là mã hóa hoặc mã hóa một thông điệp theo cách mà chỉ có bên phát triển mới có thể đọc được.
Trang 23✘ Mã hóa đối xứng liên quan
đến hai bên giống nhau Cả hai bên có thể thực hiện cả hai chức năng: mã hóa và giải
mã Bạn thấy điều này trong khi kết nối web được mã hóa giữa trình duyệt và máy chủ Sau khi chứng chỉ SSL
đã được xác thực và bắt tay SSL hoàn tất, trình duyệt và trao đổi máy chủ “khóa phiên” đối xứng cho phép chúng giao tiếp an toàn trong suốt thời gian truy cập Trong khi các khóa phiên này đang hoạt động, chúng đang sử dụng mật mã đối xứng.
✘ Ngược lại, với mã hóa bất đối
xứng, bạn đang
nói về các khóa khác nhau với các khả năng khác nhau. Ví dụ
rõ ràng nhất về điều này là cặp khóa công khai / riêng được sử dụng trong quá trình bắt tay SSL. Trong trường hợp này, một
khóa mã hóa và khóa khác giải
mã. Loại mã hóa này yêu cầu một loại mật mã khác – một thuật toán bất đối xứng.
đối xứng
Trang 24và các chức năng mà chúng phục
vụ – sau đó chúng ta sẽ nói về xây dựng một bộ
mã hóa.
✘ Dưới đây là một số ví dụ
về mật mã
và các thuật toán tương
✘ PSK
Trang 25Trao đổi khóa
✘ Thường được viết
dưới dạng TLS-PSK,
đây là một thuật
toán mã hóa cung
cấp thông tin liên
Adleman. Đây là một
hệ thống mã hóa không đối xứng khá phổ biến, sử dụng số nguyên tố và có nhiều ứng dụng.
✘ Diffie-Hellman
✘ Được đặt tên theo
Whitfield Diffie và Martin Hellman, đây là một giao thức khóa công khai được
sử dụng chủ yếu để trao đổi các khóa mật mã trên các kênh công cộng. Trước các phương pháp như DH, các khóa phải được truyền dưới dạng vật lý.
✘ Elliptic Curve Diffie-Hellman
✘ Một giao thức thỏa thuận khóa, cung cấp cho hai bên
với cặp khóa công khai để thiết lập bí mật được chia sẻ
(được sử dụng trực tiếp như một khóa) một cách an
toàn trên kênh công khai.
Trang 26Kiến trúc SSL
✘ SSL được thiết kế để dùng TCP cung cấp 1 dịch vụ bảo mật đầu cuối-đến-đầu cuối đáng tin cậy SSL không phải là một giao thức đơn mà là 2 lớp giao thức,như minh họa dưới đây
Trang 27Kiến trúc SSL
✘ SSL Record Protocol cung cấp các dịch vụ bảo mật cơ bản cho nhiều giao thức khác nhau ở các lớp trên.Trong thực tế, Hyper Text Transfer Protocol (HTTP),cung cấp dịch vụ trao đổi cho tương tác Web client/server,có thể hoạt động trên đỉnh của SSL.Ba giao thức lớp trên được định nghĩa như là các phần của SSL: Handshake Protocol, Change Cypher Spec Protocol và Alert Protocol
✘ Các giao thức mang tính đặc trưng-SSL này
được dùng trong phần quản lý trao đổi SSL và được xét đến trong phần sau
Trang 28Kiến trúc SSL
✘ Hai khái niệm SSL quan trọng là SSL session
(phiên SSL) và SSL connection ( kết nối SSL) ,được định nghĩa
như sau:
Connection ( kết nối): 1 kết nối là 1 transport _ trong định
nghĩa mô hình phân lớp OSI_ cung cấp 1 loại dịch vụ thích hợp Với SSL,những kết nối như vậy là những mối quan hệ ngang hàng Các kết nối thì trao đổi nhanh chóng Mỗi kết nối gắn với 1 phiên
Session (phiên): 1 phiên SSL là 1 liên kết giữa 1 client và 1
server.Các phiên được tạo ra bằng Handshake Protocol (giao thức bắt tay) Các phiên định nghĩa 1 tập các tham số bảo mật bằng mật mã, có thể được chia sẻ giữa nhiều kết nối Các
phiên được dùng để tránh những đàm phán tốn kém về các tham số bảo mật mới cho mỗi kết nối
Trang 29Kiến trúc SSL
✘ Một trạng thái phiên được định nghĩa bởi các thông số sau (các định nghĩa lấy từ đặc trưng
SSL):
Session Identifier : một chuỗi byte bất kì được chọn bởi
server để nhận dạng trạng thái phiên là hoạt động (active) hay phục hồi lại (resumable)
Peer certificate: một chứng chỉ X509.v3.Thành phần này của
trạng thái có thể là null
Compression method: thuật toán được dùng để nén dữ liệu
trước khi mã hóa
Cypher spec : chỉ ra thuật toán mã hóa dữ liệu (như
rỗng,AES…) và thuật toán băm (như MD5 hay SHA- 1) sử dụng để tính toán MAC.Nó cũng định nghĩa các thuộc tính mã hóa như hash-size
Is resumable : một cờ chỉ ra rằng phiên này có thể được dùng
để khởi tạo các kết nối khác hay không
Master secret : 48 byte bí mật được chia sẻ giữa client và
server