Jak zweryfikować wiarygodność danych, gdy obie strony znają to samo hasło?

hashingZałóżmy, że systemy A i B ustaliły wspólne hasło: PASSWD. Aby w prosty sposób każdy z użytkowników mógł być pewny, że dane zawarte w transmisji są wiarygodne można zastosować następujący algorytm:

  1. System A chce wysłać dane D do systemu B.
  2. System A wysyła dane D1 = D oraz D2 = HASH(D + PASSWD) do systemu B.
  3. System B odczytuje dane D1, wylicza hasz D3 = HASH(D1 + PASSWD) i porównuje hasze D2 i D3.
  4. Jeśli D2 i D3 są zgodne, dane przesłane w transmisji są wiarygodne.

Na przykład:

  1. System A chce wysłać do systemu B wiadomość:
  2. Oba systemy ustaliły hasło: „secret code” oraz metodę haszowania SHA256.
  3. System A wysyła dane:
  4. System B:
    1. Odczytuje dane
    2. Wylicza hash
  5. Wyliczony przez system B hasz D3 jest zgodny z haszem D2 wysłanym przez system B dlatego dane D1  można uznać za wiarygodne.

Dokładnie takie uwiarygodnienie przesyłanych danych (za pomocą haszowania SHA-1) wykorzystuje np. jeden z dostawców płatności internetowych dla e-biznesu, dla którego wykonywałem w tym tygodniu oprogramowanie transmisji danych z wykorzystaniem Javy.
Transmisja danych odbywa się oczywiście z wykorzystaniem SSL-a.

Patroni Notatnika Programisty

Dziękuję za wsparcie bloga Michałowi Hurko-Romeyko!

Ty również możesz zostać patronem Notatnika Programisty!

To również może Cię zainteresować:

  • jQuery Cluetip – opóźnienia żądań ajaxowychjQuery Cluetip – opóźnienia żądań ajaxowych W ostatnim czasie pracowałem nad modułem ewidencji czasu pracy w systemie kadrowo-płacowym. System intranetowy, ograniczona ilość użytkowników. Z tych, a nie innych względów na […]
  • Napisz kod i wygraj dronKonkurs PHP – napisz kod i wygraj drona za $400 Znalazłem dzisiaj w sieci ciekawy konkurs php, dzięki któremu można wygrać drona za ok. $400. Zadanie polega na napisaniu ciekawego kodu w PHP mieszczącego się w 45 liniach kodu z […]
  • Tricki bitoweTricki bitowe W tym miejscu postaram się zebrać zbiór użytecznych operacji na bitach. Z biegiem czasu lista będzie aktualizowana. Zachęcam do przesyłania własnych propozycji! Znane i mniej znane […]
  • Blog, rozwój, zmiany, ŚwiętaBlog, rozwój, zmiany, Święta Trochę ponad miesiąc temu postanowiłem założyć bloga - swego rodzaju osobisty notatnik programisty. To była szybka piłka, od momentu powstania pomysłu, stronę udostępniłem po trzech […]
  • Programista, długoterminowa praca na etacie w jednej firmie i graniceProgramista, długoterminowa praca na etacie w jednej firmie i granice Im bardziej czas ucieka, tym co raz częściej jestem pytany jak to możliwe, że pracując w zawodzie programisty jestem zatrudniony w jednej firmie przez dziewięć lat. Każdy z nas ma różne […]
  • Sondaż wyborczy wyborów prezydenckich 2015Sondaż wyborczy wyborów prezydenckich 2015 Zachęcam do głosowania: Nawiązując do tematyki wyborów, tutaj odnośnik do tego, co udało mi się pozyskać z przeprowadzonych wyborów samorządowych w 2014 roku.

One thought on “Jak zweryfikować wiarygodność danych, gdy obie strony znają to samo hasło?

  1. Płatności i SHA1? W 2016? Zapewne jest jeszcze wspierane ze względu na kompatybilność wsteczną, ale jeśli to ten dostawca płatności, o którym myślę, to jak najbardziej wspieraja – występujące w przykładach – SHA256, więc nie ma sensu implementować SHA1.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *