it-swarm-korea.com

VPN 연결과 SSL 연결의 보안 차이점은 무엇입니까?

서버가 인터넷에있는 클라이언트-서버 응용 프로그램을 설계하고 싶습니다. VPN을 사용하거나 (IPSec을 사용하고 있습니까?) SSL 연결 (아마 https)을 사용하여 클라이언트-서버 연결을 설정할 수 있다고 가정합니다. 인터넷을 통한 클라이언트 서버 연결 보안을 위해 VPN/IPsec과 SSL/https의 차이점은 무엇입니까?

65
Jonas

VPN은 "가상 사설망"을 의미합니다. 이는 비 하드웨어 수단 (즉 "가상"의 의미)을 통해 더 큰 네트워크와 논리적으로 격리 된 더 큰 네트워크 (예 : 인터넷 전체)의 일부를 지정하는 일반적인 개념입니다. 케이블 및 스위치; 오히려 격리는 암호화를 사용하여 수행됩니다.

SSL (현재 TLS)은 양방향 전송 매체를 사용하여 보안 양방향 매체를 제공하는 기술입니다. 기본 전송 매체는 "대부분 신뢰할 수있는"상태 여야합니다 (공격되지 않은 경우 데이터 바이트는 순서대로 손실없이 반복없이 전송 됨). SSL은 기밀성, 무결성 (활성 변경이 확실하게 감지 됨) 및 일부 인증 (일반적으로 서버 인증, 양쪽에서 인증서를 사용하는 경우 상호 클라이언트-서버 인증 가능)을 제공합니다.

따라서 VPN과 SSL은 같은 수준이 아닙니다. VPN 구현는 어느 시점에서 암호화가 필요합니다. 일부 VPN 구현은 실제로 SSL을 사용하여 계층화 된 시스템을 만듭니다. VPN은 SSL 연결에서 직렬화하여 가상 네트워크의 IP 패킷을 전송합니다. 자체적으로 전송 매체로 TCP, IPsec은 (물리적 보호되지 않은 네트워크에서) IP 패킷을 기반으로합니다. IPsec은 패킷에보다 깊이 통합 된 또 다른 기술로, 이러한 계층 중 일부를 억제하므로 조금 더 효율적입니다 (대역폭 오버 헤드가 적음). 한편, IPsec은 운영 체제 네트워크 코드 내에서 상당히 깊게 관리되어야하지만 SSL 기반 VPN은 들어오는 트래픽과 나가는 트래픽을 가로 채기위한 방법 만 필요하며 나머지는 사용자 수준의 소프트웨어에서 다운 될 수 있습니다.

귀하의 질문을 이해함에 따라 일부 컴퓨터는 인터넷을 통해 통신 해야하는 응용 프로그램이 있습니다. 보안 요구 사항이 있으며 SSL (over TCP over IP)) 또는 HTTPS (HTTP-over-SSL-over-TCP-over-IP) 사용에 대해 생각하고 있거나 클라이언트와 서버 사이에 VPN을 설정하고 "plain"TCP 사용) (VPN의 요점은 더 이상 기밀성에 대해 걱정할 필요가없는 안전한 네트워크를 제공함) SSL을 사용하면 연결 코드가 보안을 인식해야합니다 (프로그래밍 관점에서 볼 때 SSL 연결이 "단지 소켓"인 것처럼 열지 마십시오. 일부 라이브러리는 비교적 단순하지만 여전히 반면에 VPN은 운영 체제 수준에서 구성되므로 클라이언트의 응용 프로그램과 서버의 응용 프로그램 사이가 아니라 클라이언트 운영 체제와 서버 운영 체제 사이의 보안이 유지됩니다. : 많은 보안 상 차이가 관련이없는 것으로 밝혀졌지만 동일한 보안 모델은 아닙니다.

실제로 VPN은 클라이언트 운영 체제에서 일부 구성 단계가 필요함을 의미합니다. 상당히 침습적입니다. 동일한 클라이언트에서 두 개의 VPN 기반 응용 프로그램을 사용하는 것은 문제가 될 수 있습니다 (보안 측면에서 볼 때 클라이언트는 두 개의 VPN을 서로 연결하는 브리지 역할을합니다.이 두 VPN은 명목상 서로 격리되어야하며 실제로는 주소 충돌로 인해 발생합니다. 우주). 클라이언트가 고객 인 경우 VPN을 올바르게 구성하면 불가능한 작업처럼 보입니다. 그러나, VPN은 응용 프로그램이 보안을 알 필요가 없다는 것을 의미하므로 응용 프로그램 내에서 타사 소프트웨어를 훨씬 쉽게 통합 할 수 있습니다.

77
Thomas Pornin

올바르게 구성되지 않은 경우 둘 다 보안 문제가 있습니다. 그러나 먼저 몇 가지 정의부터 시작하겠습니다.

시스코는 VPN에 대해 잘 정의되어 있습니다.

VPN은 여러 형태를 취할 수 있습니다. VPN은 두 개의 최종 시스템 사이에 있거나 둘 이상의 네트워크 사이에있을 수 있습니다. VPN은 터널 또는 암호화 (기본적으로 프로토콜 스택의 모든 계층에서)를 사용하거나 MPLS 또는 "가상 라우터"방법 중 하나를 사용하여 구성 할 수 있습니다. VPN은 임대 회선, 프레임 릴레이 또는 ATM을 통해 서비스 공급자의 네트워크에 연결된 네트워크로 구성되거나 VPN은 중앙 집중식 서비스 또는 다른 전화 접속 가입자에 연결하는 전화 접속 가입자로 구성 될 수 있습니다. https://www.Cisco.com/c/en_in/products/security/vpn-endpoint-security-clients/what-is-vpn.html

SSL은

TLS (Transport Layer Security)라고도하는 SSL (Secure Sockets Layer)은 두 프로그램이 안전한 방식으로 서로 통신 할 수 있도록하는 프로토콜입니다. TCP/IP와 마찬가지로 SSL을 통해 프로그램은 "소켓"과 통신을위한 엔드 포인트를 작성하고 해당 소켓 사이를 연결할 수 있습니다. 그러나 TCP 위에 구축 된 SSL은 암호화 기능을 추가합니다. http://www.boutell.com/newfaq/definitions/ssl.html

귀하의 질문과 관련하여 주요 차이점은 SSL은 종종 최종 사용자와 서버 사이의 데이터를 암호화하기 위해 브라우저를 사용한다는 것이며 데이터의 기밀성과 무결성을 보호해야하는 웹 사이트 영역에 일반적으로 사용됩니다.

VPN/IPSEC에는 특정 VPN 클라이언트 소프트웨어가 필요하며 일반적으로 시스템 또는 네트워크에 대한 원격 액세스를 제공하기위한 것입니다. 또한 IPSEC 대신 L2TP 또는 L2F로 이동할 수있는 옵션이 있습니다.

그러나 웹 브라우저를 통해 네트워크/시스템에 액세스 할 수있는 수단으로 SSL VPN이 널리 보급되고 있습니다. 이 방법은 일반적인 웹 브라우저를 사용하여 보안 연결을 가능하게하기 때문에 많은 이점이 있습니다. 이 접근 방식의 세분성은 특정 응용 프로그램에 대한 액세스를 제어하는 ​​좋은 방법이기도합니다.

보안 문제에 관해서는-

SSL-

  • 보안 암호가 약하면 최종 사용자에 대한 중간자 (man-in-the-middle) 스타일 공격을 수행하여 데이터의 기밀성/무결성을 잃을 수 있습니다.

    • HTTP/HTTPS 컨텐츠의 혼합 구성이 잘못되면 데이터의 기밀성/무결성이 손실 될 수 있습니다.

IPSEC-

15
David Stubley

여기에 아주 좋은 답변이 있습니다. 나는 이미 말한 것을 반복하지 않을 것입니다.
그러나 한 가지 부족한 점이 발견되었습니다. 특히 클라이언트 인증서가 필요하지 않은 경우 SSL을 임시로 설정하는 것이 훨씬 쉽습니다.
IPsec은 항상 클라이언트 인증서 (일반, 일반 설정으로 가정)를 필요로하며 초기 설정 및 배포에 다른 어려움도 있습니다.

따라서 IPsec은 일반적으로 통제 된 네트워크에 더 적합하고 알려지지 않은 야생의 인터넷에는 덜 적합합니다. 이 다른 질문에서 더 많은 정보를보십시오 : " IPsec (Internet Protocol Security) facts ".

따라서 실제 질문으로 돌아 가면 거의 모든 경우에 서버를 인터넷에 배치하는 경우 사용자가 VPN을 사용하여 연결하지 않아도됩니다. (물론 예외는 존재합니다.)
대신 서버에 SSL 인증서를 설정하고 클라이언트를 가리키면됩니다. 사용하려는 언어/기술/라이브러리에 따라 인증서의 유효성을 명시 적으로 확인해야합니다. 다시 사용 ...)

7
AviD

안전한 VPN을 만들기 위해 이러한 옵션을보고 있습니까? SSL은 일반적으로 집에서 직원이 회사 네트워크에 연결하는 경우와 같이 데스크톱 간 네트워크 유형의 VPN에 대해보다 쉽게 ​​배포되고 지원됩니다. 네트워크 간 암호화 VPN (예 : 서로 다른 두 조직 간)과 같이보다 복잡한 배포를 수행하는 경우 IPSEC는보다 나은 제어 및 더 많은 사용자 지정 옵션을 제공합니다.

주니퍼 네트웍스 (Juniper Networks)의 주제에는 적절한 백서 가 있지만 제품의 강점으로 인해 왜곡 될 수 있습니다.

5
Eugene Kogan

차이는 원과 사각형의 차이와 비슷합니다 (모두 모양이지만 크게 다릅니다). 그들은 통신을 보호하지만 서로 다른 수준과 방식으로 통신합니다. IPSEC는 유선 암호화 및 권한 부여이며 SSL은 응용 프로그램에 따라 다릅니다.

IPSEC에는 액세스 제어가 있지만 SSL에는 없습니다.

파악하려는 내용을 더 구체적으로 설명 할 수 있습니까?

2
Steve

이것은 매우 긴 대답 일 수 있지만 짧은 것을 시도 할 것입니다.

Https를 사용하면 브라우저 (SSL 클라이언트로 작동)는 웹 서버에 대한이 연결 만 암호화합니다.

VPN을 사용할 때는 특수한 클라이언트가 필요하며 클라이언트와 서버 사이에 터널을 설정하십시오. 그런 다음 터널을 통과하는 트래픽을 구성 할 수 있습니다. 이것은 모든 것이거나 단지 http 트래픽 일 수 있습니다.

Http와 통신 할 수있는 클라이언트/서버 응용 프로그램 만 설정하려는 경우 암호화해야하는 가장 쉬운 솔루션은 https 트래픽입니다. VPN을 설정하고 유지 관리하는 것이 훨씬 더 복잡합니다.

2
Christian

이는 위협 모델, 필요한 클라이언트 서버 프로토콜의 특성 및 고객에 따라 다릅니다.

정교하지 않은 최종 사용자를위한 것입니까? 그런 다음 SSL을 사용하십시오.이 시점에서 VPN 복잡성으로 인해 많은 잠재적 사용자가 꺼집니다.

클라이언트를 브라우저 앱 (자바 스크립트가있는 perapps)으로 배포 하시겠습니까? 그런 다음 다시 https/ssl은 갈 길처럼 보입니다.

서버가 클라이언트에게 무엇인가를 비동기 적으로 알려야합니까? 그러면 HTTPS가 원하는 것이 아닐 수도 있습니다 (하지만 그렇게 할 수는 있음).

피싱 위험은 얼마나됩니까? 공격자가 MITM으로 사람들을 유혹하기가 쉽다면 SSL은 각 서버를 클라이언트에 인증하기 때문에 더 나을 것입니다. 일반적인 VPN은 일단 설정되면 사용자가 VPN의 다른 호스트에 침입 한 공격자를 피하는 데 도움이되지 않습니다. 이것은 아마도 큰 위험은 아니지만 다시 한 번 당신이하는 일에 달려 있습니다.

클라우드 (클라이언트 및 서버 모두)에이를 배포하는 경우 거의 무료로 일종의 VPN을 얻을 수 있으며 이는 매우 일반적인 위협을 해결할 수 있습니다.

2
nealmcb

나는 보안 전문가와는 거리가 멀지 만 둘 사이의 가장 중요한 차이점은 다른 답변에는 없다고 생각합니다.

VPN을 통해 통신은 다음과 같이 진행됩니다.

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

HTTP는 다음과 같이 진행합니다.

HTTP client
  <-[encrypted]-> 
HTTP server

따라서 VPN으로 보호되지 않은 데이터는 클라이언트의 로컬 네트워크와 서버의 로컬 네트워크를 통해 이동할 수 있습니다. 이러한 네트워크를 완전히 신뢰하지 않으면 HTTP를 사용하는 것이 좋습니다. VPN과 HTTP 클라이언트-클라이언트, 서버-서버 쌍이 반드시 동일한 컴퓨터에있을 필요는 없습니다. 라우터는 VPN 서버 또는 클라이언트가되도록 구성 할 수 있습니다.

이러한 기술은 서로 다른 수준에서 작동하기 때문에 상호 배타적이지 않으므로 다른 보호 계층을 원할 경우 두 가지를 모두 사용할 수 있으며 성능 저하를 신경 쓰지 않거나 그 중 하나만 사용할 수 있습니다. 당신의 요구에 더 잘 맞습니다. 내가 아는 한, 두 기술이 올바르게 구성되면 안전하다고 간주됩니다.

0
inf3rno