セキュリティ & 信頼
実際に実装されていることを文書化しています。志望ではありません。ここでは、お客様のデータをどのように保護しているかを具体的にご説明します。
最終更新:2026年3月
概要
転送中の暗号化
すべてのエンドポイントでHTTPSを強制。1年間のポリシーを持つHSTSにより、ブラウザが平文HTTPで接続することを永久に防ぎます。
保存時の暗号化
MFAシークレットはアプリケーション層でAES-256-GCMにより暗号化。APIキーとパスワードは暗号学的ハッシュとして保存され、復元不可能です。
テナント分離
各組織は専用のデータベーススキーマを持ちます。テナント間のデータアクセスは構造的に不可能です。
セッションセキュリティ
15分のアクセストークンと自動ローテーション。リプレイアタック検出によりセッションファミリー全体が失効。即時ログアウト失効。
データの権利
いつでもデータをエクスポートまたはアカウントを削除できます。完全セルフサービス。GDPRおよび個人情報保護に対応。
脆弱性の責任ある開示
セキュリティ研究者はsecurity@unnoodle.comに脆弱性を報告できます。2営業日以内に確認します。
データの分離
お客様のデータ、個別に保存
Unnoodleの各アカウント(テナント)は、専用のPostgreSQLスキーマで動作します。グロッサリー、ユーザー、設定は、データベース内の独立した名前付きパーティションに保存されます。カラム値でフィルタリングされるだけでなく、完全に分離されています。
誤って他の組織のデータを返すクエリは存在しません。アプリケーションのバグが誤ったフィルターを生成したとしても、スキーマの境界が守ります。クロステナントアクセスは構造的に不可能です。
暗号化
暗号化の対象と方法
転送中
ブラウザとUnnoodle間のすべてのトラフィックはHTTPS経由で転送されます。HTTP Strict Transport Security(HSTS)は1年間のポリシーで設定され、すべてのサブドメインに適用されます。一度接続したブラウザは、ポリシーの有効期間中、平文のHTTPを拒否します。
保存時
- MFA/TOTPシークレットは、データベースに書き込まれる前にアプリケーション層(AES-256-GCM)で暗号化されます。生のシークレットは平文で保存されません。書き込みごとに一意のランダム値(IV)が生成されます。
- APIキーはSHA-256暗号ハッシュとして保存されます。生のキーは発行後に取得できません。ローテーションのみ可能です。
- パスワードはBCryptハッシュ(10ラウンド)として保存されます。平文パスワードは保存もログ記録もされません。
- リフレッシュトークンはSHA-256ダイジェストとして保存されます。生のトークン値は永続化されません。
アカウントセキュリティ
セッション、MFA、認証
リプレイ保護付き短命セッション
アクセストークンは15分後に失効します。リフレッシュトークンは使用のたびにローテーションされ、前のトークンは即座に無効化されます。盗まれたリフレッシュトークンがリプレイされた場合、セッションファミリー全体が自動的に失効し、再認証が必要になります。アカウント設定からいつでもセッションを失効させられます。
多要素認証(MFA)
TOTPベースのMFAはすべてのユーザーが利用可能で、Google Authenticator、Authy、1Password、RFC 6238準拠のアプリと互換性があります。有効にすると、正しいパスワードは限定スコープの中間トークンのみを発行します。TOTPコードが検証された後にのみ、完全なセッションが付与されます。
GoogleまたはMicrosoftでサインイン
ソーシャルログインにはPKCE付きOAuth 2.0が使用されます。StateパラメーターとNonceパラメーターはコールバックのたびに検証されます。インプリシットフローは使用しません。
ブルートフォース対策
5回連続してログインに失敗すると、アカウントは15分間ロックされます。認証エンドポイントのレート制限により、IPアドレスごとに2層目の保護が提供されます。
APIキー
テナントAPIキーは特定エンドポイントへの読み取り専用アクセスにスコープが限定されています。キーはいつでもローテーションでき、ローテーション時に前のキーは即座に無効化され、監査イベントが発生します。
監査ログ
すべてのアクションの完全な記録
すべての重要なアクションが監査ログに記録されます。各レコードには、アクションを実行したユーザー、変更内容、影響を受けたリソース、タイムスタンプ、発信元IPアドレスが含まれます。
記録されるイベントには以下が含まれます:
- すべてのログイン試行(成功・失敗)とログアウト
- MFAのセットアップ、有効化、無効化、検証
- パスワード変更とセッション失効
- ユーザー招待、ロール変更、アカウント削除
- APIキーのローテーション
- データエクスポートとアカウント削除リクエスト
- グロッサリーコンテンツの変更
監査ログは追記専用で、テナント管理者によって削除できません。GDPR第5条(2)に基づく説明責任のために保持されます。
プライバシーとGDPR
実装済みのあなたの権利
UnnoodleはGDPRや同様のデータ保護法に基づくコンプライアンス義務をサポートするよう構築されています。以下の権利は本番環境で実装済みです。ロードマップ上の項目ではありません。
登録時の同意(第7条)
アカウント作成時に、タイムスタンプとIPアドレスを含む明示的な同意が必要かつ記録されます。同意なしにアカウントを作成できません。
データエクスポートの権利(第20条)
アカウント設定から、当社が保有するすべての個人データの構造化JSONエクスポートをダウンロードできます。サポートチケット不要。待機期間なし。
削除の権利(第17条)
アカウント設定からアカウントを完全に削除できます。削除時に、氏名、メール、認証情報は即座に匿名化され、すべてのOAuthアカウントが削除され、すべてのアクティブセッションが失効します。完全セルフサービスです。
データ最小化(第5条)
設定された保持期間を超えた非アクティブアカウントは自動的に匿名化されます。個人識別子は削除されますが、システムの整合性のためにアカウントレコードは保持されます。
エンジニアリング手法
ビルドプロセスにおけるセキュリティ
実装前のテスト
すべてのセキュリティ制御は、実装前に自動テストが記述されます。テストされていない制御はリリースされません。
ソースコードにシークレットなし
すべての認証情報、キー、シークレットはデプロイ時に環境変数経由で注入されます。必要なセキュリティキーが欠如している場合、本番環境でのアプリケーション起動を拒否します。機密情報はリポジトリにコミットされません。
決定論的スキーマ履歴
すべてのデータベース変更はバージョン管理されたマイグレーションファイルで管理されます。本番環境での自動スキーマ生成はありません。任意の時点でのデータベース状態は決定論的で完全に監査可能です。
エラーレスポンスは内部情報を漏洩しない
予期しないエラーはクライアントに汎用メッセージを返します。スタックトレースと内部状態はサーバー側のみでログ記録され、HTTPレスポンスに含まれません。
標準規格
コンプライアンスへの取り組み
当社のエンジニアリング手法は、セキュリティ、可用性、機密性に関するSOC 2トラストサービス基準に基づいて構築されています。正式な認証は取得していません。
正式な認証が調達プロセスの要件である場合は、お問い合わせください。現在の状況と提供可能なエビデンスについてご説明します。
脆弱性の責任ある開示
何か見つけましたか?ご連絡ください。
Unnoodleにセキュリティ脆弱性を発見したと思われる場合は、公開前にプライベートで報告してください。
連絡先
security@unnoodle.com含めるべき内容
- 脆弱性の明確な説明
- 再現手順
- 潜在的な影響についての評価
期待できること
- 2営業日以内の確認
- 7日以内のステータス更新
- 善意で行動する研究者への法的措置なし
現在、有償のバグバウンティプログラムは運営していません。ご同意いただければ、リリースノートにクレジットを記載します。