Zabezpieczenie dostępu hasłem

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Paw Saw
Posty: 37
Rejestracja: 12 maja 2016 16:02
Wersja środowiska: LabVIEW 2017

Zabezpieczenie dostępu hasłem

Post 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
Załączniki
Login.rar
(151.93 KiB) Pobrany 457 razy
Obrazek
pawhan11
Posty: 67
Rejestracja: 21 wrz 2011 16:25
Wersja środowiska: LabVIEW 2012

Re: Zabezpieczenie dostępu hasłem

Post 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.
CLS - Certified LabVIEW Student
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Zabezpieczenie dostępu hasłem

Post 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 12182 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ć.
Załączniki
MD5 Hash Calculation.vi
LV 2015
(9.57 KiB) Pobrany 470 razy
Paw Saw
Posty: 37
Rejestracja: 12 maja 2016 16:02
Wersja środowiska: LabVIEW 2017

Re: Zabezpieczenie dostępu hasłem

Post 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.
Obrazek
Awatar użytkownika
czab
Posty: 54
Rejestracja: 26 cze 2011 14:59
Wersja środowiska: LabVIEW 2011

Re: Zabezpieczenie dostępu hasłem

Post 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.
Obrazek
Paw Saw
Posty: 37
Rejestracja: 12 maja 2016 16:02
Wersja środowiska: LabVIEW 2017

Re: Zabezpieczenie dostępu hasłem

Post autor: Paw Saw »

Słuszna uwaga. Dzięki.
Obrazek
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Zabezpieczenie dostępu hasłem

Post 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.
herex77
Posty: 1
Rejestracja: 01 mar 2018 12:57
Wersja środowiska: LabVIEW 2012

Re: Zabezpieczenie dostępu hasłem

Post autor: herex77 »

Gdzie się używa rozwiązań typu salt?





http://www.biuro-wirtualne.eu/ wirtualny adres w Warszawie
Awatar użytkownika
micard
Posty: 207
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2017
Kontakt:

Re: Zabezpieczenie dostępu hasłem

Post autor: micard »

ODPOWIEDZ