sounisi5011 / sounisi5011.jp

sounisi5011.jp's root page
0 stars 0 forks source link

暗号化済みファイルの生成処理の修正 #103

Open sounisi5011 opened 4 years ago

sounisi5011 commented 4 years ago

plugins/metalsmith/url-shortener/encrypt.jsに含まれるいくつかの問題を修正する。

sounisi5011 commented 4 years ago

よって、Date.now()の返り値を使用する。ECMAScript Date objectsがサポートする最大のUnixtimeは8,640,000,000,000,000ミリ秒で、これは7 bytesに収まるため、Unixtimeに追加の乱数5 bytes(もしくは6 bytes。Unixtimeの最大値も6 bytesになるが、6 bytesを超えるのは西暦10889年8月2日であるため、問題は無い)を追加した値を初期ベクトル(IV)に使用する。

データ通信処理への転載を想定するなら、ミリ秒単位の日付情報なんて当てにならない。実装次第では1秒ごとに変化するなんてこともある。1秒の間に、6 bytesの乱数が誕生日パラドックスで衝突してしまうリスクは十分考慮すべきでは?

まっとうな実装は、IVとしてカウンターを使います。 ─ 本当は怖いAES-GCMの話 - ぼちぼち日記

暗号化処理のオプションで以前までのカウント値を指定できるようにしたほうがいいぞ… 必須オプションにすれば、省略もできなくなるし、勉強になる

sounisi5011 commented 3 years ago

cipherivでnpm内を検索したら、以下の興味深いパッケージを発見した:

sounisi5011 commented 2 years ago

ところで随分前に@sounisi5011/encrypted-archiveを作ってしまってだな