Безпека при спілкуванні в skype, комп'ютерна документація від а до я

Безпека при спілкуванні в Skype

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







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

Що очікує користувач А від такого сервісу - крім того, зрозуміло, що цей сервіс буде якомога більш дешевим, а програма не прийметься кожні дві хвилини "падати" або, що гірше, потай збирати особисту інформацію з його комп'ютера і відсилати її "в Центр "?

По-перше, А очікує, що якщо він захоче спілкуватися з Б, то програма зв'яже його саме з Б, а не з якимось В, що видає себе за нього. По-друге, А сподівається, що ніякому Г не вдасться підслухати їхню розмову. По-третє, оскільки ми маємо справу з комп'ютерами і використанням Інтернету, він ще дуже хоче, щоб шкідливий Д не спробував підчепитися до каналів, які використовує Skype для обміну даними бесіди А і Б, щоб, перефразовуємо класиків, "пускати йому звідти нехороших вірусів ". І, нарешті, було б дуже непогано, щоб його пароль, а також запис його розмови з Б, якщо такі ведуться, чи не дісталися ні У, ні Г, ні навіть Х - де б ці дані не зберігалися. Інші проблемні моменти ми, мабуть, опустимо: зрозуміло, що якщо Skype вміє, крім іншого, передавати файли, то А може підчепити вірус і таким чином, однак це вже навряд чи можна повісити на совість цієї програми.

Зауважимо мимохідь, що рівно ті ж самі побажання можуть виникати, скажімо, і у користувачів ICQ. Більш того, проблема номер один, коли замість Б "на дроті" може виявитися якийсь В, в текстових мессенждери за визначенням варто жорсткіше, бо люди, знайомі між собою особисто, швидше за впізнають один одного по голосу, ніж за манерою писати.

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

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

Безпека при спілкуванні в skype, комп'ютерна документація від а до я

Якщо вірити Берсона, в Skype широко і в цілому з розумом використовується криптографія, при цьому шифрування проводиться тільки за стандартами (експерт перераховує стандарт симетричного шифрування AES, систему публічних ключів RSA, схему відновлення повідомлень з цифровим підписом ISO 9796-2, алгоритм криптографічного хешування SHA -1 і потоковий шифр RC4). Всі процедури, так чи інакше пов'язані з шифруванням і розшифруванням даних, базуються на цих стандартних примітивах.







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

Процес реєстрації нового користувача Skype виглядає приблизно наступним чином:

1. Користувач вибирає бажане Skype-ім'я і пароль. Skype-клієнт генерує ключову пару RSA для цього імені. Закритий ключ цієї пари, а також хеш-функція пароля записуються на комп'ютері користувача в найбільш недоступному місці (клієнт Skype для Windows робить це за допомогою Windows CryptProtectData API).

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

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

4. На підставі зареєстрованого Skype-ім'я, відкритого ключа користувача і ідентифікатора свого ключа сервер формує, підписує своїм електронним підписом і пересилає клієнту персональний ідентифікаційний сертифікат для цього користувача.

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

Цей ідентифікаційний сертифікат - дуже цікава штука. Справа в тому, що процес спілкування між користувачами Skype відбувається за допомогою технології, заснованої на з'єднанні тимчасових вузлів (peer-to-peer communications). Якщо говорити спрощено (фактично в Skype цей механізм організований хитріше), між клієнтами формується пряме з'єднання, і, скільки б користувачів Skype ні спілкувалося між собою по Мережі, їх спілкування не робить ніякого навантаження на центральний сервер. Наявність же у користувачів завірених сервером ідентифікаційних сертифікатів дозволяє кожному з них переконатися в автентичності співрозмовника, навіть не звертаючись до сервера.

(Тут, безумовно, потрібно віддавати собі звіт, яку саме автентичність користувача гарантує така система. Зрозуміло, якщо ви спілкуєтеся зі Skype-користувачем на ім'я vasya_pupkin. Це ще не означає, що з вами розмовляє людина на ім'я Вася Пупкін. Система гарантує лише, що може бути тільки один Skype-користувач vasya_pupkin і що, якщо ви захочете зв'язатися з ним, Skype зв'яже вас саме з ним. Також слід розуміти, що ніхто не може перешкодити Васі Пупкину віддати свій логін який-небудь Світі Клюкіним, або записати "на Про всяк випадок "свій па роль великими літерами на стіні, або навіть транслювати ваш з ним розмову по місцевій радіостанції.)

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

Щодо досліджень Берсона варто також додати, що вони стосувалися версії 1.3 програми для Windows і що - на момент вивчення - йому не вдалося помітити в коді ніяких лазівок, які могли б встановити розробники, рухомі якимись поганими цілями.

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







Схожі статті