FPGA๋ฅผ ์ง€์›ํ•˜๋Š” John the Ripper 1.9.0-jumbo-1

์ถœ์‹œ๋œ ๊ฐ€์žฅ ์˜ค๋ž˜ ์ง€์›๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ถ”์ธก ํ”„๋กœ๊ทธ๋žจ์ธ John the Ripper 1.9.0-jumbo-1์˜ ์ƒˆ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. (์ด ํ”„๋กœ์ ํŠธ๋Š” 1996๋…„๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค.) ์ŠคํŠธ๋ž˜๋‹ˆ์ฒด ํ”„๋กœํ…ํ„ฐ ์†Œ์Šค๋Š” ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Windows์šฉ ๊ธฐ์„ฑ ์–ด์…ˆ๋ธ”๋ฆฌ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 1.8.0-jumbo-1์ด ์ถœ์‹œ๋œ ์ง€ 4.5๋…„์ด ์ง€๋‚ฌ์œผ๋ฉฐ, ๊ทธ ๋™์•ˆ 6000๋ช… ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ 80๊ฐœ ์ด์ƒ์˜ ๋ณ€๊ฒฝ(git ์ปค๋ฐ‹)์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. GitHub์˜ ์ตœ์‹  ๋ฒ„์ „, ๋•๋ถ„์— ๋ณ€ํ™”์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ƒํƒœ๋Š” ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์†์ ์ธ ํ†ตํ•ฉ, ์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ํ”Œ๋žซํผ์—์„œ ๊ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ(ํ’€ ์š”์ฒญ)์— ๋Œ€ํ•œ ์‚ฌ์ „ ๊ฒ€์ฆ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์˜ ํŠน์ง•์€ CPU, GPU, Xeon Phi ์™ธ์— FPGA(FPGA)๋ฅผ ์ง€์›ํ•˜๋Š” ๋“ฑ์žฅ์ด๋‹ค.


๋ณด๋“œ์šฉ ZTEX 1.15๋…„4๊ฐœ์˜ FPGA ์นฉ์„ ํฌํ•จํ•˜๊ณ  ์›๋ž˜ ์ฃผ๋กœ ๋น„ํŠธ์ฝ”์ธ โ€‹โ€‹์ฑ„๊ตด์— ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ ์ด์ œ 7๊ฐ€์ง€ ์œ ํ˜•์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ๊ฐ€ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค: bcrypt, classic descrypt(bigcrypt ํฌํ•จ), sha512crypt, sha256crypt, md5crypt(Apache apr1 ๋ฐ AIX smd5 ํฌํ•จ), Drupal7 ๋ฐ phpass(์‚ฌ์šฉ๋จ) , ํŠนํžˆ WordPress์—์„œ). ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ์ฒ˜์Œ์œผ๋กœ FPGA์— ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. bcrypt์˜ ๊ฒฝ์šฐ ์•ฝ 119์™€ํŠธ์˜ ์ „๋ ฅ ์†Œ๋น„๋กœ 2^5 ๋ฐ˜๋ณต("$2b$05")์œผ๋กœ ์ตœ๋Œ€ 27 c/s์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋ฉด ๋ณด๋“œ๋‹น, ํ•˜๋“œ์›จ์–ด ๊ฐ€๊ฒฉ ๋ฐ ์™€ํŠธ๋‹น ์ตœ์‹  GPU์˜ ๊ฒฐ๊ณผ๋ฅผ ํฌ๊ฒŒ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ง€์›๋จ ํด๋Ÿฌ์Šคํ„ฐ ์ด ์œ ํ˜•์˜ ๋ณด๋“œ๋Š” ๋‹จ์ผ Raspberry Pi 16์—์„œ ์ œ์–ด๋˜๋Š” ์ตœ๋Œ€ 64๊ฐœ ๋ณด๋“œ(2๊ฐœ์˜ FPGA)๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋น„๋ฐ€๋ฒˆํ˜ธ ์ถ”์ธก ๋ชจ๋“œ ๋ฐ ๋‹ค์ˆ˜์˜ ํ•ด์‹œ ๋™์‹œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ John the Ripper ๊ธฐ๋Šฅ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ž‘์—… ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋งˆ์Šคํฌ(๋‹ค๋ฅธ ๋ชจ๋“œ์™€์˜ ์กฐํ•ฉ์„ ํฌํ•จํ•œ "--mask" ๋ชจ๋“œ) ์‚ฌ์šฉ๊ณผ ๊ณ„์‚ฐ๋œ ํ•ด์‹œ๋ฅผ FPGA ์ธก์— ๋กœ๋“œ๋œ ํ•ด์‹œ์™€ ๋น„๊ตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๊ด€์ ์—์„œ ๋ณด๋ฉด ๋งŽ์€ ๋””์ž์ธ(์˜ˆ: sha512crypt ๋ฐ Drupal7) ์•”ํ˜ธํ™” ์ฝ”์–ด์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด(์†Œํ”„ํŠธ CPU ์ฝ”์–ด)๋กœ ๊ตฌ์„ฑ๋œ ๋ธ”๋ก์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์€ ๋‹ค๋ฅธ ์ ๋ณด ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ Denis Burykin์ด ์ฃผ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํƒ€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ๊ธฐ์กด ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ(์˜ˆ: QNX ์ƒˆ ๋ฒ„์ „์˜)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•”ํ˜ธํ™”ํ ์ง€๊ฐ‘, ์•”ํ˜ธํ™”๋œ ์•„์นด์ด๋ธŒ ๋ฐ ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ(์˜ˆ: Bitlocker ๋ฐ FreeBSD geli)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์ „์— ์ง€์›๋˜์—ˆ๋˜ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ํ˜•์‹์— ๋Œ€ํ•œ ์ง€์›(์˜ˆ: OpenBSD Softraid์— ๋Œ€ํ•œ bcrypt-pbkdf์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€) ๋“ฑ๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด์ ์œผ๋กœ CPU์—๋Š” 80๊ฐœ ํ˜•์‹, OpenCL์—๋Š” 47๊ฐœ ํ˜•์‹์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์†Œ์ˆ˜์˜ ์ด์ „ ํ˜•์‹์ด ์ƒˆ๋กœ์šด ํ˜•์‹๊ณผ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜•์‹์œผ๋กœ ํ†ตํ•ฉ๋˜๋ฉด์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ์ด์ œ ์ด ํ˜•์‹ ์ˆ˜๋Š” CPU์—์„œ 407๊ฐœ(๋˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๊ตฌ์„ฑ๋œ "๋™์ " ํ˜•์‹์„ ํฌํ•จํ•˜์ง€ ์•Š์€ 262๊ฐœ), OpenCL์—์„œ 88๊ฐœ์ž…๋‹ˆ๋‹ค.
  • OpenCL์„ ์„ ํ˜ธํ•˜์—ฌ CUDA ์–ธ์–ด ์ง€์›์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. OpenCL์€ NVIDIA GPU์˜ ์ „์ฒด ์‚ฌ์šฉ์„ ์ „ํ˜€ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ด์ „์˜ ๋‘ ๊ตฌํ˜„ ๋Œ€์‹  GPU์˜ ๊ฐ ํ˜•์‹์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ ๋ฐ ์ตœ์ ํ™”์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋•๋ถ„์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค).
  • ์ƒˆ๋กœ์šด SIMD ๋ช…๋ น ์„ธํŠธ(AVX2, AVX-512(86์„ธ๋Œ€ Xeon Phi ํฌํ•จ) ๋ฐ MIC(64์„ธ๋Œ€) ์ง€์›)์€ ๋ฌผ๋ก  ๋‹ค์–‘ํ•œ ํ˜•์‹ ๊ตฌํ˜„์—์„œ SIMD๋ฅผ ๋ณด๋‹ค ๋ณดํŽธ์ ์ด๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— xXNUMX(-XNUMX)์—์„œ AVX ๋ฐ XOP๊นŒ์ง€ ์ง€์›๋˜๋Š” ๋ช…๋ น์–ด ์„ธํŠธ ๋ฐ
    ARM, Aarch64 ๋ฐ POWER์˜ NEON, ASIMD ๋ฐ AltiVec. (๋ถ€๋ถ„์ ์œผ๋กœ GSoC 2015์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.)
  • ๋™์‹œ์— ๋งŽ์€ ์ˆ˜์˜ ํ•ด์‹œ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ (์˜ˆ: GPU์— 320์–ต 1์ฒœ๋งŒ ๊ฐœ์˜ SHA-XNUMX ํ•ด์‹œ ๋กœ๋“œ ํ…Œ์ŠคํŠธ) ํ•ด์‹œ ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด CPU ๋ฐ OpenCL์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™” ์ค‘ ์ผ๋ถ€๋Š” ๋ณดํŽธ์ ์ด๊ณ  ์ผ๋ถ€๋Š” ๋‹ค์–‘ํ•œ ํ˜•์‹ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ๋‹ค๋ฃจ๋ฉฐ ๋Œ€๋ถ€๋ถ„์€ ๊ฐœ๋ณ„ ํ˜•์‹์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • NVIDIA GTX์˜ ๋Š๋ฆฐ ๋žจํ”„์—… ๊ณ ๋ ค๋ฅผ ํฌํ•จํ•˜์—ฌ CPU์—์„œ ํ™•์ธ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์ตœ์  ๋ฒ„ํผ๋ง(โ€œโ€”tune=auto โ€”verbosity=5โ€) ๋ฐ OpenCL(๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ)์˜ ์ตœ์  ์ž‘์—… ํฌ๊ธฐ์— ๋Œ€ํ•œ (์ž๋™) ๊ตฌ์„ฑ ์‹œ๋ฆฌ์ฆˆ GPU๋ฅผ ์ „์ฒด ์ž‘๋™ ์ฃผํŒŒ์ˆ˜ 10xx ์ด์ƒ์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์กฐ์ •์„ ์œ„ํ•ด ์‹ค์ œ๋กœ ๋กœ๋“œ๋œ ํ•ด์‹œ์™€ ํ™•์ธ ์ค‘์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์‹ค์ œ ๊ธธ์ด(๋ฏธ๋ฆฌ ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…๋ น์ค„์—์„œ ์ง์ ‘ ์ง€์ •๋œ "๋™์  ํ‘œํ˜„์‹"์„ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  SIMD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CPU์—์„œ ๊ณ„์‚ฐ๋˜๋Š” "-format=dynamic='sha1(md5($p).$s)'"์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ•ด์‹œ ์œ ํ˜•์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. . ์ด๋Ÿฌํ•œ ํ‘œํ˜„์‹์˜ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ˆ˜์‹ญ ๊ฐœ์˜ ๋น ๋ฅธ ํ•ด์‹œ(MD5์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ํ•ด์‹œ๋ถ€ํ„ฐ Whirlpool๊ณผ ๊ฐ™์€ ์•ฝ๊ฐ„ ์ด๊ตญ์ ์ธ ํ•ด์‹œ๊นŒ์ง€), ํ•˜์œ„ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ, ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ, ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐธ์กฐ, ์†”ํŠธ, ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋ฌธ์ž์—ด ์ƒ์ˆ˜๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์ด์ „ hashcat ๊ด€๋ จ ๊ทœ์น™(wordlist ๊ทœ์น™ ๋ช…๋ น)์— ๋Œ€ํ•œ ์ง€์›, OpenCL ์žฅ์น˜ ๋ฒˆํ˜ธ ์ง€์ •์„ 1์—์„œ ์ „ํ™˜, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋™์ผํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด(์ผ๋ฐ˜์ ์œผ๋กœ ๊ธธ์ด 7)์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์„ ํฌํ•จํ•˜์—ฌ hashcat๊ณผ์˜ ์›์น˜ ์•Š๋Š” ์ฐจ์ด์  ์ œ๊ฑฐ.
  • hashcat์˜ PRINCE(์ „์ฒด ๊ธธ์ด์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ "๋ฌธ๊ตฌ" ํ˜•์„ฑ), ํ•˜์œ„ ์ง‘ํ•ฉ(์ด๋Ÿฌํ•œ ๋ฌธ์ž๊ฐ€ ์˜ค๋”๋ผ๋„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜ด)์„ ํฌํ•จํ•˜์—ฌ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ชจ๋“œ(ํฌ๋ž˜ํ‚น ๋ชจ๋“œ) ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ธํŠธ์—์„œ) ๋ฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์™ธ๋ถ€(C์™€ ์œ ์‚ฌํ•œ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์„ค๋ช…๋œ ์™ธ๋ถ€ ๋ชจ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ชจ๋“œ์—์„œ ์ˆ˜์‹ ๋œ ๊ฐ ๊ธฐ๋ณธ "๋‹จ์–ด"๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŽ์€ ํ™•์ธ ๊ฐ€๋Šฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ). ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๋ฏธ๋ฆฌ ์ •์˜๋œ ์™ธ๋ถ€ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ๋ชจ๋“œ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(ํ•œ ๋ชจ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“œ ์œ„์— ๊ฒน์ณ ์Œ“๊ธฐ)๊ณผ ๊ทœ์น™ ์„ธํŠธ(๋‹จ์–ด ๋ชฉ๋ก ๊ทœ์น™ ์Šคํƒœํ‚น)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๋งˆ์Šคํฌ ๋ชจ๋“œ(์ง€์ •๋œ ๊ธธ์ด ๋ฒ”์œ„์—์„œ ๋งˆ์Šคํฌ๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋Š˜๋ฆฌ๊ธฐ, OpenCL ์žฅ์น˜ ๋˜๋Š” FPGA ๋ณด๋“œ ์ธก๋ฉด์— ๋งˆ์Šคํฌ ์ ์šฉ) ๋ฐ ๋‹จ์ผ ํฌ๋ž™(๋งŽ์€ ์ˆ˜์˜ ํ•ด์‹œ๋ฅผ ๋ณ‘๋ ฌ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ์žฅ์น˜์˜ ํ•ฉ๋ฆฌ์ ์ธ ๋™์ž‘) ๊ฐœ์„  ์ด์ „์—๋Š” ์ด ๋ชจ๋“œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์— ๋Œ€ํ•œ ์ œํ•œ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฐ ๊ธฐํƒ€ ์ธ์ฝ”๋”ฉ ์ง€์›์ด ๋งŽ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • *2john ํ”„๋กœ๊ทธ๋žจ์˜ ๋งŽ์€ ๊ฐœ์„  ์‚ฌํ•ญ(๋‹ค๋ฅธ ํ˜•์‹์˜ ํŒŒ์ผ์„
    john๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ), ํŠนํžˆ wpapcap2john(WiFi ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ).
  • ๋งŽ์€ ์ƒˆ๋กœ์šด ๋ช…๋ น์ค„ ์˜ต์…˜, john.conf์˜ ์„ค์ •, ์Šคํฌ๋ฆฝํŠธ ์˜ต์…˜ ๊ตฌ์„ฑ ๋ฐ ์ด์— ์ƒ์‘ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์— ๋ชจ๋‘ ์–ธ๊ธ‰๋œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
  • AddressSanitizer(์ด์ „) ๋ฐ UndefineBehaviorSanitizer(์ถ”๊ฐ€)๋ฅผ ์‚ฌ์šฉํ•œ ๋””๋ฒ„๊ทธ ๋นŒ๋“œ์— ๋Œ€ํ•œ ๋‚ด์žฅ ์ง€์›, ๋‚ด์žฅ ํ˜•์‹ fuzzer ์ถ”๊ฐ€(GSoC 2015์˜ ์ผ๋ถ€), ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‚ฌ์šฉ(์ˆ˜์‹ญ ๊ฐœ์˜ ์šด์˜ ์ฒด์ œ ๋ฐ ์ปดํŒŒ์ผ๋Ÿฌ์šฉ ๋นŒ๋“œ) ๋•๋ถ„์— ์ฝ”๋“œ ํ’ˆ์งˆ ํ–ฅ์ƒ ๋ชจ๋“  ํ˜•์‹์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์ง€์›์„ ์œ„ํ•ด ์กฐํ•ฉํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค).

์ถœ์ฒ˜ : linux.org.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€