Як би не старалися інженери Google зробити Android безпечнішою ОС, коли справа стосується юзабіліті, їм доводиться йти на поступки. Начебто можна змусити користувача застосовувати довгий пароль на екрані блокування, але це створить незручності; можна зашифрувати вміст карти пам'яті, але як бути, якщо користувач вставить її в інший смартфон? Компроміси, компроміси, компроміси ... А якщо самим зробити те, що Google не може?
Смартфон, планшет, розумні годинник. Все це мобільні гаджети, які губляться, крадуться, вимагав, продаються першому зустрічному. Зберігати важливі для себе дані в такому девайсі не те що небезпечно, а те саме виставляння на загальний огляд: взяв чужий телефон і за п'ять хвилин дізнався, з ким людина спілкується, кому і що пише, його паролі на сайтах і кількість грошей, що залишилися на рахунку і кредитній карті (ну ладно, платити по NFC ще не можна, і то добре).
Зрозуміло, що від непрошених гостей можна поставити пін на екрані блокування, однак для людини, що володіє хоч десятьма грамами сірої речовини, не важко обійти всі ці піни разом з фейс-контроль (та й відбиток пальця в iPhone 5s, чого вже там). Шифрування даних? Так, в Android з недавнього часу є можливість налаштувати шифрування всіх призначених для користувача даних, та так, що жоден математик НЕ розкриє. Проблема тільки в тому, що вони розшифровуються при включенні смартфона і залишаються відкритими весь час його роботи. А карта пам'яті так і взагалі доступна всім і вся, навіть якщо її фізично немає в смартфоні (це я про емуляцію карти пам'яті в Нексус).
Що ще? Так в общем-то, все. По суті, це весь набір захисних механізмів, які може запропонувати ОС в боротьбі атаками, заснованими на, так би мовити, доступі до тіла. Є, звичайно, ще різні цифрові сертифікати, шифрована передача даних по мережі та інше, але все це відноситься до мережевого взаємодії. А ось проти ручного втручання захисту майже ніякої. І ми повинні це виправити.
Взагалі кажучи, всі види захисту смартфона (та й усього що завгодно) можна розділити на дві прості логічні групи: ті, що застосовуються як завчасні превентивні заходи, які перекривають доступ до будь-якої інформації (пін, пароль, шифрування), і ті, що повинні спрацювати вже після того, як зловмисник отримав доступ до смартфону. До другого типу в основному відносяться різного роду системи віддаленого блокування і пошуку, але це також і більш витончені системи, наприклад ті, що вміють робити непомітні знімки фронтальною камерою і здійснювати зворотний дзвінок. Ми розглянемо їх пізніше, а поки розберемося з тим, як і що ми можемо захистити завчасно.
Перше, що спадає на думку, коли мова заходить про захист інформації, - це, звичайно ж, паролі. Android в сенсі поводження з паролями використовує кілька стандартних для багатьох мобільних і не дуже систем методику. Пароль Google вводиться один раз, після чого на його основі генерується аутентифікаційний токен, який зберігається в пам'яті пристрою у відкритому вигляді, але може бути використаний для доступу до аккаунту тільки з даного смартфона, а в разі втрати девайса відкликаний через веб-інтерфейс. Таким же чином діють багато інших додатків, включаючи Twitter і Facebook. Що-небудь змінити в такій поведінці неможливо, та й немає сенсу.
Для зберігання браузерних паролів використовується інша методика. Всі введені і збережені в браузері дані записуються в файл / data / data / com.android.browser / webview.db, і, хоча штатними засобами переглянути його неможливо, маючи root (а ми ж любимо рутованних смартфони), легко скопіювати файл на сусідній смартфон, а потім проаналізувати його за допомогою будь-якої програми для перегляду баз SQLite 3.
Я б хотів сказати, що для створення необхідного рівня безпеки браузер повинен запитувати у користувача майстер-пароль для розшифровки збережених паролів, проте очевидно, що в даному випадку має місце черговий компроміс. А вже як обійти цей компроміс, вирішувати нам. Один із способів - це просто не зберігати паролі в браузері і вводити їх кожен раз заново. Зручно? Не думаю.
На компах багато хто звик використовувати для вирішення цієї проблеми спеціальний софт типу KeePass - він зберігає всі паролі в одному зашифрованому контейнері, який відкривається при введенні майстер-пароля. Що заважає нам використовувати той же софт на Android-смартфоні? Нічого, додаток Keeper Password & Data Vault, яке можна знайти в маркеті за ціною 0 рублів 0 копійок, справляється з цим завданням на ура. Можливості програми:
- Працює скрізь: Android, iOS, Windows, OS X, Chrome, Firefox.
- Синхронізує базу паролів між різними інстанціями.
- Дозволяє безпечно обмінюватися інфою.
- Шифрування: 256-бітний AES з генерацією ключів за стандартом PBKDF2.
- Двухфакторная перевірка справжності (за допомогою SMS, голосова перевірка або Google Authenticator).
- Автоматичне заповнення полів.
Keeper наполягає на включенні платного функціоналу
На відміну від LastPass і інших програм подібного класу у нього є повністю безкоштовна версія (без всяких тріалов), яка окупається тим, що не має функції синхронізації між пристроями і бекапа в хмару (причому синхронізація теж працює через хмару!). При наявності прав root обмеження легко зняти за допомогою програми DataSync, яке вміє синхронізувати дані додатків між пристроями безпосередньо, що явно набагато безпечніше хмарного методу (привіт АНБ).
Відразу після запуску Keeper запросить майстер-пароль для шифрування паролів
Паролі захищені, тепер ми повинні подумати, як вберегти від очей неугодних прості програми. В Android для цього не передбачено жодних коштів, що, в общем-то, логічно. Якщо вже смартфон твій (ну або не твій, а тільки перебуває в твоїх руках), то тобі доступні всі додатки і їх дані, без всяких додаткових прошарків безпеки. А ось щоб відрізнити свого власника від чужого, система використовує стандартний пін-код або пароль.
Сама по собі ідея пін-коду не погана і як засіб проти «залишив на десять хвилин телефон, хтось в ньому поколупався» підходить відмінно, тільки ось зручності від неї мало. Особисто я ніколи не хотів жертвувати зручністю використання смартфона і не встановлював ні пін-код, ні інші засоби блокування. Якщо ж без Піна ніяк, то пропоную хороший спосіб серйозно спростити собі життя за допомогою автоматичного відключення блокування на час перебування вдома.
Для цього можна придбати одну з платних софтин, які розповсюджуються через маркет, або скористатися всіма нами улюбленим інструментом Tasker (він теж платний, але замінить сотні додатків). Ідея полягає в тому, щоб створити правило, яке буде відключати пін-код екрану блокування після виявлення домашньої мережі Wi-Fi і включати його знову, коли смартфон виявиться поза радіусом дії мережі.
Завдання дуже проста і виглядає так (подробиці роботи з Tasker см. В попередніх випусках журналу):
Context: State -> Near WiFi -> SSID мережі Task: Secure settings -> Clear password Exit Task: Secure Settings Set Pin
Функція очищення і повторної установки пароля замість простого відключення пін-коду тут використана навмисне, так як останнім чомусь не завжди спрацьовує.
Альтернатива цьому методу - встановити пін-код на окремо взяті додатки і функції. Штатно це зробити, звичайно ж, не вдасться, а ось сторонніх додатків з подібною функціональністю в маркеті багато. Всі вони працюють за одним і тим же принципом: перехоплюють виклик програми і накладають поверх його інтерфейсу екран з проханням ввести пін-код. На сек'юріті-фичу це, звичайно, не тягне, але як спосіб закрити очей подружки на SMS і пошту цілком годиться.
Два найбільш просунутих блокіратора додатків - це AppLock і Hi App Lock, який чомусь дуже люблять на XDA. Вони мають практично ідентичну функціональність, проте перевага першого в великій кількості платних доповнень. Основний функціонал обох додатків - це можливість включити захист будь-якого встановленого додатка, однак окремо пропонується також заборонити установку, видалення і вбивство додатків, не дозволити абонентам «взяти трубку» і переглядати список недавно запущених додатків. Все це включається одним тапом на головному екрані.
налаштовуємо AppLock
В якості додаткових функцій AppLock також пропонує створити захищене сховище фотографій і відео, вибрати шкурку екрану блокування, налаштувати профілі, між якими можна перемикатися в один тап (зручна штука для швидкого включення / вимикання блокувань), зробити так, щоб розташування клавіш для введення пін коду кожного разу було випадковим (як я зрозумів, це зроблено для захисту від підглядання, чому, проте, функція не стає менш смішний), а також дозволяє приховати AppLock з меню додатків з можливістю доступу через дзвінок а певний номер або відкриття спеціальної сторінки в браузері.
Базова функціональність AppLock
В цілому програма досить іграшкове, і його дуже легко обійти, просто відключивши в настройках, але як варіант захисту від дурня згодиться, тим більше що кращого способу ще не придумано.
Після того як паролі та додатки були захищені, саме час подумати про дані. Як я вже говорив, в Android починаючи з версії 3.2 присутня система шифрування даних, заснована на Linux-технології dm-crypt, яка використовується для захисту даних на серверах рівня Enterprise. Для її включення достатньо встановити пін-код або пароль на екран блокування (Настройки -> Безпека -> Блокування екрана -> PIN-код), а потім активувати шифрування за допомогою опції «Налаштування -> Безпека -> Зашифрувати дані». Смартфон піде в перезавантаження і зашифрує всі програми і їх дані, розшифровка яких буде відбуватися при кожному вмиканні пристрою (для цього буде потрібно ввести пін-код).
З точки зору безпеки це дуже надійна система шифрування (128-бітний AES в режимі CBC і ESSIV: SHA256), однак у неї є кілька ключових недоліків. По-перше, з її допомогою вдасться зашифрувати тільки внутрішню пам'ять смартфона, а саме каталог / data. На свіжих смартфонах без карти пам'яті це не проблема, а ось якщо дані зберігаються на знімному носії, вони залишаться незахищеними.
По-друге, штатна система шифрування доступна далеко не в кожній прошивці. Причому це відноситься не тільки до деяких кастомний прошивку, але і до стокових, які йдуть разом зі смартфоном (наприклад, HTC). Ну і третє: система використовує один і той же пароль як для розблокування пристрою, так і для розшифровки даних. А це означає, що доведеться вибирати між швидкістю розблокування екрану за допомогою простого чотиризначного коду і збереженням даних, для якої потрібно складний пароль (якщо людина заволодіє твоїм смартфоном, він зможе зняти дамп пам'яті і за п'ять хвилин підібрати чотиризначний цифровий код).
Вирішити останню проблему можна за допомогою програми EncPassChanger, яке дозволяє змінити пароль шифрування даних так, щоб він відрізнявся від пароля екрану блокування. В цьому випадку можна буде залишити пароль локскрін простим, а пароль для розшифровки, який потрібен тільки під час включення смартфона, зробити восьми- або десятизначним.
Другу проблему зі зрозумілих причин ми вирішити не зможемо, а от для вирішення першої можна використовувати спеціальний додаток. У маркеті є маса софтин, що дозволяють створювати шифровані контейнери, однак більшість з них - це марна «річ у собі», яка дозволяє отримати доступ до зашифрованих даних тільки через саму себе. Я пропоную використовувати додаток Cryptonite, яке вміє як працювати в режимі «річ у собі», так і створювати шифровані каталоги, доступні всім додаткам (при наявності Android 4 і прав root).
інтерфейс Cryptonite
Cryptonite спирається на шифруючу файлову систему EncFS, яка працює за принципом «пишемо в один каталог, отримуємо зашифрований результат в іншому». Тому перед тим, як її використовувати, потрібно створити на карті пам'яті дві папки. Нехай це буде crypt іdecrypt. Далі запускаємо Cryptonite, йдемо в «Налаштування -> Mount point» і вибираємо каталогdecrypt. Він буде використаний як точка доступу до зашифрованих даних. Повертаємося назад, переходимо на вкладку LOCAL і натискаємо кнопку Create local volume. Вибираємо пункт Paranoia, далі каталог crypt. Двічі вводимо пароль. Повертаємося на вкладку LOCAL, натискаємо кнопку Mount EncFS, вибираємо каталог crypt і вводимо пароль.
Як і EncFS, Cryptonite дозволяє вибрати з чотирьох попередньо шифрування
Тепер все, що ти скопіюєш в каталог decrypt, автоматично потрапить в каталог crypt в зашифрованому вигляді. Після відключення decrypt (кнопка Unmount на вкладці LOCAL) його вміст зникне, а при підключенні знову з'явиться. Краса такого рішення в тому, що з каталогом decrypt можна працювати з будь-якої програми і підключати його тільки тоді, коли це потрібно, а не на весь час роботи смартфона, як це відбувається у випадку з стандартною системою шифрування Android.
Каталог, скопійований в decrypt в зашифрованому вигляді, виглядає так
Важко уявити собі людину, яка ніколи не втрачав смартфон і не ставав жертвою злодіїв. Це, так би мовити, вбудована «функціональність», яка йде в комплекті з будь-яким мобільним гаджетом (за винятком хіба що розумних годин, які кріпляться до тіла носія). Однак зараз, коли смартфони стрімко дешевшають, основною проблемою при втраті девайса стає сама досада від цього і необхідність витрачати гроші, а то, що зберігається на ньому інформація потрапить до чужих рук.
Сучасний смартфон зазвичай має доступ до величезної кількості сервісів, включаючи Gmail, Twitter, Facebook, Instagram, містить в собі фотографії, паролі та відеозаписи. Його втрата може бути чревата дуже серйозними наслідками, уникнути яких поки можна тільки двома загальноприйнятими заходами: з допомогою швидкого анулювання всіх паролів і токенов до веб-сервісів або використовуючи додатки класу «антизлодій».
Останніх в даний час розвелося досить багато. Якщо раніше вибір складався практично виключно з Prey і ще кількох маловідомих аналогів, то тепер антизлодій є в багатьох віруси, вбудований як один з Google-сервісів в сам Android, доступний як частина прошивки CyanogenMod і навіть у вигляді додатку Plan B, яке можна встановити і активувати вже після того, як телефон загублений (працює така функція, правда, тільки в Android 2.0-2.3).
Проблема всіх цих рішень тільки в тому, що від них дуже легко позбутися. Всі сторонні додатки злетять відразу після скидання до заводських налаштувань, від якого не врятуються навіть ті, що використовують штатну «захист від видалення» (яка і без того легко деактивується через настройки). Цей же скидання зробить марними і вбудовані функції захисту від крадіжки Android і CyanogenMod, так як прив'язка до аккаунту просто зникне. Тому я б рекомендував, як це не дивно, використовувати антивірус Avast.
Примітний він в першу чергу тим, що має в своєму складі найправильнішу з усіх бачених мною реалізацію АНТИВОР. У Avast це окреме компактне додаток, яке можна не тільки встановити і приховати зі списку додатків, але і (при наявності прав root) прописати в системний розділ, та так, що він виживе не тільки після вайп, але і після оновлення прошивки за допомогою кастомной консолі відновлення (в ньому є скрипт, який змушує консоль робити бекап АНТИВОР перед оновленням).
Фактично антизлодій можна вбити тільки двома шляхами: встановити офіційне оновлення штатними засобами виробника смартфона (OTA, fastboot або спеціальний додаток) або вирізати з розділу / system вручну. Але і це ще не все, спеціально для пристроїв з залоченним системним розділом (S-ON) в інсталятор АНТИВОР реалізований механізм автоматичної установки за допомогою перезавантаження в консоль відновлення.
В іншому функціонал АНТИВОР стандартний: відстеження положення пристрою, включення сигналізації, віддалений вайп і блокування, а також можливість управління по SMS із заздалегідь заданого довіреної номера.
Штатна функція віддаленого пошуку включається в додатку «Налаштування Google»
За допомогою описаних в статті додатків ти отримаєш смартфон, всі дані на якому будуть зашифровані, паролі та програми захищені від сторонніх очей, пароль на екрані блокування буде включений тільки тоді, коли він дійсно потрібен, а після втрати смартфона ти зможеш стерти з нього всі дані , заблокувати і відстежити його положення. Все це аж ніяк не панацея, і, як я вже говорив, що знає людина зможе отримати все, що йому потрібно, але 99% людей будуть безсилі.
А якщо самим зробити те, що Google не може?Шифрування даних?
Що ще?
Зручно?
Що заважає нам використовувати той же софт на Android-смартфоні?