Blog (107)
Komentarze (2.3k)
Recenzje (0)

WWW - ochrona danych użytkownika, teoria + trochę praktyki

@webnullWWW - ochrona danych użytkownika, teoria + trochę praktyki26.03.2011 23:37

Witam.

Ostatnio nieco rozmyślałem o tym jak można ochronić użytkownika własnego portalu/www jednocześnie nie posiadając zbyt wiele powszechnych możliwości pod ręką.

I ot tak wymyśliłem jak bez użycia SSL zabezpieczyć logowanie do serwisu WWW, jednak jest to na razie samo logowanie.

SLS w praktyce

SLS bo tak nazwałem Mój pomysł na bezpieczne logowanie, jest to skrót od Secure Login System.

Całość zakłada użycia mocnych algorytmów kryptograficznych czyli AES, base64 co prawda nie jest mocnym algorytmem ale pomaga w przetransportowaniu danych (danych z AES'a nie można od tak sobie przenieść metodą POST czy GET bo wyglądają jak kod binarny) oraz MD5.

Testowy kod można zobaczyć tutaj: - Serwer (wklej.org) - Klient testowy w PHP (wklej.org) - Biblioteka AES (wklej.org)

Jeżeli powyższe linki nie są dostępne to tutaj jest drugie źródło: - Serwer - Klient - Biblioteka AES

Oczywiście dla rozjaśnienia całości podam prosty schemat implementacji SLS:

1. Użytkownik przechodzi rejestrację na której zostaje wygenerowane hasło i wysłane na e-mail podany przy rejestracji. Zostaje też wygenerowany ciąg login_key oraz login_code

Login_code to zaszyfrowany ciąg znaków o wartości login_key przy pomocy klucza - hasła użytkownika.

2. Użytkownik próbując się zalogować wpisuje login i hasło, przeglądarka trzyma hasło w pamięci a wysyła sam login

3. Serwer otrzymując i rozpoznając login wysyła przeglądarce login_code

4. Przeglądarka rozszyfrowuje login_code używając hasła użytkownika jako klucza, otrzymuje login_key. Wysyła hasło użytkownika zaszyfrowane używając login_key jako klucza.

5. Serwer rozszyfrowuje wiadomość od przeglądarki używając login_key, jeżeli suma md5 zawartego w tej wiadomości hasła wynosi tyle samo co w bazie danych to autoryzuje użytkownika pozytywnie

6. Losowy ciąg znaków zostaje wpisany do pola login_key w bazie danych, następnie zaszyfrowany przy pomocy otrzymanego hasła użytkownika i wpisany do pola login_code dzięki czemu przy następnym logowaniu dostajemy nowy klucz co uniemożliwa zalogowanie się używając starego przez atakującego

Zalety rozwiązania: + Bezpieczeństwo jak przy SSL? + Nie ma potrzeby trzymania hasła w bazie danych, wystarczy posolony skrót md5/sha256/inny z hasła + Przydaje się kiedy nie mamy możliwości wprowadzenia SSL do naszego serwera

Wady rozwiązania: - Wymagany Javascript z obsługą Ajax (akurat nowsze przeglądarki zarówno w komputerach jak i tabletach i smartfonach obsługują Javascript i Ajax) - Można sprawdzić czy dany login istnieje w bazie wysyłając pierwsze zapytanie do serwera prosząc o login_code

Pierwsze testy logowania SLS

Logowanie SLS wymyśliłem na potrzeby własnego frameworka pisanego w PHP - OpenWikiBlog jako "atrakcyjny moduł" wbudowany, dostarczany razem z projektem.

Napisałem prostą implementację logowania - tylko test z użyciem PHP jako serwera oraz PHP jako klienta (mam większe doświadczenie z PHP dlatego łatwiej Mi było napisać w PHP klienta do testów).

SLS i ochrona prywatności użytkowników

Wyobraź sobie teraz, że możesz chronić dane użytkowników Twojego serwisu na tyle, że nawet Ty sam nie będziesz w stanie ich odczytać.

Można szyfrować poufne dane użytkownika takie np. jak prywatne notatki czy zakładki internetowe przy pomocy algorytmu Advanced Encryption Standard używając ich hasła jako klucza.

Odszyfrowanie tych danych byłoby możliwe tylko wtedy, gdy użytkownik jest zalogowany.

Pomyśl teraz, że nawet gdyby policja kazała udostępnić Ci dane któregoś z użytkowników to nie mogliby tych danych odczytać - wszystko zależałoby od użytkownika czy podałby hasło policjii.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.