SSL Handshake

Một phần của tài liệu Bảo mật dịch vụ hệ thống mạng máy tính (Trang 77)

Giao thức SSL sử dụng kết hợp hai phƣơng thức mó húa dựng public-key và mó húa đối xứng (dựng secret key). Do ƣu điểm của phƣơng thức mó húa đối xứng là hoạt động nhanh hơn so với phƣơng thức mó húa phi đối xứng, nhƣng phƣơng thức mó húa phi đối xứng lại cú tớnh an toàn cao hơn. Do vậy giao thức SSL đó đƣợc thiết kế để tận dụng cỏc ƣu điểm của 2 phƣơng thức mó húa này.

Một phiờn làm việc SSL luụn bắt đầu bằng việc trao đổi một message gọi là SSL handshake. Handshake cho phộp thực hiện quỏ trỡnh Authentication Server và Authentication Client; sau khi đó xỏc thực tớnh đỳng đắn của Server và Client, SSL handshake thực hiện việc tạo một khúa đối xứng (secret key) sau đú mọi kết nối SSL đều đƣợc mó húa và giải mó bằng khúa này (để tăng tốc độ thực hiện việc mó húa và giải mó dữ liệu – dựng phƣơng thức mó húa đối xứng). Ngoài ra cũn cú một lựa chọn là SSL handshake cũn cho phộp kiểm tra tớnh xỏc thực phớa Client.

Quỏ trỡnh thực hiện của giao thức SSL handshake cú thể đƣợc mụ tả túm tắt nhƣ sau:

 Client gửi tới Server số version của giao thức SSL mà nú hỗ trợ; và những thụng tin khỏc nhƣ cỏc thụng số cấu hỡnh của cỏc cipher, chiều dài khúa... để server cú thể thực hiện kết nối với Client sử dụng SSL

 Sau đú Server cũng gửi cỏc tham số đú trở lại Client để Client cú thể thực hiện một kết nối với Server sử dụng SSL; đồng thời Server cũn gửi tới Client certificate của chớnh nú, và nếu ở phớa server cú cấu hỡnh là kiểm tra tớnh xỏc thực của client (Authentication Client) thỡ nú gửi một request tới Client về cung cấp certificate của Client tới Server.

 Client sử dụng cỏc thụng tin từ Server gửi đến để kiểm tra tớnh xỏc thực của Server (bằng quỏ trỡnh Server Authentication - đƣợc mụ tả ở phần sau). Nếu certificate của server khụng hợp lệ, ngƣời sử dụng sẽ đƣợc cảnh bỏo và thụng bỏo rằng một phiờn làm việc cú bảo mật khụng đƣợc thiết lập. Nếu quỏ trỡnh xỏc thực thành cụng, quỏ trỡnh sẽ diễn ra nhƣ sau:  Client sử dụng cỏc dữ liệu từ bƣớc 1 ( gồm cỏc thụng tin từ server nhƣ cipher mà server đú hỗ trợ) để tạo một khúa gọi là premaster cho phiờn làm việc đú; mó húa khúa này bằng public key của server (cú đƣợc vỡ nú đó cú certificate của server) và gửi khúa premaster tới server

 Nếu server yờu cầu kiểm tra tớnh xỏc thực của Client (chỳ ý rằng đầy chủ là một option trong quỏ trỡnh handshake), Client cũn thực hiện việc ký vào phần thụng tin mà nú gửi đến server để đảm bảo rằng quỏ trỡnh handshake này là duy nhất (khụng thể bị giả mạo bởi một ngƣời nào khỏc). Do vậy trong trƣờng hợp này thụng tin gửi từ Client tới Server bao gồm:

Certificate của Client

Premaster key đó đƣợc mó húa bằng public key của Server

 Nếu server yờu cầu kiểm tra tớnh xỏc thực của Client, server sẽ thực hiện việc xỏc thực Client (thụng qua quỏ trỡnh Authentication Client – sẽ đƣợc mụ tả ở phần sau). Nếu Client khụng hợp lệ, phiờn làm việc sẽ bị hủy bỏ. Nếu Client đƣợc kiểm tra là hợp lệ, server sẽ sử dụng private key của nú để mó giải mó khúa premaster, thực hiện cỏc bƣớc tiếp theo (kết hợp với quỏ trỡnh thực hiện phớa Client) để tạo khúa master.

 Cả Client và Server sẽ đều sử dụng master key để tạo một session key; khúa session là một khúa đối xứng sử dụng để mó húa và giải mó trong cả phiờn làm việc SSL và để xỏc nhận tớnh toàn vẹn dữ liệu, kiểm tra dữ liệu cú bị thay đổi hay khụng giữa thời gian dữ liệu đó đƣợc gửi và thời gian nhận dữ liệu qua một kết nối SSL

 Client gửi một message tới server thụng bỏo cỏc message mà nú sắp gửi từ client sẽ đƣợc mó húa bằng session key. Và sau nú Client gửi một thụng bỏo xỏc nhận rằng quỏ trỡnh handshake đó kết thỳc.

 Server gửi một message tới server thụng bỏo cỏc message mà nú sắp gửi từ client sẽ đƣợc mó húa bằng session key. Và sau nú Server gửi một thụng bỏo xỏc nhận rằng quỏ trỡnh handshake đó kết thỳc.

 Quỏ trỡnh handshake kết thỳc; phiờn làm việc SSL bắt đầu. Client và Server sử dụng session key để mó húa và giải mó dữ liệu và kiểm tra tớnh toàn vẹn của dữ liệu đú

Một chỳ ý quan trọng trong quỏ trỡnh handshake là việc kiểm tra tớnh xỏc thực của Client và Server đƣợc thực hiện thụng qua việc sử dụng một cặp khúa private- public key của một thực thể nhất định.

Trong trƣơng hợp xỏc thực phớa server, Client mó húa premaster secret bằng public key của server. Chỉ với một khúa private key tƣơng ứng mới cú thể giải mó đỳng đƣợc premaster key, do vậy client đảm bảo chắc chắn rằng public key của server gửi tới đỳng là của server mà nú đó kết nối tới. Trong trƣờng hợp server khụng thể giải mó premaster key và khụng tạo một key đối xứng tƣơng ứng cho phiờn làm việc đú, thỡ phiờn làm việc sẽ bị hủy bỏ.

đƣợc gửi tới Server (qua Certificate của Client) sẽ đỳng đắn nếu nhƣ nú cú thể giải mó đƣợc message đó đƣợc ký bằng private key tƣơng ứng.

3.2.4. Quỏ trỡnh kiểm tra tớnh xỏc thực của Server đƣợc mụ tả nhƣ sau:

Một quỏ trỡnh kiểm tra tớnh xỏc thực của một Server sẽ chỉ thành cụng nếu nhƣ Client nhận đƣợc 4 cõu trả lời "đỳng" nhƣ sau:

Hỡnh 22 - Quỏ trỡnh kiểm tra xỏc thực ở phớa Server

Quỏ trỡnh kiểm tra tớnh xỏc thực của Server cũn đảm bảo khụng thể cú hiện tƣợng giả mạo giữa Client và Server. Client sẽ thực hiện những cụng việc sau:

 Certificate của Server cũn giỏ trị hay khụng? Client sẽ thực hiện việc kiểm tra tớnh hợp lệ về thời gian của Certificate gửi từ Server. Nếu thời gian đó hết hạn, phiờn làm việc sẽ bị kết thỳc.

 Kiểm tra CA ký vào Certificate của Server cú phải là CA mà Client tin cậy hay khụng? Mỗi phần mềm hỗ trợ SSL cú một danh sỏch cỏc CA mà nú tin cậy. Vớ dụ nhƣ trong hỡnh trờn, Client tin cậy một CA nú gồm cỏc thụng tin: DN của CA, public key của CA và chữ ký của CA. Nếu trƣờng DN của Certificate Server trựng với trƣờng DN của của Certifcate của CA thỡ cõu trả là đỳng là CA mà nú tin cậy

đó tỡm ra ở bƣớc 2 để kiểm tra kiểm tra tớnh hợp lệ của chữ ký đó đƣợc ký trong Certificate Server. Nếu thụng tin trong Certificate Server bị thay đổi sau khi nú đƣợc ký bởi CA hay nếu public key của Certificate khụng đỏp ứng tƣơng ứng với private key đó sử dụng để ký vào certificate của Server. Nếu chữ ký của CA là hợp lệ, quỏ trỡnh sẽ tiếp tục diễn ra nhƣ sau

 Kiểm tra domain name trong certificate server cú phự hợp với domain name của chớnh server đú hay khụng. Bƣớc này thực hiện việc kiểm server cú thật sự là cựng một địa chỉ mạng hay khụng đƣợc xỏc định bằng trƣờng domain name trong Certificate. Chỳ ý rằng bƣớc kiểm tra này khụng phải là một chuẩn của giao thức SSL, nú chỉ hỗ trợ việc bảo vệ trong những trƣờng hợp mà kẻ tấn cụng mạng đứng ở vị trớ giữa Server và Client (kẻ tấn cụng đú cú thể down server và thay thế cỏc Certificate của Server). Clients phải thực hiện bƣớc này và cú thể từ chối tiếp tục thực hiện kiểm tra tớnh hợp lệ của server nếu quỏ trỡnh này khụng thành cụng.

 Server đó đƣợc xỏc thực. Client tiếp tục quỏ trỡnh thực hiện giao thức SSL. Nếu Client khụng đến đƣợc bƣớc 5 thỡ việc xỏc thực server bởi Certificate khụng đƣợc đỳng đắn, và Client sẽ đƣợc thụng bỏo là phiờn làm việc cú hỗ trợ bảo mật khụng đƣợc thực hiện. Nếu Server yờu cầu quỏ trỡnh kiểm tra tớnh xỏc thực Client, quỏ trỡnh thực hiện ở phớa Server sẽ diễn ra nhƣ sau:

3.2.5. Quỏ trỡnh kiểm tra tớnh xỏc thực ở phớa Client:

Khi một server đƣợc cấu hỡnh yờu cầu kiểm tra xỏc thực Client ; Client gửi tới Server gồm Certificate và dữ liệu riờng biệt đó đƣợc ký để kiểm tra tớnh xỏc thực của nú. Server sử dụng phần dữ liệu này để xỏc thực public key trong certificate và để xỏc thực rằng đối tƣợng đú sở hữu certificate đú

Giao thức SSL yờu cầu client tạo một chữ ký điện tử bằng việc dựng phƣơng phỏp mó húa hashing để tạo một message digest từ một dữ liệu ngẫu nhiờn mà chỉ cú Server và Client biết trong quỏ trỡnh thực hiện handshake. Thuật toỏn hash sẽ thực hiện tạo một message digest và mó húa message digest đú bằng private key của nú; private key này tƣơng ứng với public-key trong certificate từ client gửi đến server.

Để kiểm tra tớnh đỳng đắn của một Client, Server phải nhận đƣợc 4 cõu trả lời đỳng nhƣ sau:

 Kiểm tra public key của ngƣời sử dụng cú hợp lệ với chữ ký của ngƣời đú hay khụng? Server kiểm tra chữ ký của ngƣời đú cú hợp lệ với public key trong certificate của client hay khụng. Nếu xỏc nhận đỳng, server sẽ xỏc nhận rằng certificate đú thuộc về ngƣời cú private key tƣơng ứng (private key này đƣợc dựng để ký vào dữ liệu ngẫu nhiờn và kiểm tra đƣợc tớnh toàn vẹn của dữ liệu khụng bị thay đổi). Tuy nhiờn ở bƣớc này, việc kết hợp giữa public key và trƣờng DN trong certificate chƣa đƣợc thực hiện. Quỏ trỡnh này đƣợc thực hiện ở bƣớc 3 và 4. (adsbygoogle = window.adsbygoogle || []).push({});

 Kiểm tra Certificate của Client cú cũn giỏ trị hay khụng? Server kiểm tra xem Certificate đú cũn thời hạn hay khụng. Nếu thời gian hiện tại vƣợt quỏ thời gian trong certificate, quỏ trỡnh xỏc thực khụng đƣợc tiếp tục tiến hành. Nếu hợp lệ sẽ tiếp tục bƣớc 3

 Certificate của Client cú đỳng là đƣợc cấp phỏt từ CA mà Server tin cậy hay khụng? Giống nhƣ quỏ trỡnh ở Client; trong mỗi phần mềm Server cú hỗ trợ SSL cú một danh sỏch cỏc CA mà Server tin cậy. Dựa vào danh sỏch Server sẽ kiểm tra certificate của Client cú đƣợc cấp phỏt từ CA mà nú tin cậy hay khụng. Nếu trƣờng DN của Certificate đú trựng với trƣờng DN của CA tin cậy, nếu trựng tiếp tục với bƣớc 4.

 Kiểm tra public key của CA tƣơng ứng với chữ ký của CA cấp phỏt Certificate của Client. Server sử dụng public key từ certificate của CA để xỏc nhận tớnh hợp lệ của chữ ký của CA trong Certificate của Client. Nếu thụng tin trong Certificate bị thay đổi kể từ khi ký bởi CA hay public key của CA bị thay đổi, nú sẽ khụng đỏp ứng đỳng đắn private key đó sử dụng để ký certificate của client, server sẽ khụng thể kiểm tra tớnh xỏc thực của client. Nếu đỳng đắn, SSL sẽ thụng bỏo là Client hợp lệ và tiếp tục thực hiện kết nối SSL.

Hỡnh dƣới đõy minh họa quỏ trỡnh kiểm tra tớnh xỏc thực của Client theo cỏc bƣớc mụ tả ở trờn.

Hỡnh 23 - Quỏ trỡnh kiểm tra xỏc thực của client

3.3. XÂY DỰNG HỆ THỐNG FIREWALLS

3.3.1. Giới thiệu chung:

3.3.1.1. Định nghĩa:

Firewall là thiết bị nhằm ngăn chặn sự truy nhập khụng hợp lệ từ ngoài vào mạng trong. Hệ thống firewall thƣờng bao gồm cả phần cứng và phần mềm. Firewall thƣờng đƣợc dựng theo phƣơng thức ngăn chặn hay tạo cỏc luật đối với cỏc địa chỉ khỏc nhau.

3.3.1.2. Chức năng của firewalls:

Hoạt động của hệ thống firewalls đảm bảo cỏc chức năng sau: Hạn chế truy nhập tại một điểm kiểm tra

Ngăn chặn cỏc truy nhập từ ngoài vào trong hệ thống cần bảo vệ Hạn chế cỏc truy nhập ra ngoài

Xõy dựng firewalls là một biện phỏp khỏ hữu hiệu, nú cho phộp bảo vệ và kiểm soỏt hầu hết cỏc dịch vụ do đú đƣợc ỏp dụng phổ biến nhất trong cỏc biện phỏp bảo vệ mạng. Thụng thƣờng, một hệ thống firewalls là một cổng (gateway) giữa mạng nội bộ giao tiếp với mạng bờn ngoài và ngƣợc lại

3.3.1.3. Phõn loại:

Cú khỏ nhiều loại firewall, mỗi loại cú những ƣu và nhƣợc điểm riờng. Tuy nhiờn để thuận tiện cho việc nghiờn cứu ngƣời ta chia hệ thống làm 2 loại chớnh:

Packet filtering: Là hệ thống firewalls cho phộp chuyển thụng tin giữa hệ thống trong và ngoài mạng cú kiểm soỏt.

Application-proxy firewall: Là hệ thống firewalls thực hiện cỏc kết nối thay

cho cỏc kết nối trực tiếp từ mỏy khỏch yờu cầu.

Sau đõy sẽ phõn tich hoạt động của 2 loại firewalls này:

3.3.1.4. Nguyờn tắc hoạt động của firewalls:

Nguyờn tắc chung

Mạng cú sử dụng firewall thỡ mạng đú về mạng lý thuyết mà núi là khụng thể nhỡn thấy đƣợc hay núi một cỏch khỏc là khụng kết nối tới đƣợc đối với những ai đƣợc phộp kết nối. Nhƣ vậy firewall là một phƣơng thức an toàn rất cao mà bạn cú thể dựng để bảo vệ mạng của bạn. Tuy nhiờn việc sử dụng biện phỏp an toàn nhƣ vậy khụng hẳn đó tốt, bởi với việc tạo ra cỏc luật chặt chẽ trờn firewall sẽ làm hạn chế việc sử dụng mạng. Đặc biệt trong mụi trƣờng làm việc mà mọi ngƣời phụ thuộc chủ yếu vào cỏc ứng dụng đƣợc chia sẻ trờn mạng thỡ việc sử dụng firewall là khụng cú lợi, mặc dự ta cú đƣợc sự an toàn trờn mạng nhƣng ta lại mất đi cỏc tớnh năng mềm dẻo của nú. Một vớ dụ điển hỡnh về mụ hỡnh mạng nhƣ vậy là mạng trong cỏc trƣờng đại học. Cỏc đề tài nghiờn cứu trong trƣờng thƣờng đƣợc thực hiện bởi nhiều khoa khỏc nhau, mỗi khoa lại nằm riờng lẻ cú khi cỏch nhau khỏ xa, nhƣ vậy việc thực hiện chia sẻ cỏc kết quả nghiờn cứu cho nhau sẽ gặp rất nhiều khú khăn trong mụi trƣờng cú sử dụng firewall.

Một điều nữa cần núi đến khi đề cập đến firewall là ta đó để hầu hết "cỏc quả trứng trong cựng một giỏ" bởi vỡ nú là cửa ngừ để mạng của bạn truy cập ra mạng ngoài. Mặc dự firewall tạo ra cho bạn khả năng điều khiển truy nhập và tạo sự an toàn cho mạng của bạn nhƣng đú cũng là "cỏi nỳt cổ chai" đối với mạng, bởi tất cả việc nhận thực đều xảy ra ở đú.

mạng khỏc nhau cú thể kết nối đƣợc với nhau. Việc kết nối này cú thể là tự động hoặc nhờ sự tỏc động của con ngƣời. Đối với một số mạng nhất là với cỏc ISP thỡ việc sử dụng firewall hoàn toàn khụng cần thiết bởi bạn sẽ mất khỏch hàng nếu nhƣ bạn ỏp dụng một loạt cỏc chớnh sỏch ngăn chặn cứng ngắt. Ngƣời ta cho rằng những nhà quản trị hệ thống thực sự cú đƣợc những đặc tớnh nhƣ của firewall mà khụng cần sử dụng đến nú.

Một vấn đề khỏc nữa khi sử dụng firewall là đối với cỏc dịch vụ nhƣ ftp, telnet, gopher, http, rpc, rlogin hay NFS thỡ nú cũng tạo ra một số vấn đề về truy cập dịch vụ. Đối với cỏc dịch vụ cơ bản trờn mạng đú thỡ cỏc trỡnh proxy cho nú đó đƣợc viết, nhƣng cỏc dịch vụ trờn mạng thỡ ngày càng phỏt triển. Do vậy để cung cấp cho ngƣời dựng trong mạng của bạn cú khả năng truy cập Internet hiệu quả thỡ bạn phải thƣờng xuyờn cập nhật cỏc trỡnh ứng dụng mới. Vấn đề ở đõy là với mỗi dịch vụ mới thỡ cỏc trỡnh proxy tƣơng ứng với nú ra đời sau cú thể chỉ là vài thỏng hoặc lõu hơn nữa, và nhƣ vậy ngƣời dựng trong mạng của bạn sẽ làm ầm lờn !

Packet Filtering:

Kiểu firewall chung nhất là kiểu dựa trờn mức mạng của mụ hỡnh OSI. Firewall mức mạng thƣờng hoạt động theo nguyờn tắc router hay cũn đƣợc gọi là router, cú nghĩa là tạo ra cỏc luật cho phộp ai hay cỏi gỡ đƣợc quyền truy nhập mạng dựa trờn mức mạng. Mụ hỡnh này hoạt động theo nguyờn tắc lọc gúi tin packet filtering

Nú kiểm tra cỏc gúi tin đến router từ mạng ngoài. ở kiểu hoạt động này cỏc gúi tin đều đƣợc kiểm tra địa chỉ nguồn nơi chỳng xuất phỏt. Sau khi địa chỉ IP nguồn

Một phần của tài liệu Bảo mật dịch vụ hệ thống mạng máy tính (Trang 77)