- パスワード管理システムの利便性により、最近はOSやブラウザに組み込まれた機能を多くの人が使っている
- しかし、本当に安全なのか?という疑問を持つこともある
- 暗号化の定義
- 敵対的な存在からプロトコルを防御することが暗号学の目標
- 特別な知識を持つ人以外は誰にも読めないよう、アルゴリズムを用いて情報(平文を指す)を伝達する過程
- アルゴリズムはすべて公開されているのに安全なのか?
- ケルクホフスの原則というものがある
- 「暗号体系は秘密にしておく必要がなく、敵の手に渡っても問題がないものでなければならない。」
- アルゴリズムが公開されていても安全な理由は秘密鍵のおかげ
- アルゴリズムではなくプロトコルを安全にすることが重要
- むしろアルゴリズムを公開して、より多くの人が検証し改善できるようにするほうがよい
- 古典暗号はなぜ危険なのか?
- コンピュータが登場する前は十分に複雑で有用だったが、コンピュータの登場によって短時間で解読できるようになった
- 総当たり攻撃、頻度分析などさまざまな攻撃手法がある
- 現代暗号は安全なのか?
- 古典暗号は鍵空間が不足しており、言語的特性が反映されるため危険
- 一方、現代暗号は混同と拡散という概念を使って膨大な場合の数を生み出す -> 偶然当たるような全鍵探索以外では解読不可能
- 混同(Substitution)とは、
ABCA のような文字列があれば 1231 のように置き換えることを指す
- 拡散(Permutation)とは、
ABCA のような文字列があれば BCAA のように順序を入れ替えることを指す
- 3つの暗号化方式
- 対称、非対称、一方向暗号化が存在する
- 対称暗号化は1つの秘密鍵(あるいは対称鍵)を用いて暗号化と復号を行うアルゴリズム
- 非対称暗号化は2つの鍵を用いて暗号化と復号を行うアルゴリズム
- 代表例としてRSAがある
- 対称暗号化は参加者が多い場合には問題が発生する
- 一方向暗号化は任意の長さのデータを固定長のデータに変換すること
- 個人用秘密Vaultの実装
- マスターパスワードは、秘密情報管理システムの所有者であることを認証できる秘密鍵
- マスターパスワードのハッシュ値はPass-the-Hash攻撃を受ける可能性があるため、絶対に保存してはいけない
- ユーザーのデバイスに紐づいたランダムな鍵を追加で使ってマスターアンロックキーを作れば、より安全にパスワードを保管できる
- macOSではKeychain、WindowsではCredential Managerを使用できる
- 実際の実装はリンク参照
4件のコメント
Androidにはキーチェーンのようなものはないんですか……? GalaxyのSamsung Walletも危険なんでしょうか?
こんにちは。 :) Secret Manager というものがあると認識しています。Samsung Wallet についてはあまり詳しくありませんが、おそらく安全にしっかり作られているのではないでしょうか?
混同(substitution)、拡散(permutation)と書かれていたので、何だろうと思って原文を見てみたところ、
混同は置換(substitution)を使って達成し、拡散は順列(permutation)を使って達成すると書かれていました…
要約しすぎてしまいました、すみません ^^;;