1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu tim hiểu Giao thức SSL

32 1,3K 14

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 429 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay vấn đề bảo mật dữ liệu rất quan trọng, thông tin dữ liệu đi và đến được các server quản lý nhờ vào một số ứng dụng trược tiếp bởi các công cụ bảo mật trong máy Server. SSL là một trong số các giao thức đó. SSL mã hóa thông tin điđến rất hiệu quả và nó được tích hợp trong máy Server nếu bạn cài bộ Server 2000 trở lên. Nhưng hiện tại việc ứng dụng SSL ở việc nam rất hạn chế. Sau đây nhóm trình bài về giao thức SSL.

Trang 1

ĐỀ TÀI: GIAO THỨC SSL

MỤC LỤC

I Lời nói đầu

Ngày nay vấn đề bảo mật dữ liệu rất quan trọng, thông tin dữ liệu đi và đến được các serverquản lý nhờ vào một số ứng dụng trược tiếp bởi các công cụ bảo mật trong máy Server SSL

là một trong số các giao thức đó SSL mã hóa thông tin đi/đến rất hiệu quả và nó được tíchhợp trong máy Server nếu bạn cài bộ Server 2000 trở lên Nhưng hiện tại việc ứng dụngSSL ở việc nam rất hạn chế Sau đây nhóm trình bài về giao thức SSL

II Giao thức SSL (Secure Socket Layer)

1 SSL là gì?

SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giaotiếp giữa hai chương trình ứng dụng, nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nayđược sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bímật cá nhân (PIN) trên Internet Giao thức SSL tổ hợp nhiều giải thuật mã hóa nhằm đảmbả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

Trang 2

cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP, SSL chạy ứngdụng trên một cổng định trước (socket 443)

Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảoquá 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, SSL đã kết hợp nhữngyế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ườinhậ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ácthự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à Webserver, cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn Khi Webbrowser 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áicủa cửa sổ browser và dòng “http” trong hộp nhập địa chỉ URL sẽ đổi thành “https”

Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên Internet trongcác hoạt động thương mại điện tử (E-Commerce) Việt Nam đang trên đường hội nhập vớinền công nghệ thông tin thế giới, nên nay mai, các hoạt động giao dịch trên mạng ở ViệtNam cũng sẽ diễn ra sôi nổi, khi đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSL

là điều thiết yếu Tuy nhiên đến nay hình như vẫn chưa có trang Web nào ở Việt Nam sửdụng SSL trong các giao dịch của mình

2 Lịch sử ra đời và phát triển

Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm nghiêncứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thực hành trênmạng Internet Phiên bản SSL hiện nay là 3.0 và vẫn đang tiếp tục được bổ sung và hoànthiện Tương tự như SSL, một giao thức khác có tên là PCT - Private CommunicationTechnology được đề xướng bởi Microsoft hiện nay cũng được sử dụng rộng rãi trong cácmạng máy tính chạy trên hệ điều hành Windows NT Ngoài ra, một chuẩn của IETF

Trang 3

(Internet Engineering Task Force) có tên là TLS (Transport Layer Security) dựa trên SSLcũng được hình thành và xuất bản dưới khuôn khổ nghiên cứu của IETF Internet Draft đượctích hợp và hỗ trợ trong sản phẩm của Netscape

SSL được coi là 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

Vào giai đoạn này, 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ộtcả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ộngtrong 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ùngphả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 giao thứctươ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 giaothứ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ảomật cho lưu lượng dữ liệu HTTP 1994

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ạnhtranh trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996

 Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft bằngcá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ăngmớ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ênbả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 InternetExplorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản cao

Trang 4

hơn), và Open Như được thảo luận ở phần sau trong chương này, SSL 3.0 đã được điềuchỉ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.

3 Giới thiệu chung về giao thức SSL.

Như đã nói ở trên giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởinhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mậtthực hành trên mạng Internet Phiên bản SSL hiện nay là 3.0 và vẫn đang tiếp tục được bổsung và hoàn thiện 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 Các thuật toán mã hoá 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àmtoá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ácthuậ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, truyền tải các certificates và thiết lập các khoá của từng phiên giao dịch (sesionkey) Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau tuỳ thuộc vàonhiề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à 56bit

 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

 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ínhphủ 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

Trang 5

 RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toánRSA.

 RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dùng cho RSAData Security

 SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính phủ Mỹ

sử dụng

Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử dụng để 2 bênclient và server xác lập khoá đối xứng mà họ sẽ sử dụng trong suốt phiên giao dịch SSL Vàthuật toán được sử dụng phổ biến là RSA key exchange

Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá Người quản trị

có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server Khi một client và server trao đổithông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ mã hoá mạnh nhất có thể và

sử dụng chúng trong phiên giao dịch SSL

III.Cấu trúc SSL

1 Cấu trúc SSL

Vị trí của các giao thức trên, tương ứng với mô hình TCP/IP được minh hoạ theobiểu đồ sau:

Trang 6

Hình 1.1 Cấu trúc SSL và giao thức SSL

Theo hình này, SSL ám chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển (TransportLayer) và lớp ứng dụng (Application Layer) SSL được xếp lớp lên trên một dịch vụ vậnchuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP Về khảnăng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vàoTCP chứ không chỉ HTTP Thực tế, một ưu điểm chính của các giao thức bảo mật lớp vậnchuyển (Transport layer) nói chung và giao thức SSL nói riêng là chúng độc lập với ứngdụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng đượcxếp lớp lên trên TCP một cách trong suốt Hình 1.1 minh họa một số giao thức ứng dụngđiển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3 Tất cả chúng có thểđược bảo vệ bằng cách xếp lớn chúng lên trên SSL (mẫu tự S được thêm vào trong các từghép giao thức tương ứng chỉ định việc sử dụng SSL) Tuy nhiên, chú ý rằng SSL có mộtđịnh hướng client-server mạnh mẽ và thật sự không đáp ứng các yêu cầu của các giao thứcứng dụng ngang hàng

Nhìn chung, giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:

1 Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách sử dụngmật mã khóa chung

2 Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa trong suốt sau khimột sự thiết lập quan hệ ban đầu và sự thương lượng khóa session đã xảy ra

3 Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì các thôngbáo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằng cách sử dụngMAC

Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công phân tích lưu

Trang 7

lượng Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích không được mã hóa và các sôcổng TCP, hoặc xem xét lượng dữ liệu được truyền, một người phân tích lưu lượng vẫn cóthể xác định các bên nào đang tương tác, các loại dịch vụ đang được sử dụng, và đôi khingay cả dành được thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân Hơn nữa, SSLkhông ngăn các cuộc tấn công có định hướng dựa vào phần thực thi TCP, chẳng hạn nhưcác cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session

Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia đang sử dụngSSL Nói chung, có ba khả năng để giải quyết vấn đề này:

1 Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned NumbersAuthority (IANA) Trong trường hợp này, một số cổng riêng biệt phải được gán cho mọigiao thức ứng dụng vốn sử dụng SSL

2 Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọnbảo mật như là một phần của giao thức ứng dụng (bây giờ được chỉnh sửa đôi chút)

3 Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật,chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường

Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là khả năngthứ hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh sửa để hiểu tiến trìnhthương lượng Ngoài ra, việc xác định một tùy chọn TCP (nghĩa là khả năng thứ ba) là mộtgiải pháp tốt, nhưng đó không được thảo luận nghiêm túc cho đến bây giờ Thực tế, các sốcổng riêng biệt đã được dành riêng và được gán bởi IANA cho mọi giao thức ứng dụng vốn

có thể chạy trên SSL hoặc TLS (nghĩa là khả năng thứ nhất) Tuy nhiên, hãy chú ý việc sửdụng các số cổng riêng biệt cũng có khuyết điểm là đòi hỏi hai nối kết TCP nếu clientkhông biết những gì mà server hỗ trợ Trước tiên, client phải nối kết với cổng an toàn và sau

đó với cổng không an toàn hay ngược lại Rất có thể các giao thức sau này sẽ hủy bỏphương pháp này và tìm khả năng thứ hai Ví dụ, SALS (Simple Authentication và SecurityLayer) xác định một phù hợp để thêm sự hỗ trợ xác thực vào các giao thức ứng dụng dựavào kết nối Theo thông số kỹ thuật SALS, việc sử dụng các cơ chế xác thực có thể thươnglượng giữa client và server của một giao thức ứng dụng đã cho

Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy trên SSL/TLSđược tóm tắt trong bảng 1.2 và được minh họa một phần trong hình 1.1 Ngày nay, "S" chỉđịnh việc sử dụng SSL được thêm (hậu tố) nhất quán vào các từ ghép của các giao thức ứng

Trang 8

dụng tương ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêm tiền tố mộtcách không nhất quán và một số từ ghép).

Bảng1.1: Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL.

Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và duy trìthông tin trạng thái ở một trong hai phía của session Các phần tử thông tin trạng tháisession tương ứng bao gồm một session ID, một chứng nhận ngang hàng, một phương phápnén, một thông số mật mã, một khóa mật chính và một cờ vốn chỉ định việc session có thểtiếp tục lại hay không, được tóm tắt trong bảng 1.3 Một session SSL có thể được sử dụngtrong một số kết nối và các thành phần thông tin trạng thái nối kết tương ứng được tóm tắttrong bảng 1.4 Chúng bao gồm các tham số mật mã, chẳng hạn như các chuỗi byte ngẫunhiên server và client, các khóa mật MAC ghi server và client, các khóa ghi server và client,một vector khởi tạo và một số chuỗi Ở trong hai trường hợp, điều quan trọng cần lưu ý làcác phía giao tiếp phải sử dụng nhiều session SSL đồng thời và các session có nhiều nối kếtđồng thời

Bảng 1.2 Các thành phần thông tin trạng thái Session SSL

Session ID trạng thái session hoạt động hoặc có thể tiếp tục lại.Định danh được chọn bởi server để nhận dạng một

Peer certificate Chứng nhân X.509 phiên bản 3 của thực thể nganghàng.

Compression

method Thuật toán dừng để nén dữ liệu trước khi mã hóa

Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC

Master secret Khóa mật 48-byte được chia sẻ giữa client và server

Trang 9

Is resumable Cờ vốn biểu thị session có thể được sử dụng để bắt đầucác nối kết mới hay không.

Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL

Khóa mật được sử dụng cho các hoạt động MAC trên dữ

liệu được ghi bởi server

Khóa mật MAC

ghi client

Khóa mật được sử dụng cho các hoạt động MAC trên dữ

liệu được ghi bởi client

Khóa ghi server Khóa được sử dụng cho việc mã hóa dữ liệu bởi server vàgiải mã bởi client

Khóa ghi client Khóa được sử dụng để mã khóa dữ liệu bởi client và giảimã bởi server.

Initialization

vector

Trạng thái khởi tạo cho một mật mã khối trong chế độCBC Trường này được khởi tạo đầu tiên bởi SSLHandshake Player Sau đó, khối text mật mã sau cùng từmỗi bản ghi được dành riêng để sử dụng vởi bản ghi sau

đó

Số chuỗi Mỗi phía duy trì các số chuỗi riêng biệt cho các thông báo

được truyền và được nhận cho mỗi nối kết

Như được minh họa trong hình 1.1, giao thức SSL gồm hai phần chính, SSL RecordProtocol và một số giao thức con SSL được xếp lớp trên nó:

- Record OK được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối kết vàđáng tin cậy, chẳng hạn như được cung cấp bởi TCP và cung cấp sự xác thực nguồn gốcthông báo, sự bí mật dữ liệu và dữ liệu

- Các dịch vụ toàn vẹn (bao gồm nhưng thứ như chống xem lại)

- Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự hỗtrợ cho việc quản lý session SSL và thiết lập nối kết

Giao thức con SSL quan trọng nhất là SSL Handshake Protocol Lần lượt giao thức này làmột giao thức xác thực và trao đổi khóa vốn có thể được sử dụng để thương lượng, khởi tạo

và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một tronghai điểm cuối của một session hoặc nối kết SSL

Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được gửi và được

Trang 10

nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng

và các thành phần thông tin trạng thái

Được phát triển bởi Netscape, ngày nay giao thức Secure Socket Layer (SSL) đã được sửdụng rộng rãi trên World Wide Web trong việc xác thực và mã hoá thông tin giữa client vàserver Tổ chức IETF (Internet Engineering Task Force ) đã chuẩn hoá SSL và đặt lại tên làTLS (Transport Layer Security) Mặc dù là có sự thay đổi về tên nhưng TSL chỉ là mộtphiên bản mới của SSL Phiên bản TSL 1.0 tương đương với phiên bản SSL 3.1 Tuy nhiênSSL là thuật ngữ được sử dụng rộng rãi 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ụngtầng cao hơn như là HTTP (Hyper Text Transport Protocol), IMAP ( Internet MessagingAccess 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) 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 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 (certificateauthority) 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ínhmang 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

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ả haibê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

Trang 11

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)

Giao thức SSL bao gồm 2 giao thức con: giao thức SSL record và giao thức SSL handshake.Giao thức SSL record xác định các định dạng dùng để truyền dữ liệu Giao thức SSLhandshake (gọi là giao thức bắt tay) sẽ sử dụng SSL record protocol để trao đổi một sốthông tin giữa server và client vào lấn đầu tiên thiết lập kết nối SSL

2 Giao thức SSL làm việc

Điểm cơ bản của SSL đượ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 khách (browsers), do đó được sử dụng rộng rãi trongnhiề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 đượcphổ biến công khai, trừ khoá chia xẻ tạm thời (session key) đượ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áytí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 đốitượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate) dựa trên mật

mã công khai (thí dụ RSA) Sau đây ta xem xét một cách khái quát cơ chế hoạt động củaSSL để phân tích cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạycảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử

Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay” (handshakeprotocol) và giao thức “bản ghi” (record protocol) Giao thức bắt tay xác định các tham sốgiao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu, còn giao thức bảnghi xác định khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối tượng đó

Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web, làmviệc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào” (hellos) dưới dạng các thôngđiệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn vềthuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng

Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID,session key) duy nhất cho lần làm việc đó Sau đó ứng dụng khách (trình duyệt) yêu cầu cóchứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server)

Trang 12

Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian (là

CA -Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chứcđộc lập, trung lập và có uy tín Các tổ chức này cung cấp dịch vụ “xác nhận” số nhận dạngcủa một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhậndạng (identity) cho các giao dịch trên mạng, ở đây là các máy chủ webserver

Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã côngkhai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứngchỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy chủ đó có thể giải mã

Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoáđối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụngchủ khách Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một sốtham số: (i) số nhận dạng theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuậttoán bảo mật áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược

đồ mã hoá thông tin

IV Bảo mật với SSL

Trang 13

Các bước SSL Record Protocol.

Các bước khác nhau của SSL Record Protocol vốn đi từ một đoạn dữ liệu thô đếnmột bản ghi SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSLCiphertext (bước mã hóa) được minh họa trong hình trên Sau cùng, mỗi bản ghi SSL chứacác trường thông tin sau đây:

- Loại nội dung;

- Số phiên bản của giao thức;

Lúc bắt đầu mỗi session SSL, phương pháp nén và thông số mật mã thường được xácđịnh là rỗng Cả hai được xác lập trong suốt quá trình thực thi ban đầu SSL HandshakeProtocol Sau cùng, MAC được thêm vào mỗi bản ghi SSL Nó cung cấp các dịch vụ xácthực nguồn gốc thông báo và tính toàn vẹn dữ liệu Tương tự như thuật toán mã hóa, thuậttoán vốn được sử dụng để tính và xác nhận MAC được xác định trong thông số mật mã củatrạng thái session hiện hành Theo mặc định, SSL Record Protocol sử dụng một cấu trúc

Trang 14

MAC vốn tương tự nhưng vẫn khác với cấu trúc HMAC hơn Có ba điểm khác biệt chínhgiữa cấu trúc SSL MAC và cấu trúc HMAC:

1 Cấu trúc SSL MAC có một số chuỗi trong thông báo trước khi hash để ngăn các hìnhthức tấn công xem lại riêng biệt

2 Cấu trúc SSL MAC có chiều dài bản ghi

3 Cấu trúc SSL MAC sử dụng các toán tử ghép, trong khi cấu trúc MAC sử dụng moduloecộng 2

Tất cả những điểm khác biệt này hiện hữu chủ yếu vì cấu trúc SSL MAC được sửdụng trước cấu trúc HMAC trong hầu như tất cả thông số kỹ thuật giao thức bảo mậtInternet Cấu trúc HMAC cũng được sử dụng cho thông số kỹ thuật giao thức TLS gần đâyhơn

Như được minh họa trong hình, một số giao thức con SSL được xếp lớp trên SSL RecordProtocol Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể vốn được gửibằng cách sử dụng SSL Record Protocol Thông số kỹ thuật SSL 3.0 xác định ba giao thứcSSL sau đây:

và server và để trao đổi một khóa session

Sau cùng, SSL ChangeCipherSpec Protocol được sử dụng để thay đổi giữa một thông sốmật mã này và một thông số mật mã khác Mặc dù thông số mật mã thường được thay đổi ởcuối một sự thiết lập quan hệ SSL, nhưng nó cũng có thể được thay đổi vào bất kỳ thời điểmsau đó Ngoài những giao thức con SSL này, một SSL Application Data Protocol được sửdụng để chuyển trực tiếp dữ liệu ứng dụng đến SSL Record Protocol

SSL handshake

Giao thức SSL sử dụng kết hợp 2 loại mã hoá đối xứng và công khai Sử dụng mãhoá đối xứng nhanh hơn rất nhiều so với mã hoá công khai khi truyền dữ liệu, nhưng mãhoá công khai lại là giải pháp tốt nhất trong qúa trình xác thực Một giao dịch SSL thường

Trang 15

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ắttay” có thể tóm tắt như sau:

1 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 được tạo ra ngẫu nhiên (đó chính là digital signature) và một số thông tinkhác mà server cần để thiết lập kết nối với client

2 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ếtnối với server Ngoài ra server cũng gửi certificate của nó đến client, và yêu cầu certificatecủa client nếu cần

3 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 không được thiếtlập Còn nếu như xác thực được server thì phía client sẽ thực hiện tiếp bước 4

4 Sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay ở trên, client (cùngvới sự cộng tác của server và phụ thuộc vào thuật toán được sử dụng) sẽ tạo ra premastersecret cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà server gửi đến trongcertificate ở bước 2, và gửi đến server

5 Nếu server có yêu cầu xác thực client, thì phía client sẽ đánh dấu vào phần thôngtin riêng chỉ liên quan đến quá trình “bắt tay” này mà hai bên đều biết Trong trường hợpnày, client sẽ gửi cả thông tin được đánh dấu và certificate của mình cùng với premastersecret đã được mã hoá tới server

6 Server sẽ xác thực client Trường hợp client không được xác thực, phiên làm việc

sẽ bị ngắt Còn nếu client được xác thực thành công, server sẽ sử dụng khoá bí mật (privatekey) để giải mã premaster secret, sau đó thực hiện một số bước để tạo ra master secret

7 Client và server sẽ sử dụng master secret để tạo ra các session key, đó chính là cáckhoá đối xứng được sử dụng để mã hoá và giải mã các thông tin trong phiên làm việc vàkiểm tra tính toàn vẹn dữ liệu

8 Client sẽ gửi một lời nhắn đến server thông báo rằng các message tiếp theo sẽđược mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được mã hoá để thông báorằng phía client đã kết thúc giai đoạn “bắt tay”

9 Server cũng gửi một lời nhắn đến client thông báo rằng các message tiếp theo sẽđược mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được mã hoá để thông báorằng server đã kết thúc giai đoạn “bắt tay”

Trang 16

10 Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL bắt đầu Cả haiphía client và server sẽ sử dụng các session key để mã hoá và giải mã thông tin trao đổi giữahai bên, và kiểm tra tính toàn vẹn dữ liệu

2 Thực thi

Bước đầu tiên trong việc thực thi SSL cho Web site của bạn đó là phải có được chứng chỉSSL từ một trung tâm cấp chứng chỉ SSL Chứng chỉ SSL của Web Server để phân biệt tênmiền và địa chỉ IP riêng biệt của nó Bạn có thể mua chứng chỉ SSL từ các nhà cung cấpchứng chỉ như Verisign, Thawte, Entrust hay một số nhà cung cấp chứng chỉ công cộngkhác Chứng chỉ của những công ty đó đều được các trình duyệt lớn nhận ra Bạn cũng cóthể có được chứng chỉ từ một CA nội bộ

Để cấu hình IIS 6.0 Web site (chạy trên Windows Server 2003) sử dụng mã hóa SSL, bạnthực hiện theo các bước dưới đây:

1 Mở IIS Manager từ menu Programs | Administrative Tools

2 Trong cửa sổ bên trái của giao diện người dùng, bạn mở nút có tên Web server(trong ví dụ là CA1), sau đó mở rộng thư mục Web Sites như trong hình 1.2

Hình 1.2 Cấu hình Websites

3 Kích chuột phải vào Web site mà bạn muốn sử dụng SSL, sau đó chọn Properties

để mở được trang thuộc tính Properties cho trang này

4 Kích vào tab Directory Security như trong hình B

Ngày đăng: 05/10/2014, 18:30

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Cấu trúc SSL và giao thức SSL - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.1 Cấu trúc SSL và giao thức SSL (Trang 6)
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL - Nghiên cứu tim hiểu Giao thức SSL
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL (Trang 8)
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL - Nghiên cứu tim hiểu Giao thức SSL
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL (Trang 9)
Hình 1.2 Cấu hình Websites - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.2 Cấu hình Websites (Trang 16)
Hình 1.3  Tab Directory Security - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.3 Tab Directory Security (Trang 17)
Hình 1.4: Mô tả quá trình bắt tay của giao thức SSL - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.4 Mô tả quá trình bắt tay của giao thức SSL (Trang 20)
Hình 1.5: Mô hình SSL VPN - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.5 Mô hình SSL VPN (Trang 23)
Hình 1.6: Mô hình VPN & Firewall - Nghiên cứu tim hiểu Giao thức SSL
Hình 1.6 Mô hình VPN & Firewall (Trang 23)

TỪ KHÓA LIÊN QUAN

w