Курсът за етично хакерство предлага обучение от начинаещи до експерти, обхващащо техники на „черните шапки“, тестове за проникване, Kali Linux, хакване на WiFi и уеб мрежи, както и хакерския начин на мислене.
Един 32-байтов ключ защитава паролите от тип passkeys, синхронизирани с профила ви в Google. Под Windows изследовател успя да го извлече от паметта на Chrome и да влезе в криптовалутна борса без пръстов отпечатък и без ПИН код. Google не може да промени този ключ или да го изтегли обратно.
Технологията passkey обещава липса на пароли за фишинг, липса на споделена тайна на сървъра на уебсайта, която да изтече, и частен ключ, който остава при вас, отключван с лицево разпознаване или пръстов отпечатък. Тази част от обещанието е вярна. Това, което маркетингът спестява, е че синхронизираният passkey напуска устройството ви в криптиран вид, за да може Google да го копира на другите ви устройства. Изследването е фокусирано върху това копие и започва от момента, в който нещо вече се изпълнява на компютъра ви – без администраторски права, а от името на потребителя, с чийто акаунт сте влезли в момента.
Ари Олщайн от Unit 42 на Palo Alto Networks публикува изследването на 3 август, описвайки три атаки: „Pass-ta-key“, „Silver Pass-ta-key“ и „Golden Pass-ta-key“. Нито една от тях не разбива криптографията. Подписите, които генерират, са перфектни. Проблемът е в механизмите около математическите изчисления. Работата обхваща Google Password Manager в Chrome под Windows на машини с TPM чип за сигурност.
Chrome съхранява вашите синхронизирани passkeys в обикновена база данни в потребителската ви папка. Четенето й не изисква специални права.
Всеки запис съдържа сайта, потребителското име, идентификатора на акаунта и частния ви ключ в криптиран вид. Атакуващият отваря този файл и получава списък с банките ви, борсите за криптовалута и магазините, в които влизате, още преди да е стартирал единична криптографска операция. Този списък определя коя от трите атаки си струва усилията.
Компютърът ви има TPM – малък чип, съхраняващ ключове, които софтуерът не може да прочете обратно. Windows 11 изисква такъв, така че повечето съвременни машини го имат. Chrome го използва, за да докаже на сървъра, че влизането идва от вашата машина. Това доказателство се нарича ключ за идентичност и никога не трябва да напуска чипа.
Причината е един липсващ аргумент. Chrome създава ключа чрез извикване на Windows функцията NCryptCreatePersistedKey, без да й даде име, а неназован ключ никога не се съхранява в чипа. Изходният код на Chromium го потвърждава в коментар точно над извикването.
Тази задача (TODO) все още е отворена. Затова Chrome експортира ключа, чипът го обвива в ключ, който никога не напуска хардуера, и Chrome записва обвития пакет във файл, наречен passkey_enclave_state. Само вашата машина може да го разопакова. Проблемът е, че под „вашата машина“ се разбира и всичко, което се изпълнява на нея. Зловредният софтуер копира пакета от файла или го извлича от паметта на Chrome и извиква три обикновени Windows функции, които всяка програма има право да изпълни.
Чипът не може да различи една програма от друга. Той разопакова ключа, подписва каквото получи и връща резултата. Без подкана, без ескалация на привилегиите, нищо на екрана. Атакуващият инициира влизане в банката ви, получава заявка, отваря връзка с облачния автентикатор и я подписва чрез зловредния софтуер с вашия чип. Сървърът вижда регистрирано устройство, което задава нормален въпрос, и отговаря. Сайтът дава достъп. За тази атака машината ви трябва да е включена, тъй като чипът извършва подписването, така че обикновено вие седите пред нея.
Втори ключ трябваше да спре това. Ключът за идентичност доказва машината, докато отделен ключ, заключен зад Windows Hello, доказва, че човек е потвърдил влизането с лице, пръстов отпечатък или ПИН. Този втори ключ прави passkey двуфакторен метод. Подписът носи флаг, показващ кой ключ го е подписал: 1 при потвърден човек и 0, когато е потвърдена само машината. Вторият фактор е този един бит.
Олщайн очакваше сървърът да отхвърля всичко, подписано без човешка проверка. Но това не се случва. Той връща валиден отговор и в двата случая, като битът е единствената разлика. Така решението не се взема на сървъра. То остава за уебсайта, който трябва да прочете бита. Някои го правят, други – не.
GitHub го чете. Опитът за влизане там с подпис само за машина бива спрян.
eBay е настроил влизането си да изисква човешка проверка, но никога не е проверявал дали тя се е случила. В записаната демонстрация влизането преминава директно, без никакво взаимодействие от страна на жертвата. Уязвимостта е коригирана, след като Олщайн докладва за нея. Това са единствените два посочени сайта. Няма публикувани данни колко други бъркат тук.
Първата атака изисква машината ви да е включена за всяко влизане. Втората премахва това ограничение чрез пропуск, оставен за удобство. Файлът със състоянието, съдържащ обвития ключ, няма защита срещу изтриване, така че всичко, работещо от ваше име, може да го изтрие. Следващият път, когато използвате passkey, Chrome регистрира устройството ви от нулата. Под Windows тази регистрация остава наполовина завършена при първото изпълнение. Chrome изисква вашия ПИН за възстановяване, а създаването на ключа Windows Hello в същия момент би отнело твърде много време...