パスワードの最適変更間隔とその定量的効果の評価
twitter:@pseudoidentifie
CC0
簡単のために、ユーザが候補とするパスワード選択空間と攻撃者が想定する攻撃パスワード空間は同一とし、個のパスワード候補が含まれるとする。また、攻撃者は、パスワード空間中から、ランダムに攻撃パスワードを順次選択し、攻撃を行うものとする(本攻撃方法は決して典型的な攻撃方法とは限りません)。また攻撃は、
秒間隔で実施されるものとする。
ユーザがパスワードの変更を行わない場合、秒で、全パスワードの攻撃が可能であり、ユーザのパスワードを攻撃者は知ることができる。攻撃者がパスワードを知るのにかかる平均時間
は以下となる。
次に、ユーザは、を
より小さい自然数として、
秒間隔でパスワードの定期変更を行う場合を考える(ユーザは
個のパスワード候補からランダムにパスワードを選択するものとする)。また、簡単のために、ユーザがパスワード定期変更を行った直後から攻撃が始まった場合を考える。
そうすると、パスワード変更が行われるまでに回の攻撃が行われ、それによりパスワードが攻撃者に知られるまでにかかる時間の期待値
は以下となる。
次に、パスワードが変更された以降について計算する。まず、回目の攻撃によりパスワードが判明する確率
は、以下のようになる。
の場合、
回目の攻撃によりパスワードが判明する確率
は、以下のようになる。
以下同様である。したがって、初回のパスワード変更から2回目のパスワード変更までの間にパスワードが判明する時間の期待値は以下となる。
続いて、2回目のパスワード変更が行われた直後の攻撃によりパスワードが判明する確率を計算する。まず、初回のパスワード変更までにパスワードが判明する確率
は以下となる。
初回のパスワード変更から2回目のパスワード変更までにパスワードが判明する確率は以下となる。
したがって、
となる。2回目のパスワード変更から3回目のパスワード変更までの間にパスワードが判明する時間の期待値は以下となる。
同様に、
であるから、
となる。
ここから、以下となることが類推される。
これは、以下から帰納的に正しいことがわかる。
-
=
従って、
となる。
パスワード定期変更を行う際の攻撃者(一通りパスワードを試してもパスワードが分からない場合には繰り返し攻撃するとする。)がパスワードを知るのにかかる平均時間は以下となる。
は本来離散であるが、簡単のため、連続とみなして微分すると、以下のようになる。
したがって、は、
において最大となり、最大値
は以下のようになる。
が十分に大きければ、
は無視できるため、
となり、最適な間隔でパスワードを変更すれば、パスワードが攻撃者に知られるまでにかかる平均時間を約2倍に長くすることできることがわかる。
たかだか効果は2倍であるため、パスワード長を1文字長くするよりもパスワード定期変更の効果ははるかに小さいといえる。
23.5分間隔でパスワードを変更することが最適であり、その場合、平均27.4時間で攻撃者にパスワードがわかる。ちなみにパスワードを変更しないと、平均13.9時間で攻撃者にパスワードがわかる。
16日間隔でパスワードを変更することが最適であり、その場合、平均3,171年で攻撃者にパスワードがわかる。ちなみにパスワードを変更しないと、平均1,585年で攻撃者にパスワードがわかる。
16日間隔が最適ではあるが、1万日(約27年)間隔で変更しても、それほど定期変更の効果は変わらないので、変更する気持ちさえあれば効果があるともいえる(なにかおかしい)。