Microsoft открывает U-prove



Коротко:
C# code.msdn.microsoft.com/uprovesdkcsharp
Java code.msdn.microsoft.com/uprovesdkjava

UPD Нашел хорошую статью 2-годичной давности



Для тех, кто не слышал про U-prove, небольшое введение.

Проблема
Для любых онлайн покупок сегодня нам покупателям приходится открывать слишком много информации о себе: имя, фамилию, адрес, телефон, естественно номер кредитной карточки. Таким образом, если эта информация становится доступной злоумышленнику, то можно нажить себе немало головной боли. Эта проблема становится еще более злободневной с внедрением так называемых one-click покупок (амазон, если мне не изменяет память, даже патентовал данный способ). В таком случае онлайн магазины хранят абсолютно всю информацию в своих базах данных до скончания веков.

Статус-кво
К сожалению, на рынке существует не так много альтернатив. Я отношу к ним OpenID (типичный пример использования — Google Checkout), Windows Live ID. Но эти решения в несколько иной (на мой взгляд) области — аутенификации. В то время как хотелось бы иметь простой, надежный и криптостойкий метод для верификации некоторой информации, например, денежной транзакции. Самое главное, «продавец» должен знать ровно столько информации сколько нужно для совершения корректной транзакции.

Решение
Технология U-prove, созданная Стэфаном Брэндсом (из компании Credentica, купленной компанией Майкрософт 2 года назад www.credentica.com/), сочетает в себе де-факто индустриальный стандарт — криптосистемы на основе открытого/закрытого ключа и, самое интересное, возможность не давать доступа к некоторым элементам переданной информации (что невозможно в RSA).

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

За остальным отсылаю к часовому видео
channel9.msdn.com/shows/Identity/Deep-Dive-into-U-Prove-Cryptographic-protocols/

и/или бесплатной книге
www.credentica.com/the_mit_pressbook.html

Выпущенный в свободное плавание SDK под «свободной лицензией» позволяет нам поиграться с данной технологией децентрализованно (без привязки к «крупным игрокам»).
+34
3 марта 2010, 20:59
24
vimmer 65,4

комментарии (16)

НЛО прилетело и опубликовало эту надпись здесь
0
xdevel #
Да, да, будет смеяться отдел К :) правда до определенного момента, когда им станет просто интересно
0
Halt #
А чем это принципиально отличается от обычного подписывания документа? Ну создал себе XMLку с теми данными что надо, да и подписал ее. Или это и делается, но уже «под громким именем»?
0
vimmer #
подпись нужна для аутенификации.
В общем случае смысл подписи в том, чтобы удостовериться в целостности письма и подтверждения авторства. Здесь задачи несколько иные.
0
Halt #
Смотря кто подписывает и как.
0
vimmer #
загадочный комментарий =)

под «обычным подписыванием документа» я, например, имею в виду следующее: добавить нюанс к тексту, вычислить хэш (текст+нюанс), подписать с помощью своего закрытого ключа и отослать адресату.

Как подписываете вы?
–1
Halt #
Да я не об этом. Я говорил о том что если кусок данных подписывает пользователь то это:

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

Когда документ (уже подписанный пользователем) подписывает третья сторона (банк, серт. центр, Вася Пупкин) — то он уже выступает гарантом валидности со своей стороны (под свою ответственность).

С технической т.з., это одно и то же. А с логики нет разумеется.
0
vimmer #
хаха, вы это сейчас со мной так спорите?

смотрим мой начальный коммент:
>>подпись нужна для аутенификации.
>>В общем случае смысл подписи в том, чтобы удостовериться в целостности письма и
>>подтверждения авторства. Здесь задачи несколько иные.

на что вы отвечаете «смотря кто и как подписывает» и далее просто подтверждаете мои слова более общими формулировками =)

ну да ладно, это не суть важно. Но вы все равно не видите разницы между даже «вашим вариантом» подписи документа и протоколом u-prove? ;)
0
vk2 #
Полагаю, там будет скорее цепочка вроде «подготовка данных в XML» — «шифрование открытым ключом карточного процессинг-центра, добавление открытых данных, подписывание своим ключом» — «передача результата продавцу» — «подписывание данных частным ключом продавца» — «передача в процессинг-центр».

Хотя что сочинять. Надо почитать и посмотреть, кто угадал )
0
Halt #
Ну примерно это я и представлял. Другое дело что тут нет принципиально новых идей, а подается чуть ли не как новый криптографический протокол :)

Все это уже миллион лет применялось. Конечно не в единой стандартной форме, но было. Зная же «любовь» Микрософта к всякого рода стандартам, боюсь предположить, во что вылилось бы глобальное использование.
0
vimmer #
вы основываете свой разоблачительный комментарий на догадке (ошибочной, кстати), прозвучавшей в другом комментарии =)

посмотрите лучше видео.
0
vimmer #
не совсем так, точнее совсем не так =)
там используется более интересная схема, потому что в вашем случае нет гарантии аутентичности покупателя. Я же могу добавить все что угодно в таком случае.
0
kugaevsky #
Всем отличается.
Тут достоверность информации подтверждается третьей стороной.
«Создавая XML-ку» вы можете положить туда любую информацию. При применении описываемой технологии неизменность информации гарантируется.
–2
Halt #
Так блин я же сказал что она подписывается.
НЛО прилетело и опубликовало эту надпись здесь
+1
Ascard #
и что ещё более неожиданно (по крайней мере для меня) они даже добавили реализацию на Java
а у SDK на C# ненавязчиво так написано что надо VS2010 :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.