Тема: Децентрализованная система аутентификации
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи
Обзор литературы
Глава 1. Подходы к аутентификации
1.1 Хранение паролей в незашифрованном виде на стороне поставщика
услуг
1.2. Хранение паролей в зашифрованном виде на стороне поставщика услуг
1.3 OAuth, OpenID
1.4 Mozilla Persona
1.5 Системы аутентификации, основанные на blockchain .
1.5.1 Blockstack
1.5.2 uPort
1.5.3 EMCSSL
1.6 Заключение.
Глава 2. Архитектура системы
2.1 Обзор
2.2 Инфраструктура Blockstack
2.2.1 Введение
2.2.2 Virtualchain
2.2.3 Blockstack Core
2.2.4 Blockstack Portal
2.2.5 Onename.
2.3 Python-библиотека
2.4 Django-приложение
Глава 3. Реализация протокола аутентификации Blockstack.
3.1 Обзор.
3.2 Термины
3.3 Процесс аутентификации
3.3.1 Со стороны пользователя
3.3.2 Со стороны приложения.
3.4 blockchainauth
3.4.1 Описание
23.4.2 Запрос на аутентификацию
3.4.3 Ответ на запрос аутентификации
3.5 django-blockstack
3.5.1 Описание.
3.5.2 Части приложения
3.5.3 Установка.
3.6 Сайт . .
Глава 4. Анализ решения
4.1 Введение .
4.2 Универсальность.
4.3 Безопасность.
4.4 Децентрализованность.
4.5 Недостатки и возможности их преодоления .
Выводы.
Заключение
Приложение
Фрагменты кода blockchainauth
Класс AuthRequest.
Класс AuthResponse
Фрагменты кода django-blockstack.
Authentication Backend
Функция fetch_profile
Views.
Формат профиля пользователя
Список литературы . .
📖 Введение
С аутентификацией также неразрывно связана более широкая проблема идентификации, то есть наличия у человека законной личности — набора персональных данных о человеке как субъекте права, его правах и обязанностях. Согласно некоммерческой организации ID2020, проводящей ежегодные конференции в штаб-квартире ООН, одна пятая населения Земли живёт без надёжного способа идентифицировать себя, таким образом выпадая из правового поля и становясь уязвимыми для вовлечения в криминальную деятельность [1].
Для большинства людей на данный момент самый главный способ удостоверить свою личность — это паспорта, выдаваемые государственными органами. При этом один и тот же человек может быть гражданином нескольких стран и иметь несколько идентифицирующих документов, а следовательно — несколько личностей.
Возникает ещё больше сложностей, когда речь заходит об электронной идентификации. Многие поставщики услуг в сети Интернет требуют регистрации, хранения пользовательских данных на своих серверах. Каждый такой аккаунт вносит вклад в раздробленность личностей. Возникает обоснованное желание разработать единый механизм пользовательской идентификации и аутентификации. И такие механизмы уже есть; главная их проблема в том, что среди них нет однозначно глобального и универсального, а главное — прозрачного. Такие механизмы, как правило, полностью полагаются на какую-либо коммерческую организацию, которой мы доверяем свои данные и электронные личности. В данной работе будут рассмотрены уже
существующие решения для единой аутентификации пользователей и предложим альтернативный вариант на базе технологии blockchain, призванной устранить зависимость от одной удостоверяющей компании и децентрализовать механизм выдачи законных личностей в сети Интернет.
Постановка задачи
Целью данной работы является разработка для сети Интернет единой и универсальной системы идентификации и аутентификации, удовлетворяющей критериям, сформулированным ниже. Под системой идентификации будем понимать:
● Хранилище личностей, каждая из которых ассоциируется с определённым реальным человеком.
● Способ, которым человек может доказать владение этой личностью (аутентификация).
Под системой аутентификации будем понимать набор следующих структур:
● Хранилище данных, в котором содержатся зашифрованные персональные данные пользователей и их публичные ключи.
● Узлы сети, обслуживающие хранилище данных и отвечающие за логику процесса аутентификации.
● Легковесное приложение-клиент, способное принимать и подтверждать
запросы на аутентификацию, связанные с конкретной личностью.
● Протокол, по которому взаимодействуют перечисленные выше части системы.
● Библиотеки, с помощью которых разработчик легко сможет встроить аутентификацию по протоколу на свой сайт.
Вместе с этим представленная здесь система идентификации и аутентификации должна отвечать следующим критериям:
6● Универсальность: имея личность в данной системе, человек должен иметь возможность аутентифицироваться на любом подключенном к системе веб-сайте.
● Безопасность: пользователи сами контролируют безопасность доступа к своим именам и не зависят от политик безопасности третьих сторон.
● Децентрализованность: ни одно физическое или юридическое лицо не может единолично контролировать систему и процесс аутентификации пользователей. Владение именем подтверждается или отвергается на основе коллективного решения участников сети. Ни один узел не является точкой отказа.
Поэтому в задачи работы входит:
1. Анализ существующих протоколов аутентификации, их преимуществ и недостатков.
2. Подбор подходящего протокола аутентификации и имеющейся инфраструктуры (если такая у него имеется): хранилище личностей, хранилище данных, узлы сети, приложение-клиент.
3. Разработка библиотек разработчика и распространение их по каналам Open Source.
4. Разработка тестового сайта, использующего систему аутентификации.
5. Анализ решения на указанные выше критерии.
✅ Заключение
1. Проанализированы существующие протоколы аутентификации, их преимущества и недостатки. Был выделен класс наиболее перспективных протоколов на базе технологии блокчейн.
2. Был выбран для изучения один конкретный протокол из системы Blockstack, использующий ранее разработанную инфраструктуру: хранилище личностей в блокчейне, узлы сети, приложение-клиент. Были
изучены его возможности, достоинства и недостатки, подробно рассмотрено его применение в аутентификации пользователей.
3. Были разработаны две библиотеки на языке Python: blockchainauth и django-blockstack. Обе библиотеки пригодны для лёгкой интеграции системы аутентификации Blockstack на веб-сайты.
4. Был разработан тестовый сайт, в полной мере использующий библиотеки blockchainauth и django-blockstack.
5. Система была подробно изучена, были рассмотрены проблемы существующих систем аутентификации и как она их преодолевает. Были изучены недостатки самого протокола Blockstack и как они частично
решаются с помощью разработанных библиотек. Сформулированные задачи были выполнены в полном объеме.
Поставленные цели были достигнуты



