Загальні відомості про сapabilitiesта сертифікати безпеки
Сертифікат - це електронний документ, що дає право програмам бути застосованими (встановленими) у середовищі Symbian OS9.х для конкретного кінцевого користувача. Документ висуває певні вимоги розробникам програмного забезпечення залежно від розвитку операційних систем та апаратних засобів Nokia, що формує стандартну умову визначення терміну використання - термін дії сертифіката. Сертифікат містить інформацію, що ідентифікує утримувача (компанію Symbian), від якого виходить сертифікат. Видається центрами сертифікації та видається компанією Symbian.
Для чого ми підписуємо додатки.
Якщо ж додаток підписано за допомогоюself-signсертифіката (називають його загальний і може бути створений користувачем самостійно), то інсталятор визначає, що цифровий підпис не походить від кореневого сертифіката, і тому такий додаток вважається ненадійним. І під час встановлення такої програми Вам буде виведено попередження про те, що ця програма отримана з ненадійного джерела, і буде запропоновано або продовжити встановлення, або скасувати. Тепер ви знаєте, що означає це повідомлення, тому можете продовжити інсталяцію програми.

Якщо ж програма не підписана, то установник, не виявивши цифрового підпису, повідомить вам про помилку в сертифікаті і запропонує звернутися до розробника програми. Встановлення буде перервано.

Таким чином, ми бачимо, що цифровий підпис показує рівень довіри для додатка, що встановлюється, і відповідно визначає набір його capabilities.
Далі ми розглянемо, як визначається набірcapabilitiesдля встановлюваного додатка і якими сертифікатами потрібно підписати їх рівеньдовіри.
Що ж таке capabilities
Кожен виконуваний файл програми (ехе) має свій набір цих можливостей (capabilities), необхідні йому для коректної роботи. Якщо додаток містить файли бібліотек (DLL), то їм також визначається свій набір можливостей (capabilities). Бібліотека - це компонент, який використовує виконуваний файл програми або системні програми, таким чином її capabilities не повинні бути обмежені, тобто. її можливостей має бути менше, ніж у виконуваного файла, який використовує в процесі своєї роботи. Простіше кажучи, набірcapabilitiesбібліотеки повинен відображати той самий рівень довіри, який буде потрібний програмам, які її використовуватимуть.
1. Self-sign сертифікат.
Називається загальним. Може бути створений користувачем самостійно. Під час встановлення програми, підписаної таким сертифікатом, відображається повідомлення про ненадійність програми. Встановлення не переривається, користувачеві пропонується або продовжити встановлення, або перервати його.
- Якщо програма не маєcapabilities, тобто. такому додатку не треба визначати набір можливостей, то такі програми можна підписувати загальним сертифікатом (self-sign). Прикладом таких додатків можуть бути файли русифікаторів, де переведені лише файли ресурсів, теми оформлення.
- Якщо програма має мінімально необхідний набір основнихcapabilities, така програма також може бути підписана загальним (self-sign) сертифікатом.
LocalServices Доступ до локальних послуг (bluetooth, IrDA). Наявність такої можливості необхідна, наприклад, передачі даних черезbluetooth або ІЧ-з'єднання. Зазвичай такі з'єднання не вимагають оплати і користувач знає про те, що ці сервіси використовуються.
NetworkServices Доступ до мережевих сервісів, таких як WLAN та GPRS. Завдяки цій можливості, програма отримує доступ до будь-яких мережевих сервісів незалежно від транспортного середовища. Можливим стає, наприклад, здійснення голосових дзвінків, встановлення з'єднань IP-мережі.
ReadUserData Доступ до читання конфіденційної інформації користувача. Завдяки цій можливості, додаток може прочитати конфіденційну інформацію користувача, наприклад - контакти. Яка інформація вважається конфіденційною, визначається лише на рівні конкретної платформи.
WriteUserData Доступ до запису конфіденційної інформації користувача. Завдяки цій можливості, програма може змінити конфіденційну інформацію користувача, наприклад - контакти. Яка інформація вважається конфіденційною, визначається лише на рівні конкретної платформи.
UserEnvironment Доступ до послуг, які надають дані з оточення користувача. Наявність такої можливості потрібна, наприклад, для запису аудіо, отримання зображень і т.д.
2. Symbian Signed сертифікат. Виданий компанією Symbian або підпис програми через On-Line сервіс. Видається під особистий IMEI користувача. До сертифіката видається відкритий ключ, за допомогою яких підписуються програми, що встановлюються. Попередження про ненадійність програми під час встановлення виникати не буде. Підписані програми можна встановлювати лише на той апарат, чий IMEI вказаний у сертифікаті.
13 Сapabilities, що входять до цього набору і можуть бути підписані власним сертифікатом (SymbianSigned):
Базовий набір Сapabilities:
LocalServices UserEnvironment NetworkServices ReadUserData WriteUserData
Розширений набір Сapabilities:
SwEvent Використання програмних подій. Надає додатку такі можливості, як читання подій клавіатури, надсилання подій іншим додаткам і т.д.
ProtServ Дозволяє серверам реєструватися із захищеними іменами. Захищені імена починаються з "!" (Знак оклику). Ядро ОС не дозволяє процесам без ProtServ використовувати подібні імена, забезпечуючи захист таких процесів від використання таких імен іншими серверами.
ReadDeviceData Доступ до читання конфіденційних даних пристрою та мережі. Ця можливість надає доступ до API, за допомогою якого можна отримати інформацію про поточну мережу (наприклад: Cell IDs), про пристрій, що використовується (IMEI), про параметри пристрою (список встановлених програм і т.д.).
TrustedUI Можливості на рівні платформи. Надає право на створення надійних UI сесії, і, отже, для відображення діалогових вікон у безпечному середовищі UI.
3. Symbian Signed Publisher ID сертифікат.
Виданий компанією Symbian (Хоча ми отримуємо такі сертифікати на китайських сайтах). Видається під особистий IMEI користувача, але містить у собі 1000 IMEI, тобто. цим же сертифікатом можуть підписувати свої програми 1000 користувачів, під чий IMEI зроблено сертифікат. До сертифіката видається відкритий ключ, за допомогою яких підписується додаток, що встановлюється. Попередження про ненадійність програми під час встановлення виникати не буде. Підписані програми таким чином можна встановлювати лише на той апарат, чий IMEIвказано у сертифікаті.
Цей сертифікат має чотири додаткові можливості досapabilities(разом: 17 сapabilities), що входять до набору і можуть бути підписані особистим сертифікатом (Symbian Signed Publisher ID)
Базовий набір Сapabilities:LocalServices UserEnvironment NetworkServices ReadUserData WriteUserData
Розширений набір сapabilities Symbian Signed:Location SwEvent SurroundingDD ProtServ PowerMgmt ReadDeviceData WriteDeviceData TrustedUI
NetworkControl Доступ та контроль мережевих протоколів NetworkControl capability дозволяє змінити стан поточних з'єднань, а також встановити параметри, необхідні для встановлення нових з'єднань. Прикладами таких дій є зміна пріоритету виклику або примусове закриття певних з'єднань.
CommDD Прямий доступ до драйверів всього комунікаційного обладнання. Сюди входять, наприклад: Wi-Fi, USB, послідовний порт.
DiskAdmin Адміністрація дисків. DiskAdmin capability надає можливості, за допомогою яких можна маніпулювати відразу безліччю папок або каталогів (а також цілісністю, поведінкою всієї файлової системи). Такими операціями є, наприклад: монтування/демонтування партій дисків.
4. Сертифікат leftup. Доступ до всіх можливостей (All Сapabilities)
Додаток, підписаний таким сертифікатом, отримує доступ до додаткових можливостей (Сapabilities), дозволених на рівні платформи або виробника пристроїв.20 Сapabilities
Базовий набір Сapabilities:LocalServices UserEnvironment NetworkServices ReadUserData WriteUserData
Розширений набір сapabilities Symbian Signed:Location SwEvent SurroundingDD ProtServ PowerMgmt ReadDeviceData WriteDeviceData TrustedUI
Розширений набір сapabilities Symbian Signed Publisher ID:NetworkControl MultimediaDD CommDD DiskAdmin
TCB Доступ на запис до ресурсів, що виконуються і розділяються, які позначені як "тільки для читання". Надає доступ до запису до папок\sys та \resource.TCB capabilityє найбільш критичною можливістю, так як з її допомогою можна змінити додатки, що виконуються, які визначають параметри безпеки процесів.
Давайте розглянемо які можливості (capabilites) має програму Xplore.

Додаток підписано розробником та має базовий набір можливостей:LocalServices, NetworkServices, ReadUserData, WriteUserData

Додамо додатку XplorecapabilityAllfiles. Цим ми додамо програмі доступ на читання всієї файлової системи, доступ на запис до приватних папок інших процесів.



Ми отримуємо повідомлення про помилку: Не надано необхідних прав доступу. Таким чином, стає зрозуміло, що установник перевіривши цифровий підпис, переконався, що сертифкат походить від кореневого, але далі робить перевірку на права доступу додатка. А можливості Allfiles не відповідає рівню доступу, який дозволено додатку під час підпису особистим сертифікатом.
Тому цю програму Xplore Allfiles можна встановити тільки, якщо її підписати сертифікатом leftup. Цей сертифікат дозволяє інсталювати програму з будь-якими Сapabilites.