• У цій замітці ми коротко ознайомимося з такими явищами, як двохфакторна аутентифікація та одноразові паролі, а також розглянемо їх застосування на простенькому прикладі використання Google Authenticator для захисту облікових записів Google і хмарних сервісів Amazon
    залежно від фантазії розробника і конкретної сфери застосування система з використанням одноразових паролів або ключів може називатися двофакторної або ж двухшаговой авторизацією, аутентифікацією, верифікацією, а то і яким щось більш хитромудрою словом. Втім, всі вони в загальному випадку зводяться до використання двох або більше методів ідентифікації користувача для виконання тієї чи іншої операції. Причому, як правило, першим етапом є застосування звичної всім зв'язки логін пароль, яку, якщо чесно, можна легко вкрасти і використовувати віддалено без відома власника. А ось другим чинником є щось, що по ідеї повинно бути доступний виключно користувачеві. Методи силового захоплення і що щось на зразок лагідною прохання від дядька з гарячим паяльником в даному випадку не розглядаються, оскільки від них навряд чи або врятує.
    Для другого етапу ідентифікації може застосовуватися безліч засобів: передача ключа по SMS/дзвінку/Push-повідомленню, USB-токени, фізичні та віртуальні генератори ключів, біометричні датчики, смарт-карти, «таблетки» (як для домофонів), RFID-мітки (NFC в тому числі), програми для мобільних пристроїв, одноразові _ шифроблокноты _ і інші, більш екзотичні штуки. Суть всіх цих технічних наворотів одна - для доступу до чого-або, крім основних ідентифікаційних даних (логін пароль), потрібно ввести ще і одноразовий код. Якщо зловмисник вкрав логін і пароль від вашого облікового запису, то скористатися ними він не зможе, оскільки одноразового пароля у нього немає. Якщо ж він примудрився підглядати і одноразовий код, то він все одно для нього марний, адже сама назва коду вказує на те, що другий раз він їм скористатися не зможе.
    Більш того, для більшої безпеки одноразові паролі нерідко мають дуже обмежений термін дії, але такий, щоб навіть дуже повільну користувач встиг ввести його куди треба, а шкідник не встиг би його дізнатися. Звичайно, такий підхід не забезпечує стовідсоткового захисту, якої, як відомо, взагалі не буває, але дозволяє досить ефективно захищатися від різного роду атак, так і в цілому підвищити безпеку роботи. Так, це трохи знижує зручність користування сервісами, а деякі категорії користувачів може взагалі відлякати. Автор очі спостерігав в одному з банків сцену, коли менеджер активно переконував (зауважте, цілком доступною і зрозумілою мовою) клієнта середніх років підключити безкоштовну послугу авторизації платежів в інтернеті через SMS-коди. На що клієнт буркнув: «Занадто складно», - і пішов, залишивши менеджера в розгубленості і нерозуміння, як така проста процедура може викликати проблеми у недурного з вигляду людини. Приклад з банком не випадковий, адже саме фінансові організації першими прийняли на озброєння одноразові коди.
    Ті ж паролі по SMS розсилають чи не всі онлайн-сервіси, включаючи соціальні мережі. Якщо не для входу, то хоча б для скидання основного пароля. Dropbox віднедавна пропонує клієнтам свою двохфакторну аутентифікацію. А таблиці одноразових кодів на скретч-картах або в паперовому вигляді зараз чи не насильно впихають клієнтам будь-які поважаючі себе банки і суміжні організації. «Яндекс.Деньги» давно пропонують не тільки таблиці, але і електронні токени для проведення платіжних операцій. Аналогічна історія є у PayPal. Є і більш універсальні рішення начебто Rutoken або Yubikey, які можуть використовуватися в якості не тільки додаткового, але і основного засобу ідентифікації (у загальному випадку), а також для шифрування, доступу до пошти, електронних грошей і так далі. Благо стандарти на такі пристрої та схеми давно прийняті активно впроваджуються.
    Апаратний токен варто зазвичай в межах 50$. Якщо вам зовсім не хочеться витрачати гроші для свого захисту, то можна скористатися безкоштовними програмними рішеннями. Найчастіше в них використовується алгоритм генерації одноразового коду на основі поточного часу або HMAC, тому потрібно лише правильна синхронізація часу на всіх використовуваних пристроях. Мабуть, найбільш популярним рішенням для двофакторної аутентифікації є Google Authenticator. Опис роботи з ним досить докладно розписано в довідці сервісу. Ну а нам для старту знадобиться тільки акаунт Google і смартфон. Почати реєстрацію треба з цього майстра. Вам знадобиться тільки поділитися з Google номером мобільного телефону, ну і смартфон з Android, iOS, Blackberry або WP7. (Доступний варіант з підтвердженням по SMS або голосовим повідомленням для екстрених випадків, а також резервні коди.)
    Після зазначення номера на нього прийде SMS з посиланням на відповідний додаток, яке треба встановити і запустити. В ньому ми вибираємо обліковий запис, для якого буде активна двохфакторна аутентифікація, і дотримуємося радам майстра налаштування. Рекомендується вказати в налаштуваннях облікового запису резервні номер телефону і e-mail і роздрукувати коди для входу в обліковий запис без телефону. Після налаштування облікового запису Google Authenticator почне генерувати для нього одноразові паролі. При наступній спробі зайти через веб інтерфейс, наприклад, Gmail вас попросять ввести не тільки логін і пароль, але і поточний одноразовий код. Для зручності ПК, з якого здійснюється вхід, можна додати до списку довірених, щоб не лізти зайвий раз за телефоном. Для додатків на кшталт Google Talk або поштових клієнтів, які не вміють працювати з двофакторної аутентифікацією, доведеться створити особливі паролі (для кожного окремо), які треба вводити замість звичайного пароля до сервісів Google. Відповіді на питання по роботі з додатком можна знайти тут - http://support.google.com/accounts/bin/answer.py?hl=ru&answer=185834&topic=1099588&ctx=topic.
    В принципі, Google Authenticator базується на відкритих стандартах і має PAM-модуль з доступними вихідними кодами, який можна «прикрутити» практично до будь-якої системи з підтримкою PAM. Наприклад, захистити підключення до SSH. Також можна знайти альтернативні рішення, які реалізують ті ж стандарти для інших платформ. Втім, вірно і зворотне - деякі платформи і сервіси вже підтримують двохфакторну аутентифікацію. Для додавання нового облікового запису треба або прочитати камерою смартфона QR-код (при першому запуску буде запропоновано встановити потрібний сканер), або ввести довгий ідентифікаційний код. Наприклад, можна таким чином підвищити безпеку настільки улюблених нами (добре-добре, улюблених автором) хмарних сервісів Amazon.
    На сторінці включення MFA внизу є кнопка Enable AWS MFA Device, за натисканні на яку відкриється консоль IAM. Навпроти пункту Root Account MFA треба натиснути на кнопку Manage MFA Device, а у вікні майстра вибрати A virtual MFA Device. Користувачеві буде показаний QR-код, а нижче на всяк випадок він же, але в текстовому вигляді. У Google Authenticator в меню програми переходимо в розділ «Налаштувати обліковий запис», де для додавання нового профілю вибираємо між скануванням коду або його ручним уведенням. Нарешті, на останньому етапі Amazon попросить ввести два одноразових паролів, згенеровані один за іншим. Надалі, як і у випадку з Google-обліковим записом, від вас або зловмисника будуть вимагати тимчасові коди. Якщо вам все це справа набридне, то в налаштуваннях двохфакторну аутентифікацію можна буде вимкнути в будь-який момент або ж перереєструвати профіль Google Authenticator.
    Це всього лише невеликий приклад. Налаштування інших онлайн сервісів або програм, як правило, не складніше. На жаль, таких зараз не дуже багато. Крім безкоштовного сервісу Google існує чимало комерційних рішень для підвищення безпеки за рахунок одноразових кодів, але вони в основному призначені для корпоративних клієнтів, а тому «заточені» під дещо інші продукти і коштують чималих грошей. З тих, що можуть знадобитися звичайним користувачам, варто відзначити чудовий проект Duo Security, який до того ж бере гроші тільки за SMS і дзвінки, залишаючи безкоштовними для особистого користування інші сервіси. Не менш цікаві проекти SecurEnvoy і PhoneFactor. Останній, до речі, місяць тому купила Microsoft.
    Звичайно, використання одноразових паролів не є панацеєю від усіх можливих загроз. Тим не менше ми рекомендуємо включити двохфакторну аутентифікацію та інші системи захисту скрізь, де тільки можна, - від систем онлайн-банкінгу до соціальних мереж. Зайвим це точно не буде, а чекати грому за старою звичкою все ж не варто. Ну і традиційно закликаємо наших читачів як можна більш уважно ставитися до своїх особистих даних і захищати їх у міру своїх сил. Удачі!