暗号資産のセキュリティ:パスワードと認証
Andreas Antonopoulosが、パスワード管理、認証方法、デジタル資産や秘密鍵を保護するためのベストプラクティスに焦点を当て、暗号資産の不可欠なセキュリティ対策について解説します。
Date published: 2019年5月19日
このライブストリームでは、パスワード管理の基礎から多要素認証まで、暗号資産保有者にとって不可欠なセキュリティ対策について解説します。Andreas Antonopoulosが、セキュリティと利便性のバランスを取るための原則を説明し、パスワードマネージャーが不可欠である理由を解説します。また、XKCDのパスフレーズの概念を紹介し、二要素認証メソッドの階層について詳しく説明します。
このトランスクリプトは、aantonopによって公開された元の動画のトランスクリプト (opens in a new tab)のアクセシブルなコピーです。読みやすさを考慮して軽く編集されています。
セキュリティの基礎とリスクのバランス (3:05)
(ビープ音) - 皆さんこんにちは、土曜日のライブ配信へようこそ。このボーナスライブ配信では、パスワード、パスワードマネージャー、認証、多要素認証など、アカウントのセキュリティに関連するあらゆるトピックを取り上げます。すでにたくさんの質問が寄せられていますが、今回は必ずしも質問を中心に進めるわけではありません。というのも、いくつか難しいトピックについて説明したいからです。いつもより少し長めに、あるいは少し短めに特定のトピックについて話し、私なりの道筋を立ててこれらのトピックを進めていく方が理にかなっているかもしれません。これらは少し厄介です。セキュリティは一筋縄ではいかないトピックなのです。ですから、完璧な質問を見つけようとはしないかもしれません。一方で、話を始めるための素晴らしい質問もいくつか用意しています。まずは、ご参加いただきありがとうございます。本当に嬉しく思います。
いつものように、土曜日の朝を皆さんと一緒に、ビットコインやオープンなブロックチェーンに関連する新しくて興味深いトピックについて取り組めることを。さて、パスワードや多要素認証は、ビットコインやオープンなブロックチェーンとどのように関係しているのでしょうか?ご存知の通り、暗号資産のセキュリティを維持するためには、すべてのアカウントのセキュリティを維持しなければなりません。暗号資産について非常に興味深いのは、多くの人にとって、これがオンライン上のアイデンティティやデバイスのセキュリティについて慎重に考えなければならない初めての機会だということです。なぜなら、そこにお金が存在するようになり、それがはるかに魅力的な標的になるからです。過去には、人々は自身のセキュリティを保護することにあまりモチベーションを持っていませんでした。なぜなら、プライバシーを失ったり、情報がハッキングされたりしても、すぐには実感できないからです。そして、それは多くの悪影響をもたらしますが、その影響は直接的に
目に見えるものではなく、すぐには感じられないからです。もし誰かが侵入して、あなたのデジタルデバイスから数百ドル、数千ドル、あるいはさらに悪く数万ドルを盗んだとしたら、あなたはそれを感じますし、即座に実感するでしょう。そして、それを有形に、正確に言えば無形にですが、関連付けることができます。無形ではあっても、非常に明確に自身のセキュリティと関連付けることができるのです。ですから、残念ながらこれは、本当に痛い目を見ないと学べない教訓の一つなのです。そのため、私は初心者にアカウントを保護する方法や理由を伝えるのに多くの時間を費やすことができます。彼らが自分のデバイスのいずれかに暗号資産のホット・ウォレットをインストールし、そのホット・ウォレットに入っているお金を失うまでは。私が話していることを理解したり、それによってモチベーションを高めたりするのは非常に難しいのです。さて、この会話全体において理解しておくべきもう一つの非常に重要なことは、セキュリティとは
バランスだということです。すべてはバランスです。それはリスク管理なのです。100%のセキュリティなどというものは存在しません。完璧なセキュリティなどないのです。そして、すべての脅威から身を守ることはできません。自分がどのような脅威に直面しているのかを把握する必要があります。実際に何を保護しているかに応じて、それらの脅威のうちどれだけを実際に防ぐことができるのか、そしてその脅威を防ぐためにどれだけの労力を費やすのかを考えなければなりません。また、構築しているソリューションや使用しているシステムが複雑になりすぎて、それ自体がセキュリティリスクになるのはいつなのかを見極める必要もあります。そして、特に暗号資産の分野では、初心者が複雑すぎるソリューションを作ってしまうのをよく見かけます。その結果、セキュリティと回復力のバランスにおいて、間違った側に陥ってしまうのです。暗号資産を保護するためのメカニズムが非常に複雑であるため、実際には
非標準的なものを使用しているため、パスワードを忘れてしまったため、あるいは自分が何をしたのか誰も正確に知らず、助けを求めることもできないために、最終的にそれを失ってしまうのです。したがって、セキュリティを100%達成することはできず、すべてはバランスの問題なのです。そして、シンプルさはしばしばセキュリティの重要な要素となります。自分の技術的スキルの範囲内で適用でき、一貫して適用できるシンプルなセキュリティソリューション。そして、問題が発生した場合に回復できるソリューションの方が、自分のスキルレベルを超えることを強要し、未知の領域に足を踏み入れさせ、ミスを犯す可能性を高めるような複雑なセキュリティソリューションよりも優れています。これはよく耳にすることですが、多くの悪いアドバイスが存在します。人々は、非常に複雑に見えるセキュリティスキームを実装するようにアドバイスするでしょう。そして、それが非常に複雑であるため、安全だと感じてしまうのです。まるでそこに
セキュリティをシンプルに保つ (8:40)
多くのことが起きているため、非常に高度で重大なものに違いありません。そして多くの場合、自分の技術的な能力を超えてしまい、盗難ではなく、自分のスキルレベルを超えた操作によるミスが原因で、実際に資金を失うことになります。だからこそ、シンプルに保ちましょう。標準に基づいたものにしましょう。ベストプラクティスや一般的なツールを使用し、それらを一貫して使い続けましょう。そうすることで、非常に高いセキュリティを確保できます。それでは早速、最初の質問に移りましょう。現在、220人の方が配信を見てくれています。映像と音声に関するフィードバックをありがとうございます。状況がわかるのは常にありがたいことです。念のためお伝えしておきますが、今日この場所で少し停電がありました。もしまた停電が起きたら、配信が止まるのでわかると思います。そして、インターネットルーターとWi-Fiが
再起動するのに最低5分はかかります。復帰できるかもしれませんが、たとえ1秒の停電でも、戻るまでに5分待たなければなりません。もし復帰できない場合は、チャットでお知らせします。ですので、どうか気長にお待ちください。途切れないことを祈っています。しかし、これも今日私たちが管理しなければならないリスクの一つです。それでは、本日の最初の質問にいきましょう。最初の質問は匿名(anonymous)の方からです。質問する際に匿名という言葉を選ぶことは、セキュリティの第一歩であり、良い仕組みです。「私はディスレクシア(読字障害)で、長いパスワードを覚えるのが苦手なのですが、ユニークで強力なパスワードを多数管理する最良の方法は何でしょうか?」これは素晴らしい質問です。物事を記憶することの難しさという、より広範な問題に触れているため、素晴らしい質問なのです。そして私たちは皆、自分が思っている以上に
記憶力が良いと思い込んでいます。中には、記憶、読み書き、あるいはパスワードの暗記に役立つその他のスキルに困難を抱えている人もいます。そして、自分があまりよく覚えられないことを自覚しているかもしれません。この匿名の方はディスレクシアに悩む人の視点から質問していますが、これはすべての人に等しく当てはまります。間違いを犯しやすい人間の記憶力を持つ、すべての人にです。人間は長期間記憶を保つのが非常に苦手です。特に、画像や経験、感情と結びついていないため、記憶に残りにくいものはなおさらです。私たちの生活に何のつながりもないことを覚えるのはほぼ不可能です。なぜなら、私たちの脳は関連性のない情報を最適化して排除するのが非常に得意だからです。覚えようとしていることに感情、経験、画像が結びついていないと、脳は「これは私のキャッシングアルゴリズムにはもう関係ない」と判断し、それを捨ててしまいます。そして多くの
人がパスワードを忘れてしまうのは、まさにそれが理由です。そこで、この質問により広く答え、皆さんがパスワードの基本原則を理解できるように、ここでいくつかのリソースを使ってみようと思います。そのために、視覚的な補助資料を使います。普段は視覚資料を使わないのですが、今回のケースでは役立つと思います。どうなるか見てみましょう。さて、最初にお話しするのは、パスワード管理システムについてです。何十年もの間、私たちはユーザーに対し、幅広い文字を含んだ、長くてランダムな英数字のパスワードを作成するように指導してきました。これらは人間には覚えられないパスワードです。これらは実際には悪い行動を助長するパスワードなのです。結局のところ、同じようなずる賢いパターンを使うような行動を促してしまいます。例えば、「Satoshi Nakamoto」の「O」をゼロに置き換え、2番目の単語の最初の文字を大文字にし、「T」を
7に置き換え、最後にハッシュ(#)をつけるといった具合です。これで、数字、小文字、大文字、そして文字が揃いました。しかし、複数のサイトで使わなければならない場合、少しだけ変更を加えることになります。そして、おそらく最後に数字を追加しなければならなくなります。その結果、非常に厄介な記憶の問題に行き着きます。つまり、サイト側はバリエーションを作るように求めてきますが、バリエーションを作ると、特にこれほど複雑なパスワードの場合、実際に覚えることが不可能になってしまうのです。そのため、結局多くのサイトでパスワードを使い回すことになります。これはほぼすべての人がやっていることです。そしてこれは、セキュリティにとって非常に、非常に悪いことです。さて、この問題をどう解決するかを理解するための最高のリソースの一つは、実は漫画なのです。そこで、私から2つのアドバイスをしたいと思います。1つ目は、自分でパスワードを作ろうとしないことです。
パスワードマネージャー (13:50)
パスワードマネージャーを使用してください。パスワードマネージャーは、ランダムなパスワードを生成し、記憶してくれるソフトウェアです。これらのシステムは2つの問題を解決します。人間の記憶は当てにならず、人間が作り出すランダム性はさらにひどいということです。私たちはランダムなものを作るのが非常に苦手です。記憶するのも苦手ですが、ランダムなものを記憶するのはさらに苦手です。したがって、もっと規律正しくなったり、賢くなったり、注意深くなったりしても、この問題は解決できません。画面にポストイットを貼ったり、ここにあるようなことをすべてやったりしても解決しませんよね?オフィスでよく見かける光景です。パスワードを書き留めることは、悪いアイデアではありません。書き留める場所が実際に安全であればの話ですが。つまり、最も基本的なパスワードマネージャーは、小さなノート、つまりパスワード帳です。そして、それはあまり現代的ではなく、技術的にも進んでおらず、ランダムなパスワードを生成するという問題も解決しないと言わざるを得ませんが、
正直なところ、私の両親が使っている解決策でもあります。なぜなら、書き留めておけば、パスワードに多様性を持たせることができるからです。そして、その小さなノートを、例えば自宅の鍵のかかる引き出しなどの安全な場所に保管しておけば、かなり堅牢な仕組みになります。さて、皆さんの多くは、おそらく私の両親よりも技術的に洗練されているでしょう。ですから、皆さんにとってより良い解決策について話しましょう。より良い解決策とは、これを代わりに行ってくれるソフトウェアをダウンロードすることです。パスワードマネージャーには様々な種類があります。素晴らしいことに、基本的な機能であれば無料で利用できます。Last PasswordやLastPass、1Password、Bitwarden、その他にもKeePassなど、さまざまな製品を使用できます。これらには
さまざまな機能があり、実際にどの機能が必要かを把握する必要があります。私のアドバイスとしては、まずどのデバイスでこれを使用する必要があるかを把握することから始めることです。なぜなら、パスワードマネージャーを使用する大きな利点の1つは、すべてのデバイス間ですべてのパスワードを同期できることだからです。したがって、Windows、Android、iOSを使用している場合、まあ、おそらく簡単でしょう。すべてのパスワードマネージャーがこれらのプラットフォームをすべてサポートしているため、問題ありません。また、使用しているブラウザ全体でサポートされていることも重要です。Chrome、Firefox、Edge、Opera、Braveなど、拡張機能として使用しているブラウザで、Webフォームにパスワードを自動入力して送信できるようにするためです。ビデオカメラのSDカードがいっぱいになったのを皆さんご覧になったと思います。配信の真っ最中に、
ありがたいことですね。ええ、SDカードがいっぱいになったので、もうカメラでは録画していません。おっと。まあ、気にしないでください。続けましょう。したがって、パスワードマネージャーを選ぶ方法の1つは、どのデバイスをサポートする必要があるかを把握することです。変わったデバイスを持っている場合、少し厄介になります。例えば、私はデスクトップでLinuxを使用しています。私は非常に長い間、デスクトップでLinuxを使用してきました。そして、今年はついにデスクトップLinuxの年になると思っています。皆さん、実現しますよ。いや、しませんね。いずれにせよ、私はそれを使用しており、私にとってはうまく機能していますが、広くサポートされているわけではありません。そのため、すべてのパスワードマネージャーがLinuxデスクトップで機能する、あるいはうまく機能するわけではありません。幸いなことに、ほとんどのパスワードマネージャーはブラウザの拡張機能としてブラウザ内で機能するため、ほぼクロスプラットフォームになります。ですから、私にとっては、
複数デバイスでのパスワードマネージャーの選択 (18:22)
パスワードマネージャーは、Android、Windows、Linux、Chrome、Firefox、iOSなどで動作する必要があります。そうすれば、すべてのデバイスにインストールして、すべてのデバイスからすべてのパスワードにアクセスできるようになります。さて、匿名の方からの「失読症で長いパスワードを覚えるのが苦手な場合、多くのユニークで強力なパスワードを管理する最善の方法は何ですか?」という質問にお答えしましょう。最善の方法は、ユニークで強力なパスワードをランダムに生成してくれるパスワードマネージャーを使用することです。そして、パスワードマネージャーを選んだら、1つのパスワードを設定します。その1つのパスワードが、パスワードマネージャーのパスワードになります。また、誰かがその1つのパスワードを使って簡単にログインし、パスワードファイルをダウンロードできないように、二要素認証メカニズムを使用することをお勧めします。二つ目の認証要素が必要なのです。これについては、
今日の動画の後半でお話しします。視聴者から「このソフトウェアをどうやって信用すればいいのか?」という追加の質問も来ています。簡単な答えとしては、広く使用されているか、セキュリティの専門家によってレビューおよび監査されているか、オープンソースであるか、あるいはそのすべてを満たすソフトウェアを探すということです。私が以前に挙げたものはすべて、これらの要件を満たしていると思います。さて、先ほどお話ししたことに戻りましょう。セキュリティは100%ではなく、リスクのバランスを取り、軽減することが重要だと言ったのを覚えていますか。では、ここで2つのリスクをテーブルに並べてみましょう。リスク1:パスワードマネージャーを信用できるか?ダウンロードしたパスワードマネージャーが侵害されている、あるいは侵害される可能性がある場合、または何百万人もの他のユーザーや、それを
レビューしているセキュリティ専門家が気づかないバグがあったらどうなるでしょうか?リスク2:自分の脳を信用できるか?そう考えると、ここでの問題は、どんなパスワードマネージャーであっても、使わないよりはマシだということが明らかになります。これは、暗号資産におけるハードウェア・ウォレットとソフトウェアウォレットについて話すときに行うのと同じ種類のリスク管理です。ハードウェア・ウォレットのメーカーを信用できるか?まあ、ある程度は信用できますが、100%ではありません。そこにはいくつかのリスクがあります。では、そのリスクはハードウェア・ウォレットを持たないことと比べてどうでしょうか?ここでも答えは、どんなハードウェア・ウォレットであっても、持たないよりはマシだということです。では、実際に管理できるリスクとは何でしょうか?パスワードマネージャーを入手する際、正しいソフトウェアであることを確認することが重要です。もともと無料のものを、Grouponのクーポンを使って適当なウェブサイトからダウンロードし、
システムにトロイの木馬を感染させるようなことがあってはなりません。しかし、話を戻すと、どんなパスワードマネージャーであっても、使わないよりはマシなのです。ですから、自分でユニークなパスワードを生成しようとするべきではありません。ウェブサイトで8文字以上の英数字のパスワードを求められたら、私と同じようにしてください。「安全なパスワードを生成する」という小さなボタンをクリックするのです。長さを31文字、75文字、213文字に設定します。私は、「長すぎる」と警告されるまでにどれくらい長くできるか、ウェブサイトで試してみるのが好きです。長年にわたり、パスワードマネージャーやシステムから「短すぎる」「複雑さが足りない」と警告され続けてきたので、今度はウェブサイトのほうに「長すぎる」「複雑すぎる。おいおい、何をしてるんだ?データベースに収まらないよ」と悲鳴を上げさせたいのです。ですから、強力でランダムなパスワードを生成してください。さて、私はこのパスワードを覚えられるでしょうか?
もちろん無理です。私のパスワードマネージャーには800個のパスワードが入っていますが、どれも20文字以上で、記号、大文字、小文字、数字を含む完全にランダムな英数字です。そのうちの1つでさえ覚えるのは不可能ですし、ましてや800個すべてなんて無理です。しかし、マスターパスワードだけは覚えています。さて、他にどんな質問があるか見てみましょう。次の質問に移りますが、これは私が次に話したいトピックについて話す良い機会になります。匿名の方からの質問です。「強力なパスワードジェネレーターを使用していると、多くの場面で機能しないことがあります。パスワードやパスフレーズの最低限のセキュリティ基準はありますか?」はい。ウェブサイトはパスワードに対して馬鹿げた期待を抱いており、多くの場合、それは悪い期待です。例えば、矛盾する情報を推奨したりします。例を挙げましょう。8文字以上で、記号と数字を含む英数字でなければならないのに、フォームへの貼り付けは無効にされている、といった具合です。何てことだ
悪いパスワードポリシー (24:02)
何をしているんですか?一体何をしているんですか?明らかにジェネレーターを使うような複雑なパスワードを選ばせておいて、それを貼り付けさせてくれないのはなぜですか。あるいは、フォームの確認欄に貼り付けさせてくれないのはなぜですか?正気ですか?何をしているんですか?そんなことはやめてください。他にも、8文字から12文字までと指定するパスワードもあります。本当に?複雑にしてほしいけれど、複雑すぎてもいけないということですか。13文字にできないなんて、全く意味がわかりません。あるいは、記号の奇妙な組み合わせです。ああ、記号は使えますが、シャープ、感嘆符、アスタリスクだけです。シングルクォーテーションとアットマークは、正規表現を混乱させるので受け付けません、といった具合です。これらはすべて、本当にひどいパスワードポリシーです。あるいは、毎月パスワードを変更させるポリシーもありますが、前の月に使ったものは再利用できず、しかも
先ほどのように奇妙に複雑なままにしておかなければなりません。これらはすべて奇妙なパスワードポリシーであり、皆さんもこのようなポリシーに多く遭遇するでしょう。結論として、異なるセキュリティチームやセキュリティポリシー、さまざまなレベルのセキュリティ意識を持つ異なる企業のウェブサイトが、大多数のユーザーにとって機能する優れたポリシーを見つけ出すことを期待するのは無理だということです。覚えておいてほしいのは、彼らは、パスワードマネージャーで生成された37文字のランダムなパスワードを入力しようとするユーザーから、「12345678」(インターネット上で最も一般的なパスワードらしいです)や「password1234」(インターネット上で2番目に一般的なパスワードだと思います)を入力しようとするユーザーまで、幅広い層に対応しようとしているということです。そのため、これらすべての人々に機能するポリシーを見つけることは、サイト側にとって非常に困難な課題です。そこで私がしていることは、
とにかく試し続けることです。私は自分の好きなように、37文字で記号だらけのランダムに生成されたパスワードを入力します。するとウェブサイトは文句を言い、「アスタリスクはあまり好きではありません。なぜこんなことをするのですか?」と言ってきます。そこで、いくつかの記号をオフにしたり、長すぎると言われたら短くしたりします。あるいは、「実は大文字も最低2つ必要ですが、数字から始めることはできません」と言われたりします。私は「うわぁ、勘弁してよ」という感じです。うまくいくものが見つかるまで、あれこれ試行錯誤を続けます。しかし、最終的にどんなパスワードになろうとも、2つの保証があります。それは、長くて複雑であること、そして完全にランダムに生成されたものであり、人間の脳に頼って生成したり記憶したりするものではないということです。そして、私は可能な限り最大の複雑さを使用しています。さて、匿名の方が
次の質問をしてくれました。これでこの話を続けることができます。「馬鹿げた質問かもしれませんが、パスワードマネージャーはクラウド上にあるため、ハッカーの標的になりやすいのではないでしょうか?」素晴らしい質問です、匿名さん。これらの仕組みは次のようになっています。パスワードデータベースのバックアップはクラウド上に保存されます。しかし、そのバックアップは暗号化されており、エンドツーエンドで暗号化されています。つまり、ローカルマシン上で暗号化されるということです。暗号化された状態でクラウドに送信され、再び復号されるのはローカルマシン上のみです。暗号化および復号する方法には、マスターパスワードが使用されます。そして、そのマスターパスワード自体は、ストレッチャーと呼ばれるものを通過します。ストレッチャーが何をするかというと、パスワードストレッチングアルゴリズム、実際にはハッシュ化アルゴリズムを使用します。これが何をするかというと、マスターパスワードとして入力した単語や文字を受け取り、
それを何千回ものハッシュ化のラウンドにかけます。これには時間がかかり、その結果、ブルートフォース(総当たり)攻撃が不可能なパスワードが生成されます。なぜなら、仮に私がパスワードを入力し、それを1回だけ暗号化またはハッシュ化してサーバーに送信したとしましょう。なるほど、それはレインボーテーブルと呼ばれる、比較的簡単な攻撃の対象になってしまいます。次に何が起こるかというと、攻撃者は想像しうる最も一般的なパスワードをすべて取得し、それらをハッシュ化して、その攻撃に使用できるハッシュ化されたパスワードのデータベースを作成します。一方で、あるいは、正しいものが見つかるまで、異なるパスワードを何度も何度も試し続けることもできます。典型的なブルートフォース攻撃です。しかし、もしすべてのパスワードが2万5000回、5万回、あるいは10万回ハッシュ化されるとしたら、私が毎回
パスワードデータベースはどのように暗号化されるか (29:19)
コンピュータに入力するのに2〜3秒かかります。私にとっては大したことではありません。パスワードマネージャーを起動するために、ブラウザやコンピュータに初めてログインするときの2〜3秒です。しかし、パスワードを入力するたびに2〜3秒追加しなければならないとしたら、ブルートフォース(総当たり)攻撃のアプローチは完全に破綻します。また、数千の組み合わせを試すだけでも非常に長い時間がかかるため、事前計算されたパスワードハッシュのデータベースを生成することも不可能になります。そして、マスターパスワードが十分に複雑であれば、それを生成するには数千のパスワードの組み合わせをはるかに超える試行が必要になります。したがって、パスワードデータベースは通常、かなりシンプルで標準的な暗号化アルゴリズムを使用して暗号化されます。これにはおそらくAES256が最も一般的に使用されますが、それは次のようなものです。
それは、単一の鍵、つまりデータを暗号化および復号するための秘密鍵を使用する対称暗号化アルゴリズムです。暗号化と復号に同じ鍵が使用されるため、対称暗号化アルゴリズムと呼ばれます。そして、その鍵はマスターパスフレーズを繰り返しハッシュ化することによって生成されます。したがって、ローカルデバイス上でのみマスターパスフレーズを入力し、そのデバイスが信頼できるものである限り、高い安全性が得られます。確かにパスワードデータベースはクラウド上にありますが、暗号化されており、あなた自身のデバイス以外では決して入力しないマスターパスフレーズを持っていなければ、誰もそれを開くことはできません。もちろん、そこにはいくつかの問題があります。なぜなら、ローカルデバイスにパスワードのキーロガーが仕掛けられている場合、マスターパスフレーズを入力しているところを捕捉される可能性があるからです。しかし興味深いことに、それだけでは
二要素認証を設定していれば、攻撃者にとっては十分ではありません。攻撃者にとって十分ではない理由は、マスターパスフレーズを捕捉できたとしても、二要素認証がなければクラウドから暗号化されたデータベースをダウンロードできないからです。この二要素認証は、理想的にはあなたのマシンや他の何かに紐付いているはずです。そして、彼らはその二つ目の要素を持っていません。二要素認証については後ほど詳しく説明します。私たちは層(レイヤー)を構築しているのです。ここで私たちが何をしているかお分かりいただけるか分かりませんが、そうです、発生し得る問題のそれぞれに目を向け、セキュリティの層を追加しているのです。セキュリティとは、「これ一つですべてを防げる」というものではありません。セキュリティとは、攻撃者の行く手に障壁を設けることです。確かに、この障壁を突破することはできるかもしれませんが、そのすぐ後ろには別の障壁があります。そして、その障壁を突破したとしても、そのすぐ後ろには
さらに別の障壁があります。そして、障壁を十分に強力なものにするだけでなく、何層にも重なる豊富なセキュリティの層を設け、ある層を突破するために必要なスキルが、別の層を突破するために必要なスキルとは異なるようにします。さらに、ある層を突破するために必要なツールや予算が、他の層とは異なるようにします。そうすれば、私に気づかれずに、私が阻止することもなく、これらすべての層を無事に突破できる可能性や、多くの被害者に対して大規模にそれを実行できる可能性は、非常に、非常に低くなります。それが最も重要なポイントなのです。さて、ここで少しコーヒーを飲んで、皆さんが聞きたいであろう他の質問を探しながら、チャットで少しお話ししましょう。少し画面に
ページを出させてください。私が「支配者なきルール(rules without rulers)」と書かれた新しいマグカップでコーヒーを飲みながら、このような教育コンテンツを作成できるのは、パトロンの皆様のおかげであり、感謝しています。最近の私のトークの中でも人気のあるテーマの一つです。小さなオレンジ色のビットコインが付いています。「おいおい、宣伝はやめてくれ、グッズは買うから。とにかく良いコンテンツを続けてくれ」って声が聞こえてきそうですね。すぐに戻ります。はい、戻りました。よし、これは横に置いておきましょう。見栄えが良くなるように向きを変えます。これでよし。さて。この小さな物語をできるだけ簡潔に続けられるような質問を探していました。では、パスフレーズについて話しましょう。これについては、「強力なパスワードをウォレットのパスフレーズとして使用することについての考えは?」と質問してくれたBruceの助けを借りたいと思います。
ウォレットのパスフレーズとBIP-39 (35:02)
ここでブルースが話しているのは、BIP-39のニーモニックフレーズを使用する人が利用できる、オプションのパスフレーズについてです。ニーモニックフレーズは24語であるため、これは25番目の単語とも呼ばれます。理論的には25番目の単語を追加することになりますが、ここでは25番目の単語とは呼ばず、実際の名称である「オプションのパスフレーズ」と呼ぶことにします。これは1語以上になることもあります。これがウォレットのパスフレーズです。これは、ニーモニックフレーズに第二要素を持たせるために追加する、任意のパスフレーズです。これにより、例えばオフィスにある紙に書き留められた24語を誰かが盗んだとしても、ウォレットのパスフレーズがあるため、すぐにお金を奪われることはありません。さて、パスワードマネージャーで使用される1つのパスワード、つまりマスターパスワードについて話したときのことを思い出してください。それは
パスワードマネージャーで使用されています。そのパスワードは繰り返しハッシュ化され、それによってブルートフォース攻撃を防ぐと説明しました。BIP-39標準におけるオプションのパスフレーズとニーモニックフレーズでも、まったく同じことが行われます。PBKDF2と呼ばれるパスワードストレッチングアルゴリズムが使用され、SHA-512を2000回適用することでストレッチングを行います。これは少し妥協した点でもあります。BIP-39標準、つまりウォレットのニーモニックフレーズの標準は、ハードウェア・ウォレットのデバイス上で実行できなければならないためです。ハードウェア・ウォレットはこれくらいの大きさの小さなUSBデバイスであり、処理能力があまり高くありません。そのため、実際にSHA-512を2000回実行するには数秒かかります。2、3秒といったところです。これが意味するのは、残念ながら非常に優れた保護とは言えないということです。十分ではありますが、はるかに強力なコンピューターがあればブルートフォース攻撃を受ける
可能性があります。たとえばGPUを使用したり、さらに言えばSHA-512用に設計されたASICやSHA-512用のFPGAデバイスを使用したりすれば、実際には2000回の処理を一瞬で完了させることができます。したがって、同じシードに対して、1秒間に数百、あるいは数千のパスワードやパスフレーズを試すことができてしまいます。これにより、予算内で適切な量のハードウェアを用意すれば、オプションのパスフレーズ付きのBIP-39ニーモニックを攻撃することが可能になります。しかし繰り返しますが、これは簡単なことではありません。私たちが話しているのはセキュリティの層(レイヤー)についてです。それでは、パスフレーズについて話しましょう。単一の単語ではないことを示すために、パスワードではなくパスフレーズという用語を使用します。実際にはフレーズ(句)なのです。ニーモニックフレーズがフレーズであるのと同じです。スペースで区切られた一連の単語です。これにより、覚えるのがはるかに簡単になります。また、
書き留めたり読んだりするのも簡単で、少し劣化していても読むことができます。人間はパターン認識に非常に優れていることがわかっています。そのため、自分の手書きで小文字の単語の羅列を書き留めた場合、単語の3分の2がにじんでいても読むことができたり、かなり正確に推測したりすることができます。そして、その単語が自分にとって何らかの意味を持っていたり、その単語から頭の中でイメージを作り出すことができたりすれば、大文字、小文字、数字で構成されるランダムに生成されたパスワードよりも、フレーズの方がはるかに記憶に残りやすいのです。しかし、これをもう少しうまく説明するために、ランドール・マンローの力を借りることにします。過去に私がランドール・マンローについて話すのを聞いたことがあるかもしれません。ランドール・マンローは、次のような漫画を描いているグラフィックアーティストです。
XKCDです。XKCDは、さまざまな技術的概念や、非常に面白い社会批判、そしてあらゆる種類の素晴らしいアイデアを表現したグラフィック漫画です。本当に賢いアイデアが、とても見事に提示されています。うまく説明したい概念が何であれ、ほとんどの場合、それにぴったりのXKCDの絵が存在するのです。そこで、皆さんの多くが聞いたことがあるであろう、「correct horse battery staple」として知られるものを使用します。もしそれがちんぷんかんぷんに聞こえるなら、少し待っていてください。それでは、画面でそれを見てみましょう。これは「パスワード」と呼ばれているものです。「20年間の努力の末、私たちは、人間には覚えにくく、コンピューターには推測されやすいパスワードを使うように、すべての人を訓練することに成功した」とあります。そして、ここの上を見てみると、
XKCDのパスフレーズの概念 (40:47)
左上隅にあるのは、ウェブサイトで求められる典型的なパスワードです。つまり、大文字、小文字、数字、記号が何らかの順序で並んでいるものです。ここで見られるのは、ユーザーがこれらを生成して記憶するために行う典型的な行動であり、単語を少し崩そうとすることです。ここでは「Troubadour(吟遊詩人)」という単語が使われています。英雄の功績について歌う旅の音楽家のことです。Troubadourとはそういう意味だったと思います。Troubadourと3です。この場合、一見ランダムに見えますが、実際にはランダムではありません。さて、この特定の文字列は、コンピューターの観点から分析することができます。数学的な視点や情報理論の視点から、これがどれくらいランダムであるかを確認できます。あるいは、この種のものがどれほどのランダム性を含んでいるかです。この特定のケースでは、約28ビットのエントロピーがあります。これはつまり、この
複雑さの量が、28桁の2進数、つまり2の28乗で表現できるということです。もし1秒間に1,000回の推測ができるとしたら、ブルートフォース(総当たり攻撃)で破るのに3日かかる計算になります。これは基本的に、ウェブサービスなどで1秒間に複数回の推測を試みる場合の話です。もしウェブサイトから盗んだデータベースを持っているなら、もちろん一般的なコンピューターを使って1秒間に1,000回よりもはるかに多くの推測を行うことができます。しかし、いずれにせよ、これはコンピューターにとって推測するのが実際には簡単なのです。28ビットのエントロピーでは不十分であるため、コンピューターにとっては推測が簡単です。しかし、このシーケンスの大文字と小文字の考えられるすべての組み合わせを試すだけで、コンピューターが簡単に推測してブルートフォースできるにもかかわらず、人間が記憶するのは実際には非常に困難です。そしてすぐ
下で、ランドール・マンローは別のアプローチを示しています。それは、スペースで区切られた普通の英単語を使用することです。これはパスワードではなく、ニーモニック・パスフレーズです。そしてこの場合、ランダムに4つの単語を選ぶだけです。たった4つです。大きな辞書、例えば10万語が収録されている英語の辞書から選ぶと仮定すると、ランダムな4つの単語は実際に次のような結果を生み出します。約44ビットのエントロピーが得られます。44ビットのエントロピーがあれば、1秒間に1,000回の推測で550年かかります。1秒間に1万回の推測なら55年です。1秒間に10万回の推測なら5年です。これは実際にブルートフォースするのが難しく、しかもたった4つの単語です。しかし最も重要なのは、人間にとって覚えやすいということです。これが、bit 39でニーモニックフレーズを使用する理由です。したがって、「correct horse battery staple」について考えてみると、これらがランダムな
単語であっても、連想の基礎となる奇妙な頭の中のイメージを作り出すことができます。そして、連想こそが人間の記憶の仕組みなのです。ここには小さな絵が描かれています。それはバッテリーのホッチキス(battery staple)ですね、正解(correct)です。つまり、馬(horse)が「それはバッテリーのホッチキスだ」と言い、誰かが「正解、それはバッテリーのホッチキスだ」と言っている、これが「correct horse battery staple」です。ギークにこの4つの単語を言うだけで、彼らはすぐにあなたが何について話しているかを理解するでしょう。なぜなら、このフレーズは非常に覚えやすく、インターネット上の何百万人もの人々が、この1つの漫画と例から見事に暗記しているからです。膨大なコンテンツがあるXkcd.orgに行けば、この一連の漫画を見ることができます。素晴らしい作品です。XKCD。しかし、これで要点をご理解いただけたと思います。つまり、これがパスフレーズであり、これははるかに優れた生成するための
ウォレットと暗号化におけるパスフレーズの使用 (45:27)
パスワードマネージャーのマスターパスワードや、ウォレットのオプションのパスフレーズです。これを使えば、ウォレットにオプションのパスフレーズを実際に作成できます。これは、GPUやFPGAを使ってもブルートフォース(総当たり)攻撃が非常に困難です。SHA-512を2000回実行できたとしても、わずか4〜5単語のパスフレーズをブルートフォースで破るには、数年とは言わないまでも数ヶ月はかかります。6単語にすれば、非常に強力なメカニズムになります。さて、これだけを使用するわけではありません。たとえば、BIP-39のニーモニックフレーズがあり、そこにオプションのパスフレーズを追加したいとします。「よし、辞書からランダムに4つの単語を選ぼう」と考えます。そして、それをオプションのパスフレーズにして、その4つの単語を暗記して覚えておきます。さらに、それらをバックアップ
して別の場所に保管します。なぜなら、自分では覚えていられたとしても、もし自分に何かあったらどうなるでしょうか。自分が使っていたオプションのパスフレーズを誰も見つけられず、遺産がどこかへ消えてしまうことを望むでしょうか。もちろん、そんなことは望みません。ですから、パスフレーズもバックアップする必要があります。ニーモニックフレーズ、つまりシードをバックアップし、さらにオプションのパスフレーズもバックアップして、それらを2つの異なる場所に保管します。また、もし誰かが私のシードを盗み見た場合、強力なコンピューターを使ってパスフレーズのあらゆる組み合わせを試される前に、資金を移動させるべきだと気づけるように工夫します。その方法は、非常にローテクなものです。それはビニール袋、つまり不正開封防止機能付きのビニール袋です。これらは、
あらゆるオンラインショップで100枚パックなどで購入できます。ビンゴゲームや教会などでの現金寄付の際に使われたり、従業員の盗難を防ぐために使われたりするものです。これらは不透明で、一度封をすると、開封したことがわからないように開ける唯一の方法は、破るか切るかしかなく、必ず痕跡が残ります。冷凍したり加熱したりして、痕跡を残さずに開封して再び封をすることはできません。ですから、ニーモニックフレーズとオプションのパスフレーズをそのような不正開封防止袋に入れておけば、誰かが盗み見たときに、それとわかります。数ヶ月ごとに保管場所を確認(監査)するようにすれば、セキュリティの優れた基盤ができます。さて、そろそろまとめに入ります。まだお話しすべきことがたくさんあるため、あと約45分ほど続ける予定です。それは2要素
認証についてです。しかし、このパスフレーズの概念をどのように実践しているかを理解していただきたかったのです。そこで次のセクションでは、パスフレーズを安全に生成する方法についてお話しします。それでは、絵文字ストームにいきましょう。YouTubeのコミュニティメンバーの皆さん、私のチャンネルのカスタム絵文字が持つ、信じられないほど創造的で表現力豊かなパワーを皆に示すために、絵文字ストームを実行してください。どうぞ。はい、戻りました。さて、パスフレーズを作成したいとします。そして、このパスフレーズは、私たちがXKCDパスフレーズとして知っている形式、つまり「correct horse battery staple」のような形式にするのがおそらく最適だとご存知でしょう。ランダムに選ばれた一連の英単語で、それらに関連するイメージを頭の中で結びつけることができるものです。このパスフレーズを、おそらくパスワードマネージャーのマスターパスワードとして使用し、入力することになるでしょう。
パスフレーズを安全に生成する (50:25)
1日に何度も、さまざまなデバイスで入力します。私は他の目的でも似たようなパスフレーズを使用していますが、同じパスフレーズを使い回すことはありません。しかし、複雑になる前に覚えておけるのは3つか4つだということに気づきました。そのため、bit 39ウォレットのオプションのパスフレーズとして、そのようなパスフレーズが必要になります。また、ノートパソコンのハードドライブの暗号化にも、そのようなパスフレーズが必要です。私は暗号化されたハードドライブを使用することを好みます。そして、私のノートパソコンや他のデバイスを起動する前には、必ずパスフレーズを入力する必要があります。そのパスフレーズも同じ形式です。それはニーモニック・パスフレーズです。スペースで区切られた一連の英単語を使用します。一貫性を保つため、私は常にニーモニック・パスフレーズをすべて小文字で入力し、間にシンプルなスペースを入れます。つまり、小文字の単語、スペース、小文字の単語、スペース、小文字の単語、そしてエンターキーです。そして、それらは
長さは4語から8語までさまざまです。どの程度のセキュリティレベルが必要かを決める必要があり、それはどこで使用するかによって異なります。そのパスフレーズから派生する暗号化鍵の生成に何回のハッシュ化が使用されるか、そしてこれらのものに対して直面している脅威のレベルはどの程度か、ということです。しかし、使用する単語の最小数は恐らく4語であり、物事を忘れたり混乱し始めたりする前の最大数は恐らく8語でしょう。特に、あまり頻繁に使用しないパスフレーズの場合はそうです。パスフレーズを使用する頻度が高ければ高いほど、入力する頻度が高くなり、より長くすることができます。なぜなら、練習によってそれを覚えることを余儀なくされるからです。そのため、毎日入力するパスワードマネージャーには、少し長めのパスフレーズを使用できます。一方で、少し短めのパスフレーズを使用するのは、
例えば、ウォレットのオプションのパスフレーズとしてであり、さらに少し短いパスフレーズをデバイスのオプションのパスフレーズ、つまりハードドライブの暗号化ブート用に使用します。なぜなら、それは月に1回程度しか入力せず、忘れやすいかもしれないからです。では、これらの単語をどのように選べばよいのでしょうか?その方法はいくつかありますが、ランダムであることが望ましいです。歌であってはいけません。何の歌詞かはわかりませんが。ある歌を言おうとしましたが、それはあまりにも多くの論争を引き起こすと思うので、完全にスキップします。応援しているサッカーチームの勝鬨(かちどき)であってもいけません。自分の住んでいる州のスローガンであってもいけません。スタートレックのフレーズであってもいけません。なぜでしょうか?なぜなら、それらのフレーズはすべて、
ハッカーが収集した辞書に存在するからです。Googleでフレーズとして入力してヒットする可能性のあるものはすべて使用すべきではありません(もちろん、セキュリティが破綻するため、Googleに入力することはないでしょうが)。これまでに誰かが言ったことがある、または言いそうなフレーズは絶対に使用しないでください。その代わりに、ランダムな単語を選び、自分にとって意味のある心象風景や連想を作り出すようにしてください。自分にとって意味があり、頭の中でそのイメージを繰り返して少し練習できるのであれば、非常に奇妙で風変わりなものであっても構いません。それは良い方法です。では、どのようにしてランダムな単語を選ぶのでしょうか?それにはいくつかの方法があります。辞書のさまざまなページを開き、見ずに指を置くこともできますが、あまり
良い方法とは言えません。おそらく、辞書のページの真ん中3分の1と、ページの真ん中3分の1を指で選ぶことにほとんどの時間を費やすことになるでしょう。しかし、辞書にはたくさんの単語が収録されているため、実際にはそれで十分です。立派で大きくて分厚い辞書です。そのため、十分なランダム性を得ることができます。これは、特別な労力をかけずに自宅ですぐにできる簡単な方法です。もう少し踏み込みたい場合は、diceware(ダイスウェア)と呼ばれる手法を使用できます。D-I-C-E-W-A-R-Eです。dicewareは、ダウンロード可能な単語のリストを使用する仕組みです。dicewareのインデックスリストをダウンロードできます。見つかるウェブサイトは... Googleで簡単に検索できます。最初に出てくるもの、つまり diceware.D-M-U-T-H dmuth.org が正しいものです。そのウェブサイトを使用すれば、リストをダウンロードできます。さて、何が
ダイスウェア方式 (55:27)
そのリストの興味深い点は、1から6までの数字でインデックスが付けられていることです。これにより、サイコロ、つまり普通の一般的なサイコロを使うことができます。サイコロを5回振って、すべての桁が1から6の間にある5桁の数字を作成します。そして、ダイスウェアのリストでそのインデックスに対応する単語を調べて書き留めれば、ランダム性を得ることができます。普通のサイコロで使えるように設計されたランダム性を得られるので、とても便利です。手元にサイコロがあれば、簡単に実行できます。これは非デジタルな方法です。リストを自分のコンピューターにダウンロードし、そのリストからランダムに単語を選ぶだけです。繰り返しになりますが、これはランダムなパスフレーズを生成するための素晴らしい方法です。もちろん、コンピューター上のプログラムを使用することもできます。しかし、当然ながら問題となるのは、
コンピューターにすでにトロイの木馬マルウェアやキーロガーが存在している場合、それが困難を招く可能性があるということです。私はXKCD passというプログラムを使用しています。これは実際にXKCD互換のパスフレーズを生成します。私はそれを大量に生成し、その非常に長いリストの中からランダムに1つを選びます。そして、どれを選んだかについて、コンピューター上に一切の痕跡を残しません。非常に長いリストをただひたすらスクロールし続けます。そうすることで、パスフレーズを盗み取られるのをはるかに難しくすることができます。繰り返しになりますが、これはレイヤー(多層防御)の話です。完璧ではありません。このプロセス全体には多くの困難や抜け穴があります。さて、これでパスワードのセキュリティについて話し、いくつかのトピックを組み合わせてきました。パスワードの複雑さについて話しました。セキュリティの階層化についても話しました。人間の記憶や人間が作り出すランダム性の弱点についても話しました。そして、なぜ
ソフトウェアを100%信頼できないとしても、ソフトウェアを使わないよりは使う方が良い理由についても話しました。マスターパスフレーズの生成方法や、どのような種類のマスターパスフレーズを使用すべきかについて話しました。それを使ってパスワードマネージャーから、記憶不可能なほど複雑でランダムな英数字のセッションパスワードやサイトパスワードを生成し、パスワードマネージャーに記憶させることができます。では、次のトピックは二要素認証です。二要素認証とは何でしょうか?二要素認証とは、自分自身を認証するために2つの異なる方法を使用することです。認証とは基本的に、自分が主張する通りの人物であることを証明することを意味します。そして二要素認証とは、自分が主張する通りの人物であることを証明するために、2つの異なるメカニズムを使用することを意味します。コンピューターセキュリティにおいて、多要素認証や認証要素は3つのうちのいずれかとして説明されます。考えられる3つの要素とは、
「あなたが知っていること(知識情報)」です。パスワードは「あなたが知っていること」の一例です。記憶しているからこそ、知っているのです。知識ベースの認証も、この「あなたが知っていること」という要素の一形態です。例えば、どこで生まれたか?初めて買ったケーキミキサーのブランドは?学校で初めてキスした相手は誰か?など、何でも構いません。当然ながら、「あなたが知っていること」は1つの要素であり、優れた要素です。ただし、それは自分が覚えていて、他の誰にも簡単に推測できない場合に限られます。だからこそ、先ほどパスワードについて話した複雑さが重要になってくるのです。認証の2つ目の形態、つまり認証要素は「あなた自身であること(生体情報)」です。「あなた自身であること」とは通常、偽造できない身体的特徴に関するイミュータブルな測定値であるバイオメトリクス(生体認証)を指します。したがって、指紋、虹彩スキャン、指定されたフレーズを復唱する際の
声の響きなどです。歩き方、身長、顔認識のための顔、これらはすべてバイオメトリック要素です。つまり「あなた自身であること」です。バイオメトリック要素には長所と短所があります。これらは他の要素と組み合わせて使用することができます。もちろん、バイオメトリクスの大きな欠点は、コピーされたり失われたりした場合、交換できないことです。例えば、私の指紋が漏洩し、誰もが私の指紋にアクセスできるようになり、スパイ映画でよく見るようにラテックスで指紋を再現できるようになったとしても、私は自分の指紋を変えることはできません。したがって、このバイオメトリクスは私にとって役に立たなくなります。バイオメトリクスを適用するのはかなり難しいことがわかっていますが、第二の要素としては非常に有用です。ただし、決して主要な要素としてではありません。私は、自分自身を認証する唯一の方法としてバイオメトリクスを使用することは絶対にありません。例えば、私の
生体認証 (1:00:44)
電話です。なぜなら、8歳の子供なら誰でも知っているように、お母さんがソファで寝ている間に、お母さんのiPhoneを指に押し当てれば、Amazonで買い物ができるからです。自分専用のサンタクロースになれるのです。お母さんの親指にアクセスするか、バーベキューパーティーでの大仕事の後にいびきをかいて寝ているお父さんの顔の前に顔認証デバイスをかざすだけでいいのです。生体認証だけでは不十分ですが、非常に優れた第2要素にはなります。最後の要素は、あなたが持っているもの、あなたが所有しているものです。そして、この生体認証要素は通常、追加のデバイスに組み込まれています。それは、あなたが保持するセキュリティ要素となるデバイスです。鍵は、あなたが所有している認証要素です。デジタル鍵、秘密鍵、あるいは物理的な
ドアを開けるための鍵です。そして最近では、所有しているものに基づいた第2要素として、USBデバイス化されたものが増えています。実際、私はノートパソコンに常に1つ挿しっぱなしにしています。皆さんの多くは、私がこれについて話すのを聞いたことがあるでしょう。これはYubiKeyです。このYubiKeyは非常に小さなデバイスで、ノートパソコンのUSBポートに挿すと、タッチセンサー式の小さな金属のタブだけが飛び出します。これを使おうとすると、タッチするように求められます。そしてタッチするとアクティブになり、コンピューターからコードが送信されます。現在、私のコンピューターの横にあるこのデバイスをタップして認証しない限り、私のコンピューターや私が使用している他の多くのサービスにログインすることはできません。さて、もしあなたが私のデータベースやマスターパスフレーズを盗んだり、
私のパスワードを推測したりしても、あなたはこのデバイスを持っていないため、これらのデバイスを復号して開いたり、私の様々なアカウントにアクセスしたりすることはできません。私がこれを持っています。そしてもちろん、それが追加のセキュリティ要素となります。これ単体では不十分です。なぜなら、誰かが私のノートパソコンを盗むことができれば、彼らはこのデバイスを手に入れることになりますが、幸いなことに彼らはもう一つの要素である私のパスワードを持っていないからです。したがって、一般的に多要素認証について話すとき、私たちは単一の認証要素だけでは不十分であることを認識しています。すべての認証要素には障害モード(弱点)があります。しかし、多要素認証を使用し、認証要素を多様化させれば、1つの認証要素が破られても、もう1つの要素が保護として機能します。つまり、層(レイヤー)があるのです。スパイ映画ではよく、指を切り落として
悪役の指を指紋リーダーに持っていき、それを使ってドアを開けるシーンがありますが、実際にはそのように機能するドアはありません。すべてのドアはPINコードも要求します。それはまさに、PINコードを盗んでも指がない、指を切り落として盗んでもPINコードがわからないようにするためです。両方が必要なのです。そのようなデバイスのメーカーで、どちらか一方だけで開けられるように作るメーカーはありません。実際、生体認証だけで開くようにスマートフォンを設定するのは非常に危険であり、追加のメカニズムを確実に用意する必要があります。チャットで素晴らしい追加の質問がありました。「YubiKey、つまりセキュリティキーを紛失したらどうなりますか?」というものです。実は、私はいくつか持っています。3つ持っています。そして、究極のバックアップとして、1つをオフサイト(離れた場所)に保管しています。
2つ目は、ノートパソコンに挿しっぱなしにせず、持ち歩いているものです。セキュリティ担当者が首からストラップ(ランヤード)で下げていたり、キーホルダーとして付けていたりするのをよく見かけるでしょう。これらのデバイスは非常に頑丈で、キーホルダーに取り付けられるように設計されていることが多いです。そのため、鍵と一緒に持ち歩くことができ、理にかなっています。同様のセキュリティモデルとして、これらはほぼ破壊不可能です。トラックで轢いても機能します。私はこれら3つのセキュリティキーをすべて登録しており、どれでも機能するようにしています。アクセスを失うには、3つすべてを紛失しなければなりません。しかし、3つとも入手困難な場所にあります。そして、私がここで対処しようとしている主なリスク、主な脅威は、リモートからの侵害です。確かに、私の家やオフィスに侵入すれば
セキュリティ鍵とYubiKey (1:05:51)
あるいは5番目の秘密の場所にいて、あなたが私のホテルの部屋などに押し入る邪悪なメイドだとしたら、これらのデバイスを見つけることはできるかもしれませんが、おそらく私のパスワードは持っていないでしょう。もし私のシステムをハッキングしてパスワードを手に入れたとしても、デバイスは持っていません。パスワードを使って私のデバイスの1つにログインしようとしても、私はコンピュータの側面をタップしてアクセスを許可したりはしません。そして正直なところ、コンピュータから離れるときは、YubiKeyを抜いて持ち歩いています。つまり、これもまたレイヤー(多層防御)の話なのです。したがって、二要素認証とは、サービスやデバイスで自分自身を認証するために、少なくとも2つの要素を使用することを意味します。そしてこれらは、あなたが知っていること(知識情報)、あなたが持っているもの(所持情報)、そしてあなた自身(生体情報)です。これら3つのうちどれでも、2つ目の要素として使用できます。そしてもちろん、
望むなら三要素認証を使用することもできますが、それは少し珍しく、その時点では面倒で複雑になります。復旧が難しくなり、簡単に締め出されてしまいます。そのため、通常は2つが最適な数であり、だからこそ私たちはそれを2FA(二要素認証)と呼んでいます。他の人はそれをMFA(多要素認証)と呼びます。全く同じものです。業界で使用されている、先ほどお見せした小さなYubiKeyのようなセキュリティ鍵のユニバーサルフォーマットの標準として、別の標準があります。これはFIDOアライアンスと呼ばれる標準化団体によって作成されたもので、U2F(Universal Two Factor)と呼ばれています。私のコードのスライドに気づいたなら、そこには「learn U2F universal two factor」とあります。U、数字の2、文字のFで、U2Fです。これは単に、プラグイン接続したり、
認証しようとしているデバイスにBluetoothやNFC経由で送信したりできる、ハードウェアベースの多要素デバイスの標準です。さて、それでは質問に移りましょう。それではありません。どこでしょうか?今かな?よし、ちょっと待ってください。質問がハイライトされていないようです。理由はわかりません。少し時間をください。直します。ブラウザを更新する必要があります。複雑なパスワードを要求されないことを祈りましょう。よし、何か...あ、待って、ちょっと待ってください。私のSlidoに何か問題が起きていて、ハイライトされた質問が実際に見えません。なぜこんなことが起きているのかわかりません。こんなことは初めてです。ああ、投票がありますね。どうやらアクティブな投票があって、それが質問を見る邪魔をしているようです。理由はわかりません。失礼しました。ああ、ありました。直りました。皆さん、技術的な問題で申し訳ありません。なぜテキスト
メッセージは弱い二要素認証なのでしょうか、何もしないよりはマシなのでしょうか?他の誰かが指摘したように、多くの銀行がSMSを使用しており、SMSのテキストメッセージを二要素認証として使用しています。では、なぜテキストメッセージは弱い二要素認証なのでしょうか?わかりました。テキストメッセージはどのタイプの要素なのでしょうか?これがわかるか見てみましょう。それはあなたが知っていることでしょうか?いいえ、その時点では知りません。何か投票が行われていて、それが邪魔をしているようです。すみません。なぜかSlidoが投票から始まりました。変ですね。気を取り直して。テキストメッセージは良い二要素認証でしょうか。どのタイプの要素でしょうか?それはあなたが知っていることでしょうか?いいえ、なぜならあなたはそれを知らないからです。テキストメッセージとして送られてきたとき、あなたはそれを知らず、その時に知ることになります。ですから、それはあなたが知っていることではありません。それは
なぜSMSは二要素認証として脆弱なのか (1:11:00)
「あなた自身(生体情報など)」でしょうか?いいえ、あなた自身ではありません。「あなたが所有しているもの」でしょうか?ある意味ではそうです。テキストメッセージを受信する電話を所有しているのだから、自分が所有しているものだと思うかもしれません。しかし、テキストメッセージは電話機に送信されるのではなく、電話番号に送信されます。では、あなたはその電話番号を所有しているでしょうか?実際のところ、電話番号とはSIM、正確には電話機に入っているSIMカードが紐づいているアカウントのことです。では、そのアカウントを所有しているのは誰でしょうか?答えは、Vodafone、Verizon、AT&T、T-Mobileなどの通信事業者です。つまり、テキストメッセージによる二要素認証の問題点は、あなたが電話番号を所有していないことにあります。所有しているのは電話会社です。そして、電話会社のセキュリティは最悪です。本当にただそれだけのことなのです。したがって、攻撃者がやるべきことは、電話会社のカスタマーサービスに電話をかけ、
背景で赤ちゃんの泣き声を流し、赤ちゃんが泣き叫ぶ中でイライラしているベビーシッターと話しているふりをすることだけです。さらに、背景で夫や妻が怒鳴っている声も聞こえます。あなたはパニックに陥っており、最悪な一日を過ごしているとします。すると、カスタマーサービスの非常に親切で共感力の高い担当者は、あなたが配偶者がアカウントに設定したパスワードを知らなくても、これが本当に緊急事態であり、どうしても連絡を取る必要があるのだと信じて、すべてのセキュリティチェックを省略してくれます。そして、緊急事態だからという理由で、今すぐアクティベートする必要がある新しい電話機に、喜んで電話番号を移行(ポート)してくれるのです。これが理論上の攻撃のように聞こえるかもしれませんが、Def ConやBlack Hatなどのハッカーカンファレンスでは、ソーシャルエンジニアリング攻撃と呼ばれるこの手法の素晴らしいデモンストレーションが実際に行われています。そして、
その中でも最高のものの一つが、非常に熟練したソーシャルエンジニアリングのハッカーが、ジャーナリストに対して、どれほど早く電話番号を乗っ取れるかを実演した動画です。ハッカーは電話会社に電話をかけ、背景で赤ちゃんの泣き叫ぶ録音を流しながら、緊急事態なので助けてほしいと懇願しました。そして文字通り10分も経たないうちに電話番号を乗っ取り、それを使ってメールアカウントをリセットし、さらに他のすべてのアカウントをリセットして、15分足らずでそのジャーナリストのデジタルアイデンティティ全体を実質的に侵害してしまったのです。これが、テキストメッセージが二要素認証の形式として脆弱である理由です。可能であれば使用しないことが非常に重要です。しかし、匿名の質問にあった「何もしないよりはマシか?」という点については、何もしないよりはマシです。もし、
より良い選択肢を選べるアカウントでの使用を避けられるのであれば、何もしないよりはマシです。したがって、テキストメッセージ以外の方法を使用できるアカウントでは、その別の方法を使用してください。もう一つは、利用している通信事業者が誰であるかを非常に慎重に考えることです。多くのセキュリティ専門家は、ソーシャルエンジニアリングの標的となる人間のカスタマーサービスが存在せず、アカウント自体が強力な二要素認証で保護されている通信事業者を利用しています。例えば、仮想ネットワーク事業者であるGoogleのProject Fi(F-I)には、会話できる人間のオペレーターがいません。そして、ユニバーサル二要素トークンなどの強力な二要素認証で保護できるGoogleアカウントを通じて、その電話アカウントに接続、アクセス、設定を行います。つまり、あなたの電話番号は移行(ポート)されることがなくなり、テキストメッセージベースの
二要素認証(例えばセキュリティが最悪な銀行など)をより安全に利用できるようになるということです。セキュリティが最もひどい企業といえば、銀行、電話会社であり、その次にまともなセキュリティチームを持つ実際のサービスプロバイダーが続きます。つまり、すべては多層防御(レイヤー)の問題なのです。もし、二要素認証としてテキストメッセージを使用する以外の選択肢がない場合(私自身もテキストメッセージを使わざるを得ないサービスをいくつか利用しています)、そのテキストメッセージがしっかりと保護されたアカウントに届くようにしてください。携帯電話キャリアであっても、アカウントにPINを設定することができます。番号の移行(ポート)機能をオフにすることもできます。アカウントを強化するために、あらゆる対策を講じることができます。しかし、さらに良いのは、ソーシャルエンジニアリングの標的となる人間のオペレーターがいない仮想ネットワーク事業者やサービスプロバイダーに番号を移行することです。
電話番号の保護 (1:16:25)
ソーシャルエンジニアリングによって電話番号をポート(移行)されてしまう可能性があります。そのため、電話番号を管理する要素には強力な認証が必要です。可能であれば、それは避けるべきです。特に、数百万ドル相当の暗号資産を保管している取引所に接続するための二要素認証として使用している場合は、絶対に避けてください。もちろん、ここで私がほのめかしているのは、ある悪名高い暗号資産の専門家のことです。彼は実際に、数百万ドル相当の暗号資産を取引所のウォレット、つまり自分のものではないカストディアルなホット・ウォレットに保管し、AT&Tが提供するSMSの二要素認証を使用していました。そして現在、5,000万ドルか1億ドルか、そういった途方もない金額の損失を理由にAT&Tを提訴しています。正直なところ、もし私が専門家証人として法廷に立つような訴訟であれば、証言台に立って30分間、面と向かって笑い続けるでしょう、
原告の。AT&Tのテキストメッセージによる二要素認証に依存する取引所に数百万ドルを預けたのは他人のせいだと言ったとしても、私は全く同情しません。さて。では、実際に機能する二要素認証について話しましょう。ハードウェアであるセキュリティキーについてはお話ししましたが、皆さんも使ったことがある非常に一般的な別の仕組みもあります。それは6桁の数字を使うものです。Neerajが、まさにそのトピックについて役立つ質問をしてくれました。「こんにちは、Andreas。GoogleやMicrosoftの認証アプリはどのように機能するのですか?それらに代わる分散型システムはありますか?」Neeraj、これらは分散型システムです。アプリ自体は中央集権的な組織によって作成されていますが、アプリの仕組みは実は非常にシンプルです。その結果、実際には分散型になっているのです。これらの認証アプリに保存されているシークレットは、
ローカルデバイスにのみ保存されます。もちろん、いくつかのバリエーションはあります。例えばOffiのような一部のアプリケーションでは、二要素認証の基盤となるシークレットをバックアップし、別のデバイスにポート(移行)することができます。これは便利ですが、危険でもあります。Offiやバックアップをサポートする他のシステムで、複数デバイスのサポートをオンにしている場合は、普段はオフにしておく必要があります。そして、スマートフォンをアップグレードしてすべてのアカウントを新しいデバイスに移行する必要がある場合など、別の電話やデバイスにポートする時にのみオンにしてください。Google Authenticatorも、最新バージョンでバックアップとポート機能を導入しました。どのような仕組みかは分かりませんが、もし同じように機能するのであれば、デフォルトでオフになっていることを確認してください。そうすることで、そのローカルデバイスだけが
それらのセキュリティコードを使用できるようになります。そうでなければ、本当の意味での二要素認証とは言えませんよね?それは「あなたが所有しているもの」ではなく、バックアップパスワードになってしまいます。それは「あなたが知っているもの」であり、簡単に盗まれる可能性があります。あるいは、電話番号に紐付いてしまいます。その場合、先ほど話したテキストメッセージのセキュリティの問題に逆戻りです。誰かがあなたのSIMをポートし、電話番号を乗っ取ります。彼らはスマートフォンに認証ソフトウェアをインストールします。そしてバックアップをダウンロードし、そのデバイスにポートします。これで、実際には二要素認証ではなかったあなたのすべての二要素認証が彼らの手に渡ってしまいます。これが失敗のパターンですが、まずはこの仕組みについて話しましょう。では、GoogleやMicrosoftの認証アプリはどのように機能するのでしょうか?まず、この仕組みの名前を確認しましょう。これはワンタイムパスワード、またはOTPと呼ばれるメカニズムです。ワンタイムパスワードは数十年前から存在し、使用されてきました。いや、訂正させてください。デジタルの
ポータブルデバイス上のワンタイムパスワードが数十年前から存在しているのです。ワンタイムパスワード自体は、実は何千年も前から存在しています。ここでの一般的な概念は、ランダムな数字のシーケンス(数列)を生成し、通信する双方がそのシーケンスのコピーを持っているか、あるいはそのシーケンスを生成でき、他の誰にも生成できない状態にするということです。そうすれば、盗んだり推測したりするものは何もありません。ワンタイムパッドは、これらのシークレットを生成し、盗まれないようにできる限り、破られることのない暗号化の手法です。そして、数字による6桁のコードであるワンタイムパスワードは、盗むのが非常に困難です。それらを生成するルートシークレットを秘密に保つことができる限りは。さて、GoogleやMicrosoftの認証アプリは、タイムベースド・ワンタイムパスワード(TOTP)と呼ばれる、ワンタイムパスワードの特定のサブクラスです。そして、タイムベースド・ワンタイムパスワードの標準をサポートするアプリケーションを探したい場合は、次の頭字語を使用します。
タイムベースのワンタイムパスワード (1:21:56)
T-O-T-P。OTPはワンタイムパスワード(One-Time Password)の略で、T-OTPはタイムベースのワンタイムパスワード(Time-based One-Time Password)のことです。タイムベースとは単に、コードが現在の時刻に結びついており、30秒ごとに変化することを意味します。これらはシークレット(秘密情報)と時計を使用し、現在の時刻とほぼ正確に同期している必要があります。これにより、使用したい特定の時刻に対する特定のコードを生成します。30秒という時間枠があるため、多少のズレがあっても、画面で確認してウェブサイトに入力する余裕があります。接続先のウェブサイトやデバイスは同じシークレットを持っており、時計もほぼ同期しているため、入力すべきコードを特定できます。通常は、少しズレていても対応できるように、前後のコードも確認します。
例えば30秒を少し過ぎた場合でも、それを受け入れます。画面には現在のコードと小さなカウントダウンが表示されます。そして30秒後にはコードが変わり、新しい6桁の数字が表示されます。この仕組みは秘密鍵を使用しています。そして、その秘密鍵から派生関数(さまざまな種類があります)を使用します。T-OTPの標準的な用途が何であるかはわかりませんが、時間を使った何らかのハッシュメカニズムだと推測しています。その派生関数を使用して、30秒ごとに新しい数字のコードを生成します。そして、シーケンス...すみません、シークレットと現在の時刻から、現在の時刻に対する正しいコードを計算できます。シークレット自体は、利用しようとしているサービスが最初に表示するQRコードに含まれています。したがって、これらの
デバイスのいずれかを使用する場合、それらはすべて互換性があるため、Google Authenticator、Microsoft Authenticator、Authy、Duo、またはその他のどれを使用しても構いません。また、ほとんどのパスワードマネージャーにも、これらのT-OTPサービスが組み込まれています。2要素認証を追加しようとしているウェブサイトやサービスからQRコードをスキャンするだけで済みます。そのQRコードにはシークレットが含まれています。このシークレットは、アカウントに紐付けられた、ランダムに生成された英数字の文字列です。ウェブサイトがあなたのためにランダムに生成し、QRコードとして提示します。それをGoogle Authenticatorデバイスでスキャンすると、Google Authenticatorデバイスはそれをシークレットとして記録し、現在の時刻に対するコードの生成を開始します。その後、これらのコードのいずれかをウェブサイトに入力します。ウェブサイトは追跡を行い、「はい、それは私が期待していたコードです」と確認することで、正しく入力されたことを確認できます。
この30秒の枠内で。これで2要素認証が確立されました。もちろん、これらで難しいのはバックアップです。バックアップを行う方法はいくつかあります。バックアップの1つの方法であり、おそらく最も安全な方法は、物理的に印刷することです。画面にQRコードが表示されたら、印刷ボタンを押してください。物理的な印刷と言うのは、写真を撮るという別の方法を取りたくなるかもしれないからです。もちろん、写真を撮るためにはスマートフォンを使用することになります。問題は、その写真がクラウドに保存されてしまうことです。その時点で、それはもはやGoogle AuthenticatorやT-OTP認証アプリのデバイス上だけにあるわけではなくなります。そしてその時点で、それはもはや安全な第2要素ではなくなります。2要素認証のシークレットのバックアップを
クラウドに作成するのは良いアイデアではありません。実際には、2要素認証ソフトウェアが備えているかもしれないバックアップ機能を使用する方が良いでしょう。これは少なくとも、あなたが選んだパスワードで暗号化されています。では、そのパスワードをパスワードマネージャーのどこに保存するのでしょうか?おわかりのように、ここでは堂々巡りになっており、時には混乱を招くこともあります。したがって、バックアップを作成したい場合はQRコードを印刷してください。あるいは、ほとんどのサービスでは、2要素認証トークンやアプリを紛失した場合、リセットを依頼できるため、バックアップを作成しないという選択肢もあります。ただしその場合、身分証明書を掲げて自撮りをしたり、メールや電話などの複数の他のメカニズムを通じて確認したりするなど、面倒な手続きを踏まされることになります。また、これらのサービスの多くは、動的に生成されるコードの代わりに入力できる、事前に計算された数字のコードである一連のバックアップコードも提供します。
2要素認証の階層 (1:26:44)
静的に生成されたものです。これらは認証デバイスを紛失した場合に備えるためのものです。では、これらをどこに保存するのでしょうか?パスワードマネージャーに保存します。したがって、タイムベースのワンタイムパスワードアプリを使用した2要素認証は、強力で効果的かつ使いやすい仕組みであり、今日からすべてのアカウントに追加できます。それでは、セキュリティの階層を見てみましょう。ユニバーサル2要素セキュリティキーは、非常に強力な暗号化に基づいています。複数を登録して安全な場所に保管しておけば、侵害するのは非常に困難です。物理的なものであるため、バックアップも非常に簡単です。別の物理的なものを手元に置いておくことでバックアップできます。コピーすることは不可能であり、気づかれずに盗むことも不可能です。第2層は、QRコードをスキャンして使用するタイムベースのワンタイムパスワードで、Neerajが説明したようなアプリを使用します。これらは6桁の
コードを30秒ごとに提供します。繰り返しになりますが、これによりあなたのスマートフォンが「あなたが所有しているもの」という第2要素になります。これらはバックアップが少し困難です。また、スマートフォンが盗まれた場合、簡単に侵害される可能性があります。私は、指紋を使用しないと数字のコードを見られないように、2要素認証アプリ自体に指紋認証を設定するのが好きです。これは実質的に第2要素の上にある第3要素であり、誰かが私のスマートフォンを盗み、その時にロックが解除されていて2要素認証アプリにアクセスできそうな場合でも、アクセスできないように保護してくれます。そして最後に、最下層はテキストメッセージによる2要素認証です。もちろんこれは安全ではありませんが、他に選択肢がない場合は、何もないよりはましです。以上が2要素認証の階層です。それでは、他にどのような質問があるか見てみましょう。私が
ここで少し休憩を取る間に。そして、なぜ私のオンラインでの活動を支援すべきなのかを伝える、私のパトロンからのビデオを再生します。今日私たちがしていること、そして私が常に心がけていることは、スポンサーなし、推薦なし、広告主に迎合することなく、企業の利益に縛られない中立的な方法で、ビットコインとオープンなブロックチェーンに関する高品質な教育資料を提供することです。あなた以外にこれにお金を払っている人はいません。したがって、この教育を気に入っていただけた場合、この教育から恩恵を受けた場合、あるいは単に恩返しをして他の人がこの教育を受けられるように助けたい、私と私のチームがこの活動を継続し、より良く、より広く行えるように支援したいとお考えの場合は、YouTubeメンバーシップ、あるいはさらに良い方法として月額のパトロン購読による支援をご検討ください。私のパトロンの言葉を借りて、その理由をご紹介します。
- 私がAndreasのパトロンになったのは、オンラインで彼のビデオに出会い、そこでビットコインについて学んだからです。それが私がビットコインを知るきっかけでした。 - 今夜は、有料パトロン支援の一環としてAndreasが主催するソーシャルイベントに参加しています。ロンドンのダウンタウンで数杯飲んだところで、本当に楽しい夜になっています。同じ志を持つ多くの人たちに出会うことができました。 - 私たちはAndreasの活動を支援すべきです。彼は新しい人々をビットコインやビットコイン教育に導くために多大な貢献をしています。 - 彼は素晴らしい教師です。非常に複雑なトピックをわかりやすく説明してくれます。彼はとても誠実で、非常に正確です。準備が行き届いており、知的に誠実です。それが彼の最大の特徴だと思います。 - 彼は、ビットコインとその周辺の業界という非常に複雑な主題に、これほどの明確さをもたらしてくれます。 - それは
私にとって非常に良い刺激になっており、私が彼に提供するすべてのビットコインは、私たちがビットコインを理解するのを助けるために非常に有効に使われるでしょう。そして、いつか世界を良くするものだと信じています。 - パトロンになればAndreasに会うことができます。それが私がパトロンであることを愛する理由であり、これからもパトロンであり続けるつもりです。 - 単純に良いことだと思います。新しいことを学ぶことに興味があり、ビットコインコミュニティを支援したいのであれば、パトロンになるべきです。 - パトロンになると特別な気分を味わえます。彼のライブQ&Aセッションに参加できます。ハッピーアワーで彼に会うこともできます。本当に素晴らしく、完全にその価値があります。私はパトロンであることに非常に熱狂しています。 - 私は彼に、広告のない未来で、彼の素晴らしく価値のあるコンテンツを制作し続けてほしいと思っています。そしてただ
Q&A: 電話番号のポータビリティとアプリのセキュリティ (1:31:37)
パトロンの支援のおかげです。だからこそ、私もPatreonで彼を支援しています。(穏やかな音楽)- さて、次の質問に移る前に、チャットでいくつか素晴らしいフォローアップがありました。プロデューサーが親切にも投稿してくれたものです。まず、Luciaからのフォローアップです。「どんな電話番号でも、対人カスタマーサービスがない通信事業者に移行(ポート)できますか?」これは、登録している国によって異なります。通信事業者間のポータビリティに関する法規制は国ごとに違います。しかし正直なところ、ヨーロッパのほとんどの国、そして間違いなく北米(アメリカとカナダではそうだと知っています)では、通信事業者がポータビリティの要求に応じることを義務付けています。つまり、正しい手続きを踏めば、番号を失うことなく新しい通信事業者に移行できるということです。そして、対人カスタマー
サービスがない、人が対応しない通信事業者に移行することも可能です。その点で私が最もよく耳にするのはGoogle Fiです。他にも、番号ポータビリティ攻撃に対して同様に安全な事業者がたくさんあるかもしれません。私はそれを好んでいますが、明らかな理由からプライバシーのリスクはいくつかあります。2つ目の質問はBenからです。Benは「アプリがシークレット鍵を漏洩していないことをどうやって知ることができますか?」と聞いています。Ben、アプリがシークレット鍵を漏洩していないことを確実に知ることはできません。多くの人に使われ、セキュリティ環境で利用され、監査やレビューを受け、おそらくソースコードが監査されており、信頼できる企業によって構築されたアプリを選ぶことしかできません。セキュリティを真剣に受け止め、問題を起こしていない長い実績がある企業です。これには相手方への信頼が必要です。しかし、私が話してきたことのほとんどは、相手方への信頼を必要とします。したがって、問題は「どれだけの信頼を
相手方に置いているのか、そしてその相手方は誰なのか?」ということです。そして、代替案は何でしょうか?もし代替案が、アプリを使わずに記憶に頼ろうとすることであれば、実はその代替案の方が悪いのです。これが、セキュリティにおいて取らなければならない慎重なバランスです。より安全な分散型認証、分散型アイデンティティ (DID)、分散型検証のさまざまなメカニズムを実装しようとする企業がますます増えています。たとえば、ビットコインやイーサリアム上のマルチシグは、しばしばそうしたサービスの基盤となります。しかし今のところ、これらのサービスは比較的未成熟で、広く展開されておらず、この種のソリューションにはまだ適していません。そのため、この分野の将来には非常に期待しています。それまでの間、あなたが問うべきことは、「優れた実績を持つ中央集権的なサービスを使うことと、サービスをまったく使わずに記憶に頼ろうと
することのどちらが良いか?」ということです。そして、私は明確に答えることができます。パスワードマネージャーを使わずに、不完全な記憶や不完全なランダム性、そして自分の技術的能力を超えるかもしれないDIYソリューションに頼ろうとするよりも、信頼できる、あるいは優れた実績を持つ企業のパスワードマネージャーを使う方が良いです。次の質問に行きましょう。Trixieからです。「Andreas、そのメガネ素敵ですね。」私もそう思います。ありがとう、Trixie。これがあれば、ノートパソコンの画面を実際に読むことができます。私がやっているライブ配信には2つのタイプがあります。1つは少しアドホックで、質問ベースのものです。ノートパソコンで何が起きているかをあまり読む必要はありません。あそこに立派なスタジオモニターがあり、視力が落ちていても読めるくらい十分に離れています。そして、今日のようなもう1つのタイプは少し複雑です。私は多くのことをこなす必要があります。
Q&A: 銀行のSMSをより強力な認証に変換する (1:36:01)
読むためのものです。テーブルの上にノートパソコンを置いています。だからこういったものが必要なのです。でもありがとうございます、話が逸れましたね。この質問の核心に戻りましょう。編集者のために最初からやり直します。Trixieからの質問です。「銀行のあの馬鹿げたテキストメッセージ(SMS)を、Authyか何かに変換する方法はありますか?タイムベースのワンタイムパスワードシステムのようなものに」。Authyは、そうしたタイムベースのTOTP(Time-based One-Time Password:タイムベースのワンタイムパスワード)の一つです。Trixie、残念ながらありません。銀行がテキストメッセージ以外のものをサポートする仕組みを持っていない限り、タイムベースのワンタイムパスワードを使用することはできません。この場合の正解は、テキストメッセージを使用しつつ、タイムベースのワンタイムパスワードのような強力な認証メカニズムを要求する電話会社に変更することです。さらに良いのは、セキュリティキーを使用したユニバーサル2要素認証(U2F)や、そうしたオプションを設定できる電話会社を選ぶことです。そうすれば、強力な認証が必要になるため、電話番号が勝手にポート(MNPによる乗っ取り)されることはありません。そして、
電話番号がポートできない状態であれば、銀行のテキストメッセージははるかに安全になります。Trixie、素晴らしい質問をありがとうございました。さて、他にどんな質問があるか見てみましょう。あまり他の質問が見当たりませんね、おっと、ありました。モデレーターが今、必死になって質問を拾い上げ、私のためにキューに入れてくれています。これでさらにいくつか質問が見つかるでしょう。今日のセッションを楽しんでいただけていると嬉しいです。では、これまでに学んだことを簡単に振り返ってみましょう。セキュリティが100%になることは決してありません。セキュリティとは、自分の技術的な能力の範囲内で現実的なリスクを管理することです。見つけられる限り最もシンプルで、一貫して適用できる解決策を用い、それを他の解決策と重ね合わせることで、執念深い攻撃者に対する一連の障壁を提供します。セキュリティ対策を正しく行えば、これらの対策に慣れて快適に感じるようになります。一貫して適用できるようになり、そして、
自分のスキルと脅威環境の両方に慎重に合わせた十分な層(レイヤー)を持つことで、攻撃者があなたを攻撃するための時間、リソース、予算、関心、あるいは報酬を持てないようにすることができます。その結果、彼らは代わりに、より狙いやすいターゲットを攻撃するようになります。これが基本的にセキュリティというものです。完璧であることは不可能です。実際、あなたは人間です。したがって、定義上、不完全な存在なのです。一貫して、かつ自分のスキルレベルの範囲内で実行できる必要があります。つまり、十分にシンプルでなければならないということです。単一のツール、技術、実践、または行動で解決することはできません。そのため、複数のツール、複数の技術、複数の行動を重ね合わせて使用する必要があります。理想的には、攻撃者に異なるスキルを要求し、異なる脅威から保護する多様なセキュリティメカニズムを重ね合わせることで、包括的なシステムを構築します。それでも、
100%のセキュリティには到達しませんが、一貫して、意図的に行い、脅威に対するニーズと自分のスキルレベルの両方にうまく合わせることができれば、「もう何年もハッキングされていない」と心から言えるエリートグループの仲間入りを果たすことができます。それがあなたにできる最善のことですが、通常はそれで十分素晴らしい結果です。そして、他の多くの人々よりもはるかに高いレベルに到達できます。匿名の方からの質問です。「まだパスワードマネージャーを詳しく比較したり、試したりしていない人に向けて、懸念点や提案があれば共有していただけますか?」私は長年にわたり、さまざまなパスワードマネージャーを使用してきました。非常に広く使われているものの、私のお気に入りではないものもあります。使用しているデバイスによっては、時々、あるいは常にしぶしぶ使っているものもあります。また、
人気が出たり落ちたりしているものもあります。さらに、新しく注目を集めているものもあります。どれがあなたに合っているかを断言することはできません。おそらく最も人気があるのは、LastPassと呼ばれるシステムと、1Passwordと呼ばれるシステム(数字の1の後にpasswordという単語が続く、1つの単語)の2つだと言えます。1PasswordとLastPassが、おそらく最もよく知られています。それ以外にも、さまざまな機能や差別化要素を持つシステムが多数存在します。私が興味を持って見ている少し新しいものの一つに、Bitwardenがあります。これはオープンソースのシステムで、マルチプラットフォーム対応であり、非常によく設計されているからです。しかし結局のところ、たとえばハードウェア・ウォレットのメーカーについて同じアドバイスをしたように、パスワードマネージャーについても同じアドバイスをします。トップ3、4つの間の違いは、
Q&A: パスワードマネージャーの比較 (1:41:43)
この分野には5つの企業がありますが、製品間の違いはごくわずかです。どれも非常に優れており、安全性も高く、一貫性があります。トップ4、5のパスワードマネージャーのいずれかを使用することと、全く使用しないこと、あるいは自分の記憶に頼ったり独自のソリューションを構築しようとしたりすることとの間には、大きな差があります。したがって、「どれを使うべきか」ではなく、「使うべきかどうか」が問題であり、その答えは「イエス」です。あまり時間を無駄にしないでください。一つの考え方として、家族の他のメンバーが何を使っているかを確認することです。そうすれば、パスワードを簡単に共有できます。これらのほとんどは閉鎖的なエコシステムです。そのため、家族全員がBitwardenを使っているなら、あなたもBitwardenを使う方が良いでしょう。もしあなたの会社や雇用主がどれかを使用しているなら、おそらく
2つの別々のアカウントを維持できる限り、個人の用途でも同じものを使用する方が良いでしょう。そうすれば、多くのアプリケーションを実行して複雑になりすぎるのを防げます。繰り返しになりますが、シンプルに保つことが重要です。あなたが問うべき唯一の質問は、「どれだけ早くこれらのいずれかを導入して適切に保護し、最も重要なものから順にすべてのウェブサイトのパスワードを変更できるか」ということです。匿名の方からの質問です。「Google Authenticatorの初期設定と実装は、非対称暗号化を使用するビットコインとは異なり、対称鍵を使用しているのでしょうか?」はい、その通りです。そして、私はT-OTP標準について調べたことがないので、それがどのようなものかは分かりません。それは対称暗号化ですらないかもしれません。パスワードストレッチングアルゴリズムかもしれません。実際には、次のようなものに基づいた何らかのシーケンスである可能性が高いです。それは
ハッシュを使用した導出です。しかし、詳しく調べたわけではないので分かりません。非対称ではないことだけは確かです。つまり、秘密鍵と公開鍵のシステムではありません。対称暗号化とは何でしょうか?非対称暗号化とは何でしょうか?これもチャットで出た別の質問です。非対称暗号化とは、ペアとなる2つの鍵が存在し、それらを秘密鍵と公開鍵と呼ぶものです。一方の鍵で暗号化されたものは、もう一方の鍵でしか復号できず、その逆も同様です。したがって、秘密鍵で何かを暗号化した場合、それはあなたの公開鍵でしか復号できません。そして、公開鍵で何かを暗号化した場合、秘密鍵を持つ人だけがそれを復号できます。これらの技術の組み合わせは、デジタル署名に使用されます。また、2人の受信者間でのデータの暗号化と復号にも使用されます。しかし、これが意味するのは、
私宛に何かを復号したい場合、私の公開鍵が必要になるということです。公開されており簡単に共有できる私の公開鍵で暗号化すれば、私だけがそれを復号できます。多くの人に向けて暗号化したい場合は、全員の公開鍵が必要であり、それぞれの公開鍵に対して個別に暗号化する必要があります。対称暗号化とは、暗号化と復号の両方を行う1つの鍵を持つ方式です。実際、1970年代までは対称暗号化が唯一の暗号化メカニズムでした。私の記憶が正しければ、非対称暗号化は1970年代まで発明されていませんでした。これが対称と非対称の違いです。ええと、ここにもう一つ質問があるようです。Carlosからの追加の質問です。認証にビットコインの署名を使用するのはいつになるでしょうか?今日でも認証にビットコインの署名を使用することは可能です。問題は、
どのように構築するかを慎重に検討し、自分が正確に何を証明しているのかを理解しなければならないことです。ビットコインの署名、そして一般的に認証にデジタル署名を使用することは、非常に限定的で狭い範囲の事柄を証明するものです。例えば、あなたが私にビットコインの秘密鍵でメッセージに署名して署名を作成し、それを世界中と共有するように求めたとしましょう。その場合、私が証明できることはいくつかあります。署名が作成された時点で、私が秘密鍵を所有していたことを証明します。もちろん、それは私が何年も前にその署名を作成したわけではないことを意味するものではありません。署名がいつ作成されたかは分からないのです。もう一つは、これを実行可能なスキームで使用するためには、署名を求める側が「チャレンジ・レスポンス」と呼ばれるプロセスを行う必要があるということです。単に「何かに署名して」とは言えません。なぜなら、もし私が
Q&A: 認証のためのビットコイン署名 (1:47:01)
メッセージを選ぶ際、基本的には誰かがずっと昔に署名したメッセージを選び、その人が適用した署名を提示して、私がたった今それをしたとあなたに伝えることができます。そして、あなたにはそれが本当かどうかを知る術はありません。したがって、そのようなシナリオでは代わりにチャレンジ・レスポンスが必要になります。そこで私が言うのは、「CarlosMさん、次のようなメッセージに署名してください。『私、CarlosMは、2020年12月…今日は5日ですか?よくわかりませんが、とにかく12月5日に、自分の秘密鍵を所有しています。』」ということです。「そして、Andreasの要請によりこのメッセージに署名しています。」私がここで言っていることがわかりますか?これにより、時間を固定(アンカー)することができます。私が特定のメッセージへの署名を求めるまで、あなたはそのメッセージが何であるかを知ることはありません。それを特定のアクティビティに関連付けるのです。私はあなたに、
署名した時間と署名者の身元に関する情報をそこに入れるよう求めました。これにより難易度ははるかに上がりますが、それでもCarlosがこれに署名したかどうかはわかりません。米国で提案され、EUではすでに導入されている新しいトラベルルールのために、アドレスを所有していることを証明する目的でウォレットを使って署名することについて話したときにも、似たような会話をしました。そしてもちろん、Carlosがアドレスの所有を証明したくて、私が彼にそのようなメッセージを渡した場合、彼がしなければならないのは、そのメッセージをJimmyに渡し、Jimmyに「これはCarlosです」と署名してもらい、それをCarlosに返し、Carlosが私に渡すことだけです。そうすれば、実際にはJimmyが秘密鍵を持っていて2人が協力しているにもかかわらず、Carlosが秘密鍵を持っていると証明されたと私は思ってしまうでしょう。つまり、これは複雑なのです。それは
一見したところほど単純ではありません。さて、そうですね。おそらくあと1つくらい質問に答えようと思います。おっ、これはいいですね。これは本当に気に入りました。Jeffからの質問です。Jeff Tezosの質問です。「テレビのリモコンなどで手動で入力する必要があるパスワード(AmazonやNetflixなど)についてはどうでしょうか?どのくらいの長さと複雑さにすべきですか?」Jeff、私もこれには苦労してきました。そして私なりの答えを持っているので、すぐにお答えします。さて、Jeffが話しているシナリオを想像してみてください。パスワードマネージャーを使って、Netflixアカウント用に記号を含む32文字の固有の英数字の鍵を生成したとします。今度はそれをスマートRoku TVのキーボードで入力しなければなりません。小さなカーソルをキーボード上の正しい文字に移動させ、エンターキーを押し、
それから戻ってCaps Lockまで下がり、Caps Lockをオンにして、上に移動して大文字を選び、それからCaps Lockをオフにして、記号に移動し、数字キーボードに切り替える、というように1文字ずつ入力しなければならないのです。なんてことだ、何時間も、何時間もかかってしまいます。ですから、はい、そのような場合、セキュリティがそれほど重要ではない場合と同じことが言えます。この鍵を他の人と頻繁に共有しなければならないような状況で何かをする必要があります。良い例がWi-Fiのパスワードですよね?したがって、そのような場合、私なら単純な数字またはアルファベットのパスワードを使用します。すべて同じ種類の文字にして、少し長めにします。誰かが私のNetflixをハッキングして、私が『クイーンズ・ギャンビット』を見ていることに気づいたとしても、私は気にしません。もちろん、『クイーンズ・ギャンビット』を見ていますよ。誰もが
『クイーンズ・ギャンビット』を見ています。今は『クイーンズ・ギャンビット』の週ですからね。それを見ているときに私がどこにいるかを特定される可能性があるなど、いくつかのセキュリティ上の考慮事項はありますが、私にとってはそれほど重要ではありません。ですから、依然としてパスワードは必要です。しかし、誰かがそれを解読しようとする可能性は低いので、それほど長くする必要はありません。本当の問題は、Airbnbを出るときにRoku TVをリセットするのを覚えていたかどうかです。あはは。それは良い質問ですね。では、私はどうしているでしょうか?私は通常、数字のパスワード、またはアルファベットや小文字のパスワードを選び、それをグループに分けます。私がよくやる典型的なものは、マイナスやハイフン記号で区切られた12個の数字です。つまり、4桁の数字を3グループ、または3桁の数字を4グループにするということです。ですから、私のパスワードは「937ダッシュ312ダッシュ3」のようなものになります。
Q&A: テレビのリモコンや低セキュリティデバイスのパスワード (1:52:10)
3、1、ダッシュ、4、1、5。現時点では適当に数字を選んでいるだけです。ちなみに、あまり良い乱数ではありませんが。私ならパスワードマネージャーの乱数生成器を使います。数字のみで12桁にするよう設定します。そして、画面から読み取ってキーボードで入力しやすいように、4桁ごとにダッシュで区切って書き留めます。通常、数字とダッシュは同じキーボード上にあり、非常に近い距離にあるため、素早く入力できます。さらに良いことに、多くのリモコンではキーボードの数字部分を使用できます。これは元々... 昔はテレビにチャンネルがあり、そのチャンネルは数字のチャンネル番号で選択されていました。驚くべきテクノロジーですよね。
そのため、多くのリモコンにはテンキー(数字キーパッド)が付いています。これにより、パスフレーズの入力がさらに簡単になります。ジェフ、ありがとうございます。素晴らしい質問でした。そして、セキュリティのバランスに関する非常に実践的な質問です。それほど安全ではないアカウントを守るために、本当にそこまで手間をかけたいですか?Airbnbを退室する際にパスワードを消去したりリセットしたりするのを忘れ、他の人に見つけられてしまうリスクの方が大きい場合、それは少し厄介かもしれません。ジェフからの似たような質問です。おっと。いや、ジェフではありませんでした。すみません、少々お待ちください。よし。うまくいったかな?今日はアプリに少しラグがあります。マイクからの質問です。「例えば、すべての銀行カードで使われているような4桁のPINだけを使うのは、どれくらい安全ですか?」マイク、それは状況によります。それは
そのPINをどこで入力できるかによって変わるのです。銀行カードの4桁のPINが安全な理由は、PINパッドやATMなどのセキュリティデバイスにしか入力できないからです。これらのデバイスは、一定回数以上試行できないように設計されています。そして、それが監視されているデバイスである場合、つまりガソリンスタンドやスーパーのレジなど、人が立っている場所で何度も入力しようとしたとします。4,000通りの組み合わせを試そうとすれば、その様子を見られて警備員を呼ばれるでしょう。一方、監視されていないデバイスで、何時間も座ってあらゆる組み合わせを試すことができるような場合、ご存知の通り、ATMのようにロックされてカードが飲み込まれてしまいます。したがって、
銀行のポリシーに応じて、4回、6回、あるいは3回間違えて入力すると、カードがゴクッと飲み込まれ、二度と試す機会は与えられません。つまり、PINそのものだけでなく、そのPINがどのように使われるかというコンテキストが重要なのです。どこで入力されるのか、何回試行できるのか、そして失敗した場合にどうなるのか、といった多層的なセキュリティメカニズムです。ですから、間違えて入力するとカードが飲み込まれたり、何度も試行できなかったりする追加のセキュリティ層があるATMやPINパッドのようなアクセス制御されたデバイスのコンテキストにおいては、4桁のPINでも十分に安全です。これで良いと思います。多くのトピックをカバーしました。素晴らしい質問の数々、本当にありがとうございました。非常に良いコメントを残していただき、ありがとうございます。今回のセッションのどこが良かったか、
ぜひ教えてください。今回は、これまでやってきたものとは少し違っていました。ビットコインやオープンなブロックチェーンの旅に役立つよう、他にどんなことを学びたいか教えてください。そして、今後もこのようなセッションがいくつも予定されていることをお忘れなく。今後のイベントをご紹介しましょう。「気まずい休日の会話(Awkward Holiday Conversations)」です。これが次に予定されているものです。適切な回答を皆さんに伝授するとともに、Patreonや他のプラットフォームのコメントで現在共有されている、他の人たちの家族との気まずい休日の会話に関する爆笑エピソードもご紹介します。主にビットコインやオープンなブロックチェーンに関するものですが、時にはライブ配信では取り上げられないほど気まずくなるようなトピックもあります。それから、12月にはオープントピックのQ&Aがあり、そこではどんな質問でもでき、私が選んで答えるかもしれません。そして、
締めくくり (1:57:25)
そして最後に、2021年のExtravaganzaイベントがあります。これらのイベントがいつ開催されるかを知り、詳細を学ぶために、私のチャンネルに登録してください。ベルのアイコンをクリックして通知をオンにすれば、これらの新しいイベントについて誰よりも早く知ることができます。本日はご参加いただきありがとうございました。今日のライブストリームでは、この約2時間のプレゼンテーションに300人以上の方々がチャンネルに参加してくれましたが、カバーすべき内容がたくさんありました。さて、この配信中にお気づきかもしれませんが、私の手元にはさまざまな色の素晴らしいカラーの本が積み重なっています。色を楽しむには印刷版が必要ですが、実際には電子書籍として内容を読むことができます。そして、その電子書籍は私のショップ antonov.com/shop で入手できます。このようなマグカップも手に入れることができます。そして、
ちなみに、これらは本当に素晴らしいマグカップです。大きくて、重みがあります。保温性もあります。とても壊れにくいです。私が試したので間違いありません。何度か落としたことがありますが、たくさんのコーヒーが入ります。気まずい休日の会話を乗り切るために、私たち全員が必要とするものです。ということで、月曜日までの今後2日間、全品20%割引となるホリデーセールを開催しています。購入できるものの一つに、暗号資産を選ぶワークショップもあります。そして、それにも20%の割引が適用されます。ホリデー2020セールはショップで利用可能です。クーポンを見つけるには、ショップのトップページ antonov.com/shop にアクセスしてください。この動画の下にコメントを残すのをお忘れなく。ご視聴ありがとうございました。素晴らしい週末をお過ごしください。それでは皆さん、さようなら。