Перейти к содержимому

Фотография

Ищется программист JavaScript, ActiveX знакомый с криптографией


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 116

#101
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Нет, как-то не убедительно. С кем CSP должен уживаться?

Как минимум со своим разработчиком :) А разработчик должен уживаться со всякими мануалами, например с MSDN.. :)

За разработчика не беспокойтесь. Для Windows разработчиком CSP в основном является Microsoft Corp. С таким разработчиком CSP уживаются хорошо. :rolleyes:

А я не разработчик CSP, могу всего лишь разрабатывать Windows-приложения, которые обращаются к CSP через CryptoAPI.

А по сути: вопрос немного странный..Вы когда разберетесь что вас конкретно интересует, тогда и спрашивайте, хорошо?

Нет, это ваш ответ странный, а не мой вопрос. Меня конкретно интересует, почему CSP не может быть самостоятельным COM-объектом. Не знаете? Так и скажите.

пс: возникает смутное подозрение, что вы тролль :smoke:

Так, ответить нечего, и переходим на личности? :-) Пока ваши "смутные подозрения" не являются доказательствами, лучше держите их при себе. А не нравится общаться со мной - не общайтесь. Не проблема.

Сообщение отредактировал Visual1: 26.02.2009, 18:45:19

  • 0

#102
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений

Нет, это ваш ответ странный, а не мой вопрос. Меня конкретно интересует, почему CSP не может быть самостоятельным COM-объектом. Не знаете? Так и скажите.

Вообще-то я на этот вопрос уже ответила..Ну хорошо, попробую подробнее объяснить.
CSP - это библиотека, которая реализует callback`и на cp-шные функции. Библиотека после регистрации прописывается в реестре и начинает перехватывать CryptoAPI-шные функции, в случае если идет обращение именно к этому криптопровайдеру.
COM при регистрации выполняет совершенно другие действия.. И прописывается в другое место. И ведет себя совершенно по-другому.. Чтобы с ним работать его нужно явно вызвать. Пока не вызовешь - функционала не будет. А перехватывать-то функции надо..

Чтобы стало еще понятнее, попробую объяснить всю схему..
Есть некоторое API (в частности CryptoAPI). Это самое API позволяет осуществлять разные действия: ключи генерить, подписывать там.. ну всяко-разно... Есть набор криптопровайдеров(CSP), которые разделены по принципу: "Один тип алгоритма - один криптопровайдер (CSP)". Для того чтобы обратиться к конкретному CSP нужно вызвать CryptoAPI функцию, с указанием того, какой CSP будет юзаться.. На обычных языках (C/C++, C#, VB) делается это легко и просто.. Браузер не позволяет напрямую обращаться к API (любому), поэтому делается обертка в виде COM-объекта, внутри которого и реализованы нужные вещи. Вот.

пс: сорри, если обидела :rolleyes:
  • 0

#103
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
За объяснение спасибо. Я пока не могу сказать, согласен ли я с таким объяснением или нет. Возможно, CSP и в самом деле не является COM-объектом. В MSDN Library его называют как-то в общем виде, "независимым программным модулем". Там я нашел для CSP такое определение:

Сryptographic Service Provider (CSP): An independent software module that actually performs cryptography algorithms for authentication, encoding, and encryption.

Вот почему я и спросил, почему независимый (independent) программный модуль не может быть COM-объектом, и с кем он должен "уживаться". :smoke: Хотя для выполнения данной задачи на С/С++, VB и/или других нескриптовых ЯВУ это, может, и не принципиально. Например, в тех примерах на VB, которые есть у меня, все объявления функций CryptoAPI для работы с CSP имеют формат обычных объявлений функций. Обертки этих функций делаются только для приведения типов между С и VB. Так что да, возможно, вы правы. :rolleyes:
  • 0

#104
рюмка

рюмка
  • В доску свой
  • 3 995 сообщений

А я не разработчик CSP, могу всего лишь разрабатывать Windows-приложения, которые обращаются к CSP через CryptoAPI.

я всё таки вставлю свои пять копеек....
вот это единственная фраза с которой я согласна, может быть вы и разработчик, но вы не имеете представления ни о провайдере ни о ком-объекте...

опять же википедия:
Приложения работают не напрямую с криптопровайдером, а вызывают функции CryptoAPI из библиотек Advapi32.dll и Crypt32.dll. Операционная система фильтрует вызовы этих функций и вызывает соответствующие функции CryptoSPI, которые непосредственно работают с криптопровайдером.

кстати про com если хотите можете там же почитать

получается что ваш ком объект может вызывать крипто апи но никак не сможет быть зарегистрирован в системе криптопровайдером

провайдер и ком объект - это dll, может вы поэтому и решили что одно = второе, а следует помнить что COM - это технологический стандарт а не одна дллка
  • 0

#105
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

может быть вы и разработчик, но вы не имеете представления ни о провайдере ни о ком-объекте...

Мне, конечно, приятно, что дамы уделяют мне внимание даже в вечернее время... :rolleyes: Но вот доброжелательным это внимание не назовешь. :-) Явно просматривается излишняя категоричность (и даже некоторая агрессивность), без особых на то оснований.

опять же википедия:
Приложения работают не напрямую с криптопровайдером, а вызывают функции CryptoAPI из библиотек Advapi32.dll и Crypt32.dll. Операционная система фильтрует вызовы этих функций и вызывает соответствующие функции CryptoSPI, которые непосредственно работают с криптопровайдером.

Ну и что это по-вашему означает? CSP (провайдер службы шифрования) является или не является COM-объектом?

получается что ваш ком объект может вызывать крипто апи но никак не сможет быть зарегистрирован в системе криптопровайдером

Нет, такого из моих слов не получается. Я только сказал, что приложение Windows обращается к CSP через функции CryptoAPI.

провайдер и ком объект - это dll, может вы поэтому и решили что одно = второе, а следует помнить что COM - это технологический стандарт а не одна дллка

Это вы решили, что будто бы я так решил. :smoke: Я знаю, иногда с СОМ-объектом путают обычную dll, из-за некоторого внешнего сходства с обычными dll. Вдаваться в подробности мне не хотелось бы (здесь это offtopic), но можете не сомневаться: мне известно об интерфейсе IUnknown (базовый интерфейс СОМ), уникальных идентификаторах (GUID), внутри- и внепроцессном взаимодействии, фабриках классов, языке и компиляторе MIDL, библиотеках TLB, которые генерирует этот компилятор, и о многих других вещах. Если будет необходимость, можем побеседовать об этом более подробно в другой теме.

Сообщение отредактировал Visual1: 26.02.2009, 22:32:39

  • 0

#106
T. Anre

T. Anre

    Data Miner

  • В доску свой
  • 2 327 сообщений
Дык... все-таки можно сделать rsa-подобную библиотеку без ActiveX для асимметричного шифрования, только при условии, что файловая система из которой будет браться приватный ключ будет у пользователя в голове. :rolleyes:
p.s. Здесь есть ошибки...
  • 0

#107
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений

Дык... все-таки можно сделать rsa-подобную библиотеку без ActiveX для асимметричного шифрования, только при условии, что файловая система из которой будет браться приватный ключ будет у пользователя в голове. :rolleyes:
p.s. Здесь есть ошибки...

Аха..Можно :smoke: Только придется реализовавыть работу с большими числами на скриптовом языке..Комфортным это никак не назовешь :) Нее, ну можно конечно перенести арифметику в голову пользователя, а че? Пусть себе считает :-)
  • 0

#108
рюмка

рюмка
  • В доску свой
  • 3 995 сообщений

Мне, конечно, приятно, что дамы уделяют мне внимание даже в вечернее время... :dandy: Но вот доброжелательным это внимание не назовешь. :-) Явно просматривается излишняя категоричность (и даже некоторая агрессивность), без особых на то оснований.

не имела ввиду ничего плохого, извеняюсь если задела)

Ну и что это по-вашему означает? CSP (провайдер службы шифрования) является или не является COM-объектом?


НЕТ!

Нет, такого из моих слов не получается. Я только сказал, что приложение Windows обращается к CSP через функции CryptoAPI.


это получается из моих слов! ваш ком объект и есть то приложение которое обращается к цсп

но можете не сомневаться: мне известно об интерфейсе IUnknown (базовый интерфейс СОМ), уникальных идентификаторах (GUID), внутри- и внепроцессном взаимодействии, фабриках классов, языке и компиляторе MIDL, библиотеках TLB, которые генерирует этот компилятор, и о многих других вещах. Если будет необходимость, можем побеседовать об этом более подробно в другой теме.

супер, я за вас рада, я так много не знаю)))))
  • 0

#109
T. Anre

T. Anre

    Data Miner

  • В доску свой
  • 2 327 сообщений

Только придется реализовавыть работу с большими числами на скриптовом языке..

Зачем? Выводим диалоговое окно для ввода результата... пусть перемножает себе простые числа в голове... на то эти числа и простые :-) Плюс предположим, что формат нашего приватного ключа будет бинарным, то пользователю нужно еще и операции с base64 производить. :dandy:
  • 0

#110
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений

Плюс предположим, что формат нашего приватного ключа будет бинарным, то пользователю нужно еще и операции с base64 производить.

А кому сейчас легко? Написать им таблицу соответствия bin-base64, распечатать, повесить на стенку, пусть конвертят :dandy:

Хотя для выполнения данной задачи на С/С++, VB и/или других нескриптовых ЯВУ это, может, и не принципиально.

Это принципиально для любых языков! Не принципиально то, откуда вызывать CryptoAPI :-)
  • 0

#111
Vadziku

Vadziku

    Один, просто Один

  • В доску свой
  • 17 674 сообщений


Третий параметр - это имя самого криптопровайдера, никак не его "компонента".. В терминах путаетесь :smoke:

Сами вы путаетесь. :) Для большинства CSP, разработанных в Microsoft, существуют системные константы. Например, MS_DEF_RSA_SIG_PROV - константа для обозначения Microsoft RSA Signature Provider. Эти константы (а не "имя", как вы утверждаете) как раз и используются в качестве третьего параметра (pszProvider).

Я не большой спец в тонкостях программирования, но вы можете мне объяснить, зачем при разговоре о шифровании вы употребляете алгоритм, предназначенный для цифровой подписи? Вроде про подпись здесь нигде речи не шло, задача была в шифровании сообщений ...
Или я не прав?
  • 0

#112
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений

Я не большой спец в тонкостях программирования, но вы можете мне объяснить, зачем при разговоре о шифровании вы употребляете алгоритм, предназначенный для цифровой подписи? Вроде про подпись здесь нигде речи не шло, задача была в шифровании сообщений ...
Или я не прав?

Дело в том, что Microsoft RSA Signature Provider - это имя так сказать собирательное :kiss:.. Этот CSP умеет и подписывать, и шифровать (только ключевой обмен на нем не организуешь). И то и другое основано на RSA (шифровать на базе него тоже можно) :)
  • 0

#113
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Я не большой спец в тонкостях программирования, но вы можете мне объяснить, зачем при разговоре о шифровании вы употребляете алгоритм, предназначенный для цифровой подписи? Вроде про подпись здесь нигде речи не шло, задача была в шифровании сообщений ...
Или я не прав?

Разговор шел не о самом алгоритме шифрования, а об указании CSP (Cryptographic Service Provider - провайдер службы шифрования) при вызове функции CryptAcquireContext(). Имя CSP, которое указывается при вызове этой функции, является информативным, оно отражает название алгоритма, реализуемого тем или иным семейством CSP. Согласно справочных материалов MSDN, в Windows провайдер CSP реализован в виде независимого программного модуля, и этот модуль предоставляет функции не только для формирования цифровой подписи, но и шифрования сообщений.
  • 0

#114
Vadziku

Vadziku

    Один, просто Один

  • В доску свой
  • 17 674 сообщений


Я не большой спец в тонкостях программирования, но вы можете мне объяснить, зачем при разговоре о шифровании вы употребляете алгоритм, предназначенный для цифровой подписи? Вроде про подпись здесь нигде речи не шло, задача была в шифровании сообщений ...
Или я не прав?

Дело в том, что Microsoft RSA Signature Provider - это имя так сказать собирательное :).. Этот CSP умеет и подписывать, и шифровать (только ключевой обмен на нем не организуешь). И то и другое основано на RSA (шифровать на базе него тоже можно) :)

Заставили старика лезть в Интернет :kiss:
Функции подписи и шифрования предоставляет провайдер типа PROV_RSA_FULL, а этот типа PROV_RSA_SIG предоставляет только функционалитет подписи.
Я собственно на название в прошлый раз ориентировался, да на знание того, что в провайдерах эти функции разделены как правило.
  • 0

#115
Vadziku

Vadziku

    Один, просто Один

  • В доску свой
  • 17 674 сообщений

Согласно справочных материалов MSDN, в Windows провайдер CSP реализован в виде независимого программного модуля, и этот модуль предоставляет функции не только для формирования цифровой подписи, но и шифрования сообщений.

Угу. Так вот согласно тех же материалов, приведенный вами провайдер шифрованием не занимается :kiss:
А речь ранее шла именно про шифрование :)
Я только про это.
Меня просто поразили такие ляпсусы во вроде бы "серъезном" разговоре.
Притом я действительно ни разу не спец в этих тонкостях, я больше просто по криптографии, без приложения к программному коду.
  • 0

#116
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений
Разговор серьезный, насчет этого вы не ошиблись. А вот специалистом в этой области я не являюсь, совсем недавно начал интересоваться этой темой.
  • 0

#117
topcraze

topcraze
  • В доску свой
  • 2 009 сообщений

Заставили старика лезть в Интернет
Функции подписи и шифрования предоставляет провайдер типа PROV_RSA_FULL, а этот типа PROV_RSA_SIG предоставляет только функционалитет подписи.

Ойй...Вадзику, ты прав... :kiss:
  • 0


Количество пользователей, читающих эту тему: 3

пользователей: 0, неизвестных прохожих: 3, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.