Забезпечення конфіденційності та цілісності інформації на основі легковісної криптографії

Додаток для операційної системи Android, призначений для забезпечення конфіденційності. Робота з текстовими файлами та захист інформації за допомогою легковісного криптоалгоритму. Мова об’єктно-орієнтованого програмування Java, візуалізація.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.11.2015
Размер файла 904,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСІТЕТ УКРАЇНИ

"кИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ"

Факультет інформатики та обчислювальної техніки

Кафедра обчислювальної техніки

Дипломний проект

Освітньо-кваліфікаційного рівня "бакалавр"

З напряму підготовки (спеціальності) 6.050103 "Програмна інженерія"

На тему " Забезпечення конфіденційності та цілісності інформації на основі легковісної криптографії "

Виконав

Гоц Олексій Петрович

Київ

2015

Анотація

В даній бакалаврській дипломній роботі розроблено додаток для операційної системи Android, призначений для забезпечення конфіденційності та цілісності персональних даних на основі легковісної криптографії. android криптоалгоритм java конфіденційність

Програма дозволяє працювати з текстовими файлами, при цьому забезпечує захист персональної інформації за допомогою легковісного криптоалгоритму. Для реалізації програмного продукту обрано мову об'єктно-орієнтованого програмування Java та середовище розробки Android Studio з інтегрованим пакетом бібліотек Android SDK.

Для візуалізації, вводу та виводу даних використовуються можливості Android SDK.

Аннотация

В данной бакалаврской дипломной работе разработано приложение для операционной системы Android, предназначенное для обеспечения конфиденциальности и целостности персональных данных на основе легковесной криптографии.

Программа позволяет работать с текстовыми файлами, при этом обеспечивает защиту персональной информации с помощью легковесного криптоалгоритма. Для реализации программного продукта выбран язык объектно-ориентированного программирования Java и среда разработки Android Studio с интегрированным пакетом библиотек Android SDK.

Для визуализации, ввода и вывода данных используются возможности Android SDK.

Annotation

In this Bachelor's Degree project, an application for Android OS designed for

confidentiality and integrity of personal data on the basis of lightweight cryptography was implemented.

Application enables user to work with text files, with protection of personal information using lightweight cryptographic algorithm. Java object-oriented programming language and Android Studio IDE with integrated Android SDK were used for implementation of the project.

Android SDK handles visualization, data input and output.

Зміст

  • Список скорочень
  • Вступ
  • Розділ 1. Огляд засобів забезпечення захисту персональної інформації
    • 1.1 Основні поняття захисту персональної інформації
    • 1.2 Криптографія для забезпечення конфіденційності інформації
    • 1.3 Хешування для забезпечення цілісності інформації
    • 1.4 Огляд засобів забезпечення конфіденційності та цілісності інформації на мобільних пристроях
    • Висновки до розділу
    • Розділ 2. Аналіз та вибір технологій для розробки додатку для мобільної платформи
    • 2.1 Огляд мобільних програмних платформ
    • 2.2 Особливості технологій розробки додатків для Android та вибір середовища розробки
    • 2.3 Реляційні бази даних для Android
    • Висновки до розділу
  • Розділ 3. Розробка програмного продукту
    • 3.1 Засоби розробки
    • 3.2 Архітектура програмного забезпечення
    • 3.3 Реалізація криптоалгоритму Curupira
    • 3.4 Налаштування баз даних SQLite
    • Висновки до розділу
  • Розділ 4. Тестування програмного продукту
    • 4.1 Інструкція користувача
    • 4.2 Тестування роботи додатку
    • 4.3 Тестування криптоалгоритму Curupira
    • Висновки до розділу
  • Розділ 5. Охорона праці
    • 5.1 Аналіз небезпечних та шкідливих чинників при виконанні роботи
    • 5.2 Аналіз електробезпеки
    • 5.3 Аналіз пожежної безпеки
    • 5.4 Загальна інструкція з техніки безпеки
    • Висновки до розділу
  • Висновки
  • Література

Додаток 1

Додаток 2

Список скорочень

ADT (Android Development Tools) Засоби розробки для Android

AES (Advanced Encryption Standard) Стандарт шифрування США

API (Application Programming Interface) Програмний інтерфейс

AR (Active Record) Паттерн доступу до даних в реляційних базах даних

AVD (Android Virtual Device) Віртуальний пристрій

DB (Database) База даних

MDM (Mobile Device Management) Управління мобільними пристроями

NDK (Native Development Kit) Нативний набір розробника

ORM (Object Relational Mapping) Об'єктно-реляційне відображення

SDK (Software Development Kit) Набір розробника

SQL (System Query Language) Мова системних запитів

UI (User Interface) Інтерфейс користувача

XML (Extensible Markup Language) Розширювана мова розмітки

ЕОМ Електронна обчислювальна машина

ОП Оперативна пам'ять

ОС Операційна система

  • Вступ
  • Сьогодні мобільні пристрої стають невід'ємною частиною нашого повсякденного життя. Кількість персональних даних, які зазвичай зберігаються на них, постійно зростає і питання безпеки таких даних набуває все більшої актуальності. На відміну від традиційних комп'ютерів, мобільні пристрої легко можуть бути викрадені або просто втрачені. Після чого всі персональні дані (паролі, номери кредитних карт, адреси і т.д.) та інші інформаційні ресурси будуть повністю доступні особі, в чиї руки потрапить мобільний пристрій.
  • Шифрування персональної інформації є однією із найважливіших ланок у питанні безпеки даних. Звичайні криптографічні алгоритми використовуються на спеціальних апаратних пристроях або настільних комп'ютерах. Мобільні ж пристрої мають обмежені фізичні ресурси і вимагають, для використання в них криптографічного захисту, застосування інших алгоритмів, які б використовували менше пам'яті, були швидшими і ефективніше використовували енергетичний запас пристрою.
  • Легковісна криптографія є ідеальним рішенням для досягнення компромісу між низькою потребою в ресурсах, продуктивністю і криптографічною надійністю.
  • Тема диплому є досить актуальною, адже будь-яка інформація повинна бути доступною тільки тим, кому вона призначена, і прихована від сторонніх осіб. Несанкціоноване використання персональних даних, їх тимчасова недоступність або пошкодження можуть завдати компанії або ж приватній особі значних матеріальних збитків.
  • Надійний захист інформаційних ресурсів підвищує ефективність всього процесу інформатизації, гарантуючи безпеку цінної ділової та персональної інформації, що циркулює в локальних і глобальних інформаційних середовищах.
  • Розділ 1. Огляд засобів забезпечення захисту персональної інформації
    • 1.1 Основні поняття захисту персональної інформації
    • Під інформаційною безпекою розуміється захищеність інформації від будь-яких випадкових або зловмисних дій, результатом яких може виявитися нанесення збитку самій інформації, її власникам або підтримуючій інфраструктурі. Завдання інформаційної безпеки зводяться до мінімізації збитку, а також до прогнозування і запобігання таких впливів.
    • Параметри інформаційних систем, які потребують захисту, можна розділити на такі категорії: забезпечення цілісності, доступності та конфіденційності інформаційних ресурсів.

· доступність - це можливість отримання за короткий проміжок часу необхідної інформаційної послуги;

· цілісність - це актуальність і несуперечність інформації, її захищеність від пошкоджень і несанкціонованих змін;

· конфіденційність - захист від несанкціонованого доступу до інформації.

Інформаційні системи, насамперед, створюються для отримання певних інформаційних послуг. Якщо отримання інформації з будь-яких причин стає неможливим, це приносить шкоду всім суб'єктам інформаційних відносин. З цього можна визначити, що доступність інформації стоїть на першому місці.

Цілісність є основним аспектом інформаційної безпеки тоді, коли точність і достовірність будуть головними параметрами інформації. Наприклад, рецепти медичних ліків або набір і характеристики комплектуючих виробів.

Найбільш пропрацьованою складовою інформаційної безпеки в нашій країні є конфіденційність. Але на шляху користувальницької криптографії як основного засобу забезпечення конфіденційності стоять численні законодавчі перешкоди та технічні проблеми [1].

Захист інформації - це діяльність спрямована на запобігання витоку інформації, що захищається, несанкціонованих і ненавмисних дій щодо неї.

Відповідно до властивостей інформації, виділяють такі загрози її безпеці:

· загрози цілісності:

o знищення;

o модифікація;

· загрози доступності:

o блокування;

o знищення;

· загрози конфіденційності:

o несанкціонований доступ;

o витік;

o розголошення [2].

Легковісна криптографія є одним із методів для уникнення таких загроз на пристроях із обмеженими фізичними ресурсами.

Широке застосування комп'ютерних технологій в автоматизованих системах обробки інформації та управління призвело до загострення проблеми захисту інформації, що циркулює в комп'ютерних системах, від несанкціонованого доступу. Захист інформації в комп'ютерних системах має ряд специфічних особливостей, пов'язаних з тим, що інформація не є жорстко пов'язаною з носієм, може легко і швидко копіюватися і передаватися по каналах зв'язку. Відоме дуже велике число загроз інформації, які можуть бути реалізовані як з боку зовнішніх зловмисників, так і з боку внутрішніх.

Найоптимальніше вирішення проблем захисту електронної інформації може бути отримано тільки на базі використання криптографічних методів, які дозволяють вирішувати найважливіші проблеми захищеної автоматизованої обробки та передачі даних. При цьому сучасні швидкісні методи криптографічного перетворення дозволяють зберегти вихідну продуктивність автоматизованих систем. Криптографічні перетворення даних є найбільш ефективним засобом забезпечення конфіденційності даних, їх цілісності та автентичності. Тільки їх використання в сукупності з необхідними технічними та організаційними заходами можуть забезпечити захист від широкого спектру потенційних загроз.

Проблеми, що виникають з безпекою передачі інформації при роботі в комп'ютерних мережах, можна розділити на три основні типи:

· Перехоплення інформації - цілісність інформації зберігається, але її конфіденційність порушена;

· Модифікація інформації - вихідне повідомлення змінюється або повністю підміняється іншим і відсилається адресату;

· Підміна авторства інформації. Дана проблема може мати серйозні наслідки. Наприклад, хтось може послати лист від вашого імені (цей вид обману прийнято називати Спуфінга) або Web - сервер може прикидатися електронним магазином, приймати замовлення, номери кредитних карт, але не висилати ніяких товарів [3].

Потреби сучасної практичної інформатики призвели до виникнення нетрадиційних завдань захисту електронної інформації, однією з яких є автентифікація електронної інформації в умовах, коли обмінюються інформацією сторони, які не довіряють один одному. Ця проблема пов'язана із створенням систем електронного цифрового підпису.

Технічною основою переходу в інформаційне суспільство є сучасні мікроелектронні технології, які забезпечують безперервне зростання якості засобів обчислювальної техніки і служать базою для збереження основних тенденцій її розвитку - мініатюризації, зниження електроспоживання, збільшення обсягу оперативної пам'яті (ОП) і ємності вбудованих і знімних накопичувачів, зростання продуктивності і надійності, розширення сфер і масштабів застосування. Дані тенденції розвитку засобів обчислювальної техніки призвели до того, що на сучасному етапі захист комп'ютерних систем від несанкціонованого доступу характеризується зростанням ролі програмних і криптографічних механізмів захисту в порівнянні з апаратними.

Зростання ролі програмних і криптографічних засобів проявляється в тому, що виникають нові проблеми в галузі захисту обчислювальних систем від несанкціонованого доступу, що вимагають використання механізмів і протоколів з порівняно високою обчислювальною складністю і можуть бути ефективно вирішені шляхом використання ресурсів ЕОМ.

  • 1.2 Криптографія для забезпечення конфіденційності інформації
    • Серед всього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи.
    • Криптографічний захист інформації - вид захисту інформації, що реалізується шляхом перетворення інформації з використанням спеціальних (ключових) даних з метою приховування/відновлення змісту інформації, підтвердження її справжності, цілісності, авторства тощо [4].
    • Тривалий час під криптографією розумілось лише шифрування -- процес перетворення звичайної інформації (відкритого тексту) в незрозуміле "сміття" (тобто, шифротекст). Розшифрування -- це обернений процес відтворення інформації із шифротексту. Шифром називається пара алгоритмів шифрування/розшифрування. Дія шифру керується як алгоритмами, та і в кожному випадку ключем.
    • Ключ -- це секретний параметр (в ідеалі, відомий лише двом сторонам) для окремого контексту під час передачі повідомлення. Ключі мають велику важливість, оскільки без змінних ключів алгоритми шифрування легко зламуються і непридатні для використання в більшості випадків. Історично склалось так, що шифри часто використовуються для шифрування та дешифрування, без виконання додаткових процедур, таких як автентифікація або перевірка цілісності [5].
    • До нашого часу криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) -- перетворенням повідомлень із зрозумілої форми в незрозумілу і зворотнє відновлення на стороні одержувача, роблячи його неможливим для прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для розшифрування повідомлення). В останні десятиліття сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (автентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо.

Класифікація криптоалгоритмів

Симетричні криптоалгоритми

Симетричні криптосистеми - спосіб шифрування, в якому для шифрування і дешифрування застосовується один і той же криптографічний ключ. До винаходу схеми асиметричного шифрування єдиним існуючим способом було симетричне шифрування. Ключ алгоритму повинен зберігатися в секреті обома сторонами [6].

Симетричні криптоалгоритми виконують перетворення невеликого (1 біт або 32-128 біт) блоку даних в залежності від ключа таким чином, що прочитати оригінал повідомлення можна тільки знаючи цей секретний ключ.

Потокові шифри

Головною відмінною рисою потокових шифрів є побітна обробка інформації. Як наслідок, шифрування і дешифрування в таких схемах може обриватися в довільний момент часу, як тільки з'ясовується, що потік що передається перервався, і також відновлюється при виявленні факту продовження передачі. Подібна обробка інформації може бути представлена у вигляді автомата, який на кожному своєму такті:

· генерує за будь-яким законом один біт шифрувальної послідовності;

· яким-небудь оборотним перетворенням накладає на один біт відкритого потоку даний шифрувальний біт, отримуючи зашифрований біт.

Всі сучасні потокові шифри діють за даною схемою. Біт шифрування, що виникає на кожному новому кроці автомата, як втім і цілий набір таких біт, прийнято позначати символом г (гамма), а самі потокові шифри отримали через це друга назва - шифри гамування.

Шифри гамування набагато швидші за своїх найближчих конкурентів - блокових шифрів - у тому випадку, якщо потокове шифрування реалізується апаратно.

Ключ є необхідною частиною гаммуючого шифру. Якщо ключ і схема породження гами не є секретним, то поточний шифр перетворюється на звичайний перетворювач-кодер - скремблер (від англ. Scramble - перемішувати, збивати).

Блочні шифри

На сьогоднішній день розроблено досить багато стійких блокових шифрів. Практично всі алгоритми використовують для перетворень певний набір бієктивних (оборотних) математичних перетворень [7].

Характерною особливістю блокових криптоалгоритмів є той факт, що в ході своєї роботи вони виробляють перетворення блоку вхідної інформації фіксованої довжини і отримують результуючий блок того ж обсягу, але недоступний для прочитання стороннім особам, що не володіють ключем.

Блочні шифри є основою, на якій реалізовані практично всі криптосистеми. Методика створення ланцюжків із зашифрованих блочними алгоритмами байт дозволяє шифрувати ними пакети інформації необмеженої довжини. Таку властивість блокових шифрів, як швидкість роботи, використовується асиметричними криптоалгоритмами, повільними за своєю природою. Відсутність статистичної кореляції між бітами вихідного потоку блочного шифру використовується для обчислення контрольних сум пакетів даних і в хешуванні паролів.

Архівація

Архівація (стиснення даних) - це процес подання інформації в іншому вигляді (перекодування) з потенційним зменшенням обсягу, необхідного для її зберігання. Існує безліч класів різних алгоритмів стиснення даних, кожен з яких орієнтований на свою область застосування.

Всі алгоритми стиснення даних якісно діляться на:

· алгоритми стиснення без втрат, при використанні яких дані на виході відновлюються без найменших змін.

· алгоритми стиснення з втратами, які видаляють з потоку даних інформацію, незначно впливає на суть даних, або взагалі не сприймається людиною (такі алгоритми зараз розроблені тільки для аудіо, відео та зображень). У криптосистемах, звичайно, використовується тільки перша група алгоритмів.

Хешування паролів

Для того, щоб не змушувати людину запам'ятовувати ключ - довгу послідовність цифр, були розроблені методи перетворення рядка символів будь-якої довжини (так званого пароля) в блок байт заздалегідь заданого розміру (ключ). На алгоритми, що використовуються в цих методах, накладаються вимоги, які можна порівняти з вимогами самих криптоалгоритмів.

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

Асиметричні криптоалгоритми

Асиметричні алгоритми шифрування - алгоритми шифрування, які використовують різні ключі для шифрування та розшифрування даних.

Головне досягнення асиметричного шифрування в тому, що воно дозволяє людям, що не мають існуючої домовленості про безпеку, обмінюватися секретними повідомленнями. Необхідність відправникові й одержувачеві погоджувати таємний ключ по спеціальному захищеному каналі цілком відпала.

Алгоритм RSA

Алгоритми RSA є класикою асиметричної криптографії. У ньому в якості необоротного перетворення відправки використовується зведення цілих чисел у великі ступеня за модулем.

Першим етапом будь-якого асиметричного алгоритму є створення пари ключів: відкритого та закритого, та поширення відкритого ключа "по всьому світу".

Насправді операції зведення в ступінь великих чисел досить трудомісткі для сучасних процесорів, навіть якщо вони проводяться за оптимізованими за часом алгоритмами. Тому зазвичай весь текст повідомлення кодується звичайним блоковим шифром (набагато більш швидким), але з використанням ключа сеансу, а от сам ключ сеансу шифрується якраз асиметричним алгоритмом за допомогою відкритого ключа одержувача і поміщається в початок файлу.

Електронний цифровий підпис

Як виявилося, теорія асиметричного шифрування дозволяє дуже красиво вирішувати ще одну проблему інформаційної безпеки - перевірку справжності автора повідомлення. Для вирішення цієї проблеми за допомогою симетричної криптографії була розроблена дуже трудомістка і складна схема. У той же час за допомогою, наприклад, того ж алгоритму RSA створити алгоритм перевірки дійсності автора та незмінності повідомлення надзвичайно просто.

Порівняння симетричних криптосистем з асиметричними

В основному, симетричні алгоритми шифрування вимагають менше обчислень, ніж асиметричні. На практиці, це означає, що якісні асиметричні алгоритми в сотні або в тисячі разів повільніші за якісні симетричні алгоритми. Недоліком симетричних алгоритмів є необхідність мати секретний ключ з обох боків передачі інформації. Так як ключі є предметом можливого перехоплення, їх необхідно часто змінювати та передавати по безпечних каналах передачі інформації під час розповсюдження.

Переваги симетричних криптосистем:

· Швидкість (за даними Applied Cryptography - на 3 порядки вище);

· Простота реалізації (за рахунок більш простих операцій);

· Менша необхідна довжина ключа для порівнянної стійкості;

· Вивченість (за рахунок більшого віку).

Недоліки симетричних криптосистем:

· Складність управління ключами у великій мережі. Це означає квадратичне зростання числа пар ключів, які треба генерувати, передавати, зберігати і знищувати в мережі. Для мережі в 10 абонентів потрібно 45 ключів, для 100 вже 4950, для 1000 - 499500 і т. д.

· Складність обміну ключами. Для застосування необхідно вирішити проблему надійної передачі ключів кожному абоненту, тому що потрібен секретний канал для передачі кожного ключа сторонам [8].

Огляд сучасних легковісних криптоалгоритмів

До легковісної криптографії відносяться алгоритми, що розробляються спеціально для пристроїв з обмеженими або вкрай обмеженими обчислювальними ресурсами. В принципі критерії, за якими той чи інший криптографічний алгоритм можна віднести до полегшеної криптографії, досить розмиті. Проте загальні властивості таких алгоритмів - наднизькі вимоги до ресурсів того пристрою, на якому передбачається їх використовувати.

Алгоритм KATAN

KATAN - сімейство алгоритмів шифрування KATAN32, KATAN48, KATAN64. Число в назві алгоритму позначає розмір блоку шифрованих даних в бітах. Всі алгоритми використовують 80-бітовий ключ шифрування.

Будь-який з алгоритмів KATAN завантажує шифрований блок даних в два зсувних регістра, що утворюють внутрішній стан алгоритму (тобто якесь проміжне значення, залежне від блоку даних і ключа шифрування; саме воно і обробляється алгоритмом в процесі шифрування). Шифрування складається з 254 раундів, в кожному з яких використовуються нелінійні функції, що формують зворотний зв'язок регістрів [9].

Алгоритм PRESENT

Алгоритм PRESENT виконує 31 раунд перетворень. Розмір блоку даних - 64 біта. Підтримуються ключі розміром 80 і 128 бітів.

Кожен раунд шифрування складається з трьох рівнів (рис. 1.1):

· рівень накладення фрагмента ключа операцією XOR;

· рівень розсіюючих перетворень, де виконується паралельна заміна 4-бітових фрагментів стану за допомогою ідентичних таблиць замін S;

· рівень перемішуючих перетворень, що здійснює бітову перестановку аналогічно колишньому стандарту шифрування DES.

Рис. 1.1. Раунд шифрування алгоритму Present.

Алгоритм Hummingbird

Алгоритм Hummingbird шифрує дані 16-бітовими блоками з використанням 256-бітового ключа. В основу цього алгоритму покладено оригінальну гібридну архітектура. Процедура шифрування може бути представлена ??у вигляді безперервної роботи роторної машини, де в ролі чотирьох віртуальних роторів виступають чотири алгоритму шифрування, що виконують операції над короткими 16-бітовими блоками даних. Основними компонентами алгоритму є:

· перетворення, що представляє собою "внутрішній" 16-бітовий алгоритм шифрування; він виконує чотири раунди перетворень, в кожному з них здійснюються накладення ключа, таблична заміна і бітова перестановка;

· чотири регістри внутрішнього стану;

· додатковий 16-розрядний зсувний регістр з лінійною зворотним зв'язком.

В алгоритмі активно використовуються операції додавання по модулю 216, за допомогою яких значення регістрів стану накладаються на блоки шифрованих даних. Фактично високорівневу структуру алгоритму можна представити як чотирьохраундовий шифр з різними операціями зворотного зв'язку [9].

Алгоритм Curupira

Одним з авторів алгоритму Curupira є Вінсент Ріджмен (Vincent Rijmen), який входить до числа творців AES, сучасного стандарту шифрування США. Curupira дещо схожий на AES, тільки в ньому використовуються більш прості операції, а також у нього менший внутрішній стан, розмір якого всього 96 біт, а не 128 бітів, як у алгоритму AES.

Curupira шифрує дані 96-бітовими блоками з використанням ключа одного з наступних фіксованих розмірів: 96, 144 і 192 біта. Блок даних представляється у вигляді байтового масиву розміром 3 X 4 (це і є внутрішній стан алгоритму), над яким у кожному раунді виконується наступна послідовність операцій:

· таблична заміна кожного байту стану(рис. 1.2);

· байтова перестановка в межах рядків масиву стану;

· розсіююче перетворення, що виконується шляхом множення фіксованої матриці на стан алгоритму;

· накладення операцією XOR ключа шифрування на стан певного

фрагмента.

Кількість раундів алгоритму не є строго визначеною. Для кожного розміру ключа передбачено мінімальне і максимальне число раундів: від 10 для 96-бітового ключа до 23 для 192-бітового. Перед першим раундом на блок даних операцією XOR накладається перший фрагмент ключа, а в останньому раунді не виконується розсіююче перетворення [9].

Рис 1.2. Приклад табличної заміни кожного байту.

Для більш наочного представлення вище викладеної інформації побудуємо порівняльну таблицю для легковісних криптографічних алгоритмів.

Легковісні криптоалгоритми. Табл. 1.1

Назва алгоритму

Розмір блоку

Розмір ключа

Кількість раундів

1. Katan

32, 48, 64

80

254

2. Present

64

80, 128

31

3. Hummingbird

16

256

4

4. Curupira

96

96, 144, 192

10-23

Із наведеної вище статистики можна зробити висновок, що алгоритм Curupira має найбільш широкий вибір конфігурацій, і він є одним із найскладніших із легковісних алгоритмів. Тому в додатку буде використаний саме він.

  • 1.3 Хешування для забезпечення цілісності інформації
    • Хешування (іноді гешування, англ. hashing) -- перетворення вхідного масиву даних довільної довжини у вихідний бітовий рядок фіксованої довжини.
    • Хешування застосовується для побудови асоціативних масивів, пошуку дублікатів в серіях наборів даних, побудови унікальних ідентифікаторів для наборів даних, контрольного підсумовування з метою виявлення випадкових або навмисних помилок при зберіганні або передачі [10].
    • Існує безліч алгоритмів хешування з різними властивостями (розрядність, обчислювальна складність, криптостійкість тощо). Вибір тієї чи іншої хеш-функції визначається специфікою розв'язуваної задачі. Розглянемо найпопулярніші з них.
    • MD5
    • MD5 (англ. Message Digest 5) - 128-бітний алгоритм хешування, призначений для створення "відбитків" або дайджестів повідомлення довільної довжини і подальшої перевірки їх автентичності.
    • На вхід алгоритму надходить вхідний потік даних, хеш якого необхідно знайти. Довжина повідомлення може бути будь-якою (у тому числі нульовою). Вона повинна бути числом цілим і невід'ємним. Кратність яким-небудь числам необов'язкова. Після надходження даних йде процес підготовки потоку до обчислень.
    • Кроки алгоритму:

1) Вирівнювання потоку. Вхідні дані вирівнюються так, щоб їх новий розмір L був урівнений з 448 по модулю 512.

2) Додавання довжини повідомлення. В 64 біта, що залишились дописується 64-бітове представлення довжини даних (кількість біт в повідомленні) до вирівнювання.

3) Ініціалізація буферу. Для обчислень ініціюються 4 змінних розміром по 32 біта і задаються початкові значення шіснадцятковими числами. У цих змінних будуть зберігатися результати проміжних обчислень.

4) Обчислення в циклі.

5) Результати обчислень. Результатом є хеш, що знаходиться в буфері [11].

Алгоритм MD5 вразливий до деяких атак, наприклад можливе створення двох повідомлень з однаковою хеш-сумою.

SHA-1

Secure Hash Algorithm 1 - алгоритм криптографічного хешування. Описаний в RFC 3174. Для вхідного повідомлення довільної довжини алгоритм генерує 160-бітове хеш-значення, зване також дайджестом повідомлення [12].

Використовується в багатьох криптографічних додатках і протоколах.

SHA-1 реалізує хеш-функцію, побудовану на основі функції стиснення. Входами функції стиснення є блок повідомлення довжиною 512 біт і вихід попереднього блоку повідомлення.

Початкове повідомлення розбивається на блоки по 512 біт в кожному. Останній блок доповнюється до довжини, кратної 512 біт. Спочатку додається 1, а потім нулі, щоб довжина блоку стала рівною (512 - 64 = 448) біт. В інші 64 біта записується довжина вихідного повідомлення в бітах. Якщо останній блок має довжину понад 448, але менше 512 біт, то доповнення виконується наступним чином: спочатку додається 1, потім нулі аж до кінця 512-бітного блоку; після цього створюється ще один 512-бітний блок, який заповнюється аж до 448 біт нулями, після чого в 64 біта, що залишилися записується довжина вихідного повідомлення в бітах. Доповнення останнього блоку здійснюється завжди, навіть якщо повідомлення вже має потрібну довжину.

Головний цикл ітеративно обробляє кожен 512-бітний блок. Ітерація складається з чотирьох етапів по двадцять операцій в кожному.

Даний алгоритм достатньо схожий із попереднім, а саме:

· Чотири етапи;

· Кожна дія додається до раніше отриманого результату;

· Розмір блоку обробки - 512 біт;

· Обидва алгоритми розраховані на 32-х бітну архітектуру.

Через блочну і ітеративну структуру алгоритму, а також відсутність спеціальної обробки в кінці хешування, всі хеш-функції сімейства SHA уразливі до атак типу подовження повідомлення і колізії при частковому хешуванні повідомлення [13].

ГОСТ Р 34.11-94

ГОСТ Р 34.11-94 - застарілий російський криптографічний стандарт обчислення хеш-функції.

Основою описуваної хеш-функції є крокова функція хешування. Вхідне повідомлення розбивається на блоки по 256 біт. У випадку, коли розмір останнього блоку менше 256 біт, то до нього приписуються зліва нулі для досягнення заданої довжини блоку [14].

Кожен блок повідомлення, починаючи з першого, подається на крокову функцію для обчислення проміжного значення хеш-функції (Рис 1.3).

Рис 1.3. Ітерації алгоритму.

Етапи алгоритму:

1) Ініціалізація.

2) Функція стиснення внутрішніх ітерацій.

3) Функція стиснення фінальної ітерації.

4) Вихід. Повернення результату обчислень.

Особливості алгоритму:

· При обробці блоків використовуються перетворення за алгоритмом ГОСТ 28147-89;

· Обробляється блок довжиною 256 біт, і вихідне значення теж має довжину 256 біт;

· Визначає контрольну суму, розраховану по всіх блоках вихідного повідомлення, що дещо ускладнює колізійну атаку;

· Застосовані заходи боротьби проти пошуку колізій, заснованому на неповноті останнього блоку [15].

Отже, проаналізувавши сучасні алгоритми хешування, можна зробити висновок, що MD5 найкраще підходить для поставленої задачі, він не є застарілим як ГОСТ 34.11-94 і не настільки складний як SHA-1, що є дуже важливим фактором при розробці додатків для мобільних пристроїв.

  • 1.4 Огляд засобів забезпечення конфіденційності та цілісності інформації на мобільних пристроях
    • У багатьох у наш час офіс завжди з собою - ми відповідаємо на електронну пошту, переглядаємо і редагуємо файли за допомогою мобільних пристроїв. Проте зручність йде поруч з ризиком компрометації важливої ??корпоративної інформації.
    • Компанії, які впроваджують спеціальні засоби захисту, часто обмежуються MDM системами (управління мобільними пристроями), що дозволяють віддалено оновлювати, конфігурувати і очищати пристрої.
    • В той же час, користувачі шукають простоти і зручності в роботі з мобільними пристроями, тому для обміну корпоративними даними часто використовують публічні сервіси типу Dropbox, SkyDrive, Box. У результаті створюється безліч копій файлів з конфіденційною інформацією, "розмазаних" між сервісами та пристроями. До того ж збільшується ризик доступу до цієї інформації зловмисниками.
    • Більш того, якщо для доступу до корпоративної інформації використовувалися сторонні додатки, зловмисники мають можливість відновити цю інформацію, заволодівши пристроєм - відновлюючи тимчасові файли, вміст журналу помилок, копії вилучених файлів з журналу файлової системи пристрою і ще десятками різних способів.
    • CyberSafe files encryption
    • Програма для OS Android для шифрування файлів і папок, що використовує у своїй роботі кілька різних криптопровайдерів (OpenSSl, OpenPGP) і підтримуюча більшість сучасних алгоритмів шифрування (AES, RSA, BlowFish, ГОСТ) з довжиною ключа до 448 біт для симетричних і 8192 біт для асиметричних алгоритмів [16].
    • Програма дозволяє організувати прозоре шифрування файлів і папок на мобільному пристрої, створення та перевірку цифрових підписів, обмін зашифрованими файлами з іншими користувачами, захист електронної пошти, а також зберігання закритих ключів на токенах.
    • На рисунку 1.4. приведені скріншоти додатку Cybersafe files encription
    • Рис. 1.4. Скріншоти Cybersafe files encryption.
    • Acronis mobilEcho
    • Продукт mobilEcho являє собою сервер і додаток для смартфону для зручного доступу до файлів на мобільних пристроях, із збереженням контролю над файлами.
    • Сервер надає можливість зробити доступними для мобільних пристроїв файли, що знаходяться в мережевих папках, в колекціях SharePoint і на мережевих сховищах, при цьому застосовуючи поточні права доступу Active Directory і додаткові обмеження, встановлені адміністратором. Наприклад, адміністратор може визначити список програм, в яких можуть бути відкриті файли. Історія роботи користувачів з файлами записується в журнал аудиту.
    • Для зв'язку з сервером мобільний додаток може використовувати один з п'яти способів, залежно від конфігурації інфраструктури компанії, що використовує mobilEcho.

· HTTPS по 443 порту;

· VPN у внутрішній мережі;

· Зворотний проксі-сервер з автентифікацією за сертифікатом або зв'язці логін / пароль;

· Проксі сервер Good Technology проксі-сервер;

· MobileIron AppTunnel [17].

Передача і зберігання даних на мобільних пристроях здійснюється у зашифрованому вигляді, продукт сертифікований за стандартом FIPS 140-2, що дозволяє його використовувати навіть військовим.

Даний додаток безкоштовний і доступний в магазинах IOS і Android, він надає доступ до набору директорій і файлів, доступних конкретному користувачеві.

Оскільки користувачі в основному працюють з документами у форматах Microsoft Office і саме для них використовуються сторонні додатки, що ставлять безпеку під загрозу, у mobilEcho вбудований редактор документів, електронних таблиць і презентацій, а також можливість вставляти анотації в PDF документи. В результаті файли не залишають захищеного периметра програми.

На рисунку 1.5. приведені скріншоти додатку Acronis MobilEcho.

Рис. 1.5. Скріншоти Acronis MobilEcho.

Acronis Access Advanced

Acronis Access Advanced - це зручне, повне і безпечне рішення для доступу до файлів, їх синхронізації і спільного використання. Завдяки цьому ІТ-спеціалісти можуть контролювати безпеку і відповідність корпоративним стандартам, а також дозволяти використання особистих пристроїв на роботі (BYOD) [18].

Acronis Access надає користувачам зручний доступ до даних і файлів, дозволяє їх синхронізувати і використовувати спільно з іншими співробітниками де завгодно і коли завгодно. Файли можна отримати і синхронізувати з серверів, NAS-пристроїв і SharePoint на ПК або Mac.

Користувачі можуть створювати і редагувати документи Office та коментувати PDF-файли в ізольованому програмному середовищі, що дозволяє уникнути витоку даних і проблем з безпекою, а також підвищити продуктивність. Користувачі також можуть вносити зміни у фінансові таблиці, внутрішні замітки, звіти та інші документи, виключаючи ризик одночасного збереження декількох копій файлу і витоку даних.

Журнал аудиту дозволяє ІТ-спеціалістам відстежувати дії користувачів (дізнаватися, які документи вони відкривають і кому надають доступ до них).

На рисунку 1.6. приведені скріншоти додатку Access Advanced.

Рис. 1.6. Скріншоти Access Advanced.

Для більш наглядного порівняння трьох додатків побудуємо таблицю.

Табл. 1.2Порівняння додатків.

Назва додатку

Експорт та імпорт даних

Формати файлів

Журнал аудиту

Криптопровайдер

Алгоритм шифрування

CyberSafe files encryption

+

Будь-які текстові, директорії

-

OpenSSl, OpenPGP

AES, RSA, BlowFish, ГОСТ 28147-89

Acronis mobilEcho

+

txt, doc, docx

+

OpenSSl

AES 256

Acronis Access Advanced

+

doc, docx, xls, xlsx, ppt, txt

+

OpenSSl

ГОСТ

28147-89

Отже, з огляду додатків для забезпечення цілісності і конфіденційності інформації для мобільних платформ, можна зробити висновок, що продукти Acronis мають дещо зручніший інтерфейс користувача, ніж Cyber Safe files encryption. Проте останній має кращу криптостійкість і використовує різні криптоалгоритми для шифрування файлів різних типів. Всі три додатки використовують OpenSSL для шифрування файлів.

Жоден з додатків не використовує легковісні алгоритми для шифрування, що відбивається на швидкодії шифрування великих файлів. Тому розробка додатку для забезпечення конфіденційності та цілісності інформації за допомогою легковісної криптографії на Android є актуальною.

    • Висновки до розділу
    • У першому підрозділі було виконано огляд основних проблем та тенденцій забезпечення конфіденційності та цілісності персональної інформації, в другому - розглянуто класифікацію криптоалгоритмів, наведена характеристика основних легковісних криптографічних алгоритмів, в третьому - огляд найбільш поширених алгоритмів хешування, в четвертому - зроблено огляд найбільш популярних готових рішень у сфері захисту інформації на мобільних пристроях. Із всього цього слідує, що:

· питання забезпечення захисту персональної інформації в наш час стало дуже актуальним, особливо для мобільних пристроїв;

· в наш час існує безліч різних криптоалгоритмів з різною складністю і різними вимогами до фізичних ресурсів;

· легковісні криптоалгоритми набувають популярності у добу поширення мобільних пристроїв;

· існує широкий вибір алгоритмів для хешування персональної інформації;

· на ринку вже наявні потужні засоби забезпечення конфіденційності та цілісності інформації на мобільних пристроях.

Розділ 2. Аналіз та вибір технологій для розробки додатку для мобільної платформи

    • 2.1 Огляд мобільних програмних платформ
    • В даному бакалаврському проекті розробляється додаток для роботи з документами для мобільних пристроїв. Оскільки зазвичай пристрої такого типу мають обмежені фізичні ресурси, то для шифрування буде використаний легковісний криптоалгоритм.
    • Під програмною платформою мається на увазі основна операційна система, яка виконується на даній апаратній платформі (або процесорний архітектурі, в загальному випадку). Деякі програмні платформи підтримують різні архітектури на рівні окремих збірок ядра. ПЗ під одну з платформ зазвичай неможливо безпосередньо запустити як на іншій платформі (програмної), так і на іншій архітектурі цієї ж платформи.
    • Android
    • Android - операційна система для смартфонів, планшетів і нетбуків. Вихідний код системи повністю відкритий. Дана платформа активно розвивається. У Android є велика спільнота розробників, які розширюють функціональність пристроїв [19].
    • Під Android розробники, в основному, пишуть програми на мові Java, що керують пристроєм через розроблені Google бібліотеки.
    • Android -додатки включають в себе Java -додатки та бібліотеки, які запускаються віртуальною машиною Dalvik c JIT компілятором. Бібліотеки включають в себе систему управління, графіку OpenGL ES 2.0, движок WebKit, графічний движок SGL, SSL і бібліотеки Bionic. Операційна система Android складається з 12 мільйонів рядків коду, в тому числі 3-х мільйонів рядків XML, 2.8 мільйонів рядків на C, 2.1 мільйона рядків на Java і 1.75 мільйона рядків на C + +.
    • Платформа Android включає набір C/C + + бібліотек, використовуваних різними компонентами ОС. Для розробників доступ до функцій цих бібліотек реалізований через використання Application Framework. Нижче представлені деякі з них:

· Bionic (Бібліотека стандартних функцій, несумісна з libc);

· libc (стандартна системна бібліотека мови Сі);

· мультимедійні бібліотеки (на базі PacketVideo OpenCORE; підтримують такі формати, як MPEG-4, H.264, MP3, AAC, AMR, JPEG та PNG);

· SGL (рушій двовимірної графіки);

· OpenGL ES 1.0 (рушій тривимірної графіки);

· Surface Manager (забезпечує для застосунків доступ до 2D/3D);

· WebKit (готовий рушій для Web-браузера; обробляє HTML, JavaScript);

· FreeType (рушій обробки шрифтів);

· SQLite (проста система керування базами даних, доступна для всіх застосувань);

· SSL (протокол, що забезпечує безпечну передачу даних) [20].

Платформа використовує оптимізовану, регістр - орієнтовану віртуальну машину Dalvik, на відміну від неї стандартна віртуальна машина Java - стек -орієнтована. Кожна програма запускається у своєму власному процесі, зі своїм власним примірником віртуальної машини. Dalvik використовує формат Dalvik Executable (*.DEX), оптимізований для мінімального використання пам'яті додатком. Це забезпечується такими базовими функціями ядра Linux, як організація потокової обробки і низькорівневе управління пам'яттю. Байт -код Java, на якому написані програми, компілюються в DEX- формат за допомогою утиліти dx, що входить до складу SDK.

IOS

Стороннім виробникам пристроїв IOS недоступна. На відміну від Android дана OC закрита. Проте займає друге (після Android) місце за кількістю проданих пристроїв з нею і перше - за кількістю доступних додатків.

Інтерфейс IOS заснований на концепції прямого маніпулювання з використанням дотиків "мультитач". Елементи управління інтерфейсом включають повзунки, перемикачі і кнопки.

IOS розроблена на основі OS X і використовує той же набір основних компонентів Darwin, сумісний зі стандартом POSIX.

Шари абстракції IOS:

· Core OS;

· Core Services;

· Media Layer;

· Cocoa Touch [21].

Така пошарова архітектура ілюструє той рівень абстракції, де шари вищого рівня більше відокремлені, а нижчі шари виконують більш фундаментальне завдання, і більше пов'язані з апаратним оснащенням. Тут не обов'язково те, що шари вищого рівня в деяких функціях покладаються на нижчі верстви. Apple рекомендує використовувати платформи вищого рівня наскільки це можливо часто, тому що вони найчастіше являють собою об'єктно-орієнтовані абстракції платформ нижчих шарів. Іншими словами, шари вищого рівня побічно взаємодіють з апаратним оснащенням за допомогою шарів нижчого рівня, більш комплексних. Звичайно, залишається можливість повернутися до платформ нижчого рівня, якщо платформи вищого рівня не відповідають потрібним вимогам.

Шар Cocoa Touch являє собою самий верхній шар в iOS-архітектурі. Він містить деякі ключові платформи, на яких грунтуються вбудовані додатки iOS, і однією з них є платформа UIKit. Шар Cocoa Touch визначає основну інфраструктуру програми та пропонує ряд життєво важливих технологій на зразок мультизадачності або керування за допомогою сенсорів.

Графіка, аудіо та відео управляються шаром Media. Цей шар складається з декількох ключових технологій, включаючи Core Graphics, OpenGL ES і OpenAL, AV Foundation, а також Core Media. Media - шар складається з безлічі платформ, включаючи Assets Library для здійснення доступу до фотографій і відео пристрою, Core Image для обробки зображень за допомогою фільтрів, а також Core Graphics для створення двомірних графічних елементів.

Шар Core Services відповідає за управління основними системними сервісами, які використовують вбудовані iOS-додатки. Шар Cocoa Touch тісно пов'язаний з шаром Core Services в деяких аспектах функціоналу. Шар Core Services також надає кілька незамінних властивостей, на зразок блокових об'єктів, Grand Central Dispatch, In-App Purchase і iCloud Storage.

Велика частина функціоналу, передбаченого в трьох шарах вищого рівня, заснована на шарі Core OS і його низькорівневих властивостях. Шар Core OS надає безліч середовищ розробки, які додаток може використовувати безпосередньо (наприклад, середовища Accelerate і Securit). Шар Core OS інкапсулює навколишнє середовище ядра, а також низькорівневі UNIX-інтерфейси, до яких у програмі немає доступу з очевидних причин.

Windows Phone

Windows Phone - мобільна операційна система, розроблена компанією Microsoft [22].

Операційна система є наступником Windows Mobile, хоча і несумісна з нею, з повністю новим інтерфейсом і вперше з інтеграцією сервісів Microsoft: ігрового Xbox Live і медіаплеєра Zune.

На відміну від попередньої системи, Windows Phone більшою мірою орієнтована на ринок споживачів, ніж на корпоративну сферу.

Незабаром вийшла Windows Phone 8, що стала результатом уніфікації архітектури ОС на основі ядра Windows NT. Таким чином, ядро ОС використовує ту ж основу, що і її "настільна" версія. Це покликано полегшити портування програм між версіями ОС. Від Windows Phone нова ОС відрізняється підтримкою високої роздільної здатності екрану і більш широкого спектра периферії.

Дана ОС закрита і активно розвивається.

Підтримувані архітектури:

· ARM;

· X86.

Windows Phone підтримує технологію мультитач. З виходом Windows Phone 8 у користувачів з'явилася можливість об'єднати в єдину систему свій смартфон, планшетний комп'ютер і персональний комп'ютер (що дає розробникам мобільних додатків можливість здійснювати портування програм на різні пристрої). Основною відмінністю цієї платформи від інших існуючих є можливість роботи програм у фоновому режимі і самостійний контроль системи за кількістю оперативної пам'яті.

Отже, порівнявши найпопулярніші сучасні мобільні платформи можна зробити висновок, що Android є фаворитом у цій трійці. Адже платформа є відкритою і це дозволяє реалізувати на ній більше функцій. Також за недавньою статистикою щоденно Android активується приблизно на 300 000 пристроях [23]. Ця зростаюча кількість користувачів Android є найбільшою мотивацією для розробників додатків під Android, оскільки вона забезпечує їх широким ринком користувачів, що мають доступ до їх додатків. Тому безперечно додаток для бакалаврського проекту розроблятиметься саме під Android.

  • 2.2 Особливості технологій розробки додатків для Android та вибір середовища розробки
    • Розробка мобільних додатків відіграє все більш важливу роль для суспільства. На сьогоднішній день існує великий вибір мов програмування для розробки мобільних додатків.
    • Проаналізуємо основні технології, які використовуються для розробки додатків для мобільних пристроїв.
    • Перша технологія-це Java 2 Micro Edition (J2ME). Це набір специфікацій і технологій, призначених для різних типів портативних пристроїв. Існують два основні напрями: Connected Device Configuration (CDC) і Connected Limited Device Configuration (CLDC) [24]. Напрям визначає тип конфігурації центральних бібліотек Java, а так само параметрів віртуальної машини Java (в якій будуть використовуватися додатки).
    • Пристрої, які використовують технологію CDC будуть більш розвиненими, в якості прикладу можна навести комунікатори. До пристроїв CLDC відносяться звичайні мобільні телефони, які апаратно володіють більш обмеженими можливостями (ресурсами).
    • Спеціальні режими дозволяють визначати функціональність конфігурацій для різних типів пристроїв. Режим Mobile Information Device Profile (MIDP) призначений для CLDC портативних пристроїв з можливістю спілкування. Режим MIDP визначає функціональність - роботу користувальницького інтерфейсу, збереження налаштувань, роботу в мережі і модель додатка. CLDC і MIDP закладають основу реалізації J2ME. Java-код інтерпретується безпосередньо самим пристроєм за допомогою так званої Java Virtual Machine. Цей механізм робить можливим вільне розповсюдження Java - додатків, так як вони працюють на всіх пристроях з аналогічною Java -платформою.
    • Програмування Java-додатків і на сьогоднішній день займає більшу частину, так як більшість мобільних пристроїв (в основному мобільні телефони) в світі мають вже встановлену Java - систему.
    • Наступна популярна на сьогоднішній день технологія - це технологія Qt. Вона в основному використовується в якості крос-платформного середовища, яке дозволяє використовувати написані з її допомогою додатки на різних пристроях і операційних системах, у тому числі і Android, а також Windows, Mac OS X, Linux, Symbian [25].
    • Оскільки фрагментація ( різниця у версіях операційної системи ) Android має великий вплив на стабільну роботу мобільного додатку , перевірка повного функціоналу на цільових операційних системах вимагає великої кількості ресурсів та часу. В такому випадку використовується система моніторингу роботи мобільного додатку з інфраструктури Google.
    • Сьогодні Android SDK можна використовувати з різними IDE:

· Eclipse;

· NetBeans;

· AndroidStudio.

Eclipse - середовище для розробки додатків під Android з встановленим плагіном ADT. Розробка ведеться на мові програмування Java. Є можливість налагодження з використанням емулятора вбудованого в ADT або безпосередньо на мобільному пристрої з ОС Android.

Крім розробки на мові Java підтримується можливість більш низькорівневої розробки з використанням Android NDK (Native Development Kit) на мові C/C++ [26].

Середовище розробки Eclipse надає користувачам можливість виконувати UNIT тести на мобільних пристроях та на емуляторі . Для виконання тестів створюється окремий проект , що зручно дозволяє залишати основний проект без суттєвих змін. З іншого боку , для більш ефективної функціональної перевірки роботи додатку можливо використовувати скрипти автоматичного тестування сценаріїв користувача , що дозволяє проводити серію тестів через вплив на додаток для мобільної платформи з боку графічного інтерфейсу користувача . Такий підхід надає можливість більш гнучко будувати набір регресійних тестів для верифікації функціональної частини додатків і обирати найбільш ефективний метод створення тестів : через UNIT тестування , та / або автоматизоване тестування сценаріїв користувача

Android Studio --середовище розробки на основі IntelliJ IDEA, що надає інтегровані інструменти для розробки та налагодження додатків для платформи Android.

Android Studio містить Android SDK, інструменти для розробки дизайну, тестування і налагодження, останню версію платформи Android для компіляції.

Основні властивості Android Studio:

· Редактор WYSIWYG. Рендеринг додатків в реальному часі.

· Консоль розробника: підказки для оптимізації, помічник для перекладу, відстеження рефералів, кампанії і просування.

· Підтримка білдів на основі Gradle.

· ProGuard і можливості підпису додатків.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.