Skip to content

PassGAN: A Deep Learning Approach for Password Guessing #5

Description

@palloc

公開日

2018-03-09

1. 概要

John the Ripperなどの優秀なパスワード推測ツールがあるが、新しいデータセットに適したパスワード生成ルールを作るのは、専門的な知識が必要な上、面倒くさい。(例:password→p4s5w0rd)
そこで、機械学習理論に元ずくパスワード生成方法として、PassGANというのを提案している。

2. 新規性・差分

GANsを応用して推測パスワードを生成している。これは世界初のはず。(RNNでパスワード推測をしている先行研究はすでにある)

3. 手法

Wasserstein GANsをベースとしたアーキテクチャを構築した。

default

ハイパーパラメータは以下の通り。

  • Batch size
  • Number of iterations
  • Number of discriminator iterations per generator iteration
  • Model dimensionality
  • Gradient penalty coefficient
  • Output sequence length
  • Size of the input noise vector(seed)
  • Maximum number of examples
  • Adam optimizer's hyper-parameters

バッチサイズは64にしイテレーションは199,000にした(過学習しやすいため)。generatorとdiscriminator両方の各層は128次元である。(あとはIWGANのデフォルトと一緒)
gradient penaltyは10にし、生成文字列の長さを32文字から10文字にした。

4. 結果

生成できたパスワードの例は以下の通り。
sample

PassGANは繰り返す系のパスワードを生成する確率が高い。また、GANとbest64を組み合わせると一番パフォーマンスが高かった。(評価方法がたくさんあるので気になる方は論文の表を参照)

5. 議論

ドメイン知識不要なのは本当に強みで、従来手法では生成できないパスワードを生成できる可能性も示し、画期的な手法である。

6. コメント

ドメイン知識不要な点は完全に強み。ネットワークもうちょいいじることもできたんじゃないかなとは思いますが、まぁそんなのは論文じゃなくて製品作る人がやれよという話ですね。

ただ、RNNの先行研究の線も全然future workがありそうなので、どっちが優れてるかはぱっと見まだ言えないんじゃないかなと思いました。

論文情報・リンク

https://arxiv.org/pdf/1709.00440.pdf

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions