How do masked passwords work? - 'give the first digit of the telecode...' (film, 7 minutes)
In today's video, Jakub Mrugalski, known as Jakub 'unknow' Mrugalski on UW-TEAM.org, dives into the concept of masked passwords, which have been gaining traction in the context of password security. He discusses a common scenario where a bank might ask a customer to provide specific digits from their PIN code over the phone. Jakub raises concerns about the safety of this method; if certain digits can be requested, why can't the others be deduced? The answer is complex, and it requires an understanding of how passwords are actually stored.
Jakub introduces a more secure approach by showing how passwords can be masked using a bit of geometry. He utilizes the GeoGebra application to demonstrate how passwords can be 'masked'. He starts by creating random points on a coordinate system, assigning specific letters from the password using ASCII codes. When trying to validate a password, he only needs to check whether the new points lie on the same line as the original points. Through various mathematical tricks, Jakub explains how masked passwords work and how they can be verified.
As his discussion continues, Jakub examines the security aspects of masked passwords further. He explores what happens if the user accidentally arranges their verification points correctly on a straight line. The critical element in this verification process is to analyze where the new password points intersect the Y-axis. If this does not match the original intercept point, the password is deemed incorrect. This verification method is a crucial detail that Jakub provides in his video, enhancing his explanation with insights on storing necessary coordinates and other essential data for password verification.
Jakub also points out the potential downsides of using masked passwords. He mentions that an attacker could potentially deduce the length of the password simply by knowing the number of points in the masked version. Therefore, it becomes essential to store information about password length and coefficients to conduct further tests. While Jakub encourages the use of masked passwords, he emphasizes their application in specific situations, like secure information transfer during phone calls.
In conclusion, Jakub summarizes the principles of masked password usage and implementation. His engaging and clear approach provides invaluable tips for securing data. He reminds viewers that while not everyone may need masked passwords, understanding them is important. At the time of writing, his video has 5499 views and 496 likes, reflecting an audience engaged with the topic. Jakub is committed to promoting awareness of technologies that can help users enhance their security.
Toggle timeline summary
-
Introduction by Kuba Mrugalski.
-
Overview of masked passwords.
-
What is a masked password?
-
Importance of security when asked for parts of PIN.
-
Concerns about password security.
-
Explanation of secure password storage methods.
-
Transition to demonstration using GeoGebra.
-
Beginning demonstration by selecting random points.
-
Establishing points to represent letters of the password.
-
Converting password characters to ASCII codes.
-
Calculating coordinates based on password input.
-
Checking the validity of another password example.
-
Comparing user points with stored coordinates.
-
Results show the need to check line intersection.
-
Requirements for implementing masked passwords.
-
Advantages of using masked passwords in insecure situations.
-
Recommendation to request multiple points for higher security.
-
Conclusion with encouragement to implement discovered methods.
-
Call to subscribe for more similar content.
Transcription
Cześć, tu Kuba Mrugalski. Dzisiaj opowiem Ci o czymś takim jak hasło maskowane. Pytanie brzmi, co to jest? Być może kiedyś dzwoniąc do banku spotkałeś się z poleceniem typu podaj pierwszą cyfrę telekodu, podaj trzecią cyfrę telekodu, piątą cyfrę telekodu i tak dalej. Pytanie tylko brzmi, czy to jest bezpieczne? Bo skoro mogą Cię zapytać o cyfrę numer 1, 3 i 5 to dlaczego nie wyciągną sobie sami cyfrę numer 2, 4 i 6? W ten sposób zdobędą cały Twój telekod no i można powiedzieć, na pewno to jest gdzieś trzymane plain textem. Nie, nie jest. Jest to sposób bezpieczny trzymania haseł, tylko niektórzy tłumaczą to tak, na pewno trzymają to w formie szyfrowanej, odszyfrowują sobie to na chwilę, sprawdzają te cyfry czy tam litery i problem z głowy. Nie, nie byłoby to bezpieczne dlatego, że jeżeli bank jest w stanie odszyfrować Twoje hasło to to samo będzie w stanie zrobić na przykład atakujący, który włamie się do banku. Być może trzymają to hasło w formie haszowanej. Też nie. Dlaczego? Dlatego, że nie da się sprawdzić w haszowanej formie pierwszej, trzeciej i piątej cyfry telekodu. Musi to być jakiś inny sposób. I jest to inny sposób. Konkretnie chodzi tu o odrobinę geometrii. Pozwól, że przejdziemy do komputera. Wykorzystam darmową aplikację GeoGebra. Na początku w układzie współrzędnym wybieram dwa zupełnie losowe punkty, nijak niezwiązane z moim hasłem. Następnie przechodzę tutaj do połączenia tych dwóch punktów linią prostą, która przechodzi przez punkty A i B i mam w ten sposób linię prostą z pewnym wzorem. Następnie moje hasło będzie miało trzy znaki. Więc buduję sobie trzy losowe punkty na tej linii, a więc punkt C, punkt D a niech będzie tutaj na przecięciu i punkt E na przykład tutaj. Zmienię sobie kolory, żeby się odróżniały. Każde z tych punktów reprezentuje jedną literę mojego hasła. Gdyby hasło miało 15 znaków, to wybieram 15 punktów zupełnie losowych, tylko na tej linii. Moje hasło będzie brzmiało ABC. Zamieniam więc słowo ABC na znaki ASCII, czyli 97, 98, 99. To są kody ASCII. Następnie przepisuję tutaj współrzędną X, czyli jedynkę oraz od współrzędnej Y, czyli trójki, odejmuję kod znaku, czyli 97. I to samo robię z kolejnym znakiem. Czyli trójkę przepisuję i od piątki odejmuję 98. Następnie przepisuję czwórkę i od szóstki odejmuję 99. Okej. To coś muszę wyliczyć teraz. Czyli mamy tu minus 94. W tym miejscu będzie minus 93. No i tutaj mamy minus 93. I to są moje współrzędne zakodowane. Następnie chcę sprawdzić, czy hasło na przykład QWE to jest poprawne hasło, czy też nie. Znowu QWE zamieniam na kody ASCII, czyli 113, 119 i 101. Współrzędną X po prostu przepisuję. I teraz uwaga. Do tego, co jest w bazie dalej, czyli minus 94, dodaję kod znaku, który sprawdzam, czyli 113. Następnie to samo robię z drugim znakiem, to samo z trzecim znakiem. Gdy wszystko jest gotowe, po prostu wyliczam sobie współrzędne nowych trzech punktów. Mamy tu 119, 326 oraz 48. Następnie te punkty muszę nanieść na oś współrzędnych. Kopiuję to więc, tworzę nowy punkt o nazwie G, wklejam i gdzie on się znajduje? Chyba wyleciał mi za ekran, ale zaraz się znajdzie. O, jest. Mam tutaj ten punkt. No to w takim razie kolejny punkt nanoszę też na tą oś. To jest 326. Kopiuję sobie to i tutaj on się nazywa kolejną literą H. Wklejam i jest trochę wyżej. Spoko. Widzimy, że on utworzy jakąś linię prostą, jak to wszystkie dwa punkty. I teraz punkt trzeci. Sprawdzamy, czy on należy do tej prostej? No ewidentnie nie. Te trzy punkty linii prostej nie tworzą. Gdybym go wziął i tam przesunął trochę wyżej, to ewentualnie by to mogła być linia prosta. Ale przeprowadzimy sobie linię prostą przez punkty G i H i widzimy, że nadal nie trafiłem. Jeszcze trochę go przesunę. Widzimy też jeszcze jedną rzecz. Gdzie ta linia przecina oś Y? Oryginalna była w punkcie 2, a ta nieoryginalna jest w punkcie 15,5. Tak jak widziałeś na przykładzie przed chwilą, w momencie, gdy zorientowaliśmy się, że te punkty użytkownika nie utworzyły linii prostej, już mogliśmy powiedzieć, hasło nie jest poprawne. Ale czasami zdarza się zupełnie przypadkiem, że punkty użytkownika faktycznie ułożą się w linii prostej. I co wtedy? Hasło jest dobre? Nie. Wtedy musimy sprawdzić jeszcze jedną rzecz. Musimy sprawdzić, gdzie ta linia utworzona z punktu użytkownika przecina oś Y. I czy jest to ten sam punkt, który był na początku. Nasza oryginalna linia przecinała oś Y w punkcie 2, a nieoryginalna w punkcie 15,5. Wniosek? No to hasło nie jest poprawne. Jeżeli chcesz zacząć używać haseł maskowanych, to w bazie musisz trzymać dwie rzeczy. Po pierwsze współrzędne punktów, po to, aby mieć z czym to porównywać. I tu jest pewien minus tych haseł maskowanych. Ponieważ tych punktów będzie dokładnie tyle, ile liter w haśle. Więc jednym rzutem oka, haker od razu wie, ile liter to hasło ma. Dlaczego tak jest ważne, aby to trzymać w bazie dokładnie takiej ilości. Nie jesteśmy w stanie zapytać kogoś o piętnastą cyfrę telekodu, jeżeli nie wiemy, że piętnasta istnieje. Więc ta liczba znaków w haśle musi być gdzieś przetrzymywana. Kolejna sprawa. Musi przetrzymywać współczynnik bez naszego równania prostej. Czyli w naszym przypadku jest to ta dwójka. Po co to jest potrzebne? Po to, żeby ten drugi test wykonać. Gdy już to wszystko ma w bazie, możesz zacząć używać haseł maskowanych. Tylko pytanie brzmi, w jakim celu? Dlaczego miałbyś się chcieć zdecydować na hasła maskowane, skoro są lepsze metody? Otóż, jeśli chcesz pobierać hasło w warunkach mało bezpiecznych, czyli np. przez telefon, albo w jakichś mało szyfrowanych warunkach, to hasło maskowane będzie dobrym rozwiązaniem. Dlatego, że jeśli faktycznie ta informacja wysyłana przez kanał niezaufany, czyli telefon, wycieknie, to wycieknie tylko 50% tego hasła, a nie 100%. Kolejna rzecz. O ile znaków zapytać? Im więcej, tym lepiej. Tylko nie wszystkie. Pytaj np. o 50% albo trochę mniej. Nie możesz zapytać o jeden znak. Nie możesz powiedzieć podaj mi piątą cyfrę telekodu. Dlaczego? Bo nie da się tego zweryfikować. Żeby zbudować linię przecinającą oś Y, to muszą być przynajmniej dwa punkty. Aby ta linia przechodziła przez dwa punkty. Jeśli pobierasz jeden punkt, fizycznie nie jest to możliwe. Jeżeli pobierasz dwa punkty, to jest ok. Ale warto byłoby ten trzeci punkt pobrać jeszcze, po to, żeby sprawdzić, czy on faktycznie należy do tej prostej. To znacząco podniesie poziom bezpieczeństwa. Czyli powiedziałbym, pytaj o minimum trzy punkty. Ale nie więcej niż połowa hasła. No i znając teoretyczne, myślę, że jesteś w stanie wprowadzić hasło maskowane do swojego systemu, jeśli faktycznie będzie Ci ono do czegoś potrzebne. Mam nadzieję, że to zostało wyjaśnione w zrozumiały sposób. Jeżeli chcesz więcej filmów tego typu i nie chcesz przegapić kolejnych odcinków, koniecznie subskrybuj ten kanał. No i oczywiście daj łapkę w górę i inne takie. Dzięki za uwagę i zapraszam do kolejnego odcinka.