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 TCPIP 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:
Trang 1Mục Lục
Danh mục các từ viết tắt 3
Danh mục các hình vẽ 4
Lời mở đầu 5
Chương 1: Tổng quan về giao thức SSL 6
1.1 Tìm hiểu SSL là gì ? 6
1.2 Lịch sử của giao thức SSL 8
1.3 Lợi ích khi dùng giao thức SSL 9
1.4 Một số dịch vụ mạng cơ bản 9
1.4.1 Dịch vụ HTTP 9
1.4.2 Dịch vụ FTP 10
1.4.3 Dịch vụ POP 10
1.4.4 Dịch vụ SMTP 12
Chương 2: Cấu trúc và cơ chế hoạt động của giao thức SSL 13
2.1 Cấu trúc của SSL 13
2.2 Các giao thức con trong giao thức SSL 14
2.2.1 Handshake Protocol 15
2.2.2 Change CipherSpec Protocol 19
2.2.3 Alert Protocol 19
2.2.4 SSL Record Protocol 19
2.3 Các thuật toán mã hóa 20
2.3.1 Kiểu mã hóa đối xứng 20
2.3.2 Kiểu mã hóa bất đối xứng 22
2.3.3 Hash Algorithms ( Băm dữ liệu) 24
2.4 Cơ chế hoạt động của giao thức SSL 25
Chương 3: Các phương thức tấn công và cách phòng chống trong SSL 28
Trang 23.1 Các phương thức tấn công 28
3.1.1 Tấn công Man in the Middle.(MITM) – Tấn công giả mạo SSL 28
3.1.2 Tham khảo cách tấn công SSL bằng công cụ SSLStrip 30
3.1.3 Minh họa một kết nối an toàn và không an toàn 33
3.2 Các cách phòng chống 41
Chương 4: Demo 42
4.1 Triển khai giao thức SSL cho dịch vụ HTTP 42
4.2 Triển khai giao thức SSL cho dịch vụ SMTP và POP3 trên Exchange Server 2007 42
4.3 Triển khai giao thức SSL cho dịch vụ FTP 42
Tài liệu tham khảo 43
Phân công nhiệm vụ: 43
Trang 3Danh 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
Trang 4Danh mục các hình vẽ
Hình 1: Các dịch vụ sử dụng SSL 13
Hình 2: Giao thức SSL trong mô hình TCP/IP 14
Hình 3: Các giao thức con trong giao thức SSL 14
Hình 4: Server và client đăng ký giấy chứng nhận từ CA 15
Hình 5: Quá trình tạo giấy chứng chỉ (X.509) 16
Hình 6: Client xác thực Server 17
Hình 7: Server xác thực Client 18
Hình 8: Qúa trình sử dụng key đối xứng 21
Hình 9: Các giai đoạn của DES 21
Hình 10: Quá trình sử dụng key bất đối xứng 23
Hình 11: Quá trình sử dụng key bất đối xứng giữa người dùng A và B 23
Hình 12: Cơ chế hoạt động của SSL 26
Hình 13: Giao thức HTTPS thường dùng 28
Hình 14: Qúa trình Connect từ Web Browser đến Web Server 29
Hình 15: Tấn công giả mạo Certificate 30
Hinh 16: Mô tả tấn công SSL bằng SSLStrip (1) 31
Hinh 17: Mô tả tấn công SSL bằng SSLStrip (2) 32
Hinh 18: Mô tả tấn công SSL bằng SSLStrip (3) 32
Hinh 19: Mô tả tấn công SSL bằng SSLStrip (4) 33
Hình 20: Xem trang web có dùng SSL hay không 41
Hình 21: Nhận dạng tính bảo mật trang web dùng SSL 42
Trang 5Lờ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áttriể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àycà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áclĩ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ônmuố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ựchiệ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ậttố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
Trang 6Chươ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áchtrong 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 quarấ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átnà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àothô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 antoà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àingườ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ínhxá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 KhiWeb 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 thanhtrạ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
Trang 7“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.
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ụngrộ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ộtphiê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 Tuynhiê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ợ chorấ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 ( InternetMessaging 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ẩnhó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úcnày, phía browser sử dụng các kỹ thuật mã hóa công khai để chắc chắn rằngcertificate 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àyrấ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 xemCertificate 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 quantrọ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óatrê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 đốivớ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
Trang 8gử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ự độngphát hiện các xáo trộn, thay đổi trong dữ liệu.
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 (LayerTransport) 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ênWeb: đó 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ôngcộ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ườidù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ênInternet)
Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và một giaothức tương ứng với phiên bản đầu tiên của Netscape Navigator, Trái với tập đoànCommerceNet, 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 để cungcấ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 trunggian 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ảomật của SSL, Microsoft cũng đã giới thiệu giao thức PCT (Private CommunicationTechnology) cạnh tranh trong lần tung ra Internet Explorer đầu tiên của nó vàonăm 1996
SLL 3.0: Netscape Communications đã phản ứng lại sự thách thức PCT củaMicrosoft 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 ý
Trang 9hỗ 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 3năm 1996 Nó được thực thi trong tất cả các trình duyệt chính bao gồm ví dụ MicrosoftInternet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiênbả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ẫnxuấ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à OfficeCommunication 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ănbản) Nó là giao thức cơ bản mà World Wide Web sử dụng HTTP xác định cách cácthông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia
Trang 10khá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 đadạ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ácfile từ một Web server vào một trình duyệt Web để người dùng có thể xem một trangWeb đ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áytính đến máy tính khác thông qua một mạng TCP hoặc qua mạng Internet Thông quagiao 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áctậ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ượnglớ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ậnkhô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ọngtrong 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ệclư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ụ
Trang 11vậ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: Giaothứ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đí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ộpthư Nếu POP server đích đang ở chế độ offline, thì POP server sau cùng nhận đượcthông điệp sẽ giữ nó lại cho đến khi nó có thể được gửi tiếp đến POP server đích RồiPOP 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ộtPOP 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ỗiphò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êntoàn cầu Những trường học, công ty, nhà cung cấp dịch vụ Internet (Internet ServiceProvider) duy trì nối kết của các POP server với Internet để cho phép tất cả mọi ngườitrê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ộpthư cho khách hàng của ISP đó
Trang 12SMTP dùng cổng 25 của giao thức TCP Để xác định trình chủ SMTP của một tênmiền nào đấy (domain name), người ta dùng một mẫu tin MX (Mail eXchange – Trao đổithư) 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ạithờ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ứcUUCP (Unix to Unix CoPy – Sao chép từ máy Unix sang máy Unix) nhưng tiện lợi hơntrong 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ớilạ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ốthơ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ácgọ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ếtnố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ấtnhiề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 đượcquy định bởi IANA (Internet Asingned Numbers Authority)
Trang 134 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ạ theohình sau:
Trang 14Hình 2: Giao thức SSL trong mô hình TCP/IPTheo 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ôngcầ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ì giaothứ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
Trang 152.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áchnhiệ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à privatekeys
- 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ởimộ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 Handshakeprotocols 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 CAcung 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ơnnhư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ácthuậ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
Trang 16Hì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 danhtí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ứngnhậ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ứngnhận(certificate) và public ID của server là có giá trị và được cấp phát bởi một CA trongdanh 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 traserver nhận thông tin này có đúng là server mà họ định gửi đến hay không
Trang 17Hì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ủaserver 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ốnkiểm tra định danh của người nhận
Trang 18Hì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áctham 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
Server public key: key công khai của server, client dùng key này để mã hóa MACcủ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
Trang 19 Client public key: : key công khai của client, server dùng key này để mã hóa MACcủ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
Server write key: là session key của server dùng để mã hóa dữ liệu, client sẽ dùngkey 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ùngkey 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ừ “đangchờ” (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ớiviệ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àygồm 2 byte Byte thứ nhất chứa một trong hai giá trị là warning (1) và fatal (2) xác địnhtí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 đầutiê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ủathông điệp chứa mã lỗi xảy ra trong phiên giao dịch SSL
Trang 20phâ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ợplạ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
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ềnnhằ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ó giaodị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á (cryptographicalgorithm 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áccertifitaces 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 antoà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
Trang 21Ví 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ộidung 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ướckhi 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
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ảithích trong mục “Cryptography” Khóa 56-bit cho phép khoảng một triệu mũ 4 tổ hợpkhá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óakhá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