Strona 1 z 1

Zabezpieczenie dostępu hasłem

: 08 lut 2018 15:56
autor: Paw Saw
Witam,

W tworzonej przeze mnie aplikacji chciałem zabezpieczyć dostęp do pewnych funkcji za pomocą hasła. W tym celu stworzyłem bibliotekę z kilkoma funkcjami (weryfikacja loginu i hasła, zmiana hasła, dodawanie nowego użytkownika, etc.). Niestety rozwiązanie, które zastosowałem jest bardzo łatwe do zhackowania, ponieważ wszystkie informacje o zarejestrowanych użytkownikach przechowuję w pliku, który można otworzyć zwykłym notatnikiem. Próbowałem w jakiś sposób zabezpieczyć ten plik, aby nie był tak łatwo dostępny, na przykład ustawiałem go jako niewidoczny lub zabezpieczałem hasłem, jednak w takim przypadku LabView również ma problem z dostępem do niego. Macie jakieś pomysły, w jaki sposób można by zrealizować to inaczej? W załączniku przesyłam prosty program poglądowy.
Gdyby ktoś miał jednak problem z "hackowaniem", podpowiadam, że dane obecnie zarejestrowanego użytkownika to - login: admin, hasło: admin.

Pozdrawiam

Re: Zabezpieczenie dostępu hasłem

: 08 lut 2018 18:58
autor: pawhan11
Zakoduj sobie dane w pliku jakims algorytmem np:
http://sine.ni.com/nips/cds/view/p/lang/pl/nid/212735
potem w aplikacji przy odczycie odkoduj.

Re: Zabezpieczenie dostępu hasłem

: 08 lut 2018 23:26
autor: jogurt_owocowy
Niestety rozwiązanie, które zastosowałem jest bardzo łatwe do zhackowania, ponieważ wszystkie informacje o zarejestrowanych użytkownikach przechowuję w pliku, który można otworzyć zwykłym notatnikiem.
Potrzebujesz funkcji skrótu, za pomocą której przekształcisz swoje hasła przed zapisem do pliku. Teraz jest tak:

Kod: Zaznacz cały

admin	admin	True	True	True
user1	secret_password	True	True	True
Po zastosowaniu funkcji skrótu będzie tak:

Kod: Zaznacz cały

admin	21232f297a57a5a743894a0e4a801fc3	True	True	True
user1	be6cb1069f01cd207e6484538367bd1d	True	True	True
Cały myk polega na tym, że funkcja skrótu jest jednokierunkowa. Znając hasło, możesz obliczyć jego skrót, ale nie w drugą stronę. Teraz nawet jeśli haker otworzy ten plik w notatniku, to nie będzie w stanie poznać haseł na jego podstawie.

Zmiana w aplikacji będzie dość prosta. Po podaniu hasła przez użytkownika obliczasz jego skrót i porównujesz ze skrótem zapisanym w pliku zamiast porównywania samych haseł, jak było do tej pory.

LabVIEW posiada wbudowaną funkcję skrótu MD5 dla plików (MD5 Checksum File VI), którą możesz wykorzystać w tym celu (załącznik):
MD5 Hash Calculation.png
MD5 Hash Calculation.png (8.36 KiB) Przejrzano 1867 razy

Możesz też zainstalować bibliotekę OpenG MD5 Digest Library - znajdziesz tam gotową funkcję MD5 Message Digest.

Dla kompletności:
Wikipedia pisze:Od lat 90. MD5 nie jest uważany za bezpieczny do większości zastosowań i w jego miejsce zaleca się stosowanie algorytmów z rodziny SHA-2[6] lub SHA-3.
... ale tutaj powinien wystarczyć.

Re: Zabezpieczenie dostępu hasłem

: 09 lut 2018 14:51
autor: Paw Saw
Całkiem sprytne rozwiązanie. Myślę, że jak na moje potrzeby w zupełności wystarczające. Dzięki za pomoc.

Re: Zabezpieczenie dostępu hasłem

: 11 lut 2018 23:10
autor: czab
Skrót ma tę wadę, że niekoniecznie taki haker musi znać hasło, żeby złamać Twoją aplikację. Może na przykład - zgadując że wykorzystałeś MD5 - podmienić w Twoim pliku ciąg znaków na jakiś swój - na przyład MD5 ze słowa "tajnehasło". I potem, wpisując "tajnehasło", aplikacja otworzy przed nim swoje zasoby.

Dodatkowym zabezpieczeniem, które podnosi bezpieczenstwo aplikacji a wciaz (moim zdaniem) przesadnie jej nie komplikuje, jest "posolenie" hasła (ang. salt). Na przykład, dodanie do niego przed MD5 jakiejś znanej na sztywno w kodzie sekwencji znaków, na przykład "12345".

Algorytm sprawdzania hasła jest wtedy tylko odrobinke trudniejszy - bierzesz wejście użytkownika, dodajesz "12345", liczysz skrót i porównujesz z ustawionym hasłem. Z pliku VI dość trudno jest wykopać ciąg odpowiedzialny za salt, więc myślę że to niezly balans pomiędzy łatwością a bezpieczeństwem prostych aplikacji.

Re: Zabezpieczenie dostępu hasłem

: 12 lut 2018 08:49
autor: Paw Saw
Słuszna uwaga. Dzięki.

Re: Zabezpieczenie dostępu hasłem

: 12 lut 2018 23:40
autor: jogurt_owocowy
Skrót ma tę wadę, że niekoniecznie taki haker musi znać hasło, żeby złamać Twoją aplikację. Może na przykład (...) podmienić w Twoim pliku ciąg znaków na jakiś swój
To nie wada skrótu, bo przecież bez niego haker zrobiłby to samo.
Dodatkowym zabezpieczeniem (...) jest "posolenie" hasła (ang. salt). Na przykład, dodanie do niego przed MD5 jakiejś znanej na sztywno w kodzie sekwencji znaków, na przykład "12345".
Z pliku VI dość trudno jest wykopać ciąg odpowiedzialny za salt
Dodanie soli jest dobrym pomysłem, ale stosuje się ją trochę inaczej.
Sól jest losowym (generowanym na nowo dla każdego nowego hasła) i jawnym (nie trzeba jej znikąd wykopywać) ciągiem bajtów. "Jawny" w tym wypadku oznacza, że jest zapisywana w pliku obok skrótu hasła.

Re: Zabezpieczenie dostępu hasłem

: 01 mar 2018 13:01
autor: herex77
Gdzie się używa rozwiązań typu salt?





http://www.biuro-wirtualne.eu/ wirtualny adres w Warszawie

Re: Zabezpieczenie dostępu hasłem

: 01 mar 2018 15:08
autor: micard