パスワードレスサインインの仕組み — ログインとWhatsApp認証を1つのコードでカバー

WALLAWHATSはサインインとWhatsApp認証の両方に、同じ6桁のコードを使用します。その仕組みと安全性の理由、そしてパスワード認証との違いを解説します。

Nacho Coll著者: 更新日: 23 分で読了
WALLAWHATSはサインインとWhatsApp認証の両方に、同じ6桁のコードを使用します。その仕組みと安全性の理由、そしてパスワード認証との違いを解説します。

あなたがこれまでに作ってきたすべてのパスワードは、どこかのデータベースに眠る小さなリスクです — それがあなたのものであれ、他の誰かのものであれ。使い回されたパスワード、脆弱なパスワード、フィッシングで盗まれたパスワード。アカウント乗っ取りの多くは今もゼロデイ攻撃ではなく、こうした認証情報の漏洩から始まります。WALLAWHATSはそもそもパスワードを持たないことで、このリスクのカテゴリごと回避しています。サインインとWhatsApp認証は同じ仕組みで処理されます。あなたが管理する宛先に送られる、たった1つの6桁のコードです。

これは単なるUX上の近道ではありません。アカウントを作成した瞬間に、X(Twitter)の投稿に関するアラートが数秒後に届くことになる電話番号やメールボックスを、あなたが所有していることも同時に証明したことになるのです。

Sign-in screen with email entry for the passwordless OTP flow

ここでの「パスワードレス」が実際に意味すること

パスワードレス認証自体は新しいアイデアではありません — 銀行は何年も前からSMSコードを使ってきましたし、多くのパスワードマネージャーもマジックリンクへの移行を促しています。WALLAWHATSの実装で異なるのは、アカウントにログインするための同じワンタイムコードが、アラートを受け取る宛先の検証も兼ねている点です。サインアップ後に設定画面の奥に隠れた「電話番号を確認する」といった別ステップはありません。所有権と配信準備の確認は、1つの動作で同時に成立します。

具体的には次のような流れです。

  1. サインイン画面でメールアドレスまたはWhatsApp番号を入力します。
  2. WALLAWHATSが6桁の数字コードを生成し、その宛先に送信します。
  3. 短い有効期限のうちに、そのコードをアプリに入力し直します。
  4. 成功すればログイン完了です — 宛先が電話番号だった場合、それはアラートを受け取れる検証済みチャネルになります。

選ぶ必要も、覚える必要も、更新する必要も、漏洩する心配もあるパスワードは存在しません。「パスワードを忘れた」というフローもありません。そもそも忘れるべきパスワードがないからです。

仕組みについて — 後付けのOTPライブラリではなく、Cognitoのカスタム認証

裏側では、これはAWS Cognitoのカスタム認証(Custom Authentication)フロー上で動いています。従来のユーザー名・パスワード方式のプールにサードパーティ製のOTPアドオンを重ねたものではありません。3つのLambdaトリガーが連携してこれを実現しています。

  • PreSignUp は、これまで見たことのない宛先で初めてサインインを試みたユーザーを自動的に確認済みにします。別の「アカウント作成」フォームは存在しません。新しいメールアドレスや番号でサインインすること自体がアカウント作成です。
  • CreateAuthChallenge が6桁のコードを生成し、短いTTLとともにサーバー側に保存し、宛先へ送信します — 電話番号を入力した場合はWhatsApp経由で、それ以外はメール経由で送られます。
  • VerifyAuthChallengeResponse は、入力されたコードを発行されたものと照合し、期限切れや不一致の試行を拒否し、再試行にはレート制限をかけます。

これらすべてがCognitoの管理された認証ステートマシンの内部で動くため、標準的な保証が適用されます。トークンは短命であり、リフレッシュフローはプラットフォームの他の部分を守るのと同じインフラによって処理され、独自の予測可能なID、不十分なエントロピー、有効期限チェックの欠落といった、自作の「とりあえずメールでコードを送る」実装にありがちなバグを監査するためのカスタムセッショントークンコードも存在しません。

なぜ同じコードが2つの役割を兼ねるのか

多くのサービスは「あなたが誰であるかを証明すること」と「あなたがここでメッセージを受け取れることを証明すること」を別々のステップとして扱います — パスワードでサインアップし、その後で別途、通知用に電話番号を確認する、といった具合です。WALLAWHATSがこれらを統合しているのは、アラート製品にとってこの2つは実質的に同じ問いを2回尋ねているに過ぎないからです。

WALLAWHATSがある番号にWhatsAppメッセージを配信しようとする場合、2つのことを知る必要があります。その番号が実在し到達可能であること、そしてサインインしている人物が実際にその番号を管理していること、の2つです。まさにその番号に送られた6桁のコードを正しく入力し直すことで、この両方が同時に証明されます。「ログインはしているがWhatsAppの宛先は未検証」という状態は存在し得ません。ログインそのものが検証だったからです。

同じ論理はメールにも当てはまります。メールアドレスでサインインし、そこでコードを受け取り、入力し直すことで、あなたはログイン済みになり、そのメールボックスはメールアラートの確認済み宛先になります(メールアラートには、どのプランでも各ツイートのレンダリングされたスナップショットがテキストとともに含まれます)。

なぜこれは見た目以上に安全なのか

パスワードレス認証は、パスワードがなく保管庫もないため、直感的には「より安全性が低い」ように聞こえるかもしれません。しかし実際には、実在のアカウントが侵害される最も一般的な経路のいくつかを塞いでいます。

  • クレデンシャルスタッフィングが起きない。 侵害されたサイトから使い回されたパスワードを、攻撃者があなたのWALLAWHATSログインに対して試すことはできません。そもそも盗めるパスワードが存在しないからです。
  • パスワードリセットという攻撃対象がない。 アカウント乗っ取りの多くは「パスワードを忘れた」フローを通じて起きます — あなたのメールボックスを掌握した攻撃者が、あらゆるサービスであなたのパスワードをリセットしてしまうのです。パスワードをなくせば、このフロー自体がなくなります。
  • 記憶ベースではなく所持ベース。 コードが証明するのは、あなたが「今この瞬間」電話やメールボックスにアクセスできるということであり、数か月前に暗記した(あるいはメモした、使い回した)秘密を覚えているということではありません。
  • 短命かつ使い捨て。 コードはすぐに失効し、一度成功すれば無効化されます。手動で変更するまで有効であり続けるパスワードとは対照的です。

トレードオフとして、WhatsAppやメールでの配信がログインのクリティカルパスの一部になります — 両方へのアクセスを失った場合、アカウント復旧は「秘密の質問」のような、パスワード方式では歴史的に最も弱い環に頼るのではなく、同じ検証済み宛先モデルに従います。

従来のパスワード+別途OTP検証との比較

従来型のフローはこうです。パスワードを選び、別のリンクでメールを確認し、後になって設定画面でSMSやプッシュ通知用に電話番号を検証する。これは3つの別々の証明ポイントであり、それぞれが陳腐化する場所も3つあるということです — 何週間もアカウントに残された未検証の電話番号、他の4つのサービスと同一のパスワード、誰もクリックする前に失効したメール確認リンク。

WALLAWHATSはこれを宛先ごとに1つの証明ポイントに削減します。WhatsApp番号を追加すると、それを検証するために受け取るコードは、以後そのデバイスでログインする際に使うコードと同じものです。宙ぶらりんの未検証状態を残す余地はありません。アカウントと宛先は同時に「検証済み」になるからです。

これはつまり、宛先の切り替えや追加も、単に新しい宛先でサインインするだけで済むということです。BusinessプランやEnterpriseプランで2つ目の検証済み番号を追加したいですか?入力してコードを受け取り、確認するだけです。メニューの奥深くに隠れた別の「電話番号を追加」フォームは必要ありません。

実際のセットアップ画面

wallawhats.com/signup では、尋ねられるのはただ1つ、メールアドレスかWhatsApp番号です。フォームはそれだけです。

  • WhatsApp番号を入力すると、コードは数秒以内にWhatsAppメッセージとして届きます — 後にあなたのXアラートを運ぶのと同じチャネルです。
  • メールを入力すると、コードは受信箱に届きます。個人のWhatsAppに触れずに共有デバイスや仕事用デバイスからログインしたい場合や、メールをアラートチャネルとして設定したい場合に便利です。

どちらの場合も、6桁のコードを求める画面が表示され、入力すればダッシュボードに到達します。そこから、いつでもChannelsページから2つ目のチャネルを追加できます(例えば、メールでサインアップした後にWhatsApp番号を追加する、あるいはその逆も可能です)— 新しい宛先はそれぞれ、アラートを受け取れるようになる前に同じワンタイムコード検証を通ります。どのタイプのWhatsApp番号を使うべきか迷う場合は、Business番号とPersonal番号の比較ガイドがそれぞれのトレードオフを解説しています。

電話番号が「追加済みだが未検証」のまま残るアカウント設定は存在しません。すべての宛先は、それぞれのコードチャレンジを完了しているか、あるいはあなたのアカウントに紐付いていないかのどちらかです。

これが「意味しないこと」についての補足

セキュリティモデルについて正確を期すなら、これはすでに信頼しているチャネル(WhatsApp、メール)上でのワンタイムコード認証であり、「パスワードに加えて第2要素」という従来の意味での多要素認証ではありません。ここには意味のある違いがあります。従来のMFAは、パスワードの上にさらに独立した第2の証明を追加するものです。WALLAWHATSのモデルは、パスワードをコミュニケーションチャネルの所持に置き換えるものであり、これはあらゆる側面において厳密により強いというわけではない、異なるリスクのトレードオフです。これは通知サービスにとって正しいトレードオフです。なぜなら、そもそも製品を使うためには検証済みの宛先が必要であり、その検証ステップをログインにも再利用することで、意味のあるセキュリティ層を失うことなく摩擦を取り除けるからです — 最初からパスワードベースの層は存在していなかったのですから。

ログインとアラートの両方でどちらのチャネルを使うか迷っている場合は、メールとWhatsAppの比較記事で配信速度と既読率のトレードオフを解説しています。これはサインインコードにも当てはまります — WhatsAppのコードは数秒以内に気づくはずですが、メールのコードは受信箱の他のメールと競合します。

アラート製品にとってなぜこれが重要なのか

「選んだ宛先に確実にメッセージを届ける」ことが唯一の仕事である製品にとって、本人確認と宛先は乖離してはいけません。サインインとチャネル検証が別々のシステムだった場合、何年も前に追加され、その後キャリアによって別の人に再割り当てされた可能性があり、一度も再確認されていないWhatsApp番号のアカウントに、あなたがログインしてしまうという事態も起こり得ます。ログインをその宛先自体に送られる最新のコードに結び付けることで、このリスクは構造的に存在しなくなります — 現在到達不能なチャネル経由でログインすることはできません。到達可能であることこそが、あなたをログインさせた理由だからです。

これはまた、多くのケースでアカウント復旧にサポートチケットが不要であることも意味します。スマートフォンをなくしましたか?代わりにメールでサインインしてください — 同じフロー、同じワンタイムコードで、WhatsAppの宛先も(新しいデバイスで再検証すれば)まさに元の状態から再開します。

コードが届かないときに起きること

配信をキャリア、WhatsApp自体のインフラ、メールプロバイダーといったサードパーティのネットワークに委ねるあらゆるシステムは、コードが即座に届かない場合を想定する必要があります。これがどう扱われているかについて、実務上のポイントをいくつか挙げます。

  • 有効期限は意図的に短く設定されています。 何時間も有効なコードは、数分しか有効でないコードよりも大きな標的になります。入力する前に期限切れになった場合、新しいコードをリクエストすれば古いコードは即座に無効化されます。
  • 再入力ではなく再送信を。 WhatsAppメッセージがピーク時間帯によくあるように数秒遅れたり、メールが迷惑メールフォルダに入ったりした場合、サインイン画面は最初の試行を無期限に待たせるのではなく、再送信のアクションを提供します。
  • レート制限は双方を保護します。 同じ宛先への繰り返しのコードリクエストは制限されます。これは単にWALLAWHATSにとっての不正利用対策にとどまらず、上流で何かが積極的に再試行されている場合に、1つのアカウントが誤ってWhatsAppやメールプロバイダーの配信システムに過負荷をかけてしまうことも防ぎます。
  • 一方が届かない場合はチャネルを切り替えてください。 スマートフォンに電波が届かなくてもラップトップにいるなら、代わりにメールでサインインしてください — これはWhatsAppの試行が失敗することに依存するフォールバックではなく、同じアカウントへの完全に独立した経路です。

これはWALLAWHATSに限った話ではなく、OTPベースのシステムであればどれも設計上考慮しなければならない、同じ運用上の現実です。違いがあるとすれば、このコードが同時にチャネル検証でもあるため、サインインの成功がアラート宛先が現在生きていることも教えてくれるという点です — これはパスワードには決してできないことです。

よくある質問

WhatsAppとメールの両方をサインインに使えますか? はい。それぞれが初めて使用する際に独立して検証され、その後はどちらでも同じアカウントにログインできます。

サインインを完了しなかった場合、新しいコードは私のWhatsAppチャネルを無効にしますか? いいえ。未完了または期限切れのサインイン試行が、すでに検証済みのチャネルに影響することはありません — これが関係するのは、新しい宛先を初めて検証する場合だけです。

後で電話番号を変更したい場合は? Channelsページから新しい番号をチャネルとして追加してください。アラートを受け取れるようになる前に、独自のワンタイムコードを経ます。古い番号は、あなたが削除するまでそのまま残ります。

これはSMSベースの2要素認証と同じですか? 少し違います。従来のSMS 2FAは、パスワードの上に重ねられた第2の要素です。ここでは、コードそのものが認証メカニズムの全体であり、第2要素を追加すべき下地となるパスワードは存在しません。

はじめかた

パスワードレスサインインは設定すべき別個の機能ではありません。FreeプランからEnterpriseプランまで、あらゆるプランでWALLAWHATSにログインする際の標準的な仕組みそのものです。まだアラートを設定していない場合は、はじめかたガイドが最初のサインインから最初のWhatsAppアラートまでの全経路を解説しています。

大切な投稿をもう二度と見逃さないために。 無料アカウントを作成 — WhatsApp番号1つ、リアルタイムアラート、クレジットカード不要。

Nacho Coll

著者について

Founder & Engineer at WallaWhats

Nacho founded WallaWhats so you get the alerts that matter without depending on X's algorithm to surface them — pick the accounts you care about and get a WhatsApp for every post the moment it goes live, in order, nothing throttled or buried. Writes about real-time notification systems, social-signal monitoring, and serverless delivery pipelines from the operator side of the wire.

ブログに戻る