Автор работы: Пользователь скрыл имя, 20 Июня 2013 в 00:08, дипломная работа
Сьогодні інтернет ресурси відіграють дуже важливу роль у нашому житті. Одним з таких ресурсів є інтернет сайт та його користувачі. На сьогоднішній день майже всі компанії, установи, підприємництва, навчальні заклади мають свої інтернет сторінки. Такий інформаційний підхід дає змогу без втрати часу на переговори подивитися потрібну інформацію даної установи про її діяльність, послуги, та ін. Але для більшості клієнтів інформація на сайті обмежена. Для того, щоб подивитися щось більш конкретне, як правило, треба пройти реєстрацію. Існує дуже багато систем реєстраціі, ідентифікації, аутентицікації кліентів сайту. На даний момент такі системи є дуже доречними, так як підтримують безпеку сайта і інтернет ресурсу в цілому. Саме про такі системи буде йти мова в даній роботі.
Список термінів та скорочень................................................................................................
Вступ........................................................................................................................................
Постановка задачі...................................................................................................................
1. Огляд та аналіз існуючих рішень......................................................................................
1.1. Існуючі системи та методи ідентифікації користувачів сайту...........................
1.1.1. Mozilla persona..........................................................................................
1.1.2. OAuth........................................................................................................
1.1.3. Pavatar.......................................................................................................
2. Розробка математичного забезпечення............................................................................
2.1. Опис методу розробки математичної моделі користувача сайту......................
2.1.1. Суть методу. Доречність його використання.......................................
2.1.2. Опис алгоритму роботи методу. Вхідні та вихідні дані......................
2.2. Побудова моделі за обраним методом.................................................................
2.2.1 Опис та специфіка роботи моделі...........................................................
2.2.2. Метод реалізації математичної моделі..................................................
3. Програмне забезпечення ідентифікації користувачів сайту OpenId.............................
3.1. Загальна структура системи. Її робота..................................................................
3.2. Алгоритм роботи системи ідентифікації..............................................................
3.2.1 Вхідні дані..................................................................................................
3.2.2. Опис алгоритму........................................................................................
3.2.3. Блок-схема роботи алгоритму.................................................................
3.2.4. Реалізація алгоритму................................................................................
3.2.5. Вихідні дані...............................................................................................
3.2.6. Приклад роботи системи..........................................................................
3.2.7. Переваги та недоліки використання даної системи..............................
4. Тестування
4.1. Тестування системи ідентифікації.............................................................
4.2. Результати тестування................................................................................
5. Охорона праці......................................................................................................................
5.1. Аналіз робочого місця.................................................................................
5.2. Аналіз шкідливих і небезпечних виробничих факторів..........................
6. Висновки..............................................................................................................................
7. Список використаних літературних джерел.....................................................................
8. Додаток 1. Копії графічних матеріалів..............................................................................
9. Додаток 2. Лістинг...............................................................................................................
«OpenID-сервер» - сервер, що засвідчує ідентифікатор OpenID користувача за запитами третьої сторони; на цьому сервері розміщений акаунт OpenID користувача, і цей сервер має доступ до персональної інформації користувача.
Алгоритм:
1. При вимаганні
авторизації на сайті
2. Програмне
забезпечення OpenID Сайту на підставі
введеного ідентифікатора OpenID виробляє
пошук адреси OpenID-сервера, відповідного
ідентифікатором. Для
3. Якщо адреса
OpenID-сервера успішно
4. У разі успішного створення прямого зв'язку з OpenID-сервером, програмне забезпечення сайту посилає авторизаційний запит для ідентифікатора OpenID OpenID-сервера через браузер користувача.
5. За допомогою серії перенаправлень браузер користувача (у прозорому для користувача режимі) авторизується на OpenID-сервері, використовуючи ідентифікатор OpenID і дані, що ідентифікують сайт, на якому відбувається авторизація. Авторизація користувача на сервері OpenID може відбуватися різними способами, обумовленими адміністратором сервера. На даному кроці від користувача може потрібно введення логіна і пароля або підтвердження довіри запитувачу авторизації сайту. Однак цей процес може бути повністю автоматизований, наприклад за допомогою авторизації користувача на основі браузерних «файлів кукі».
6. Якщо процес
авторизації користувача
3.2.3. Блок-схема
3.2.4. Реалізація алгоритму
Механізм роботи OpenID вимагає наявності засвідчуючої сторони, яка могла б підтвердити за запитом сервісу, на якому намагається авторизуватися користувач, що реквізити надані вірно. Тому для успішного використання OpenID потрібна наявність у користувача аккаунта на тому чи іншому сервері OpenID. При цьому на подібному сервері користувачеві потрібно зареєструватися тільки один раз, надалі сервер самостійно буде підтверджувати авторизацію користувача за запитами інших сайтів.
Зараз доступні найрізноманітніші варіанти отримання «посвідчення» OpenID. Згаданий вище сервіс VeriSign пропонує користувачеві вказати свої персональні дані, після чого за ним закріплюється персональний URL (який вказує на сервіс VeriSign), який далі використовується в якості користувацького ідентифікатора OpenID.
Інший варіант - організація власного
сервера OpenID. Доступно декілька безкоштовних
рішень з відкритим кодом, що дозволяють
реалізувати як простий «однокористувацький»
OpenID-сервер (наприклад, PHPMyID) на віртуальному
хостингу, так і повноцінний
Пред'явник "документу" авторизації
З точки зору сайтобудування, у OpenID є дві сторони. Одну з них, призначену для користувача, ми зараз розглянули. Друга - це організація «прийому» авторизаційної інформації на стороні веб-сайту. Тобто для того, щоб авторизація по OpenID заробила на веб-сайті, доведеться встановити додаткові модулі, що підтримують цю технологію. Підтримка OpenID - це не функція веб-сервера, а турбота CMS - системи управління контентом.
Популярність, яку вже знайшов OpenID, сприяє тому, що в деяких сучасних CMS модуль підтримки OpenID входить в «стандартну комплектацію.Важливо відзначити ще один момент, безпосередньо стосується впровадження підтримки OpenID на веб-сайті: авторизація користувачів по «OpenID-посвідченнями» інших сервісів і видача «OpenID-посвідчень» користувачам так, щоб вони могли реєструватися на інших сайтах, це дві абсолютно різних завдання в рамках технології OpenID. Перше завдання - завдання авторизації; друга - створення провайдера OpenID. Для вирішення цих завдань потрібні різні програмні модулі. При цьому, очевидно, для більшості сайтів досить функції з «прийому» авторизаций, тобто модуля, що дозволяє користувачам авторизуватися за допомогою наявних у них акаунтів OpenID.
Робота з користувачем. Безпека даних.
Технологія OpenID дозволяє передавати
в якості інформації про користувача
не тільки ідентифікатор цього
Важливою особливістю OpenID з точки
зору базових концепцій безпеки
в Інтернеті є те, що ця технологія
не передбачає якихось механізмів суворого
посвідчення повідомлень (або іншого
контенту), переданих під тим чи
іншим ідентифікатором OpenID. Грубо
кажучи, в OpenID поки що відсутній механізм
електронного підпису, що дозволяє адміністратору
веб-сайту розміщувати на ньому
деякі повідомлення, імітуючи роботу
OpenID. Такі повідомлення можуть оформлятися
адміністратором сайту (які мають
повний контроль над контентом цього
сайту) як залишені вповноваженим по
OpenID власником того чи іншого URL. При
цьому читач не має можливості
якось перевірити справжність авторства
повідомлень і для нього
Іншим проблемним моментом є те, що
процес авторизації користувача
в OpenID вимагає примусового
У всіх описаних випадках на перше місце виходить довіру беруть участь в процесі авторизації сторін до засвідчувальному OpenID-серверу. А багато можливих атак можна запобігти з використанням SSL для обробки запитів авторизації.OpenID засвідчує не фізична особа, а лише зв'язок деяких авторизаційних даних інтернет-користувача з даними OpenID-ідентифікатором (URL). Тобто OpenID не скасовує анонімності: при реєстрації на OpenID-сервері користувач може не вводити персональних даних або ввести невірні дані. Також, OpenID дозволяє одній фізичній особі мати кілька «інтернет-осіб», кожне з яких буде пов'язано зі своїм URL. Також у OpenID є механізми, що дозволяють реалізувати більш суворе управління персональними даними: в цьому випадку користувач самостійно контролює те, які дані про нього передаються тому чи іншому «зовнішньому» серверу.
3.2.5. Вихідні дані
Користувач отримує декілька видів вихідних даних.
1. Отримання даних після реєстрації в OpenID.
Після прохоження всіх кроків реєстрації користувач отримує унікальний ключ - це може бути URL, ім'я або прізвище - ідентифікатор для сайтів, на яких встановлена система OpenID.
2. Отримання данних після введення ідентифікатора OpenID у поле на сайті.
Після цього користувач отримує повідомлення у вигляді невеликого вікна в центрі екрану про те, що він являється авторизованим. Тобто, в данному випадку вихідними даними є саме сайт і доступ до інформації цього сайту.
3.2.6. Поянення роботи системи.
Приклад роботи системи. Робота користувача з сайтом через систему OpenID.
Механізм, поширений сьогодні, - реєстрація
у форматі “логін/пароль” - не дає
змоги просто і швидко здійснювати
наскрізну ідентифікацію людям,
які цього прагнуть (необхідність
кожного разу реєструватися; необхідність
пам’ятати всі паролі чи використовувати
один для всіх сайтів, нехтуючи інформаційною
безпекою) і не робить очевидною
потребу в такій ідентифікації для
неофітів.
Новим принципово іншим механізмом, який
покликаний сприяти наскрізній ідентифікації
користувача на багатьох Веб-ресурсах,
є OpenID.
Основою концепції OpenID є
ідея, що кожен користувач WWW може однозначно
ідентифікувати себе за допомогою URL (варіант
– XRI - eXtensible Resource Identifier), аналогічно Веб-ресурсам.
Нехай у користувача WWW є власний блог
(для прикладу – name.livejournal.com) і він є залогованим
у ньому в даний момент.
цей нористувач вирішив написати коментар
до допису у блозі otherblog.com (для прикладу),
але він не має акаунту на цьому сайті.
Отже, залишити підписаний коментар йому
не вдасться – треба створювати акаунт,
запам’ятовувати пароль… Проте, якщо
otherblog.com підтримує механізм OpenID, Користувач
побачить форму “Use OpenID to login” або щось
подібне. Він вводить у цю форму фразу
name.livejournal.com і клікає login. Після цього otherblog.com
здійснює наступне:
1. З'єднується з name.livejournal.com і знаходить
там OpenID сервер (користувач може навіть
не здогадуватися про існування цього
серверу – все виконується автоматично).
2. Сервер otherblog.com звертається до браузера
користувача з повідомленням, що OpenID сервер
знайдено.
3. Браузер користувача звертається до
сервера ідентифікації, після чого є два
варіанти розвитку подій:
- Перший: Якщо користувач ніколи не повідомляв
свій сайт (в нашому випадку - LiveJournal), про
свою довіру до otherblog.com, LiveJournal повідомить
про це otherblog.com (не надаючи жодної інформації
про користувача). otherblog.com, у свою чергу,
виведе повідомлення приблизно такого
змісту (текст повідомлення залежить виключно
від конкретного сайту і може бути різним):
“Вам необхідно залогінитися у LiveJournal
і/або відзначити цей сайт як вартий довіри
для того, щоб ми могли здійснити вашу
авторизацію. Ваш сайт, Live Journal, каже, що
ви можете зробити це тут … (далі йде гіперпосилання),
після цього ви зможете залогінитися на
нашому сайті за допомогою OpenID.”
- Другий: Якщо користувач вже
повідомив LiveJournal про те, що довіряє сайту
otherblog.com, йому вже не доведеться турбуватися
про жодні підтвердження і паролі – авторизація
здійснюватиметься автоматично: “Hello!
You're now logged in to otherblog.com as Name from LiveJournal”.
4. Після цього користувач дописує свій
коментар і надсилає його. Сервер otherblog.com
автоматично перевіряє ідентичність користувача,
застосовуючи криптографічні засоби.
Якщо otherblog.com грає за правилами, ніхто
не зможе сфальшувати його ідентичність.
3.2.7. Переваги та недоліки використання даної системи
Переваги:
1. Швидкість роботи системи
2. Менший час очікування відповіді від сайту до користувача
3. Легкість - немає необхідності постійної авторизації
4. Актуальність - за рахунок того, що користувачі в день дивляться більш ніж 10 сайтів. Зручність переходу від сайту до сайту зі збереженням авторизації.
Недоліки:
1. Можлива втрата даних при автоматичній авторизації без підтвердження користувача в разі помилки або сбою під час передачі даних.
2. Можливий
перехват даних користувача,
5. Тестування програми
5.1.
Тестування системи
Тестування даної системи
Ця программа дуже добре підходить саме для нашої задачі, так як в ній дозволяється легко і швидко створити сценарій тестування. За допомогою такого підходудуже зручно описувати функціонал програми з точки зору фінального користувача. І, відповідно, писати код так, щоб виконувалися сценарії.
Для тестування нам знадобиться, власне, Cucumber, який для більш легкого старту краще використовувати разом з RSpec (фреймворк для зручного написання тестів і test driven development) і WebRat (інструмент для інтегральних тестів, який містить зручні методи роботи з клієнтським інтерфейсом додатки).
Для роботи з OpenID з боку кінцевого користувача нам знадобиться локальний тестовий сервер OpenID.
Відкриємо бібліотеки в тестовому оточенні. У файлі config / environments / test.rb:
Встановимо дані бібліотеки на сервер:
Тепер, щоб почати використовувати Cucumber, запустимо генератор:
Далі необхідно запустити
Після встановлення бібліотек з'являється команда
При запуску тестів необхідно, щоб сервер був запущений. Для роботи нам вистачить параметрів по замовчуванню. У даному сервері вже є користувач, параметри для якого ми і будемо використовувати в тестах.
Після цих кроків запускаємо Cucumber.
Записуємо в ньому сценарій, за яким будемо тестувати нашу систему:
Далі визначаємо параметри сценарію тестування:
Задамо такі параметри, при яких користувач хоче вписати на сайт коментар, при цьому йому необхідно пройти ідентифікацію за допомогою OpenId.
Написання коментаря користувачем:
Цей крок спеціально написаний для роботи з ROTS, який, не вимагаючи від користувача ніякого інтерактивної взаємодії в процесі тесту,
відповідає на запит перенаправленням підтверджуючи чи відкидаючи авторизацію. У файлі features / step_definitions / comment_steps.rb:
На даному кроці підготовчі роботи для проведення тестування проведені.
Далі можна запускати сам тест.
Щоб його запустити, треба виконати команду:
Після запуску потрібно всього лиш прописати в необхідних полях параметри, по яким необхідно провести тестування. Це можуть бути порожні поля заповнення імені користувача, відмова авторизації, неправильний ідентифікатор OpenId. Після цього запустити программу тестування.
Информация о работе Програмний модуль ідентифікації користувачів сайту