Jak pokazano na poprzedniej ilustracji, niektórzy użytkownicy mają dostęp do ograniczonych kluczy i poleceń, podczas gdy domyślny użytkownik ma dostęp do wszystkich kluczy i operacji w sklepie.
Zwykle Redis obsługuje polecenie Auth z argumentami nazwy użytkownika i hasła do uwierzytelnienia jako konkretny użytkownik z zastosowanymi ograniczeniami.
Hasła ACL
Hasła Redis ACL są przechowywane w formacie Hashed SHA256. Zwykle są to bardziej jak wspólne tajemnice. Te hasła są sześciokadcianami, które zawierają liczby pseudorandomowe, jak pokazano w poniższym przykładzie:
„TY6C75273D91T32DF726FB545C8A4EDC14RF0A95A6FD993950B10I814AD2R57U”
Hasła ACL nie są wprowadzane przez człowieka. Jest przechowywany w pewnym rodzaju oprogramowaniu klienckim. Stąd długość hasła w tym kontekście nie stanowi problemu.
Aby wygenerować hasła REDIS ACL, musisz użyć specjalnego wywoływania polecenia ACL GenPass, które będziemy omawiać w następnej sekcji.
Polecenie ACL GenPass
Polecenie ACL GenPass służy do generowania łańcucha alfanumerycznego, który ma rozmiar 64-bajtowy, który zawiera 256 bitów danych pseudorandomowych. Aby hasło jest silniejsze i trudniejsze do złamania, to polecenie używa generatorów liczb pseudorandom /dev/urandom Lub /dev/losowe. Są to specjalne typy plików używanych do tworzenia sekwencji wartości liczby losowych, w których wygenerowane liczby losowe mają właściwości sekwencji liczb losowych. Te hasła są dziesięć razy trudniejsze do złamania niż zwykłe hasło.
Składnia
ACL genPass [numer_of_bits_per_output_string]
numer_of_bits_per_output_string: Jest to opcjonalny argument, który określa liczbę bitów potrzebnych do zawarcia w ciągu wyjściowego.
To polecenie zwróci 64 bajty alfanumeryczne, który zawiera 256 bitów wartości danych pseudorandomowych. Ilekroć przekazujesz opcjonalny argument, w którym liczba bitów waha się od 1 do 1024, długość ciągów wyjściowych odpowiednio się zmieni. Zwykle długość ciągów wyjściowych będzie obliczana, dzieląc określoną liczbę bitów przez 4. Ponadto bity są zawsze zaokrąglone do następnej wielokrotności 4.
Przykład 01 - Wygeneruj domyślne hasło
Załóżmy, że musimy wygenerować hasło ACL dla domyślnego użytkownika, który ma dostęp do każdego polecenia i klucza w magazynie danych Redis. Użyjemy polecenia ACL GenPass, które jest mniej złożone i szybsze ze względu na stałą złożoność czasu.
Zgodnie z oczekiwaniami, wyjście to 64-bajtowy ciąg alfanumeryczny z 256 bitami danych pseudorandomowych. Długość hasła wyjściowego to 64 znaki sześciokątne. To implikuje 256 bitów.
Przykład 02 - Generuj niestandardowe hasło
Polecenie ACL GenPass zapewnia użytkownikowi pełną kontrolę w celu zdefiniowania liczby bitów potrzebnych w końcowym ciągu. Opcjonalny parametr można przekazać w postaci liczby bitów w wygenerowanym hasłach.
Utwórzmy hasło ACL z rozmiarami 16 bitów. Stąd końcowa długość łańcucha alfanumerycznego powinna wynosić 16 bitów podzielonych przez cztery, co równa się 4 znakom sześciokątnym.
ACL GenPass 16
Spróbujmy określić liczbę bitów do 6. Polecenie zaokrąglę ten numer do następnej wielokrotności czterech. Stąd liczba bitów staje się 8 pod maską.
Zgodnie z oczekiwaniami, długość ciągu wynosi 2 znaki sześciokątne reprezentujące 8 bitów danych pseudorandomowych.
Jak omówiono w poprzednich przykładach, polecenie ACL GenPass może być wiarygodnym generatorem haseł dla sklepów danych Redis.
Wniosek
Podsumowując, Redis wprowadził funkcję listy kontroli dostępu z wersji 6.0.0. Umożliwia nową warstwę bezpieczeństwa, w której niektóre połączenia klienta mogą uzyskać dostęp do ograniczonych poleceń i kluczy w magazynie danych Redis. Każde połączenie klienta może być uwierzytelnione za pomocą Auth polecenie z podaną nazwą użytkownika i hasłem. Te hasła są przechowywane jako wartości Hashed SHA256 w pamięci Redis. Dlatego zaleca się generowanie silnych haseł Redis za pomocą polecenia ACL GenPass. Generuje 64-bajtowy ciąg alfanumeryczny, który jest wystarczająco silny, aby uniknąć ataków.