2008-09-26 9 views
6

Tôi sẽ xem xét một số mã khách hàng mà tôi đã kế thừa để thực hiện giao tiếp bảo mật qua HTTPS và có vẻ như nó không kiểm tra tên chung trong chứng chỉ máy chủ (ví dụ: ' CN = "example.com" "đối với URL thực đang được yêu cầu. Đây có thể là cố ý, vì ứng dụng khách của chúng tôi bắt buộc phải nói chuyện với nhiều môi trường khác nhau, vì vậy sau khi liên hệ với cổng ban đầu (ví dụ: example.com/main) và người dùng chọn môi trường ứng dụng sẽ được chuyển hướng đến một IP cụ thể, vì vậy tất cả các yêu cầu trong tương lai trông giống như "http://127.0.0.1/page".Tác động bảo mật của việc tắt Kiểm tra tên chung cho HTTPS

Tuy nhiên là một newbie SSL, tôi không chắc chắn về tác động của việc vô hiệu hóa séc này. có thể dễ dàng hơn để thực hiện một số loại man-in-the-middl e tấn công, vì ai đó khác chỉ có thể sao chép chứng chỉ của chúng tôi và giả vờ là một trong các máy chủ của chúng tôi. Nhưng nếu chúng tôi đang thực hiện kiểm tra tên chung, bạn sẽ có thể làm điều tương tự với các thiết lập DNS tùy chỉnh, vì vậy nó dường như không thực sự đạt được chúng tôi bất cứ điều gì. Có những cuộc tấn công nào khác khiến chúng tôi mở cửa mà chúng tôi sẽ không khác không?

Cảm ơn

Trả lời

0

Để làm được điều tương tự với "thiết lập DNS tùy chỉnh" những kẻ tấn công phải khai thác một máy chủ DNS (của bạn hoặc của khách hàng) để trỏ example.com để một IP ông kiểm soát, như trái ngược với chỉ cần sao chép các chứng chỉ. Nếu có thể tôi sẽ tạo tất cả các ứng dụng cụ thể dưới dạng tên miền phụ của example.com và sử dụng chứng chỉ ký tự đại diện (* .example.com) để có thể xác thực CN.

9

Người khác không thể chỉ sao chép chứng chỉ của bạn và sử dụng chứng chỉ vì họ không có khóa riêng tư của bạn.

Nếu bạn không kiểm tra CN của chứng chỉ không khớp với tên miền thì họ có thể tạo chứng chỉ riêng (và có chữ ký của CA đáng tin cậy để có vẻ hợp lệ), sử dụng nó thay cho bạn và thực hiện một người đàn ông trong cuộc tấn công ở giữa.

Ngoài ra, bạn cần kiểm tra chứng chỉ đến từ một CA đáng tin cậy. Đó là công việc của CA để đảm bảo rằng bạn chỉ có thể nhận được chứng chỉ với CN = nếu bạn thực sự kiểm soát miền đó.

Nếu bạn bỏ qua một trong các kiểm tra này thì bạn có nguy cơ bị tấn công MITM.

Xem thêm this answer để biết cách tiếp cận khác sẽ hoạt động nếu bạn có toàn quyền kiểm soát khách hàng.

+0

Không phải là họ có thể tạo chứng chỉ tự ký của riêng họ, nhưng họ có thể sử dụng bất kỳ chứng chỉ nào họ nhận được từ một CA đáng tin cậy, bất kể tên miền. –

+0

Cả hai đều có khả năng - nếu họ không kiểm tra CN, có lẽ họ cũng không kiểm tra Tổ chức phát hành. – AviD

+0

Vâng, tôi đã quên mất phần khóa riêng của mọi thứ. Cảm ơn. – user22627

4

Nếu bạn kiểm soát mã máy khách, bạn có thể hạn chế các CA đáng tin cậy chỉ là của riêng bạn. Sau đó, việc kiểm tra tên miền ít quan trọng hơn - bất kỳ máy chủ nào của bạn có thể giả vờ là một máy chủ khác.

Nếu bạn không kiểm soát mã máy khách, thì một chứng chỉ được ký bởi một CA đáng tin cậy có thể được thay thế cho bạn.

+0

Có ý nghĩa - chúng tôi đã có chứng chỉ gốc toàn bộ vì vậy tôi có thể nhúng chứng chỉ gốc vào ứng dụng khách và bỏ các chứng chỉ CA stanard để chỉ những chứng chỉ gốc của chúng tôi được chấp nhận. Cảm ơn. – user22627

0

Xác minh tên máy chủ (xác minh phần CN) đảm bảo rằng đầu kia của kết nối (máy chủ) đang gặp sự cố Chứng chỉ SSL với tên miền bạn đã nhập vào thanh địa chỉ. Thông thường kẻ tấn công sẽ không thể nhận được chứng chỉ như vậy.

Nếu bạn không xác minh phần tên máy chủ, ai đó (ai đó ngồi ở bất kỳ bộ định tuyến hoặc proxy nào yêu cầu đi qua) có thể làm một người đàn ông trong cuộc tấn công ở giữa. Hoặc ai đó có thể khai thác một số tấn công DNS.

3

$ 0,02: sử dụng CN cho tên máy chủ không được chấp nhận, thay vào đó, X.509 Subject Alternate Names nên được sử dụng.

+0

Bất kỳ cơ hội tham chiếu nào? :) –

+1

@ThomasBratt: http://tools.ietf.org/html/rfc2818#section-3.1 – Bruno

2
  • Xác minh chính chứng chỉ và chứng chỉ có thể được xích vào chứng chỉ CA bạn đã tin cậy cho phép bạn kiểm tra chứng chỉ là chính hãng và hợp lệ.
  • Kiểm tra tên máy chủ trong chứng chỉ cho phép bạn kiểm tra bạn đang nói chuyện với máy chủ bạn định nói chuyện, miễn là bạn đã xác minh chứng chỉ hợp lệ. (. Kiểm tra rằng bên từ xa thực sự là một trong những cách giữ phím riêng cho chứng chỉ được thực hiện trong SSL/TLS bắt tay)

Nếu bạn muốn một tương tự với hộ chiếu/ID kiểm tra cho người dân:

  • Xác minh chứng chỉ giống như việc kiểm tra hộ chiếu hoặc mẫu ID là chính hãng. Bạn có thể quyết định loại ID bạn muốn chấp nhận từ một người (ví dụ: hộ chiếu, giấy phép lái xe, thẻ nhân viên, ...) và các quốc gia phát hành nào bạn tin cậy để có thể xác minh tính xác thực của họ.
  • Kiểm tra xem bên từ xa có phải là tổ chức giữ khóa riêng tương tự như kiểm tra xem hình ảnh trên hộ chiếu/ID có khớp với khuôn mặt của người đó trước mặt bạn hay không.
  • Kiểm tra tên máy chủ giống như việc kiểm tra hộ chiếu thuộc về người có tên bạn đang tìm kiếm.

Nếu bạn không kiểm tra tên máy chủ, bất kỳ ai có hộ chiếu hợp lệ mà bạn cho là chính hãng đều có thể đến và xác nhận họ là người bạn đang tìm kiếm (theo tên).

Trong một số trường hợp rất hạn chế, nơi bạn chỉ tin cậy một CA cụ thể hoặc chứng chỉ tự ký, nơi bạn cho phép bất kỳ chứng chỉ tiềm năng nào mạo danh bất kỳ người nào khác trong toàn bộ chứng chỉ mà bạn tin tưởng, có thể chấp nhận để bỏ qua xác minh này , nhưng điều này rất hiếm, và thực hành không tốt.

Kiểm tra tên trong hộ chiếu khớp với tên của người bạn đang tìm kiếm sẽ được coi là thông thường; làm điều đó cho các chứng chỉ. Không làm như vậy cho phép bất kỳ ai có chứng chỉ mà bạn tin tưởng là chính hãng để mạo danh bất kỳ chứng chỉ nào khác mà bạn tin tưởng, do đó có khả năng thực hiện các cuộc tấn công MITM.

Quy tắc xác minh tên máy chủ lưu trữ HTTPS được xác định trong RFC 2818 Section 3.1 (cũng gần đây hơn trong thông số "phương pháp hay nhất", RFC 6125, chưa được triển khai nhiều).

Tóm lại, tên máy chủ phải nằm trong mục nhập DNS thay thế chủ đề (mặc dù bạn có thể quay trở lại CN của Subject DN mà không có SAN trong chứng chỉ). Khi bạn đang sử dụng địa chỉ IP, địa chỉ IP phải nằm trong mục nhập địa chỉ IP SAN (mặc dù một số trình duyệt sẽ cho phép bạn thoát khỏi địa chỉ IP trong CN của Subject DN).