<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3534277</guid>
        <pubDate>Mon, 13 Oct 2014 06:43:24 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3534277</link>
        <description><![CDATA[Fr0sT: <a class='tag-url' href='http://msdn.microsoft.com/en-us/library/windows/desktop/aa383630(v=vs.85).aspx' target='_blank'>WinInet</a> умеет https, судя по описанию.]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533883</guid>
        <pubDate>Fri, 10 Oct 2014 20:38:11 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533883</link>
        <description><![CDATA[Gen: Посмотрел ссылку, спасибо. Что-то очень на RSA смахивает.<br>
(Установление безопасного сеанса с помощью TLS)<br>
<br>
А может где то есть более конкретные структуры пакетов?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">(например: 2.Сервер отвечает, отправляя сообщение «hello Server» для клиента, а также случайное значение сервера.</div><div class="code_line">А как пакет выглядеть должен?)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Это как я понимаю так же как в RSA Client Random и Server Random на основании которых создаются закрытый и открытый ключи?<br>
Очень похоже по крайней мере.<br>
<br>
Ну То что много писать это уже другой вопрос, в конце концов я просто хочу понять реально это реализовать или нет хотя бы для конкретного сайта например без реализации доп функций что бы везде работало.<br>
<br>
И может я не совсем точно выразился, я привел в начале пару библиотек для работы с SSL, с их же использованием не надо будет реализовывать кучу всего и использовать тот же инди?<br>
(я посмотрел но не вижу путевого описания как ими пользоваться)]]></description>
        <author>Gen</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533664</guid>
        <pubDate>Fri, 10 Oct 2014 09:55:56 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533664</link>
        <description><![CDATA[reinterpret_alexey: В WinAPI есть функционал как SSL-сервера, так и SSL-клиента, абстрагированный от каких-либо сокетов.<br>
Называется schannel<br>
<a class='tag-url' href='http://msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v=vs.85).aspx' target='_blank'>http://msdn.microsoft.com/en-us/library/wi...3(v=vs.85).aspx</a>]]></description>
        <author>reinterpret_alexey</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533221</guid>
        <pubDate>Thu, 09 Oct 2014 06:22:01 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533221</link>
        <description><![CDATA[Fr0sT: Только ICS асинхронный, что несколько сложнее для понимания и проектирования.<br>Для снифа SSL можно юзать Fiddler или Wireshark.]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533214</guid>
        <pubDate>Thu, 09 Oct 2014 05:59:26 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533214</link>
        <description><![CDATA[konvikkor: Компоненты индейцев могут вызвать краши и баги.<br>Рекомендую пользоваться OverbyteIcs бесплатный набор компонентов для работы с Socket (есть поддержка SSL).]]></description>
        <author>konvikkor</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533145</guid>
        <pubDate>Wed, 08 Oct 2014 16:11:23 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3533145</link>
        <description><![CDATA[Fr0sT: Не влезал в эту тему, но если бы для успешного коннекта достаточно было всего двух вызовов функций, никто бы ничего и не спрашивал. В ICS, напрмиер, код работы с SSL занимает чуть ли не столько же, сколько базовый код по сокетам. Так что советую подумать, так ли обязательно делать все самому, а не применить готовый код.]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3532982</guid>
        <pubDate>Wed, 08 Oct 2014 11:39:21 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3532982</link>
        <description><![CDATA[Gen: Пока ждал ответа решил попробовать Indy. Вот в таком виде вроде работает:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">Var</div><div class="code_line">HTTP:TidHTTP;</div><div class="code_line">IdSSLOpenSSL:TIdSSLIOHandlerSocketOpenSSL;</div><div class="code_line">Data:String;</div><div class="code_line">begin</div><div class="code_line">HTTP:=TidHTTP.Create(nil);</div><div class="code_line">IdSSLOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);</div><div class="code_line">HTTP.HandleRedirects:=True;</div><div class="code_line">IdSSLOpenSSL.SSLOptions.Method:= sslvSSLv3;</div><div class="code_line">IdSSLOpenSSL.SSLOptions.Mode := sslmUnassigned;</div><div class="code_line">IdSSLOpenSSL.SSLOptions.VerifyMode := [];</div><div class="code_line">IdSSLOpenSSL.SSLOptions.VerifyDepth := 0;</div><div class="code_line">HTTP.IOHandler:=IdSSLOpenSSL;</div><div class="code_line">Data:=HTTP.Get(&#39;https://firstvds.com&#39;);</div><div class="code_line">Memo1.Text := Data;</div><div class="code_line">IdSSLOpenSSL.Free;</div><div class="code_line">HTTP.Free;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Но это компанеты, а интересуют именно сокеты.]]></description>
        <author>Gen</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3532908</guid>
        <pubDate>Wed, 08 Oct 2014 10:10:47 +0000</pubDate>
        <title>WinSock + SSL</title>
        <link>https://forum.sources.ru/index.php?showtopic=395287&amp;view=findpost&amp;p=3532908</link>
        <description><![CDATA[Gen: Здравствуйте, посмотрел по поиску https, libeay32.dll, есть несколько тем, даже то что нужно есть но принципа реализации нету.<br>
В интернете так же есть куча статей, исходников и тд, перекачал кучу попробовал но требуемого результат не получил по причине полного непонимания этого дела.<br>
<br>
Может кто готов немного научить?<br>
<br>
Вопрос следующий: <br>
Сейчас в интернете полно сайтов на которых вместо http стало https. <br>
Раньше все было просто коннектимся к серверу, передаем в сокет данные, читаем и при необходимости отключаемся или передаем/читаем далее.<br>
Сниффером можно было все запросы посмотреть составить аналогичные для требуемого сервера и работать с ним без всяких заморочек.<br>
Сейчас сниффером мне даже не посмотреть собственно саму структуру GET/POST запроса, одни крикозябли. <br>
По скольку в шифровании я полный 0, начал искать хоть какой то исходник что бы можно было хоть с чего то начать, нашел 1 который после долгих и упорных замен библиотек <br>
libeay32.dll, ssleay32.dll исходник запустился, но требуемого эффекта не получил. <br>
Соединение проходит, но после отправки GET запроса при чтении сокета размер входящих данных = -1 что означает что соединение было закрыто сервером.<br>
<br>
Вот хочется понять с чего вообще надо начинать разбираться стим https? <br>
<br>
(я вычитал что там после соединение еще одно соединение надо открывать, и в примере там что то открывается)<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function SSL_connect(ssl: pointer):Integer; cdecl; external SSL_LIB_NAME;</div><div class="code_line">&nbsp;</div><div class="code_line">function TSLESH_SSL_Socket.Connect(ip:string; port:word):boolean;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;nip:integer;</div><div class="code_line">&nbsp;&nbsp;phe:PHostEnt;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;result := false;</div><div class="code_line">&nbsp;&nbsp;sock := socket(AF_INET, SOCK_STREAM, 0);</div><div class="code_line">&nbsp;&nbsp;ErrorFlag := sock = INVALID_SOCKET;</div><div class="code_line">&nbsp;&nbsp;// если сокет создался</div><div class="code_line">&nbsp;&nbsp;if (ErrorFlag = false) then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;nip := inet_addr(pansichar(ip));</div><div class="code_line">&nbsp;&nbsp; &nbsp;if nip = INADDR_NONE then // если указано доменное имя а не IP</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// резолвим имя</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;phe := gethostbyname(pansichar(ip));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if phe &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;nip := integer(pointer(phe^.h_addr^)^);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; // &nbsp;если есть адрес сервера</div><div class="code_line">&nbsp;&nbsp; &nbsp;if nip &#60;&#62; INADDR_NONE then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;caddr.sin_family := AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;caddr.sin_addr.s_addr := nip;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;caddr.sin_port := htons(port);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// коннектитмся</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if winsock.connect(sock, caddr, sizeof(caddr)) &#60;&#62; SOCKET_ERROR then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// если сконнектились то настраиваем SSL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SSL_set_fd(ssl, sock);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SSL_connect(ssl);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result := true;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;Connected := result;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Но хотя бы первый вопрос откуда я знаю как составлять тот же запрос к серверу?<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">GET / HTTP/1.0</div><div class="code_line">или </div><div class="code_line">GET / HTTP/1.1</div><div class="code_line">??</div><div class="code_line">&nbsp;</div><div class="code_line">User-Agent ???</div><div class="code_line">и тд</div></ol></div></div></div></div><br>
<br>
Сорри не умею точно описывать проблему, прошу не ругаться...<br>
<br>
(Есть конечно вариант на VDS читать все что надо по средствам PHP а потом эти данные уже программой запрашивать и обрабатывать но это не особо вариант)<br>
<br>
- Подключиться по средствам сокетов к серверу на 443 порт без проблем<br>
А что далее делать?]]></description>
        <author>Gen</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	