Zabezpieczenie przed podszywaniem się

0

Załóżmy, że mamy 2 klientów (A oraz C) rozmawiających przez serwer (B)

A <=> B <=> C

Załóżmy, że serwer B to jednostka (osoba) niepowołana. Teraz zadanie problemowe: w jaki sposób zabezpieczyć rozmowę A z C w taki sposób, aby B nie było w stanie podszyć się pod C i spowodować, że rozmowa będzie wyglądała tak:

A <=> B (udające połączenie z C)

Rzecz jest prosta, jeśli posłużymy się kluczami prywatnymi (wspólnymi dla A i C) oraz przekazywanym przez B kluczem publicznym. Może przykład:

Jeśli założymy, że A oraz C znają jakiś ciąg znaków (n.p: '12345'), to rozpoczynając transmisję A może wysłać do C komendę:

'Uznam, że jesteś ok, jeśli przyślesz mi MD5 ze swojego klucza + liczba wylosowana 04'.

Klient C wysyła MD5('1234504'). Klient A może to sprawdzić, a mimo wszystko B nie jest w stanie przy następnym zapytaniu o MD5 + liczba 57 podszyć się pod C.

Problem zaczyna się, gdy nie ma możliwości wcześniej przesłać klucza prywatnego. Jak wtedy to rozwiązać? Jakieś pomysły?

[DOPISANE]

Zapomniałem dodać, że serwerów B może (ale nie musi!) być kilka (ale wszystkie nie zaufane) - czyli jest dozwolone przesyłanie części przez B1, a części przez B2 (o ile jest w sieci). Ale nie można założyć, że nie komunikują się one wzajemnie.

0

A nie najłatwiej podesłać klucz mailem ?? Wydaje mi się że to najpewniejsza metoda ...

0

Nie, nie - chodzi mi o zbudowanie całej komunikacji sieciowej w taki sposób, więc ręczne przesyłanie kluczy nie wchodzi w rachubę (równie dobrze możnaby telefonicznie)

0

Ależ ja właśnie myśle o automatycznym wysyłaniu klucza, będziesz prawdopodobnie i tak potrzebował jakiegoś hostingu z bazą danych (nie wiem dokładnie co chcesz robić ale generalnie tak mi się wydaje że będzie), więc bez problemu można ten proces wykonać przy pomocy jakiegoś skryptu.

Może powiedz coś więcej o tym jak chcesz by to wyglądało, będziemy mogli wtedy już konkretniej pomyśleć.

0

Nie zrozumiałeś mnie - chodzi mi o to, że ZAWSZE będzie middle man i nie ma sposobu, by go ominąć. Jak zabezpieczyć takie połączenie? Klucze publiczny/prywatny nie wchodza w rachubę, bo nie mam jak inaczej ich przesłać (nie zawsze alternatywne połączenie będzie możliwe, a nawet jak - to nie jest ono "pewne"). [Przedstawiłem to w pierwszym poście].

0

Zawsze masz jakiś element pośredniczący przy transmisji danych, czy to kabelek sieciowy, czy człowiek wpisujący hasło i wg mnie tego nie zwalczysz. Możesz co najwyżej sprawić, że podsłuchanie/podszycie stanie się trudniejsze.

Moja propozycja to wprowadzenie symetrycznego klucza sesyjnego, przekazywanego niezależnym kanałem komunikacyjnym (niezależnym od komunikacji sieciowej A-C).

  1. Do maszyn A,C podłączamy modemy GSM.
  2. Na A generowany jest symetryczny klucz sesyjny i wysyłany SMSem do C.
  3. Komunikacja A-C szyfrowana jest kluczem sesyjnym.

y.

0
Szczawik napisał(a)

Nie zrozumiałeś mnie - chodzi mi o to, że ZAWSZE będzie middle man i nie ma sposobu, by go ominąć. Jak zabezpieczyć takie połączenie? Klucze publiczny/prywatny nie wchodza w rachubę, bo nie mam jak inaczej ich przesłać (nie zawsze alternatywne połączenie będzie możliwe, a nawet jak - to nie jest ono "pewne"). [Przedstawiłem to w pierwszym poście].

A mi chodzi o to, że tam jest przedstawione wykorzystanie instytucji certyfikacyjnej. To jest z kluczem asymetrycznym. Po prostu wcześniej będzie trzeba taki certyfikat uzyskać, jakąś drogą. Po tym, już można bez przeszkód nawiązywać połączenia.

Jeżeli odpada również taka możliwość, to nie ma innej możliwości. Każda droga jest jakoś narażona. Telefon, kurier, wspomniany sms.

Możesz też zrobić jak w Kerberos. Kazać "jakoś" dostarczyć klucze drogą poza siecią.

0

Może steganograficznie przesłać? :)

0

Jak na razie stanie na SSL, a potem może wymyślę coś innego. Dzięki wszystkim za komentarze.

[browar]

0
Szczawik napisał(a)

Jak na razie stanie na SSL, a potem może wymyślę coś innego. Dzięki wszystkim za komentarze.

A ja Ci powiem, że jest możliwość: Kryptografia Kwantowa :)
...Jeśl ktokolwiek podsłucha spowoduje to zmianę przesyłanych informacji i wtedy A lub C zoriętuję się, że ktoś im grzebał w międzyczasie :]
Podstawy kryptografii kwantowej

...Tylko jest drobny szkopuł - musisz mieć kanał kwantowy pomiędzy A a C :/

0

Nie no - zaszalałeś :) Pytałem o praktyczne rozwiązanie dotyczące klasycznej (elektronicznej) sieci komputerowej, które można wdrożyć od zaraz. Ale temat ciekawy podsunąłeś. Pozdrawiam.

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