информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модель надежности отказоустойчивой... 
 ЛК нашла бэкдор в ASUS Live Update 
 Facebook хранил часть пользовательских... 
 NSA выпустило Гидру 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Нужен совет по ассиметрии, плиз! 09.01.02 17:04  Число просмотров: 1217
Автор: paganoid Статус: Member
<"чистая" ссылка>
>
> Если я правильно понял, ты предлагал сделать так:

scippy

угу, именно так

>
> Так вот, проблема в следующем:
> Злобный Юзер, желая изменить данные, и не имея при этом
> ключа WriteKey прочитает зашифрованные данные, изменит их
> произвольным образом и запишет, используя старый ключ
> AESKey, вместо того, что бы генерить новый. Все будет
> выглядеть так, как будто так все и было.

ну КАК же, КАК он получит "старый" AESKey, когда у него имеется только ReadKey ? AESKey кеем владеет токма СИСТЕМА в момент шифровки и расшифровки ? Записать данные без знания WriteKey низзя (про целостность и защиту от подмены WriteKey мы не говорили - хоть бери от него хеш и храни на сервере. Твоя схема также контролирует целостность - но тк это детали. Допустим, в моей от исходного текста сразу на сервере берешь хеш и хранишь вместе с зашифрованным текстом)

и вообще как это все у тебя выглядит

(база (в худшем случае под контролем злоумышленника)) 
   |
   | (канал 1)
   |
 (безопасный сервер шифрования, никогда не содержащий вредоносного кода) 
   |
   | (канал 2)
   |
 (сборище пользователей и потенциальных врагов партии и правительства)


---

или как?
в моем случае по каналу 1 никогда не передается ключ AES (там ездят только уже шифрованные данные ) и по каналу 2 тоже (там другие ключи). Так ГДЕ же он чтойнить зашифрует-то? (тут я снова умалчиваю про целостность каналов и перехват других ключей. Там можно и посередине вклиниться и т.п., но это отдельная песня, которую я дальше затяну)

> > Сервер должен быть защищен.
> Ну это-то понятно. Речь идет исключительно о
> криптографической стороне дела.

ну дк все зашифровано, комар носа не подточит :)

> <----- новая схема skipped----->
>
> > да, приведенная схема вроде корректна.
> >
> > А теперь самый интересный момент - как ты будешь
> вручать
> > ключ ReadKey юзерам.
>
> Я хочу сделать так:
> 1) Каждый участник процесса - Админ, Юзер, ... имеют логин
> и пароль. (Гость может их и не иметь ;) Пароли
> пользователей - это не AccessKey, ReadKey и WriteKey из
> моей схемы, а отдельные Личные пароли, выбираемые самими
> пользователями
> 2) У каждого пользователя (в зависимости от его логина)
> есть таблица системных паролей AccessKey, ReadKey и
> WriteKey на каждый объект в системе (например, на каждую
> таблицу БД). Таблица эта зашифрована AES'ом c помощью
> Личного пароля пользователя. Содержание таблицы зависит от
> прав пользователя. Так в нашем случае в таблице Админа есть
> все пароли, в таблице Юзера есть только AccessKey и
> ReadKey.
>
> Процесс управления пользователями и правами выглядит так:
> 1) По умолчанию есть один Админ с логином "Вася" и паролем
> "Пупкин", у него есть все права.
> 2) В начале работы с системой Вася меняет свой пароль на
> любой, какой хочет, скажем "Пупкин1", этим паролем
> шифруется его таблица системных паролей, сам же пароль
> "Пупкин1" нигде не хранится, даже зашифрованным, и знает
> его только Вася.

тебе все равно, видимо, надо будет хранить хеш от пароля, чтобы контролировать правильность его ввода. Или это будет делаться на фазе расшифровки ? Но тогда непонятно, как пароль будет передаваться по сети.. Если ты хранишь хеш - это схема challenge-response (атаку women-in-the-middle ;) не пока рассматриваю, ты свой вариант предложи, а я к нему привяжусь ;) ). Послал rnd , принял обратно rnd и hash(rnd + hash(password)) , достал из базы хранимое pwdhash (равное hash(password)), вычислил и сравнил значения, все. А как это будет у тебя, непонятно, хеша - то нет.... Не целую же строчку таблицы с Access+Write+... слать...

Ну и вообще, как ты думаешь этот пароль по сети пересылать в момент смены и ввода? это и имелось ввиду под "вручать ключ"

> 3) Дальше Вася может при желании добавить нового
> пользователя - Юзера, присвоить ему логин "Петя" и пароль
> "Маша", создать его таблицу системных паролей, закинуть
> туда только AccessKey и ReadKey, зашифровать ее паролем
> "Маша" и забыть этот пароль навсегда (не забыв сказать Пете
> ;)
> 4) И т.д...

то же самое, интересна фаза передачи Васей Пете "Маши" ;)
<theory> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2019 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach