Аутентификация з використанням паролів

Аутентифікація користувачів

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

Аутентифікація користувача є однієї з тих проблем, які ми мали на увазі, говорячи, що «онтогенез повторює філогенез» у відповідному розділі глави 1. У перших мейнфреймов, таких як ENIAC, не було операційної системи, не говорячи вже про процедуру реєстрації. Більше пізні пакетні системи й системи поділу часу вже, як правило, мали процедури реєстрації для аутентифікації завдань і користувачів.

У перших міні-комп'ютерів (наприклад, PDP-1 і PDP-8) також не було процедури реєстрації, але з поширенням операційної системи UNIX на міні-комп'ютері PDP-11 така процедура знову потрібна була. Перші персональні комп'ютери (наприклад, Apple II і оригінальна версія IBM PC) не мали процедури реєстрації, але більше складним операційним системам для персональних комп'ютерів, як, наприклад, Windows 2000, знову знадобилася процедура реєстрації, що забезпечує безпека. Використання персонального комп'ютера для доступу до серверів на локальній мережі або для входу на комерційний web-сайт завжди вимагає реєстрації. Таким чином, проблема надійної реєстрації пройшла кілька циклів і знову стала важливою темою.

 

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

1) чогось, відомого користувачеві;

2) чогось, наявного в користувача;

3) чогось, чим є користувач.

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

Зловмисникові, щоб завдати шкоди якій-небудь системі, необхідно спочатку зареєструватися в ній. Це означає, що він повинен перебороти використовувану в даній системі процедуру аутентификации. У популярній пресі таких людей називають хакерами1. зломщик (cracker).

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

Як правило, при уведенні пароля комп'ютер не повинен відображати вводять символы, що, щоб поруч сторонні люди, що перебувають, не змогли довідатися пароля.

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

ping w.x.y.z

Якщо комп'ютер з такою адресою включений, вона відповість, і програма ping повідомить час проходження сигналу в обидва кінці в миллисекундах (хоча деякі сайти тепер забороняють використання програми ping, щоб запобігти подібним атакам). Неважко написати програму, що перебирає різні IP-адреси й подає їх на вхід програмі ping, аналогічно тому, як перебирає номера телефонів програма, що обговорювалася вище. Якщо за адресою w.x.y.z виявлений включений комп'ютер, зломщик може спробувати встановити з'єднання за допомогою команди

telnet w.x.y.z

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

Замість того щоб перебирати машини командою ping один по одному їхніх IP-адрес, зломщик може поставити собі метою вломитися на комп'ютер якої-небудь конкретної компанії, університету або іншої організації. Наприклад, його цікавить університет вигаданого міста Фубар з DNS-адресою foobar.edu. Щоб визначити IP-адреси, використовувані цим університетом, усе, що йому треба зробити, - це ввести команду

dnsquery foobar.edu

і він одержить список деяких IP-адрес університету. (З тією же метою може використатися програма nslookup або програма dig.) Оскільки багато організацій володіють 65 536 послідовними IP-адресами (розповсюджена в минулому виділювана область адресного простору), довідавшись від програми dnsquery перші 2 байти IP-адреси, зломщик одержує відразу інформацію про всіх 65 536 адресах даної організації. Потім він може перебирати ці адреси програмою ping, щоб визначити, який із цих комп'ютерів озивається, і спробувати встановити з ним Сполук-сполучень-TCP-з'єднання програмою telnet. Потім залишається лише підібрати ім'я й пароль, що ми вже обговорювали вище.

Вся послідовність дій — визначення перших двох байтів IP-адреси по імені домену, перебір цих адрес програмою ping, перевірка на установку ;е/гаї £-з'єднань, а потім перебір статистично ймовірних пар імені й пароля - являє собою процес, що легко автоматизує. Буде потрібно дуже багато спроб, щоб зламати захист, але якщо комп'ютери в чомусь гарні, так це в здатності без утоми повторювати ту саму послідовність операцій. Зломщику високошвидкісним кабелем або Сполук-сполученн-DSL-з'єднанням (Digital Subscriber Line - цифрова абонентська лінія) може запрограмувати процес на роботу протягом усього дня й просто періодично перевіряти, як ідуть справи.

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