Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


26.10.2020

Nowa wersja nVision

Można już pobierać nową wersję nVision
26.10.2020

Monitorowanie infrastruktury

Vertiv Environet Alert
23.10.2020

Telefonia w chmurze

NFON Cloudya
23.10.2020

Nowości w EDR

Bitdefender GravityZone
23.10.2020

Wykrywanie anomalii

Flowmon ADS11
23.10.2020

Mobilny monitor

AOC 16T2
22.10.2020

HP Pavilion

HP zaprezentowało nowe laptopy z linii Pavilion.
22.10.2020

Inteligentny monitoring

WD Purple SC QD101
22.10.2020

Przełącznik 2,5GbE

QNAP QSW-1105-5T

Przekształcenia AONT i współdzielenie sekretów

Data publikacji: 24-09-2020 Autor: Maciej Olanicki

Uwierzytelnianie wieloskładnikowe nigdy nie wyeliminuje problemów związanych z bezpieczeństwem dostępu do danych. Wszak każdy składnik – login, hasło czy jednorazowy token – w ten czy inny sposób można przejąć. Rozwiązaniem tego problemu mogą być współczesne implementacje modelu all-or-nothing, w którym składników uwierzytelniania przejąć się nie da, gdyż te w ogóle nie są wykorzystywane.

 

W repozytorium GitHub pojawiło się w ostatnim czasie co najmniej kilka wygodnych skryptów pozwalających chronić dane w modelu all-or-nothing (AONT). Trudno stwierdzić, aby same w sobie zapewniały one wystarczającą ochronę plików, niemniej stanowić mogą dodatkową warstwę bezpieczeństwa. Cały mechanizm opiera się na komplementarności podzielonych na części danych, które uwierzytelniają się wzajemnie. Wzrastająca popularność przedsięwzięć polegających na wcielaniu modelu AONT w życie może sugerować, że mamy do czynienia z zalążkiem nowego trendu w ochronie danych, który z całą pewnością warto śledzić. Zwłaszcza że stanowi on poniekąd odpowiedź na zagrożenia, które czyhają tuż za rogiem w postaci kwantowych ataków brute force.


> PO CO NAM AONT?

 

Powszechne jest przekonanie, że uwierzytelnianie wielkoskładnikowe stanowi skuteczną metodę ochrony dostępu do danych czy usług. Z całą pewnością jest to mechanizm skuteczniejszy niż stosowanie wyłącznie loginu i hasła wprowadzanego za pośrednictwem tego samego kanału czy na tym samym urządzeniu, ale nawet MFA nie gwarantuje stuprocentowej ochrony. Dostępnych jest bowiem wiele sposobów, a nawet całych frameworków, pozwalających na przechwytywanie dowolnej liczby składników, niezależnie od kanału ich dostarczania. O jednym z nich, wykorzystującym klasyczny model man-in-the-middle, więcej przeczytać można w ramce Modlishka.

 

Jak już wspomniano, pomysłem na rozwiązanie problemów uwierzytelniania wieloskładnikowego może być całkowita eliminacja jakichkolwiek składników. Taką właśnie koncepcję realizują przekształcenia all-or-nothing. Dzięki nim nie da się uzyskać dostępu do jednego pliku bez użycia pozostałych, podobnie jak nie można uzyskać dostępu do całości, jeśli brakuje choćby jednej części. W dobie skrajnego rozproszenia miejsc, w których przechowuje się dane, model ten szczególnie zyskuje na atrakcyjności. Jedna część może znajdować się na pulpicie użytkownika, a pozostałe mogą być rozrzucone po serwerowniach zlokalizowanych dosłownie na różnych krańcach świata. Szczególną wartość przekształcenia AONT znajdują zaś w zabezpieczeniu przeciw atakom typu brute force.

 

> PRZEKSZTAŁCENIA ALL-OR-NOTHING


Sam model, a w zasadzie transformacja danych zgodna z modelem all-or-nothing, nie stanowi żadnego novum. Zaproponowana została już w 1997 r. przez Ronalda L. Rivesta w pracy „All-Or-Nothing Encryption and The Package Transform”. Rivest zauważył, że do ochrony danych zaprząc można wyrażenia w postaci alternatywy rozłącznej, dzięki której dzieli się np. czysty tekst na bloki, z których każdy jest szyfrowany losowym kluczem. Następnie tworzony jest dodatkowy blok zawierający losowy klucz oraz wartości funkcji skrótów pozostałych bloków. W ten sposób uzyskiwana jest tzw. pseudowiadomość, która służy jako podstawa do dalszych przekształceń kryptograficznych.


W rezultacie otrzymujemy zestaw plików, które można dowolnie rozproszyć. Operacja odwrotna do przekształcenia all-or-nothing wymaga znajomości wartości funkcji skrótu każdego bloku (poza dodatkowym), co pozwala uzyskać klucz umożliwiający przekształcenie wszystkich bloków do pierwotnej postaci. Odzyskanie plików nie jest możliwe bez wcześniejszego uzyskania dostępu do każdego bloku pseudowiadomości, co jest skutecznym zabezpieczeniem przed co najmniej kilkoma scenariuszami ataków. Jak już wspomniano, uzyskanie dostępu do części chronionych nijak nie wpływa na prawdopodobieństwo uzyskania dostępu do kolejnej, nie może być więc źródłem informacji dla ataków słownikowych.


Teoretyczne opracowanie zaproponowane przez Ronalda L. Rivesta odnosiło się przede wszystkim do trybu wiązania bloków zaszyfrowanych, niemniej dostępne dziś skrypty, w większości otwarte i darmowe, znajdują znacznie szersze zastosowanie i mogą być świetną metodą na zapewnienie ochrony wrażliwych plików bez narażania się na ryzyko przechwycenia danych uwierzytelniających. Zwłaszcza że dodanie kolejnej warstwy kryptograficznej w postaci przekształcenia AONT nie wpływa na wielkość klucza.


> HORKRUKSY


Ręczne dokonywanie przekształceń na plikach byłoby procesem żmudnym i czasochłonnym. Na szczęście nie brakuje praktycznych realizacji koncepcji AONT w postaci gotowych skryptów dzielących pliki na wspomniane części. Na GitHubie pojawiły się niezależnie od siebie dwa narzędzia o nazwie Horcrux – nazwy zaczerpnięto ze słynnej sagi o Harrym Potterze, gdzie horkruks to część podzielonej duszy, która służy jako swojego rodzaju backup w przypadku śmierci. Starszy z nich (a i tak opublikowany zaledwie przed dwoma miesiącami, co pokazuje, że zainteresowanie przekształceniami AONT jest żywe) obsługiwany jest z poziomu wiersza poleceń, a jego autorem jest Ryan Kennedy – całość dostępna jest w postaci skryptu SH w jego repozytorium pod adresem github.com/kndyry.


Trzeba przyznać, że realizacja AONT dokonana przez Kennedy’ego jest nieco prostsza w stosunku do rozbudowanych przekształceń opisanych w 1997 r. przez Rivesta. W pierwszej kolejności skrypt szyfruje plik lub archiwum, następnie koduje w Base64, a w końcu dzieli. To użytkownik decyduje o liczbie i wielkości horkruksów – domyślnym wariantem jest wskazanie liczby (wówczas części będą równej wielkości), ale możliwe jest także ustalenie maksymalnej wielkości części, na jakie podzielony zostanie plik. Całość zabezpieczona jest hasłem, niemniej – zgodnie z założeniami przekształceń all-or-nothing – jego znajomość nie zda się na nic, jeśli brakuje choćby bajta informacji, z których odtworzony może być pierwotny plik lub archiwum.

 

[...]

 

Dziennikarz, redaktor, bloger. Entuzjasta wolnego oprogramowania.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"