intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS

Chia sẻ: Rer Erer | Ngày: | Loại File: PDF | Số trang:11

127
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS .Bài này kết thúc loạt ba bài giới thiệu về cách cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS để an ninh tối đa và thực thi tối ưu cho SSL dựa trên các giao dịch thương mại điện tử. Phần I giới thiệu các khía cạnh về khóa của SSL/TLS, và chỉ ra làm cách nào để biên dịch, cài đặt, và cấu hình Apache 2.0. Phần II mô tả cấu hình của mod_ssl và các nguồn thẩm định. Đồng thời chỉ ra làm thế nào để tạo được các chứng...

Chủ đề:
Lưu

Nội dung Text: Cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS

  1. Cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS
  2. Bài này kết thúc loạt ba bài giới thiệu về cách cấu hình Apache 2.0 hỗ trợ giao thức SSL/TLS để an ninh tối đa và thực thi tối ưu cho SSL dựa trên các giao dịch thương mại điện tử. Phần I giới thiệu các khía cạnh về khóa của SSL/TLS, và chỉ ra làm cách nào để biên dịch, cài đặt, và cấu hình Apache 2.0. Phần II mô tả cấu hình của mod_ssl và các nguồn thẩm định. Đồng thời chỉ ra làm thế nào để tạo được các chứng chỉ SSL của web server. Bây giờ, trong phần III và cũng là phần cuối cùng của bài này, chúng ta sẽ xem đến bộ thẩm định client, dùng các chứng chỉ client. Đồng thời chúng ta sẽ biết được làm cách nào để chroot một Apache an toàn, thảo luận các phương hướng tẫn công. Sau đó là mô tả các lỗi cấu hình điển hình của các nhà quản trị làm giảm mức an toàn của truyền thông SSL. Bộ thẩm định Client (Client Authentication) Một phương thức phổ biến nhất để xác định người dùng trong các ứng dụng web là mật khẩu, nhóm mật khẩu hay PIN, theo nghĩa khác là “điều gì đó mà chỉ bạn biết”. “Lợi thế lớn nhất của một trong các phương thức này là sự đơn giản”. Với một nhà quản trị, điều đó đủ để thêm vào một file hướng dẫn trong http.conf và tạo ra một file mật khẩu để thực hiện như là một sơ đồ. Thật không may, chính sự đơn giản của mật khẩu lại là điểm yếu cho một số cuộc tấn công. Chúng có thể đoán, “đánh hơi” qua điện tín, chương trình
  3. brute-forced đánh cắp (chẳng hạn như khi người dùng ghi mật khẩu trên một ghi chú) hay dụ dỗ nói ra (qua một số mail về nghiên cứu xã hội hay một số loại phương thức “phishing”). Đó chính là lý do tại sao bộ thẩm định mật khẩu tiêu chuẩn lại bị xem như là yếu hơn so với việc dùng các mật khẩu một lần, mã phẫn cứng hay các dạng thẩm định khác. Một vài người nhận ra rằng, khi dùng web server SSL, có một phương thức mạnh hơn với bộ thẩm định người dùng: các chứng chỉ SSLclient, hay các chứng chỉ “cá nhân” cho mỗi người dùng. Trong phương thức này, chúng ta có thể kiểm định người dùng web dựa trên “một số điều bạn có”. Đó là dùng một chứng chỉ và một khoá private tương ứng với các chứng chỉ client, cũng giống như “một số điều bạn biết”, là cụm mật khẩu với khoá private. Do đó, dùng các chứng chỉ thì an toàn hơn là giải pháp mật khẩu tiêu chuẩn, chủ yếu là vì một kẻ phá hoại sẽ phải cần hai phần của bộ thẩm định (khoá private tương ứng với chứng chỉ người dùng và cụm mật khẩu) để lấy được quyền truy cập. Hơn nữa, không giống như một mật khẩu chuẩn, cụm mật khẩu của chứng chỉ không thực sự được gửi qua mạng chút nào. Nó chỉ được sử dụng trên mạng cục bộ để giải mã khoá private. Phần sau sẽ chỉ ra cách thức thực hiện của phương thức thẩm định này không phức tạp. Nó chỉ trong vài bước. Người quản trị có thể thấy nó hầu như dễ hơn các phương thức mật khẩu kiểm định cơ bản thông thường. Cấu hình Apache để dùng chứng chỉ client
  4. Để cấu hình Apache hỗ trợ bộ kiểm định client qua chứng chỉ X.509v3, chúng ta cần thực hiện 4 việc sau: 1. Cho phép bộ kiểm định client trong web server của Apache Để cho phép dùng chứng chỉ client, chúng ta cần thêm các chỉ dẫn sau vào thư mục httpd.conf: SSLVerifyClient require SSLVerifyDepth 1 Cảm ơn chỉ dẫn SSLVerifyClient, truy cập vào web server giờ không còn bị giới hạn chỉ trong các web browser mà cho cả các chứng chỉ phù hợp được ký bởi CA cục bộ. (Chú ý: quá trình tạo CA cục bộ đã được mô tả trong bài trước) Giá trị “SSLVerifyDepth” chỉ rõ độ chuyên sâu nhất của nguồn cung cấp chứng chỉ trung cấp trong chuỗi chứng chỉ. Trong trường hợp của chúng ta, chúng ta sẽ lấy giá trị này là “1”, bởi vì tất cả các chứng chỉ client phải được ký bởi CA cục bộ. Chúng ta không dùng CAs trung cấp. 2. Cài đặt chứng chỉ địa phương CA vào cấu trúc thư mục Apache. install -m 644 -o root -g sys ca.crt /usr/local/apache2/conf/ssl.crt/ 3. Cài đặt thư mục SSLCACertificateFile (trong httppd.conf) để trỏ tới chứng chỉ CA chúng ta vừa cài đặt.
  5. SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca.crt 4. Bây giờ khởi động lại Apache /usr/local/apache2/bin/apachectl stop /usr/local/apache2/bin/apachectl startssl Từ bây giờ, truy cập vào web server qua SSL chỉ được chấp nhận đối với các web browser có chứng chỉ client hợp lý, được ký bởi CA cục bộ. Để kiểm tra điều này, bạn có thể truy cập vào URL của website. Sau khi thiết lập kết nối SSL MS Internet Explorer sẽ yêu cầu bạn chọn chứng chỉ client bạn muốn dùng, như trong hình 1: Hình 1. Internet Explorer yêu cầu một chứng chỉ client.
  6. Khi chưa có một chứng chỉ client được cài đặt, quyền truy cập vào web server đơn giản là bị từ chối. Tạo một chứng chỉ client Thông thường tạo một chứng chỉ client cá nhân rất giống với tạo một chứng chỉ web server. Chỉ có một điểm khác nhau là chúng ta sẽ dùng các đuôi mở rộng X.509v3 khác (phần “ssl_client” từ openssl.cnf). Và chúng ta sẽ lưu trữ cả khoá private và chứng chỉ theo định dạng PKCS (cũng giống như là PFX). Để đơn giản hơn, hãy thực hiện các bước dưới đây dùng OpenSSL để tạo các chứng chỉ client. Chú ý rằng, bất kỳ hành động nào do người dùng thực hiện (các bước 1, 2, 7, 8 bên dưới) nên được tự động hoá và đơn giản hoá phần tương tác người dùng và lỗi người dùng nhỏ đến mức có thể. Để kết thúc, có thể dùng thêm một số công nghệ như Java Applets. Mặt khác, một máy trạm chuyên dụng cũng có thể được dùng với mục đích tạo ra các chứng chỉ client. Trong trường hợp sau này, người dùng cần đích thân vào server và nhập mật khẩu trên máy trạm để giải mã khoá private của riêng họ. Mặc dù tùy chọn này hơi phiền phức, nhưng đó là phương thức an toàn nhất mà nhận dạng người dùng có thể được kiểm chứng; cả chứng chỉ và khoá private có thể được thông qua mà người dùng không cần phải gửi qua mạng. Các bước để tạo và cài đặt một chứng chỉ client chính xác như sau: 1. Tạo một cặp khoá private/public cho người dùng, cùng với yêu cầu chứng
  7. chỉ. Nếu máy trạm chuyên dụng không được dùng để phục vụ chứng chỉ, việc này nên thực hiện trên máy trạm của người dùng: openssl req \ -new \ -sha1 \ -newkey rsa:1024 \ -nodes \ -keyout client.key \ -out request.pem \ -subj '/O=Seccure/OU=Seccure Labs/CN=Frodo Baggins' 2. Người dùng gửi yêu cầu chứng chỉ (request.pem) tới CA cục bộ để được ký. 3. Nhiệm vụ của CA cục bộ là kiểm chứng các thông tin từ yêu cầu chứng chỉ client thực tế có hợp lý và đúng đắn không. 4. Sau khi kiểm chứng, yêu cầu chứng chỉ (request.pem) nên được sao chép vào thư mục $SSLDIR/requests trên máy trạm CA cục bộ, dùng các phương tiện di động như ổ USB. 5. CA cục bộ nên ký yêu cầu chứng chỉ như sau. Điều này nên chạy trên máy trạm của CA
  8. openssl ca \ -config $SSLDIR/openssl.cnf \ -policy policy_anything \ -extensions ssl_client \ -out $SSLDIR/requests/signed.pem \ -infiles $SSLDIR/requests/request.pem 6. CA cục bộ nên gửi chứng chỉ (signed.pem) cho người dùng 7. Sau khi nhận được chứng chỉ đã ký, người dùng cần lưu trữ khoá private cùng với chứng chỉ của nó theo dạng PKCS#12. openssl pkcs12 \ -export \ -clcerts \ -in signed.pem \ -inkey client.key \ -out client.p12 File client.p12 mới được tạo nên bảo vệ bằng một cụm mật khẩu khó tưởng tượng. Tất cả các file khác (gồm khoá private không được giải mã, chứng chỉ đã ký và yêu cầu chứng chỉ) nên được xoá an toàn khỏi đĩa người dùng, sử dụng tiện ích để xóa: wipe client.key signed.pem request.pem
  9. 8. Chứng chỉ client, cùng với khoá private nên được cài đặt trong web browser của người dùng. Ví dụ cho Microsoft Internet Explorer trong hình 2: Hình 2. Cài đặt một chứng chỉ trong Internet Explorer Để bảo vệ khoá private chống cách dùng tuỳ tiện và không được kiểm chứng, tuỳ chọn "Enable strong private key protection" nên được đánh dấu sử dụng. Cũng như thế, để bảo vệ chứng chỉ khỏi bị lấy cắp chúng ta không nên export chứng chỉ (tuỳ chọn "Mark this key as exportable" nên bị vô hiệu hoá). Cả hai tuỳ chọn cấu hình hệ thống này được chỉ ra trong hình 3:
  10. Hình 3. Bảo vệ chứng chỉ client trong Internet Explorer. Thêm vào đó, mức an toàn của browser nên đặt là “High”. Chúng ta sẽ xem phần này trong bước tiếp theo của Import Wizard, như được minh hoạ trong hình 4. Một người dùng sẽ luôn được yêu cầu nhập mật khẩu mỗi lần Web browser muốn dùng chứng chỉ client đó. Hình 4. Mức an toàn nên đặt là "High" trong IE.
  11. Đó là tất cả những điều cần phải làm. Chứng chỉ giờ có thể tìm thấy dưới tab “Personal” trong phần Certificat View (trong MS Internet Explorer vào Menu à Content à Certificates), Nếu chúng ta kích đúp vào chứng chỉ, chúng ta sẽ nhìn thấy một số thuộc tính tương tự hình 5 bên dưới: Hình 5. Chi tiết chứng chỉ Client certificate trong IE.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2