顧客ごとの分離
本プラットフォームはマルチテナント型で、厳格な論理分離を行っています。すべての読み取りと書き込みは、データ層とアプリケーション層の両方で、お客様のアカウントの識別子に限定されます。お客様の情報は他の顧客のアカウントから閲覧することもアクセスすることもできず、ユーザー向けの横断的なクエリは存在しません。
- 約束ではなく、継続的な検証。自動化された監視機能が本番環境を定期的に点検し、アカウント間で情報が混在するおそれのある設定がないかを確認して、プラットフォームのバイタルサインに報告します。分離は前提とせず、測定しています。
- 公開されている接点(フォーム、ウィジェット、Webhook)は最小限に抑えられ、トークンまたは範囲を限定した識別子で認証されます。それ以外はすべて、認証済みのセッションが必要です。
- 変更は、本番環境に公開する前に、独立した作業環境で準備・テストされます。
認証とアクセス制御
- 復元できないパスワード。パスワードは、ソルト付きの一方向暗号学的ハッシュ(bcrypt)としてのみ保存されます。OMBのチームを含め、誰も読み取ることも復元することもできません。
- 最小権限のロール。オーナー、管理者、ユーザーの各ロールにモジュール単位の権限を設定し、各ユーザーは職務に必要な範囲だけを閲覧できます。
- 強化されたセッション。CookieにはSecure、HttpOnly、SameSite属性を付与しています。ログイン状態の保持には、使用のたびにローテーションされ、定数時間で比較される分割トークンを使用しているため、古いCookieが盗まれてもアカウントは開けません。
- 二要素認証は必要とするアカウントで利用でき、さらに、設計上フィッシングに強いパスキーを推奨方式として順次導入しています。
- モジュールごとの追加認証。機密性が高いと指定したモジュールでは、オンラインバンキングの慣行にならい、ログイン済みのセッションであっても、開く際に追加の認証を求めることができます。
暗号化
| レイヤー | 技術 | 詳細 |
|---|---|---|
| 通信時 | TLS | ポータル、API、ウィジェット、連携機能を含め、すべての通信が暗号化されます。 |
| シークレットと認証情報 | AES-256-GCM | メールのパスワード、連携用の鍵、お客様からお預かりした認証情報は、完全性の認証付きで暗号化して保存されます。マスターキーはソースコードのリポジトリ外かつWebサーバーの到達範囲外に保管され、アクセス権限を厳しく制限し、データを失うことなくローテーションできます。 |
| 顧客のボールト | AES-256-GCM | お客様が本プラットフォームに預ける外部ポータルの認証情報は暗号化された状態でのみ存在し、通常の運用で人が読み取ることはなく、ご依頼に応じて完全に削除されます。 |
| ユーザーのパスワード | bcrypt | ソルト付きの一方向ハッシュ。復号することはできません。 |
| 署名済み文書 | SHA-256 + RFC 3161 | 署名済みの各契約は、その暗号学的ハッシュ値に結び付けられ、暗号学的タイムスタンプが付与されます。 |
境界防御、バックアップ、事業継続
- インフラレベルのファイアウォールに加え、Webサーバー側ですべての機密ファイル(設定、ログ、バックアップ、バージョン管理)へのアクセスを遮断しており、インターネットからはアクセスできません。
- セッションの保存領域は公開ディレクトリの外にあり、アクセス権限を厳しく制限しています。
- 毎日の検証済み暗号化バックアップ。データベースの各バックアップは保存前に検証され(検証に合格しないバックアップは正常なものとして保存されません)、運用用の鍵とは別の専用鍵を用いてAES-256で暗号化されます。この鍵はリポジトリおよびバックアップフォルダの外で保管されます。
- バックアップがお客様のプライバシーを侵すことはありません。バックアップは復元のためだけに使用し、閲覧に使うことはありません。暗号化ボールト内の情報は、お客様の鍵で暗号化されたままバックアップに含まれるため、バックアップ内でも読み取れません。ローテーション期間は最長14日間のため、削除したデータもその期間内にバックアップから消去されます。
- プラットフォームのバイタルサインを継続的に監視し、異常を検知します。
トレーサビリティと証拠となる文書
- 重要な操作(作成、変更、送信、署名)を、日時、IPアドレス、ユーザーとともに記録します。
- 権限を持つスタッフが監督モードで操作する場合、プラットフォームは操作対象のアカウントだけでなく、実際に操作している人物の身元を記録します。
- 証拠となる文書(契約書や証憑)はサーバー側で生成され、SHA-256のハッシュ値に結び付けられ、すべてのイベント履歴を保持します。署名済みのファイルが、表示された文書そのものであることを証明できます。