<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; GrdSetAccessCodes перехват кодов доступа]]></title>
		<link>https://forum.guardant.ru/topic/809/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/809" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «GrdSetAccessCodes перехват кодов доступа».]]></description>
		<lastBuildDate>Wed, 11 Apr 2018 11:46:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3861/#p3861</link>
			<description><![CDATA[<p>Спасибо, за ответ.</p><p>Защищенные ячейки - то что нужно</p>]]></description>
			<author><![CDATA[null@example.com (li.volker)]]></author>
			<pubDate>Wed, 11 Apr 2018 11:46:28 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3861/#p3861</guid>
		</item>
		<item>
			<title><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3860/#p3860</link>
			<description><![CDATA[<div class="quotebox"><cite>li.volker пишет:</cite><blockquote><p>Он же при помощи функции GrdRead сможет считать все данные с ключа.</p></blockquote></div><p>Нет конечно, <a href="https://dev.guardant.ru/display/DOC/GrdRead">GrdRead</a> позволяет считывать данные только из тех областей памяти, которые не защищены аппаратными запретами.<br /><a href="https://dev.guardant.ru/pages/viewpage.action?pageId=1277993">Защищенные ячейки</a> и их частные случаи — <a href="https://dev.guardant.ru/pages/viewpage.action?pageId=1048586">аппаратные алгоритмы</a>, так считать нельзя.</p><p>Данные из защищенных ячеек можно считывать при помощи <a href="https://dev.guardant.ru/display/DOC/GrdPI_Read">GrdPI_Read</a> и лишь в случае если:<br /></p><ul><li><p>известно числовое имя защищенной ячейки</p></li><li><p>для этой ячейки активирован сервис чтения данных</p></li><li><p>введен правильный пароль для чтения именно одной конкретной защищенной ячейки (пароли у каждой ячейки свои и неправильно их можно ввести &quot;по умолчанию&quot; только 10 раз, потом ячейка заблокируется)</p></li></ul>]]></description>
			<author><![CDATA[null@example.com (Антон Тихиенко)]]></author>
			<pubDate>Tue, 10 Apr 2018 07:58:33 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3860/#p3860</guid>
		</item>
		<item>
			<title><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3859/#p3859</link>
			<description><![CDATA[<p>Спасибо за ответы.</p><p>Скажите пожалуйста. Он же при помощи функции GrdRead сможет считать все данные с ключа. Т.е. как раз и получить все маску? Потом ее останется только записать в другой ключ.</p>]]></description>
			<author><![CDATA[null@example.com (li.volker)]]></author>
			<pubDate>Tue, 10 Apr 2018 07:26:33 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3859/#p3859</guid>
		</item>
		<item>
			<title><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3858/#p3858</link>
			<description><![CDATA[<div class="quotebox"><cite>romik пишет:</cite><blockquote><p>Существуют и другие способы перехвата кодов доступа. Но я бы на счёт этого не волновался: знание кодов не даёт ничего для доступа к существующей информации в ключе. А с учётом того, что коды с правом записи (PrivateWR и PrivateMST) вообще не нужны для работы защищённого приложения - и подавно! Ведь обновления в ключ загружаются зашифрованными, код - тоже. <br />Если защита построена правильно, то потенциальный взломщик, даже зная все коды доступа, сможет только стереть существующие, и загрузить в ключ свои маску и код. Но если у него будут работающие маска и код, то защита - полностью скомпрометирована, и можно абсолютно спокойно создавать клоны ключей со своими кодами доступа!</p></blockquote></div><p>Все верно, самые &quot;чувствительные&quot; данные это содержимое маски ключа.</p>]]></description>
			<author><![CDATA[null@example.com (Антон Тихиенко)]]></author>
			<pubDate>Mon, 09 Apr 2018 07:02:16 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3858/#p3858</guid>
		</item>
		<item>
			<title><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3857/#p3857</link>
			<description><![CDATA[<p>Существуют и другие способы перехвата кодов доступа. Но я бы на счёт этого не волновался: знание кодов не даёт ничего для доступа к существующей информации в ключе. А с учётом того, что коды с правом записи (PrivateWR и PrivateMST) вообще не нужны для работы защищённого приложения - и подавно! Ведь обновления в ключ загружаются зашифрованными, код - тоже. <br />Если защита построена правильно, то потенциальный взломщик, даже зная все коды доступа, сможет только стереть существующие, и загрузить в ключ свои маску и код. Но если у него будут работающие маска и код, то защита - полностью скомпрометирована, и можно абсолютно спокойно создавать клоны ключей со своими кодами доступа!</p>]]></description>
			<author><![CDATA[null@example.com (romik)]]></author>
			<pubDate>Sun, 08 Apr 2018 01:34:32 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3857/#p3857</guid>
		</item>
		<item>
			<title><![CDATA[GrdSetAccessCodes перехват кодов доступа]]></title>
			<link>https://forum.guardant.ru/post/3856/#p3856</link>
			<description><![CDATA[<p>Добрый день.</p><p>Для GrdSetAccessCodes,&nbsp; в описании написано:<br />Рекомендуется хранить коды доступа в приложении в зашифрованном виде и динамически собирать их и проверять их целостность непосредственно перед помещением в хэндл. Не следует хранить коды &quot;в чистом виде&quot;. </p><p>Но меня волнует возможность перехвата в момент вызова функции GrdSetAccessCodes <br />Я полагаю, что если при помощи windbg, взломщик доберется до вызова функции GrdSetAccessCodes.<br />То у него в наличие будет ассемблерный код вычисления кодов и его будет возможно прочитать.</p><p>вот пример из демо приложения.</p><p>nRet:= GrdSetAccessCodes( hGrd,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ Handle to Guardant protected container }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (dwPublic + CryptPU),&nbsp; &nbsp; &nbsp;{ Must be already specified }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (dwPrivRD + CryptRD),&nbsp; &nbsp; &nbsp;{ Must be already specified }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (dwPrivWR + CryptWR),&nbsp; &nbsp; &nbsp;{ == 0 if not needed }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (dwPrivMS + CryptMS));&nbsp; &nbsp; { == 0 if not needed }</p><p>Существуют ли способы спрятать вызов GrdSetAccessCodes или на стеке создать что-то более сложное?<br />Или может существуют какой-нибудь другой способ установить коды доступа, более надежно?</p><p>Я использую Guardant Code</p><p>С уважением, Евгений.</p>]]></description>
			<author><![CDATA[null@example.com (li.volker)]]></author>
			<pubDate>Sat, 07 Apr 2018 18:03:06 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/3856/#p3856</guid>
		</item>
	</channel>
</rss>
