ãªãªãŒã¹æžã¿ ãµããŒããããŠããæãå€ããã¹ã¯ãŒãæšæž¬ããã°ã©ã 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.15y4 ã€ã® FPGA ããããå«ã¿ãå
ã
ã¯äž»ã«ãããã³ã€ã³ ãã€ãã³ã°ã«äœ¿çšãããŠããŸããããçŸåšã¯ 7 çš®é¡ã®ãã¹ã¯ãŒã ããã·ã¥ãå®è£
ãããŠããŸã: bcryptãclassic descrypt (bigcrypt ãå«ã)ãsha512cryptãsha256cryptãmd5crypt (Apache apr1 ããã³ AIX smd5 ãå«ã)ãDrupal7 ããã³ phpass (䜿çšãããŠãã) ãç¹ã« WordPress ã«ãããŠïŒã ãããã®äžéšã¯åã㊠FPGA ã«å®è£
ãããŸãã bcrypt ã®å ŽåãçŽ 119 ã¯ããã®æ¶è²»é»å㧠2^5 å埩 (ã$2b$05ã) ã§çŽ 27k 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 èšèªã®ãµããŒããæåŠããããšã§ãNVIDIA GPU ã®æ倧éã®äœ¿çšã劚ããããããšã¯ãããŸãã (ãŸãã以å㯠XNUMX ã€å®è£ ãããŠããã®ã§ã¯ãªããGPU ã®åãã©ãŒãããã® XNUMX ã€ã®å®è£ ã«éçºãšæé©åãéäžãããããã§ãããã«åœ¹ã«ç«ã¡ãŸãã)ã
- æ°ãã SIMD åœä»€ã»ãã - AVX2ãAVX-512 (第 86 äžä»£ Xeon Phi çšãå«ã)ãããã³ MIC (第 64 äžä»£çš) ã®ãµããŒãã«å ããå€ãã®ãã©ãŒãããã®å®è£
ã«ããã SIMD ã®ããæ±çšçãã€å®å
šãªäœ¿çšã以å㯠xXNUMX(-XNUMX) 㧠AVX ããã³ XOP ãŸã§ã®åœä»€ã»ããããµããŒãããŠããŸããã
ãããã ARMãAarch64ãããã³ POWER äžã® NEONãASIMDãããã³ AltiVecã (éšåçã«ã¯ GSoC 2015 ã®äžéšãšããŠã) - CPU ãš OpenCL ã®å€æ°ã®æé©åã«ãããå€æ°ã®ããã·ã¥ãåæã«ããå¹ççã«åŠçã (ããšãã°ã320 å 1 äžã® SHA-XNUMX ããã·ã¥ã GPU ã«ããŒãããããšããã¹ããããŸãã)ãããã·ã¥èšç®ã®é床ãåäžããŸããã ãããã®æé©åã®äžã«ã¯ãæ®éçãªãã®ããã©ãŒãããã®ããŸããŸãªãµãã»ãããã«ããŒãããã®ãããã³åã ã®ãã©ãŒãããã«åºæã®ãã®ããããŸãã
- NVIDIA GTX ã®é ãç«ã¡äžããèæ ®ãããCPU äžã®ãã§ãã¯æžã¿ãã¹ã¯ãŒãã®æé©ãªãããã¡ãªã³ã° (ãâtune=auto âverbosity=5ã) ããã³ OpenCL äžã®æé©ãªãžã§ã ãµã€ãº (ããã©ã«ãã§æå¹) ã® (èªå) æ§æã·ãªãŒãº GPU ãæ倧åäœåšæ³¢æ° 10xx 以éã«æ¡åŒµããŸãã ãã®ãããªèªåãã¥ãŒãã³ã°ã«ã¯ãå®éã«ããŒããããããã·ã¥ãšããã§ãã¯ããããã¹ã¯ãŒãã®å®éã®é·ãã (äºåã«ããã£ãŠããå Žå) 䜿çšãããŸãã
- ã³ãã³ãã©ã€ã³ã§çŽæ¥æå®ããããåçåŒãçšã®ã³ã³ãã€ã©ãè¿œå ããSIMD ã䜿çšã㊠CPU ã§èšç®ãããæ°ãããã€ããªãã ããã·ã¥ ã¿ã€ã (ããšãã°ã-format=dynamic='sha1(md5($p).$s)'ã) ãå®è£ ããŸãã ã ãã®ãããªåŒã®ã³ã³ããŒãã³ããšããŠãæ°åã®é«éããã·ã¥ (MD5 ã®ãããªäžè¬çãªãã®ãã Whirlpool ã®ãããªããçãããã®ãŸã§)ãéšåæååã®é£çµããšã³ã³ãŒããšãã³ãŒããæåã®å€§æåãšå°æåã®å€æããã¹ã¯ãŒãããœã«ãããŠãŒã¶ãŒåãããã³æååå®æ°ãžã®åç §ããµããŒããããŠããŸãã
- 以åã® hashcat åºæã®ã«ãŒã« (ã¯ãŒããªã¹ã ã«ãŒã« ã³ãã³ã) ã®ãµããŒãã1 ããã® OpenCL ããã€ã¹çªå·ä»ããžã®ç§»è¡ãããã©ãŒãã³ã¹ ãã¹ãã§ã®åããã¹ã¯ãŒãé· (éåžžã¯é·ã 7) ã®ããã©ã«ãã®äœ¿çšãªã©ãhashcat ãšã®äžèŠãªçžéç¹ã®æé€ã
- hashcat ã® PRINCE (å šé·ãé·ãé ã«è€æ°ã®åèªãçµã¿åãããŠããã¬ãŒãºãã圢æãã)ããµãã»ãã (ãããã®æåãå«ãŸããŠããå Žåã§ããç°ãªãæåã®æ°ãäžååãªãã¹ã¯ãŒãã衚瀺ãã) ãå«ããæ€èšŒå¯èœãªãã¹ã¯ãŒããçæããããã®æ°ããã¢ãŒã (ã¯ã©ããã³ã° ã¢ãŒã)å¯èœãªãã®ã®å€§èŠæš¡ãªã»ããããïŒããã³ãã€ããªããå€éšïŒC ã«äŒŒãèšèªã§èšå®ãã¡ã€ã«ã«èšè¿°ãããå€éšã¢ãŒãããå¥ã®ã¢ãŒãããåãåã£ãååºæ¬çãªãåèªãã«åºã¥ããŠå€ãã®æ€èšŒå¯èœãªãã¹ã¯ãŒããçæã§ããããã«ããŸãïŒã ãŸããããã€ãã®æ°ããäºåå®çŸ©ãããå€éšã¢ãŒãã
- è€æ°ã®ã¢ãŒããåæã«äœ¿çšããã (éããŠäœ¿çšãã - ã¹ã¿ããã³ã°)ãã«ãŒã«ã®ã»ããã䜿çšããã (ã¯ãŒããªã¹ã ã«ãŒã«ã®ã¹ã¿ããã³ã°) ããããã®è¿œå æ©èœã
- ãã¹ã¯ ã¢ãŒã (æå®ãããé·ãã®ç¯å²ã§ãã¹ã¯ã段éçã«ã¹ãã¬ãããããOpenCL ããã€ã¹ãŸã㯠FPGA ããŒãã®åŽé¢ã«ãã¹ã¯ãé©çšãã) ããã³ã·ã³ã°ã« ã¯ã©ã㯠(å€æ°ã®ããã·ã¥ã䞊è¡ããŠèšç®ããããã€ã¹ã§ã®åççãªåäœ) ã®æ¹åã以åã¯ãã®ã¢ãŒãã§ã¯æ€èšŒå¯èœãªãã¹ã¯ãŒããååã§ã¯ãªãããŸãã¡ã¢ãªæ¶è²»éã«ãå¶éããããŸãã)ã
- ããŸããŸãªãµãã·ã¹ãã 㧠Unicode ããã³ãã®ä»ã®ãšã³ã³ãŒãã£ã³ã°ããµããŒãããããã®å€ãã®æ¹åã
- *2john ããã°ã©ã (ããŸããŸãªåœ¢åŒã®ãã¡ã€ã«ãå€æããããã°ã©ã ) ã«å¯Ÿããå€ãã®æ¹åã
john ãšãšãã«äœ¿çšããŸã)ãç¹ã« wpapcap2john (WiFi ãã©ãã£ãã¯ãåŠçããŸã)ã - æ°ããã³ãã³ã ã©ã€ã³ ãªãã·ã§ã³ãjohn.conf ã®èšå®ãã¹ã¯ãªãã ãªãã·ã§ã³ã®æ§æãããã³å¯Ÿå¿ããæ°æ©èœãå€æ°ãããŸããããã®ãã¹ãŠãããã§èª¬æãããŠããããã§ã¯ãããŸããã
- AddressSanitizer (以å) ããã³ UnknownBehaviorSanitizer (è¿œå ) ã«ãããããã° ãã«ãã®çµã¿èŸŒã¿ãµããŒããçµã¿èŸŒã¿åœ¢åŒãã¡ã¶ãŒ (GSoC 2015 ã®äžéšãšããŠ) ã®è¿œå ãç¶ç¶ççµ±åã®äœ¿çš (æ°åã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ããã³ã³ã³ãã€ã©ãŒçšã®ãã«ã) ã«ããã³ãŒãå質ã®åäžçµã¿åããã確èªãããã¹ãŠã®åœ¢åŒãæ£ãããµããŒããããŠãããã©ããããã¹ãããŸã)ã
åºæïŒ linux.org.ru