GRADUATION
「ランダム」や「暗号化」という言葉を、疑えるようになりました。
鍵を使い回したXOR暗号を既知平文攻撃で解読し、時刻を種にした「ランダム」トークンを再現しました。「暗号化されている」「ランダムだ」という言葉を鵜呑みにせず、その中身を確かめる目を持ちました。
おつかれさまでした。
持ち帰るもの
- 鍵の使い回しは、既知平文で崩れる短い鍵を繰り返すXORは、平文の一部が分かれば(flag{という決まった接頭辞など)、鍵を割り出せます。
- 疑似乱数は、種が分かれば再現できるtime.time()のような予測できる値を種にすると、その乱数列全体が予測可能になります。暗号的に安全な乱数(crypto.randomBytes等)との違いがここにあります。
- 「暗号化」「ランダム」を、鵜呑みにしないそれが何のアルゴリズムで、鍵や種がどう作られているかを確かめて初めて、安全かどうかを言えます。
次にやるといいこと
- このコースで見た「予測できる乱数」は、sec-authで学んだ弱いセッションIDと同じ根です。
- 他のカテゴリ(rev・pwn・forensics・misc)も、好きな順で進められます。