Redis Genpass

Redis Genpass
Redis to zoptymalizowany w pamięci magazyn danych, który wykorzystuje format pary wartości kluczowej do przechowywania danych. Redis umożliwia dowolnemu nowemu połączeniu klienta w celu uzyskania dostępu do każdego klucza i polecenia w magazynie danych, dopóki jego wersja 6.0.0. Z wersji 6.0.0, Redis wprowadził nową warstwę bezpieczeństwa z funkcją listy kontroli dostępu. Dzięki funkcji ACL Redis może ograniczyć poziomy dostępu do poleceń i kluczy dla różnych połączeń klientów. Gdy Redis ACL jest na miejscu, połączenie klienta powinno uwierzytelnić się za pomocą nazwy użytkownika i hasła. Stąd poziom dostępu każdego połączenia waha się od wszystkich kluczy i poleceń do podzbioru tych. „Domyślny” użytkownik może uzyskać dostęp do każdego polecenia i klucza w magazynie danych.

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.