Tải bản đầy đủ (.pdf) (11 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (432.15 KB, 11 trang )








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ỉ 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
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

Để 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.
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.

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
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
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
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:

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.
Đó 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.

×