Pytanie:
Czy zezwalanie użytkownikowi na zmianę nazwy użytkownika jest dobrą czy złą praktyką?
Jeff Y
2017-12-20 03:02:51 UTC
view on stackexchange narkive permalink

Przeszukałem całą sieć i tę witrynę, aby znaleźć więcej informacji na temat bezpieczeństwa, ale niczego nie znalazłem. W moim konkretnym przypadku produktem jest witryna internetowa, ale myślę, że to pytanie dotyczy każdego oprogramowania obsługującego dużą liczbę użytkowników.

Wiem, że istnieje wiele witryn internetowych, które umożliwiają zmianę nazwy użytkownika , ale jednocześnie jest wielu, którzy na to nie pozwalają. Jestem pewien, że niektóre, które na to nie pozwalają, mogą być tylko dla uproszczenia, ale być może także dla bezpieczeństwa.

Moje pytanie jest takie, jak w tytule:

Od z punktu widzenia bezpieczeństwa, czy powiedziałbyś, że zezwalanie osobom na zmianę nazwy użytkownika jest dobrą lub złą praktyką?

Obecnie nie mogę wymyślić żadnego powodu, aby na to nie zezwolić, biorąc pod uwagę, że jest to zrobione prawidłowo ( tzn. uniemożliwić zduplikowane nazwy użytkownika, wymagaj wprowadzenia aktualnego hasła, aby upewnić się, że wymagania dotyczące hasła są nadal spełnione w zakresie braku nazwy użytkownika itp.), ale nie mogę pomóc, ale myślę, że czegoś mi brakuje.

Wiem, że z punktu widzenia użytkownika są zalety umożliwiające zmianę nazwy użytkownika. Przykładem może być ustawienie nazwy użytkownika na adres e-mail i późniejsza decyzja o użyciu innego adresu e-mail. Zamiast tego jestem ciekawy korzyści i zagrożeń związanych z bezpieczeństwem aplikacji i procesu logowania, jeśli pozwolisz im zmienić nazwę użytkownika.

EDYTUJ:

Niektóre odpowiedzi podnoszą dobre punkty dotyczące nazw wyświetlanych publicznie, ale aby wyjaśnić, pytanie nie dotyczy żadnej publicznej nazwy wyświetlanej, ale unikalną nazwę użytkownika używaną do logowania.

Interesujące pytanie.Myślę, że nie musisz go zabraniać, aby chronić się przed użytkownikami, ale możesz chcieć go ograniczyć, aby chronić użytkowników przed sobą.Zmiana nazwy użytkownika może być przydatna, jeśli próbujesz oszukać osoby w witrynie.
Na rynku gier Steam jest wielu ludzi, którzy właśnie to robią.Oszuści zmieniają swoją nazwę użytkownika i zdjęcie, aby udawać, że są kimś, kogo znasz, i proszą Cię o wymianę na nią przedmiotów.Steam ma funkcję, która pozwala zobaczyć ostatnio używane nazwy przez każdego użytkownika, co jest jednym ze sposobów, w jaki użytkownik może uchronić się przed oszukaniem przez taką sztuczkę.Możesz również potencjalnie pokazać szczegóły, takie jak długo są przyjaciółmi z użytkownikiem lub kiedy ostatnio zmieniano nazwę użytkownika, aby zapobiec tego rodzaju oszustwom.
Witryny Stack Exchange nie tylko pozwalają zmienić nazwę użytkownika, ale nawet nie muszą być unikalne.
@Michael To wspaniałe, prawda?
Czy pytasz o bezpieczeństwo między użytkownikami na serwerze (bez efektu) czy o bezpieczeństwo między użytkownikami?
Pytanie jest oznaczone jako „poświadczenia” @Michael, więc nie uważam, że dotyczy tylko nazwy wyświetlanej.Wy dwaj Michaels nie uwierzytelniacie się w SE przy użyciu tej samej „nazwy użytkownika”.
Myślę, że w dzisiejszych czasach, jeśli nazwa użytkownika jest publicznie widoczna, a inni muszą jej używać, aby się do kogoś zwrócić, istnieje możliwość jej modyfikacji. Jeśli jedynym celem jest zalogowanie się do kogoś innego niż korzystanie z poczty e-mail, może to być stała.
Możesz mieć witrynę, w której podstawowe nazwy użytkowników są statyczne, ale pozwalają użytkownikom zmieniać ich nazwy wyświetlane.
Jedna z aplikacji, które utrzymuję, jest trochę koszmarem zmiany nazwy użytkownika, ponieważ jest to ich adres e-mail - a ten e-mail jest powiązany z kilkoma starszymi bazami danych, więc musiałby zostać sprawdzony i zresetowany w kilku miejscach z całym potencjalnym uderzeniemefekty!Więc łatwiej to zabronić ...
Jedynym powodem, dla którego mogę wymyślić, aby uniemożliwić użytkownikom zmianę nazwy użytkownika, jest [tego rodzaju sytuacja] (http://i0.kym-cdn.com/photos/images/newsfeed/001/042/556/168.jpg).W zależności od rodzaju usługi możesz podjąć kroki, aby temu zapobiec, ale ogólnie rzecz biorąc, nie byłby to duży problem przez większość czasu.
Trzynaście odpowiedzi:
fluffy
2017-12-20 10:13:56 UTC
view on stackexchange narkive permalink

Wiele osób szukało powodów, dla których nie wolno zmieniać nazwy zarówno z punktu widzenia bezpieczeństwa, jak i społeczności. Istnieje jednak wiele uzasadnionych powodów, aby zezwolić na zmianę nazwy użytkownika, nawet jeśli nazwa użytkownika jest oddzielona od nazwy wyświetlanej , na przykład:

  • Ktoś zmienił swoje prawdziwe życie imię lub nazwisko, którym woleliby być nazywani z powodu małżeństwa, sytuacji rodzinnych, ucieczki przed prześladowaniem / nękaniem / itp., itd.

    Nawet jeśli jest to po prostu nazwa użytkownika, posiadanie używanie starej nazwy niosącej traumę może pogłębić traumę. Jest również całkiem możliwe, że prześladowca / napastnik zna dane logowania swojego celu, a możliwość zmiany obu części danych uwierzytelniających obniża powierzchnię ataku; ponadto monitorowanie prób logowania się do porzuconej nazwy użytkownika pozwala na zbudowanie sprawy sądowej przeciwko złemu agentowi.

  • Ludzie zdecydowali się pójść naprzód w sprawie zmiany płci

    Zmuszanie do używania swojego „martwego imienia”, nawet w kontekście prywatnej nazwy użytkownika, jest również bardzo traumatyczne. (Mogę mówić o osobistych doświadczeniach w tej sprawie.)

  • Ludzie mają nazwę użytkownika, która z jakiegoś powodu już im nie pasuje

    To ma mniej ma to wpływ na wewnętrzne nazwy użytkownika, ale moim zdaniem nadal lepiej jest wziąć pod uwagę dobroć.

Wszystkie te elementy są ważne dla wygody użytkownika oraz w wielu przypadkach ludzie prawdopodobnie i tak utworzyliby nowe konto z nową nazwą, więc równie dobrze moglibyśmy je wspierać.

Unikanie inżynierii społecznej jest z pewnością ważne, ale istnieją podejścia, które pomagają to złagodzić, takie jak różne formy weryfikacji (jak widać w kilku sieciach społecznościowych), kryptografia klucza publicznego i wskaźniki profilu („nazwa ostatnio zmieniona N miesięcy temu ; nazwa zmieniona K razy ”). A ponieważ to pytanie zostało zredagowane tak, aby dotyczyło wewnętrznych nazw użytkowników, a nie publicznych nazw wyświetlanych, te obawy nie są nawet związane z dyskusją.

Należy również pamiętać, że wiele powierzchni ataków dostarczonych przez kogoś zmiana nazwy użytkownika jest również obecna dla kogoś, kto po prostu tworzy nowe konto, a jeśli opcja zmiany nazwy użytkownika nie jest dostępna, użytkownik prawdopodobnie utworzy nowe konto - prawdopodobnie używając tego samego hasła co stare i robiąc inne rzeczy, które mogą prowadzić do naruszenie bezpieczeństwa.

Dobrze jest zachować ścieżkę audytu zmian nazwy użytkownika i zabronić tworzenia nowych kont, które używają poprzednio używanej nazwy użytkownika (przynajmniej jeśli nazwa użytkownika była ostatnio używana w przeszłości, powiedzmy rok), ale nie ma powodu, aby nazwa użytkownika była kiedykolwiek głównym kluczem używanym do kojarzenia danych z kontem użytkownika, ponieważ istnieją uzasadnione cele zmiany nazwy użytkownika i wszystkie rekordy konta powinny być znormalizowane do abstr w pierwszej kolejności działaj tylko jako identyfikator wewnętrzny.

Natura społeczności też ma znaczenie.Jeśli Twoje nazwy użytkownika są zasadniczo prywatne (jak w Gmailu lub w większości usług innych niż społecznościowe, które wymagają rejestracji), zezwolenie na dowolne zmiany nie jest kontrowersyjne.Jeśli jednak nazwy użytkowników są zarówno publiczne, jak i istotne (na przykład na forum dyskusyjnym, blogu, stronie dziennikarskiej lub nawet w SO), zezwolenie na dowolną zmianę nazwy użytkownika powoduje więcej problemów niż rozwiązuje i po prostu ułatwia trollowanie i unikanie odpowiedzialności.
Powód nie.3 dotyczą mnie.Moja nazwa użytkownika, konto e-mail, konto LoL itp. To „kukis13”.Jest to bardzo dobra nazwa użytkownika, gdy używam jej w moim kraju, ale odkąd przeprowadziłem się do Szwecji, ma bardzo nieprzyjemne znaczenie.Chciałbym więc to zmienić, ale większość usług na to nie pozwala
@aroth Pamiętam jedno forum, którego byłem członkiem, które pozwalało na zmianę nazwy.Nowa nazwa / obrazek zostałby zasadniczo zastosowany z mocą wsteczną do starych wiadomości, ponieważ otwarcie wiadomości spowodowałoby po prostu załadowanie aktualnej nazwy / zdjęcia autora postu.Mogłoby to zapobiec pewnym uchylaniu się od odpowiedzialności.
Powód # 4 strona internetowa, na której konto jest zarejestrowane, ma ukryty kapelusz, który jest uruchamiany tylko po zmianie nazwy użytkownika / wyświetlanej.
Chociaż ta odpowiedź ma obecnie najwięcej pozytywnych głosów i zdecydowanie poruszyła dobre strony w umożliwieniu danej osobie zmiany nazwy użytkownika, nadal nie rozwiązuje faktycznego pytania „Z punktu widzenia bezpieczeństwa, czy powiedziałbyś, że jest dobra czy złapraktyka pozwalająca osobom na zmianę nazwy użytkownika? ”Pomyśl na przykład o witrynie bankowej lub jakiejkolwiek innej witrynie, w której nazwa użytkownika jest prywatna i nie może być żadnej publicznej wyświetlanej nazwy.
@aroth - przynajmniej w przypadku modów SE mogą uzyskać dostęp do historii audytu zmian nazw, a zwykli użytkownicy zwykle mogą to rozwiązać przy minimalnym przeszukiwaniu poprzednich rozmów lub profilu użytkownika naruszającego, co powoduje, że wpływ na odpowiedzialność (lub unikanie jej) jest dość niewielką niedogodnością.Ponadto żadna liczba zmian nazwy nie usunie poprzednich flag ani nie powstrzyma automatycznych skryptów przed blokowaniem komuś pytania lub odpowiedzi.
@MichaelRichardson z pewnością tak jest w tym przypadku, z wyjątkiem @-mentions.To trochę mylące, gdy zdasz sobie sprawę, że post wspominający o „@Alice” pojawia się teraz jako napisany przez „Bob”, ale jest to drobny problem z UX.
„każda powierzchnia ataku zapewniona przez osobę zmieniającą swoją nazwę użytkownika jest również obecna dla kogoś, kto po prostu tworzy nowe konto” - nie do końca, ponieważ nowe konto nie ma ustalonej historii.Na przykład prawdopodobnie łatwiej jest podszyć się pod użytkownika Stack Exchange, jeśli Twój przedstawiciel ma taką samą liczbę cyfr jak jego.
Z innego powodu używanie adresu e-mail jako nazwy użytkownika jest dość popularne.Korzystanie z mojego adresu e-mail uczelni okazało się nie być dobrym pomysłem w przypadku niektórych witryn, ponieważ nie mogę już uzyskać do niego dostępu, a wszelkie witryny używające go jako mojej nazwy użytkownika powodują problemy, gdy muszą do mnie wysłać e-mail.
Zaktualizowałem swoją odpowiedź w związku z zawężeniem zakresu pytania, a także w odpowiedzi na niektóre piękne komentarze tutaj.
@fluffy Zadałem to pytanie w witrynie poświęconej bezpieczeństwu informacji i pomyślałem, że wyjaśniłem swoje zamiary pytania, zwłaszcza gdy pierwotne pytanie kończy się na „Wiem, że z punktu widzenia użytkownika są zalety ... Zamiast tego jestem ciekawy korzyści vs.ryzyko związane z * bezpieczeństwem aplikacji i procesem logowania *, jeśli pozwolisz im zmienić nazwę użytkownika. "Prawdopodobnie jednak zbytnio skupiałem się na pierwszej połowie Twojego pytania, w której skupiłeś się na kwestiach związanych z wygodą użytkownika, ale rzeczywiście pod koniec odpowiedzi udzieliłeś odpowiedzi dotyczących bezpieczeństwa aplikacji.
K.B.
2017-12-20 03:39:04 UTC
view on stackexchange narkive permalink

Powiedziałbym, że dopóki nie są w stanie zmienić swojego unikalnego identyfikatora. To znaczy. mogą zmienić nazwę, pod jaką się pojawiają, ale ta nazwa jest powiązana z niezmiennym numerem identyfikacyjnym użytkownika (dzięki temu administratorzy DBA będą szczęśliwsi). Upewniłbym się również, że użytkownik nie może zmienić swojej nazwy na starą nazwę innego użytkownika (aby pomóc złagodzić oszustwo, o którym mówi Anders). Więc będziesz patrzeć na przechowywanie wszystkich nazw, które przeszedł użytkownik w pewnym momencie.

Lepiej byłoby poprosić o zmianę nazwy użytkownika, zająć się uzasadnionymi przypadkami (takimi jak przypadek wiadomości e-mail) i nie mieć metody, która może być automatyczna przez użytkownika.

Mam już pole UserId, klucz podstawowy, którego nie można zmienić.Obecnie korzystamy z Twojej sugestii dotyczącej osób, które zwracają się do nas z prośbą o zmianę, ale nie jest ona tak skalowalna ze względu na pracę ręczną i wymaga od nas poproszenia o odpowiedzi na ich pytania zabezpieczające w celu weryfikacji.Właśnie dlatego pomyślałem o dodaniu tej funkcji do strony profilu naszej witryny lub jej całkowitym zablokowaniu, a także o tym pytaniu.
Może filtr Bloom byłby odpowiedni do przechowywania poprzednich nazw użytkowników?Miałoby to dodatkową korzyść, że poprzednie dane użytkownika nie są w rzeczywistości przechowywane, ale można je wyszukać.
Co ciekawe, Twitter umożliwia zmianę nazwy użytkownika (nie tylko „name”, ale także @username) w dowolnym momencie, a także umożliwia zmianę na nazwę użytkownika, która wcześniej należała do kogoś innego - bez opóźnienia (tj. W ciągu kilku sekund od zmiany nazwy użytkownika).
Użytkownicy @fjw Twittera mają identyfikatory numeryczne.Nazwa użytkownika jest tylko kosmetyczna.Nie jest więc zaskakujące, że nazwy użytkowników można ponownie wykorzystać.
Tak właśnie zrobił Microsoft z Windows.Możesz zmienić swoją nazwę użytkownika, do logowania itp., Ale nadal prowadzi ona do oryginalnego katalogu `c: \ user \
@solomonoffs-secret Niestety, gdy użytkownik Twittera zmienia swoją nazwę, wszystkie wzmianki @ są przerywane.A teraz twoje częściowo ukryte odpowiedzi do tej osoby stają się widoczne jako zwykłe tweety.
@Ark-Kun czy próbowałeś zmienić nazwę użytkownika na Twitterze?Istniejące odpowiedzi nie przerywają i nadal prowadzą do postu, na który odpowiadali.Oczywiście każdy, kto tworzy nowy @-mention, będzie musiał użyć nowej nazwy użytkownika, ale istniejące odpowiedzi skierowane do osób z poprzednimi nazwami użytkowników są nadal poprawnie połączone jako odpowiedzi.Dla wyjaśnienia technicznego: odpowiedzi są łączone na poziomie postów i nie ulegają zniszczeniu.Same @-mentions są połączone na poziomie nazwy użytkownika.Twitter dokonuje teraz rozróżnienia (nie zawsze).
@fjw Moje doświadczenie jest inne.Napisałem wiele odpowiedzi do ludzi.Te tweety nie były wyświetlane w moim publicznym kanale tweetów (tylko w „Tweetach i odpowiedziach”).Ostatnio spojrzałem na mój kanał i zobaczyłem, że jest zaśmiecony wieloma odpowiedziami, które są teraz wyświetlane w moim głównym kanale.Ponadto początkowe @-mentions nie są już linkami - są traktowane jako zwykły tekst.Nie jestem pewien, co się stało.Albo ta osoba zmieniła swój alias, albo użyła masowych czarnych list i zablokowała wszystkich, łącznie ze mną.
Mike Ounsworth
2017-12-20 05:53:48 UTC
view on stackexchange narkive permalink

Jak wspomniano, umożliwienie użytkownikom łatwej zmiany nazw użytkowników (nazwijmy to „nazwą wyświetlaną” w celu ujednoznacznienia) ułatwia użytkownikom uniknięcie konsekwencji nękania lub oszukiwania innych użytkowników. Jeśli Twoja witryna ma aspekt społecznościowy, może zastanów się, czy bany, blokady, raporty, historie czatów itp. Będą przenoszone przez zmianę nazwy użytkownika (tj. Czy użytkownik będzie wiedział, że rozmawia z tym samym kontem, mimo że nazwa się zmieniła? ).

Kolejną kwestią do rozważenia są kwestie związane z anonimowością lub prywatnością. Dość często zdarza się, że ktoś tworzy konto przy użyciu swojego prawdziwego imienia i nazwiska, a następnie z jakiegokolwiek powodu żałuje, że przypisuje mu swoją prawdziwą tożsamość. Czasami dzieje się tak, ponieważ zostali przyłapani na znęcaniu się, ale często dzieje się tak z uzasadnionych powodów, takich jak nadmierna wymiana danych osobowych z ich życia lub padają ofiarą prześladowania. To ostatnie pytanie przychodzi mi do głowy jako inny przykład:

Przypadkowo wpisałem hasło do witryny internetowej jako nazwę użytkownika w innej witrynie

W tym przypadku przesyłając zgłoszenie serwisowe do przejrzenia przez człowieka lub zezwolenie na ograniczoną liczbę zmian nazwy konta brzmi jak rozsądne podejście.

maaartinus
2017-12-20 10:02:17 UTC
view on stackexchange narkive permalink

Obecnie korzystamy z Twojej sugestii dotyczącej osób, które kontaktują się z nami z prośbą o zmianę, ale nie jest ona tak skalowalna ze względu na pracę ręczną i wymaga od nas poproszenia o odpowiedzi na ich pytania bezpieczeństwa w celu weryfikacji.

To zdecydowanie nie tak. Nie tylko musisz to zrobić ręcznie, ale musisz udzielić odpowiedzi bezpieczeństwa wszystkim przetwarzającym takie żądania.

Jeśli chcesz zachować kontrolę, zautomatyzuj to półautomatycznie: pozwól użytkownikowi zrobić wszystko prace przygotowawcze, tj. uzupełnij nowe imię i nazwisko, napisz ich powód (jeśli Ci zależy) i odpowiedz na pytanie zabezpieczające. Teraz pracownicy działu pomocy technicznej muszą tylko zaakceptować lub odrzucić prośbę.


W innych odpowiedziach podano wiele powodów za i przeciw zezwoleniu na zmianę nazwy użytkownika. Pamiętaj, że możesz pójść środkową drogą: Zezwól na jedną automatyczną zmianę, np. Raz w roku. Jest to wystarczająco hojne rozwiązanie, aby obsłużyć 99% żądań, a jednocześnie wystarczająco ograniczone, aby zapobiec większości nadużyć.

Tak, ale to nie był mój pomysł i tak robiono to przed moimi czasami.To jest po pierwsze część powodu tego pytania;więc mogę to poprawić :)
Pojedyncza zmiana jest jakimś arbitralnym ograniczeniem i zawsze znajdą się ludzie, którzy albo potrzebują więcej zmian, albo ich nie rozumieją.Z drugiej strony są nawet strony, które umożliwiają na przykład jednorazową zmianę daty urodzenia.Na wypadek, gdybyś pomylił się podczas rejestracji?Uważam, że ważniejsze jest wprowadzenie zmiany, aby całkowicie ją usunąć, jeśli chcesz.
@allo Oczywiście, zawsze będą jakieś wyjątkowe przypadki.Ale to nie powoduje, że ten arbitralny limit jest nieważny.Jeśli oszczędza ci to trochę pracy ręcznej, to jest przydatne.Myślę, że ten limit mógłby zaoszczędzić jakieś 90-99%.Może inny limit działałby lepiej ... po prostu spróbuj i zbierz kilka liczb.+++ Usunięcie konta: Jasne, ale nie o to tutaj chodzi.
Rawrskyes
2017-12-22 05:33:43 UTC
view on stackexchange narkive permalink

Jestem trochę zaskoczony, że nie zostało to poruszone. Ale przypuszczam, że powodem, dla którego wiele witryn nie pozwala na zmianę nazwy użytkownika, jest to, że stanowi to problem, jeśli informacje o koncie użytkownika zostaną skradzione, ponieważ osoba atakująca może teraz całkowicie zmienić wszystko na koncie.

Bez wątpienia trudniejsza jest próba odzyskania konta osoby, której dane zostały skradzione i wszystko zostało całkowicie zmienione. Posiadanie typowych informacji, które nigdy się nie zmienią, ułatwia użytkownikowi odesłanie do swojego konta, gdyby zdarzyło mu się stracić do niego dostęp.

Myślę, że niektóre inne odpowiedzi tutaj dostarczyły lepszych rozwiązań , ale nie jestem pewien, czy wielu z nich poruszyło to, o co tak naprawdę pytałeś, a które dotyczyło konsekwencji dla bezpieczeństwa związanych z zezwoleniem na zmianę nazwy użytkownika.

Są na to jednak rozwiązania.Po pierwsze, powiadomienia e-mail stanowiłyby gwarancję, że użytkownik jest legalny.Widziałem wiele witryn, w których „zapomniałeś nazwy użytkownika?”opcje wymagające adresu e-mail (możesz śledzić poprzednie adresy e-mail, aby ich zmiana nie zaszkodziła).I szczerze mówiąc, spodziewam się, że obsługa klienta (co zazwyczaj jest konieczne, jeśli ktoś tak bardzo chce przejąć twoje konto) powinna być w stanie wyszukać twoje konto po jego starej nazwie użytkownika.W każdym razie powinno to być przechowywane w celu zapewnienia odpowiedzialności (zapobieganie nadużywaniu funkcji).
Dan Landberg
2017-12-20 03:35:44 UTC
view on stackexchange narkive permalink

Twierdzę, że lepiej nie pozwalać użytkownikom zmieniać ich nazw użytkowników, ale tak naprawdę zależy to od modelu zagrożeń. Oto zalety & wady pozwalające na to:

Zalety:

  • Jeśli dane logowania użytkownika zostaną naruszone w innej witrynie, umożliwienie użytkownikom zmiany nazwy użytkownika może uczynić to bardziej Trudno jest dopasować poświadczenia z zainfekowanej witryny do Twojej witryny, co utrudnia przeprowadzenie ataku polegającego na wypychaniu poświadczeń. Pamiętaj, że zmiana hasła ma ten sam cel.

Wady:

  • Jak wspomniano powyżej, ułatwia to użytkownikom korzystanie z mediów społecznościowych ataki inżynieryjne skierowane przeciwko sobie w witrynie.
  • Witryna jest bardziej złożona, co z kolei zwiększa liczbę potencjalnych błędów bezpieczeństwa. Na przykład, jeśli sprawdzasz duplikaty, masz teraz lukę w wyliczaniu użytkowników.
Ciekawe, jak wyliczenie jest problemem, jeśli jest to nazwa użytkownika wybrana przez użytkownika, a nie adres e-mail.Przypuszczam, że użytkownicy decydujący się na używanie swoich adresów e-mail mogą liczyć ...
To był tylko przykład.Chodziło mi o to, że im bardziej złożone są twoje procesy / kod, tym większe jest prawdopodobieństwo, że popełnisz błędy.Równie łatwo może to być luka umożliwiająca wstrzyknięcie kodu SQL podczas sprawdzania duplikatów, cel CSRF lub jakikolwiek inny błąd.
Czy nie musisz sprawdzać duplikatów podczas tworzenia konta, kropka?Możesz zmniejszyć liczbę użytkowników (jeśli jest to nawet zmartwieniem) wymuszonymi opóźnieniami, ale jest powód, dla którego większość witryn traktuje nazwy użytkowników jako informacje publiczne.Nie jestem pewien, czy rozumiem, jak łatwiej jest przeprowadzać ataki socjotechniczne, jeśli możesz zmieniać nazwy użytkowników.Zakładam, że myślisz o ludziach przyjmujących czyjeś stare nazwisko?Należy jednak całkowicie zapobiec temu, traktując tę nazwę jako zajętą (może to być alias lub traktowane jak usunięte konto).
Christopher
2017-12-20 07:47:36 UTC
view on stackexchange narkive permalink

Zasadniczo równoważysz dwa konkurujące ze sobą problemy, a trzeci czynnik wkracza. Pierwszy to bezpieczeństwo użytkowników Twojej witryny, zmiana nazwy użytkownika to łatwy sposób na oszukanie innych osób w celu ich oszukania. Po drugie, zmiana nazwy użytkownika to łatwy sposób na oszukanie innych osób, aby uciec od nich.

Osoby nękane wolą zmienić swoją nazwę użytkownika, ponieważ jest to natychmiastowa ulga. Ludzie nękający innych chcieliby to zmienić tak, jak można to uzyskać dzięki początkowej obronie. Innym czynnikiem jest to, że więcej ruchomych części oznacza więcej rzeczy, w które można uderzyć, to mniej bezpieczne.

Pierwszym działaniem powinno być podjęcie decyzji, w jaki sposób się tutaj opierasz. Czy koncentrujesz się na zapobieganiu oszustom, czy też starasz się, aby środowisko było jak najbardziej bezpieczne? Należy pamiętać, że stworzenie bezpiecznego środowiska może oznaczać brak automatyzacji zmiany, a istnieją inne powody zmiany nazwy użytkownika, zarówno dobre, jak i złe. Musisz to ustalić na podstawie tego, co wiesz o swojej witrynie. Drugim krokiem byłoby ustalenie, czy możesz wykonać bezpieczną implantację w tym celu.

W tym momencie jest to schemat blokowy. Wolałbyś to zautomatyzować, ale nie możesz tego zrobić bezpiecznie? Nie rób tego. Masz problem z oszustami i innymi atakami socjotechnicznymi? Nie rób tego. Chcesz ułatwić zmianę i czy możesz ją bezpiecznie wdrożyć? Zrób to.

Chciałbym zauważyć, że zgodnie z sugestiami innych osób śledzenie nazw użytkowników jest dobrym pomysłem, nawet jeśli są one ukryte i dostępne tylko dla Ciebie (najlepiej ukryte, jeśli zmiany są dokonywane ze względów bezpieczeństwa) oraz zwiększenie nazwy użytkownika sprawdzanie dostępności do ostatnich trzech lub więcej nazw użytkowników w całej witrynie byłoby przydatne (i coś jeszcze, aby zapewnić bezpieczeństwo).

Na koniec wspomniałeś o skalowalności. W miarę zwiększania skali automatyzacja rzeczy, których nie możesz robić ze względów bezpieczeństwa, i ochrona przed atakami w inny sposób (czytaj taniej) staje się łatwiejsza (czytaj taniej). Przykład tego można znaleźć na Twitterze. Jeśli osiągniesz ten punkt, zautomatyzuj, im szybciej, tym lepiej.

Jeśli chcesz, aby było to zautomatyzowane, ale chcesz ograniczyć nadużycia, a Twoja witryna ma rodzaj systemu „karmy”, możesz zezwolić na zmiany nazw tylko użytkownikom z X karmą lub wyższą, a nawet sprawić, że zmiana będzie kosztować karmę.W ten sposób dręczyciele i tym podobni (którzy prawdopodobnie będą nisko oceniani) nie mogą łatwo zmienić swoich nazwisk, aby uniknąć obrony, a nawet jeśli mogą, nie będą w stanie tego robić regularnie z powodu karmy uderzenia zmiany, ale teposzukiwanie wytchnienia lub zmiany z innych powodów powinno mieć wystarczającą karmę, aby móc się zmienić.
Ivan
2017-12-21 05:28:51 UTC
view on stackexchange narkive permalink

Z mojego doświadczenia wynika, że ​​zezwolenie na zmianę nazwy użytkownika tam, gdzie nie była pierwotnie planowana, sprawia, że ​​audyt / logowanie jest nieco trudniejsze, szczególnie w nieuniknionych okolicznościach, w których programista sprzed lat zdecydował się dodać nazwę użytkownika, ale nie klucz podstawowy do każdego z nich wpis do dziennika.

Zdarza się, zwłaszcza gdy zatrudniasz programistów amatorów / outsourcowanych - Twoje dzienniki staną się śmieciami, które będziesz musiał odtworzyć w sposób sądowy, ręcznie porównując daty, jeśli wpisy dziennika nie są mapowane nazwa użytkownika do oryginalnego klucza podstawowego w czasie wykonywania czynności.

Więc zanim to włączysz, radziłbym przejrzeć wszelkie dostępne rozwiązania do logowania i upewnić się, że zapisują obok pk / zamiast nazwy użytkownika, dzięki czemu możesz śledzić tożsamość podczas zmian nazwy użytkownika.

cedbeu
2017-12-21 13:24:43 UTC
view on stackexchange narkive permalink

Moim zdaniem jest to bardziej kwestia strategii lub architektury niż bezpieczeństwa… Jeśli tylko upewnisz się, że dla każdego użytkownika jest wewnętrznie unikalny identyfikator (np. unikalny identyfikator bazy danych, który nigdy się nie zmieni, ale które nie muszą być nigdzie wyświetlane) i historię modyfikacji dla każdego użytkownika, użytkownicy powinni mieć możliwość modyfikowania swoich loginów lub nazw użytkowników. To, czy chcesz wyświetlić historię modyfikacji na stronie użytkownika, zależy od celu i zastosowania twojego oprogramowania.

Osobiście zawsze bardzo irytują mnie te usługi, które nakładają tego rodzaju arbitralne ograniczenia („nie możesz zmień swoją nazwę użytkownika ”,„ nie możesz zmienić swojego loginu ”,„ nie możesz ponownie użyć haseł, których używałeś w przeszłości ”itp.).

Chociaż możemy wyróżnić 3 przypadki ( plus ogólny):

  1. oprogramowanie offline

  2. usługa intranetowa

  3. serwis internetowy

  4. podsumowanie

1 - oprogramowanie offline

W przypadku całkowitego oprogramowanie offline, użytkownicy powinni zawsze mieć możliwość zmiany swojego loginu. Wszystko jest tutaj lokalne, więc nie ma powodu, aby zabraniać jakichkolwiek zmian.

2 - usługa intranetowa

W przypadku usługi intranetowej najprawdopodobniej oczekujemy, że użytkownicy będą mieli łatwy sposób skontaktowania się bezpośrednio z administratorem.

Może najbezpieczniejszym sposobem zmiany loginu może być wówczas ręczna procedura. Prawdopodobnie jest również możliwe zapewnienie bezpiecznego sposobu automatyzacji procedury.

Jednak nadal, IMHO, użytkownicy powinni mieć możliwość modyfikowania swojego loginu, a logowanie powinno być całkowicie niezależne od unikalnego identyfikatora użytkownika.

3 - usługa internetowa

W przypadku usługi online myślę, że login powinien zawsze być adresem e-mail użytkownika (lub, być może, w niektórych przypadki, numer telefonu komórkowego, ale jeśli jest to usługa internetowa, oczekiwałbym, że mój użytkownik będzie miał adres e-mail i nie polecałbym korzystania z numeru telefonu).

W takim przypadku z pewnością użytkownicy powinni mieć możliwość modyfikowania swojego adresu e-mail w dowolnym momencie, a tym samym swojego loginu (czyli adresu e-mail).

Oczywiście w takim przypadku należy zadbać o odpowiednią procedurę, aby mieć pewność, że gdy pojawi się prośba o modyfikację, istnieje mechanizm, który pozwala potwierdzić, że żądający jest właścicielem konta (e-mail weryfikacyjny z linkiem potwierdzającym, który ma datę ważności, powiedzmy 24h ale to zależy od twojego przypadku).

4 - podsumowanie

  • użytkownicy powinni zawsze mieć możliwość modyfikacji swojego loginu
  • unikalny identyfikator użytkownika powinien zawsze być niezależnym od logowania
  • w przypadku usługi internetowej, unikać „logowania za pomocą nazwy użytkownika”, preferować „logowanie na adres e-mail”, z procedurą walidacji / potwierdzenia
  • w każdym przypadku dobrym pomysłem może być śledzenie historii modyfikacji… to, czy wyświetlasz ją w „profilu użytkownika”, czy nie, zależy od konkretnego przypadku użycia
Tom
2017-12-22 07:19:06 UTC
view on stackexchange narkive permalink

Nie widzę żadnej odpowiedzi sprawdzającej najważniejsze pytanie:

Czy nazwa użytkownika jest tajna w Twojej witrynie, czy nie?

Jeśli nazwa użytkownika jest wyświetlana użytkownikowi strona profilu, jako autor postów na forum lub można go przeszukiwać na liście członków, nie ma żadnych funkcji bezpieczeństwa. Dlatego zmiana lub nie ma znaczenia dla bezpieczeństwa.

Jeśli nazwa użytkownika jest tajna, np. masz inną nazwę wyświetlaną lub wyświetlasz pełną nazwę użytkownika, ale używasz krótkiej nazwy lub aliasu do celów logowania - jeśli nazwa użytkownika jest tajna, wpływa to na bezpieczeństwo, ponieważ osoba atakująca musi znać zarówno nazwę użytkownika, jak i hasło, aby uzyskać dostęp do konta.

Jednakże, ponieważ użytkownicy mają tendencję do ponownego wykorzystywania nazw użytkowników i generalnie nie traktują ich jako tajnych w taki sam sposób, jak robią to z hasłami, nazwa użytkownika jest słabym sekretem. Nie ma to również znaczenia w przypadku wielu ataków (MtM, keyloggery, phishing, włamania do bazy danych itp.)

Więc nawet jeśli twoja nazwa użytkownika jest tajemnicą, zalety użyteczności (opisane w innych dobrych odpowiedzi) znacznie przewyższają względy bezpieczeństwa.

Chris H
2017-12-21 14:55:02 UTC
view on stackexchange narkive permalink

Jeśli zezwolisz użytkownikom na używanie adresów e-mail jako nazw logowania, musisz pozwolić im na zmianę loginu:

  • Jeśli ktoś opuści organizację, może natychmiast stracić dostęp do tego adresu a nowy adres można równie szybko przypisać komuś innemu . (Musiałem zmienić dostawcę usług internetowych bez powiadomienia, gdy zdali sobie sprawę, że mimo wszystko nie mogą połączyć się z moim nowym domem; adresy e-mail stały się dostępne dla innych tego samego dnia). Nawet jeśli używasz adresu tylko jako nazwy logowania, a nigdy w przypadku rzeczywistych wiadomości e-mail, jest to znaczący i niepotrzebny wektor ataków socjotechnicznych.
  • Jeśli pozwolisz im zmienić adres e-mail, którego używasz do wysyłania e-maili podczas nadal loguję się ze starym adresem, który jest mylący, zły UX i prowadzi do zgłoszeń do pomocy technicznej.
allo
2017-12-22 19:14:20 UTC
view on stackexchange narkive permalink

Jest kilka punktów za i przeciw.

Na przykład użytkownik może chcieć zmienić nazwę, aby uniknąć rozpoznania, ponieważ zauważył, że wpisanie w Google jego nazwy użytkownika z witryny A powoduje wyświetlenie jego profilu w witryna B.

Z drugiej strony jest kwestia niedopuszczenia do zmiany, aby ludzie mogli go ponownie rozpoznać w Twojej witrynie. Pomyśl o forum ze znanym trollem. Ludzie wiedzą, jak sobie z nim radzić i nie zwracają na niego uwagi. Dopóki nie zmieni pseudonimu. Oczywiście nie jest to prawdziwa ochrona, ponieważ może zarejestrować inną nazwę użytkownika, ale pozwala uniknąć nadużyć, zmieniając nazwę dla każdego postu.

Jeśli pseudonim jest rodzajem klucza podstawowego, nie możesz pozwolić na zmianę to. Pomyśl o adresie e-mail lub identyfikatorze Jabbera. Niektóre witryny nadal umożliwiają zmianę nazwy i należy zachować ostrożność. Jeśli rozważasz zmianę pseudonimu na Twitterze, lepiej zarejestruj później starą nazwę, aby uniknąć powiązania z nowym użytkownikiem. To jest punkt do zablokowania nazwy użytkownika do użytku w przyszłości po usunięciu konta.

Nazwa użytkownika jest częścią procesu logowania, więc jej zmiana może zatrzymać atak brute-force. W zależności od witryny, nawet jeśli osoba atakująca nie wie, czy hasło jest błędne, czy też cały użytkownik nie istnieje.

Ostatecznie myślę, że nazwa użytkownika powinna być unikalna i prawdopodobnie niemożliwa do zmiany i zablokowana po usunięcie konta, ale powinieneś zapewnić sposób na zdefiniowanie nazwy wyświetlanej, która jest bardziej widoczna niż uchwyt konta.

Spójrz na SO, który używa identyfikatorów lub starego dobrego ICQ, który używa jakiegoś schematu numerowania. Ludzie muszą używać nazwy wyświetlanej na swoich listach kontaktów, ponieważ kto pamięta wszystkie UIN swoich znajomych?

Wreszcie Twoja decyzja nie musi być ostateczna. Zawsze możesz przejść na inny model. Zmiana stałych nazw użytkowników nie powinna być wielkim problemem, naprawianie nazw użytkowników, które były zmieniane, będzie prawdopodobnie wymagało wyjaśnienia dla użytkowników.

Deathhound
2017-12-28 01:04:04 UTC
view on stackexchange narkive permalink

Musimy przyjrzeć się niektórym z możliwych opcji:

Dlaczego użytkownik miałby chcieć zmienić swoją nazwę użytkownika?
-personalizacja
-mają stalkera

Dlaczego miałbyś chcieć, aby użytkownik zmienił swoją nazwę użytkownika?
-wszechstronność / personalizacja przyciąga lojalnych klientów

Dlaczego użytkownik miałby nie chcieć, aby inni użytkownicy zmienili swoją nazwę użytkownika?
-powstrzym OG wymówka "byłem pierwszym soccerkid96, nie może być innych"
-i naprawdę nie mogę wymyślić żadnego innego powodu

Dlaczego nie chcesz, aby użytkownik zmienił swoją nazwę użytkownika?
-ktoś sort oszustwa tożsamości? wiele kont phishingowych nazwanych na cześć xXP0rn $ L @ yerXx, rekordzisty świata z najwyższym wynikiem
- może służyć jako backdoor do informacji lub prawdopodobnie jako luka w zabezpieczeniach przed przeciążeniem bazy danych lub atakiem DDoSing

Aby uniknąć większości niechcianych problemów, zalecałbym unikalny statyczny identyfikator dla wszystkich kont (niezwiązany z publiczną nazwą konta), płaciłbym za zmianę nazwy użytkownika, 1 zmianę nazwy użytkownika na 5000 lat itd.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...