Notes

コンピュータとスマートフォンを安全に保つには

はじめに

  • テクノロジーのユーザである私たちは、技術的な詳細には精通していなくても、セキュリティの必要性には精通しています。
  • 現実世界では、さまざまなレベルのセキュリティに遭遇します。たとえば、建物の1階の窓に鉄格子があり、2階や3階にはないとします。侵入することは依然として可能でしょうが、はしご等を使ってより大変な思いをするでしょうから、侵入される可能性つまり確率は大幅に減少するでしょう。
  • デジタルの世界においては、私たちのデバイスはある程度安全ですが、完璧に安全にすることはできません。十分なリソースがあれば悪意をもった人物が侵入することができるため、私たちがすべきことは、侵入する努力のしきい値を上げることです。

パスコード

  • 「安全である」と定義する1つの方法は、ハッキングに多くの時間を必要とさせて、第3者から私たちのリソースやデータを守ることです。
  • ラップトップまたはスマートフォンは、アクセスに必要なパスワードを設定されている場合と設定されていない場合があります。パスワードが設定されていなければ、そのデバイスを持っていれば誰でもデータにアクセスできます。
  • 残念ながら、世界で使われているパスワードは簡単に推測できます。
    • 123456
    • 123456789
    • qwerty
    • password
    • 1234567
    • 12345678
    • 12345
    • iloveyou
    • 111111
    • 123123
  • あまり気にしていないオンラインゲームなど、一部のアカウントでは、これらのパスワードで十分かもしれません。しかし、他のアカウントの場合は、より強力なパスワードが必要です。
  • 総当たり(ブルートフォース)攻撃とは、正しいパスワードが見つかるまで、考えられるすべてのパスワードを試すテクニックのことです。これは、USBケーブルを介して電話をコンピュータに接続するなどして、ソフトウェアを使用して行うことができますが、ハッカーは、スマートフォンの画面上のすべての可能なパスコードを直接タップするロボットを構築することさえできます。
  • 4桁のパスコードでは、各桁で10個の数字のいずれかを持つことができるため、1万通りのパスコードを使用できます。ですが、コンピュータはそれらすべてを瞬く間に生成することができます。
  • これを示すために、4桁のパスコードで可能なすべての組み合わせを出力するプログラムをPythonというプログラミング言語で記述します。
from string import digits
from itertools import product
for passcode in product(digits, repeat=4):
    print("".join(passcode))
  • このプログラムの実行にかかる時間は1秒未満です。
  • 4文字のパスコードを使用すると、大文字と小文字の両方でそれぞれ26文字のパスコードを使用でき、52 x 52 x 52 x 52のパスコード、つまり700万以上のパスコードを使用できます。
  • 数字の代わりに文字を使用するようにプログラムを変更できます。
from string import ascii_letters
from itertools import product
for passcode in product(ascii_letters, repeat=4):
    print("".join(passcode))
  • このプログラムの実行には約10秒かかります。
  • パスコードを拡張して、文字、数字、!または#などの記号の組み合わせにできます。
  • 一般的なキーボードでは、26個の大文字、26個の小文字、10個の数字に加えて、32個の記号があり、合計で94種類の記号があります。つまり、パスコードは94 x 94 x 94 x 94のいずれかになり、最終的には7800万個の組み合わせになります。
  • すべての文字を使用するようにプログラムを変更しましょう。
from string import ascii_letters, digits, punctuation
from itertools import product
for passcode in product(ascii_letters + digits + punctuation, repeat=4):
    print("".join(passcode))
  • プログラムの進行状況は確認できますが、所要時間は長くなり、最終的には数分で終了します。
  • 8文字の場合、可能性は1,000兆(1015)以上、さらに2文字を追加すると百京(1018)以上になります。
  • ここで、トレードオフがあることが分かります。パスコードが長ければ推測されるパスコードの難易度が高くなりセキュリティが向上しますが、人間が覚えて入力するのは難しくなります。
    • 紙などに書いてしまうと、他の種類の攻撃にさらされてしまうかもしれません。
    • または、異なるサイトで同じパスワードを使用したくなるかもしれませんが、それらのサイトのいずれかが侵害された場合、ハッカーはそれらの他のサイトでも同じパスワードを使用する可能性があります。
  • iPhoneやAndroidなど多くのデバイスでは、何度も間違ってログインしようとすると、それ以上ログインできなくなり、1分以上待ってから再度ログインするように指示されます。これはセキュリティ機能であり、私たちのパスコードを推測しようとしている敵を減速させます。4桁のパスコードで1万通りしかないとしても、1万分以上かかるかもしれません。
    • しかし、自分が誤ってパスコードを入力した場合に、ログインできなくなる可能性があります。
  • 顔スキャンや指紋読み取りなどのバイオメトリクス技術を使えば、たとえ双子がログインすることができたとしても、 実用上は十分なセキュリティの利便性を受け入れることができるかもしれません。
  • 2要素認証とは、メッセージやアプリからの指紋や一時的なコードなど、ログインするために追加の情報形式を使用することを指します。これは、私たちが知っているもの (ユーザ名とパスワード) に加えて、私たちが持っているものである傾向があるため、ハッカーが私たちのアカウントにログインすることはさらに困難です。
  • パスワードマネージャーはログイン情報を保存するアプリケーションであるため、多くの異なる複雑なパスワードを記憶する代わりに、1つのマスターパスワードを記憶するだけで済みます。マスターパスワードが何らかの方法で発見された場合、私たちにとってはマイナス面が大きいかもしれません。

暗号化

  • 暗号化とは、暗号化を解除するためのがないと読み取ることができないようにするための情報のスクランブルです。
  • たとえば、パスワードマネージャーはパスワードを暗号化するため、パスワードが含まれているファイルを誰かが開こうとしても、そのファイルを読み取ることはできません。
  • https:// は、ブラウザがWebページを開くための安全な方法であり、第3者がコンテンツを読むことはできません。
  • エンドツーエンド暗号化とは、私たちと会話相手との間でメッセージが暗号化されることを意味します。したがって、サードパーティのチャットサービスやビデオサービスを使用していても、それらを実行している企業は私たちの通信内容を復号化したり読み取ったりできません。
  • たとえばZoomは、これまでエンドツーエンド暗号化を宣伝してきましたが、私たちとZoomの間の暗号化を実装しただけでした。ごく最近になってようやく、会議の参加者間で真のエンドツーエンド暗号化が導入され、その結果一部の機能が動作しなくなりました。
  • Zoomはエンドツーエンドで暗号化されているので安全だと主張する人もいるかもしれませんが、それは正しく実装されなければならず、一度接続したら、パソコンに悪意のあるソフトウェアが入っていないことを確認しなければなりません。
  • 会議にログインするには、https://zoom.us/j/5551112222のようなリンクにアクセスしました。しかし、それは簡単に推測でき、参加者の誰でも共有できたので、新しいミーティングではhttps://zoom.us/j/5551112222?pwd=######のようにパスワード付きのリンクになりました。繰り返しになりますが、利便性とユーザビリティの低下と引き換えに、セキュリティが向上します。

Q&A

  • スマートフォンがパスコードの推測回数を制限していて、再試行する前に待つ必要がある場合、それはソフトウェアにも当てはまりますか?
    • デバイスによっては、スマートフォンをUSBケーブル経由でコンピュータに接続し、ソフトウェア経由で試行してもロックアウトが適用される場合があります。
  • USB接続のような、ハードウェアによる2要素認証デバイスは良い考えですか?
    • はい、アカウントを保護する第2の要因であるためですが、誤って紛失したり破損したりしないようにしなければならない物理的なデバイスであるという欠点があります。ソフトウェアベースの第2の要素は、スマートフォンがすぐになくなったことに気付くかもしれないので、より良いかもしれませんが、SMSや通常のテキストメッセージは、傍受されたり偽造されたりする可能性があるため、避けるべきです。
  • Cookieに関するセキュリティ上の懸念はありますか。
    • Cookieとは、Webサーバがブラウザに保存を指示するデータのことで、後でそのWebサイトにアクセスしたときにログインする必要がなくなります。遊園地のハンドスタンプの仮想バージョンのようなものです。ですが、FacebookやGoogleのようなサードパーティー企業は、ウェブ上の何千、何百万ものサイトに広告を掲載し、私たちがそれぞれのサイトを訪問したときに同じCookieを見ることができるので、マーケティングのために私たちを追跡することもできます。ブラウザで 「サードパーティのクッキー」 を無効にする設定でこれを防ぐことができますが、ウェブサイトが効果的に広告できなくなり、ユーザである私たちに直接課金する必要が生じるかもしれず、長期的な影響を及ぼす可能性があります。
  • 第3者が私の写真で私のスマートフォンのロックを解除できますか?
    • 通常、携帯電話は赤外線などのセンサーを使用してこの問題を防止しますが、十分な時間とリソースがあれば、十分な精度のマスクや人形を作成できる場合があります。
  • 追跡されないようにクッキーを削除することはできますか?
    • はい、最近のブラウザには 「incognito」 または 「private」 モードもあり、これらのウィンドウにはクッキーや履歴が保存されていません。ブラウザは定期的にCookieを削除するように設定することもできますが、ウェブサイトにはより頻繁にログインする必要があります。
  • 電子メールの認証情報を使用して他のWebサイトにログインすることはお勧めできませんか?
    • ログイン情報を直接要求するサイトは、使用するのはお勧めできません。しかし、GoogleのようなEメールプロバイダからのページに適切にリダイレクトしてくれるサイトは安全です。これはOAuthと呼ばれる技術を利用しており、Googleがユーザの認証情報をチェックして、ユーザの身元に関する安全な情報のみをサイトに送り返し、パスワードは送り返しません。認証情報は常に公式URL (google.comなど) に入力するようにします。
  • VPNとは?
    • VPNは仮想プライベートネットワークであり、暗号化を使用して学校のキャンパスや企業のネットワークに安全に接続できます。コンピュータからのインターネットトラフィックは、まず他のネットワークに送られ、次にインターネット上の他の場所に送られます。これは、物理的な場所にあるプリンタやファイル共有にアクセスしたり、VPNによってそのネットワークから接続しているように見えるため、サポートされていない国のビデオストリーミングWebサイトにアクセスしたりするために使用できます。また、VPNはすべてのトラフィックを暗号化するため、地理的にもネットワーク的にも安全だとされています。欠点は、情報が移動する距離が長いため、通常はトラフィックが遅くなることです。
  • 侵入しようとしているデバイスにはどのように接続しますか?
    • 通常のUSBケーブルに加えて、特殊なソフトウェアが必要になる可能性があります。デバイスのメーカーは、これを設計上難しくしたいと考えているからです。
  • ロックパターンは安全ですか?
    • パターンの長さと複雑さにもよります。単純な線は簡単に推測できるでしょう。また、近くにいる他の人も、パターンでロック解除を簡単に見ることができます。
  • 安全に通信するには、どのようなソフトウェアを使用する必要がありますか。
    • AppleのiMessageとFacebookのWhatsAppはどちらもエンドツーエンドの暗号化を使用していますが、われわれはこれらの企業が誰にもアクセスを許可せずに実際に暗号化を正しく実装していることを受け入れなければなりません。「Signal」 や 「Telegram」 など、エンドツーエンドの暗号化機能を備えたオープンソースのメッセージングアプリは他にもあります。
  • パスワードに対する他のタイプの攻撃はありますか?
    • ブルートフォース攻撃は最も単純ですが、攻撃者は、誕生日、犬の名前、辞書にあるすべての単語などの情報を使ってパスワードを推測するプログラムを使用する可能性があります。
  • Chromeにパスワードを保存するのはどのくらい安全ですか?
    • 多くのブラウザにはパスワードマネージャーも組み込まれていますが、他のパスワードがあなたが知っているものだけで安全に暗号化されているかどうかは不明瞭でしょう。
  • ガラスのディスプレイの下にあるような新しいタイプの指紋センサーは安全ですか?
    • これらはまだアカデミックによって審査されていないかもしれませんが、同様の指紋に対してある程度の許容レベルを持っている可能性があります。たとえば、メーカーの車のキーには、1000または1万種類のコードのいずれかしか使用されていない場合があるため、大きな駐車場では他人の車のロックを解除できる可能性があります。
  • ハーバード大学にはサイバーセキュリティのコースがありますか?
    • ハーバード大学にはオンラインで利用できるコースがありませんが、他の多くの大学にはあります。