Secure Socket Layer – SSL (Phần 3): Giải pháp bảo mật cho website với SSL

Tiếp nối phần 2, ở bài viết tiếp theo này tôi xin giới thiệu đến các bạn các phương pháp xây dựng hệ thống Web Server xác thực bằng SSL.

Secure Socket Layer – SSL (Phần 1): Tổng quan và cấu trúc SSL

Secure Socket Layer – SSL (Phần 2): Các giao thức bảo mật SSL.

Các loại chứng chỉ dùng cho SSL

Khi triển khai SSL, có hai loại chứng chỉ có thể được dùng là:

  • Chứng chỉ cho Web server: một Web server muốn áp dụng SSL thì bắt buộc phải có loại chứng chỉ này. Nó được dùng để mã hóa khóa pre-master được Web client gửi cho Web server và đồng thời giúp xác minh nhận dạng của Web server để Web client có thể tin tưởng rằng đó không phải là Web server giả mạo được kẻ tấn công dựng lên. Chứng chỉ của Web server phải bao gồm Server Authentication OID trong extension Enhanced Key Usage.
  • Chứng chỉ cho Web client: Khi một Website yêu cầu người dùng kết nối tới nó phải được xác thực thì Web client có thể sử dụng loại chứng chỉ này. Tuy các kết nối SSL không ép buộc điều này nhưng nó giúp tăng độ an toàn cho Web server trong trường hợp chỉ cho phép những người dùng được xác thực (Web client của họ được cài loại chứng chỉ này) kết nối tới nó. Chứng chỉ của Web client phải bao gồm Client Authentication OID trong extension Enhanced Key Usage.

Chọn nhà cung cấp chứng chỉ SSL cho Web server

Việc lựa chọn sẽ nhận chứng chỉ cho Web server từ đâu (CA nào) thường dựa trên việc xem xét các Web client thuộc nội bộ hay bên ngoài tổ chức. Các client nội bộ là nhân viên hoặc đối tác mà có thể có hoặc không được cấp các tài khoản dùng trong mạng của tổ chức. Các client bên ngoài thường là các khách hàng mà không được cấp các tài khoản dùng trong mạng của tổ chức.

Thường một CA riêng tư (private CA) được xây dựng để cấp chứng chỉ cho các Web server nội bộ khi:

  • Tổ chức phải tuân thủ các chính sách an ninh và chính sách chứng chỉ do họ đề ra. Trong khi đó, một chứng chỉ do một CA thương mại (như Verisign) cấp yêu cầu tổ chức phải tuân theo tập các chỉ dẫn trong CPS của CA đó.
  • Tổ chức muốn giảm chi phí mua chứng chỉ từ các CA thương mại vì các Web server chỉ cần chấp nhận các kết nối từ các nhân viên và những đối tác được tin cậy khác là đủ. Trong trường hợp này, các nhân viên và đối tác được yêu cầu phải tin cậy và cài đặt chứng chỉ của các CA của tổ chức.

Thường một CA thương mại (commercial CA) được chọn để cấp chứng chỉ cho các Web server của tổ chức khi:

  • Tổ chức không muốn triển khai một hạ tầng PKI nội bộ để giảm chi phí cho việc thiết kế, triển khai và quản lý CA và các chứng chỉ.
  • Tổ chức sử dụng Website để bán hàng hóa và cung cấp các dịch vụ qua Internet cho nhiều đối tượng khách hàng khác nhau, và các CA thương mại mặc định đã được tin cậy bởi hầu hết các Web client. Điều này vì vậy mang lại sự thuận tiện và đảm bảo cho các giao dịch điện tử.
  • Tổ chức muốn triển khai chứng chỉ EV (Extended Validation) để thanh địa chỉ của Web browser sẽ chuyển sang màu xanh và có tên của tổ chức ở bên trái. Điều này nói lên rằng CA thương mại đã bỏ thêm tài nguyên và thời gian để xác minh người sở hữu chứng chỉ SSL của website thực sự là đại diện của tổ chức. Cũng vì vậy mà chứng chỉ EV luôn mắc hơn các chứng chỉ loại thông thường.

Thanh địa chỉ của các Web browser cho biết Website sử dụng một EV certificate

Xác định vị trí đặt chứng chỉ của Web server

Việc lựa chọn vị trí triển khai chứng chỉ cho Web server phụ thuộc vào cấu hình mạng của tổ chức. Dưới đây là hai trường hợp thường gặp.

  • Với một Web server

Nếu chỉ có một Web server hoạt động thì hiển nhiên chứng chỉ phải được đặt tại Web server đó như được thể hiện trong Hình dưới đây:

  • Với một nhóm các Web server

Ở cấu hình gom nhóm này, website có thể nằm trên ổ đĩa dùng chung bởi nhiều máy chủ hoặc mỗi máy chủ có ổ đĩa riêng để lưu trữ bản sao của website. Trong mỗi trường hợp thì khi người dùng kết nối tới một URL nào đó thì họ được chuyển hướng tới bất kỳ máy chủ nào trong cụm các máy chủ (cluster). Đây là cơ chế căn bằng tải cho lưu lượng mạng (Network Load Balancing) như được thể hiện trong Hình dưới đây:

Khi đó mỗi Web server trong cluster sẽ phải có một chứng chỉ SSL của riêng nó. Yêu cầu duy nhất là trường subject name của chứng chỉ cần trùng với tên miền mà Web client sử dụng để kết nối tới website.

Một sự hiểu nhầm thường gặp là cho rằng các Web server trong cluster phải có một chứng chỉ SSL cùng với khóa bí mật giống nhau. Thực ra nếu mua các chứng chỉ cho từ các tổ chức thương mại như VeriSign hay RSA thì rất có thể họ yêu cầu khách hàng cần các chứng chỉ khác nhau cho mỗi Web server.

  • Web Server được bảo vệ bởi ISA Server với cấu hình Server Publishing

Khi áp dụng cấu hình Server Publishing trong ISA Server thì tất cả các lưu lượng kết nối tới cổng TCP 443 mà ISA Server đang lắng nghe trên đó sẽ được chuyển hướng tới Web server nằm đằng sau firewall này:

Trong cấu hình này, chứng chỉ SSL phải được cài đặt tại Web server. Tên miền trong trường Subject của chứng chỉ phải khớp với tên miền mà Web client dùng để kết nối tới giao tiếp mạng ngoài (external interface) của ISA Server. Nói cách khác, tên miền này phải được phân giải thành địa chỉ IP được gán cho card giao tiếp mạng ngoài của ISA Server. Dạng cấu hình này được cũng được hỗ trợ bởi nhiều firewall phổ biến khác của Cisco hay Checkpoint. Như vậy, yêu cầu được thỏa mãn là triển khai mã hóa dữ liệu được truyền giữa giữa hai điểm đầu cuối là Web server và Web client.

  • Web Server được bảo vệ bởi ISA Server với cấu hình Web Publishing

Khi áp dụng cấu hình Web Publishing, dữ liệu mà ISA Server tiếp nhận từ Web client sẽ được giải mã và kiểm duyệt bằng các bộ lọc ở tầng ứng dụng (ví dụ, URL Scanning) để phát hiện những lưu lượng Web có thể là mã độc hoặc các dạng tấn công Web khác. Có hai lựa chọn để sử dụng SSL với cấu hình Web Publishing là:

a.Triển khai SSL cho kết nối giữa hai điểm đầu cuối (End-to-End SSL)

Ở đây, SSL được thực hiện giữa Web client và ISA Server cũng như là giữa ISA Server và Web server.

Hai chứng chỉ SSL khác nhau phải được cài đặt ở cả ISA Server và Web server và hai kết nối SSL tách biệt được thiết lập là:

  1. Kết nối SSL đầu tiên xảy ra giữa Web client và ISA Server. Trường Subject của chứng chỉ được cài tại ISA Server phải chứa tên miền mà Web client sử dụng để kết nối tới Web server, và tên miền này phải được phân giải thành địa chỉ IP mặt ngoài của ISA Server.
  2. Kết nối SSL thứ hai xảy ra giữa ISA Server và Web server. Trường Subject của chứng chỉ được cài tại Web server phải chứa tên miền hoặc địa chỉ IP giống với thiết lập Web Publishing tại ISA Server.

b. Triển khai SSL giữa Web client và ISA Server

Kết nối SSL chỉ được thực hiện giữa Web client và ISA Server.

Chỉ cần một chứng chỉ SSL được cài đặt tại ISA Server. Lưu lượng HTTPS từ Web client sau khi được giải mã và kiểm duyệt bởi bộ lọc tầng ứng dụng của ISA Server sẽ được chuyển tới Web server dưới dạng HTTP (không được mã hóa) thông thường.

Ở đây, trường Subject của chứng chỉ của Web server phải chứa tên miền mà Web client dùng để kết nối tới Web server và tên miền này phải được phân giải thành địa chỉ IP mặt ngoài của ISA Server.

Lựa chọn mẫu chứng chỉ

Mẫu chứng chỉ Web Server mặc định sẽ đáp ứng nhu cầu của hầu hết các tổ chức muốn triển khai SSL cho các máy chủ Web nội bộ. Thay đổi duy nhất phải được thực hiện là chỉnh lại quyền hạn của mẫu chứng chỉ này để cho phép quyền Read và Enroll được gán cho universal hoặc global group mà chứa các tài khoản người dùng quản trị Web server.

Cấp phát chứng chỉ cho máy chủ Web

Các lựa chọn để cấp chứng chỉ từ một Windows Server-based Enterprise CA là:

  • Cấp chứng chỉ cho các máy chủ web chạy IIS nằm trong domain.
  • Cấp chứng chỉ cho các máy chủ web chạy IIS không nằm trong domain.
  • Cấp chứng chỉ cho các máy chủ web không phải IIS như Apache, Lighthttpd, v.v..
Advertisements

About Argron Nguyen's Blog

Vietnamese. Photographer. Writer. Illustrator. IT-er. All to some extent.

Posted on 30.10.2012, in Network Security. Bookmark the permalink. %(count) bình luận.

  1. Chào bạn! Hiện tại mình đang làm đồ án tốt nghiệp về SSL VPN. Bạn có thể viết 1 bài về cơ chế hoạt động của SSL VPN được không? Mình thấy bài viết của bạn có viết SSL VPN không cung cấp những kết nối site – to – site. Vậy nó chỉ cung cấp kết nối remote – access?

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: