Tổng quan về các lỗi của quy trình handshake SSL / TLS

Bài viết sẽ cung cấp cho người dùng cái nhìn tổng quan về các lỗi handshake SSL/ TLS hay xảy ra về cả 2 phía người dùng internet và chủ sở hữu website.

 

Handshake SSL / TLS là quá trình bao gồm một loạt các bước mà cả hai bên – máy khách và máy chủ, xác nhận lẫn nhau và bắt đầu giao tiếp thông qua đường hầm SSL / TLS an toàn. Để hiểu rõ hơn về quá trình này bạn cũng có thể đọc bài viết này.

Để làm cho bài viết này dễ dàng hơn một chút, chúng tôi sẽ đưa tất cả các nguyên nhân có thể gây ra lỗi  Handshake SSL/ TLS và có thể khắc phục chúng, sau đó một chút chúng tôi sẽ có một phần dành riêng cho từng vấn đề và cách khắc phục chúng.

NGUYÊN NHÂN MIÊU TẢ  SỬA CHỮA
Thời gian hệ thống không chính xác Thiết bị khách hàng có ngày và giờ không chính xác  Khách hàng
Lỗi trình duyệt Cấu hình trình duyệt đang gây ra lỗi Khách hàng
Man-in-the-Middle  Một bên thứ ba đang chặn / thao tác kết nối Khách hàng
 Giao thức không khớp Giao thức được khách hàng sử dụng không được máy chủ hỗ trợ> Máy chủ
Bộ mã hóa không khớp Cipher Suite được khách hàng sử dụng không được máy chủ hỗ trợ Máy chủ
Chứng chỉ không chính xác
  • Tên máy chủ lưu trữ URL không khớp với tên máy chủ lưu trữ trên chứng chỉ máy chủ
  • Chuỗi chứng chỉ không đầy đủ / không hợp lệ được trình bày cho khách hàng
  • Đã thu hồi / Chứng chỉ SSL / TLS đã hết hạn được gửi đến máy khách hoặc máy chủ
  • Thay thế chứng chỉ tự ký trong mạng nội bộ đã gây ra lỗi đường dẫn
Máy chủ
Máy chủ kích hoạt SNI Khách hàng không thể giao tiếp với máy chủ hỗ trợ SNI Máy chủ

Bây giờ chúng ta hãy đi sâu vào sửa chữa những vấn đề này và những gì có thể được thực hiện, sau đó chúng tôi sẽ kết thúc với một vài điều bạn chắc chắn không nên làm từ phía khách hàng để thử và sửa lỗi này.

Lỗi bắt tay SSL / TLS không thành công – Lỗi máy khách

 

Khi một quá trình handshake không thành công, nó thường xảy ra với trang web / máy chủ và cấu hình SSL / TLS của nó.

Thực sự, nó chỉ là cấu hình TLS vào thời điểm này vì hỗ trợ cho SSL 3.0 đã gần như hoàn toàn không được chấp nhận.

Tuy nhiên, có một vài ngữ cảnh trong đó lỗi phía máy khách có thể gây ra lỗi quá trình handshake SSL / TLS. Và rất nhiều trong số đó có vẻ khá tầm thường, những thứ như đảm bảo thời gian hệ thống của bạn chính xác và trình duyệt của bạn được cập nhật.

Vì vậy, chúng ta hãy xem xét một số bản sửa lỗi phía máy khách.

Thời gian hệ thống không chính xác

 

Tôi thực sự không chắc chắn lý do tại sao hệ thống của bạn lại sai thời gian thực, tuy nhiên nó vẫn đang diễn ra đều đặn trên thế giới. Có thể bạn muốn tuân thủ đồng hồ cá nhân của riêng mình để phù hợp với cá nhân, hay là do bạn lỡ tay chỉnh sai- tuy nhiên điều đó không quan trọng cho lắm, thời gian hệ thống của bạn sai, nó có thể gây ra vấn đề với quá trình handshake TLS.

Điều đó phần lớn là do thực tế là chứng chỉ SSL / TLS có tuổi thọ hữu hạn, vì vậy thời gian là quan trọng. Thực tế, trong một số trường hợp hồ sơ khá cao của chứng chỉ hết hạn – giống như với hệ thống VR Oculus Rift – người dùng internet thậm chí còn cố tình đặt thời gian hệ thống của họ trở về trước ngày hết hạn để họ vẫn có thể kết nối.

Rõ ràng, đừng làm thế. Nếu bạn vẫn gặp lỗi handshake SSL / TLS không thành công và thời gian hệ thống của bạn chính xác, sự cố sẽ bắt nguồn từ một nơi khác.

 

Lỗi trình duyệt

 

Điều này không giống như một lỗi trình duyệt, điều này nghĩa đen là trình duyệt của bạn mắc lỗi. Đôi khi trình duyệt của bạn có thể bị định cấu hình sai hoặc plugin có thể khiến mọi thứ hoạt động hơi khác một chút và kết quả là sự cố khi kết nối với các trang web hợp pháp khác. Trong khi chẩn đoán chính xác những gì cần phải được tinh chỉnh trên trình duyệt hiện tại của bạn có thể hơi khó khăn hơn một chút, việc thu hẹp nó xuống một lỗi trình duyệt theo nghĩa đen khá đơn giản: chỉ cần thử một trình duyệt khác.

Nếu bạn đang sử dụng Google Chrome, hãy chuyển sang trình duyệt gốc của hệ điều hành như Apple Safari hoặc Microsoft Edge hoặc thử trên Mozilla Firefox (tùy chọn của tôi) nếu bạn có.

Chỉ cần bật lên và thử kết nối với trang web. Nếu quá trình handshake SSL / TLS không thành công thì bạn biết đó không phải là trình duyệt. Nhưng nếu bạn có thể kết nối, bây giờ bạn biết một cái gì đó là với các plugin hoặc cài đặt của bạn.

Cách nhanh nhất để khắc phục sự cố này là chỉ cần đặt lại trình duyệt của bạn về cài đặt mặc định và tắt tất cả plugin của bạn. Từ đó, bạn có thể định cấu hình trình duyệt theo bất kỳ cách nào bạn muốn, kiểm tra kết nối của bạn với trang web được đề cập khi bạn tinh chỉnh mọi thứ. Quá trình này có thể mất một chút thời gian, nhưng đó thực sự là cách duy nhất để giải quyết vấn đề nếu trình duyệt của bạn bị định cấu hình sai hoặc mắc lỗi.

Man-in-the-Middle

 

Man-in-the-Middle (MITM) thường được trình bày như một hacker bất chính đang cố lấy cắp thông tin hoặc gây hại. Đó thực sự không phải lúc nào cũng vậy. Rất nhiều chương trình và thiết bị chặn lưu lượng truy cập để kiểm tra hoặc một số mục đích khác như cân bằng tải , và sau đó gửi nó cùng với máy chủ ứng dụng. Điều này cũng tạo thành một MITM.

Thật không may, đôi khi các vấn đề với các thiết bị đó có thể gây ra tình trạng handshake TLS không thành công. Nó có thể giống như tường lửa mạng ngăn chặn kết nối, hoặc nó có thể là cấu hình trên một thiết bị cạnh trên mạng phía máy chủ – vì vậy vấn đề này thực sự có thể là bản sửa lỗi phía máy khách hoặc phía máy chủ tùy thuộc vào kịch bản.

Đây là vấn đề, nếu vấn đề này là phía máy khách, bạn có thể gặp nguy hiểm khi tự mình kích hoạt các thiết lập trên phần mềm chống virus hoặc VPN của bạn. Thông thường, có một cách để đưa vào danh sách trắng hoặc tạo ngoại lệ cho trang web được đề cập. Nhưng KHÔNG BAO GIỜ tắt tường lửa hoặc phần mềm diệt vi-rút của bạn chỉ để kết nối với một trang web. Nếu vấn đề là phía máy chủ, có thể đó là sự cố cấu hình trên thiết bị cạnh. Gần đây, Ross Thomas , đã kể cho tôi nghe về một thiết bị mà anh ta đã xử lý một lần đã chặn lưu lượng truy cập và gắn một chuỗi dữ liệu nhỏ để cho biết nó đã vượt qua kiểm tra. Điều đó đã khiến dữ liệu bị băm không thành công và cũng có thể gây rối với xác thực.

Một lần nữa, có quá nhiều nguồn gốc có thể cho tôi để thu hẹp nó xuống một sửa chữa duy nhất ở đây, nhưng nếu bạn có một thiết bị kiểm tra hoặc chặn lưu lượng truy cập, bắt đầu ở đó.

 

Lỗi bắt tay SSL / TLS không thành công: Lỗi phía máy chủ

 

Phần lớn lỗi handshake SSL / TLS là kết quả của các vấn đề phía máy chủ. Một số trong số này là dễ dàng để sửa chữa, một số người trong số họ là một chút tham gia nhiều hơn và một số có thể không có giá trị sửa chữa ở tất cả.

Chúng ta hãy xem.

Giao thức không khớp

 

Đây thực sự là một lỗi có thể xảy ra trên cả máy khách và phía máy chủ, và nó thực sự có thể là một thứ không đáng để sửa chữa tùy thuộc vào ngữ cảnh. Khi nói đến việc hỗ trợ các giao thức và mật mã, phần trí tuệ quan trọng nhất là: luôn tiến về phía trước, không bao giờ lùi lại.

TLS 1.2 ra mắt mười năm trước nhưng vẫn còn một phân khúc nhỏ các trang web không hỗ trợ nó. Đầu mùa hè này TLS 1.3 cuối cùng đã được IETF công bố là RFC 8446 . Các trang web đang được khuyên nên thêm hỗ trợ cho TLS 1.3 vào lúc thuận tiện trước đó của chúng.

Theo một hướng khác, các yêu cầu PCI DSS gần đây đã yêu cầu tất cả các trang web thu thập thông tin thẻ thanh toán kết thúc hỗ trợ cho SSL 3.0 và TLS 1.0. Và bốn nhà sản xuất trình duyệt chính – Google, Firefox, Apple & Microsoft – cùng nhau công bố TLS 1.1 sẽ không được dùng nữa vào năm 2020 .

 

Nếu bạn gặp lỗi handshake SSL / TLS do kết quả của giao thức không khớp, điều đó có nghĩa là máy khách và máy chủ không có hỗ trợ lẫn nhau cho cùng một phiên bản TLS. Đây là một ví dụ:

KHÁCH HÀNG MÁY CHỦ
Hỗ trợ TLS 1.0, TLS 1.1 Hỗ trợ TLS 1.2

Trong trường hợp này, không có giao thức TLS được hỗ trợ lẫn nhau và máy chủ có khả năng không hỗ trợ phiên bản ngược. Máy chủ không nên sửa lỗi này. Trong ví dụ này, khách hàng nên nâng cấp trình duyệt của họ hoặc trong trường hợp trình duyệt hiện tại – định cấu hình để hỗ trợ các phiên bản TLS mới nhất.

Tại thời điểm này, bạn nên sử dụng TLS 1.2 hoặc TLS 1.3, nếu không, hãy thêm hỗ trợ cho chúng. Nhưng hãy nhớ, không bao giờ quay trở lại.

Bộ mã hóa không khớp

 

Điều này cực kỳ giống với Giao thức không khớp – chỉ cần chi tiết hơn một chút. SSL / TLS không chỉ là một thuật toán xử lý mọi thứ, nó thực sự là một tập hợp các thuật toán phục vụ các chức năng khác nhau và làm việc kết hợp để tạo nên SSL / TLS.

Theo truyền thống, một bộ mã hóa đã có các thuật toán xử lý:

  • Mã hóa khóa công khai bất đối xứng
  • Mã hóa khóa phiên đối xứng
  • Tạo khóa Chữ ký Hashing

Các ngành công nghiệp và cơ quan chính phủ khác nhau có các tiêu chuẩn mã hóa khác nhau đề xuất các bộ mã hóa khác nhau. Nói chung, có rất nhiều điều chồng chéo ở đó, và hầu hết các trang web hỗ trợ một số ít các bộ mã hóa để khách hàng có một số tùy chọn và nói chung sẽ có thể tìm thấy một thuật toán mã hóa dễ chịu lẫn nhau. Rõ ràng, tỷ lệ cược thương lượng thành công sẽ giảm đáng kể nếu trang web chỉ hỗ trợ một bộ mã hóa duy nhất.

Thông thường, điều này có thể xảy ra trong mạng nếu bạn đang thực hiện chuyển tiếp SSL, trong đó thiết bị cạnh nhận và giải mã lưu lượng HTTPS, sau đó mã hóa lại để gửi đến máy chủ ứng dụng. Nếu thiết bị cạnh và máy chủ ứng dụng không chia sẻ bộ mật mã được hỗ trợ lẫn nhau thì sẽ gây ra lỗi.

Giống như với các phiên bản giao thức, bạn chỉ nên di chuyển về phía trước với các bộ mã hóa – không bao giờ lùi lại. Hãy nhớ rằng, khi một phiên bản giao thức hoặc bộ mã hóa không được chấp nhận thì không phải vì ngành công nghiệp đang cố gắng khó khăn – đó là do một lỗ hổng đã được tìm thấy hoặc sắp xảy ra. Vì vậy, đi ngược lại chỉ làm cho các kết nối của bạn có thể kém an toàn hơn.

Chứng chỉ SSL / TLS không chính xác

Có một số thứ khác nhau có thể làm cho trình duyệt xem một chứng chỉ SSL / TLS là không chính xác và ngăn không cho bắt tay hoàn thành thành công. Chúng ta sẽ xem xét từng phần trong các phần tiếp theo. Nó cũng đáng chú ý, rằng đôi khi những vấn đề này sẽ hiện thực hóa thành một lỗi khác trên phía máy khách như trái ngược với thông báo bắt tay SSL / TLS không thành công. Nói chung, một cái gì đó dọc theo các dòng của trang web không cung cấp một kết nối an toàn . Nhưng trên một mức độ kỹ thuật mà lỗi xảy ra là kết quả của một cái bắt tay không thành công.

VẤN ĐỀ MIÊU TẢ
Tên máy chủ không khớp CN trong chứng chỉ không khớp với tên máy chủ
Chuỗi chứng chỉ không chính xác Chuỗi chứng chỉ thiếu trung gian
Giấy chứng nhận hết hạn / thu hồi Máy chủ đã xuất trình chứng chỉ đã hết hạn, bị thu hồi hoặc không đáng tin cậy
 Thay thế tự ký (Đường dẫn nội bộ)  Giấy chứng nhận thay thế đường dẫn bị nhầm lẫn

Tên máy chủ không chính xác

Điều này từng là một vấn đề với các phiên bản WWW và không phải WWW của các trang web, nhưng thường được giảm nhẹ bởi cộng đồng Certificate Authority cho phép một người được liệt kê như là một SAN miễn phí. Sự cố này thường có thể được khắc phục bằng cách cấp lại chứng chỉ hoặc đôi khi bằng cách sử dụng chứng chỉ Ký tự đại diện.

Chuỗi chứng chỉ không chính xác

Chúng tôi đã đi sâu vào chuỗi chứng chỉ, nguồn gốc và chứng chỉ trung gian cách đây vài tháng, nhưng đây là phiên bản nhanh. Mô hình tin cậy trong SSL / TLS và PKI nói chung dựa vào các chương trình gốc được quản lý tỉ mỉ, là các bộ sưu tập chứng chỉ gốc CA đáng tin cậy có nghĩa là sống trên một hệ thống máy tính.

CHƯƠNG TRÌNH ROOT ĐƯỢC SỬ DỤNG BỞI
Mozilla Firefox Desktop và Mobile
Google Hệ điều hành Android
Apple iOS, macOS
 Microsoft Các cửa sổ

Những gốc rễ CA là vô giá, nhiều đến mức thay vì rủi ro phát hành trực tiếp, Cơ quan cấp chứng chỉ quay lên rễ trung gian và ký giấy chứng nhận lá SSL / TLS (người dùng cuối) với những người trung gian đó. Đây là nơi chuỗi bắt đầu đi vào. Chứng chỉ Root CA được sử dụng để ký số gốc trung gian, các trung gian này được sử dụng để ký các giấy chứng nhận SSL / TLS khác của người trung gian hoặc người dùng cuối.

Khi trình duyệt nhận được chứng chỉ SSL / TLS, một trong những điều nó làm để kiểm tra tính xác thực của nó là sau chữ ký. Nó nhìn vào chữ ký kỹ thuật số trên chứng chỉ SSL / TLS và sau đó nó trở lại gốc trung gian đã ký nó. Sau đó, nó nhìn vào chữ ký số của trung gian đó và theo sau nó trở lại chứng chỉ đã ký trung gian. Vì vậy, trên và như vậy cho đến khi cuối cùng nó đạt đến một trong các chứng chỉ CA gốc trong cửa hàng tin cậy của nó.

Nếu không thể thực hiện việc này, chuỗi chứng chỉ đôi khi không đầy đủ, có nghĩa là trình duyệt không thể định vị một trong các sản phẩm trung gian và bắt tay SSL / TLS không thành công. Để khắc phục điều này, bạn sẽ cần tìm và cài đặt chứng chỉ trung gian còn thiếu. Tùy thuộc vào những gì bạn mua CA chứng chỉ của bạn, nó nên có trung gian của nó có sẵn trên trang web của mình.

Giấy chứng nhận hết hạn / bị thu hồi

Trong khi thu hồi trong hệ sinh thái SSL / TLS hiện tại rất nhiều để được mong muốn, vẫn còn một số bối cảnh mà trình duyệt sẽ thấy rằng chứng chỉ đã bị thu hồi và sẽ không thực hiện handshake trên cơ sở đó. Thường xuyên hơn nó là kết quả của một giấy chứng nhận hết hạn.

Chứng chỉ SSL / TLS hết hạn xảy ra vì hai lý do :

  • Để đảm bảo rằng thông tin Xác thực vẫn chính xác
  • Để phổ biến giao thức và bản mã cập nhật nhanh hơn

Hiện tại, hiệu lực tối đa cho chứng chỉ SSL / TLS là hai năm (27 tháng vì CA sẽ cho phép bạn chuyển đến ba tháng so với chứng chỉ trước đó của bạn). Hoặc nó có thể ngắn như sáu tháng. Điều đó có nghĩa là bạn cần phải trao đổi chứng chỉ thường xuyên. Nếu bạn quên, đó có thể là lý do tại sao bắt tay SSL / TLS không thành công. Chỉ cần có được một chứng chỉ hợp lệ được ban hành và cài đặt nó – điều đó sẽ giải quyết vấn đề của bạn.

Thay thế tự ký

 

Trên internet công cộng, chứng chỉ tự ký sẽ trả về lỗi 100% thời gian nếu khách hàng chưa cài đặt gốc riêng tư của bạn trong cửa hàng gốc . Tuy nhiên, trên mạng nội bộ chứng chỉ tự ký là khá phổ biến. Và nếu bạn trao đổi chúng đủ để có thể gây ra vấn đề.

Hầu hết các trình duyệt sẽ lưu trữ các chứng chỉ để sau khi trở về một trang web, nó sẽ bắt tay nhanh hơn, nhưng nếu bạn đang tạo các chứng chỉ mới trong các khoảng thời gian đều đặn, việc liên tục thêm tất cả các chứng chỉ mới được tạo ra vào cơ sở dữ liệu cục bộ sẽ gây nhầm lẫn, cuối cùng trình duyệt sẽ gặp khó khăn với việc xây dựng đường dẫn và sự cố.

Trong quá khứ, Firefox đã phải vật lộn với điều này đáng kể – đến mức mà 7-8 chứng chỉ lại vấn đề sẽ gây ra độ trễ đáng kể và mười hoặc nhiều hơn có thể gây ra cái bắt tay mất đến 30 giây.

Máy chủ kích hoạt SNI

Đây là một vấn đề nội bộ tồn tại giữa các thiết bị, nhưng đôi khi một khách hàng giao tiếp với máy chủ chỉ định tên máy chủ khi nó không được kích hoạt SNI có thể là lý do tại sao handshake SSL / TLS không thành công.

Việc đầu tiên bạn cần làm là xác định tên máy chủ và số cổng của máy chủ được đề cập và đảm bảo rằng nó được kích hoạt SNI cũng như nó truyền đạt mọi thứ cần thiết. Một lần nữa, đây thường là vấn đề ít phải đối mặt với công chúng, nhưng nó có thể là nguyên nhân theo thời gian trong nội bộ.

Không nên làm gì cho việc triển khai SSL / TLS không hợp lệ

 

Rất nhiều chủ sở hữu trang web không muốn thay đổi cho đến khi nó tạo ra vấn đề mà họ không thể bỏ qua. Mặc dù có một số sửa lỗi phía máy khách cho lỗi handshake SSL / TLS không thành công nhưng thường sẽ là phía máy chủ. Điều đó có nghĩa là người dùng internet thông thường, các tùy chọn của bạn bị giới hạn. Điều tốt nhất cần làm là thông báo cho chủ sở hữu trang web về sự cố và chờ họ khắc phục sự cố. Nếu họ không, nó có thể là khôn ngoan chỉ để ngừng sử dụng trang web. Có một số điều bạn chắc chắn không bao giờ nên làm để tiếp cận một trang web :

  • Không tắt tường lửa của bạn, bạn thường có thể đưa vào danh sách trắng một trang web, nhưng đừng bỏ tường lửa của bạn. Không bao giờ.
  • Không tắt chương trình chống vi-rút của bạn, một lần nữa, danh sách trắng nếu có thể, nhưng giữ cho nó được cập nhật và bật.
  • Không kết nối qua HTTP hoặc nhấp qua cảnh báo xen kẽ.
  • Nếu trang web không thể cung cấp trải nghiệm duyệt web an toàn , bạn không nên truy cập trang web đó.

bình luận

Leave a Comment