Atom Лента - Форум КриптоПро - Тема:Как сделать "по-правильному" - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Kaksdelat'"po-pravil'nomu"-10:1Copyright 2024 Форум КриптоПро2024-03-29T07:48:15Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruPavluxahttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=619&name=PavluxaPavluxahttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=619&name=PavluxaВасилий Пряниковъhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=623&name=Василий ПряниковъКирилл Соболевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=35&name=Кирилл СоболевВасилий Пряниковъhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=623&name=Василий ПряниковъКирилл Соболевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=35&name=Кирилл СоболевВасилий Пряниковъhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=623&name=Василий ПряниковъКирилл Соболевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=35&name=Кирилл СоболевВасилий Пряниковъhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=623&name=Василий ПряниковъКирилл Соболевhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=35&name=Кирилл СоболевВасилий Пряниковъhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=623&name=Василий ПряниковъYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid2425:1Как сделать "по-правильному"<table class="content postContainer_Alt" width="100%"><tr><td>Помогите пожалуйста!<br />Что делать если при вызове функции<br />CryptAcquireContext(@hProv, cont, nil, 75, CRYPT_NEWKEYSET);<br /><br />крипто про 3.0 КС1 выдает окно с надписью вставьте чистый ключевой носитель (окно содержит только кнопку Отмена)<br />В системе установлен считыватель - реестр<br /><br />контейнер при этом не создается, хотя функция возвращает true</td></tr></table>2008-07-04T01:17:43+04:002008-07-04T01:17:43+04:00Pavluxa<table class="content postContainer_Alt" width="100%"><tr><td>Помогите пожалуйста!<br />Что делать если при вызове функции<br />CryptAcquireContext(@hProv, cont, nil, 75, CRYPT_NEWKEYSET);<br /><br />крипто про 3.0 КС1 выдает окно с надписью вставьте чистый ключевой носитель (окно содержит только кнопку Отмена)<br />В системе установлен считыватель - реестр<br /><br />контейнер при этом не создается, хотя функция возвращает true</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2358:1Как сделать "по-правильному"<table class="content postContainer" width="100%"><tr><td>Спасибо за пояснения.<br />А правильно ли будет в такой схеме защиты использовать ключи, полученные здесь: <a rel="nofollow" href="http://www.cryptopro.ru/certsrv/" title="http://www.cryptopro.ru/certsrv/">http://www.cryptopro.ru/certsrv/</a> ?<br />Ведь от этого защита, по идее, не должна пострадать.<br />И при этом нет необходимости проверять валидность сертификата, верно? Кажется, что достаточно убедиться, что закрытый ключ соответствует прошитому в программе открытому, а то что сертификат валиден - мы не сомневаемся, ведь он наш.<br /><br />Дописка: хотя, по пункту 1 наверное погорячился: на главной странице "Тестового центра сертификации" сказано, что "...Центр предназначен только для целей тестирования криптопровайдера КриптоПро CSP и не должен использоваться для других целей".</td></tr></table>2008-07-01T20:52:37+04:002008-07-01T20:52:37+04:00Василий Пряниковъ<table class="content postContainer" width="100%"><tr><td>Спасибо за пояснения.<br />А правильно ли будет в такой схеме защиты использовать ключи, полученные здесь: <a rel="nofollow" href="http://www.cryptopro.ru/certsrv/" title="http://www.cryptopro.ru/certsrv/">http://www.cryptopro.ru/certsrv/</a> ?<br />Ведь от этого защита, по идее, не должна пострадать.<br />И при этом нет необходимости проверять валидность сертификата, верно? Кажется, что достаточно убедиться, что закрытый ключ соответствует прошитому в программе открытому, а то что сертификат валиден - мы не сомневаемся, ведь он наш.<br /><br />Дописка: хотя, по пункту 1 наверное погорячился: на главной странице "Тестового центра сертификации" сказано, что "...Центр предназначен только для целей тестирования криптопровайдера КриптоПро CSP и не должен использоваться для других целей".</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2355:1Как сделать "по-правильному"<table class="content postContainer_Alt" width="100%"><tr><td>По контейнеру секретного ключа можно получить открытый с помощью функции CryptExportPublicKeyInfoEx, затем сравнить с имеющимся CertComparePublicKeyInfo. А можно подписать какие-нибудь случайные данные секретным ключем, потом проверить открытым. </td></tr></table>2008-07-01T20:25:54+04:002008-07-01T20:25:54+04:00Кирилл Соболев<table class="content postContainer_Alt" width="100%"><tr><td>По контейнеру секретного ключа можно получить открытый с помощью функции CryptExportPublicKeyInfoEx, затем сравнить с имеющимся CertComparePublicKeyInfo. А можно подписать какие-нибудь случайные данные секретным ключем, потом проверить открытым. </td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2354:1Как сделать "по-правильному"<table class="content postContainer" width="100%"><tr><td>А можно определить по имеющимся открытому и закрытому ключам, соответствует ли открытый закрытому или нет? Такая возможность есть в CryptoAPI? Если да, то логичнее сделать так. Спасибо за идею!</td></tr></table>2008-07-01T20:15:11+04:002008-07-01T20:15:11+04:00Василий Пряниковъ<table class="content postContainer" width="100%"><tr><td>А можно определить по имеющимся открытому и закрытому ключам, соответствует ли открытый закрытому или нет? Такая возможность есть в CryptoAPI? Если да, то логичнее сделать так. Спасибо за идею!</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2353:1Как сделать "по-правильному"<table class="content postContainer_Alt" width="100%"><tr><td>Понятно. Я думаю, можно не возиться с шифрованием/расшифрованием - достаточно просто проверить наличие сертификата с соответствующим секретным ключем.</td></tr></table>2008-07-01T19:49:51+04:002008-07-01T19:49:51+04:00Кирилл Соболев<table class="content postContainer_Alt" width="100%"><tr><td>Понятно. Я думаю, можно не возиться с шифрованием/расшифрованием - достаточно просто проверить наличие сертификата с соответствующим секретным ключем.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2350:1Как сделать "по-правильному"<table class="content postContainer" width="100%"><tr><td>В первом посте не упомянул, но "черный ход" нужен для нас (разработчиков): с помощью него мы будем тестировать ПО, иначе тестирование значительно усложнится и удлинится. А зашифрованные данные, "прошитые" в программу, - несущетсвенная информация, "мусор". Я сомневаюсь, что мы можем потерять свой закрытый ключ, но если даже это произойдет, то мы просто выпустим ПО с "мусором" под новые ключи.</td></tr></table>2008-07-01T18:08:08+04:002008-07-01T18:08:08+04:00Василий Пряниковъ<table class="content postContainer" width="100%"><tr><td>В первом посте не упомянул, но "черный ход" нужен для нас (разработчиков): с помощью него мы будем тестировать ПО, иначе тестирование значительно усложнится и удлинится. А зашифрованные данные, "прошитые" в программу, - несущетсвенная информация, "мусор". Я сомневаюсь, что мы можем потерять свой закрытый ключ, но если даже это произойдет, то мы просто выпустим ПО с "мусором" под новые ключи.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2349:1Как сделать "по-правильному"<table class="content postContainer_Alt" width="100%"><tr><td>Ну хорошо, спрошу по другому - если человек, который в теории имеет возможность воспользоваться черным ходом, свой секретный ключ потерял - что делать с прошитыми в программу данными?</td></tr></table>2008-07-01T17:57:07+04:002008-07-01T17:57:07+04:00Кирилл Соболев<table class="content postContainer_Alt" width="100%"><tr><td>Ну хорошо, спрошу по другому - если человек, который в теории имеет возможность воспользоваться черным ходом, свой секретный ключ потерял - что делать с прошитыми в программу данными?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2348:1Как сделать "по-правильному"<table class="content postContainer" width="100%"><tr><td>Ну и пусть истекает, все равно ведь можно расшифровать. "Срок действия сертификата истек" фактически означает, что "если верить текущему компьютерному времени срок действия сертификата истек". Кажется, что не может быть никаких принципиальных запретов для расшифровки в этом случае. Есть данные, которые могут быть расшифрованы закрытым ключом, есть этот самый закрытый ключ - вроде проблем быть не должно. Разве я не прав?</td></tr></table>2008-07-01T17:41:23+04:002008-07-01T17:41:23+04:00Василий Пряниковъ<table class="content postContainer" width="100%"><tr><td>Ну и пусть истекает, все равно ведь можно расшифровать. "Срок действия сертификата истек" фактически означает, что "если верить текущему компьютерному времени срок действия сертификата истек". Кажется, что не может быть никаких принципиальных запретов для расшифровки в этом случае. Есть данные, которые могут быть расшифрованы закрытым ключом, есть этот самый закрытый ключ - вроде проблем быть не должно. Разве я не прав?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2347:1Как сделать "по-правильному"<table class="content postContainer_Alt" width="100%"><tr><td>Т.е. условие активации - просто наличие сертификата с секретным ключем, который соответствует данному ОК? А когда сертификат истечет, что будет?</td></tr></table>2008-07-01T16:52:39+04:002008-07-01T16:52:39+04:00Кирилл Соболев<table class="content postContainer_Alt" width="100%"><tr><td>Т.е. условие активации - просто наличие сертификата с секретным ключем, который соответствует данному ОК? А когда сертификат истечет, что будет?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid2344:1Как сделать "по-правильному"<table class="content postContainer" width="100%"><tr><td>В силу скромного опыта в вопросах защиты, хочу попросить совета у профессионалов в этой области в следующей ситуации.<br /><br />Имеется некий программный продукт, а точнее определенная функция в программном продукте, которая активируется при определенных условиях. Какие это условия - не столь важно. Важно то, что нужно предусмотреть "черный ход" для использования данной функции даже при несоблюдении этих "определенных условий". И, желательно, чтобы рядовой пользователь ПО даже не догадывался о наличии этого "черного хода".<br />Возникла идея реализовать эту возможность по следующей схеме: где-то в программе "прошить" нечто зашифрованное определенным открытым ключом. Вместе с этим "нечто зашифрованным" в программе будет храниться соответствующий открытый ключ. Для того чтобы активировать защищенную функцию, программа должна расшифровать то самое "нечто зашифрованное" используя, естественно, соответствующий закрытый ключ. И если это удастся сделать, то "разблокировывать" защищенную функцию. Перед тем как пытаться использовать "черных ход" программа будет анализировать сертификаты, зарегистрированные в системном хранилище личных сертификатов, и искать сертификат с открытым ключом, который "прошит" в программе. Если такой сертификат будет найден и с ним будет связан закрытый ключ, то программа будет пытаться расшифровать зашифрованное содержимое, и, если это удалось, то активизирует защищенную функцию.<br />Соответственно, те пользователи, в хранилище личных сертификатов которых не зарегистрирован сертификат с открытым ключом, которым зашифровано содержимое, «ничего не почувствуют», а те, у которых такой сертификат зарегистрирован - получат возможность воспользоваться защищенной функцией, если владеют соответствующим закрытым ключом.<br /><br />И, кажется, есть программная возможность не проверять подлинность сертификата УЦ, выдавшего сертификат, на который все завязано в этой схеме. Даже не регистрировать его на том компьютере, на котором предполагается использовать "черный ход".<br /><br />Собственно, просьба оценить приведенную схему, прокомментировать, посоветовать как ее можно улучшить.<br /></td></tr></table>2008-07-01T15:36:26+04:002008-07-01T15:36:26+04:00Василий Пряниковъ<table class="content postContainer" width="100%"><tr><td>В силу скромного опыта в вопросах защиты, хочу попросить совета у профессионалов в этой области в следующей ситуации.<br /><br />Имеется некий программный продукт, а точнее определенная функция в программном продукте, которая активируется при определенных условиях. Какие это условия - не столь важно. Важно то, что нужно предусмотреть "черный ход" для использования данной функции даже при несоблюдении этих "определенных условий". И, желательно, чтобы рядовой пользователь ПО даже не догадывался о наличии этого "черного хода".<br />Возникла идея реализовать эту возможность по следующей схеме: где-то в программе "прошить" нечто зашифрованное определенным открытым ключом. Вместе с этим "нечто зашифрованным" в программе будет храниться соответствующий открытый ключ. Для того чтобы активировать защищенную функцию, программа должна расшифровать то самое "нечто зашифрованное" используя, естественно, соответствующий закрытый ключ. И если это удастся сделать, то "разблокировывать" защищенную функцию. Перед тем как пытаться использовать "черных ход" программа будет анализировать сертификаты, зарегистрированные в системном хранилище личных сертификатов, и искать сертификат с открытым ключом, который "прошит" в программе. Если такой сертификат будет найден и с ним будет связан закрытый ключ, то программа будет пытаться расшифровать зашифрованное содержимое, и, если это удалось, то активизирует защищенную функцию.<br />Соответственно, те пользователи, в хранилище личных сертификатов которых не зарегистрирован сертификат с открытым ключом, которым зашифровано содержимое, «ничего не почувствуют», а те, у которых такой сертификат зарегистрирован - получат возможность воспользоваться защищенной функцией, если владеют соответствующим закрытым ключом.<br /><br />И, кажется, есть программная возможность не проверять подлинность сертификата УЦ, выдавшего сертификат, на который все завязано в этой схеме. Даже не регистрировать его на том компьютере, на котором предполагается использовать "черный ход".<br /><br />Собственно, просьба оценить приведенную схему, прокомментировать, посоветовать как ее можно улучшить.<br /></td></tr></table>