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

Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx

24 326 0

Đ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 24
Dung lượng 254,89 KB

Nội dung

Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) Phần II Trong phần đầu tiên của loạt bài này, các bạn đã được hướng dẫn cách cài đ ặt, cấu h m ềm Apache 2.0 hỗ trợ SSL/TLS. Bây giờ, phần hai sẽ tiếp tục thảo luận vấn đề thiết lập modul mod_ssl để đạt được mức an toàn cao nhất và sự thực thi tối ưu. Đ ồng thời các bạn cũng sẽ đ thế nào để tạo ra một Quyền hạn chứng chỉ (Certification Authority) nội bộ v à m trên thư viện nguồn mở OpenSSL. Những yêu cầu thiết lập cho mod_ssl Trong Apache 2.0.52 có hơn 30 hướng dẫn có thể dùng để cấu hình mod_ssl . B hướng dẫn này có thể tìm thấy trong Apache's mod_ssl documentation. Ph ần n yêu cầu thiết lập để nâng cao độ an toàn và sự thực thi của kết nối SSL/TLS. Danh sách các thiết lập này được chỉ ra trong bảng dưới đây: Chỉ thị Các yêu c ầu thiết lập hoặc chú thích SSLEngine Ph ải đặt ở chế độ cho phép, nếu không th trạm ảo) sẽ không dùng SSL/TLS đư ợc SSLRequireSSL Ph ải đặt ở chế độ cho phép, nếu không ng cập nội dung web qua các yêu c ầu HTTP thông th không cần chút gì tới SSL/TLS. SSLProtocol SSLProxyProtocol Nên thiết lập chế độ chỉ d ùng TLS v1.0 và SSL v3.0. H các web browser hi ện nay đểu hỗ trợ cả hai. V th ể vô hiệu hoá SSL v2.0 một cách an to SSLCipherSuite SSLProxyCipherSuite Để tạo ra phương thức mã hoá m ạnh, tham số n HIGH (>168 bits) và MEDIUM (128 bits). M bits) và NULL (không mã hoá) đ ặt bộ m vô hiệu hoá. Nên vô hi ệu hoá tất cả các bộ m dạng nặc danh (aNULL). Nhưng c ũng tuỳ mục đích. Nếu chúng ta muốn hỗ trợ cho web browser m à không c dùng bộ m ã hoá EXPORT (56 bit và 40 bit). chúng ta nên dùng SHA1 hơn là MD5. B an toàn hơn MD5, sau khi phát hi ện ra các xung đột trong MD5. Tóm lại, các thiết lập cần thiết n ên là: HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM Chú ý: có th ể xem các thiết lập hỗ trợ bộ m openssl ciphers -v 'HIGH:MEDIUM:\ !aNULL:+SHA1:+MD5:+HIGH:+MEDIUM' SSLOptions Tuỳ chọn "+StrictRequire" nên đư ợc thiết lập, nếu không chỉ thị "Satisfy Any" có th ể ép mod_ssl cho phép truy cập nội dung web ngay cả khi SSL/TLS không đư ợc d SSLRandomSeed Để khởi động Apache nên cài đ ặt để sử dụng thiết bị ngẫu nhi giả (/dev/urandom) và/ho ặc EGD (Entrophy Gathering Daemon). Trư ớc khi mỗi kết nối SSL mới đ cấu hình lại để dùng nguồn được c ài đ EGD. Không nên dùng /dev/random trong c Bởi vì /dev/random ch ỉ có thể cung cấp nhiều entropy tại một thời điểm nhất định nào đó. SSLSessionCache Đ ể tránh lặp lại các “bắt tay” SSL cho các y song (ví d ụ khi web browser tải nhiều h khoảng thời gian), SSL caching n ên đư để dùng b ộ nhớ chia sẻ (SHM), hoặc DBM. Khi thiết lập n "none", th ực thi của web server có thể giảm một cách đáng kể. SSLSessionCacheTimeout Giá trị này mô t ả số giây thời gian sau k SSLSessionCache hết hiệu lực. Nó n ên đư 600 giây. Tuy nhiên th ời gian thực phụ thuộc v trung bình người dùng s ử dụng trong mỗi lần viếng thăm web server. Ví dụ nếu thời gian trung b ình là kho trị thiết lập nên ít nhất l à 900 (15 phút * 60 giây). SSLVerifyClient SSLProxyVerify Khi không dùng b ộ nhận dạng client hay proxy, các tuỳ chọn này nên đ ặt ở chế độ “none”. Không bao giờ n chế độ "optional_no_ca". Bởi vì ngư ợc lại PKI, những chỗ nào client đư ợc nhận dạng, chúng phải đ các chứng chỉ phù h ợp. “Optional” thỉnh thoảng đ thuộc xem là cần hay không), tuy nhi ên nó có th việc với tất cả các web browser. SSLVerifyDepth SSLProxyVerifyDepth Nên là con s ố lớn nhất của CA trung gian. Ví dụ, để lấy chỉ các chứng chỉ tự kí nên đặt nó l à 0, cho các ch bởi Root CA, nên đặt là 1… SSLProxyEngine Nên vô hi ệu hoá (đặt ở chế độ disable), nếu c proxy không được dùng. Bảng 1. Các thiết lập cần thiết cho mod_ssl. Thiết lập mẫu của chúng ta tương ứng với các hướng dẫn trên có thể tìm th ấy trong SSLEngine on SSLOptions +StrictRequire <Directory /> SSLRequireSSL </Directory> SSLProtocol -all +TLSv1 +SSLv3 # Support only for strong cryptography SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM # Support for strong and export cryptography # SSLCipherSuite HIGH:MEDIUM:EXP:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM:+E SSLRandomSeed startup file:/dev/urandom 1024 SSLRandomSeed connect file:/dev/urandom 1024 SSLSessionCache shm:/usr/local/apache2/logs/ssl_cache_shm SSLSessionCacheTimeout 600 SSLVerify none SSLProxyEngine off Ngoài các hướng dẫn về mod_ssl ở trên còn có hai ph ần quan trọng khác trong Apache modules (mod_log_config và mod_set_envif) cũng cần được cài đ ặt theo bảng 2 sau đây: Chỉ thị Yêu cầu thiết lập hoặc chú thích CustomLog Để ghi thông tin về tham số của SSL (yêu c ầu tối thiểu: phi của giao thức và bộ mã hoá đư ợc chọn) chúng ta n sau: CustomLog logs/ssl_request_log \ "%t %h %{HTTPS}x %{SSL_PROTOCOL}x %{SSL_CIPHER}x %{SSL_CIPHER_USEKEYSIZE}x %{SSL_CLIENT_VERIFY}x \"%r\" %b" Setenvif Để tương thích với các phiên b ản cũ của MS Internet Explorer với các l ỗi trong phần thực thi SSL (ví dụ các vấn đề với h alive, HTTP 1.1 trên SSL, các cảnh bào chú ý đóng SSL trên socket cuối kết nối. Các tuỳ chọn sau nên thiết lập: SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 Tuỳ chọn trên là nguyên nhân web server sẽ d ùng HTTP/1.1 ho kết nối keep – alive và s ẽ không gửi chú ý đóng SSL khi web browser là MS Internet Explorer. Bảng 2. Các yêu cầu thiết lập cho mod_log và mod_set_envif. File cấu hình mẫu (httpd.conf) thể hiện trong bài trước đã bao g ồm các tuỳ chọn tr thuận tiện hơn. Bộ nhận dạng web server Cho tới giờ, chúng ta có thể cấu hình và kiểm tra SSL/TLS, nh ưng web browser c kiểm tra được nhận dạng của web server. Trong bài đầu tiên, chúng ta đ ã dùng m được tạo ra nhằm mục đích kiểm tra và không chứa các thông tin yêu c ầu cho nhận dạng thực v dịch thương mại. Để web browser nhận dạng thành công web server, chúng ta c ần tạo ra một chứng chỉ web server ph hợp, nên bao gồm:  Khoá thông thường cho web server  Ngày tháng có hiệu lực (ngày bắt đầu và ngày hết hạn)  Hỗ trợ các thuật toán mã hoá  Bộ tên riêng biệt (DN), phải bao gồm đầy đủ tên mi ền có giá trị của web server, đ là tên thông thường (CN). Tuy nhiên cũng có thể có một số thành ph ần khác nh [...]... 00:c1:19:c7:38:f4:89:91 :27 :a2:1b:1d:b6:8d:91: 48:63:0e:3d:0d:2e:f8:65:45:56:db:98:4d:11 :21 : 01:ac:81:8e:3f:64:4a:8a:3f :21 :15:ca:49:6e:64: 5c:5d:a2:ab:5a:48:cb:2a:9f:0c: 02: b9:ff: 52: f6: d9:39:6d:a3:4a:94:41:f9:e9:ab:f0: 42: fb:68:9a: 4b:53:41:e7:4f:b0:2b: 02: d7: 92: a2:2b: 02: a2:f9: f1:2d:68:fa:50:01:2f:49:c1 :28 :2f:a8:c6:6d:6d: ab:1d:b9:bd:c9:80:63:f1:d6 :22 :19:de:2d:4a:43: 50:76:79:7e:a5:5a:75:af:19 Exponent: 65537... sha1WithRSAEncryption 45:30:9d:04:0e:b7:86:9e:61:a1:b0:68:2b:44:93:1c:57:2a: 99: 42: bb:16:b1:ab:f5:c0:d2:33: 12: c8:d3:1d:2b:bb:6b:9a: 4c:c7:53:bc:e4:88:ef:1e:c3:37:ed:53:2c:15:cf:b8:90:df: df:4b:34:b8:db:cc :23 :77:46:06: 72: 9d:43:60:a8:a2:ed:0a: bb:1a:a4:e8:4e:ba:66:93:63:74:87:fd:43:48:b6:93:a2:e3: 3d:da:1b:64:46:35:88:b4:4b :22 :e6:3c:84:70:5d:88:dd:64: c2:51:c2:d6:59:80:87:bc:bd:7f:e3:c1:45:7e:c0:5f:9c:ca: e1:a1... Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: O=Seccure, OU=Seccure Root CA Validity Not Before: Nov 28 01:00 :20 20 04 GMT Not After : Nov 28 01:00 :20 20 05 GMT Subject: O=Seccure, OU=Seccure Labs, CN=www.seccure.lab Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1 024 bit) Modulus (1 024 bit): 00:c1:19:c7:38:f4:89:91 :27 :a2:1b:1d:b6:8d:91:... dXJlMRgwFgYDVQQLEw9TZWNjdXJlIFJvb3QgQ0EwHhcNMDQxMT ou0Kuxqk6E66ZpNjdIf9Q0i2k6LjPdobZEY1iLRLIuY8hHBdiN1kwlHC1 f+PBRX7AX5zK4aE= -END CERTIFICATE - Định dạng TXT + PEM (*.crt, *.cer, *.pem, *.txt) Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: O=Seccure, OU=Seccure Root CA RSA Public Key: (1 024 bit) Modulus (1 024 bit): 00:c1:19:c7:38:f4:89:91 :27 :a2:1b:1d:b6:8d:91: X509v3 extensions:... server Quá trình thu được một chứng chỉ kí bởi một CA tin cậy bao gồm các bước sau 1 Bước đầu tiên chúng ta nên tạo một cặp khoá public/private (trong server (trong request.pem) như sau: openssl req \ -new \ -sha1 \ -newkey rsa:1 024 \ -nodes \ -keyout server.key \ -out request.pem \ -subj '/O=Seccure/OU=Seccure Labs/CN=www.seccure.lab' 2 Bây giờ chúng ta phải gửi yêu cầu chứng chỉ tới CA (trong request.pem)... openssl req \ -new \ -x509 \ -days 365 \ -sha1 \ -newkey rsa:1 024 \ -nodes \ -keyout server.key \ -out server.crt \ -subj '/O=Seccure/OU=Seccure Labs/CN=www.seccure.lab' Các câu lệnh trên sẽ tạo ra một chứng chỉ mới (-new), có tên (-x509), có giá trị 365), và sẽ được kí bằng cách dùng thuật toán SHA1 (-sha1) Khoá private RS newkey rsa: 1 022 4), và không cần bảo vệ bằng mật khẩu (-nodes) Chứng chỉ v public/private... tạo các chứng chỉ web server Thông thường c chúng ta có thể dùng: 1 Chứng chỉ tự kí (self-signed certificate) 2 Chứng chỉ được chứng nhận bởi CA (hầu hết) 3 Chứng chỉ được kí bởi CA nội bộ Phần dưới đây sẽ mô tả chi tiết phương thức tạo các chứng chỉ trên Kết quả cu thức nào được dùng sẽ chỉ có 2 file:  server.key – khoá private của web server  server.crt - chứng chỉ mã hoá PEM bao gồm cả khoá public... xuyên (như do cập nhật lại code, một lỗ hình, v.v…) 2 Nếu một kẻ xâm nhập nào đó chế ngự và lấy đi khoá private trên web server phá hoại và kẻ xâm nhập có quyền truy cập vào hệ điều hành của web server ở này, kẻ xâm nhập có thể lấy cắp mật khẩu bằng cách cài keylogger Và sau đó, khởi động lại hệ thống để ép người quản trị nhập lại mật khẩu Kẻ xâm nhập có Apache và tìm ra khoá private của web server lưu... dựa trên một số giá trị thể hiện trong bảng 3 Để tạo ra một chứ thay thế một số giá trị này bằng tên công ty hay tổ chức của bạn: Mô tả thuộc Thuộc Ví dụ mẫu tính tính Mã quốc gia C C = PL S S = mazowi (2 kí tự) Bang hay tỉnh Khu vực L L = Warsaw Tên tổ chức O O = Seccure OU OU = Seccu Đơn vị tổ chức Tên thông CN CN thường = www.secc Bảng 3 Ví dụ mẫu cho một chứng chỉ đúng Có nên dùng mật khẩu để bảo... phối và cài đặt nó trên mọi we với web server Nếu không thì khi web browser đòi hỏi một kết nối, nó sẽ khôn nhận dạng của web server Trong môi trường Windows, điều này được thể hiện dưới đây: Phương thức 2: Chứng chỉ được kí bởi CA Tạo một yêu cầu chứng chỉ và kí nó bằng một CA tin cậy (chẳng hạn như Vers cách được dùng nhiều nhất để biết web server SSL có được đưa vào internet ha cận này thì không cần . Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) Phần II Trong phần đầu tiên của loạt bài này, các bạn đã được hướng dẫn cách cài. 01:ac:81:8e:3f:64:4a:8a:3f :21 :15:ca:49:6e:64: 5c:5d:a2:ab:5a:48:cb:2a:9f:0c: 02: b9:ff: 52: f6: d9:39:6d:a3:4a:94:41:f9:e9:ab:f0: 42: fb:68:9a: 4b:53:41:e7:4f:b0:2b: 02: d7: 92: a2:2b: 02: a2:f9:

Ngày đăng: 26/02/2014, 12:20

HÌNH ẢNH LIÊN QUAN

cấu hình lại để dùng nguồn được cài đ - Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx
c ấu hình lại để dùng nguồn được cài đ (Trang 5)
Bảng 1. Các thiết lập cần thiết cho mod_ssl. - Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx
Bảng 1. Các thiết lập cần thiết cho mod_ssl (Trang 6)
Bảng 2. Các yêu cầu thiết lập cho mod_log và mod_set_envif. - Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx
Bảng 2. Các yêu cầu thiết lập cho mod_log và mod_set_envif (Trang 9)
Ví dụ tiếp theo dựa trên một số giá trị thể hiện trong bảng 3. Để tạo ra một chứng chỉ đúng, các bạn cần thay thế một số giá trị này bằng tên công ty hay tổ chức của bạn:  - Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx
d ụ tiếp theo dựa trên một số giá trị thể hiện trong bảng 3. Để tạo ra một chứng chỉ đúng, các bạn cần thay thế một số giá trị này bằng tên công ty hay tổ chức của bạn: (Trang 14)
Bảng 3. Ví dụ mẫu cho một chứng chỉ đúng - Tài liệu Apache 2 hỗ trợ SSL/TLS: Hướng dẫn từng bước (Phần II) potx
Bảng 3. Ví dụ mẫu cho một chứng chỉ đúng (Trang 15)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w