Na niezawodnych stronach internetowych zawsze widzę oświadczenia, takie jak „Wszystkie dane są szyfrowane” lub „Wszystkie hasła są szyfrowane przy użyciu szyfrowania 128-bitowego” itp. Jednak nigdy nie spotkałem się z twierdzeniem, np. „Wszystkie hasła są zaszyfrowane”.
Na mojej stronie będę przechowywać wszystkie hasła użytkowników w bazie danych po użyciu skrótu SHA-512 (najprawdopodobniej) z losową solą. Chcę dodać fragment zapewniający użytkowników, że ich hasła są bezpieczne, aby nie zniechęcali się do korzystania z mojej witryny, ponieważ wymaga hasła. Chcę, aby użytkownicy czuli się bezpiecznie, ale nie sądzę, aby każdy wiedział, co to jest skrót.
MOJE PYTANIE: Czy można podać komunikat „Wszystkie hasła są zaszyfrowane i bezpieczne”, ponieważ nie sądzę, aby przeciętny użytkownik wiedział, jaka jest różnica między haszowaniem a szyfrowaniem, i prawdopodobnie poczuje się bezpiecznie tylko dlatego, że widzi słowo „szyfrowanie”? Czy może jest jakiś alternatywny komunikat, który powinienem przekazać?
Na marginesie, jestem nowy w szyfrowaniu i haszowaniu haseł i zastanawiałem się, czy byłoby to na razie wystarczająco bezpieczne, kiedy uruchamiam moją stronę. Nie chcę informować użytkowników, że jest bezpieczny, jeśli nie jest. Wszelkie informacje będą mile widziane. Dzięki.
Odpowiedzi:
Użytkownicy nie dbają o to.
Jedyne, na czym im zależy, to kiedy ktoś pobiera pieniądze z konta bankowego i wydaje się, że ma link, który kilka dni wcześniej uzyskał pełny dostęp do twojej bazy danych.
W prawie każdym przypadku, gdy widziałem takie wiadomości, były one mylące. Najśmieszniejszy był na stronie internetowej z „bezpiecznymi dla wojska” etykietami na każdej stronie. Wystąpił alert informujący, że certyfikat HTTP jest nieprawidłowy. W formularzu logowania wystąpił zastrzyk SQL. Kilka tygodni później witryna została zhakowana, a następnie zniknęła na zawsze.
Przestaję liczyć liczbę stron internetowych, które twierdzą, że przechowują informacje w bezpiecznym miejscu, mając formularz „Odzyskaj moje hasło”, który faktycznie wysyła oryginalne hasło pocztą e-mail.
To tak, jak te etykiety „W3C XHTML”. Dlaczego zwykle są umieszczane na stronach internetowych, na których nawet strona główna zawiera co najmniej dziesiątki błędów i podobnych kodów
<DIV COLOR='red'>
?Jeśli nadal chcesz uspokoić użytkowników, możesz umieścić coś takiego:
Ale szczerze mówiąc, formularz „Zresetuj moje hasło” zastępujący „Zapomniałem hasła; wyślij go do mnie e-mailem” jest znacznie bardziej uspokajający niż jakiekolwiek słowa.
Wskazówki z różnych komentarzy:
Nie wymyślaj koła ponownie: użyj OpenID. W ten sposób nie przechowujesz nawet skrótów.
Źródło: komentarz Jana Hudca .
Ponieważ jesteś studentem, otwórz swój projekt. Ponieważ martwisz się: „Nie chcę, aby użytkownicy myśleli, że ich hasła nie są bezpieczne, ponieważ zaprojektowało je jakieś dziecko w szkole”. , nie ma nic bardziej uspokajającego niż to, że można sprawdzić, czytając kod źródłowy, że został napisany przez zręcznego programistę, który dba o bezpieczeństwo.
Źródło: komentarz Jana Doggena .
źródło
Nie przechowuj haseł w pierwszej kolejności! Postępuj zgodnie z przykładem Stack Exchange i pozwól użytkownikom zalogować się przy użyciu swojej tożsamości w innej witrynie, która zapewnia uwierzytelnianie za pośrednictwem OpenID . Implementacje są swobodnie dostępne dla większości popularnych platform internetowych.
Lub ewentualnie jakikolwiek inny protokół. Jeśli jest to projekt wewnętrzny dla jakiejś instytucji (jak sugeruje Twój komentarz do drugiej odpowiedzi), prawie na pewno jest już LDAP, Kerberos (Windows Active Directory też jest oparty na tych dwóch; apache obsługuje uwierzytelnianie HTTP przeciwko nim) lub niektóre taka usługa logowania do komputera. Po prostu połącz się z tym.
Dzięki temu nie musisz przechowywać poufnych informacji (najprawdopodobniej nadal będziesz musiał przechowywać uprawnienia, ale nie są one tak ważne), a użytkownicy nie będą musieli pamiętać innej nazwy użytkownika i hasła, więc ogólnie wygrana.
źródło
Powiedzenie:
jest osobistym osądem, który oceniasz na temat pewnych faktów technologicznych lub procesów, a osąd ten jest ograniczony tym, co sam wiesz o bezpieczeństwie w tym czasie. Ale czy możesz zagwarantować bez wątpienia, że twoje szyfrowanie, metoda przechowywania itp. Wytrzymają każdy rodzaj ataku, nawet taki, o którym nie wiesz lub o którym jeszcze nie wiesz?
Znaczenie: Stwierdzenie to może być nieaktualne, być może nawet bez Twojej świadomości.
Dlatego zgadzam się z powyższym komentarzem @JoachimSauer: Po prostu opisz, co robisz, jak zapisujesz informacje o użytkowniku i mów użytkownikom, w jaki sposób ma to zapewnić bezpieczeństwo Twojej usługi. Następnie użytkownicy mogą sami ocenić.
źródło
To zależy od kontekstu Twojej witryny.
Na przykład, jeśli jest to strona internetowa konsumenta, istnieje prawdopodobieństwo, że większość z nich będzie dbać tylko o swoje hasła (być może), informacje finansowe / zdrowotne (w zależności) i ich prywatne informacje, takie jak zdjęcia (hahaha, tak, racja ...) .
Jeśli jest to aplikacja biznesowa, odpowiedni jest poziom bezpieczeństwa całej witryny, a nie tylko hasła. Podobnie zależy to od tego, kim są Twoi docelowi użytkownicy - wysoce techniczny / niezbyt techniczny itp.
Cały ten kontekst znacznie określa, co powinieneś komunikować i jaki poziom pewności jest wymagany.
Na przykład dla nietechnicznych konsumentów wystarczy mieć kilka ogólnych, prostych komentarzy, takich jak:
(I, jak powiedzieli inni, lepiej nie mieć nawet haseł, użyj standardu, takiego jak OpenId lub OAuth.)
W przypadku wysoce technicznych firm, chciałbyś mieć pełną stronę szczegółów technicznych i proceduralnych, takich jak:
Oczywiście nie chcesz przekazywać zbyt wielu szczegółowych informacji, powinno to dotyczyć bardziej samego procesu niż samych haseł ... I oczywiście powinno być oczywiste, że rzeczywistość powinna być zgodna z tym, co tam piszesz , niezależnie od kontekstu, z którym masz do czynienia.
Jak wskazano na jedną z odpowiedzi, większość użytkowników nie dba o to, nie zrozumie, co im powiesz, i mimo to zarejestruje się, nawet jeśli powiesz, że wysyłasz dane użytkownika do NSA.
To nie jest dla nich.
Byliby równie szczęśliwi, gdyby nie mieli żadnych haseł, pozwól mi tylko wybrać moją nazwę użytkownika z listy i zalogować się automatycznie.
Oczywiście dotyczy to niewielkiego odsetka, który się tym przejmuje - należy umożliwić inteligentnym użytkownikom robienie tego, co właściwe, przekazywać im potrzebne informacje i zapewniać im edukację, o którą mogliby poprosić.
Jeśli tego nie zrobisz, gdy coś pójdzie nie tak, pozostałe 98% nagle się obudzi i rozzłości.
( „Jasne, wiedziałem, że nie potrzebne jest hasło, aby zobaczyć moje zdjęcia, ale nie sądzę, że ktoś inny mógł również zobaczyć je !!”)
źródło
Jeśli chcesz, aby Twój system był bezpieczny, siła algorytmu hasła jest bez znaczenia - większość hakerów może złamać hasło w mgnieniu oka, szczególnie jeśli wybrane hasło jest małe lub składa się z ogólnych słów, które haker już „złamał i zapisał” „usiong tęczowe stoły i podobne. Przeczytaj artykuł ArsTechnica na temat łamania haseł, aby uzyskać wiele informacji.
To, co musisz zrobić, to zapewnić użytkownikom, że złoczyńcy nie mogą dostać się do swoich skrótów. Jedna firma dbająca o bezpieczeństwo, dla której pracowałem, miała trójwarstwowy system internetowy, w którym serwery sieciowe nie były fizycznie podłączone do serwerów baz danych. Kiedy mój szef chciał założyć swoją stronę internetową i mieć bezpośredni dostęp do DB (źle zaprojektowany kod, powiedział „nuff”), powiedziano mu, że nie może go mieć, a kiedy naciskał… powiedziano mu, że nie było między nimi przewodów . Musiał go tak zaprojektować, aby przekazywał wszystkie żądania danych za pośrednictwem usługi pośredniej. Usługi te były nie tylko zabezpieczone, ale także narażone na atak minimalnej powierzchni i zostały zablokowane. I DB nigdy nie ujawnił żadnej ze swoich tabel do odczytu, tylko procedury składowane, które z kolei zostały zablokowane, więc tylko odpowiednia usługa miała dostęp.
Kodowanie nie było tak złe, jak mogłoby się wydawać, kiedy poznałeś architekturę i oddzielenie poszczególnych warstw, było dość łatwe do kodowania.
źródło
Możesz opracować najbardziej bezpieczną witrynę na świecie i mieć naprawdę kiepską obsługę. Użytkownicy przyjmą, że Twoja witryna jest niepewna.
Możesz zbudować najmniej bezpieczną witrynę na świecie i mieć niesamowitą wygodę użytkowania. Użytkownicy przyjmą, że Twoja witryna jest bezpieczna. Przynajmniej dopóki nie pojawi się w wieczornych wiadomościach.
źródło