Почитал тут вчерашние сообщения... Походу, мало кто понимает, как работает приложение WebTransfer Auth...
Принцип работы данного приложения такой же, как и у Google Auth. При первой инициализации приложения, в него вводится уникальный и персональный для каждого, ключ с сайта проекта. Отличие WT Auth от Google Auth тут в том, что первый получает ключ только через сканирование QR-кода через камеру, а второй позволяет ввести этот ключ как через QR-код, так и вручную.
После этого, приложение каждые 30 секунд генерирует уникальный 6-циферный код. Код генерируется специальным алгоритмом, на основе вашего персонального ключа + текущего времени устройства, кратного 30 секундам. Время берется в формате Unix (длинное число секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года) - поэтому не зависит от часового пояса. Именно этот принцип и позволяет приложению работать полностью оффлайн - главное, более-менее точно синхронизировать время (иначе код не подойдет). Для этого, вполне достаточно синхронизации по времени ОпСоСа (есть такая опция в настройках времени Андроида). Если время будет синхронизировано с погрешностью в несколько секунд, то код просто не подойдет в первые и последние секунды 30-секундного отсчета - что является некритичным. Именно для покрытия этой погрешности и сделан зазор 30 секунд, как оптимальное соотношение скорости смены кода и безопасности.
Здесь появляется второе отличие WT Auth от Google Auth - первое при каждом старте, пытается синхронизировать время через интернет автоматически, а второе - только однократно, вручную, через настройки. И если эта синхронизация WT Auth не удается - возникает сообщение об ошибке, с двумя кнопками. По нажатию на ОК, приложение попытается синхронизироваться еще раз. Но если нажать на Cancel - то приложение спокойно продолжит работать, и код будет генерироваться так же.
Ну а так как первичный персональный ключ знает только сайт и пользователь - то в любой момент времени, сайт может проверить валидность пользователя, посчитав на своей стороне связку "ключ+время" и сравнив с тем, что вбил пользователь.
Так что, интернет на смартфоне не нужен - можно купить дешевый смарт на андроиде и воткнуть туда WT Auth любым способом (хоть скачать с маркета через вайфай соседа/макдональдса, хоть установить с флешки заранее скаченный apk).