MỤC LỤC LỜI NÓI ĐẦU 3 CẤU TRÚC CỦA SSL 7 1. Cấu trúc SSL 7 2. Các giao thức của SSL 8 PHƯƠNG THỨC HOẠT ĐỘNG 11 1. Nhận diện 11 2. Các thuật toán mã hóa dùng trong SSL 12 3. Hoạt động 14 ỨNG DỤNG 17 1. Ứng dụng trong Thương mại điện tử 17 2. Các loại giao thức bảo mật khác 17 LỜI NÓI ĐẦU Secure Socket Layer hay còn được biết với tên viết tắt SSL là một giao thức mà rất nhiều dịch vụ có kết nối thông qua Internet có thể sử dụng nhằm tăng cường tính bảo mật. Trước khi nghiên cứu sâu về SSL, hãy cùng hình dung những gì có thể xảy ra khi không có SSL. Chúng ta hãy cùng xem xét đến việc kết nối giữa hay máy tính thông qua Internet và việc giao tiếp giữa con người với nhau thông qua điện thoại. Nếu không có sự xuất hiện của SSL, việc kết nối máy tính – máy tính cũng sẽ gặp những vấn đề tương tự như việc giao tiếp thông qua điện thoại giữa con người và con người: • Bạn đang nói chuyện với ai? Trong quá trình giao tiếp qua điện thoại, làm thế nào để bạn có thể bảo đảm rằng người đang nói chuyện với bạn là người bạn cần gặp và cung cấp thông tin, nhất là khi bạn không biết mặt họ và có khi đây là lần đầu tiên bạn nghe giọng nói của họ? Chuyện gì sẽ xảy ra khi cuộc gọi của bạn đã bị chuyển hướng hoặc có một người nào đó đang trả lời thay cho người bạn muốn gọi? Không có gì chắc chắn rằng bạn đang được nói chuyện với người bạn muốn. • Nghe lén Nếu như thường xuyên xem phim ảnh cũng như đọc sách báo, bạn có thể dễ dàng nhận ra những cuộc gọi điện thoại rất dễ bị thu âm hoặc nghe lén, ví dụ điển hình nhất là việc cảnh sát thực hiện việc ghi âm cuộc gọi nhằm thu thập chứng cứ (mặc dù đây là việc làm hợp pháp). Vậy phải làm thế nào để đảm bảo rằng cuộc giao tiếp của bạn chỉ diễn ra giữa bạn và người bạn mong muốn được bí mật? Từ hai điều trên, chúng ta rút ra được vấn đề tồn đọng trong việc giao tiếp đó là:
Trang 1ĐẠI HỘC QUỐC GIA TP.HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Khoa Kỹ Thuật Máy Tính
MÔN :
CHỨNG THỰC SỐ
Đề Tài:
TÌM HIỂU VỀ SSL HAI CHIỀU
Giáo viên hướng dẫn :
Sinh viên thực hiện
Đặng Thành Vinh – 07520413 Nguyễn Minh Hoàng – 07520132
TP.HỒ CHÍ MINH 4 - 2011
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 3
CẤU TRÚC CỦA SSL 7
1 Cấu trúc SSL 7
2 Các giao thức của SSL 8
PHƯƠNG THỨC HOẠT ĐỘNG 11
1 Nhận diện 11
2 Các thuật toán mã hóa dùng trong SSL 12
3 Hoạt động 14
ỨNG DỤNG 17
1 Ứng dụng trong Thương mại điện tử 17
2 Các loại giao thức bảo mật khác 17
Trang 3LỜI NÓI ĐẦU
Secure Socket Layer hay còn được biết với tên viết tắt SSL là một giao thức mà rất nhiều dịch vụ có kết nối thông qua Internet có thể sử dụng nhằm tăng cường tính bảo mật Trước khi nghiên cứu sâu về SSL, hãy cùng hình dung những gì có thể xảy ra khi không
có SSL
Chúng ta hãy cùng xem xét đến việc kết nối giữa hay máy tính thông qua Internet và việc giao tiếp giữa con người với nhau thông qua điện thoại Nếu không có sự xuất hiện của SSL, việc kết nối máy tính – máy tính cũng sẽ gặp những vấn đề tương tự như việc giao tiếp thông qua điện thoại giữa con người và con người:
Bạn đang nói chuyện với ai?
Trong quá trình giao tiếp qua điện thoại, làm thế nào để bạn có thể bảo đảm rằng người đang nói chuyện với bạn là người bạn cần gặp và cung cấp thông tin, nhất là khi bạn không biết mặt họ và có khi đây là lần đầu tiên bạn nghe giọng nói của họ? Chuyện gì sẽ xảy ra khi cuộc gọi của bạn đã bị chuyển hướng hoặc có một người nào đó đang trả lời thay cho người bạn muốn gọi? Không có gì chắc chắn rằng bạn đang được nói chuyện với người bạn muốn
Nghe lén!
Nếu như thường xuyên xem phim ảnh cũng như đọc sách báo, bạn có thể dễ dàng nhận ra những cuộc gọi điện thoại rất dễ bị thu âm hoặc nghe lén, ví dụ điển hình nhất là việc cảnh sát thực hiện việc ghi âm cuộc gọi nhằm thu thập chứng cứ (mặc dù đây là việc làm hợp pháp) Vậy phải làm thế nào để đảm bảo rằng cuộc giao tiếp của bạn chỉ diễn ra giữa bạn và người bạn mong muốn được bí mật?
Từ hai điều trên, chúng ta rút ra được vấn đề tồn đọng trong việc giao tiếp đó là:
1 Bảo đảm bạn đang kết nối với đúng người mình mong muốn
Trang 42 Bảo đảm rằng cuộc đối thoại hoặc tài liệu của bạn hoàn toàn bí mật SSL ra đời nhằm giải quyết hai vấn đề trên
Trang 5LỊCH SỬ HÌNH THÀNH
Như chúng ta đã biết có hai giao thức bảo mật quan trọng lớp vận chuyển (Layer
Transport) có tầm quan trọng cao nhất đối với sự bảo mật của các trình ứng dụng trên Web: đó là hai giao thức SSL và TLS
Vào những năm 1990, Netscape Communication đã giới thiệu SSL và một giao thức tương ứng với phiên bản đầu tiên của Netscape Navigator Trái với tập đoàn các tập đoàn bảo mật khác, Netscape Communications đã không tính phí các khách hàng của nó về việc thực thi giao thức bảo mật của nó Kết quả, SSL trở thành giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP 1994 và lặng lẽ biến mất
Cho đến bây giờ, có ba phiên bản của SSL:
1 SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications Nó chứa một số khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài
2 SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x Nó có một số điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của đối tượng trung gian Trong một nỗ lực nhằm dùng sự không chắc chắn của công chúng về bảo mật của SSL,
Microsoft cũng đã giới thiệu giao thức PCT (Private Communication Technology) cạnh tranh trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996
3 Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft bằng cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và thêm một số tính năng mới Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất cả các phiên bản phần mềm dựa vào TCP/IP của nó (mặc dù phiên bản riêng của nó vẫn hỗ trợ PCT cho sự tương thích ngược)
Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung ra chính thức vào tháng 3 năm
1996 Nó được thực thi trong tất cả các trình duyệt chính bao gồm ví dụ Microsoft
Trang 6Internet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản cao hơn), và Open Như được thảo luận ở phần sau trong chương này, SSL 3.0 đã được điều chỉnh bởi IETF TLS WG Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ SSL 3.0 Hai phần tiếp theo tập trung chỉ vào các giao thức SSL và TLS; giao thức PCT không được trình bầy thêm trong các bài viết sắp tới
Trang 7CẤU TRÚC CỦA SSL
1 Cấu trúc SSL
SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể hỗ trợ cho rất nhiều ứng dụng Giao thức SSL hoạt động bên trên TCP/IP và bên dưới các giao thức ứng dụng tầng cao hơn như là HTTP (Hyper Text Transport Protocol), IMAP ( Internet Messaging Access Protocol) và FTP (File Transport Protocol) Trong khi SSL có thể sử dụng để hỗ trợ các giao dịch an toàn cho rất nhiều ứng dụng khác nhau trên Internet, thì hiện nay SSL được sử dụng chính cho các giao dịch trên Web
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:
Xác thực server: Cho phép người sử dụng xác thực được server muốn kết nối Lúc
này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate và public ID của server là có giá trị và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client Điều này rất quan trọng đối với người dùng Ví dụ như khi gửi mã số credit card qua mạng thì người dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này có đúng là server mà họ định gửi đến không
Xác thực Client: Cho phép phía server xác thực được người sử dụng muốn kết
nối Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public ID của server có giá trị hay không và được cấp phát bởi một
CA (certificate authority) trong danh sách các CA đáng tin cậy của server không Điều này rất quan trọng đối với các nhà cung cấp Ví dụ như khi một ngân hàng định gửi các thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất muốn kiểm tra định danh của người nhận
Trang 8 Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được mã hoá
trên đường truyền nhằm nâng cao khả năng bảo mật Điều này rất quan trọng đối với cả hai bên khi có các giao dịch mang tính riêng tư Ngoài ra, tất cả các dữ liệu được gửi đi trên một kết nối SSL đã được mã hoá còn được bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu ( đó là các thuật toán băm – hash algorithm)
2 Các giao thức của SSL
Các giao thức con của SSL trong mô hình TCP/IP
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con được chia thành hai phần như sau:
Thành phần thứ nhất được gọi là record protocol, được đặt trên đỉnh của các giao thức lớp vận chuyển
Trang 9Nhiệm vụ của record protocol
Thành phần thứ hai đặt giữa các lớp giao thức tầng ứng dụng (như HTTP) và record protocol, bao gồm các giao thức:
o Handshake protocol
o Change-cipher-spec protocol
o Aleart protocol
Các giao thức ở thành phần thứ hai có nhiệm vụ là:
Handshake: thành lập các giải thuật mã hóa, giải thuật nén và các thông số được hai bên sử dụng trong trao đổi dữ liệu được mã hóa Sau đó các giao thức bản ghi (record protocol) chịu trách nhiệm phân chia thông điệp vào các khối, nén mỗi khối lại, chứng thực chúng, mã hóa chúng, thêm header vào mỗi khối và truyền đi các khối kết quả
Change-cipher-spec cho phép các bên giao tiếp có thể thay đổi các giải thuật hoặc các thông số trong một phiên truyền thông
Alert là một giao thức quản lý, nó thông báo cho các bên tham gia truyền thông khi có vấn đề xảy ra
Trang 10Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/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ức khác như IPSec (IP Security Protocol) Vì giao thức này đòi hỏi nhân hệ điều hà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 11PHƯƠNG THỨC HOẠT ĐỘNG
Điểm cơ bản của SSL là đượ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 (browser), 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, từ khoá chia sẻ tạm thời đượ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 chứng chỉ điện tử (digital certificate) dựa trên mật mã công khai (thí dụ RSA)
1 Nhận diện
Để client và server có thể nhận diện được nhau trong các phiên kết nối và bảo đảm rằng thông tin truyền đi đúng địa điểm, cần phải qua một bước nhận diện như sau:
Client truyền một “người đưa tin” đến địa chỉ công ty
Công ty có những phong bì mà một khi đã đóng lại, chỉ có công ty mới có thể mở Công ty sẽ cũng người đưa tin đến một người trung gian – người sẽ tạo ra nhận dạng của công ty Người trung gian này sẽ chứng thực cho sự an toàn của phong bì của công ty, sau đó người đưa tin mang phong bì này về cho client
Client khi nhận được phong bì này, (nếu) tin tưởng vào bên trung gian, hoàn toàn
có thể bảo đảm rằng đây là công ty mình yêu cầu
Client cũng có một phong bì an toàn mà khi đóng lại chỉ có client có thể mở client cho những phong bì này vào những phong bì của bên công ty, sau đó gửi lại cho công ty
Công ty sau khi nhận được phong bì, mở ra và từ đây có được phong bì an toàn của client
Trang 12 Công ty lại có một phong bì khác chỉ có thể được đóng hoặc mở bằng một sự kết hợp công ty cho cả khóa kết hợp và cả sự kết hợp đó vào phong bì của client rồi đóng phong bì lại
Công ty còn có một phong bì khác, có thể được mở bởi bất kỳ ai, nhưng chỉ có thể được đóng bởi chính công ty Khi client mở phong bì này, client có thể chắc chắn rằng nó được gửi từ công ty Công ty cho tất cả vào phong bì này và gửi đến client
Khi client nhận được phong bì, chắc chắn rằng đây chỉ có thể là từ công ty, từ trong này client có thể lấy ra khóa kết hợp và chìa mở
Client đưa dữ liệu vào phong bì khóa kết hợp, đóng lại và gửi đến công ty
Công ty nhận được, trả lời vào phong bì này và gửi lại
Quá trình này được lập đi lập lại nếu tiếp tục cần trao đổi
2 Các thuật toán mã hóa dùng trong SSL
Các thuật toán mã hoá (cryptographic algorithm hay còn gọi là cipher) là các hàm toán học được sử dụng để mã hoá và giải mã thông tin Giao thức SSL hỗ trợ rất nhiều các thuật toán mã hoá, được sử dụng để thực hiện các công việc trong quá trình xác thực server và client Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau tuỳ thuộc vào nhiều yếu tố như phiên bản SSL đang dùng, chính sách của công ty về độ dài khoá mà họ cảm thấy chấp nhận được - điều này liên quan đến mức độ bảo mật của thông tin, …
Các bộ mật mã được trình bày ở phần sau sẽ đề cập đến các thuật toán sau:
DES (Data Encryption Standard)là một thuật toán mã hoá có chiều dài khoá là 56
bit
3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá
trong mã hoá DES
Trang 13 DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực số đang
được được chính phủ Mỹ sử dụng
KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang được chính
phủ Mỹ sử dụng
MD5 (Message Digest algorithm) được phát thiển bởi Rivest
RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ
liệu được Rivest, Shamir, and Adleman phát triển
RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán
RSA
RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dùng cho RSA
Data Security
SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính phủ Mỹ
sử dụng
Đây là danh sách các bộ mã hoá được hỗ trợ trong SSL mà sử dụng thuật toán trao đổi khoá RSA và được liệt kê theo khả năng bảo mật từ mạnh đến yếu
Mạnh nhất
Thuật toán mã hoá 3- DES, thuật toán xác thực SHA-1
Mạnh
Thuật toán mã hoá RC4 (với độ dài khoá 128 bit), thuật toán xác thực MD5
Thuật toán mã hoá RC2 (với độ dài khoá 128 bit), thuật toán xác thực MD5
Thuật toán mã hoá DES (với độ dài khoá 56 bit), thuật toán xác thực SHA –1
Trang 14Tương đối mạnh
Thuật toán mã hoá RC4 (với độ dài khoá 40 bit), thuật toán xác thực MD5
Thuật toán mã hoá RC2 (với độ dài khoá 40 bit), thuật toán xác thực MD5
Yếu nhất
Không mã hoá thông tin, chi dùng thuật toán xác thực MD5
3 Hoạt động
Biểu đồ dưới đây sẽ chỉ ra một cách đơn giản với từng bước quá trình thiết lập kết nối SSL giữa máy khách (client – dùng một đường dẫn web browser) và máy chủ (server – dùng một SSL web server)
Trang 15- Phiên 1: chọn giải thuật mã hóa Các giải thuật được chọn có thể là RSA,
AES-128, 3-DES… Client sẽ khởi tạo một thông điệp client-hello
- Phiên 2: server xác thực và trao đổi khóa Server sẽ gửi cho client:
o Chứng chỉ khóa công khai của server
Trang 16o Thông tin trao đổi khóa của server
o Yêu cầu chứng chỉ khóa công khai của client
- Phiên 3: client xác nhận và trao đổi khóa Client trả lời cho server các thông tin:
o Chứng chỉ khóa công khai của client
o Thông tin trao đổi khóa công khai của client
- Phiên 4: hoàn thành việc “bắt tay” Server và client gửi cho nhau thông điệp finish 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 đều chấp nhận bộ mã hoá chung và các khoá mã hoá, thì dữ liệu ở tầng ứng dụng (thông thường dùng HTTP, nhưng cũng có thể là một giao thức khác) có thể đượ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 sự như trên
Trang 17ỨNG DỤNG
1 Ứng dụng trong Thương mại điện tử
Trong thực tiễn, sự hiểu biết của người sử dụng về cơ chế bảo mật được "sắp đặt" trong các giao dịch điện tử trên mạng Internet là ít ỏi và mờ Tất cả phần lớn dựa vào sự tin tưởng (trust), chẳng hạn tên tuổi của các hãng có uy tín (VisaCard, MasterCard, ) và sản phẩm có tính nǎng tốt của các hãng nổi tiếng (Oracle, Microsoft, Netscape, ) Bảo mật
và an toàn là vấn đề quan trọng trong việc quyết định sự phát triển mạnh mẽ thương mại điện tử hoặc hiện nay như chính phủ điện tử (e-government) và tạo lòng tin cho khách hàng và công chúng Qua phân tích ví dụ của bảo mật trong giao thức SSL, cho ta thấy mặt khác của vấn đề: khả nǎng lựa chọn công nghệ và mức độ phụ thuộc vào công nghệ, khi xây dựng các ứng dụng nền tảng trong đó có hạ tầng bảo mật thông tin Việc triển khai các hệ thống ứng dụng sử dụng hạ tầng truyền thông Internet đòi hỏi có độ bảo mật cao (đặc biệt trong ngân hàng, tài chính, quốc phòng ) cần phải được xây dựng dựa trên
sơ đồ gồm các lớp bảo mật nhiều tầng độc lập (thí dụ: giao thức Giao dịch điện tử bảo mật SET (Secure Electronic Transaction), Giao thức khoá Internet IKP (Internet Keyed Protocol) hoặc PGP (Pretty Good Privacy), thậm chí cả phần cứng, nhằm hạn chế tối đa các "lỗ hổng" bảo mật của hệ thống giao thương điện tử Ngoài ra cũng cần lưu ý các sản phẩm về bảo mật ứng dụng hiện nay trên mạng máy tính phần lớn được phát minh từ Mỹ, được bảo hộ và kiểm soát chặt chẽ bởi luật pháp Mỹ dẫn đến khi thực hành xây dựng và triển khai các hệ thống thông tin và giao dịch thương mại điện tử của chúng ta cần thận trọng và cân nhắc
2 Các loại giao thức bảo mật khác
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ừ sau phát minh SSL v1.0 ra đời , có ít nhất năm giao thức khác