it-swarm-vi.com

Sự khác biệt về bảo mật giữa VPN- và kết nối SSL là gì?

Tôi muốn thiết kế một ứng dụng máy chủ-máy khách nơi đặt máy chủ trên Internet. Tôi giả sử rằng tôi có thể thiết lập kết nối máy khách-máy chủ bằng VPN (có phải là sử dụng IPSec không?) Hoặc sử dụng kết nối SSL (có thể là https). Sự khác biệt giữa VPN/IPsec và SSL/https để bảo vệ kết nối máy chủ của khách hàng qua Internet là gì?

65
Jonas

VPN có nghĩa là "Mạng riêng ảo". Đây là một khái niệm chung chỉ định một phần của mạng lớn hơn (ví dụ Internet lớn) được cách ly một cách hợp lý với mạng lớn hơn thông qua các phương tiện phi phần cứng (nghĩa là "ảo"): không phải là chúng tôi đang sử dụng riêng biệt dây cáp và công tắc; thay vào đó, sự cô lập được thực hiện thông qua việc sử dụng mật mã.

SSL (hiện được gọi là TLS) là một công nghệ có phương tiện vận chuyển hai chiều và cung cấp một bảo mật phương tiện hai chiều. Nó đòi hỏi phương tiện vận chuyển cơ bản phải "chủ yếu đáng tin cậy" (khi không bị tấn công, các byte dữ liệu được truyền theo thứ tự đúng hạn, không mất và không lặp lại). SSL cung cấp tính bảo mật, tính toàn vẹn (các thay đổi hoạt động được phát hiện một cách đáng tin cậy) và một số xác thực (thường là xác thực máy chủ, có thể là xác thực máy khách-máy chủ lẫn nhau nếu sử dụng chứng chỉ ở cả hai bên).

Vì vậy, VPN và SSL không cùng cấp. VPN triển khai yêu cầu một số mật mã tại một số điểm. Một số triển khai VPN thực sự sử dụng SSL, dẫn đến một hệ thống phân lớp: VPN chuyển các gói IP (của mạng ảo) bằng cách tuần tự hóa chúng trên kết nối SSL, chính nó sử dụng TCP làm phương tiện truyền tải, IPsec là một công nghệ khác được tích hợp sâu hơn trong các gói, giúp triệt tiêu một số lớp đó và do đó hiệu quả hơn một chút (ít băng thông hơn). tay, IPsec phải được quản lý khá sâu trong mã mạng của hệ điều hành, trong khi VPN dựa trên SSL chỉ cần một số cách để chiếm quyền điều khiển lưu lượng đến và đi, phần còn lại có thể nằm trong phần mềm cấp người dùng.

Theo tôi hiểu câu hỏi của bạn, bạn có một ứng dụng mà một số máy phải giao tiếp qua Internet. Bạn có một số yêu cầu bảo mật và đang suy nghĩ về việc sử dụng SSL (trên TCP qua IP) hoặc có thể là HTTPS (là HTTP-over-SSL-over-TCP-over-IP), hoặc thiết lập VPN giữa máy khách và máy chủ và sử dụng "plain" TCP trong mạng riêng đó (quan điểm của VPN là cung cấp cho bạn một mạng an toàn mà bạn không cần phải lo lắng về bảo mật nữa) Với SSL, mã kết nối của bạn phải được biết về bảo mật, từ quan điểm lập trình, bạn không mở kết nối SSL như thể nó "chỉ là một ổ cắm". Một số thư viện làm cho nó tương đối đơn giản, nhưng vẫn phải Mặt khác, VPN được cấu hình ở cấp hệ điều hành, do đó, bảo mật không nằm giữa ứng dụng của bạn trên máy khách và ứng dụng của bạn trên máy chủ, mà là giữa hệ điều hành máy khách và hệ điều hành máy chủ : đó không phải là cùng một mô hình bảo mật, mặc dù trong nhiều tình huống, sự khác biệt hóa ra không liên quan.

Trong thực tế, VPN có nghĩa là một số bước cấu hình là cần thiết trên hệ điều hành máy khách. Nó là khá xâm lấn. Việc sử dụng hai ứng dụng dựa trên VPN trên cùng một máy khách có thể gặp sự cố (bảo mật, vì máy khách sau đó hoạt động như một cầu nối liên kết hai VPN nên tách biệt với nhau và trên thực tế, do va chạm trong địa chỉ không gian). Nếu khách hàng là khách hàng, việc anh ta cấu hình VPN đúng cách trông giống như một nhiệm vụ bất khả thi. Tuy nhiên, VPN có nghĩa là các ứng dụng không cần phải biết về bảo mật, vì vậy điều này giúp tích hợp phần mềm của bên thứ ba trong ứng dụng của bạn dễ dàng hơn nhiều.

77
Thomas Pornin

Cả hai đều có vấn đề bảo mật nếu không được cấu hình đúng. Nhưng trước tiên hãy bắt đầu với một số định nghĩa:

Cisco có một định nghĩa tốt về VPN:

VPN có thể có nhiều hình thức. VPN có thể nằm giữa hai hệ thống đầu cuối hoặc có thể là giữa hai hoặc nhiều mạng. VPN có thể được xây dựng bằng cách sử dụng các đường hầm hoặc mã hóa (về cơ bản là bất kỳ lớp nào của ngăn xếp giao thức) hoặc cả hai hoặc được xây dựng thay thế bằng MPLS hoặc một trong các phương thức bộ định tuyến ảo của bộ định tuyến ảo. VPN có thể bao gồm các mạng được kết nối với mạng của nhà cung cấp dịch vụ, mạng thuê bao, Frame Relay hoặc ATM hoặc VPN có thể bao gồm các thuê bao quay số kết nối với các dịch vụ tập trung hoặc các thuê bao quay số khác. https://www.Cisco.com/c/en_in/products/security/vpn-endpoint-security-clents/what-is-vpn.html

Đối với SSL:

SSL (Lớp cổng bảo mật), còn được gọi là TLS (Bảo mật lớp vận chuyển), là một giao thức cho phép hai chương trình giao tiếp với nhau một cách an toàn. Giống như TCP/IP, SSL cho phép các chương trình tạo "ổ cắm", điểm cuối để liên lạc và tạo kết nối giữa các ổ cắm đó. Nhưng SSL, được xây dựng dựa trên TCP, bổ sung khả năng mã hóa bổ sung. http://www.boutell.com/newfaq/def địnhs/ssl.html

Liên quan đến câu hỏi của bạn, sự khác biệt chính là SSL thường sử dụng trình duyệt để mã hóa dữ liệu giữa người dùng cuối và máy chủ và thường được sử dụng cho các khu vực của các trang web yêu cầu bảo vệ tính bảo mật và toàn vẹn của dữ liệu.

VPN/IPSEC yêu cầu phần mềm VPN Client cụ thể và thường để cung cấp quyền truy cập từ xa vào hệ thống hoặc mạng. Ngoài ra còn có tùy chọn dùng L2TP hoặc L2F thay vì IPSEC.

Tuy nhiên, SSL VPN đang trở nên phổ biến hơn như một phương tiện để cung cấp quyền truy cập vào mạng/hệ thống thông qua trình duyệt web. Cách tiếp cận này có nhiều lợi ích vì nó sử dụng trình duyệt web phổ biến để cho phép kết nối an toàn. Mức độ chi tiết của phương pháp này cũng là một cách tốt để kiểm soát truy cập vào các ứng dụng cụ thể.

Đối với vấn đề bảo mật -

SSL -

  • Các cyber bảo mật yếu có thể dẫn đến khả năng thực hiện các cuộc tấn công kiểu trung gian đối với người dùng cuối, dẫn đến mất tính bảo mật/tính toàn vẹn của dữ liệu.

    • Kết hợp nội dung HTTP/HTTPS được cấu hình kém cũng có thể dẫn đến mất tính bảo mật/tính toàn vẹn của dữ liệu.

IPSEC -

15
David Stubley

Một số câu trả lời rất hay ở đây, tôi sẽ không nhắc lại những gì đã nói.
[.___.] Tuy nhiên, một điểm tôi thấy thiếu - SSL dễ dàng hơn nhiều để thiết lập trên cơ sở đặc biệt, đặc biệt nếu bạn không có yêu cầu về chứng chỉ ứng dụng khách.
[.__.] IPsec, mặt khác, luôn yêu cầu chứng chỉ ứng dụng khách (giả sử thiết lập bình thường, điển hình) và cũng có những khó khăn khác trong thiết lập và phân phối ban đầu.

Do đó, IPsec thường phù hợp hơn với một mạng được kiểm soát và ít hơn so với Internet không xác định hoang dã. Xem thêm một số thông tin tại câu hỏi khác này: " IPsec (Bảo mật giao thức Internet) ".

Do đó, quay trở lại câu hỏi thực tế của bạn, trong hầu hết các trường hợp khi bạn đặt máy chủ trên Internet, bạn sẽ không mong muốn người dùng của mình kết nối bằng VPN. (Tất nhiên là có ngoại lệ.)
[.___] đang sử dụng ...)

7
AviD

Bạn đang xem các tùy chọn này để tạo VPN an toàn? SSL thường dễ triển khai hơn và được hỗ trợ tốt hơn cho loại VPN trên máy tính để bàn, chẳng hạn như khi một nhân viên tại nhà đang kết nối với mạng công ty. Nếu bạn đang triển khai phức tạp hơn, chẳng hạn như VPN được mã hóa nối mạng (ví dụ: giữa hai tổ chức khác nhau), thì IPSEC sẽ cung cấp kiểm soát tốt hơn và nhiều tùy chọn tùy chỉnh hơn.

Có một phong nha giấy trắng về chủ đề của Juniper Networks, mặc dù nó có thể bị sai lệch với những điểm mạnh của sản phẩm của họ.

5
Eugene Kogan

Chà, sự khác biệt giống như sự khác biệt giữa hình tròn và hình vuông (cả hai đều là hình dạng, nhưng khác nhau rất nhiều). Cả hai đều bảo mật thông tin liên lạc, nhưng thực hiện nó ở các cấp độ khác nhau và theo những cách khác nhau. IPSEC là mã hóa và ủy quyền hữu tuyến trong khi SSL là dành riêng cho ứng dụng.

IPSEC có kiểm soát truy cập trong khi SSL thì không.

Bạn có thể cụ thể hơn với những gì bạn đang cố gắng tìm ra?

2
Steve

Đây có thể là một câu trả lời rất dài, nhưng tôi sẽ thử câu trả lời ngắn.

Khi bạn sử dụng https, trình duyệt của bạn (hoạt động như một ứng dụng khách SSL) sẽ chỉ mã hóa kết nối này đến máy chủ web.

Khi bạn sử dụng VPN, bạn cần một máy khách đặc biệt và thiết lập một đường hầm giữa máy khách và máy chủ. Sau đó, bạn có thể định cấu hình lưu lượng truy cập đi qua đường hầm. Đây có thể là tất cả mọi thứ hoặc chỉ là lưu lượng truy cập http của bạn.

Khi bạn chỉ muốn thiết lập ứng dụng khách/máy chủ có thể giao tiếp với http, giải pháp đơn giản nhất là lưu lượng https, khi cần mã hóa. Việc thiết lập VPN và bảo trì nó phức tạp hơn nhiều.

2
Christian

Điều này phụ thuộc vào mô hình mối đe dọa của bạn, vào bản chất của giao thức máy chủ khách hàng bạn cần và vào khách hàng của bạn.

Đây có phải là dành cho người dùng cuối không tinh vi? Sau đó, sử dụng SSL - tại thời điểm này, độ phức tạp của VPN sẽ tắt rất nhiều người dùng tiềm năng.

Bạn có muốn triển khai ứng dụng khách dưới dạng một ứng dụng trình duyệt (perahps với javascript) không? Sau đó, một lần nữa https/ssl có vẻ như là cách để đi.

Có bao giờ máy chủ cần thông báo không đồng bộ cho khách hàng một cái gì đó không? Sau đó, HTTPS có thể không phải là những gì bạn muốn (mặc dù nó có thể được thực hiện để làm như vậy).

Làm thế nào lớn một rủi ro là lừa đảo? Nếu những kẻ tấn công có thể dễ dàng thu hút mọi người với họ như một MITM, thì SSL có lẽ tốt hơn vì nó xác thực từng máy chủ cho khách hàng. Một VPN thông thường, một khi được thiết lập, sẽ không giúp người dùng tránh được kẻ tấn công đã xâm nhập vào các máy chủ khác trên VPN. Điều này có thể không phải là một rủi ro lớn nhưng một lần nữa nó phụ thuộc vào những gì bạn đang làm.

Nếu bạn đang triển khai điều này trên đám mây (cả máy khách và máy chủ), thì bạn có thể nhận được một loại VPN gần như miễn phí, có thể giải quyết một số mối đe dọa rất ngẫu nhiên.

2
nealmcb

Tôi xa một chuyên gia bảo mật, nhưng tôi nghĩ sự khác biệt quan trọng nhất giữa hai điều này không nằm ở những câu trả lời khác.

Bằng VPN, giao tiếp diễn ra theo cách này:

HTTP client <-[raw]-> VPN client
  <-[encrypted]-> 
VPN server <-[raw]-> HTTP server

Theo HTTP, nó đi theo cách này:

HTTP client
  <-[encrypted]-> 
HTTP server

Vì vậy, bằng VPN, dữ liệu không được bảo vệ có thể di chuyển trên mạng cục bộ của máy khách và trên mạng cục bộ của máy chủ. Nếu bạn không tin tưởng hoàn toàn vào các mạng đó, thì nên sử dụng HTTP. Xin lưu ý rằng các cặp máy khách VPN và máy khách HTTP, máy chủ-máy chủ không nhất thiết phải trên các máy tính giống hệt nhau, ví dụ: bộ định tuyến có thể được cấu hình là máy chủ VPN hoặc máy khách.

Vì các công nghệ này hoạt động ở một cấp độ khác nhau, chúng không loại trừ lẫn nhau, vì vậy bạn có thể sử dụng cả hai nếu bạn muốn một lớp bảo vệ khác và bạn không bận tâm đến việc giảm hiệu suất đi kèm hoặc bạn chỉ có thể sử dụng một trong số chúng. phù hợp hơn với nhu cầu của bạn. Theo tôi biết cả hai công nghệ đều được coi là an toàn nếu chúng được cấu hình đúng.

0
inf3rno