2

Cap'n Proto RPC を使用して、オフィスのデスクトップ ボックスからクラウド内のサーバーと通信したいと考えています。Cap'n Proto は、ファイアウォールを介した安全なネットワーク接続を提供しません。これを必要とする他のコンポーネントがあるため、c ++を好みます。

アプリケーションに直接リンクする nanomsg やその他のトランスポートを検討している人もいますが、stunnel などで満足できるものかどうか疑問に思っていました。

ほとんどの人が知っているように、stunnel アプリケーションは、FAQ に従って、特定の条件下で TCP/IP トラフィックの HTTPS カプセル化を提供できます。

  1. プロトコルは UDP ではなく TCP です。
  2. このプロトコルは、ftp のように複数の接続を使用しません。
  3. プロトコルは帯域外 (OOB) データに依存しません。
  4. リモート サイトは、SSL がネゴシエートされたオプションである ssltelnet などのアプリケーション固有のプロトコルを使用できません。stunnel へのプロトコル引数によって既にサポートされているプロトコルを除きます。

Cap'n Proto RPC はこれらの条件を満たしているようです。この場合、顧客が stunnel のインストールに反対することはないと思います。誰かがこれまたは似たようなことを試しましたか? もしそうなら、あなたの経験は大歓迎です。誰かがより高速で軽量な代替手段を知っていれば、それも役に立ちます。

ありがとう!

4

1 に答える 1

2

はい、Cap'n Proto の 2 パーティ プロトコル (現在提供されているのは 1 つだけ) は、単純な TCP ベースのトランスポートであるため、stunnel とうまく連携するはずです。もちろん、stunnel クライアントとサーバーの両方を実行する必要がありますが、それ以外は簡単にセットアップできます。SSH ポート フォワーディングまたは VPN を使用して、同様の結果を得ることもできます。

(stunnel 自体は HTTPS 自体とは何の関係もありませんが、HTTP も単純な TCP プロトコルであり、HTTPS は TLS を除いて同じプロトコルであるため、HTTPS の実装によく使用されることに注意してください。Cap'n Proto の場合、Cap'n Proto は HTTP を置き換えます。つまり、Cap'nProto-S を作成していると思います。)

もう 1 つのオプションは、kj::AsyncIoStreamOpenSSL、GnuTLS などの TLS ライブラリに基づいて抽象インターフェイスを直接実装することです。Cap'n Proto の RPC レイヤーを使用するとkj::AsyncIoStream、トランスポートとして (のインターフェイスを介してcapnp/rpc-twoparty.h) の任意の実装を提供できます。残念ながら、多くの TLS ライブラリはかなり醜いインターフェースを持っているため、これを正しく行うのは難しいかもしれません。ただし、何かを書いた場合は、プロジェクトに貢献してください。これは、ベース ライブラリに入れたいものです。

最終的には、マルチパーティの導入を直接サポートするように設計された公式の暗号トランスポートを Cap'n Proto に追加する予定です (Cap'n Proto は実際にはまだ行っていませんが、準備が整ったときにキラー機能になると思います)。このサポートは 2016 年内に提供される予定ですが、約束はできません。

于 2015-10-14T00:34:17.687 に答える