« Отговор #2 -: Dec 04, 2009, 01:38 »
Съвсем резонен въпрос е това.
Доколкото знам, passphrase-a (добре де, ключът, който по някакъв начин се формира от passphrase-a) не се използва за криптиране на каквото и да било. Той се използва само за проверка дали двете страни (клиент и АП) наистина имат споделената парола и също участва в генерирането на един сесиен ключ, който е различен за всяко връзване на клиента и с който сесиен ключ реално се криптира комуникацията.
Този сесиен ключ се формира от хеш сумата на един низ, съдържащ две случайни стойности (едната генерирана от клиента, другата от АП-то) + WPA ключа (passphrase) + някакви глупости (мак адресите на двете страни).
Въпросният handshake ти е единственият начин да можеш да провериш паролите от речника. Грубо казано, при него двете страни си разменят случайните стойности, и тъй като останалите неща (споделената passphrase и МАК адресите) вече си ги знаят, в момента в който успешно си разменят случайните стойности, и двете страни независимо могат да си генерират временния сесиен ключ. С този временен сесиен ключ си криптират определено фиксирано съобщение, за да потвърдят, че всичко е ОК, да наречем това криптирано съобщение "потвърждение". Ако потвърждението успешно се декриптира отсреща и доведе до началното фиксирано съобщение, значи автентикацията е минала успешно.
Значи като изслухтиш някакъв handshake, имаш случайните стойности на двете страни, имаш МАК адресите на двете страни, имаш "потвърждението" и всичко което ти остава е passphrase-a. Съответно можеш да налучкваш (пробваш от речника) различни стойности за паролата, докато нацелиш такава, за която да изкараш правилното "потвърждение".
Та в общи линии това е цялата тарапана и за това ти трябва handshake-a, крипто-свинщини.