ftnext / python-as-pyconjp-staff

PyCon JPのスタッフをPythonにもやらせよう
MIT License
6 stars 2 forks source link

[mtg_secretary] より安全な方法でパスワードを作成し、Zoom mtgを作成できる #78

Closed ftnext closed 3 years ago

ftnext commented 3 years ago

schedule_zoom_mtg.py の create_random_passcode を修正する

randomモジュールの代わりに secrets.token_urlsafe を使う ref: https://speakerdeck.com/hayaosuzuki/python-for-everyday?slide=10 (2021.09 pycharity) memo: https://scrapbox.io/nikkie-memos/pycharity_2021.09_LT%E3%83%A1%E3%83%A2

実施する理由(secretsモジュールのドキュメントより)

特に、 random モジュールのデフォルトの擬似乱数ジェネレータよりも secrets を使用するべきです。 random モジュールはモデル化やシミュレーション向けで、セキュリティや暗号学的に設計されてはいません。

ftnext commented 3 years ago

nbytesの値を変えて長さを調整(もとが7文字なので、8文字とした(nbytes=6)。nbytes=5では6文字) 直近のZoom mtgをスケジュールし、動作確認済み

Zoomのパスコードに使える記号は ["@", "-", "_", "*"]。 これら以外が含まれるかは検証しきれていない。 手元で5回ほど実行したところ、ハイフンとアンダースコアのみが確認された。 使えない記号が入ったパスコードのために運用中に例外が起こったら修整する考え

ソースコードも追ったが、要はos.urandomを呼んでいるので、パスコードに使える記号が含まれるかは「OS固有の乱数発生源」に寄りそう https://scrapbox.io/nikkie-memos/secrets.token_urlsafe