В последнем радио-т мы бегло упомянули введение 2х шаговой верификации для гугловых экаунтов, и также application-specific пароли. Я был как раз тем, кто отзывался о новинке в добрых словах и призывал всех порадоваться вместе со мной.
Еще в процессе обсуждения, пытаясь пояснить ту часть, что многие называют “одноразовые пароли” а сам гугл зовет “application-specific” пароли, я не смог в реальном времени сгенерировать никакого правдоподобного рассказа как же это технически работает. Конечно, говорить и думать одновременно это само по себе непросто, но тут дело даже не совсем в этом, но и в отсутствии всякого внятного описания этой функции у гугла. Там говорится буквально следующее:
Once your users enroll in 2-step verification, they may need to use application-specific passwords in addition to their verification codes. For installed applications that don’t have a 2-step verification field, your users will need to enter an application-specific password once per device or application in place of their regular password to access their Google Account.
В дальнейших пояснениях есть нечто пугающее:
Important: To ensure that your users’ application-specific passwords aren’t stolen, instruct them to never enter their code on a web page. Application-specific passwords should only be used with installed desktop applications and smartphones, and devices that sync to their Google Account (such as digital cameras or picture frames that sync to Picasa).Так, и что это все значит? Пароли они одноразовые и/или как говорит гугл “application-specific” ? Если немного подумать, то станет понятно, что одноразовыми они быть не будут. Ну как обычная программа, типа email клиента или RSS ридера, сможет такое использовать? Ей этот пароль нужем постоянно и значит его “одноразовость” может быть интерпретирована только как “подходящий для единственной программы”. Ага, это уже близко к определению application-specific.
Но если подумать еще 3 секунды, то станет понятно, что и это какая-то мистика. Каким образом эта привязка происходит? Ну например, по исходному адресу можно, либо по комбинации адреса и используемого протокола. Эта идея для мобильного мира более чем сомнительная и практическим путем я выяснил - ничего подобного на практике не происходит. Привязки к программе тоже сделать невозможно если программа подобного не поддерживает и значит напрашивается простой вывод: никакие эти пароли не application-specific. Конечно, я проверил это экспериментальным путем, подсунув mail клиенту пароль, который я до этого сгенерировал и использовал в jabber клиенте. Как и следовало ожидать, он прекрасно сработал.
Выводы вполне очевидны: пароли никакие ни одноразовые, либо хоть както привязанные к программе/протоколу. Опасность утери этих паролей не намного меньше чем утеря обычного пароля. Враг, которому вы по глупости выдали этот пароль, прочитает всю вашу почту с той же легкостью, как сделал бы это и раньше. Неким условным плюсом можно считать то, что если вы вдруг узнаете, что вас хакнули, то сможете этот скомпрометированный пароль отозвать. Но узнать какой именно пароль из десятков сгенерированных утек, теперь будет еще тем квестом. И, вполне возможно, это будет тот самый случай когда уже “поздно пить боржоми”.