<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; Электронная цифровая подпись]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/810" />
	<updated>2018-05-30T12:02:52Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/810/</id>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3912/#p3912" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>Я правильно понимаю, что можно защитить приложение и dll-ку вместе, а потом protectstorage.dll поместить в общий каталог типа windows\system32?</p></blockquote></div><p>Да. Или добавить путь к нужному каталогу в <a href="https://msdn.microsoft.com/en-us/library/ms682586%28v=vs.85%29.aspx">переменную среды path</a> .</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-05-30T12:02:52Z</updated>
			<id>https://forum.guardant.ru/post/3912/#p3912</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3909/#p3909" />
			<content type="html"><![CDATA[<p>У нас приложение и dll-ка плагин в разных каталогах.<br />Я правильно понимаю, что можно защитить приложение и dll-ку вместе, а потом protectstorage.dll поместить в общий каталог типа windows\system32?</p><p>Ну и при этом приложение и dll-ка плагин должны быть одной разрядности.</p>]]></content>
			<author>
				<name><![CDATA[tonal]]></name>
				<uri>https://forum.guardant.ru/user/1781/</uri>
			</author>
			<updated>2018-05-29T13:08:21Z</updated>
			<id>https://forum.guardant.ru/post/3909/#p3909</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3893/#p3893" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>Или Guardant Armor самостоятельно может отследить что dll-ку, например подменили?</p></blockquote></div><p>В определенном смысле да, т.е. сам принцип работы защищенного приложения такой, что виртуализированные и зашифрованные ф-ии выносятся в специальное хранилище (&quot;по умолчанию&quot; <strong>protectstorage.dll</strong>) куда и передается управление после вызова защищенных ф-ий.</p><p>А если библиотеку и приложение защитить таким образом, что у них будет общее хранилище, то на его уровне и будет контролироваться валидность компонентов приложения (<strong>\защ.exe\</strong> —&gt; вызов —&gt; <strong>protectstorage.dll</strong> &lt;— вызов &lt;— <strong>\защ.dll\</strong>).</p><p>Чтобы подменить библиотеку или исполняемый файл придется пропатчить все вызовы к хранилищу, да еще и так, чтобы все приложение осталось работоспособным. По сути, все сводится к тому, чтобы это было настолько трудоемко делать, что просто бессмысленно. Но в явном виде сообщать что &quot;кто-то подменил библиотеку&quot;, Armor не умеет сейчас и не понятно есть ли в этом смысл.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-05-15T06:15:14Z</updated>
			<id>https://forum.guardant.ru/post/3893/#p3893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3892/#p3892" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Вообщем то Guardant Armor нужен и для 1-го случая, а если надо, то дополнительно усилить защиту можно реализовав свои уникальные, хитрые проверки ключа.</p></blockquote></div><p>Под 1-ым случаем я имел в виду, что приложение при старте должно как-то проверить что dll-ка под защитой.<br />Причём длл-ка подгружаемая сторонним процессом.<br />И наоборот, dll-ка должна убедится, что приложение не изменено. Причём приложение не которое его грузит, а то, которое инициирует его загрузку.</p><p>Можно использовать для этого механизм подписи SignTool из WinSDK.<br />Т. е. подписываем все модули (exe и dll) секретным ключём разработчика, а на старте проверяем что модули не изменены.</p><p>Или Guardant Armor самостоятельно может отследить что dll-ку, например подменили?</p>]]></content>
			<author>
				<name><![CDATA[tonal]]></name>
				<uri>https://forum.guardant.ru/user/1781/</uri>
			</author>
			<updated>2018-05-10T08:45:58Z</updated>
			<id>https://forum.guardant.ru/post/3892/#p3892</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3891/#p3891" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>Вопрос был именно про 1-вый случай. Со вторым, надеемся, Armor разберётся. :)</p></blockquote></div><p>Вообщем то Guardant Armor нужен и для 1-го случая, а если надо, то дополнительно усилить защиту можно реализовав свои уникальные, хитрые проверки ключа.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-05-10T07:30:21Z</updated>
			<id>https://forum.guardant.ru/post/3891/#p3891</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3890/#p3890" />
			<content type="html"><![CDATA[<p>Ну, можно рассматривать 2 ситуации:<br />1. С программы и/или с длл-ки удалось &quot;снять&quot; защиту и система работает либо полностью без защиты, либо частично, позволяя перехватить данные на &quot;взломанном&quot; компоненте.</p><p>2. Во время работы системы изменяется код одного из компонентов, что позволяет обходить защиту.</p><p>Вопрос был именно про 1-вый случай. Со вторым, надеемся, Armor разберётся. :)</p><p>Хотя, как мне кажется, возможность коммуницировать со связанными приложениями может серьёзно поднять уровень защиты и это было бы не плохо добавить это в штатные режимы автозащиты. :)</p>]]></content>
			<author>
				<name><![CDATA[tonal]]></name>
				<uri>https://forum.guardant.ru/user/1781/</uri>
			</author>
			<updated>2018-05-09T10:40:16Z</updated>
			<id>https://forum.guardant.ru/post/3890/#p3890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3889/#p3889" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>На старте приложения идёт запрос-ответ.<br />Соответственно длл-ка и приложение могут передать друг другу блок данных.</p><p>Да и головное приложение и dll-ки.</p></blockquote></div><p>Как вариант можно при помощи <a href="https://dev.guardant.ru/display/DOC/10+Guardant+API">Guardant API</a> организовать перекрестную проверку рандомных блоков данных, точнее проверку подписи (ф-ии <a href="https://dev.guardant.ru/display/DOC/GrdSign">GrdSign</a> и <a href="https://dev.guardant.ru/display/DOC/GrdVerifySign">GrdVerifySign</a>) таких блоков. Причем генерировать&nbsp; данные для подписи лучше не только на старте приложения и загрузке библиотеки, но и по другим событиям (например, при некоторых действиях пользователя, по временным меткам, счетчикам и т.п.).</p><p>Т.е. приложение генерирует данные, отправляет для подписи в ключ, получает буфер с подписанными данными и отдает его в библиотеку. Библиотека выполняет проверку подписи и, если все в порядке, то продолжает работать и в свою очередь также генерирует данные, подписывает их при помощи аппаратного ключа, а приложению отдает для проверки.</p><p>Таким образом библиотека и приложение могут производить некую взаимную аутентификацию и проверку наличия нужного аппаратного ключа. Но это не защита именно кода самого приложения, для этого есть Guardant Armor.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-05-08T06:57:55Z</updated>
			<id>https://forum.guardant.ru/post/3889/#p3889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3888/#p3888" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Какие именно механизмы коммуникации у библиотеки и приложения есть?</p></blockquote></div><p>На старте приложения идёт запрос-ответ.<br />Соответственно длл-ка и приложение могут передать друг другу блок данных.</p><div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Доступ к исходным кодам приложения тоже имеется?</p></blockquote></div><p>Да и головное приложение и dll-ки.</p>]]></content>
			<author>
				<name><![CDATA[tonal]]></name>
				<uri>https://forum.guardant.ru/user/1781/</uri>
			</author>
			<updated>2018-05-07T09:32:41Z</updated>
			<id>https://forum.guardant.ru/post/3888/#p3888</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3887/#p3887" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>Между основной программой и дллкой есть возможность некоторой коммуникации.<br />Можно ли как-то проверить из программы что дллка не взломана и наоборот?</p></blockquote></div><p>Какие именно механизмы коммуникации у библиотеки и приложения есть?<br />Доступ к исходным кодам приложения тоже имеется?</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-05-07T07:50:14Z</updated>
			<id>https://forum.guardant.ru/post/3887/#p3887</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3886/#p3886" />
			<content type="html"><![CDATA[<p>И ещё вопрос: возможно ли из организовать перекрёстную проверку?</p><p>Ну то есть зашита на основной программе и на дллке, которая является плагином к другой программе.<br />Между основной программой и дллкой есть возможность некоторой коммуникации.<br />Можно ли как-то проверить из программы что дллка не взломана и наоборот?</p><p>Или это нужно решать исключительно своими силами?</p>]]></content>
			<author>
				<name><![CDATA[tonal]]></name>
				<uri>https://forum.guardant.ru/user/1781/</uri>
			</author>
			<updated>2018-05-07T05:28:35Z</updated>
			<id>https://forum.guardant.ru/post/3886/#p3886</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3881/#p3881" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>li.volker пишет:</cite><blockquote><p>А возможно ли при помощи Armor защитить только одну dll, которая будет подключаться как плагин в другую программу?</p></blockquote></div><p>Да.<br /></p><div class="quotebox"><cite>li.volker пишет:</cite><blockquote><p>И возможно ли Armor использовать вместе с API? Я в ключ загружаю свои алгоритмы, аппаратные алгоритмы, резервирую память под разные данные. Если я подключу Armor, я так понимаю у меня же нарушиться все содержимое ключа?</p></blockquote></div><p><a href="https://dev.guardant.ru/display/DOC/11+Guardant+Armor">Guardant Armor</a> — это консольная утилита и при защите приложения она использует аппаратный ключ также, как и обычные <a href="https://dev.guardant.ru/pages/viewpage.action?pageId=1277969">консольные утилиты автоматической защиты</a>. Т.е. на момент выполнения защиты в ключе уже должны быть запрограммированные заранее алгоритмы и другие данные, сам Armor ничего в ключ не записывает.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-04-27T08:16:50Z</updated>
			<id>https://forum.guardant.ru/post/3881/#p3881</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3879/#p3879" />
			<content type="html"><![CDATA[<p>А возможно ли при помощи Armor защитить только одну dll, которая будет подключаться как плагин в другую программу?<br />И возможно ли Armor использовать вместе с API? Я в ключ загружаю свои алгоритмы, аппаратные алгоритмы, резервирую память под разные данные. Если я подключу Armor, я так понимаю у меня же нарушиться все содержимое ключа?</p>]]></content>
			<author>
				<name><![CDATA[li.volker]]></name>
				<uri>https://forum.guardant.ru/user/1772/</uri>
			</author>
			<updated>2018-04-27T07:27:58Z</updated>
			<id>https://forum.guardant.ru/post/3879/#p3879</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3875/#p3875" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>li.volker пишет:</cite><blockquote><p>Под Armor проверки начинают медленно работать, и запуск становится очень долгим. Защита конечно хорошая, но не всегда требуется такой уровень.</p></blockquote></div><p>Запускали приложение под <a href="https://dev.guardant.ru/pages/viewpage.action?pageId=1279358">профайлером</a>?<br />Также можно исключить из защиты заведомо тяжеловесные функции перечислив их в специальном *.ini-файле (опция <strong>-INI=&lt;ini-файл&gt;</strong>).</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-04-25T08:04:35Z</updated>
			<id>https://forum.guardant.ru/post/3875/#p3875</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3873/#p3873" />
			<content type="html"><![CDATA[<p>Под Armor проверки начинают медленно работать, и запуск становится очень долгим. Защита конечно хорошая, но не всегда требуется такой уровень.</p>]]></content>
			<author>
				<name><![CDATA[li.volker]]></name>
				<uri>https://forum.guardant.ru/user/1772/</uri>
			</author>
			<updated>2018-04-25T07:41:11Z</updated>
			<id>https://forum.guardant.ru/post/3873/#p3873</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Электронная цифровая подпись]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3872/#p3872" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tonal пишет:</cite><blockquote><p>Здравствуйте.<br />Вопрос возник от того, что кроме основного приложения в проекте существует ещё несколько нативных dll.<br />Причём одна из них грузится сторонним приложением.<br />Вот их целостность и хочется контролировать.</p></blockquote></div><p>Эти библиотеки также можно защитить и привязать к ключу с помощью Guardant Armor.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-04-25T07:22:10Z</updated>
			<id>https://forum.guardant.ru/post/3872/#p3872</id>
		</entry>
</feed>
