3.2.1. SSL là gì?
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 hay không. Để 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, Secure Socket Layer (SSL) đã kết hợp những yếu tố sau để thiết lập đƣợc một giao dịch an toàn: 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 (Client) xác thực đƣợc server muốn kết nối. Lúc này, phía Web browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate và public ID của server là có giá trị và đƣợc cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client. Điều này rất quan trọng đối với ngƣời dùng. Ví dụ nhƣ khi gửi mã số credit card qua mạng thì ngƣời dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này có đúng là server mà họ định gửi đến không.
Xác thực Client: Cho phép phía server xác thực đƣợc ngƣời sử dụng muốn kết nối. Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public ID của client có giá trị hay không và đƣợc cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của server không. Điều này rất quan trọng đối với các nhà cung cấp. Ví dụ nhƣ khi một ngân hàng định gửi các thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất muốn kiểm tra định danh của ngƣời nhận.
Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server đƣợc mã hoá trên đƣờng truyền nhằm nâng cao khả năng bảo mật. Điều này rất quan trọng đối với cả hai bên khi có các giao dịch mang tính riêng tƣ. Ngoài ra, tất cả các dữ liệu đƣợc gửi đi trên một kết nối SSL đã đƣợc mã hoá còn đƣợc bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu ( đó là các thuật toán băm – hash algorithm).
Với việc sử dụng SSL, các Website 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 Web 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 vùng nhập địa chỉ URL sẽ đổi thành “[Only registered and activated users can see links]”.
Hình 3.2 - Mô hình ứng dụng của SSL trong Internet
SSL là một giao thức đƣợc sử dụng giữa TCP và HTTP. Ngoài việc chứng thực, SSL cũng cung cấp hỗ trợ cho mã hóa các nội dung thông báo. Các thành phần chính của SSL là giao thức SSL Record Protocol (giao thức SSL Record) và SSL Handshake protocol (giao thức SSL bắt tay). Handshake protocol sử dụng để xác thực ngƣời dùng trong một phiên, trong khi ghi Record Protocol là giao thức cấp thấp hơn đƣợc sử dụng để bảo vệ lớp mạng.
Các phần khác nhau của bảo mật đƣợc cung cấp bởi SSL có thể đƣợc thảo luận cho mỗi phiên và thuật toán nào đƣợc sử dụng miễn là cả hai bên trong cuộc trao đổi đều có thể thực hiện thuật toán này. SSL cung cấp mã hóa khóa công khai (ví dụ RSA hoặc DSS) cho việc chứng thực, trong khi mã hóa dữ liệu đƣợc thực hiện với mã hóa đối xứng (ví dụ DES hoặc RC4). Tính toàn vẹn của thông điệp đƣợc kiểm tra bằng cách sử dụng hàm băm nhƣ MD5 hoặc SHA.
Một phiên SSL đƣợc bắt đầu bằng cách thực hiện việc bắt tay và sau đó các máy chủ sẽ trao đổi thông báo, đó là nơi máy chủ có thể trao đổi phƣơng pháp mã hóa sẽ đƣợc sử dụng. Sau đó, những bí mật có thể đƣợc chia sẻ sẽ đƣợc trao đổi và ở giai đoạn này trong phiên làm việc bắt đầu gửi thông điệp dữ liệu đã mã hóa. Một tính năng của SSL là nó có thể cung cấp tùy chọn nén dữ liệu trƣớc khi mã hóa để phần băng thông đƣợc sử dụng có thể đƣợc giảm đi. Một yếu điểm trong SSL là không đƣợc chuẩn bị bất kỳ một phƣơng thức chống phủ nhận nào. Chống phủ nhận nghĩa là có thể chứng minh rằng ngƣời gửi thực sự đã gửi một thông báo mặc dù họ có thể từ chối gửi tiếp thông báo sau đó.
Một nhƣợc điểm với cách sử dụng SSL là nó sẽ đƣa ra sự trì hoãn khởi động khá lâu khi đã hoàn thành những việc bắt tay và trao đổi các phƣơng pháp mã hóa.
3.2.2. SSL Record Protocol
SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và nó thực hiện việc xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu. Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu đầu vào và các đoạn dữ liệu SSL làm dữ liệu đầu ra (hoặc còn đƣợc gọi là các bản ghi) cõ kích cỡ nhỏ hơn hoặc bằng 16,383 byte.
Hình 3.4 - 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ô đến một bản ghi SSL Plaintext (bƣớc phân đoạn), SSL Compressed (bƣớc nén) và SSL Ciphertext (bƣớc mã hóa) đƣợc minh họa trong hình 3.6. Sau cùng, mỗi bản ghi SSL chứa các trƣờng thông tin sau đây:
Hình 3.5 - Định dạng bản ghi SSL Record
Trong đó:
- Loại nội dung
- Số phiên bản của giao thức - Chiều dài nén
- Tải trọng dữ liệu (đƣợc nén và đƣợc mã hóa tùy ý) - MAC
Loại nội dung xác định giao thức lớp cao hơn vốn phải đƣợc sử dụng để sau đó xử lý tải trọng dữ liệu bản ghi SSL (sau khi giải nén và giải mã thích hợp).
Số phiên bản của giao thức xác định phiên bản SSL đang sử dụng (thƣờng là version 3.0).
Mỗi tải trọng dữ liệu bản ghi SSL đƣợc nén và đƣợc mã hóa theo thuật toán nén hiện hành và thông số mật mã đƣợc xác định cho phiên SSL.
Lúc bắt đầu mỗi phiên 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 của SSL Handshake Protocol. 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ác thự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ật toá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ủa trạng thái phiên hiện hành. Theo
mặc định, SSL Record Protocol sử dụng một cấu trúc MAC vốn tƣơng tự HMAC nhƣng vẫn hơi khác với cấu trúc HMAC ở ba điểm, khác biệt chính giữa cấu trúc SSL MAC và cấu trúc HMAC là:
+ Cấu trúc SSL MAC có một số chuỗi trong thông báo trƣớc khi băm để ngăn các hình thức tấn công xem lại.
+ Cấu trúc SSL MAC có chiều dài bản ghi. + Cấu trúc SSL MAC sử dụng các toán tử ghép
Tất cả những điểm khác biệt này chủ yếu là 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 trong giao thức bảo mật Internet. Cấu trúc HMAC cũng đƣợc sử dụng cho thông số kỹ thuật giao thức TLS gần đây.
Nhƣ đƣợc minh họa trong hình 3.4, một số giao thức con SSL đƣợc xếp lớp trên SSL Record Protocol. 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ửi bằng cách sử dụng SSL Record Protocol. Thông số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau đây:
- Alert Protocol - Handshake Protocol
- ChangeCipherSpec Protocol
SSL Alert Protocol đƣợc sử dụng để chuyển các cảnh báo thông qua SSL Record Protocol. Mỗi cảnh báo gồm 2 phần, một phần là mức cảnh báo và một phần mô tả cảnh báo.
SSL Handshake Protocol là giao thức con SSL chính, đƣợc sử dụng để hỗ trợ xác thực client và server và để trao đổi một khóa phiên.
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 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ểm nào sau đó.
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.
Hình 3.6 - Quá trình thực hiện SSL Record Protocol
3.2.3. SSL Handshake Protocol
Hình 3.7 - Mô phỏng kết nối giữa Client và Server trong SSL Handshake Protocol
Application Data Fragment Compress Add MAC Encrypt Append SSL record header
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 quá trình xác thực. Một giao dịch 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ó 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 tin khá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ế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.
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ết lậ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ùng vớ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 master secret(Khóa mật 48-byte đƣợc chia sẻ giữa client và server) cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà server gửi đến trong certificate ở 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ông tin 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ợp này, client sẽ gửi cả thông tin đƣợc đánh dấu và certificate của mình cùng với master secret đã đƣợ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 (private key) để giải mã master 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 khóa phiên (session key), đó chính các khoá đố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 thông báo 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áo rằ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 thông báo 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áo rằng server đã kết thúc giai đoạn “bắt tay”.
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ả hai phía client và server sẽ sử dụng các session key để mã hoá và giải mã thông tin trao đổi giữa hai bên, và kiểm tra tính toàn vẹn dữ liệu.
Kiểu thông báo Tham số
Hello_request Rỗng
Client_hello Phiên bản SSL đƣợc sử dụng, dữ liệu đƣợc tạo ra
ngẫu nhiên, Định danh đƣợc chọn bởi server để nhận dạng một trạng thái session hoạt động hoặc có thể tiếp tục lại, tham số mã hóa, thuật toán nén
Server_hello Phiên bản SSL đƣợc sử dụng, dữ liệu đƣợc tạo ra
ngẫu nhiên, Định danh đƣợc chọn bởi server để nhận dạng một trạng thái session hoạt động hoặc có thể tiếp tục lại, tham số mã hóa, thuật toán nén
Certificate Chuỗi xác thực của X.509v3
Server_key_exchange Khóa mật, Chữ kí
Certificate_request Kiểu, Ủy quyền
Server_done Rỗng
Certificate_verify Chữ kí
Client_key_exchange Khóa mật, Chữ kí
Finished Giá trị băm
Bảng 3.1 - Kiểu của các thông báo trong SSL Handshake Protocol
Trong các pha của quá trình hoạt động của Handshake Protocol ở hình 3.8:
Pha 1: Thiết lập khả năng bảo mật, đƣa ra phiên bản SSL đang sử dụng, Định danh đƣợc chọn bởi server để nhận dạng một trạng thái session hoạt động hoặc có thể tiếp tục lại, dữ liệu đƣợc mã hóa, phƣơng thức nén và số đƣợc sinh ra ngẫu nhiên đầu tiên.
Pha 2: Server có thể gửi chứng thực, trao đổi khóa và yêu cầu chứng thực. Server đƣa ra tín hiệu cuối của pha gửi thông báo hello.
Pha 3: Client gửi chứng thực nếu có yêu cầu, Client gửi trao đổi khóa. Client có thể gửi xác minh chứng thực đó.
3.2.4. Kết luận chƣơng 3
Cùng với sự phát triển vƣợt bậc trong hệ thống mạng thì bất kỳ một mô hình bảo mật trong mô hình quản trị mạng nào cũng không tránh khỏi sự tấn công, xâm nhập bất hợp pháp của kẻ khác. Trong mô hình quản trị mạng dựa trên nền web vấn đề bảo mật của nó chủ yếu là dựa trên xác thực và mã hóa kết nối của giao thức SSL.
Xác thực Server: Cho phép client xác thực đƣợc server muốn kết nối. Web browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate và public ID của server là có giá trị và đƣợc cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client.
Xác thực Client: Cho phép phía server xác thực đƣợc client 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 client có giá trị hay không và đƣợc cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của server không.
Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server đƣợc mã hoá trên đƣờng truyền nhằm nâng cao khả năng bảo mật. Điều này rất quan trọng đối với cả hai bên khi có các giao dịch mang tính riêng tƣ. Ngoài ra, tất cả các dữ liệu đƣợc gửi đi trên một kết nối SSL đã đƣợc mã hoá còn đƣợc bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu.
Tuy mô hình bảo mật trong quản trị mạng dựa trên nền web có nhiều ƣu điểm nhƣng vẫn không tránh khỏi những cuộc tấn công có chủ định để đánh cắp, phá hoại thông tin. Trong tƣơng lai chúng ta có thể xây dựng hoặc sử dụng kết hợp nhiều giao thức bảo mật vào việc quản trị mạng dựa trên nền web.
Việc quản trị và bảo mật trong mô hình quản trị mạng đƣợc minh họa cụ thể bằng cách mô tả một chƣơng trình quản trị mạng ở chƣơng tiếp sau đây.
CHƢƠNG 4: BẢO ĐẢM AN NINH CHO HỆ THỐNG QUẢN TRỊ MẠNG MÃ NGUỒN MỞ CACTI
Với sự phát triển của các mạng máy tính thì chúng ta có thể sử dụng rất nhiều chƣơng trình để quản trị nhƣ PRTG Network Monitor, HP openView,Cacti… Nhƣng chƣơng trình quản trị mã nguồn mở Cacti là dễ sử dụng và hiệu quả khá