Братко Н., Тарасюк С. В.

ОКВНЗ «Інститут підприємництва «Стратегія», м. Жовті Води, Україна

СЕРВЕР ОНОВЛЕННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Сервер – в інформаційних технологіях – програмний компонент обчис­лювальної системи, що виконує сервісні (обслуговуючі) функції по запиту клієнта, надаючи йому доступ до певних ресурсів або послуг. Поняття сервер і клієнт і закріплені за ними ролі утворюють програмну концепцію «клієнт-сер­вер». Для взаємодії з клієнтом (або клієнтами, якщо підтримується одно­часна робота з декількома клієнтами) сервер виділяє необхідні ресурси між проце­сами взаємодії і чекає запити на відкриття з'єднання (чи, власне, запити на наданий сервіс). В залежності від типу такого ресурсу, сервер може обслу­говувати процеси в межах однієї комп'ютерної системи або процеси на інших машинах через канали передачі даних (наприклад, COM-порт) або мережеві з'єднання. Формат запитів клієнта і відповідей сервера визначається про­то­ко­лом. Специфікації відкритих протоколів описуються відкритими стандар­тами, наприклад протоколи Інтернету визначаються в документах RFC.

Замовником програмного засобу є підприємство, що займається розробкою пристроїв дозиметричного контролю та програмного забезпечення для них, «По­зитрон GmbH». Для підприємства потрібно створити програму, яка буде ке­рувати оновленням програмного забезпечення. Це дозволить клієнтам під­приєм­с­тваоновлювати ПЗ без матеріальних та часових втрат.

Програмний засіб має мати наступні функції:

1. Аутентифікувати клієнта.

2. Перевіряти оновлення в базі даних.

3. Шифрувати данні.

4. Підтримувати докачку.

Після аналізу технологій, було вирішено використовувати протокол TCP/IP. Transmission Control Protocol, TCP (Прото́кол керува́ння переда́чею) – один з основних мережевих протоколів Інтернету, призначений для управління  передачею даних в мережах і підмережах TCP/IP.

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

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

В реальній ситуації пакети не тільки загублюються, але й отримують зміни у зв'язку з короткочасними неполадками в лінії передачі. TCP вирішує і цю проблему. При розміщенні даних виробляється так звана контрольна сума. Контрольна сума – це число, яке дозволяє приймаючому TCP виявити помилки в пакеті. Коли пакет прибуває в пункт призначення, приймаючий TCP обра­ховує контрольну суму і порівнює її з тою, яку послав відправник TCP. Якщо значення не збігаються, то при передачі виникла помилка. Приймаючий TCP відкидає цей пакет і просить повторну передачу.

Визначившись з протоколом передачі, потрібно обрати базу даних з якою буде працювати наш сервер.

В якості БД буде використовуватися Mongodb. Це документно-орієнтована база даних. Вона має ряд переваг перед SQL базами даних, має гнучку та ди­на­мічну структуру та краще підходить для збереження файлів великого розміру.

Отже, розберемо як саме буде працювати програма.

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

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

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

Головне досягнення асиметричного шифрування в тому, що воно дозволяє людям, що не мають існуючої домовленості про безпеку, обмінюватися секрет­ними повідомленнями. Необхідність відправникові й одержувачеві погоджувати таємний ключ по спеціальному захищеному каналі цілком відпала. Прик­ладами криптосистем з відкритим ключем є Elgamal (названа на честь автора, Тахіра Ельгамаля), RSA (названа на честь винахідників: Рона Рівеста, Аді Ша­міра і Леонарда Адлмана), Diffie-Hellman і DSA, Digital Signature Algorithm (винайдений Девідом Кравіцом). В результаті очікується отримати повноцінний програмний продукт, який відповідатиме усім вимогам підприємства та виконуватиме відведені для нього задачі.

Список використаних джерел:

1. Флэнаган Д. Язык программирования Ruby / Д. Флэнаган, Ю. Мацумото. – М.: Питер, 2011;

2. Електронний ресурс. – Режим доступу: http://www.ruby-lang.org/en

3. Електронний ресурс. – Режим доступу: http://www.cryptoheaven.com/Security/Presentation/ SSL-protocol.htm

4. Електронний ресурс. – Режим доступу: http://www.docs.mongodb.org/manual

5. Menezes A. J. Handbook of Applied Cryptography / A. J. Menezes, P. C. Oorschot, S. A. Vans­tone. – CRC Press, 1996. – Р. 25–26.

6. Баричев С. Криптография без секретов /  С. Баричев. – М.: Горячая Линия – Телеком. 2004. – С. 20.

7. Електронний ресурс. – Режим доступу: http://www.ietf.org/rfc/rfc793.txt