WPA2 ¡°KRACK¡± ·ì϶¼ò½éÓë³ÁÏÖ
°ä²¼¹¦·ò 2018-01-241¡¢¸ÅÊö
2017Äê10Ô£¬£¬£¬£¬£¬£¬£¬£¬±ÈÀûʱ°²È«×êÑÐÔ±Mathy VanhoefÅû¶ÁËÎÞÏßÍøÂçºÍ̸WPA2´æÔÚ¸ßΣ·ì϶£¬£¬£¬£¬£¬£¬£¬£¬·ì϶ÔÊÐí¹¥»÷Õß¼àÌýAPºÍ½ÓÈëµãSTAÖ®¼ä´«ÊäµÄWi-FiÊý¾ÝÁ÷Á¿¡£¡£¡£¡£¡£¡£¡£¡£×÷Õß°ä²¼ÁË·ì϶ÑéÖ¤ÑÝʾÊÓÆµ[1][2]¡£¡£¡£¡£¡£¡£¡£¡£ÓÉÓÚ·ì϶´æÔÚÓÚWiFiºÍ̸²ã£¬£¬£¬£¬£¬£¬£¬£¬ÀíÂÛÉÏËùÓÐÖ§³ÖWPA2µÄ¿Í»§¶Ë£¨×ÀÃæ²Ù×÷ϵͳ¡¢Òƶ¯OS¡¢Â·ÓÉÆ÷¡¢ÎïÁªÍøÉ豸µÈ£©¶¼½«Êܵ½¡°KRACK¡±¹¥»÷µÄÓ°Ï죨Æä͸¹ýWiFi´«ÊäµÄÊý¾Ý´æÔÚ±»´Û¸Ä¡¢Ðá̽µÄ·çÏÕ£¬£¬£¬£¬£¬£¬£¬£¬ÖîÈç±»¹¥»÷ÕßµÄÖ§¸¶¡¢²Æ¸»Õ˺š¢Óû§Ãû¡¢ÃÜÂë¡¢Óʼþ¡¢ÕÕÆ¬µÈÃô¸ÐÐÅÏ¢¿É±»½Ø»ñ£¬£¬£¬£¬£¬£¬£¬£¬·çÏÕ´óÓ°ÏìÁìÓò¹ã£©¡£¡£¡£¡£¡£¡£¡£¡£
8827Ì«Ñô¼¯ÍÅADLabͨ¹ý¶ÔÈ«ÁãÃÜÔ¿·ì϶µÄ·ÖÎö³É¹¦³ÁÏÖ¡°KRACK¡±¹¥»÷¡£¡£¡£¡£¡£¡£¡£¡£
2¡¢ºÍ̸¼ò½é
802.11iÊÇIEEE¹¤×÷×éΪÎÞÏßÍøÂç802.11ºÍ̸×é½ç˵µÄ°²È«³ß¶È¡£¡£¡£¡£¡£¡£¡£¡£WPAʵÏÖÁËIEEE 802.11i³ß¶ÈµÄ´ó²¿ÃÅ£¬£¬£¬£¬£¬£¬£¬£¬ÊÇÔÚ802.11iÍêÕû֮ǰ´úÌæWEPµÄ¹ý¶É¹æ»®£¬£¬£¬£¬£¬£¬£¬£¬ºó±»WPA2È¡´ú[3]¡£¡£¡£¡£¡£¡£¡£¡£WPAºÍWPA2¶¼ÊÇ»ùÓÚ802.11i£¬£¬£¬£¬£¬£¬£¬£¬Çø±ðÔÚÓÚWPA2ÒªÇóÖ§³Ö¸ü°²È«µÄCCMP¡£¡£¡£¡£¡£¡£¡£¡£WPAºÍWPA2¾ùʹÓÃ802.11iÖнç˵µÄËÄ´ÎÎÕÊÖ¡£¡£¡£¡£¡£¡£¡£¡£
ÏÂͼÊǿͻ§¶Ë£¨Station, STA£©ÏνӽÓÈëµã£¨Access Point, AP£©µÄÐÂÎŽ»»¥¹ý³Ì¡£¡£¡£¡£¡£¡£¡£¡£
STAºÍAPÔÚËÄ´ÎÎÕÊÖÖÐÐÉ̻ỰÃÜÔ¿PTK£¨Pairwise Transient Key£©£¬£¬£¬£¬£¬£¬£¬£¬PTKÊÇÓÉPMKºÍPKEÍÆËãÌìÉú£¬£¬£¬£¬£¬£¬£¬£¬¶øPMKÓÉANonce¡¢SNonceºÍË«·½MACµØÖ·µÈÍÆËãÌìÉú¡£¡£¡£¡£¡£¡£¡£¡£PTK·ÖΪKCK£¬£¬£¬£¬£¬£¬£¬£¬KEKºÍTKÈý²¿ÃÅ£¬£¬£¬£¬£¬£¬£¬£¬ÆäÖУ¬£¬£¬£¬£¬£¬£¬£¬KCKÓÃÓÚMICУÑ飬£¬£¬£¬£¬£¬£¬£¬KEKÓÃÓÚ¼ÓÃÜGTK£¬£¬£¬£¬£¬£¬£¬£¬TKΪÊý¾Ý¼ÓÃÜÃÜÔ¿¡£¡£¡£¡£¡£¡£¡£¡£ËÄ´ÎÎÕÊÖʵÏֺ󣬣¬£¬£¬£¬£¬£¬£¬´«ÊäÊý¾ÝʹÓÃTK½øÐмÓÃÜ¡£¡£¡£¡£¡£¡£¡£¡£
3¡¢·ì϶µÀÀí
wpa_supplicantÊÇlinuxϵͳÏÂWiFi¿Í»§¶Ë£¬£¬£¬£¬£¬£¬£¬£¬ÓÃÓÚÏνÓÎÞÏßÍøÂ磬£¬£¬£¬£¬£¬£¬£¬Android WiFiϵͳÒýÈëÁËwpa_supplicant£¬£¬£¬£¬£¬£¬£¬£¬ËüµÄÕû¸öWiFiϵͳÊÇÒÔwpa_supplicantΪÖ÷ÌâÀ´½ç˵ÉϲãÓû§½Ó¿ÚºÍ»ù²ãÇý¶¯½Ó¿Ú¡£¡£¡£¡£¡£¡£¡£¡£
ÏÂͼΪwpa_supplicant°æ±¾°ä²¼¹¦·òÏß¡£¡£¡£¡£¡£¡£¡£¡£Android 6.0 WiFiϵͳÊÇ»ùÓÚv2.5£¬£¬£¬£¬£¬£¬£¬£¬Android 6.0+ WiFiϵͳÊÇ»ùÓÚv2.6¡£¡£¡£¡£¡£¡£¡£¡£
v2.4°æ±¾ÒýÈëÁËÒ»¸öÈ«ÁãÃÜÔ¿·ì϶¡£¡£¡£¡£¡£¡£¡£¡£Õâ¸ö·ì϶ÊÇÓÉ802.11³ß¶ÈÖеÄÒ»¾ä»°ÒýÆðµÄ£¬£¬£¬£¬£¬£¬£¬£¬¸Ã³ß¶È¼ä½Ó½¨ÒéÔÚ×°ÖÃÁËTKÖ®ºó´ÓÄÚ´æ¶Ï¸ùTK£»£»£»£»£»2016Äê10Ô°䲼µÄV2.6¶ÔÕâ¸ö·ì϶½øÐÐÁËÒ»´Î½¨¸´£¬£¬£¬£¬£¬£¬£¬£¬ÓÉÓÚ˼¿¼²»È«Ã棬£¬£¬£¬£¬£¬£¬£¬´úÂëÒÀÈ»´æÔÚ·ì϶£»£»£»£»£»ÔÚ2017Äê10Ô°䲼µÄ²¹¶¡ÖУ¬£¬£¬£¬£¬£¬£¬£¬×îÖÕ½¨¸´ÁËÕâ¸ö·ì϶¡£¡£¡£¡£¡£¡£¡£¡£ÏÂÃæ½áºÏ´úÂë¶Ô·ì϶½øÐоßÌå·ÖÎö¡£¡£¡£¡£¡£¡£¡£¡£
3.1. V2.4(2.5)
wpa_supplicant 2.4(2.5) ËÄ´ÎÎÕÊÖÖеÄ×´Ì¬×ªÒÆÈçÏÂͼËùʾ£º
£¨1£©µ±Ïνӵ½ÎÞÏßÍøÂç½øÐÐËÄ´ÎÎÕÊÖµÄʱ³½£¬£¬£¬£¬£¬£¬£¬£¬Ê×ÏȽøÈëPTK_INIT״̬¡£¡£¡£¡£¡£¡£¡£¡£
£¨2£©µ±½Ó¹Üµ½Msg1ʱ£¬£¬£¬£¬£¬£¬£¬£¬½øÈëPTK-START½×¶Î¡£¡£¡£¡£¡£¡£¡£¡£wpa_supplicant»áËæ»úÌìÉúÒ»¸öSNonce£¬£¬£¬£¬£¬£¬£¬£¬ÍÆËãÒ»¸öһʱPTK£¨TPTK£©£¬£¬£¬£¬£¬£¬£¬£¬²¢ÇÒÔÚMsg2Öн«SNonce·¢Ë͸øAP¡£¡£¡£¡£¡£¡£¡£¡£
£¨3£©µ±½Ó¹Üµ½Msg3ʱ£¬£¬£¬£¬£¬£¬£¬£¬ÈôÊÇMICºÍreplay counterУÑé³É¹¦£¬£¬£¬£¬£¬£¬£¬£¬½øÈëPTK-NEGOTIATING״̬¡£¡£¡£¡£¡£¡£¡£¡£¶øºó½«TPTK¸³Öµ¸øPTK£¬£¬£¬£¬£¬£¬£¬£¬²¢·¢ËÍMsg4¡£¡£¡£¡£¡£¡£¡£¡£
£¨4£©½Ó׎øÈëPTK-DONE½×¶Î£¬£¬£¬£¬£¬£¬£¬£¬×°ÖÃPTKºÍGTK£¬£¬£¬£¬£¬£¬£¬£¬²¢ÇÒ´ò¿ª802.1xµÄ¶Ë¿Ú£¬£¬£¬£¬£¬£¬£¬£¬Ê¹wpa_supplicantºÍAPÕý³£½Ó¹ÜºÍ·¢ËÍÊý¾Ý°ü¡£¡£¡£¡£¡£¡£¡£¡£
ÓÉÓÚÎÞÏßÍøÂç´æÔÚ×ÌÈÅ£¬£¬£¬£¬£¬£¬£¬£¬¿ÉÄÜ»áÔì³ÉÊý¾ÝÖ¡µÄÃÔʧ£¬£¬£¬£¬£¬£¬£¬£¬Òò¶øÔÚ802.11i»®¶¨ÈôÊÇAPûÓÐÊÕµ½Msg2ºÍMsg4£¬£¬£¬£¬£¬£¬£¬£¬»áÏàÓ¦µÄ³Á´«Msg1ºÍMsg3¡£¡£¡£¡£¡£¡£¡£¡£´ÓͼÖÐÄܹ»¿´³ö£¬£¬£¬£¬£¬£¬£¬£¬µ±ÊµÏÖPTK×°Öú󣬣¬£¬£¬£¬£¬£¬£¬ÈôÊÇÊÕµ½³Á´«µÄMsg3£¬£¬£¬£¬£¬£¬£¬£¬»á³ÁÐÂ×°ÖÃPTK¡£¡£¡£¡£¡£¡£¡£¡£
µ±wpa_supplicantÊÕµ½Msg3ºó£¬£¬£¬£¬£¬£¬£¬£¬»áŲÓÃwpa_supplicant_install_ptkº¯Êý×°ÖÃPTK£¬£¬£¬£¬£¬£¬£¬£¬ÆäÖÐwpa_sm_set_keyº¯ÊýÕÆ¹Ü½«ÃÜÔ¿PTK.TK×°Öõ½Çý¶¯¡£¡£¡£¡£¡£¡£¡£¡£ÔÚsupplicant v2.4(v2.5)ÖУ¬£¬£¬£¬£¬£¬£¬£¬ÔÚŲÓÃwpa_sm_set_keyº¯ÊýʵÏÖPTKµÄ×°Öú󣬣¬£¬£¬£¬£¬£¬£¬Ö´ÐÐos_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN)£¬£¬£¬£¬£¬£¬£¬£¬¶ÔPTK.TK½øÐÐÇåÁã²Ù×÷¡£¡£¡£¡£¡£¡£¡£¡£
ÈôÊǹ¥»÷Õß½Ù³ÖMsg3»òMsg4£¬£¬£¬£¬£¬£¬£¬£¬Ôì³ÉMsg3µÄ³Á´«£¬£¬£¬£¬£¬£¬£¬£¬Æ¾¾Ý×´Ì¬×ªÒÆÍ¼£¬£¬£¬£¬£¬£¬£¬£¬STA»á³ÁÐÂ×°ÖÃPTK£¬£¬£¬£¬£¬£¬£¬£¬¶øPTK.TK֮ǰÒѾ±»ÇåÁ㣬£¬£¬£¬£¬£¬£¬£¬µ¼ÖÂSTA×°ÖÃÈ«Áã¼ÓÃÜÃÜÔ¿¡£¡£¡£¡£¡£¡£¡£¡£
3.2. V2.6
ÏÂÃæ½áºÏV2.5ºÍV2.6µÄÔ´´úÂë½øÐзÖÎö¡£¡£¡£¡£¡£¡£¡£¡£
£¨1£©V2.6ÔÚwpa_sm½á¹¹ÌåÖÐÔö³¤ÁËÒ»¸ö±ê־λtk_to_set¡£¡£¡£¡£¡£¡£¡£¡£
£¨2£©V2.6Åú¸ÄÁËwpa_supplicant_install_ptkº¯Êý¡£¡£¡£¡£¡£¡£¡£¡£ÔÚ×°ÖÃÍêPTKºó£¬£¬£¬£¬£¬£¬£¬£¬½«tk_to_set¸³ÖµÎª0£¬£¬£¬£¬£¬£¬£¬£¬µ±ÔٴνøÈë¸Ãº¯Êýʱ£¬£¬£¬£¬£¬£¬£¬£¬ÈôÊÇtk_to_set==0£¬£¬£¬£¬£¬£¬£¬£¬Ö±½Óreturn£¬£¬£¬£¬£¬£¬£¬£¬²»ÔÙ³Á×°PTK¡£¡£¡£¡£¡£¡£¡£¡£
£¨3£©V2.6Åú¸Äwpa_supplicant_process_1_of_4º¯Êý¡£¡£¡£¡£¡£¡£¡£¡£µ±Ã¿´ÎÊÕµ½Msg1ʱ£¬£¬£¬£¬£¬£¬£¬£¬ÍÆËãtptk£¬£¬£¬£¬£¬£¬£¬£¬²¢½«tk_to_set³ÁÖÃΪ1¡£¡£¡£¡£¡£¡£¡£¡£
Õë¶ÔV2.6£¬£¬£¬£¬£¬£¬£¬£¬¹¥»÷Õßͨ¹ýÔÚ³Á´«µÄMsg3֮ǰ²åÈëÒ»¸öαÔìµÄMsg1£¬£¬£¬£¬£¬£¬£¬£¬ÒÀÈ»Äܹ»ÊµÏÖÈ«ÁãÃÜÔ¿µÄ×°Öᣡ£¡£¡£¡£¡£¡£¡£¹ÌÈ»STA³õ´Î×°ÖÃPTKºó¶Ôtk_to_set½øÐÐÇåÁ㣬£¬£¬£¬£¬£¬£¬£¬µ«Êǽô½Ó´¦ÖÃαÔìµÄ Msg1ʱ£¬£¬£¬£¬£¬£¬£¬£¬½«tk_to_set³ÁÖÃΪ1£¬£¬£¬£¬£¬£¬£¬£¬Òò¶øÔÚ×îºó´¦ÖóÁ´«Msg3ʱ£¬£¬£¬£¬£¬£¬£¬£¬³É¹¦Èƹýwpa_supplicant_install_ptkº¯ÊýµÄtk_to_setǰÌáÅжϴúÂë¡£¡£¡£¡£¡£¡£¡£¡£
ÔÚ2017Äê10Ô°䲼µÄ²¹¶¡ÖУ¬£¬£¬£¬£¬£¬£¬£¬É¾³ýÁËwpa_supplicant_process_1_of_4º¯ÊýÖеÄsm->tk_to_set = 1;Óï¾ä£¬£¬£¬£¬£¬£¬£¬£¬½¨¸´ÁËÈ«ÁãÃÜÔ¿·ì϶¡£¡£¡£¡£¡£¡£¡£¡£
4¡¢·ì϶³ÁÏÖ
8827Ì«Ñô¼¯ÍÅADLab ¡°KRACK¡±³ÁÏÖÊÓÆµµØÖ·Îª£ºhttps://v.qq.com/x/page/m0538vcwqbb.html ¡£¡£¡£¡£¡£¡£¡£¡£
ÊÓÆµÖгöÏֵIJ½Öè¼°ÌáÐÑ×ÖÄ»£º
1.±¾³¢ÊÔʹÓÃNexus6ÊÖ»ú×÷Ϊ±»¹¥»÷É豸¡£¡£¡£¡£¡£¡£¡£¡£
2.Ê×ÏÈ£¬£¬£¬£¬£¬£¬£¬£¬NexusÏνӵ½ÕæÊµAP(SSID=wap£¬£¬£¬£¬£¬£¬£¬£¬¼ÓÃÜ·½Ê½ÊÇWPA2£¬£¬£¬£¬£¬£¬£¬£¬ÐÅ·10£¬£¬£¬£¬£¬£¬£¬£¬ÆµÂÊ2457)¡£¡£¡£¡£¡£¡£¡£¡£
3.½Ó×Å£¬£¬£¬£¬£¬£¬£¬£¬ÔËÐÐHostapd´´½¨¿Ë¡AP(SSID=wap£¬£¬£¬£¬£¬£¬£¬£¬¼ÓÃÜ·½Ê½ÊÇWPA2£¬£¬£¬£¬£¬£¬£¬£¬ÐÅ·3£¬£¬£¬£¬£¬£¬£¬£¬ÆµÂÊ2422)¡£¡£¡£¡£¡£¡£¡£¡£
4.ͬʱ£¬£¬£¬£¬£¬£¬£¬£¬Æô¶¯wireshark¼àÌý¿Ë¡APÍø¿¨£¬£¬£¬£¬£¬£¬£¬£¬²¶»ñ¿Í»§¶ËÊý¾Ý¡£¡£¡£¡£¡£¡£¡£¡£
5.ÔËÐй¥»÷¾ç±¾£¬£¬£¬£¬£¬£¬£¬£¬Ö¸¶¨APµÄSSIDºÍNexusµÄMacµØÖ·¡£¡£¡£¡£¡£¡£¡£¡£
6.ÔËÐÐssltrip,½øÐÐHttps½µ¼¶¡£¡£¡£¡£¡£¡£¡£¡£
a.wiresharkÏÔʾÁ˳ÉÁ¢ÏνӵÄÊý¾Ý°ü¡£¡£¡£¡£¡£¡£¡£¡£
b.¹¥»÷³É¹¦£¬£¬£¬£¬£¬£¬£¬£¬NexusÏνӵ½¿Ë¡wap£¬£¬£¬£¬£¬£¬£¬£¬ÆµÂÊ2422¡£¡£¡£¡£¡£¡£¡£¡£
c.½Ó¼ûuk.match.com ÏÔʾµ±Ç°ÏνÓΪhttpÏνӣ¬£¬£¬£¬£¬£¬£¬£¬ÊäÈë²âÊÔÓû§ÃûºÍÃÜÂë¡£¡£¡£¡£¡£¡£¡£¡£
d.wiresharkÄܹ»³É¹¦²¶»ñÓû§ÃûºÍÃÜÂë¡£¡£¡£¡£¡£¡£¡£¡£
e.¹Ø¹ØHostapd£¨ÆµÂÊ2422£©¡£¡£¡£¡£¡£¡£¡£¡£
f.³ÁÐÂÏνӵ½ÕæÊµwap£¨ÆµÂÊ2457£©£¬£¬£¬£¬£¬£¬£¬£¬ÔٴνӼûuk.match.com ÏÔʾÏνÓΪhttpsÏνӡ£¡£¡£¡£¡£¡£¡£¡£
ϱíÖÐÁгöÁ˳ÁÏÖÊÓÆµÖÐʹÓõÄÉ豸£º
5¡¢·ì϶±àºÅ¼°½¨¸´Çé¿ö
¡°KRACK¡±Éæ¼°µÄÓйطì϶±àºÅ£º
CVE-2017-13077: ÔÚËÄ´ÎÎÕÊÖÖгÁ×°³É¶Ô¼ÓÃÜÃÜÔ¿£¨PTK-TK£©
CVE-2017-13078: ÔÚËÄ´ÎÎÕÊÖÖгÁ×°×éÃÜÔ¿£¨GTK£©
CVE-2017-13079: ÔÚËÄ´ÎÎÕÊÖÖгÁ×°ÆëÈ«×éÃÜÔ¿£¨IGTK£©
CVE-2017-13080: ÔÚ×éÃÜÔ¿ÎÕÊÖÖгÁ×°×éÃÜÔ¿£¨GTK£©
CVE-2017-13081: ÔÚ×éÃÜÔ¿ÎÕÊÖÖгÁ×°ÆëÈ«×éÃÜÔ¿£¨IGTK£©
CVE-2017-13082: ½ÓÊܳÁд«ÊäµÄ¼±¾çBSSÇл»£¨FT£©³ÁйØÁªÒªÇ󣬣¬£¬£¬£¬£¬£¬£¬³Á×°³É¶Ô¼ÓÃÜÃÜÔ¿£¨PTK-TK£©
CVE-2017-13084: ÔÚPeerKeyÎÕÊÖÖгÁ×°STKÃÜÔ¿
CVE-2017-13086: ÔÚTDLS£¨Tunneled Direct-Link Setup£©ÎÕÊÖÖгÁ×°TDLS PeerKey£¨TPK£©
CVE-2017-13087: ´¦ÖÃÎÞÏßÍøÂçÖÎÀí£¨WNM£©ÐÝÃßģʽÏìӦ֡ʱ³Á×°×éÃÜÔ¿£¨GTK£©
CVE-2017-13088: ´¦ÖÃÎÞÏßÍøÂçÖÎÀí£¨WNM£©ÐÝÃßÏìӦ֡ʱ³Á×°ÆëÈ«×éÃÜÔ¿£¨IGTK£©
½¨¸´Çé¿ö£º
2017Äê10ÔÂ2ÈÕ£¬£¬£¬£¬£¬£¬£¬£¬LinuxµÄhostapdºÍwpa_supplicant ²¹¶¡ÒѰ䲼£¬£¬£¬£¬£¬£¬£¬£¬Ïê¼û https://w1.fi/security/2017-1/¡£¡£¡£¡£¡£¡£¡£¡£
2017Äê10ÔÂ10ÈÕ£¬£¬£¬£¬£¬£¬£¬£¬Î¢ÈíÔÚWindows 10 ²Ù×÷ϵͳÖа䲼²¹¶¡ KB4041676¡£¡£¡£¡£¡£¡£¡£¡£
Æ»¹ûÔÚ×îÐ嵀 beta °æ±¾iOS¡¢macOS¡¢ tvOSºÍ watchOSÖн¨¸´ÁËÎÞÏßÍøÂ簲ȫ·ì϶¡£¡£¡£¡£¡£¡£¡£¡£
6¡¢²Î¿¼Á´½Ó
[1]https://www.krackattacks.com/
[2]https://papers.mathyvanhoef.com/ccs2017.pdf
[3]https://zh.wikipedia.org/wiki/WPA


¾©¹«Íø°²±¸11010802024551ºÅ