<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; GrdSetAccessCodes перехват кодов доступа]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/809" />
	<updated>2018-04-11T11:46:28Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/809/</id>
		<entry>
			<title type="html"><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3861/#p3861" />
			<content type="html"><![CDATA[<p>Спасибо, за ответ.</p><p>Защищенные ячейки - то что нужно</p>]]></content>
			<author>
				<name><![CDATA[li.volker]]></name>
				<uri>https://forum.guardant.ru/user/1772/</uri>
			</author>
			<updated>2018-04-11T11:46:28Z</updated>
			<id>https://forum.guardant.ru/post/3861/#p3861</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3860/#p3860" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-04-10T07:58:33Z</updated>
			<id>https://forum.guardant.ru/post/3860/#p3860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3859/#p3859" />
			<content type="html"><![CDATA[<p>Спасибо за ответы.</p><p>Скажите пожалуйста. Он же при помощи функции GrdRead сможет считать все данные с ключа. Т.е. как раз и получить все маску? Потом ее останется только записать в другой ключ.</p>]]></content>
			<author>
				<name><![CDATA[li.volker]]></name>
				<uri>https://forum.guardant.ru/user/1772/</uri>
			</author>
			<updated>2018-04-10T07:26:33Z</updated>
			<id>https://forum.guardant.ru/post/3859/#p3859</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3858/#p3858" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>romik пишет:</cite><blockquote><p>Существуют и другие способы перехвата кодов доступа. Но я бы на счёт этого не волновался: знание кодов не даёт ничего для доступа к существующей информации в ключе. А с учётом того, что коды с правом записи (PrivateWR и PrivateMST) вообще не нужны для работы защищённого приложения - и подавно! Ведь обновления в ключ загружаются зашифрованными, код - тоже. <br />Если защита построена правильно, то потенциальный взломщик, даже зная все коды доступа, сможет только стереть существующие, и загрузить в ключ свои маску и код. Но если у него будут работающие маска и код, то защита - полностью скомпрометирована, и можно абсолютно спокойно создавать клоны ключей со своими кодами доступа!</p></blockquote></div><p>Все верно, самые &quot;чувствительные&quot; данные это содержимое маски ключа.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2018-04-09T07:02:16Z</updated>
			<id>https://forum.guardant.ru/post/3858/#p3858</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3857/#p3857" />
			<content type="html"><![CDATA[<p>Существуют и другие способы перехвата кодов доступа. Но я бы на счёт этого не волновался: знание кодов не даёт ничего для доступа к существующей информации в ключе. А с учётом того, что коды с правом записи (PrivateWR и PrivateMST) вообще не нужны для работы защищённого приложения - и подавно! Ведь обновления в ключ загружаются зашифрованными, код - тоже. <br />Если защита построена правильно, то потенциальный взломщик, даже зная все коды доступа, сможет только стереть существующие, и загрузить в ключ свои маску и код. Но если у него будут работающие маска и код, то защита - полностью скомпрометирована, и можно абсолютно спокойно создавать клоны ключей со своими кодами доступа!</p>]]></content>
			<author>
				<name><![CDATA[romik]]></name>
				<uri>https://forum.guardant.ru/user/14/</uri>
			</author>
			<updated>2018-04-08T01:34:32Z</updated>
			<id>https://forum.guardant.ru/post/3857/#p3857</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[GrdSetAccessCodes перехват кодов доступа]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/3856/#p3856" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[li.volker]]></name>
				<uri>https://forum.guardant.ru/user/1772/</uri>
			</author>
			<updated>2018-04-07T18:03:06Z</updated>
			<id>https://forum.guardant.ru/post/3856/#p3856</id>
		</entry>
</feed>
