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


31.12.2020

Cykl webinarów

weinnovators.club
30.12.2020

Integracja z Teams

Veeam Backup
30.12.2020

Namierzanie zagrożeń

Flowmon Networks i Fortinet
30.12.2020

Wsparcie dla przedsiębiorstw

VMware Cloud on AWS
29.12.2020

Nowe NAS-y Thunderbolt 3

QNAP QuTS TVS-h1288X i TVS-h1688X
29.12.2020

Modele kompaktowe

VPL-PHZ60 i VPL-PHZ50
28.12.2020

Dedykowane przemysłowi

Seria TJ
28.12.2020

Nowa generacja

Router QHora-301W

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"