Програмний модуль ідентифікації користувачів сайту

Автор работы: Пользователь скрыл имя, 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. Лістинг...............................................................................................................

Прикрепленные файлы: 1 файл

Диплом.docx

— 702.38 Кб (Скачать документ)

«OpenID-сервер» - сервер, що засвідчує ідентифікатор OpenID користувача за запитами третьої сторони; на цьому сервері розміщений акаунт OpenID користувача, і цей сервер має доступ до персональної інформації користувача.

Алгоритм:

1. При вимаганні  авторизації на сайті користувач  вказує в спеціальному полі  введення свій ідентифікатор  OpenID.

2. Програмне  забезпечення OpenID Сайту на підставі  введеного ідентифікатора OpenID виробляє  пошук адреси OpenID-сервера, відповідного  ідентифікатором. Для визначення  адреси використовується три  різних протоколу, кожен з яких  заснований на запиті документів  з сервера, розташованого під  URL, відповідному Ідентифікатор OpenID. Таким чином, вибір OpenID сервера  визначається документами, розташованими  під тим URL, про володіння яким  заявляє користувач.

3. Якщо адреса OpenID-сервера успішно визначена, програмне забезпечення сайту встановлює з OpenID-сервером з'єднання.

4. У разі  успішного створення прямого зв'язку з OpenID-сервером, програмне забезпечення сайту посилає авторизаційний запит для ідентифікатора OpenID OpenID-сервера через браузер користувача.

5. За допомогою серії перенаправлень браузер користувача (у прозорому для користувача режимі) авторизується на OpenID-сервері, використовуючи ідентифікатор OpenID і дані, що ідентифікують сайт, на якому відбувається авторизація. Авторизація користувача на сервері OpenID може відбуватися різними способами, обумовленими адміністратором сервера. На даному кроці від користувача може потрібно введення логіна і пароля або підтвердження довіри запитувачу авторизації сайту. Однак цей процес може бути повністю автоматизований, наприклад за допомогою авторизації користувача на основі браузерних «файлів кукі».

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

 

3.2.3. Блок-схема

 

 

 

 

 

3.2.4. Реалізація алгоритму

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

Зараз доступні найрізноманітніші  варіанти отримання «посвідчення» OpenID. Згаданий вище сервіс VeriSign пропонує користувачеві вказати свої персональні  дані, після чого за ним закріплюється  персональний URL (який вказує на сервіс VeriSign), який далі використовується в  якості користувацького ідентифікатора OpenID.

Інший варіант - організація власного сервера OpenID. Доступно декілька безкоштовних рішень з відкритим кодом, що дозволяють реалізувати як простий «однокористувацький» OpenID-сервер (наприклад, PHPMyID) на віртуальному хостингу, так і повноцінний багатокористувацький сервер, який є потужним OpenID-провайдером (доступний великий набір бібліотек  для різних платформ).

 

Пред'явник "документу" авторизації

З точки зору сайтобудування, у OpenID є дві сторони. Одну з них, призначену для користувача, ми зараз розглянули. Друга - це організація «прийому»  авторизаційної інформації на стороні  веб-сайту. Тобто для того, щоб  авторизація по OpenID заробила на веб-сайті, доведеться встановити додаткові модулі, що підтримують цю технологію. Підтримка OpenID - це не функція веб-сервера, а  турбота CMS - системи управління контентом.

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

 

Робота з користувачем. Безпека даних.

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

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

Іншим проблемним моментом є те, що процес авторизації користувача  в OpenID вимагає примусового перенаправлення  користувацького браузера на адресу посвідчує сервера. Така особливість  може бути використана фішерами: сайт зловмисників, що імітує авторизацію  по OpenID, здатний перенаправляти браузер на підставний сервер, де користувачеві буде запропоновано ввести пароль і логін від реального аккаунта OpenID. При цьому така ситуація може навіть не насторожити користувача, адже пароль і логін можуть знадобитися і в «штатному режимі» роботи OpenID, наприклад у випадку помилки автоматичної «браузерної авторизації». У результаті, в руках у зловмисників виявляться реквізити доступу до аккаунту 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. Можливий  перехват даних користувача, якщо  сайт передає дані не тільки на сервер OpenId.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Тестування програми

5.1. Тестування системи ідентифікації

 

Тестування даної системи здійснюється за допомогою програми Cucumber.

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

Для тестування нам знадобиться, власне, Cucumber, який для більш легкого старту краще використовувати разом з RSpec (фреймворк для зручного написання тестів і test driven development) і WebRat (інструмент для інтегральних тестів, який містить зручні методи роботи з клієнтським інтерфейсом додатки).

Для роботи з OpenID з боку кінцевого  користувача нам знадобиться  локальний тестовий сервер OpenID.

Відкриємо бібліотеки в тестовому оточенні. У файлі config / environments / test.rb:

Встановимо дані бібліотеки на сервер:

Тепер, щоб почати використовувати  Cucumber, запустимо генератор:

Далі необхідно запустити локальний  сервер OpenId ROTS.

Після встановлення бібліотек з'являється команда

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

Після цих кроків запускаємо Cucumber.

Записуємо в ньому сценарій, за яким будемо тестувати нашу систему:

Далі визначаємо параметри сценарію тестування:

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

Написання коментаря користувачем:

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

відповідає на запит перенаправленням підтверджуючи чи відкидаючи авторизацію. У файлі features / step_definitions / comment_steps.rb:

На даному кроці підготовчі  роботи для проведення тестування проведені.

Далі можна запускати сам  тест.

Щоб його запустити, треба виконати команду:

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

Информация о работе Програмний модуль ідентифікації користувачів сайту