Съдържание:
- Разрешения - предварително и лично в Android Market
- Приложения извън Android Market
- От страна на разработчиците … и как потребителите трябва да свършат своята роля
- И едно последно нещо …
Напоследък има много новини за пропуск в сигурността или преценката - и двете наистина - в Apple, която позволява на iOS приложенията да заемат вашите данни за контакт и да ги изпращат до неизвестни части без вашето съгласие. Apple адресира проблема пред членовете на Конгреса на САЩ и ще предприеме стъпки за по-строг контрол при бъдеща актуализация на iOS. Това е добра новина и се радваме да видим как се случва.
Но какво да кажем за Android? По време на целия този фокус върху приложения, които правят неща без изрично разрешение от потребителя, виждате хора, които се отнасят към модела на разрешения за Android. Ще разбием всичко за вас. Не е перфектен, но работи доста добре - и със сигурност е по-добър, отколкото изобщо няма разрешителна система.
Нека да ви преведе през разрешенията за Android и как трябва да сте сигурни, че сте част от тях.
По дизайн никое приложение за Android няма разрешение за извършване на операция, която "би повлияла неблагоприятно на други приложения, операционната система или потребителя." За да може приложението да има достъп до неща като лични данни за контакт, данни на друго приложение, достъп до мрежата или дори нещо толкова неприлично като записване на собствените му данни в устройството за съхранение, приложението трябва да декларира, че ще има разрешения за това и след това трябва да приемете това разрешение, преди да можете да инсталирате приложението. Когато инсталирате приложение, ви се представя списък с разрешения, които приложението декларира.
И имайте предвид, че казваме, че приложенията „декларират“ разрешения, а не непременно „искат“. Предполагаме, че семантика, но няма кутия, в която пише "Хей, Джери! Аз съм приложение и бих се радвал да ми позволиш да разгледам твоята информация за контакт. Това добре?" Вместо това приложенията за Android са по-директни, като казват "Йо, Джери. Аз съм приложение. Ето списък на това, което мога да направя, просто така знаете. Вземете го или го оставете."
Приложенията за Android декларират до кои разрешения имат достъп и по този начин до пясъчните кутии могат да играят. И можете или да изберете да ги приемете и да инсталирате приложението, или не. Има смисъл?
Разрешения - предварително и лично в Android Market
Ето как изглежда, ако инсталирате, да речем, Path. Получавате макро списък на разрешения, които Path декларира. Докоснете едно и то обяснява това разрешение с малко по-големи подробности.
Така изглежда, ако инсталирате някое приложение от Android Market. Ще трябва да преминете през списъка, за да ги видите всички. Малко пъти надолу е този, който има Path (и други) във всякакви проблеми на iOS. В неговата Android форма можете ясно да видите, че Path декларира разрешението за „Вашите лични данни - прочетете данни за контакт“. Докоснете това разрешение и ще получите повече подробности:
„Разрешава на приложението да чете всички данни за контакт (адрес), съхранявани на вашия телефон. Зловредните приложения могат да използват това за изпращане на вашите данни до други хора.“
Така че Path ви каза, че има достъп до вашите данни за контакт. Не е задължително да ви казва какво ще прави с него (ако не бяхме просто го изведохме, наистина бихте искали да знаете?), Но наистина ви казва, че може да го прочете.
Приложения извън Android Market
Но какво ще стане, ако заредите приложение? Или да използвате Amazon Appstore? Предполага се, че приложенията декларират кои разрешения използват, а вие виждате този списък с разрешения, когато инсталирате приложението. (Не забравяйте, че Amazon Appstore странични приложения, така че това, което виждате, е абсолютно същото, както ако инсталирате приложение от имейл или изтеглите.)
Ето как би изглеждал страничното зареждане на Gmail. Единствената истинска разлика между страничното зареждане и инсталирането от Android Market, доколкото разрешенията отиват, е, че при странично зареждане не получавате по-подробни описания на разрешенията.
Защо всичко това? Приложенията за Android са „пясъчни“ - те играят в собственото си пространство и имат свои собствени файлове с данни в тази пясъчна кутия. Те могат да споделят игра само в нечий друг пясъчник, след като изрично поискат разрешение, и това става чрез екраните, които виждате по-горе. Когато приемете тези разрешения и инсталирате приложението, вие му давате разрешение да играе в пясъчните кутии, за които приложението казва, че иска да играе.
От страна на разработчиците … и как потребителите трябва да свършат своята роля
Зад кулисите, разработчиците на приложения декларират тези разрешения във файла AndroidManifest.xml, който е задължителна част от изходния код за приложение за Android. Тези декларации са статични и всяка една от тях се представя на потребителя, както видяхме по-горе. Android няма начин да предоставя разрешения динамично по време на изпълнение, тъй като според разработчиците на операционната система Android „това усложнява потребителското изживяване в ущърб на сигурността“. Принуждаване на приложение да ви каже какво иска да прави, предварително и никога да не може да се променя - това е най-добрият модел за сигурност.
Страната на обръщането? Освен това потребителите са най-лесни за игнориране.
Знаем всичко за случилото се с Path на iOS. Подобно на много други приложения за iOS, той използва контакта без разрешение. Не за коварни цели, но въпреки това, без предварително разрешение и без да питате по-късно. Path за Android изпращаше всякакви данни до сървърите си, точно както се прави на iOS. Но както показахме в тази публикация, в Android, Path първо трябва да декларира разрешението. Или по-точно, той декларира разрешение, а вие или го приемате или отхвърляте.
Проблемът е, когато инсталирате приложение, най-вероятно ще преминете веднага след секцията с разрешения. Наистина не би трябвало, но всички го правим. Фактът, че разрешенията не са написани на обикновен език, е част от проблема. Но дори и да бяха, повечето от нас така или иначе щракнаха право. Така е на всяка платформа. От друга страна, има и такива, които се чудят над разрешенията, защото не ги разбират. Отново тук ще помогне по-удобният за употреба език.
Една от алтернативите на това е приложението да поиска разрешения по време на изпълнение, когато иска да направи нещо, което не може да направи нормално. Вече прочетохме, че екипът на Android смята, че това е неудобно и несигурно, така че няма вероятност да се случи.
Друга алтернатива е да се разрешат избрани разрешения, подобно на RIM с BlackBerry. В крайна сметка с приложения, които работят само наполовина, защото сте отказали разрешения, също като BlackBerry. Няма реален метод за защита от глупости, освен да го прочетете всичко, когато инсталирате това приложение и се опитвате да разберете какво иска да направи и защо го пита.
Точно там влизаме всички. Някои от нас разбират разрешенията за приложение повече от други и когато приложението прави нещо, което не би трябвало да прави, чувате извикването. Прочетете разрешенията. Прочетете коментарите на пазара. Прочетете Android Central. Когато нещо се обърка, ще чуете за това.
И едно последно нещо …
Тук трябва да се обърне специално внимание относно уязвимостите в сигурността. Всяка компютърна програма - а това означава и всяка мобилна операционна система - е пълна с тях. Когато се намери уязвимост, която позволява на приложение да заобиколи защитния модел, Google ще го закърпи бързо. Това се случва и винаги ще се случва. Колко бързо тази актуализация ще бъде разгърната към вас, зависи от хората, които правят телефона ви. Те заслужават заслугата, когато го правят по правилния начин, и презрението, когато отнемат твърде много време и го правят погрешно. Това не е нещо, което ще изчезне скоро и ние сме там с вас, за да извикаме OEM, който не поддържа нещата толкова безопасни и сигурни, колкото трябва да бъдат.
Ако искате да се потопите още по-дълбоко в разрешенията за Android, разгледайте страницата за програмисти на Google в тях.