CROSS新年会にいてきた
何かいて良いか全然まとまってないけど、とにかく刺激的で楽しかった。
知ってる人も初めての人も、たくさんお話しできて良かったと思います。
またこんな機会があれば是非参加したいと思います。
ありがとうございました。
何かいて良いか全然まとまってないけど、とにかく刺激的で楽しかった。
知ってる人も初めての人も、たくさんお話しできて良かったと思います。
またこんな機会があれば是非参加したいと思います。
ありがとうございました。
移転してきました。
Pyritについてお話ししておくと、アレは高速にWPA(2)-PSKのPMK(Pairwise Master Key)をGPGPUの力で高速に生成してアタックするところが特徴的ではあるけど、それがすなわちWPA(2)-PSKの終焉を意味する物ではないと言うことだよ。
まぁWPA(2)-PSKはいわばハッシュアルゴリズムなので、ハッシュアルゴリズムは、アルゴリズムが強固でも、総当たりでハッシュの衝突、つまり解読が可能だと言うことだよ。その総当たりのスピードがいまは昔では考えられないほどの物になっているということを言っておきたい。
昔から言われていることが身近になっただけだよ。
新年早々から話題が尽きませんが、食べログ報道について僕の所感を述べておくと、まぁ悪いのはやらせを依頼したお店と、やらせ業者な訳です。
しかし、食べログが死守すべき物は、ユーザーの素直な意見が反映される場、であり、その場の価値なので、こういった意図的情報操作に対して断固とした姿勢を取る必要があると思います。
食べログの価値は、そこで交わされる情報そのものだからです。
夢を見ました。
学生時代の時に、気が弱くて何にもできない子がいました。その子はいじめられていました。しかし、あるときに、いじめていた一人の子を殴り飛ばしました。周りがざわめきました。リーダー格の人が現れて、これは万事休すか、と思ったところ、なんといじめていた子を叱りました。
いじめられていた子には「おめえ、根性あるじゃねえか」といい、それ以上手出しはさせない、とメンバーに言い聞かせていました。
なんてことない夢だけど、でも心に残ったのは、自分を変えるのは、夢と希望と、ちょっとの勇気。なのかなぁと思いました。
旧年中は様々な方にお目にかかり、また様々なご支援をいただきました。
もにったーのほうも順調に動いておりまして、機能などの目標も達成できております。
パブリックな目標はやはり、もにったーのさらなるユーザー数増加と、プレミアム版の実装だと考えております。サービスとしてトントン以上の収支を上げられれば満足できるかなと思います。
個人的な目標、というかテーマは以下の通りです。
がんばります。
では本年もよろしくお願いいたします。
「IMG_0091.JPG」をダウンロード
Webサイトなどでパスワードを8文字以上にしてくださいといわれることがよくあります。このとき、なぜ6文字以下ではだめなのか?という疑問が沸いたりしないでしょうか。
実は、パスワードの6文字、7文字と8文字には大きな違いがあるのです。
パスワードに使える文字種は通常、アルファベット大文字小文字(52文字)
数字(10文字)記号(28文字)の合計90文字があります。
パスワードの複雑性は、使える文字の種類と、
その文字列の長さに由来します。
文字種が多いことも重要ですが、それ以上に長さが関係あります。
ここで計算してみましょう。
文字数90文字で長さが6文字のパスワードは90^6(90文字の6条)531441000000(通り)のパスワードパターンがあることになります。
これを解読すると、毎秒37万回アタックしたら、16.624155405405405405405405405405日
かかることになります。つまり総当たりで約17日で解読できることになります。
文字数90文字で長さが7文字のパスワードは90^7(90文字の7条)47829690000000(通り)のパスワードパターンがあることになります。
これを解読すると、毎秒37万回アタックしても、4.0991068122917437985931136616068年
かかることになります。つまり総当たりで約4年かかるということです。
さて8文字ではどうでしょうか。
文字数90文字で長さが8文字のパスワードは90^8(90文字の8条)4304672100000000(通り)のパスワードパターンがあることになります。
これを解読すると、毎秒37万回アタックしても、368.91961310625694187338022954461年
かかることになります。つまり総当たりで約369年かかるということです。
6文字、7文字以下と8文字以上ではパスワードのパターン数が飛躍的に異なるので、ほとんどのシステムでは8文字のパスワードを設定しているわけですね。
パスワードは長さが複雑性の要因となっていることがよくわかります。英数字小文字だけでも、10文字設定されると攻撃に強くなります。文字種を文字数でべき乗していることになるのです。
実際の攻撃には、辞書などを用いた効率的な手法が用いられますが、それでも、長い文字列の方が強いパスワードになり得るということがわかります。
ここで注意ですが、パスワードによくある言葉を含めてしまうと、辞書(よく使われる言葉を集めたファイル)を使った攻撃に弱くなるというリスクがあります。
できるだけよく使われる言葉は使わないようにしましょう。
ここまとめです。
1.パスワードは文字種よりも文字数(長さ)が強さに由来する。
2.パスワードの文字数は8文字以上になると飛躍的に強度が増す。
3.長いパスワードでも辞書に載っているような言葉を使うのはパスワードの強度を下げる。
ではまたです。
補足:秒間37万回は、私が開発しているパスワード検証ツールが最大秒間37万回のアタックが可能であるため、基準としました。
学会に発表する予定のものだけどね。けっこつまずいてる。
Checked out revision 308.
[root@ip-10-17-145-99 ec2-user]# cd pyrit
[root@ip-10-17-145-99 pyrit]# ls
cpyrit_calpp cpyrit_cuda cpyrit_null cpyrit_opencl pyrit
[root@ip-10-17-145-99 pyrit]# cd pyrit/
[root@ip-10-17-145-99 pyrit]# ls
CHANGELOG cpyrit pyrit README test
COPYING MANIFEST.in pyrit_cli.py setup.py
[root@ip-10-17-145-99 pyrit]# python setup.py build
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
copying pyrit_cli.py -> build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/__init__.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/cpyrit.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/util.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/pckttools.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/config.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/network.py -> build/lib.linux-x86_64-2.6/cpyrit
copying cpyrit/storage.py -> build/lib.linux-x86_64-2.6/cpyrit
running build_ext
building 'cpyrit._cpyrit_cpu' extension
creating build/temp.linux-x86_64-2.6
creating build/temp.linux-x86_64-2.6/cpyrit
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fe xceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU _SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexce ptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SO URCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c cpyrit/_cpyrit_cpu.c -o bui ld/temp.linux-x86_64-2.6/cpyrit/_cpyrit_cpu.o -Wall -fno-strict-aliasing -DVERSI ON="0.4.1-dev (svn r308)" -maes -mpclmul
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fe xceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU _SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexce ptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SO URCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c cpyrit/_cpyrit_cpu_sse2.S - o build/temp.linux-x86_64-2.6/cpyrit/_cpyrit_cpu_sse2.o -Wall -fno-strict-aliasi ng -DVERSION="0.4.1-dev (svn r308)" -maes -mpclmul
gcc -pthread -shared build/temp.linux-x86_64-2.6/cpyrit/_cpyrit_cpu.o build/temp .linux-x86_64-2.6/cpyrit/_cpyrit_cpu_sse2.o -L/usr/lib64 -lcrypto -lpcap -lpytho n2.6 -o build/lib.linux-x86_64-2.6/cpyrit/_cpyrit_cpu.so
running build_scripts
creating build/scripts-2.6
copying and adjusting pyrit -> build/scripts-2.6
changing mode of build/scripts-2.6/pyrit from 644 to 755
[root@ip-10-17-145-99 pyrit]# python setup.py install
running install
running build
running build_py
running build_ext
running build_scripts
running install_lib
copying build/lib.linux-x86_64-2.6/cpyrit/util.py -> /usr/lib64/python2.6/site-p ackages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/network.py -> /usr/lib64/python2.6/sit e-packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/_cpyrit_cpu.so -> /usr/lib64/python2.6 /site-packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/__init__.py -> /usr/lib64/python2.6/si te-packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/storage.py -> /usr/lib64/python2.6/sit e-packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/pckttools.py -> /usr/lib64/python2.6/s ite-packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/cpyrit.py -> /usr/lib64/python2.6/site -packages/cpyrit
copying build/lib.linux-x86_64-2.6/cpyrit/config.py -> /usr/lib64/python2.6/site -packages/cpyrit
copying build/lib.linux-x86_64-2.6/pyrit_cli.py -> /usr/lib64/python2.6/site-pac kages
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/util.py to util.pyc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/network.py to network.p yc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/__init__.py to __init__ .pyc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/storage.py to storage.p yc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/pckttools.py to pckttoo ls.pyc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/cpyrit.py to cpyrit.pyc
byte-compiling /usr/lib64/python2.6/site-packages/cpyrit/config.py to config.pyc
byte-compiling /usr/lib64/python2.6/site-packages/pyrit_cli.py to pyrit_cli.pyc
writing byte-compilation script '/tmp/tmpJHkoIf.py'
/usr/bin/python -O /tmp/tmpJHkoIf.py
removing /tmp/tmpJHkoIf.py
running install_scripts
copying build/scripts-2.6/pyrit -> /usr/bin
changing mode of /usr/bin/pyrit to 755
running install_egg_info
Writing /usr/lib64/python2.6/site-packages/pyrit-0.4.1_dev._svn.r308_-py2.6.egg- info
[root@ip-10-17-145-99 pyrit]# cd ..
[root@ip-10-17-145-99 pyrit]# ls
cpyrit_calpp cpyrit_cuda cpyrit_null cpyrit_opencl pyrit
[root@ip-10-17-145-99 pyrit]# cd cpyrit_cuda/
[root@ip-10-17-145-99 cpyrit_cuda]# ls
COPYING _cpyrit_cuda.h MANIFEST.in setup.py
_cpyrit_cuda.c _cpyrit_cudakernel.cu README
[root@ip-10-17-145-99 cpyrit_cuda]# python setup.py build
running build
running build_ext
Compiling CUDA module using nvcc 4.0, V0.2.1221...
Executing '/usr/local/cuda/bin/nvcc -m64 --host-compilation C -Xcompiler "-fPIC" --ptx ./_cpyrit_cudakernel.cu'
nvcc warning : option 'host-compilation' has been deprecated and is ignored
Building modules...
building 'cpyrit._cpyrit_cuda' extension
creating build
creating build/temp.linux-x86_64-2.6
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fe xceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU _SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexce ptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SO URCE -fPIC -fwrapv -fPIC -I/usr/local/cuda/include -I/usr/include/python2.6 -c _ cpyrit_cuda.c -o build/temp.linux-x86_64-2.6/_cpyrit_cuda.o -Wall -fno-strict-al iasing -DVERSION="0.4.1-dev (svn r308)"
creating build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/cpyrit
gcc -pthread -shared build/temp.linux-x86_64-2.6/_cpyrit_cuda.o -L/usr/lib64 -lc rypto -lcuda -lz -lpython2.6 -o build/lib.linux-x86_64-2.6/cpyrit/_cpyrit_cuda.s o
[root@ip-10-17-145-99 cpyrit_cuda]# python setup.pyinstall
python: can't open file 'setup.pyinstall': [Errno 2] No such file or directory
[root@ip-10-17-145-99 cpyrit_cuda]# python setup.py install
running install
running build
running build_ext
Skipping rebuild of Nvidia CUDA kernel ...
Building modules...
running install_lib
copying build/lib.linux-x86_64-2.6/cpyrit/_cpyrit_cuda.so -> /usr/lib64/python2. 6/site-packages/cpyrit
running install_egg_info
Writing /usr/lib64/python2.6/site-packages/cpyrit_cuda-0.4.1_dev._svn.r308_-py2. 6.egg-info
[root@ip-10-17-145-99 cpyrit_cuda]# cd ~
[root@ip-10-17-145-99 ~]# ;s
bash: syntax error near unexpected token `;'
[root@ip-10-17-145-99 ~]# ls
[root@ip-10-17-145-99 ~]# exit
exit
[ec2-user@ip-10-17-145-99 ~]$ ls
cpyrit-cuda-0.4.0 packetstest.pcap
cpyrit-cuda-0.4.0.tar.gz pyrit
cudatoolkit_4.0.17_linux_64_rhel6.0.run pyrit-0.4.0
libpcap-1.1.1 pyrit-0.4.0.tar.gz
libpcap-1.1.1.tar.gz scapy-2.2.0
NVIDIA-Linux-x86_64-290.10.run scapy-latest.zip
[ec2-user@ip-10-17-145-99 ~]$ pyrit benchmark
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Running benchmark (47664.0 PMKs/s)... /
Computed 47664.03 PMKs/s total.
#1: 'CUDA-Device #1 'Tesla M2050'': 22527.5 PMKs/s (RTT 2.8)
#2: 'CUDA-Device #2 'Tesla M2050'': 22384.2 PMKs/s (RTT 2.9)
#3: 'CPU-Core (SSE2)': 454.5 PMKs/s (RTT 3.0)
#4: 'CPU-Core (SSE2)': 435.1 PMKs/s (RTT 3.0)
#5: 'CPU-Core (SSE2)': 396.8 PMKs/s (RTT 3.0)
#6: 'CPU-Core (SSE2)': 454.2 PMKs/s (RTT 2.8)
#7: 'CPU-Core (SSE2)': 427.5 PMKs/s (RTT 2.9)
#8: 'CPU-Core (SSE2)': 434.2 PMKs/s (RTT 3.0)
#9: 'CPU-Core (SSE2)': 429.5 PMKs/s (RTT 3.2)
#10: 'CPU-Core (SSE2)': 442.4 PMKs/s (RTT 3.0)
#11: 'CPU-Core (SSE2)': 426.4 PMKs/s (RTT 3.0)
#12: 'CPU-Core (SSE2)': 446.4 PMKs/s (RTT 3.0)
#13: 'CPU-Core (SSE2)': 424.0 PMKs/s (RTT 3.0)
#14: 'CPU-Core (SSE2)': 456.1 PMKs/s (RTT 2.9)
#15: 'CPU-Core (SSE2)': 411.6 PMKs/s (RTT 3.1)
#16: 'CPU-Core (SSE2)': 438.4 PMKs/s (RTT 2.9)
[ec2-user@ip-10-17-145-99 ~]$
[ec2-user@ip-10-17-145-99 ~]$
[ec2-user@ip-10-17-145-99 ~]$
[ec2-user@ip-10-17-145-99 ~]$ pyrit -r packetstest.pcap analyze
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Parsing file 'packetstest.pcap' (1/1)...
/usr/lib64/python2.6/site-packages/cpyrit/pckttools.py:507: UserWarning: Failed to compile BPF-filter. This may be due to a bug in Pyrit or because your version of libpcap is too old. Falling back to unfiltered processing...
warnings.warn("Failed to compile BPF-filter. This may be due to " \
Parsed 115 packets (0 802.11-packets), got 0 AP(s)
No valid EAOPL-handshake + ESSID detected.
[ec2-user@ip-10-17-145-99 ~]$