Ver1.0 2025/07/01更新Ver2.0 2025/08/13更新(サービス名変更、認証システムにパスキーを追加)Ver3.0 2025/10/10更新(会員登録のフロー変更を反映)はじめにサニーズ株式会社(以下、当社)は、サービスごとに異なるパスワードやメールアドレスの生成などが行える個人向けのプライバシー管理ツール「Privaco(プライバコ)」を提供しています。当社は、お客さまに安心してご利用いただくために透明性を重視しており、このホワイトペーパーもその一環となります。当社はスタートアップです。一般的に、スタートアップはスピードが命だと言われます。しかし、当社は同時に、お客さまの機密メモやパスワードなど、極めて機密性の高い情報を取り扱う企業でもあります。そのため当社は、スタートアップであれど、セキュリティを最優先します。暗号化アーキテクチャE2E(End to End)暗号化お客さまのレコード(パスワードや機密メモなど)は、Argon2id、PBKDF2、ソルトを用いたハッシュ化などにより保護されています。すべての暗号化キーは、デバイス上のクライアント(お客さまの端末)によって生成および管理され、すべての暗号化はローカルで行われます。ゼロ知識アーキテクチャ(Zero Knowledge Architecture)すべてのレコード(※)はクライアントによって暗号化されており、Privacoのサーバーには、暗号化された情報のみが保持されます。言い換えると、生のレコードがそのままPrivacoのサーバーに置かれることはありません。レコードを復号できるのはお客さま本人のみであり、たとえPrivacoの運営であっても確認をすることができません。また、そのようなことがないように適切なセキュリティ対策を実装していますが、万一Privacoのサーバーに外部から侵入があったとしても、サーバーにあるのは暗号化済みの情報のみのため、直ちにパスワードなどが漏えいすることはありません。※以下はクライアントでの暗号化の対象外です。会員登録時に登録されたメールアドレス:運営からの連絡で用いる場合があるためマスターパスワードのヒント(詳細は後述):暗号化キーの取得前に表示する必要があるため転送先のメールアドレス:privaco.me 宛のメールを転送する際に、サーバーで宛先を識別する必要があるため認証システムパスキーPrivacoは「パスキー」によるログインが可能です。指紋認証や顔認証といった生体認証、またはPINやパターン認証を使用してログインができる、簡単かつ安全な仕組みです。デジタル認証アプリPrivacoのログインには、「デジタル認証アプリ」を利用することができます。デジタル認証アプリは、デジタル庁が提供しているアプリで、マイナンバーカードを使った認証が行えるものです。デジタル認証アプリによるマイナンバーカードの読み取りを必須とすることで、認証強度を高めると同時に、復旧コードなどと異なりマイナンバーカードは再発行が可能なことから、セキュリティと可用性を両立します。暗号化・ハッシュ化の詳細デジタル認証アプリを用いた会員登録のプロセス合い言葉の設定→メールアドレス認証→デジタル認証アプリを用いたマイナンバーカードの読み取りの順に行います。マスターパスワードマスターパスワードの登録会員登録の最初のステップである「マスターパスワード」が設定されると、Privacoはクライアントで、Argon2idを使用して合い言葉をストレッチし、さらにソルトを加えます。これによって作られる値が、256bitのマスターキーとなります。マスターキーは、HKDFを使用して512bitの鍵を導出します。マスターキーと、ストレッチされたマスターキーが、Privacoのサーバーに保存・送信されることはありません。さらに、マスターキーとマスターパスワードから、マスターパスワードハッシュを生成します。マスターパスワードハッシュと「マスターパスワードのヒント(後述)」はサーバーに送信され、今後ログインをする際に認証のために利用されます。なお、マスターパスワードハッシュとマスターパスワードのヒントは、サーバー側でハッシュ化されます。次に、RSA鍵のペアを生成し、RSA公開鍵と、マスターキーで暗号化されたRSA秘密鍵をサーバーに送ります。加えて、暗号論的擬似乱数生成器(CSPRNG)を利用して512bitの対称鍵も生成します。この鍵をRSA公開鍵で暗号化し、サーバーに送信します。マスターパスワードのヒントマスターパスワードはお客さま本人のみが知っており、それを忘れるとPrivacoにログインができなくなります。忘れることを防ぐために、マスターパスワードを思い出すための「ヒント」も任意で登録できます。ヒントはPrivacoのサーバーで保持されるため、マスターパスワードそのものや他人が推測できるもの、個人情報は登録しないでください。パスキーパスキーの登録まずWebAuth APIを介して、パスキーの公開鍵と秘密鍵のペアを生成します。その後、PRF拡張を用いて、パスキー固有のinternal secretと、Privacoが提供したソルトから、対称鍵を生成します。次に、RSA鍵のペアを生成し、RSA公開鍵と、PRFで作られた対称鍵で暗号化されたRSA秘密鍵をサーバーに送ります。加えて、暗号論的擬似乱数生成器(CSPRNG)を利用して512bitの対称鍵も生成します。この鍵をRSA公開鍵で暗号化し、サーバーに送信します。サーバーに送信されるのは、以下の情報です。パスキーの名前パスキー公開鍵RSA公開鍵RSA公開鍵で暗号化された対称鍵PRFで生成された対称鍵で暗号化されたRSA秘密鍵PRFの生成ができない環境下においてのみ、PRFの代わりにマスターパスワードから生成した鍵を用いて暗号化を実施します。パスキーを用いたログインWebAuth APIを介して、パスキーの公開鍵と秘密鍵のペアを生成します。その後、PRF拡張を用いて、パスキー固有のinternal secretと、Privacoが提供したソルトから、対称鍵を再生成します。サーバーから送られた暗号化済みの鍵を対称鍵で復号し、保管庫にアクセスします。PRF非対応の場合、マスターパスワードから生成した鍵を用います。デジタル認証アプリより安全なご利用のために、マスターパスワードに加えて、「デジタル認証アプリ」による認証も必須とすることができます。具体的には、デジタル庁が提供する「デジタル認証アプリ」によるマイナンバーカードの読み取りが必要となります。デジタル認証アプリを通じて、Privacoはデジタル庁から「利用者識別子」「姓名」「生年月日」を取得します。これらはハッシュ化されたうえでPrivacoのサーバーで保持され、今後ログインをする際に認証のために利用されます。※Privacoがデジタル庁から、マイナンバー(個人番号12桁)を取得することはありません。また、性別や住所を取得することもありません。保管庫お客さまの保管庫に関連するすべてのレコード(パスワードや機密メモなど)は、E2Eで暗号化されています。各レコードはそれぞれ別の鍵で暗号化され、それらの鍵も対称鍵で暗号化されます。復号するには合い言葉やデジタル認証アプリが必要です。復号は必ずクライアントで実施されるため、暗号化されていないレコードがPrivacoのサーバーに送信されることはありません。データ保護保存時クライアントとサーバーの二層において、暗号化が行われます。一層目お客さまのレコードは、まずデバイス上のクライアントによって暗号化され、判読不能な文字列となります。二層目クライアント(一層目)で暗号化がされたレコードが、Privacoのサーバー(二層目)に送られ、サーバー上でさらなる暗号化が行われます。暗号化AES-CBCやArgon2idなどによる暗号化やハッシュ化が行われます。Privacoのサーバーは、暗号化された保管庫データの保存と、同期にのみ使用されます。暗号化されていないデータをサーバーに置くことはありません。通信時デバイス上のクライアントによって暗号化されない限り、お客さまのレコードがPrivacoのサーバーに送られることはありません。HTTPS・TLSクライアントとPrivacoのサーバー間の通信は、SSL/TLSにより保護されています。また、HTTPS化によって、すべての通信はTLSの使用が強制されます。セキュリティ監査脆弱性診断プロダクトのローンチにあたり、Privacoはセキュリティ企業による脆弱性診断を受けています。また、今後も定期的に診断を受ける予定です。認証(今後予定)今後、ISO27001等の取得を想定していますが、現時点では未取得です。