パスワードと生体認証のエントロピー


ビットコインのシードフレーズのエントロピーは12単語で128ビット、24単語で256ビットです。

※エントロピーはパスワードのランダム性を表す指標で、log2(N^L)で計算されます。Nは使用される文字の種類の総数、Lはパスワードの長さ。


パスワードに必要なエントロピーはGPT4oによると、最低限のエントロピーは56ビット、中程度では80ビット、高強度では128ビットだそうです。


このあたりの知識は全くないので妥当なのかよく分かりませんが、ビットコインのシードフレーズは12単語でも十分みたいな話もよく見かけるので128ビットあれば最強くらいに思っておいてもいいのかもしれません。


パスワードに使用される英数字記号(スペースを除く)は全部で94文字なので、英数字記号を使ったパスワードの場合、1文字のエントロピーはlog2(94)=6.55ビットです。なので、56ビット以上では9文字(59ビット)、80ビット以上では13文字(85ビット)、128ビット以上では20文字(131ビット)が必要ということになります。


Googleパスワードマネージャーが自動生成してくれるパスワードは英数字記号15文字なので、あれのエントロピーは98ビットなんですね。特殊な用途で高セキュリティを求める人には不十分だとしても、一般人が通常の用途で使うにはあれで全然問題ないみたいな感じなんでしょうね。


ただし、これらはあくまでも完全にランダムに生成された場合なので、擬似乱数生成機能に欠陥がある場合にはその限りではない可能性もあり、実際にこの欠陥を利用して失われたパスワードを割り出すことができた例もあるそうです。

 参考:「200万ドル」のビットコインを取り戻せ! 失われたパスワードの“解読”に、こうして大物ハッカーたちは成功した


一方、生体認証ってどうなっているんだろうと思って少し調べてみた感じではよくわからなかったのでGPT4oに聞いてみると、センサーやカメラ等使用される技術や条件によるものの、指紋認証は10ビット〜40ビット、顔認証は20〜40ビット、虹彩認証は40〜60ビット、音声認証は10〜30ビット、静脈認証は20〜40ビットだそうです。合ってるのかは謎…


生体認証はエントロピーがあまり高くないんですね。


現代のスマホの指紋認証は30〜40ビット、顔認証は30〜50ビット、パターンロック(3x3グリッド)は最大19ビットとのこと。PINコードは4桁で13ビット、6桁で20ビット、8桁で27ビット、12桁で40ビットなので、パターンロックは6桁PINコード、指紋認証と顔認証は12桁PINコードくらいだと思っておけばいいんでしょうか。


個人的には顔認証は今使っている端末だとマスク着用時には使えない(使えたとしても顔半分が隠れている時点でエントロピーが下がりそう)ですし、指紋認証は紛失時には表面に指紋がついた状態でやろうと思えば偽指紋で容易に突破されてしまうと思うので、どちらも微妙であまり使いたくないものの、頻繁に十分なパスワードを入力するのは非現実的ですし人目やカメラがあるところでは危険なので今のところは仕方なく使っています。

 参考:指紋認証は500円あれば作れる「偽指紋」で簡単に突破できることを示すムービー


まあ私は出勤以外ではほとんど外出しないですし、そもそもそのへんに落ちてる誰のものか分からない端末をわざわざロック解除しようと試みる人はそんなに多くなさそうな気はしますが、生体認証は容易に破られるものとして端末は落とさないように気を付けようと改めて思いました(小並感)




よろしければ応援クリックお願いします
にほんブログ村 株ブログ 米国株へ

コメント