Метод разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями. Процедуры повышения, понижения и проверки уровня «Доверия»::Журнал СА 7-8.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Контакты
   

  Опросы
1001 и 1 книга  
12.02.2021г.
Просмотров: 10472
Комментарии: 11
Коротко о корпусе. Как выбрать системный блок под конкретные задачи

 Читать далее...

11.02.2021г.
Просмотров: 10911
Комментарии: 13
Василий Севостьянов: «Как безболезненно перейти с одного продукта на другой»

 Читать далее...

20.12.2019г.
Просмотров: 17798
Комментарии: 2
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 16345
Комментарии: 13
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 17141
Комментарии: 7
Анализ вредоносных программ

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Метод разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями. Процедуры повышения, понижения и проверки уровня «Доверия»

Архив номеров / 2017 / Выпуск №7-8 (176-177) / Метод разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями. Процедуры повышения, понижения и проверки уровня «Доверия»

Рубрика: Наука и технологии

Без фото БОГОРАЗ А.Г., кафедра безопасности информационных технологий, Институт компьютерных технологий и информационной безопасности, Южный федеральный университет, Ростовская область, г. Таганрог, bogoraz.a.g@gmail.com

Метод разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями 
Процедуры повышения, понижения и проверки уровня «Доверия»

Данная работа является продолжением разработки метода разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями (РСС). В данной статье описываются процедуры повышения, понижения и проверки уровня «Доверия» пользователя и приводится перечень пользователей, участвующих в процедурах, ограничения и рекомендации, связанные с работой процедур. Также в работе описываются ситуации, при которых «Доверители» отсутствуют в РСС в момент выполнения процедур или долгое время в ней не появляются

Введение

Социальные сети (СС) представляют собой платформу, которая позволяет пользователям проявлять социальную активность, такую как общение, передача файлов, оценка фотографий и прочее.

На данный момент наиболее простой архитектурой для построения СС является клиент-серверная, являющаяся наиболее простой в реализации, но обладающая недостатками с точки зрения безопасности. Вследствие этого в интернете начали появляться СС, основанные на распределенной или децентрализованной распределенной архитектуре, которая сложнее в реализации, но в то же время частично лишена недостатков безопасности СС, построенных на основе клиент-серверной архитектуры [1, 2].

В данной работе описывается процедура, дополняющая механизм «Доверие», описанный в [4]. Предлагаемая процедура позволяет пользователю, имеющему уровень «Доверия» равный 1 и не имеющему «Друзей», кроме пользователя-«Доверителя», его пригласившего, общаться с другими пользователями РСС с помощью «Доверителя».

Пользователи, участвующие в процедурах, связанных с уровнем «Доверия»

Пользователь А – друг и «Доверитель» пользователя B в РСС. Друг пользователя D в РСС.

Пользователь B – друг пользователей А и D.

Пользователь C – злоумышленник, который хочет представиться для пользователя D как пользователь B для повышения своего уровня «Доверия» таким образом, чтобы все считали, что пользователь D повысил уровень «Доверия» пользователя C.

Пользователь D – друг пользователей A и B.

«Доверители» B – пользователи, которые числятся в «Списке Друзей» пользователя B и повысили его уровень «Доверия» с помощью сертификатов.

Пользователи E и F – Друзья-«Доверители» пользователя B.

Пользователь G – пользователь, который не является Другом и «Доверителем» пользователя B.

Процедура повышения уровня «Доверия»

После процедуры общения с пользователем B через «Доверителя», описанной в [4], пользователь D решает повысить уровень «Доверия» B до 2.

Для этого D вырабатывает сертификат для B, который является хеш-суммой, выработанной от хеш-сумм компонентов, сложенных с помощью операции сложения по модулю два: логин пользователя B, пароль пользователя D, открытый ключ основной пары пользователя D, текущий адрес пользователя D в РСС, выработанный в соответствии с логикой протокола DHT, текущие Дата и Время и «Соль», которая является криптостойким набором цифр. Далее D подписывает сертификат с помощью секретного ключа своей электронной цифровой подписи, предназначенной для работы с компонентами метода «Доверие» (далее по тексту – ЭЦП «Доверие»).

Подписанный сертификат D помещает в криптоконтейнер, зашифрованный с помощью открытых ключей основной, сессионной и временной пар пользователя B, который он отправляет B через РСС.

B расшифровывает полученный криптоконтейнер и получает подписанный сертификат повышения уровня «Доверия» пользователя B, выработанный пользователем D. B проверяет подпись D в сертификате с помощью открытого ключа ЭЦП «Доверия» D (см. рис. 1).

Рисунок 1. Пользователь D вырабатывает и подписывает секретным ключом своей ЭЦП «Доверия» сертификат повышения уровня «Доверия» для B. Этот сертификат он отправляет в соответствующем криптоконтейнере пользователю Bчерез РСС. B расшифровывает криптоконтейнер, проверяет подпись с помощью открытого ключа ЭЦП «Доверия» D

Рисунок 1. Пользователь D вырабатывает и подписывает секретным ключом своей ЭЦП «Доверия» сертификат повышения уровня «Доверия» для B. Этот сертификат он отправляет в соответствующем криптоконтейнере пользователю Bчерез РСС. B расшифровывает криптоконтейнер, проверяет подпись с помощью открытого ключа ЭЦП «Доверия» D

После проверки B может начать процесс повышения своего уровня «Доверия». Для этого он берет сертификат повышения уровня «Доверия» B, выработанный пользователем A, процесс получения которого описан в [4], и складывает его ссертификатом повышения уровня «Доверия» B, выработанным пользователем D, с помощью операции сложения по модулю два. В результате пользователь B получает хеш-сумму, которая является его уровнем «Доверия». Данную хеш-сумму и сертификаты пользователь B постоянно хранит у себя в служебных данных своего клиента РСС.

После выработки B подписывает свой уровень «Доверия» с помощью секретного ключа своей ЭЦП «Доверия». Далее B создает криптоконтейнер, в который он вкладывает свой новый уровень «Доверия», который B подписал с помощью своей ЭЦП «Доверия», новый сертификат, который позволили ему повысить уровень «Доверия», и логин пользователя D, который выдал сертификат. Криптоконтейнер B зашифровывает с помощью открытых ключей соответствующих пар ключей шифрования пользователя A, который отправляет A через РСС.

A расшифровывает криптоконтейнер, полученный от B, проверяет подпись пользователя D в сертификате повышения «Доверия» (в случае отсутствия открытого ключа ЭЦП «Доверия» или открытых ключей пар шифрования D, Aзапрашивает их у D с помощью процедуры, аналогичной процедуре общения через «Доверителя» [4]), который выработал D для B. После проверки A берет сертификат повышения уровня «Доверия» B, который он выработал для B ранее[4], и складывает его с сертификатом повышения уровня «Доверия» B, выработанным пользователем D, с помощью операции сложения по модулю два. В результате пользователь A получает хеш-сумму, которая является уровнем «Доверия» пользователя B. Далее A берет высчитанный им уровень «Доверия» B и сравнивает его с уровнем «Доверия», который прислал B. В случае если значения сошлись, пользователь A считает, что пользователь B рассчитал свой уровень «Доверия» правильно. В ином случае пользователь A рассчитывает старое значение уровня «Доверия» пользователя B, подписывает его секретным ключом своей ЭЦП «Доверия» и отправляет B в соответствующем криптоконтейнере. Также A уведомляет пользователя D о том, что уровень «Доверия» B не изменился с помощью сообщения и старого уровня «Доверия» B, подписанного всеми его «Доверителями», отправленных в криптоконтейнере, зашифрованном соответствующим образом (см. рис. 2).

Рисунок 2. Пользователь B с помощью операции сложения по модулю два складывает сертификат, который ему прислал пользователь D, с сертификатом, который ему прислал пользователь A ранее и получает свой новый уровень «Доверия»

Рисунок 2. Пользователь B с помощью операции сложения по модулю два складывает сертификат, который ему прислал пользователь D, с сертификатом, который ему прислал пользователь A ранее и получает свой новый уровень «Доверия». B подписывает свой новый уровень «Доверия» и отправляет его в соответствующем криптоконтейнере, в который он также вкладывает сертификат, полученный от D, и логин D.

A расшифровывает полученный криптоконтейнер и проверяет подпись D в сертификате повышения уровня «Доверия» для B, который выработал D, и подпись B в новом уровне «Доверия» B, который прислал B. После этого A берет свой сертификат повышения уровня «Доверия» B, который он хранит в служебных данных пользователя B, и складывает его с сертификатом, который выдал D для B. Таким образом, A вычисляет значение текущего уровня «Доверия» B. Выработанное значение он сравнивает со значением уровня «Доверия» B, которое прислал B

Сертификат для B, выданный D, A будет хранить в служебных данных пользователя B до того момента, пока он не захочет отозвать свой сертификат «Доверия» B или до того момента, пока B и A не перестанут быть Друзьями.

После подтверждения нового уровня «Доверия» B пользователь A подписывает новое значение с помощью секретного ключа своей ЭЦП «Доверия».

В данном конкретном случае пользователь A является единственным Другом-«Доверителем» пользователя B. В то же время Друзьями-«Доверителями» могут быть семь и более пользователей, как это уже описывалось в [4], и, соответственно, каждый должен быть уведомлен об изменении уровня «Доверия» B. Таким образом, A выбирает случайного «Доверителя» пользователя B и отправляет ему соответствующим образом зашифрованный криптоконтейнер, вкоторый он вкладывает новый уровень «Доверия», подписанный B, а также проверенный и утвержденный подписью ЭЦП «Доверия» A сертификат повышения уровня «Доверия» B, выработанный пользователем D, и логин пользователя D.

«Доверитель» расшифровывает криптоконтейнер и аналогично пользователю A проверяет подписи B и A в новом уровне «Доверия» B (в случае отсутствия открытого ключа ЭЦП «Доверия» или открытых ключей пар шифрования пользователей, которые подписали уровень «Доверия» B, «Доверитель» запрашивает их у этих пользователей с помощью процедуры, аналогичной процедуре общения через «Доверителя» [4]), затем рассчитывает уровень «Доверия» путем сложения всех сертификатов «Доверия» B с помощью операции сложения по модулю два и сверяет с присланным пользователем A уровнем «Доверия» пользователя B. В случае если значения сходятся, «Доверитель» подписывает присланный уровень «Доверия» B своей ЭЦП «Доверия» и аналогично A создает соответствующим образом зашифрованный криптоконтейнер, куда он помещает уровень «Доверия» B, подписанный B, а также проверенный и утвержденный A и «Доверителем», сертификат повышения уровня «Доверия» B, выработанным пользователем D, и логин пользователя D. Так как «Доверителю» известны другие «Доверители» пользователя B, он просматривает подписи «Доверителей», которые уже проверили и утвердили уровень «Доверия» B, и отправляет тем «Доверителям», подписи которых он не обнаружил. Сертификат для B, выданный D, «Доверитель» будет хранить в служебных данных пользователя B до того момента, пока он не захочет отозвать свой сертификат «Доверия» B, или до того момента, пока B и «Доверитель» не перестанут быть Друзьями.

В ином случае если значение уровня «Доверия» B, высчитанное «Доверителем», и значение уровня «Доверия» B, присланное пользователем A, не совпадут, то «Доверитель» высчитывает старое значение уровня «Доверия» B, подписывает его секретным ключом своей ЭЦП «Доверия» и отправляет B в соответствующем криптоконтейнере. Также «Доверитель» уведомляет пользователя D о том, что уровень «Доверия» B не изменился с помощью сообщения и старого уровня «Доверия» B, подписанного всеми его «Доверителями», отправленных в криптоконтейнере, зашифрованном соответствующим образом (см. рис. 3).

Рисунок 3. После проверки пользователь A подписывает новое значение уровня «Доверия» B с помощью секретного ключа своей ЭЦП «Доверия»

Рисунок 3. После проверки пользователь A подписывает новое значение уровня «Доверия» B с помощью секретного ключа своей ЭЦП «Доверия».

В случае если «Доверителей» несколько, то пользователь A отправляет следующему «Доверителю» в соответствующем криптоконтейнере новое значение уровня «Доверия» B, подписанное пользователями B и A, логин пользователя D, который выдал новый сертификат и сертификат повышения уровня «Доверия» B, выработанный D.

«Доверитель» расшифровывает полученный криптоконтейнер и проверяет подпись D в сертификате повышения уровня «Доверия» для B, который выработал D, и подписи B и A в новом уровне «Доверия» B, который прислал A. После этого «Доверитель» берет свой сертификат повышения уровня «Доверия» B, сертификат, который A выдал для B, которые он хранит в служебных данных пользователя B, и сертификат, который выдал D для B, и складывает их с помощью операции сложения по модулю два. Таким образом, «Доверитель» 1 вычисляет значение текущего уровня «Доверия» B. Выработанное значение он сравнивает со значением уровня «Доверия» B, которое прислал A и которое подписано B и A

Следующий «Доверитель» произведет действия, и, соответственно, эти компоненты будут поочередно получены каждым «Доверителем» пользователя B.

После того как последний «Доверитель» «подтвердит» уровень «Доверия» B, он вкладывает эту компоненту и сертификаты всех «Доверителей» в соответствующим образом зашифрованный криптоконтейнер и отправляет через РСС пользователю D.

Стоит также отметить, что до момента окончания процедуры повышения «Доверия», все «Доверители» хранят предыдущее значение уровня «Доверия» B, подписанное всеми «Доверителями» B, промежуточное значение уровня «Доверия» B, высчитанное ими, а также сертификат D.

Пользователь D расшифровывает полученный криптоконтейнер, проверяет подписи всех «Доверителей» в уровне «Доверия» B, а также подписи всех сертификатов «Доверителей». После этого D, высчитывает уровень «Доверия» B путем сложения всех присланных сертификатов «Доверителей» и своего сертификата, который он выработал для B, с помощью операции сложения по модулю два. В случае если значения сошлись, пользователь D подписывает присланный уровень «Доверия» B с помощью своей ЭЦП «Доверия». Полученный уровень «Доверия» B D помещает в криптоконтейнер, зашифрованный для пользователя B, которому D отправляет его через РСС. После этого D также рассылает всоответствующих криптоконтейнерах всем «Доверителям» B новый, подписанный всеми «Доверителями» уровень «Доверия» B. Это необходимо для того, чтобы B не попытался скрыть свой новый уровень «Доверия» путем егонерассылки.

В ином случае, если значения высчитанного и полученного уровней «Доверия» не сошлись, D высчитывает старый уровень «Доверия», подписывает его своей ЭЦП «Доверия» и вместе с сообщением о неправильном расчете отправляет всем «Доверителям» и B в соответствующих криптоконтейнерах (см. рис. 4).

Рисунок 4. Общая схема повышения уровня «Доверия» B

Рисунок 4. Общая схема повышения уровня «Доверия» B.

Пользователь D отправляет пользователю B подписанный D сертификат повышения уровня «Доверия» B.

B проверяет подпись D, высчитывает свой новый уровень «Доверия» и отправляет своему «Доверителю» – пользователю A подписанный D сертификат повышения «Доверия» B, логин D, который выработал этот сертификат, и свой новый уровень «Доверия», подписанный B.

A проверяет подписи D и B, высчитывает новый уровень «Доверия» B, сравнивает его с присланным B и утверждает его своей подписью, если проверка прошла успешно. Далее A отправляет следующему «Доверителю» B (если таковой имеется) – «Доверителю» 1 подписанный D сертификат повышения «Доверия» B, логин D, который выработал этот сертификат, и новый уровень «Доверия», подписанный B и A.

«Доверитель» 1 выполняет действия, аналогичные пользователю A, и «утверждает» новый уровень «Доверия» B своей подписью, в случае если все проверки прошли успешно. Далее «Доверитель» 1 (учитывая, что он является последним изцепочки «Доверителей») отправляет пользователю D подписанный D сертификат повышения «Доверия» B, который выработал D, и новый уровень «Доверия», подписанный B, A и «Доверителем» 1.

D проводит проверки и расчеты, аналогичные тем, которые выполнили A и «Доверитель» 1, и «утверждает» новый уровень «Доверия» B своей подписью. Далее он рассылает всем «Доверителям» B – A и «Доверитель» 1, соответственно и B, новый уровень «Доверия» B, подписанный всеми участниками процедуры.

В свою очередь, B после получения своего нового уровня от D, «принимает» свой новый уровень «Доверия» путем рассылки всем участникам процедуры своего нового уровня «Доверия», подписанного всеми участниками, и сертификат, благодаря которому уровень «Доверия» был повышен

B расшифровывает полученный криптоконтейнер и получает свой новый уровень «Доверия», проверенный и «утвержденный» подписями всех его «Доверителей», в том числе и нового «Доверителя» D. Далее он проверяет подписи всех «Доверителей», в том числе свою и нового «Доверителя» D. В случае успешной проверки пользователь B может считать, что его уровень повышен. После этого пользователь B рассылает в соответствующих криптоконтейнерах всем своим «Доверителям», в том числе и D, свой новый подписанный всеми «Доверителями» уровень «Доверия». В эти криптоконтейнеры B также вкладывает сертификат повышения «Доверия» B, выданный пользователем D.

Все «Доверители» расшифровывают криптоконтейнер от D, проверяют подписи всех «Доверителей» в присланном уровне «Доверия» B и ожидают криптоконтейнер от B.

Далее все «Доверители» расшифровывают криптоконтейнер от B, сравнивают полученный сертификат для B, выданный D и присланный B, с сертификатом для B, который был выслан им ранее, с помощью которого было вычислено новое значение уровня «Доверия» и проверяют подписи всех «Доверителей» в новом уровне «Доверия» B.

После этого все «Доверители» будут постоянно хранить сертификат для B, выданный D, и новый уровень «Доверия» B, подписанный всеми «Доверителями», в служебных данных пользователя B до того момента, пока «Доверитель» незахочет отозвать свой сертификат «Доверия» B или до того момента, пока B и «Доверитель» не перестанут быть Друзьями.

После того как данная процедура будет выполнена, последний «Доверитель», который последним подписал уровень «Доверия» B, подписывает с помощью своей ЭЦП «Доверия» перечень пользователей-«Доверителей» B, которые намомент выполнения процедуры отсутствовали в РСС.

Далее он отправляет этот подписанный перечень всем «Доверителям», включая B и D. Далее будет описано, для чего это необходимо.

После этого процедура повышения уровня «Доверия» B считается оконченной.

Процедура понижения уровня «Доверия»

В результате общения с пользователем B пользователь D решил понизить уровень «Доверия» B. Для этого D берет свой сертификат повышения уровня «Доверия» B и помечает его как аннулированный. Далее D переподписывает сертификат, чтобы показать «Доверителям» и B, что аннулировал сертификат именно он.

D помещает аннулированный сертификат в криптоконтейнер, зашифрованный с помощью основной, сессионной и временной пар ключей шифрования пользователя B, который он отправляет B через РСС. Также D создает соответствующим образом зашифрованный криптоконтейнер, который он отправляет каждому «Доверителю» B. В этот криптоконтейнер D вкладывает аннулированный сертификат и логин пользователя B, сертификат которого был аннулирован, чтобы «Доверители» поняли, чей сертификат аннулирован.

В данном конкретном случае «Доверителями» пользователя B являются пользователи A и D. Соответственно, пользователь D направляет такой криптоконтейнер только пользователю A.

Пользователь B расшифровывает полученный криптоконтейнер и получает аннулированный сертификат. Пользователь B проверяет подпись пользователя D и пересчитывает свое «Доверие» путем складывания всех имеющихся у Bсертификатов «Доверителей» без учета аннулированного сертификата D. Полученный уровень «Доверия» и аннулированный сертификат, присланный D, B подписывает с помощью открытого ключа своей ЭЦП «Доверия». Подписанное значение уровня «Доверия», аннулированный сертификат, присланный D и подписанный D и B, и логин пользователя D пользователь B помещает в соответствующим образом зашифрованный криптоконтейнер и отправляет каждому своему «Доверителю», в данном конкретном случае – только A.

Пользователь A получает криптоконтейнер от пользователя D с аннулированным сертификатом пользователя B, проверяет подпись пользователя D в сертификате и ожидает получения нового уровня «Доверия» B.

Пользователь A получает криптоконтейнер от пользователя B и проверяет подпись B в новом уровне «Доверия» B, которое он прислал, и подписи D и B в аннулированном сертификате. Также он сверяет аннулированный сертификат, который прислал пользователь D, и аннулированный сертификат, который прислал пользователь B и который подписан D и B. Также A проверяет, что логин D, присланный B, совпадает с логином D, который прислал аннулированный сертификат. После этого A складывает все имеющиеся у него сертификаты уровня «Доверия» B, без учета аннулированного сертификата D. Далее A сравнивает выработанное им значение уровня «Доверия» B с уровнем «Доверия», которое прислал и подписал B. В случае если значения совпали, пользователь A подписывает значение, присланное B с помощью своей ЭЦП «Доверия», и таким образом «подтверждает» правильность расчетов пользователя относительного егоуровня «Доверия». После этого A подписывает аннулированный сертификат, что подтверждает, что он утвердил новый уровень «Доверия» B без учета этого сертификата (см. рис. 5).

Рисунок 5. Пользователь D аннулирует сертификат повышения уровня «Доверия» пользователя B, который D выдал B ранее

Рисунок 5. Пользователь D аннулирует сертификат повышения уровня «Доверия» пользователя B, который D выдал B ранее. D переподписывает этот сертификат секретным ключом своей ЭЦП «Доверия» и отправляет его всоответствующих криптоконтейнерах B и всем «Доверителям» B (в данном случае – только пользователю А). В криптоконтейнер, который будет рассылаться «Доверителям», D также вкладывает логин пользователя B, сертификат которого был аннулирован.

B расшифровывает криптоконтейнер, проверяет подпись D и рассчитывает свой уровень «Доверия» без учета аннулированного сертификата. В данном случае значение сертификата повышения «Доверия», который выдал пользователь A, является значением «Доверия», так как других сертификатов B не имеет. После этого B подписывает секретным ключом своей ЭЦП «Доверия» аннулированный сертификат и свой новый уровень «Доверия». Далее B создает соответствующим образом зашифрованный криптоконтейнер для A, в который B вкладывает подписанный D и B аннулированный сертификат, логин пользователя D, который является владельцем сертификата и который его аннулировал, исвой новый уровень «Доверия», подписанный B.

A расшифровывает криптоконтейнер от D и проверяет подпись D в аннулированном сертификате и после этого ожидает криптоконтейнер от B.

A расшифровывает криптоконтейнер от B и проверяет подпись D и B в аннулированном сертификате для B от D, также A сравнивает этот сертификат с тем, который ему ранее прислал D. После этого A проверяет подпись B в новом уровне «Доверия», который прислал B. Далее A рассчитывает уровень «Доверия» B путем сложения всех сертификатов «Доверия» B (в данном случае A – единственный «Доверитель» B, следовательно, значение сертификата повышения уровня «Доверия» B, который ранее выдал A и который A хранит в служебных данных B, является значением уровня «Доверия» B) и сравнивает его с тем, который прислал и подписал B

В случае если «Доверителей» больше, чем один, как описано в данном случае, пользователь A, которому известны все «Доверители» пользователя B, отправляет уровень «Доверия» пользователя B, аннулированный сертификат D, подписанный D, B и A, и логин пользователя D, который аннулировал сертификат, в соответствующим образом зашифрованном криптоконтейнере следующему «Доверителю», который на данный момент находится в РСС и подпись которого отсутствует в уровне «Доверия» B, который прислал пользователь B.

«Доверители» аналогично пользователю A получают криптоконтейнеры от пользователя D с аннулированным сертификатом пользователя B, проверяют подпись D и ожидают получения нового уровня «Доверия» от B.

Один из «Доверителей» получает криптоконтейнер от пользователя A, в котором находится новый уровень «Доверия» B, подписанный B и A, аннулированный сертификат D, подписанный D, B и A, и логин пользователя D, который инициировал процедуру понижения уровня «Доверия». «Доверитель» проверяет подписи пользователей D, B и A в аннулированном сертификате и аналогично пользователю B складывает все сертификаты уровня «Доверия» B без учета аннулированного сертификата D. Далее этот «Доверитель» сравнивает высчитанный им уровень «Доверия» B с уровнем «Доверия» B, который прислал A. В случае если значения совпали, «Доверитель» подписывает значение, присланное A, с помощью своей ЭЦП «Доверия» и таким образом «подтверждает» правильность расчетов пользователя B и A относительного уровня «Доверия» B. После этого «Доверитель» выбирает следующего «Доверителя» и отправляет ему соответствующим образом зашифрованный криптоконтейнер.

Стоит также отметить, что до момента окончания процедуры понижения «Доверия» все «Доверители» хранят предыдущее значение уровня «Доверия» B, подписанное всеми «Доверителями» B, промежуточное значение уровня «Доверия» B, высчитанное ими, а также аннулированный сертификат D, подписанный «Доверителями», которые произвели перерасчет уровня «Доверия» B.

Таким образом, сертификат проходит по цепочке через всех «Доверителей» пользователя B. Последний «Доверитель» отправляет проверенный и подписанный им уровень «Доверия» и аннулированный сертификат пользователям B и D.

Пользователь B получает свой уровень «Доверия», подписанный всеми участниками, проверяет свою подпись и подписи «Доверителей» и после этого рассылает подписанный всеми «Доверителями» свой уровень «Доверия» всем своим «Доверителям», в том числе и пользователю D.

«Доверители» B получают уровень «Доверия» пользователя B, проверяют подписи всех «Доверителей», сравнивают значение уровня «Доверия», присланное пользователем B, с тем, которое «Доверители» высчитали в процессе выполнения процедуры.

Пользователь D получает криптоконтейнер от последнего «Доверителя» с пересчитанным уровнем «Доверия» B и аннулированным сертификатом, проверяет подписи всех Доверителей, которые участвовали в процедуре, и ожидает криптоконтейнер от B.

После получения криптоконтейнера от B D проверяет подписи всех «Доверителей» B, затем складывает сертификаты всех «Доверителей», получает уровень «Доверия» B и сравнивает его с тем, который прислал B. В случае если всесошлось, то процедура считается успешно оконченной (см. рис. 6).

Рисунок 6. Общая схема понижения уровня «Доверия» B

Рисунок 6. Общая схема понижения уровня «Доверия» B.

Пользователь D отправляет пользователю B аннулированный подписанный D сертификат повышения «Доверия», который он выдал B ранее.

Также D рассылает аннулированный сертификат и логин пользователя B, чей сертификат был аннулирован, всем «Доверителям» B.

В данном случае подразумевается, что B имеет еще двух «Доверителей» – A и «Доверителя 1», который получает аннулированный сертификат для B от D, проверяют подпись D и ожидают сообщение от B.

B проверяет подпись D в аннулированном сертификате и подписывает его своей ЭЦП. После этого B высчитывает свой новый уровень «Доверия» и также подписывает его. Далее B отправляет случайному «Доверителю» (в данном случае A) свой новый подписанный B уровень «Доверия» B, подписанный D и B аннулированный сертификат и логин пользователя D, который выдал и аннулировал сертификат.

A проверяет подписи D и B в аннулированном сертификате, рассчитывает уровень «Доверия» B и сравнивает его с присланным B. В случае успешного сравнения A подписывает новый уровень «Доверия» B и отправляет следующему «Доверителю» (если таковой имеется) подписанный B и A уровень «Доверия» B, подписанный D и B аннулированный сертификат и логин пользователя D, который выдал и аннулировал сертификат.

«Доверитель» 1 выполняет те же действия, что и A, и подписывает новый уровень «Доверия» B своей подписью. «Доверитель» 1 является последним в цепочке «Доверителей», и, таким образом, он отправляет пользователям D и Bподписанный D и B аннулированный сертификат для B и новый уровень «Доверия» B, подписанный B, A и «Доверителем» 1.

B получает эти компоненты, проверяет подписи и рассылает всем своим «Доверителям» и D свой новый уровень «Доверия».

D получает компоненты от «Доверителя» 1, проверяет все подписи и ожидает сообщения от B. После получения сообщения от B D проверяет все подписи, и после этого процедура считается оконченной

В ином случае, если значения высчитанного и полученного уровней «Доверия» не сошлись, D высчитывает старый уровень «Доверия», подписывает его своей ЭЦП «Доверия» и вместе с сообщением о неправильном расчете отправляет всем «Доверителям» и B в соответствующих криптоконтейнерах.

После того как данная процедура будет выполнена, последний «Доверитель», который последним подписал уровень «Доверия» B, подписывает с помощью своей ЭЦП «Доверия» перечень пользователей-«Доверителей» B, которые намомент выполнения процедуры отсутствовали в РСС. Далее он отправляет этот подписанный перечень каждому «Доверителю» B, включая пользователя B и D.

Далее будет описано, для чего это необходимо.

Пользователи, отсутствующие на момент проведения процедуры

Следует отметить важную особенность: пользователи-«Довери-тели», которые в момент выполнения процедур будут находиться вне РСС, не будут участвовать в данной процедуре.

В то же время пользователю B необходимо иметь подписи таких «Доверителей». На данный момент предлагается следующее решение: как уже описывалось выше, последний «Доверитель», присутствующий в РСС на момент выполнения процедуры, рассылает всем участникам процедуры перечень пользователей, которые отсутствовали в РСС на момент ее выполнения. Все «Доверители», включая и пользователя B, ожидают появления в РСС пользователей из этого перечня. После их появления пользователь B отсылает им соответствующим образом зашифрованный криптоконтейнер, содержащий уровень «Доверия» B, подписанный всеми «Доверителями», находящимися в РСС на момент выполнения процедуры, сертификат повышения/понижения/проверки уровня «Доверия» для B, выданный D, и логин пользователя D.

Такие «Доверители» производят необходимые вычисления и проверки, аналогичные описанным в процедуре, и отправляют через РСС следующему «Доверителю», не присутствовавшему в РСС на момент выполнения процедуры, в случае если таковой появился в РСС. В случае если такие «Доверители» отсутствуют, то этот «Доверитель» поступает так же, как ранее поступил последний «Доверитель», – отправляет всем «Доверителям» подписанный им перечень пользователей-«Доверителей», не участвовавших в процедуре.

Таким образом, каждый «Доверитель» получит актуальный уровень «Доверия» B и сможет проверить подписи всех «Доверителей», в том числе и свою.

Друг-«Доверитель» долгое время отсутствует в РСС

Следует упомянуть ситуацию, когда Друг-«Доверитель» долгое время не появляется в РСС. Также необходимо учитывать, что пользователь мог принять решение более не использовать свой аккаунт РСС. Учитывая вышеописанную ситуацию, предлагается следующее решение: в случае если пользователь, который является Другом-«Доверителем» B, не появляется в РСС более определенного срока, например полгода, его сертификат повышения «Доверия» должен быть аннулирован.

Происходит это следующим образом: пользователь B с момента истечения определенного периода с момента последнего появления Друга-«Доверителя» должен считать, что сертификат повышения уровня «Доверия» такого пользователя более не действителен. Пользователь B пересчитывает свой уровень «Доверия» без учета сертификата отсутствующего пользователя, подписывает его своей ЭЦП «Доверия» и пересылает одному из своих «Доверителей» соответствующий криптоконтейнер, содержащий новый уровень «Доверия», логин «Доверителя», сертификат которого был аннулирован, и сообщение с объяснением ситуации.

«Доверитель» производит необходимые вычисления и проверки, аналогичные описанным в процедуре понижения уровня «Доверия», о которой речь шла выше, и отправляет следующему «Доверителю» через РСС в соответствующим образом зашифрованном криптоконтейнере. Таким образом, новый уровень «Доверия» проходит по цепочке, состоящей из всех «Доверителей».

Последний «Доверитель» отправляет В криптоконтейнер, который тот расшифровывает, проверяет подписи «Доверителей» в своем уровне «Доверия» и рассылает всем своим «Доверителям» соответствующим образом зашифрованные криптоконтейнеры, в которые В вкладывает «утвержденный» всеми «Доверителями» уровень «Доверия».

В ином случае если пользователь B на момент наступления срока аннулирования сертификата отсутствующего пользователя «решит» не пересчитывать свой уровень «Доверия» или будет отсутствовать в РСС, то через определенное время после наступления этого срока, к примеру через неделю, «Доверители» пользователя B принудительно пересчитают уровень «Доверия» пользователя B и перешлют ему его новый уровень «Доверия».

Для согласования времени для того, чтобы множество «Доверителей» не начало одновременно пересчитывать уровень «Доверия» B, клиент РСС каждого «Доверителя» устанавливает у себя таймер, равный случайному времени, в пределах, например, недели с момента последнего времени, до которого B должен был пересчитать свой уровень «Доверия». К примеру, после того, как B должен был легитимно пересчитать свой уровень «Доверия», прошла одна неделя. «Доверители» B – пользователи E и F выбрали случайное время в диапазоне одной недели – к примеру, клиент пользователя E выбрал 22 часа, а клиент пользователя F выбрал 72 часа. Следовательно, если в течение 22 часов пользователь Bне начнет перерасчет своего уровня «Доверия», клиент пользователя E начнет перерасчет самостоятельно. Клиент пользователя F после получения информации о том, что клиент пользователя E начал перерасчет, отключит свой таймер. Стоит также отметить, что в случае если кто-то из клиентов начнет одновременно перерассчитывать уровень «Доверия» B, то «выиграет» клиент того пользователя, который успел собрать больше подписей других «Доверителей». «Доверитель», который определит выигравшего, отошлет подписанный им уровень «Доверия» следующему «Доверителю» по цепочке и предупредит «проигравшего», что перерасчет «выиграл» другой пользователь. Соответственно, «проигравший» пользователь-«Доверитель» будет ожидать получения перерассчитанного уровня «Доверия».

В случае если пользователь, сертификат которого был аннулирован, вернется в РСС, он будет являться Другом пользователя B, но уже не будет являться его «Доверителем».

Данная процедура также актуальна в случае, если B будет долгое время отсутствовать в РСС, или в случае, если B «решит» не пересчитывать свой уровень «Доверия» после выполнения процедуры понижения уровня «Доверия», описанной выше.

Процедура проверки уровня «Доверия» пользователем, который не является «Доверителем» и/или Другом

В результате взаимодействия с РСС о пользователе B узнал пользователь G. К примеру, он хочет начать общаться с B или подозревает его во взломе своего клиента и злоупотреблении своим уровнем «Доверия». Таким образом, пользователь G, не являясь Другом или «Доверителем» B, хочет проверить уровень «Доверия» пользователя B.

Пользователь G использует процедуру общения через «Доверителя», описанную в [4], для связи с B и получения открытых ключей пар шифрования и ЭЦП «Доверия» B. После выполнения этой процедуры G запрашивает у B уровень «Доверия» B. В ответ B высылает в соответствующим образом зашифрованном криптоконтейнере следующие компоненты: уровень «Доверия» B, подписанный всеми его «Доверителями», перечень «Доверителей» B, перечень сертификатов, которые были выданы «Доверителями».

В случае если существуют «Доверители», которые еще не подтвердили свое «Доверие», например вследствие того, что они до сих пор не появились в РСС, пользователь B также вкладывает подписанный всеми «Доверителями» перечень «Доверителей», которые еще не подписали его уровень «Доверия».

Пользователь G получает криптоконтейнер и извлекает из него эти компоненты. G проверяет подпись пользователя B в уровне «Доверия» B. Далее G складывает все сертификаты, присланные пользователем B, с помощью операции сложения по модулю два и получает уровень «Доверия» B. После этого G сравнивает рассчитанный им уровень «Доверия» B с уровнем «Доверия» B, который прислал B.

В случае если значения не сходятся, G рассылает всем «Доверителям» из перечня, присланного B, уровень «Доверия», присланный B, и уровень «Доверия», рассчитанный им с просьбой о проверке расчетов.

В случае если значения сошлись, G рассылает в соответствующих криптоконтейнерах всем «Доверителям» B запрос сертификата, который был выдан B для повышения уровня «Доверия». Следует отметить, что G запрашивает сертификаты только у тех «Доверителей», перечень которых прислал ему пользователь B. Иными словами, G не запрашивает сертификаты у «Доверителей», которые присутствуют в списке «Доверителей», которые не подписали уровень «Доверия» B. Также G запрашивает у «Доверителей» открытый ключ их ЭЦП «Доверия» для проверки их подписей. В случае если G не обладает открытыми ключами пар шифрования «Доверителей», он использует процедуру общения через «Доверителя», описанную в [4] (см. рис. 7).

Рисунок 7. Пользователь B, в соответствии с запросом уровня «Доверия», полученным от пользователя G, создает криптоконтейнер, в который он помещает перечень «Доверителей» B, перечень сертификатов «Доверия» B и уровень «Доверия», подписанный всеми «Доверителями»

Рисунок 7. Пользователь B, в соответствии с запросом уровня «Доверия», полученным от пользователя G, создает криптоконтейнер, в который он помещает перечень «Доверителей» B, перечень сертификатов «Доверия» B и уровень «Доверия», подписанный всеми «Доверителями».

G расшифровывает криптоконтейнер, проверяет подпись B в уровне «Доверия» B, складывает все присланные сертификаты и сравнивает выработанное им значение уровня «Доверия» B с тем, которое прислал B. Далее G запрашивает у«Доверителей» из перечня, который также прислал B, сертификаты уровня «Доверия» B и открытые ключи ЭЦП «Доверия»

G собирает все присланные «Доверителями» сертификаты. Далее G складывает сертификаты с помощью операции сложения по модулю два и получает уровень «Доверия» пользователя B. Он подписывает этот уровень «Доверия» B иотсылает в соответствующем криптоконтейнере случайному «Доверителю» из перечня тех «Доверителей», которые прислали ему сертификаты, рассчитанный и подписанный им уровень «Доверия» B. В криптоконтейнер G также вкладывает перечень «Доверителей», сертификаты которых были использованы им при расчете.

Один из «Доверителей» получает уровень «Доверия» B, рассчитанный и подписанный G, и перечень «Доверителей». Он проверяет подпись пользователя G и рассчитывает свой уровень «Доверия» B, основываясь только на тех сертификатах, которые указаны в перечне «Доверителей», присланном G. Полученный уровень «Доверия»B он сравнивает с уровнем «Доверия», который прислал G. Если значения не совпали, он отправляет G ошибку. Если значения совпали, он подписывает уровень «Доверия» B, уже подписанный G, и пересылает его в соответствующем криптоконтейнере следующему «Доверителю» из перечня «Доверителей», который прислал G. В криптоконтейнер он также вкладывает перечень «Доверителей».

Таким образом, уровень «Доверия» B, рассчитанный G, и перечень «Доверителей» двигаются по цепочке, пока не дойдут до последнего «Доверителя» из перечня.

В случае если какой-то из «Доверителей» из этого перечня вышел из РСС и более не доступен, последний «Доверитель» из перечня, доступный в РСС, отправляет G соответствующим образом зашифрованный криптоконтейнер с уровнем «Доверия» B, подписанным всеми «Доверителями» из перечня, и перечень «Доверителей», которые вышли из РСС и не могут подписать уровень «Доверия», рассчитанный G.

G получает уровень «Доверия», проверяет подписи всех «Доверителей», перерассчитывает уровень «Доверия» B без учета сертификатов тех «Доверителей», которые указаны в перечне «Доверителей», подписи которых собрать не удалось. После этого G сравнивает полученное им значение со значением, которое прислали «Доверители».

С этого момента процедура проверки уровня «Доверия» может считаться законченной. Пользователь G может повторно инициировать проверку уровня «Доверия» B для уточнения через некоторое время (см. рис. 8).

Рисунок 8. Пользователь G рассчитывает уровень «Доверия» B на основе присланных ему «Доверителями» B сертификатов. Далее он подписывает рассчитанный уровень и отправляет его и перечень использованных сертификатов «Доверителю» 1 пользователя B

Рисунок 8. Пользователь G рассчитывает уровень «Доверия» B на основе присланных ему «Доверителями» B сертификатов. Далее он подписывает рассчитанный уровень и отправляет его и перечень использованных сертификатов «Доверителю» 1 пользователя B.

«Доверитель» 1 рассчитывает свой уровень «Доверия» B и сравнивает его с тем, который прислал G. В случае совпадения он подписывает присланный уровень «Доверия» B и отправляет следующему случайному «Доверителю» B вместе сперечнем использованных сертификатов.

В данном случае подразумевается, что «Доверитель» 2 пользователя B вышел из сети после отправки G сертификата повышения уровня «Доверия» B и не может участвовать в процедуре.

Таким образом, «Доверитель» 1 отправляет любому из «Доверителей» B, которые есть в сети на момент отправки. В данном случае это «Доверитель» 3 пользователя B.

«Доверитель» 3 выполняет действия, аналогичные тем, которые выполнил «Доверитель» 1, подписывает уровень «Доверия» B, присланный G, и отправляет его последнему «Доверителю» N, который также выполняет действия, аналогичные действиям «Доверителей» 1 и 3, и отправляет G подписанный всеми участниками процедуры уровень «Доверия» B и перечень использованных при расчете сертификатов. В этом перечне будет отсутствовать «Доверитель» 2, так как он вышел из сети и не «утвердил» уровень «Доверия», присланный G, своей подписью.

Пользователь G проверяет подписи всех участников и может либо быть удовлетворенным результатом текущего расчета, либо начать повторную проверку, например, через некоторое время, когда «Доверитель» 2 появится в сети

В данной работе описаны процедуры повышения, понижения и проверки, которые являются частью метода «Доверия», часть процедур которого описана в [4].

В заключение хотелось бы отметить, что основным и главным недостатком процедур повышения, понижения и проверки уровня «Доверия» является необходимость нахождения «Доверителей» пользователя в РСС. В ином случае окончание процедур может быть приостановлено до момента появления «Доверителей», которые отсутствуют на момент выполнения процедур.

Решения к этим и другим проблемам будут разработаны в дальнейших работах.

  1. Богораз А.Г., Пескова О.Ю. Централизованные и распределенные социальные сети // Университет ИТМО, Технологии информационного общества в науке, образовании и культуре: сборник научных статей. Труды XVII Всероссийской объединенной конференции «Интернет и современное общество» (IMS-2014), Санкт-Петербург, 19- 20 ноября 2014 г.
  2. Богораз А.Г. Создание методов защиты децентрализованных распределенных сетей.// «Системный администратор», № 4, 2017 г. URL: http://samag.ru/archive/article/3419 (дата обращения: 16.06.2017).
  3. Богораз А.Г. Метод регистрации нового пользователя в распределенной социальной сети. // «Системный администратор», № 5, 2017 г. URL: http://samag.ru/archive/article/3439 (дата обращения: 16.06.2017).
  4. Богораз А.Г. Метод разграничения возможностей пользователей при взаимодействии с распределенными социальными сетями. Процедуры получения первого уровня «Доверия» и общения через «Доверителя». // «Системный администратор», № 6, 2017 г. URL: http://samag.ru/archive/article/3459 (дата обращения: 16.06.2017).

Ключевые слова: распределенные социальные сети, РСС, социальные сети, доверие, уровень доверия, разграничение доступа, доверитель, повышение, понижение, проверка.


The mechanism of differentiation of the user opportunities when interacting with Distributed Social Networks. Increasing, decreasing and checking the «Trust» level of the user

Bogoraz A.G., Department of Information Technologies Security, Institute of Computer Technologies and Information Security, Southern Federal University, Rostov Region, Taganrog, bogoraz.a.g@gmail.com

Abstract: This work is a continuation of the development of a method for distinguishing users capabilities when interacting with Distributed Social Networks (DSN). This article describes the procedures for increasing, decreasing and checking the level of the user's «Trust» and providing a list of users involved at the procedures, restrictions and recommendations related to the operation of the procedures. Also, the work describes situations in which the «Principals» are absent from the DSN at the time of performing the procedures or for a long time it does not appear in it.

Keywords: Distributed Social Network, DSN, social network, trust, level of trust, demarcation, principal, increasing, decreasing, checking.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru