https://d226lax1qjow5r.cloudfront.net/blog/blogposts/get-started-with-end-to-end-encryption-in-vonage-video-client-sdks/end-to-end-encryption-video-client-sdk.png

Vonage Video Client SDKでエンド・ツー・エンド暗号化を始める

最終更新日 February 15, 2024

所要時間:1 分

その 2.27Client SDK には、拡張エンドツーエンド暗号化 (E2EE) が搭載されており、データのプライベート性と安全性が確保されます。

以前のリリースでJSウェブクライアントのルーティングセッションのメディア暗号化が追加されたのに続き、以下のサポートが更新されました。 エンドツーエンド暗号化APIのサポートを2.27のネイティブSDK(iOS、Android、Windows、Linux、MacOSを含む)に更新しました。これにより、プライバシーとセキュリティを重視するお客様が、クライアントでメディアペイロードを暗号化することで、他のモバイルやデスクトップのネイティブクライアントにエンドツーエンドでメディアをルーティングする際に、メディアサーバーを通して暗号化されたまま、ビデオセッションを保護することができます。

とはいえ、ee2eを使い始めるにはどうしたらいいのでしょうか?クライアント側のアプリケーションでe2eeを有効にするのがいかに簡単か、簡単に見てみましょう!

VonageビデオアプリケーションでE2EEを使用する

アプリケーション内でE2EEを使用するプロセスは非常に簡単で、まず、開発者アカウントでこの機能が有効になっていることを確認します。次に、セッションを作成する際にE2EEを有効にし、最後にそのセッションに接続するクライアントに暗号化シークレットを設定します。有効なシークレットは8文字以上256文字以下の文字列で、セッションに接続するすべてのクライアントが同じシークレットを使用する必要があります。

サーバーサイド

E2EE を使用するには、サーバ側で Video セッションを作成する際に、この機能が有効になっていることを確認します。これは、REST API を介して直接行うことができます。 e2eeプロパティを trueに設定することで REST API 経由で直接行うこともできますし、サーバ SDK のいずれかを使用している場合は、セッションの作成ステップの一部として行うこともできます。たとえば、Node.js SDK では、次のようになります:

const Vonage = require('@vonage/server-sdk');

const vonage = new Vonage({
    applicationId: APP_ID,
    privateKey: PRIVATE_KEY_PATH
});

try {
    const session = await vonage.video.createSession({
         mediaMode: "routed",
         e2ee: true, // This will enable end-to-end encryption
    });
} catch(error) {
    console.error("Error creating session: ", error);
}

ウェブクライアント側

ウェブクライアントをエンドツーエンドで暗号化されたセッションに参加させるには、次のメソッドを呼び出すときに暗号化シークレットを指定します。 OT.initSession()メソッドを呼び出すときに暗号化シークレットを指定します:

const session = OT.initSession(
  'app-id',
  'session-id',
  {
    encryptionSecret: 'ENCRYPTION_SECRET'
  }
);

この機能の完全なWebアプリケーションの例を見るには、エンドツーエンドのメディア暗号化サンプルをチェックアウトしてください。 github

Androidクライアント・サイド

Androidクライアントをエンドツーエンドの暗号化セッションに参加させるには、クライアントがパブリッシュまたはサブスクライブする前に暗号化を指定する。これは Session.setEncryptionSecret()メソッドを呼び出す:

private var session: Session? = null
...
session = Session.Builder(this, "app-id", "session-id").build().also {
    //Encrypt the connection
    it.setEncryptionSecret("ENCRYPTION_SECRET")
}

この機能の完全なAndroidアプリケーションの例を見るには、以下のEnd-to-End Media Encryptionサンプルをチェックしてください。 GitHub

iOSクライアントサイド

iOSクライアントをエンドツーエンドの暗号化セッションに参加させるには、クライアントがパブリッシュまたはサブスクライブする前に暗号化を指定します。これは Session.setEncryptionSecret()メソッドを呼び出します:

lazy var session: OTSession = {
    return OTSession(apiKey: "app-id", sessionId: "session-id", delegate: self)!
}()
session.setEncryptionSecret("ENCRYPTION_SECRET", error: &error)

この機能の完全なiOSアプリケーションの例を見るには、以下のEnd-to-End Media Encryptionサンプルをご覧ください。 GitHub

さらに読む

他のクライアント(Windows、macOS、Linux)でのE2EEの使用方法や、暗号化キーの変更やエラー処理の詳細については E2EE ドキュメント.

エンド・ツー・エンドの暗号化に興奮していますか?あなたのアプリケーションでどのように使用しますか?私たちの VonageコミュニティSlackまたは X(以前はTwitterにメッセージを送ってください!

シェア:

https://a.storyblok.com/f/270183/400x400/04765919bb/zachary-powell-1.png
Zachary Powellシニア・アンドロイド・デベロッパー・アドボケイト