Couchbase Lite機能解説:ピアツーピア同期〜機能説明(セキュリティ、エラー処理など)


はじめに

Couchbas Liteのピアツーピア同期の機能について解説します。

関連する記事は、以下で確認してください。

セキュリティ

通信のセキュリティ

Couchbase Liteのピアツーピア同期は、以下の複数のモードによる通信のセキュリティをサポートします。

  • 暗号化のない基本認証

  • CA証明書

  • 自己署名証明書

  • 自己署名証明書: IDが指定されていない場合、自動生成されたTLS IDが生成されます。これによって、認証なしの暗号化が実現されます。自動生成された自己署名証明書は、安全なストレージに保存されます。

また、レプリケータ(クライアント)は、証明書のピンニング(ピン留め)を処理できます。

認証

ピアツーピア同期は、基本認証とTLS認証をサポートします。サポートされているTLSの最小バージョンはTLS1.2です。

URLEndpointListenerを使用したピアツーピア同期は、デフォルトでTLSを使用して暗号化されます。

シークレット情報の管理

TLSを使用する場合、キーおよび証明書を保存する際には、セキュアなストレージを使用することが情報です。

このストレージの実装は、プラットフォームごとに異なります。 Androidでは、Android KeyStore(Android API 18から導入)を使うことができます。

  • Android KeyStoreはされました。

  • Android KeyStoreのセキュリティは、より安全なサポートを提供するために時間とともに進化してきました。詳細については、次のドキュメントを確認してください:

エラー処理

リスナーが停止すると、接続されているすべてのレプリケーターにWebSocketエラーが通知されます。

アプリケーションは、一時的な接続エラーと永続的な接続エラーを区別する必要があります。

パッシブピア

アクティブピアとの接続が失われたパッシブピアは、そのピアに関連付けられているエンドポイント接続をクリーンアップします。アクティブピアは、パッシブピアへの再接続を試みる場合があります。

アクティブピア

パッシブピアとの接続を永久に失ったアクティブピアは、複製を停止します。

パッシブピアとの接続を一時的に失ったアクティブピアは、指数バックオフ機能を使用して再接続を試みます。

その他の機能

デルタ同期

デルタ同期サポートが提供されています(デフォルトではオフになっています)。

デルタ同期は、レプリケーションごとに有効にできます。

デルタとして送信されたリビジョンの総数など、デルタ同期の使用に関する統計が利用可能です。

競合解決

ピアツーピア同期の競合解決は、Sync Gatewayレプリケーションの場合と同じように機能し、カスタム解決と自動解決の両方を利用できます。

機能詳細に関する制約・留意点

関連情報

証明書のピンニング(ピン留め)とは何ですか?

証明書のピン留めは、特定のWebサイトで有効と見なされる証明書を限定し、リスクを制限します。パブリック証明書ならどれでも使えるようにするのではなく、運用者は発行認証局( CA )、公開鍵、または選択したエンドエンティティ証明書さえも「固定」します。そのサーバーに接続するクライアントは、他のすべての証明書を無効として扱い、HTTPS接続の確立を拒否します。

ピン留めにより、Webサイトは誤発行、 認証局の危殆化、中間者攻撃のリスクに対してコントロールが可能になります。ピン留めは、ユースケースに応じていくつかのやり方があります。クライアント機器のトラストストア内で唯一利用可能な証明書としてピン留めしたり、公開鍵ハッシュをコードに書き込んで、自分の鍵だけが信頼されるようにすることもできます。ピン留めが一般的になり始めたときには、複雑さを追加する過程が加わることで、悪意のある攻撃者が攻撃やなりすましに証明書を悪用することが困難になると期待されていました。