web-dev-qa-db-ja.com

VPNまたはSSL接続を使用したクライアントサーバーアーキテクチャの保護

自社の携帯端末で動くモバイルアプリを開発しました。モバイルアプリケーションは、GSMネットワーク経由で会社のサーバーに接続します。

モバイルアプリケーションとサーバーアプリケーションの間の通信をセキュリティで保護する方法を決定する会議がありました。セキュリティチームは、モバイル端末にVPNアプリケーションをインストールし、最初にVPNで社内ネットワークに接続してから、https経由でモバイルアプリケーションをサーバーに接続する必要があると主張しています。

私は彼らの主張を理解できませんでした。すべての携帯端末の所有者にVPN権限を与えることは、httpsで接続を保護するよりも危険だと思います。私が知っているように、https接続は、クライアントとサーバーの両方のアプリケーションに必要なセキュリティを提供することができます。

私の知識では理解できないセキュリティ関連の情報はありますか?私が正しければ、どのようにしてhttpsがセキュリティに十分であり、VPNを与えることはより危険であることを示すことができますか?その他の説得力のある情報は大歓迎です。

1
Ahmet Arslan

単純なTLS接続(これはHTTPSです)を介したVPNの主な利点は、VPNがクライアントを認証することです。 TLSもこれを行うことができます。相互TLS(クライアント証明書を使用したTLS)を使用するだけで、ほぼすべてのTLSサーバーとクライアントの実装(HTTPSサーバーとクライアントを含む)でサポートされます。すべてのモバイル端末に一意のクライアント証明書(一意の秘密キー、および内部CAによって署名された証明書)を作成してインストールします。これを使用して、VPNと同じレベルのクライアント認証を提供できます。その後、クライアント証明書を使用して、HTTPトラフィックを送信する前に、接続している端末を識別できます。

VPNのもう1つの利点は、1つのアプリケーションだけでなく、ホストからのすべてのトラフィックを収集できることです。ただし、他のアプリケーションからのトラフィックを気にせず(存在しないか、サーバーにルーティングしたくないため)、アプリケーション自体が十分に監査され、HTTPが確立されないようにします。接続はHTTPS接続ではなく、この方法では価値がありません。

VPNが提供できるその他の機能:

  • クライアントのセキュリティ/ヘルスチェック...しかし、スプーフィングできないクライアントを作成することは不可能であるため、これらはいずれにせよスプーフィングされる可能性があります(ただし、DRMの目的では、スプーフィングを困難にする方法を見つけることに多大な労力が費やされています)。
  • 1つの接続内で複数のトラフィックストリーム(複数のUDPまたはTCP/HTTPS接続など)を隠す。これに関心がある場合は、VPNまたは別のトンネル接続を使用する必要があります。
  • DNSクエリの隠蔽と保護。これは、プレーンテキストで送信され、改ざんされる可能性があります。あなたが敵があなたがしているどんなDNS要求を伝えることができることに気をつけていると仮定します-あなたはおそらくあなたはそうしません; VPNトンネルが1つの目的でのみ使用されている場合、それは外部のアクターにとって同じくらいの情報レベルです。これはリスクですが、ドメイン名を保存するだけで軽減できます-> IPマッピングをローカルに(おそらくデバイスのホストに)ファイル)またはDNS-over-HTTPSを使用する(これは新しいため、DNSクライアントではまだサポートされていない可能性がありますが、一部のプロバイダーでは現在利用可能です)。または、DNSSECをセットアップ(および必須)することもできますが、これは応答の改ざんを防ぐだけであり、要求しているサイトを盗聴するのではありません。
2
CBHacking

CBHackingの答えは、VPNの利点に関して完全に正確です。ただし、「モバイルデバイスへのVPNアクセスを許可しますか増加リスクですか?」

正当な懸念があるかもしれません。携帯端末の種類によっては、紛失や盗難の原因となる携帯電話や、設置されたまま長期間放置される産業用などの機器があります。

どちらのシナリオでも、攻撃者はデバイスに物理的にアクセスできます。彼らはあなたのアプリケーションにアクセスできるだけでなく、VPNの反対側のネットワークを調査することもできます。リスクは、何マイルも離れたところから、攻撃者が内部ネットワークに座っている可能性があることです。

そうは言っても、あなたの質問は実際にはVPNについての詳細を指定していません。理想的なソリューションは、この目的専用の新しいVPNサーバーを作成することです。 VPNサーバーは、モバイルクライアントが絶対に必要な社内サービスに接続することのみを許可し、従業員が使用するVPNからそれらを分離します。

従業員がリモートで作業するために使用するのと同じVPNである場合でも、これは安全に実行できます。 VPNクライアントがファイアウォールルールを適用する必要があるIPアドレスのプールをモバイルクライアントに強制する必要があり、上記と同じことを実現します。 VPNサーバーによっては、クライアントのIDに応じてアドレスを割り当てることができる場合とできない場合があります。

2
multithr3at3d