セキュリティ · CTF
弱い暗号を解いて旗を取る
自作のPythonチャレンジを、手元のPythonで解きます。鍵の使い回しと、予測できる乱数という、2つの定番の弱さを扱います。
- 実習
- localhost で実習
- 環境構築
- 重さ 1 / 3
- 前提
- ctf-intro / mini-python
- 倫理
- 第0章の法と倫理ゲートへの同意が必須です。
読み込み中…
自作の Python チャレンジを、手元の Python で解きます。ブラウザ内で完結する特別な環境は使わず、あなた自身の python3 を使います。鍵の使い回し(XOR暗号)と、予測できる乱数という、CTFで頻出の2つの弱さを扱います。
章の一覧
- 未完了第0章はじめに — 「暗号化」を、疑うcryptoカテゴリが、実装の弱さを見抜く力を試すカテゴリだと理解します。ブラウザ内Pyodideではなく自分のpython3を使う進め方を確認し、法と倫理ゲートに同意します。約4分
- 未完了第1章鍵の使い回し — XOR暗号を、既知平文で崩す短い鍵を繰り返すXOR暗号文を生成し、フラグの先頭が既知(flag{)であることを手がかりに鍵を割り出して復号します。既知平文攻撃という手口を体で理解します。約12分
- 未完了第2章予測できる乱数 — 「ランダム」の中身を、疑う時刻を種にした疑似乱数トークンを、同じ種を使って再現します。random.seed()による予測可能性と、暗号的に安全な乱数(crypto.randomBytes)との違いを理解します。約10分
- 未完了第3章まとめ — 中身を、確かめる目既知平文攻撃と予測可能な乱数を畳みます。cryptoカテゴリが理論ではなく実装の弱さを見抜くカテゴリだったと再確認し、次のカテゴリへ送り出します。約3分
詰まったときはお助けページへ。章ごとのファイル一式をダウンロードして、途中から再開できます。