Zabezpieczenie dostępu hasłem
Zabezpieczenie dostępu hasłem
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
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
- Załączniki
-
- Login.rar
- (151.93 KiB) Pobrany 525 razy
Re: Zabezpieczenie dostępu hasłem
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.
http://sine.ni.com/nips/cds/view/p/lang/pl/nid/212735
potem w aplikacji przy odczycie odkoduj.
CLS - Certified LabVIEW Student
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Zabezpieczenie dostępu hasłem
Potrzebujesz funkcji skrótu, za pomocą której przekształcisz swoje hasła przed zapisem do pliku. Teraz jest tak: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.
Kod: Zaznacz cały
admin admin True True True
user1 secret_password True True True
Kod: Zaznacz cały
admin 21232f297a57a5a743894a0e4a801fc3 True True True
user1 be6cb1069f01cd207e6484538367bd1d True True True
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):
Możesz też zainstalować bibliotekę OpenG MD5 Digest Library - znajdziesz tam gotową funkcję MD5 Message Digest.
Dla kompletności:
... ale tutaj powinien wystarczyć.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.
- Załączniki
-
- MD5 Hash Calculation.vi
- LV 2015
- (9.57 KiB) Pobrany 538 razy
Re: Zabezpieczenie dostępu hasłem
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
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.
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.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Zabezpieczenie dostępu hasłem
To nie wada skrótu, bo przecież bez niego haker zrobiłby to samo.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
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".
Dodanie soli jest dobrym pomysłem, ale stosuje się ją trochę inaczej.Z pliku VI dość trudno jest wykopać ciąg odpowiedzialny za salt
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.