Czy OpenID jest łatwy do zhakowania, czy coś mi brakuje?


18

Dla tych stron zależnych (RP), które pozwalają użytkownikowi określić dostawcę OpenID (OP), wydaje mi się, że każdy, kto zna lub zgaduje, że twój OpenID może

  1. Wpisz własny adres OP.
  2. Niech sprawdzi je jako posiadające Twój OpenID.
  3. Uzyskaj dostęp do swojego konta na RP.

RP „mogłaby” podjąć środki, aby temu zapobiec, pozwalając tylko na weryfikację OpenID przez oryginalny OP, ale ...

  1. Skąd wiesz, że oni robią?
  2. Nigdy nie możesz zmienić OP bez zmiany OpenID.

Odpowiedzi:


7

OpenID jest jednym z tych systemów, w których musisz ufać punktom końcowym. Jeśli RP nie jest godna zaufania, to tego rodzaju zatrucie skojarzeniowe jest całkowicie możliwe. Jeśli RP jest naprawdę godne zaufania, ten rodzaj ataku jest DUŻO trudniejszy. „Obejście problemu”, aby nie być podatnym na ten atak, polega na wprowadzeniu lokalnej zasady bezpieczeństwa (w ServerFault byłaby to reprezentacja nazwy użytkownika w bazie danych zaplecza) z obcym punktem końcowym OpenID (URL OpenID, ServerFault pozwala powiązać wielokrotności tych).

Nadal możesz atakować za pomocą ataku zatrucia DNS ze strony RP, tak że powiedzmy, że * .livejournal.com zostaje przekierowany do PO specjalnie przygotowanego do ataku. Ale to atak zatrucia DNS, a nie błąd w samym OpenID. OpenID jest po prostu podatny na zatrucie DNS.


W takim przypadku wiarygodne RP może stać się niewiarygodne, ponieważ zakładają, że OpenID jest samo w sobie bezpieczny.
David

Po przeczytaniu tego znalazłem się na openid.net, a pierwszą rzeczą, którą zobaczyłem, był nagłówek „The Foundation of Internet Identity” na tle fotografii z trzech rozdań grających w Jenga - każda z nich wybiera kawałek z bardzo niestabilnego- wieża widokowa.
Andreas

2

Myślę, że mylisz OpenID i inne elementy bezpieczeństwa użytkownika. Twój OP to mechanizm uwierzytelniania, a nie twoje konto. Tutaj w ServerFault masz konto. To konto samo w sobie nie ma możliwości uwierzytelnienia; z wyjątkiem tego, że wskazujesz na jeden lub więcej PO.

Gdy spróbujesz zalogować się tutaj na swoje konto jako SF, prosi on PO o obsługę uwierzytelnienia. Tylko jeden PO (lub wiele PO, niezależnie od tego, jak je skonfigurowałeś) może Cię uwierzytelnić na potrzeby Twojego konta SF.

Typowy system logowania składa się z trzech części (zwanych potrójnym „A” lub po prostu „AAA”):

  • Księgowość - Śledzi twoje imię i informacje specyficzne dla witryny (takie jak posty, wiadomości itp.)
  • Uwierzytelnianie - śledzi, jak upewnić się, że to naprawdę Ty (zazwyczaj hasło)
  • Autoryzacja - śledzi twoje uprawnienia (dostęp do odczytu lub zapisu do różnych rzeczy)

Możesz przeczytać więcej o systemach AAA na Wikipedii.


Jeśli mogę podać dowolny OP przy każdym logowaniu, złośliwy użytkownik może również podać dowolny OP podczas próby włamania się na moje konto. W ten sposób określają własne OP i uzyskują dostęp.
David

Nie, po prostu pozwolisz im, po zalogowaniu, dodać dodatkowe punkty OpenID dla swojego konta. SO robi to w ten sposób.
ceejayoz

2
@David, kiedy logujesz się, nie określasz konta ani identyfikatora OpenID , określasz tylko identyfikator OpenID . Ten OpenID musi być już podłączony do konta, w przeciwnym razie pojawi się opcja utworzenia nowego konta (przynajmniej tutaj na SF).
Chris S

1

David, twoje przypuszczenie jest fałszywe. OpenID działa w ten sposób: 1) Chcesz zalogować się na stronie relyingparty.com 2) Dajesz reyingparty.com swój OpenID, np. David.com 3) relyingparty.com sprawdza david.com (hej, to URL) nazywany punktem końcowym OpenID, który można znaleźć na stronie david.com, ale za pośrednictwem delegowania również w innym miejscu, np. yahoo.com lub google.com. nazwijmy to davidsopenidprovider.com 4) Jesteś teraz przekierowany na davidsopenidprovider.com. Zadaniem davidsopenidprovider.com jest uwierzytelnienie użytkownika. Musisz się zalogować na davidsopenidprovider.com. To, jak działa ten login, zależy od davidsopenidprovider.com. Może to być nazwa użytkownika / hasło, mogą to być karty informacyjne, certyfikaty przeglądarki, odciski palców, karty inteligentne, mechanizmy pozapasmowe, takie jak weryfikacja połączeń, ... to zależy od Davidsopenidprovider. com, jak obsługuje uwierzytelnianie. Następnie pyta, czy naprawdę chcesz się zalogować na stronie reyingparty.com. 5) Jeśli pomyślnie zalogowałeś się na stronie davidsopenidprovider.com, zostaniesz przekierowany z powrotem na stronę relyingparty.com i tam zalogujesz się automatycznie. 6) davidsopenidprovider.com zapewnia tylko, polegając na stronieparty.com, że jesteś tym, za kogo się podajesz. Nie wysyła żadnego hasła.

Więc twoje założenie „Jako konsument, kiedy zakładam konto na any-site.com, nie mam pojęcia o inteligencji programistów / kierowników witryn”. jest fałszywe w odniesieniu do OpenID. Jeśli jest słaby punkt, to dostawca, ale nie any-site.com. Taki jest problem z tradycyjnymi loginami / hasłami. Musisz zaufać każdej witrynie, która oferuje logowania w ten sposób, a nie tylko jednemu, twojemu dostawcy OpenID.

Mam nadzieję, że to pomoże zrozumieć OpenID.


0

Skąd wiesz, że oni robią?

W ten sam sposób wiesz, że każda stara witryna przekazuje Twoje hasło komuś innemu - nie. Właśnie dlatego korzystasz z renomowanej firmy.

Nigdy nie możesz zmienić OP bez zmiany OpenID.

Oczywiście że możesz. Zajrzyj do delegacji OpenID.

Mój OpenID to http://ceejayoz.com/ , ale mój OP to WordPress.com. Dwa METAtagi w nagłówku http://ceejayoz.com/ pozwalają mi to zrobić i mogę to zmienić w dowolnym momencie.


0

Twój openID jest twoim dostawcą. pwnguin.netjest moim openID. Nie podlega to zgadywaniu, to po prostu znany fakt. To, co chroni mój openID, to oprogramowanie działające na pwnguin.net, które odpowiada twierdząco tylko wtedy, gdy odwiedzający ma plik cookie uwierzytelniania.

Nie powiem, że openID jest bezpieczny; istnieje wiele rodzajów skryptów między witrynami, które mogą trwać, lub niektóre przyziemne szczegóły, które zwykle ignoruję lub mylę się.


0

To właśnie zdobyłem z odpowiedzi tutaj ...

OpenID jest tak bezpieczny, jak strony zaangażowane i dotyczy to każdej metody uwierzytelniania. Uświadomiłem sobie, że zanim zacząłem tę dyskusję.

Problem z OpenID, jak mi się wydaje, jest dwojaki ...

  1. Twój loginID nie jest już tajemnicą współdzieloną tylko między tobą a witryną, na której go używasz. Jest to Twój OpenID i jest znany każdej witrynie, na której go używasz, i jest czymś łatwo zgadnąć, jak adres e-mail lub coś pochodzącego z adresu e-mail lub coś podobnego.

  2. RP mogą wdrożyć OpenIP na swojej stronie bez zachowania należytej staranności, zakładając, że ponieważ używają powszechnie akceptowanego „protokołu”, że jest bezpieczny. To prawda, że ​​większość programistów stron internetowych nie ma prawdziwej koncepcji, jak zabezpieczyć witrynę, ale jeśli wdrażają własne zabezpieczenia, przynajmniej problem nr 1 nie wchodzi w grę.

Jako konsument, kiedy tworzę konto na any-site.com, nie mam pojęcia o inteligencji twórców / kierowników witryn. Używam identyfikatora, który nie wydaje się łatwy do odgadnięcia. Nie chcę, aby serverfault.com znał identyfikator, którego używam do logowania się na Etrade.com. Używam również innego hasła na każdej stronie i zarządzam tymi hasłami według własnego schematu. Jest bardzo mało prawdopodobne, że moje konto zostanie utworzone, chyba że operatory witryny są totalnymi idiotami.

Dzięki OpenID każdy w sieci wie, jak to działa i jak go zaatakować, jeśli RP nie ma odpowiednich środków.

Uwielbiam oprogramowanie open source, ale myślę, że w przypadku OpenID stwarza to możliwość gorszych wdrożeń dostępnych dla niczego niepodejrzewających użytkowników.

Myślę, że można to rozwiązać za pomocą podpisanej pieczęci zatwierdzającej, która zapewnia konsumentowi, że witryna przeszła audyt i nie jest podatna na ataki hakerskie.

Może jestem po prostu paranoikiem.


Znam ten stary, ale znajomość openid „id” jest bezużyteczna ... Google na przykład używa dokładnie tego samego adresu URL dla każdego pojedynczego użytkownika. W jaki sposób wiedza, która pomaga zalogować się do Stackoverflow jako ja (inna niż wiedza, że ​​jeśli możesz zhakować moje konto Google, możesz zostać uwierzytelniony jako ja, ale to nie różni się od „zapomniałem nazwy użytkownika / hasła”).
jmoreno
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.