Czy wczytanie pliku przez http jest bezpieczne?

0

Zastanawiam się czy jeżeli powiedzmy zrobię tak

S := IdHTTP.Get('http://google.com');

to czy to jest jakieś trudne żeby podejrzeć jaką stronę wczytałem, a konkretnie treść tej strony? Wydaje mi się że wystarczy minimum wiedzy w temacie, ale wolę się upewnić.

Chodzi o to, że cały program mam sprezentować przed jakąś komisją i nie chciałbym żeby się okazało że program ma więcej zad niż walet.

0

to czy to jest jakieś trudne żeby podejrzeć jaką stronę wczytałem, a konkretnie treść tej strony?

TcpView wystarczy... Dowolny sniffer albo inny prosty hook na winsocka. Jeżeli chcesz to utrudnić, to użyj HTTPS, ale i tak ktoś obeznany w RE bez większego problemu złamie tego typu rzeczy.

Poza tym, co ten temat na wspólnego z delphi? Jedną linię która jest przykładem?!

0

A jakiś pomysł żeby to było względnie bezpieczne?

Jeżeli chcesz to utrudnić, to użyj HTTPS, ale i tak ktoś obeznany w RE bez większego problemu złamie tego typu rzeczy.

Czy mi się wydaje, czy ludzie mi odpowiadają zanim przeczytają odpowiedź do końca?

Gdybyś przybliżył cały problem, to może mógłbym doradzić coś bardziej konkretnego, z twojego aktualnego opisu można zabezpieczyć połączenie, ale twoja aplikacja i tak dostanie to rozszyfrowane gdzie można to przechwycić.

0

Przybliżony problem, Zadaniem programu jest:

wysłać tekst do zewnętrznego servera (socketami, via http/https, używając jakichś komponentów do sql, obojętnie)
na końcu, wszystko będzie trzymane w mysql właśnie.
wysłać żądanie i odebrać tekst z tegoż servera, również dowolną metodą.

Warunkiem jedynie jest żeby to było względnie bezpieczne. Oczywiście ten tekst mu potem potem być rozszyfrowany ponieważ zostanie wyświetlony użytkownikowi.

0
TomRiddle napisał(a):

Przybliżony problem, Zadaniem programu jest:

wysłać tekst do zewnętrznego servera (socketami, via http/https, używając jakichś komponentów do sql, obojętnie)
na końcu, wszystko będzie trzymane w mysql właśnie.
wysłać żądanie i odebrać tekst z tegoż servera, również dowolną metodą.

Warunkiem jedynie jest żeby to było względnie bezpieczne. Oczywiście ten tekst mu potem potem być rozszyfrowany ponieważ zostanie wyświetlony użytkownikowi.

Jeżeli chodzi ci o bezpieczeństwo sieciowe, tzn. że nikt poza twoim komputerem nie będzie mieć dostępu do danych, to najlepiej jest je zaszyfrować jakimś kluczem symetrycznym, wysłać w formie zaszyfrowanej na serwer, odebrać, rozszyfrować lokalnie i wyświetlić. Jeżeli zależy ci tylko na bezpieczeństwie przesyłu, to używaj HTTPS z jakimiś tokenami które pozwolą zidentyfikować osobę wysyłającą, tak żeby tylko ona mogła odebrać.
Natomiast jeżeli szukasz bezpieczeństwa że nikt lokalnie nie może podsłuchać transmisji, to z góry jesteś na przegranej pozycji, bo każdy może to zrobić podczepiając się w odpowiednich miejscach w twoim programie.

Ja, pisząc swoją usługę logowania informacji z komputera na serwerze, używam HTTP z PHP, gdzie dane wysyłane są szyfrowane (nawet nie kryptograficznie, dane nie są aż tak ważne), a w drugą stronę dostaję token, który pozwala na kontynuowanie wrzucania informacji.

0

Czyli schemat ma wyglądać tak?

Klient > Szyfrowanie(dane) > http > server > http > dane := odszyfrowanie(otrzymane dane) > Klient

0

lepiej (szybciej) będzie po prostu skorzystać z gotowca w postaci ssl, czyli jak już oho proponował https

0
abrakadaber napisał(a):

lepiej (szybciej) będzie po prostu skorzystać z gotowca w postaci ssl, czyli jak już oho proponował https

Tylko wtedy serwer może podejrzeć twoje dane, jak również może on zostać zhackowany i dane wyciekną. Dlatego rozwiązanie z lokalnym szyfrowaniem jest bezpieczniejsze.

0

znaczy, że co chcesz trzymać w bazie zaszyfrowane dane? Czyli wylewasz z kąpielą całą "dobroć" baz - indeksy, wyszukiwanie, klucze obce, itd., itp... Może jednak bez przesady. Jak ktoś się dostanie do serwera to jak będzie aż tak bardzo zdesperowany to sobie metodę szyfrowania z exe wyciągnie i wszystko psu w ***

0
abrakadaber napisał(a):

znaczy, że co chcesz trzymać w bazie zaszyfrowane dane? Czyli wylewasz z kąpielą całą "dobroć" baz - indeksy, wyszukiwanie, klucze obce, itd., itp... Może jednak bez przesady. Jak ktoś się dostanie do serwera to jak będzie aż tak bardzo zdesperowany to sobie metodę szyfrowania z exe wyciągnie i wszystko psu w ***

A jeżeli klucz będzie generowany losowo (ze źródeł losowości CryptApi), zapisywany na dysku a potem odczytywany? Można też zrobić dialog wprowadzania hasła...
Akurat może baza SQL nie będzie najlepszym rozwiązaniem w przechowywaniu zaszyfrowanych danych, jednak podobno zależy na bezpieczeństwie, a jeżeli chcemy bezpiecznie przechowywać dane na serwerze, to trzeba je szyfrować clientside (serverside jest podatne na ataki, ktoś pamięta jak zhackowano pewne forum programistyczne z 4 w nazwie?).
Natomiast jeżeli nie chodzi aż tak o bezpieczeństwo, to hulaj dusza, po prostu rób to przez HTTPS, więc dane będą przesyłane bezpiecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1