Re: Obsługa HTTPS za pomocą INDY

Napisane:
niedziela, 26 października 2008, 18:54
przez Cyfrowy Baron
Oczywiście, że do wyświetlenia strony nie potrzebujesz certyfikatu, gdyż znajduje się on w serwisie, na którym ta strona się znajduje. Przeglądarka po prostu sprawdza czy znajduje się tam taki certyfikat i wyświetla taką zieloną ikonkę informującą, że jest strona jest szyfrowana. Korzystając z protokołu SSL możesz sobie wyświetlić taką stroną, ale nie kod źródłowy strony, gdyż do podejrzenia kodu strony niezbędny jest kod szyfrujący, do którego nie masz dostępu i nikt go tobie nie udostępni.
Re: Obsługa HTTPS za pomocą INDY

Napisane:
niedziela, 26 października 2008, 19:07
przez Miroo_007
Więc jak mogę to obejść. Jakie biblioteki wykorzystać aby wyświetlić kod źródłowy strony, albo zrobić tak aby treść strony wgrać do TStringList (ale to wydaje mi się za zbyt banalne). Wiem, że są programy które obsługują zaszyfrowane strony https korzystając z bibliotek Internet Explorera (zapewne z WinInet). Mogą one łączyć się z taką stroną i pobierać dowolne dane i nie sądzę aby autorzy tych programów mieli dostęp do tych certyfikatów. Musi istnieć jakieś wyjście z tej sytuacji.
Re: Obsługa HTTPS za pomocą INDY

Napisane:
niedziela, 26 października 2008, 19:58
przez Cyfrowy Baron
Chyba nie pojmuję o co tobie chodzi. Protokół HTTPS w połączeniu z technologią SSL został stworzony właśnie po to żeby szyfrować strony, tak by nie można ich było podejrzeć bez klucza.
Pod tym adresem:
http://www.securitystandard.pl/news/107 ... m.SSL.html znajdziesz artykuł na ten temat. Jest tam miedzy innymi taka informacja:
Powód dla którego uwierzytelnienia się tylko serwer jest bardzo prosty i pragmatyczny - uwierzytelnienie klienta certyfikatem X.509 wymaga posiadania certyfikatu. A ten przywiązuje klienta albo do konkretnego komputera albo do karty elektronicznej - a ta z kolei wymaga czytnika i sterowników. Hasło i login nadal są najłatwiej przenośnym i najbardziej uniwersalnym mechanizmem uwierzytelnienia - a ludzkie oczy i palce to interfejs, który ma każdy "pecet".
Poza ochroną przed podsłuchiwaczami zadaniem SSL/TLS jest przede wszystkim zapewnienie klienta, że łączy się z tym serwerem, z którym rzeczywiście chciał się połączyć. Po to właśnie operator serwera kupuje certyfikat X.509 w zaufanej firmie - centrum certyfikacji - takiej jak Thawte, Verisign i inne. Firma gwarantuje klientowi, że łącząc się przez SSL z serwerem
https://moj.multibank.pl/ łączy się faktycznie z serwerem, który ma prawo posługiwać się tą nazwą (a nie fałszywką, podstawioną nam w wyniku ARP spoofingu lub DNS cache spoofingu). Oraz że serwis ten należy do "BRE Bank SA" z Łodzi (pole Subject certyfikatu) a nie cwaniaka, który zarejestrował tę domenę na fałszywy dowód osobisty.
Poczytaj, a zrozumiesz...
Re: Obsługa HTTPS za pomocą INDY

Napisane:
poniedziałek, 27 października 2008, 11:07
przez Darek_C++
Miroo_007 napisał(a):Więc jak mogę to obejść. Jakie biblioteki wykorzystać ...
Jakiś dziwny jesteś! Pytasz się: "Więc jak mogę to obejść. Jakie biblioteki wykorzystać..." po czym sam sobie odpowiadasz: "zapewne z WinInet". Wiec na czym polega Twój problem ? Nawet podałem link do PDF'a gdzie jest opis ja to zrobić.
Czekasz na gotowe rozwiązania czy co ?
Re: Obsługa HTTPS za pomocą INDY

Napisane:
poniedziałek, 27 października 2008, 11:49
przez Witold
Dla BCB6/Indy8 "działa" coś takiego:
- Kod: Zaznacz cały
#include <IdSSLOpenSSL.hpp>
#include <IdHTTP.hpp>
#include <IdSSLOpenSSLHeaders.hpp>
void __fastcall TForm1::btn1Click(TObject *Sender)
{
TIdHTTP * http = NULL;
TIdConnectionInterceptOpenSSL * ciossl = NULL;
try
{
http = new TIdHTTP(NULL);
ciossl = new TIdConnectionInterceptOpenSSL(NULL);
// http->HandleRedirects = true;
AnsiString adres("https://addons.mozilla.org/pl/firefox/");
ciossl->SSLOptions->Method = sslvSSLv23; //sslvSSLv2;
ciossl->SSLOptions->Mode = sslmClient; // sslmUnassigned;
http->Intercept = ciossl;
Memo1->Text = http->Get(adres);
}
__finally
{
delete http;
delete ciossl;
}
}
Tyle że to zlepek z informacji z kilku miejsc, więc trzeba by nad nim popracować.
http://forum.ks-ekspert.pl/index.php?sh ... =sslvSSLv2http://www.delphi-si.com/forum/prikazis ... &mesto=defhttp://pl.wikipedia.org/wiki/SSLopenssl dll:
http://www.indyproject.org/Sockets/SSL.EN.aspx
Re: Obsługa HTTPS za pomocą INDY

Napisane:
poniedziałek, 27 października 2008, 23:27
przez Miroo_007
Darek_C++: Za link do PDF wielkie dzięki, choć dopiero teraz przeczytałem ten fragment książki

. Nie szukam gotowego rozwiązania tylko nakierowania mnie na właściwy temat.
Użyłem zdania "zapewne z WinInet" w formie przypuszczającej, tak więc łączy się to z całym kontekstem mojego zdania.