Tải bản đầy đủ (.docx) (42 trang)

Triển khai giao thức SSL cho các dịch vụ mạng cơ bản

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 (1.18 MB, 42 trang )

Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Mục Lục
Danh mục các từ viết tắt 3
1
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Danh mục các từ viết tắt
SSL: Secure Socket Layer.
TCP : Transmission Control Protocol.
HTTP: Hypertext Transfer Protocol.
FTP : File Transfer Protocol.
POP: Point of presence.
SMTP : Simple Mail Transfer Protocol.
TLS : Transport Layer Security.
IIETF : Internet Engineering Task Force.
CA : Certificate authority.
PCT : Private Communication Technology
VPN : Virtual Private Network.
UUCP : Unix to Unix CoPy.
DNS : Domain Name Server.
MITM : Man in the Middle.
DES : Data Encryption Standard.
MAC : Medium access control.
2
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Danh mục các hình vẽ
3
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Lời mở đầu
Ngày nay mạng máy tính là một khái niệm trở nên quen thuộc với hầu hết tất cả
mọi người, đặc biệt chiếm vị trí hết sức quan trọng với các doanh nghiệp. Với xu thế phát
triển mạnh mẽ của hệ thống mạng như: mạng internet, hệ thống thương mại điện tử, hệ


thống thông tin trong các cơ quan, doanh nghiệp thì vấn đề bảo mật và an ninh mạng trở
nên hết sức cần thiết.
Bảo mật và mã hóa thông tin là một vấn đề quan trọng và có nhiều ứng dụng trong
đời sống xã hội. Ngày nay các ứng dụng mã hóa và bảo mật thông tin được sử dụng ngày
càng phổ biến hơn trong các lĩnh vực từ lĩnh vực an ninh, quân sự, quốc phòng đến các
lĩnh vực dân sự như thương mại điện tử, ngân hàng ….
Trong thời điểm hiện nay, khi mà mạng Internet chiếm một vai trò quan trọng thì sự
gian lận dữ liệu internet ngày càng tăng. Bạn luôn muốn mọi thông tin của bạn luôn
muốn được bảo vệ với mã hóa mạnh mẽ từ các nhà cung cấp bảo mật đáng tin cậy thực
hiện việc trao đổi thông tin nhạy cảm qua Internet.
Và Secure Sockets Layer (SSL) một tiêu chu^n an ninh công nghệ toàn cầu sẽ là
giải pháp mà bạn đang tìm kiếm. Việc sử dụng SSL sẽ cung cấp tính riêng tư và bảo mật
tốt hơn kết nối Internet không được mã hóa. Nó giảm nguy cơ bên thứ ba có thể chặn và
lạm dụng và khai thác thông tin. Chúng ta sẽ thấy an toàn, tin cậy hơn trong việc chia sẻ
thông tin thanh toán và thông tin cá nhân với các nhà cung cấp dịch vụ khi biết họ đang
sử dụng giao thức SSL.
4
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Chương 1: Tổng quan về giao thức SSL
1.1 Tìm hiểu SSL là gì ?
SSL (Secure Socket Layer) là giao thức để cung cấp dịch vụ bảo mật cho lưu lượng
dữ liệu trên kênh truyền, nó sử dụng tổ hợp nhiều giải thuật nhằm mã hóa để đảm bảo
quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một
cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP.
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua
rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên
đường truyền. Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát
nào đối với đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào
thông tin trên đường truyền. Để bảo vệ những thông tin mật trên mạng Internet hay bất
kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch

an toàn:
 Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết
nối. Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người
sử dụng.
 Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba. Để loại trừ
việc nghe trộm những thông tin “nhạy cảm” khi nó được truyền qua Internet, dữ
liệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoài
người gửi và người nhận.
 Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện chính
xác thông tin gốc gửi đến.
Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mật thông tin,
xác thực và toàn vẹn dữ liệu đến người dùng. SSL được tích hợp sẵn vào các browser và
Web server, cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn. Khi
Web browser sử dụng kết nối SSL tới server, biểu tượng ổ khóa sẽ xuất hiện trên thanh
trạng thái của cửa sổ browser và dòng “http” trong hộp nhập địa chỉ URL sẽ đổi thành
“https”. Một phiên giao dịch HTTPS sử dụng cổng 443 thay vì sử dụng cổng 80 như
dùng cho HTTP.
5
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
SSL được sử dụng phổ biến nhất trên Web, Mail, Ftp.
Giao thức SSL được phát triển bởi Netscape, ngày nay giao thức SSL được sử dụng
rộng rãi trên World Wide Web trong việc xác thực và mã hóa thông tin giữa client và
sever. Tổ chức IETF (Internet Engineering Task Force ) đã chu^n hóa SSL và đặt lại là
TLS (Transport Layer Security). Mặc dù là ó sự thay đổi về tên nhưng TLS chỉ là một
phiên bản mới của SSL. Phiên bản TLS 1.0 tương đương với phiên bản SSL 3.1. Tuy
nhiên SSL là thuật ngữ được sử dụng phổ biến hơn.
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). SSL được 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 và đang được sử
dụng chính cho các giao dịch trên Internet.
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
hóa để 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ã hóa 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.
 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ã hóa công khai để kiểm tra xem
Certificate và Public ID của server có giá tị hay không và được cấp phát bởi một
CA 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.
 Mã hóa kết nối: Tất cả các thông tin trao đổi giữa client và server được mã hóa
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ả 2 bên khi 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ã hóa 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.
6
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
1.2. Lịch sử của giao thức SSL.
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.
Nói chung, có một số khả năng để bảo vệ bằng mật mã lưu lượng dữ liệu HTTP. Ví
dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP mà về cơ bản là
một cải tiến bảo mật của HTTP. Một phần thực thi của S-HTTP đã làm cho có sẵn công
cộng trong một phiên bản được chỉnh sửa của trình duyệt Mosaic NCSA mà những người
dùng phải mua (trái với trình duyệt Mo NCSA "chu^n" có sẵn công cộng và miễn phí trên

Internet).
Tuy nhiên, cùng thời điểm 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
CommerceNet, 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à S-HTTP lặng lẽ biến mất.
Cho đến bây giờ, có ba phiên bản của SSL:
• 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.
• 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.
• SLL 3.0: 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).
7
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
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
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.
1.3. Lợi ích khi dùng giao thức SSL
• Xác thực website thiết lập kết nối an toàn các phiên giao dịch trên Internet.

• Nâng cao hình ảnh, thương hiệu và uy tín doanh nghiệp vì sự bảo mật và an toàn.
• Bảo mật các giao dịch giữa khách hàng và doanh nghiệp, các dịch vụ truy nhập hệ
thống
• Bảo mật webmail và các ứng dụng như Outlook Web Access, Exchange, và Office
Communication Server
• Bảo mật các ứng dụng ảo hóa như Citrix Delivery Platform hoặc các ứng dụng
điện toán đám mây;
• Bảo mật dịch vụ FTP;
• Bảo mật truy cập control panel;
• Bảo mật các dịch vụ truyền dữ liệu trong mạng nội bộ, file sharing, extranet;
• Bảo mật VPN Access Servers, Citrix Access Gateway …
Website không được xác thực và bảo mật sẽ luôn ^n chứa nguy cơ bị xâm nhập dữ
liệu, dẫn đến hậu quả khách hàng không tin tưởng sử dụng dịch vụ.
1.4. Một số dịch vụ mạng cơ bản
1.4.1 Dịch vụ HTTP
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn
bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách các
thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia
khác) được định dạng và truyền tải ra sao, và những hành động nào mà các Web server
(máy chủ Web) và các trình duyệt Web (browser) phải làm để đáp ứng các lệnh rất đa
dạng. Chẳng hạn, khi bạn gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP
sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu
và kéo về mở trên trình duyệt Web. Nói nôm na hơn, HTTP là giao thức truyền tải các
file từ một Web server vào một trình duyệt Web để người dùng có thể xem một trang
8
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Web đang hiện diện trên Internet.HTTP là một giao thức ứng dụng của bộ giao thức
TCP/IP (các giao thức nền tảng cho Internet)
1.4.2. Dịch vụ FTP
FTP viết tắt từ File Transfer Protocol, một giao thức truyền tải tập tin từ một máy

tính đến máy tính khác thông qua một mạng TCP hoặc qua mạng Internet. Thông qua
giao thức FTP, người dùng có thể tải dữ liệu như hình ảnh, văn bản, các tập tin media
(nhạc, video) từ máy tính của mình lên máy chủ đang đặt ở một nơi khác hoặc tải các
tập tin có trên máy chủ về máy tính cá nhân.
Giao thức FTP được sử dụng nhiều nhất vào mục đích truyền tải dữ liệu. Việc bộ
phận IT của công ty tạo tài khoản FTP cho bạn là để có thể gửi những dữ liệu dung lượng
lớn một cách nhanh chóng, vì không thể gửi qua email hay các phương thức sao chép vật
lý khác như CD hay USB flash. Khi sử dụng FTP được cấp, bạn có thể gửi các tập tin có
dung lượng vài trăm MB một cách dễ dàng, không cần phải lo lắng về việc người nhận
không nhận được file.
Hơn nữa, bạn có thể cùng lúc tải (upload/ download) nhiều tập tin cùng một lúc để
tiết kiệm thời gian. Tuy nhiên, yếu tố tốc độ đường truyền cũng đóng vai trò quan trọng
trong việc truyền tải dữ liệu qua FTP.
FTP cũng là giao thức dùng để truyền tải dữ liệu web lên máy chủ web.
1.4.3. Dịch vụ POP
POP (Post Office Protocol) POP là một giao thức Internet mail server phục vụ việc
lưu trữ các thông điệp được gởi đến hệ thống. Nó hoạt động kết hợp với giao thức SMTP
(Simple Mail Transfer Protocol: Giao thức truyền thư đơn giản), cung cấp các dịch vụ
vận chuyển tin nhắn, yêu cầu chuyển thư từ hệ thống nầy đến hệ thống khác. Tuy nhiên,
một giao thức mới được gọi là IMAP4 (Internet Mail Access Protocol, version 4: Giao
thức truy cập thư Internet, phiên bản 4) đang thay thế POP trong nhiều hệ thống cài đặt.
POP và SMTP được liên kết một cách chặt chẽ. Một mail server (server phục vụ thư
điện tử) phải chạy cả hai giao thức nếu nó dùng để nhận, lưu trữ hay gửi tiếp các thông
điệp. Công việc trao đổi các thông điệp được điều hành bởi giao thức SMTP. Các thông
điệp được dẫn đường từ mail server nầy đến mail server khác cho đến khi chúng đến
9
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
đích. Sau đó, SMTP sắp xếp các thông điệp vào POP server để nó đặt chúng vào một hộp
thư. Nếu POP server đích đang ở chế độ offline, thì POP server sau cùng nhận được
thông điệp sẽ giữ nó lại cho đến khi nó có thể được gửi tiếp đến POP server đích. Rồi

POP server đích đặt thư nầy trong hộp thư của người nhận để họ lấy xem.
Mô hình hộp thư tập trung dạng POP bảo đảm rằng người nhận có thể nhận thư của
họ ngay khi máy tính của họ không bật, bởi vì thư nầy được quản lý bởi POP server cho
đến khi nó được lấy ra. POP server theo dõi các người dùng để đảm bảo rằng chỉ có
người mà thư chỉ định gửi cho mới truy cập thư trong hộp thư. Địa chỉ e-mail và mật mã
của người dùng đủ để chứng minh nhận dạng của họ, mặc dù hiện nay đã có nhiều hệ
thống sử dụng các chứng nhận an toàn hơn.
Người dùng chạy trình nhận mail tương thích với giao thức SMTP để nối vào một
POP server và tải về thư từ các hộp thư của họ. Ngay khi người dùng nối kết vào, thư sẽ
được tải về ngay. POP không cho phép người dùng giữ một số thư của họ tại POP Server
để xem xét lại sau, có ích khi người dùng đang làm việc trên máy trạm của người khác.
Giao thức IMAP cho phép các người dùng tải về các thông điệp có chọn lọc và giữ chúng
ở trạng thái unread (chưa đọc) tại mail server để lúc khác đọc.
Các hệ thống mạng trong nhà có thể bao gồm một POP server đơn để tổ chức tất cả
các hộp thư của người dùng. Các tập đoàn lớn có thể có các POP server riêng cho mỗi
phòng hay khu vực. Internet là hệ thống mạng lớn nhất gồm rất nhiều POP server trên
toàn cầu. Những trường học, công ty, nhà cung cấp dịch vụ Internet (Internet Service
Provider) duy trì nối kết của các POP server với Internet để cho phép tất cả mọi người
trên khắp thế giới trao đổi thư từ với nhau. Ví dụ, một POP Server của ISP tổ chức hộp
thư cho khách hàng của ISP đó.
1.4.4. Dịch vụ SMTP
SMTP (Simple Mail Transfer Protocol - Giao thức truyền tải thư tín đơn giản) là
một chu^n truyền tải thư điện tử qua mạng Internet.
SMTP là một giao thức dùng nền văn bản và tương đối đơn giản. Trước khi một
thông điệp được gửi, người ta có thể định vị một hoặc nhiều địa chỉ nhận cho thông điệp,
những địa chỉ này thường được kiểm tra về sự tồn tại trung thực của chúng . Việc kiểm
10
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
thử một trình chủ SMTP là một việc tương đối dễ dàng, dùng chương trình ứng dụng
“Telnet”.

SMTP dùng cổng 25 của giao thức TCP. Để xác định trình chủ SMTP của một tên
miền nào đấy (domain name), người ta dùng một mẫu tin MX (Mail eXchange – Trao đổi
thư) của DNS (Domain Name System – Hệ thống tên miền).
SMTP bắt đầu được sử dụng rộng rãi vào những năm đầu thập niên kỷ 1980. Tại
thời điểm đó, SMTP chỉ là một phần mềm bổ sung của bộ trình ứng dụng đồng giao thức
UUCP (Unix to Unix CoPy – Sao chép từ máy Unix sang máy Unix) nhưng tiện lợi hơn
trong việc truyền tải thư điện tử giữa các máy vi tính – những máy này thỉnh thoảng mới
lại được kết nối với nhau một lần, để truyền thông dữ liệu. Thực ra, SMTP sẽ làm việc tốt
hơn nếu các máy gửi và máy nhận được kết nối liên tục.
SMTP là một nghi thức của Internet dùng để gửi thư. Khi dùng SMTP để gửi thư,
bạn thường phải dùng một chương trình Sendmail(Sendmail Deamon). Có thủ tục khác
gọi là QMail nhưng thường thường Sendmail vẫn phổ biến hơn cả mặc dù Sendmaili là
một nghi thức gửi thư rất ko an toàn.
Chương trình sendmail có cổng mặc định là 25, cổng này mở để đợi máy khách kết
nối vào để gửi thư. SMTP có thể bị kẻ xấu lợi dụng để dùng vào mục đích ko tốt vì
SMTP ko dùng hệ thống kiểm tra người dùng. Bạn chỉ cần kết nối vào server và đưa ra
địa chỉ nội dung thư là thư đó đựoc gửi đi ko cần biết bạn là ai. Hiện trên thế giới có rất
nhiều SMTP server.
Một số dịch vụ mạng dùng SSL sử dùng các số cổng chuyên dụng dành riêng được
quy định bởi IANA (Internet Asingned Numbers Authority).
11
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 1: Các dịch vụ sử dụng SSL.
Chương 2: Cấu trúc và cơ chế hoạt động của giao thức SSL
2.1 Cấu trúc của SSL
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
Giao thức SSL Handshake
Giao thức SSL Change Cipher Spec
Giao thức SSL Alert
SSL Record Layer

4 giao thức con này được phân làm 2 phần chính là:
Handshake protocols layer.
SSL record layer.
Vị trí của các giao thức trên, tương ứng với mô hình TCP/IP được minh hoạ theo
hình sau:
12
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 2: Giao thức 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 đặ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.
2.2 Các giao thức con trong giao thức SSL
Hình 3: Các giao thức con trong giao thức SSL.
Thực tế giao thức SSL không phải là một giao thức đơn mà là một bộ các giao thức.
13
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
2.2.1 Handshake Protocol
Handshake protocol là bộ giao thức SSL phức tạp nhất. giao thức này chịu trách
nhiệm thiết lập hoặc phục hồi lại các phiên làm việc an toàn chính vì vậy giao thức này
có các chức năng chính sau:
+ Authentication( thẩm định): Xác nhận server cho các client, các tùy chọn, xác
thực các client thông qua các giấy chứng nhận(certificates) bằng các public và private
keys.
- Giấy chứng nhận là một hình thức nhận dạng bằng kỹ thuật số được ban hành bởi
một tổ chức có th^m quyền cấp giấy chứng nhận(CA), nó chứa các thông tin nhận diện,
thời gian hiệu lực, một khóa công khai, một serial, và chữ ký kĩ thuật của nhà phát hành.
Hình 4: Server và client đăng ký giấy chứng nhận từ CA
- Với mục đích xác thực, Handshake protocols sử dụng giấy chứng nhận X.509 để

xác minh danh tính của các bên nắm giữ giấy chứng nhận, đồng thời Handshake
protocols sử dụng X.509 để thực hiện các việc sau:
• Tham gia vào quá trình băm dữ liệu.trong quá trình này thì private key do CA
cung cấp sẽ được các thuật toán băm sử dụng vào quá trình tạo ra giá trị băm
(MAC).
• Thiết lập độ dài của key 512 bit, 1024 bit hoặc hơn. Độ dài của key sẽ tác động
đến sự mã hóa dữ liệu, khi key có độ dài lớn thì việc mã hóa dữ liệu sẽ lâu hơn
nhưng bù là nó sẽ đảm bảo về khả năng bảo mật của dữ liệu và ngược lại. Các
thuật toán mã hóa của RSA hoặc DSA thường sử dụng key 512 bit, 1024 bit hoặc
2018 bit.
14
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 5: Quá trình tạo giấy chứng chỉ (X.509) .
- CA (Certificate authority) là một bên thứ ba đáng tin cậy. CA có thể xác nhận
danh tính của bên yêu cầu cấp giấy chứng nhận (thường là một user hoặc máy tính), và
sau đó cấp giấy chứng nhận, public keys cho bên yêu cầu, CA cũng gia hạn, thu hồi giấy
chứng nhận khi cần thiết. Hiện nay có nhiều tổ chức cung cấp giấy chứng nhận như là:
 StartCom,Cacert các tổ chức này chuyên cung cấp các giấy chứng nhận miễn phí.
 Đối với Verisign,Comodo,DigiCert,Entrust,GlobalSign… thì thu phí.
Chức năng xác thực sẽ thực hiện 2 phần chính đó là:
+ 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 client sẽ sử dụng các thuật toán công khai để chắc rằng giấy chứng
nhận(certificate) và public ID của server là có giá trị và được cấp phát bởi một CA 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 sử
dụng. Ví dụ như gửi mã số credit card qua mạng thì người dùng thực sự muốn kiểm tra
server nhận thông tin này có đúng là server mà họ định gửi đến hay không.
15
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 6: Client xác thực Server
+ Xác thực client: Cho phép phía server xác thực được người dùng muốn kết nối.

Phía server cũng sử dụng các kỹ thuật mã hóa 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 đáng tin cậy của
server không. Điều này rất quan trọng đối với nhà cung cấp. Ví dụ như 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 một khách hàng thì họ rất muốn
kiểm tra định danh của người nhận.
16
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 7: Server xác thực Client
+ Trong một kết nối logic được thiết lập giữa client và server và ngược lại thì các
tham số sau sẽ được thỏa thuận.
• Version: phiên bản SSL mà hai bên server và client đang dùng.
• Random: dữ liệu chứa một tem thời gian 32 bít và một số ngẫu nhiên dài 28 byte.
• Session ID: Định danh cho phiên làm việc của server và client.
• Peer certificate: chứng nhận X.509
• CipherSuite: danh sách các thuật toán mã hoá và phương pháp trao đổi khoá mà
phía client hỗ trợ.
• Premaster secret:Được tạo ra từ Cirtificate a Premaster Secret, và được mã hóa
bằng public key (trong cirtificate).Nó được dùng để tạo ra Master Secret, master
secret được dùng để tạo ra các session key mã hóa dữ liệu trong một phiên làm
việc của server và client.
• Server public key: key công khai của server, client dùng key này để mã hóa MAC
của client, server sẽ dùng private key của nó để giải mã nhằm xác thực dữ liệu
đến.
• Server private key: như đã nói ở trên key này dùng để giải mã MAC.
• Client public key: : key công khai của client, server dùng key này để mã hóa MAC
của server, client sẽ dùng private key của nó để giải mã nhằm xác thực dữ liệu
đến.
• Client private key: dùng để giải mã dữ liệu MAC để xác thực thông tin của server.
17
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản

• Server write key: là session key của server dùng để mã hóa dữ liệu, client sẽ dùng
key này để giải mã dữ liệu mà client gửi tới
• Server write key: là session key của server dùng để mã hóa dữ liệu, client sẽ dùng
key này để giải mã dữ liệu.
• Sequence number (số thứ tự): server và client quản lý một cách riêng rẽ, các số thứ
tự này để đánh số các thông điệp gửi và nhận cho mỗi kết nối.
2.2.2 Change CipherSpec Protocol
Đây là giao thức SSL đơn giản nhất. Nó chỉ chứa một thông điệp mang giá trị 1.
Mục đích duy nhất của thông điệp này là làm chuyển trạng thái của một phiên từ “đang
chờ” (pending) sang “bền vững” (fixed). Ví dụ khi 2 bên qui ước bộ giao thức nào sẽ sử
dụng. Cả client và server đều phải gửi thông điệp loại này cho bên đối tác, sau khi đã trao
đổi xong thì coi như hai bên đã đồng ý với nhau.
2.2.3 Alert Protocol
Alert Protocol được các bên sử dụng để mang các thông điệp của phiên liên quan tới
việc trao đổi dữ liệu và hoạt động của các giao thức. Mỗi thông điệp của giao thức này
gồm 2 byte. Byte thứ nhất chứa một trong hai giá trị là warning (1) và fatal (2) xác định
tính nghiêm trọng của thông điệp. Khi một trong 2 bên gửi thông điệp có giá trị bít đầu
tiên là fatal (2) thì phiên làm việc giữa 2 bên sẽ kết thúc ngay lập tức. Byte tiếp theo của
thông điệp chứa mã lỗi xảy ra trong phiên giao dịch SSL.
2.2.4 SSL Record Protocol
SSL Record Protocol sử dụng để trao đổi tất cả các kiểu dữ liệu trong một phiên bao
gồm các thông điệp, dữ liệu của các giao thức SSL khác và dữ liệu của ứng dụng.
SSL Record Protocol liên quan đến việc bảo mật và đảm bảo toàn vẹn dữ liệu. Mục
đích của SSL Record Protocol là thu nhận những thông điệp mà ứng dụng chu^n bị gửi,
phân mảnh dữ liệu cần truyền, đóng gói, bổ sung header tạo thành một đối tượng gọi là
bản ghi (record), bản ghi đó được mã hoá và có thể truyền bằng giao thức TCP.
Trong mô tả của RFC 2246 thì Record Layer có 4 chức năng sau:
 Tập hợp những mảng dữ liệu từ ứng dụng thành các khối để quản lý (và tập hợp
lại các dữ liệu đến chuyển đến lớp ứng dụng).
 Nén và giải nén dữ liệu chuyển đến.

18
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
 Sử dụng Message Authentication Code (MAC) để xác minh dữ liệu đến.
 Mã hoá dữ liệu băm và giải mã dữ liệu đến.
2.3 Các thuật toán mã hóa
Tất cả các thông tin trao đổi giữa client và server sẽ được mã hóa 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ó 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).
SSL hỗ trợ nhiều thuật toán mã hoá. 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á thông tin.
SSL áp dụng các thuật toán này để thực hiện chứng thực server và client, truyền tải các
certifitaces và thiết lập các khoá của từng phiên giao dịch (sesion key). 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ác tổ chức về độ dài khoá mà họ cảm thấy an
toàn, điều này liên quan đến mức độ bảo mật của thông tin
Các thuật toán mã hoá và xác thực của SSL được sử dụng bao gồm nhiều loại tuỳ
theo phiên bản SSL hỗ trợ nhưng chung quy chúng thuộc 2 kiểu mã hoá:
2.3.1 Kiểu mã hóa đối xứng
Phương pháp mã hoá đối xứng là phương pháp dùng khoá riêng, nghĩa là cả bên gửi
và bên nhận phải biết cùng một khóa. Vấn đề chính trong phương pháp này là bên gửi và
bên nhận phải trao đổi khóa một cách an toàn.
Ví dụ:Khi người dùng A có thông tin quan trọng muốn gửi cho người dùng B có nội
dung là “tài khoản ngân hàng là son 15345” chẳng hạn và A muốn mã hoá dữ liệu trước
khi gửi cho B, thì A sẽ sử dụng khoá ví dụ là “key 1” chẳng hạn và tiến hành mã hoá nó
thành chuỗi “jgsdfsljfdfjdeue”.
Khi đó B nhận được thông tin từ A gửi cho và dùng chính khoá là “key 1” để giải
mã thông tin mã hoá đó thành dữ liệu có ý nghĩa mà A đã gửi cho.
19

Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 8: Qúa trình sử dụng key đối xứng.
• Các thuật toán thường sử dụng của kiểu mã hóa đối xứng :
 DES - Data Encryption Standard : DES là kỹ thuật bảo mật khóa riêng dùng
thuật toán để mã hóa theo từng khối 64-bit với khóa 56-bit. Thuật toán nầy được giải
thích trong mục “Cryptography”. Khóa 56-bit cho phép khoảng một triệu mũ 4 tổ hợp
khác nhau. Ngoài ra, mỗi khối trong dòng dữ liệu được mã hóa bằng các biến dạng khóa
khác nhau, làm khó phát hiện sơ đồ mã hóa trong các thông điệp dài.
- DES có 3 giai đoạn :
Hình 9: Các giai đoạn của DES.
20
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
 Giai đoạn 1: Hoán vị 64 bit trong một khối
 Giai đoạn 2: ứng dụng đưa ra thao tác 16 vòng trong 64 bit
 Giai đoạn 3 : Hoán vị 64 bit sử dụng nghịch đảo của hoán vị gốc.
 Triple-DES là thuật toán mã hoá DES ba lần.
 SKIPJACK là 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ỹ
2.3.2 Kiểu mã hóa bất đối xứng
Theo phương pháp này thì , mỗi người có một cặp khóa, một khóa bí mật và một
khóa công khai. Bên gởi mã hóa thông điệp bằng khóa công khai của bên nhận và thông
điệp nầy chỉ được giải mã bởi khóa bí mật của bên nhận. Như vậy vấn đề trao đổi khóa
được giải quyết vì các khóa được thông báo công khai.
• Thuật toán mã hóa bất đối xứng.
Người ta chứng minh rằng luôn tồn tại 2 số P, Q với P# :
+Lấy hai số, p và q, nhân chúng n=pq; n được gọi là môđun.
+Chọn một số e nhỏ hơn n, e và (p-1)(q-1) không có ước số công cộng nào khác
ngoài 1.
+ Tìm một số khác d, mà (ed-1) là ước số của (p-1)(q-1). Giá trị e và d được gọi là
số mũ chung và số mũ riêng. d = e

-1
mod ((p-1)*(q-1)).
+ Khóa công cộng là cặp (n,e).
+ Khóa riêng là (n,d).
+ Mã hoá c=m
e
mod n.
+ Giả mã m=c
d
mod n.
- Ví dụ :
+ Chọn p=7 và q=11, n=7*11=77
+ (p-1)*(q-1)= 6*10=60, e=13
+ d =13
-1
mod 60 ->13*d mod 60 = 1 mod 60, d = 37
Giả sử số gửi vào m = 7 hế thống mã hoá thành : c = 7
13
mod 77 =35 giải mã m= 35
37
mod 77 =7
21
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Minh họa: Khi mã hoá dữ liệu với P người ta đem kết quả thu được giải mã với Q
sẽ thu được dữ liệu ban đầu và ngược lại.
Hình 10: Quá trình sử dụng key bất đối xứng.
Với quy trình này thì mỗi người dùng sử dụng công nghệ mã hoá chỉ cần 2 khoá mà
thôi. Ở đây người dùng A sẽ sử dụng công nghệ mã hoá nên A sẽ có:
+Khoá P(A) gọi là public key khoá này là công khai và mọi người dùng khác đều
biết và có thể sử dụng khoá này.

+Khoá Q(A) gọi là private key khoá này là khoá bí mật chỉ có A mới biết.
+Tương tự đối với B.
Vì vậy khi A gửi gói tin Data tới B nó sẽ sử dụng P(B) của B để mã hoá và cho ra
kết quả Data’.
Khi B thu được ‘Data’ nó dùng private key của mình (Q(B)) để giải mã dữ liệu và
thu được Data ban đầu.
Hình 11: Quá trình sử dụng key bất đối xứng giữa người dùng A và B
• Các thuật toán thường sử dụng trong kiểu mã hóa bất đối xứng :
 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ỹ.
 RSA key exchange - thuật toán trao đổi khoá cho SSL dựa trên thuật toán RSA.
22
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
 MD5 - thuật toán tạo giá trị “băm” (message digest), phát minh bởi Rivest.
 RSA key exchange - thuật toán trao đổi khoá cho SSL dựa trên thuật toán RSA.
SSL sử dụng kết hợp 2 loại mã hóa đối xứng và không đối xứng, mã hóa đối xứng
dùng để mã hóa số lượng lớn dữ liệu truyền đi vì nhanh hơn trong khi đó mã hóa không
đối xứng dùng để chứng thực và trao đổi khóa.
2.3.3 Hash Algorithms ( Băm dữ liệu)
Thuật toán băm là một thuật ngữ bảo mật dùng để chỉ khả năng tóm tắt bất cứ dữ
liệu nào thành một chuỗi các ký tự có độ dài cố định.Chuỗi kết quả này gọi là thông diệp
tóm lược(message digest) hay là vân tay số(digital fingerprint) , vì vậy kích thước của kết
quả sau khi băm sẽ nhỏ hơn dữ liệu ban đầu.
Hash(băm) tương tự như dấu vân tay, một dấu vân tay là duy nhất của một cá nhân,
và tất nhiên là nhỏ hơn 1 con người.
Hashing được sử dụng để xác thực và thiết lập toàn vẹn dữ liệu trong quá trình
truyền dữ liệu. Hai thuật toán băm phổ biến là Message Digest 5(MD5) và thuật toán
hash tiêu chu^n 1(SHA-1). MD5 tạo ra một giá trị băm 128- bit và SHA-1 tạo ra một giá
trị 160-bit.
23
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản

2.4 Cơ chế hoạt động của giao thức SSL
24
Nhóm 4 Triển khai giao thức SSL cho các dịch vụ mạng cơ bản
Hình 12: Cơ chế hoạt động của SSL.
Giao thức SSL sử dụng kết hợp 2 loại mã hóa đối xứng và công khai. Sử dụng mã
hóa đối xứng nhanh hơn rất nhiều so với mã hóa công khai khi truyền dữ liệu, nhưng mã
hóa công khai lại là giải pháp tốt nhất trong quá trình xác thực. Một phiên làm việc của
SSL thường bắt đầu bởi quá trình “bắt tay” giữa hai bên (SSl handshake. Các bước trong
quá trình “bắt tay” được tóm tắc như sau:
 B1:Client sẽ gửi cho server số phiên bản SSL đang dùng, các tham số của thuật
toán mã hoá, dữ liệu ra ngẫu được tạo nhiên (đó chính là digital signature) và một
số thông tin khác mà server cần để thiết lập kết nối với client.
 B2: Server gửi cho client số phiên bản SSL đang dùng, các tham số của thuật toán
mã hoá, dữ liệu được tạo ra ngẫu nhiên và một số thông tin khác mà client cần để
thiết lập kết nối với server. Ngoài ra server cũng gửi certificate của nó đến client,
và yêu cầu certificate của client nếu cần
 B3: Client sử dụng một số thông tin mà server gửi đến để xác thực server. Nếu
như server không được xác thực thì người sử dụng sẽ được cảnh báo và kết nối
25

×