Tải bản đầy đủ (.doc) (19 trang)

TIểu luận môn CHỨNG THỰC SỐ TÌM HIỂU VỀ SSL HAI CHIỀU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (265.96 KB, 19 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
2
MỤC LỤC
MỤC LỤC 2
3
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à:
4
1. Bảo đảm bạn đang kết nối với đúng người mình mong muốn.
2. 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.
5
LỊ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
6
Internet 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.
7
CẤ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.
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.
9
Nhiệ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.
Theo 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
10
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.
11
PHƯƠ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.
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
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
14
Tươ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)
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
o Thông tin trao đổi khóa của server
16
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.
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
18
hoặc ít hơn hoặc nhiề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)
PCT v1.0
Được phát triển bởi Microsoft vào năm 1995. PCT (Privacy Communication
Technology ) v1.0 địa chỉ hoá một số điểm yếu của SSL 2.0 và đặt ra mục tiêu là thay thế
SSL. Tuy nhiên giao thức này đã không bao giờ thu được kết quả phổ biến như là SSL
v3.0.
SSL v3.0
Được phát hành vào năm 1996 bởi Netscape Communications. SSL v3.0 giả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 củ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.
TLS v1.0 (được biết đến như là SSL v3.1)
Được đưa ra bởi IETF vào năm 1999 (RFC 2246). Giao thức này dựa trên SSL v3.0 và
PCT. Nó cân bằng cả hai cách thức của Netscape và Microsoft. Cũng cần chú ý rằng, mặc
19

dù TLS dựa trên SSL, nhưng nó không phải là phiên bản sau tương thích 100% với các
bản trước nó. Kết quả của những nâng cấp này là các giao thức không hoạt động được
một cách đầy đủ. Cuối cùng TLS cũng rơi vào lãng quên so với SSL v3.0.
WTLS
Phiên bản “di động và không dây” của giao thức TLS, sử dụng giao thức UDP như là một
hãng truyền thông. WTLS được thiết kế và tối ưu cho các băng thông thấp hơn, các tiến
trình nhỏ hơn với các thiết bị di động cho phép dùng WAP. WTLS đưa ra cùng giao thức
WAP 1.1 bởi WAP Forum. Tuy nhiên, sau khi giao thức WAP 2.0 được giới thiệu,
WTLS bị thay thế bởi một phiên bản nguyên trạng của TLS với mức an toàn cao hơn. Nó
không cần phải giải mã hay mã hoá lại lưu lượng tại cổng vào của WAP.
Nói tóm lại, mặc dù trong thực tế có nhiều giao thức “an toàn” nhưng ta chỉ nên dùng hai
giao thức giao dịch web (ít nhất tại thời điểm này) là: TLS v1.0 và SSL v3.0. Cả hai đều
được nhấn mạnh trong loạt bài này với cái tên đơn giản là SSL/TLS. Bởi những điểm yếu
kém đã được biết đến của SSL v2.0 và “lỗ hổng WAP” nổi tiếng của WTLS, chúng ta
nên tránh dùng các giao thức này, hoặc ít nhất là hạn chế ở mức thấp nhất.

×