プレミアム保護

デジタル
サンクチュアリ

あなたのプライベートな瞬間。厳密にあなただけのために。

FaceIDロック • デバイスのみ • 軍事グレード暗号化

セキュアエンクレーブ

生体認証

暗号化ボールト

キー

256ビット

クラウド

クラウドなし

ストレージ

デバイス

写真を保護

NUDEFNDR PROに含まれています

暗号化パイプライン

ボールトの仕組み

┌────────────────────────────────────────────────────────────┐ │ ボールト暗号化フロー │ └────────────────────────────────────────────────────────────┘ センシティブな写真 │ ├─> [ユーザー: ボールトに移動/コピー] │ ▼ 生体認証 │ ├─> FaceID / Touch ID / パスコード │ ▼ キーの取得 │ ├─> iOS Keychain (セキュアエンクレーブ) │ └─ デバイスにバインドされた256ビットキー │ ▼ CHACHA20-POLY1305 │ ├─> AEAD暗号 │ ├─ 機密性 │ ├─ 認証性 │ └─ 完全性 │ ▼ 暗号化ファイル (.n11) │ ├─> アプリサンドボックス │ ├─ .completeFileProtection │ └─ バックアップから除外 │ ▼ 元の写真を削除 (オプション)

ソースコード

暗号化実装

> /Vault/VaultCrypto.swift ChaCha20-Poly1305 AEAD
import CryptoKit

final class VaultCrypto {

  /// ChaCha20-Poly1305 AEADで写真データを暗号化
  static func encryptData(_ data: Data, key: SymmetricKey) throws -> Data {
    // ChaCha20-Poly1305は以下を提供:
    // - 機密性 (暗号化)
    // - 認証性 (HMAC)
    // - 完全性 (改ざん検出)
    let sealedBox = try ChaChaPoly.seal(data, using: key)

    return sealedBox.combined // Nonce + 暗号文 + タグ
  }

  /// ボールトの写真を復号化
  static func decryptData(_ encryptedData: Data, key: SymmetricKey) throws -> Data {
    let sealedBox = try ChaChaPoly.SealedBox(combined: encryptedData)

    // 認証タグは自動的に検証される
    // データが改ざんされている場合はエラーをスロー
    let decryptedData = try ChaChaPoly.open(sealedBox, using: key)

    return decryptedData
  }

  /// エントロピー検証付きでボールト暗号化キーを生成
  static func generateVaultKey() throws -> SymmetricKey {
    let key = SymmetricKey(size: .bits256)

    // エントロピーがNIST SP 800-90B標準を満たしているか検証
    let keyData = key.withUnsafeBytes { Data($0) }
    let entropy = calculateEntropy(keyData)

    guard entropy >= 7.5 else {
      throw CryptoError.insufficientEntropy
    }

    return key
  }
}

主な機能

AEAD暗号

ChaCha20-Poly1305は認証付き暗号化を提供します。WireGuard、TLS 1.3、Signalプロトコルで使用されるのと同じ標準です。

生体認証ロック

ボールトを開くたびにFaceID/Touch IDが必要です。電話がロック解除されていても、ボールトはロックされたままです。

セキュリティモデル

ボールトが保護するもの

保護済み

  • デバイス押収(暗号化された状態で保存)
  • 不正な物理アクセス
  • クラウド侵害(クラウドストレージなし)
  • バックアップ抽出(キーはデバイスにバインド)
  • ネットワーク傍受(アップロードなし)

対象外

  • 強制的な生体認証ロック解除(物理的強制)
  • ジェイルブレイクされたデバイス(iOSセキュリティが侵害)
  • OSゼロデイエクスプロイト(すべてのアプリに影響)
  • デバイスの紛失(キーは回復不可能)

重要:デバイスロックセキュリティ

**デバイスを紛失したり、電話を交換したり、NuDefndrを再インストールした場合、ボールトデータを回復することはできません。**これは意図的です—真のセキュリティを保証する唯一の方法です。

暗号化キーはデバイスのSecure Enclaveにハードウェアバインドされています。物理デバイスがなければ、ボールトの内容は永久にアクセス不可能です—私たちでさえも。

詳細

完全なアーキテクチャを見たいですか?

技術仕様を表示