Właściwości udostępnianego identyfikatora dostawcy Google

Wprowadzenie

W tym dokumencie opisano wymagane właściwości udostępnianych identyfikatorów używanych podczas integracji między Google a dostawcą (lub wydawcą konta użytkownikowi). Wspólny identyfikator to nieprzejrzysty wskaźnik na granicy między kontem Google a kontem wystawcy.

Pamiętaj, że udostępniany identyfikator nie odnosi się do konta Google (ani użytkownika lub innego podmiotu przechowywanego w Google) ani do konta dostawcy/wydawcy (ani do innego podmiotu). Dotyczy powiązania między tymi dwoma elementami.

Właściwości udostępnianych identyfikatorów

Właściwości wymagane w przypadku udostępnianych identyfikatorów pochodzą z doświadczenia i problemów technicznych, które wystąpiły w wyniku braku tych właściwości w identyfikatorach współdzielonych.

Na potrzeby integracji Google z partnerem zewnętrznym używane wspólne identyfikatory muszą mieć te właściwości:

  1. Musi być globalnie unikalny: ten udostępniony identyfikator musi wskazywać dokładnie jedno połączenie między użytkownikiem Google a kontem wydawcy. Ten sam wydawca nie może mieć innego udostępnionego identyfikatora o takiej samej wartości.
  2. być niemożliwe do odgadnięcia: te identyfikatory udostępniane są uprawnionymi do wykonywania działań w imieniu użytkownika, dlatego ważne jest, aby firma zewnętrzna nie mogła odgadnąć wartości tego identyfikatora;
  3. Możliwość unieważnienia: ważne jest, aby użytkownik unieważnił udostępniany identyfikator, a to unieważnienie powinno uniemożliwić korzystanie z jego wartości w przyszłości. Ta właściwość ma kilka następujących właściwości:
    • Niezależnie od niezmiennej właściwości żadnego z kont: jeśli wartość wspólnego identyfikatora miałaby polegać na stałej właściwości konta wydawcy lub konta Google, odtworzenie unieważnionego wspólnego identyfikatora dałoby taką samą wartość tego wspólnego identyfikatora (co spowoduje cofnięcie unieważnienia), więc wartość udostępnianego identyfikatora nie może być właściwością konta ani jego numerem telefonu (np. nie może być nazwą konta).
    • Nie musi to być tylko <Konto Google, konto partnera>: aby umożliwić unieważnienie, musi istnieć jakaś inna wartość (np. czas).
  4. Zezwól na wiele linków do konta po obu stronach: utworzenie wartości wspólnego identyfikatora nie może uniemożliwiać pojedynczemu użytkownikowi Google połączenia z wieloma kontami bankowymi lub z wieloma kontami Google na potrzeby połączenia z jednym kontem bankowym (np. konto nadrzędne i podrzędne, które są powiązane z kontem bankowym rodzica). Podobnie jak w przypadku odwołania, ma kilka dodatkowych informacji:
    • Bez względu na stałą właściwość żadnego z kont
  5. Długotrwały: udostępniony identyfikator jest prawidłowy tylko w bezpiecznym kontekście (integracja między Google a dostawcą, który korzysta z zabezpieczeń na poziomie połączenia i aplikacji (np. PGP, wzajemny protokół SSL itp.), więc jego bezpieczeństwo nie jest wymagane przez krótki cykl życia; Według Google udostępniane identyfikatory nigdy nie wygasają, ale jeśli dostawca wymaga ich wygaśnięcia, muszą one być długie (np. powyżej 1 roku).

Inne zalecane właściwości identyfikatorów to:

  1. Base64: ułatwia przenoszenie i przekazywanie wartości w ramach integracji przez HTTPS.
  2. Minimalna długość: zalecane jest co najmniej 27 cyfr (przed kodowaniem Base64), aby mieć wystarczającą ilość miejsca i uniknąć kolizji.

Co może pójść nie tak?

Aby pomóc czytelnikowi w zrozumieniu wymaganych właściwości, poniżej przedstawiamy kilka przykładów ilustrujących problemy, które pojawiają się, gdy te właściwości są niezgodne.

Przykłady korzystania z udostępnianych identyfikatorów

Studium przypadku 1: Recykling numerów telefonów

Wydawca, który użył numeru telefonu użytkownika jako udostępnionego identyfikatora. Gdy Użytkownik A zmienił abonament, zrezygnował ze swojego numeru i wykorzystał nowy. Miesiąc później firma udostępniła stary numer telefonu i nagle nowy właściciel tego numeru, Użytkownik B, zaczął widzieć na swoim koncie obciążenia za rzeczy, które nie były przez niego kupowane.

Wydawca naruszył wiele właściwości identyfikatora udostępnianego, głównie właściwość nr 1. Takie numery telefonów mogą być przenoszone między poszczególnymi użytkownikami, więc są unikalne tylko w określonym czasie.

Studium przypadku nr 2: Wklejanie

Pracownik Google lub Partnera przypadkowo wkleja udostępniony identyfikator do czatu zamiast do narzędzia wewnętrznego. Dodatkowe warstwy zabezpieczeń zapobiegają złośliwemu użyciu udostępnianego identyfikatora, ale dla bezpieczeństwa firma Google postanowiła unieważnić ten identyfikator i zastąpić go nowym. Gdy Google lub partner próbuje unieważnić udostępniony identyfikator, okazuje się, że udostępnione identyfikatory są tylko identyfikatorem konta użytkownika w systemie wydawcy, a ten identyfikator jest używany do bezpośredniego wyszukiwania konta użytkownika. Dlatego nie można unieważnić współdzielonego identyfikatora bez usunięcia konta użytkownika i utworzenia dla niego nowego.

Studium przypadku 3: Niewłaściwy pracownik

Po incydencie „Wklejanie” powyżej nieuczciwy podmiot w Google lub u partnera zauważy, że skoro wspólny identyfikator jest tylko identyfikatorem konta użytkownika, to jeśli uda mu się umieścić identyfikator czyjegoś konta we własnej wartości udostępnianego identyfikatora, będzie mógł dokonywać zakupów na koncie tej osoby. Naruszenie właściwości nr 2 sprawiło, że ta nieumyślnie wklejona treść to więcej niż luka w zabezpieczeniach dla jednego użytkownika – to luka w zabezpieczeniach dla każdego użytkownika.

Studium przypadku nr 4: rotacja

Po wystąpieniu opisanego powyżej incydentu „Wklej” wydawca przełącza się na identyfikator UUID jako format udostępnionego identyfikatora. Tym razem pracownik wystawcy przez pomyłkę wysłał w wątku wiadomości e-mail niektóre z udostępnionych identyfikatorów w postaci zwykłego tekstu. Nie martw się, unieważnimy i zastąpimy udostępniane identyfikatory użytkownika.

W ramach rotacji Google informuje wydawcę, że w trakcie czyszczenia bazy danych na każdym przejętym koncie użytkownika będą przez krótki czas aktywne 2 identyfikatory. Wystawca nie zezwala jednak na usługę nr 4 i informuje Google, że obowiązuje ograniczenie, że w przypadku konkretnego konta użytkownika aktywny może być tylko 1 udostępniany identyfikator. Prowadzi to do chaotycznej rotacji w warunkach wyścigu.