Labyrinth Drives
Wstęp | System zarządzania dyskami SSD
Labyrinth Drives to startup rozwiązujący problem bezpieczeństwa dysków przenośnych. W dobie pracy zdalnej coraz częściej zdarzają się podróże z wrażliwymi danymi, które mogą zostać zgubione lub skradzione i w ten sposób dostać się w niepowołane ręce. Propozycją klienta było zbudowanie dysku twardego, który byłby jednocześnie urządzeniem IoT wyposażonym w mechanizm autoryzacji dostępu. Zaplanowane funkcjonalności to m.in.:
- Możliwość odczytania zawartości dysku jedynie po autoryzacji w aplikacji mobilnej
- Potwierdzanie dostępu do dysku za pomocą sparowanego telefonu
- Możliwość zdalnego wymazania zawartości dysku - całego systemu lub wybranych danych
- Udzielanie dostępu na odległość.
Projekt rozpoczęliśmy w 2021 roku. Klient wybrał nas na wykonawcę po zapoznaniu się z przygotowanym przez nas harmonogramem prac, który opierał się na konkretnych terminach i budżecie. Nie bez znaczenia były również nasze kompetencje w dziedzinie IoT: bardzo dobra znajomość sposobu działania protokołu TLS, korzystania z komend niskopoziomowych na warstwach komunikacyjnych oraz wysoka świadomość możliwości i ograniczeń frameworka Flutter.
W momencie przyjęcia przez nas projektu klient dysponował jedynie symulatorem oprogramowania dysku, a fizyczne urządzenie było wciąż w fazie produkcji. Naszym zadaniem było napisanie aplikacji, która będzie sprawnie komunikowała się z istniejącym urządzeniem, realizując zaplanowane funkcjonalności.
Rozwiązanie — sterowanie dyskami SSD
Głównym wyzwaniem w realizacji projektu był brak gotowego urządzenia. Przez cały czas pracowaliśmy na symulacji oprogramowania dysku, którego prototyp wciąż był w fazie tworzenia. Nie dysponowaliśmy więc fizycznym produktem, co sprawiło, że musieliśmy w jeszcze większym stopniu niż zazwyczaj przewidywać ryzyka i przeprowadzić bardzo skrupulatnie testy, aby upewnić się, że rozwiązania zastosowane w wirtualnym środowisku zadziałają również w fizycznym produkcie. W tym procesie bardzo pomocna była bardzo dobra komunikacja z klientem i jego świetne przygotowanie merytoryczne i techniczne do realizacji takiego projektu.
Kolejnym wyzwaniem były zmiany w używanych technologiach. W czasie realizacji projektu wyszła aktualizacja technologii Flutter, z której korzystaliśmy, co wiązało się z koniecznością przepisania całego kodu. Innymi wyzwaniami technologicznymi było m.in. zaprojektowanie i wdrożenie szyfrowania Bluetooth Low Energy (BLE), a także brak gotowych rozwiązań do komunikacji niskopoziomowej we Flutter, które musieliśmy zbudować od zera według własnego projektu i pomysłu. Udało nam się to dzięki dużemu doświadczeniu we wdrażaniu komunikacji bez assemblera, którą oferuje Flutter. W ramach projektu opracowaliśmy również system zarządzania dyskami SSD oraz mechanizmy pozwalające na sterowanie dyskami SSD w kontekście zapewnienia bezpieczeństwa danych.
Finalnie w ramach projektu zbudowaliśmy:
- Aplikację mobilną, która sprawnie komunikuje się z istniejącym oprogramowaniem urządzenia (dysku przenośnego)
- Mechanizm wysyłania poleceń bezpośrednio do Bluetooth Low Energy, bez pośrednictwa API
- Szyfrowane połączenie TLS
- Autoryzację dostępu za pomocą odcisku palca
- Funkcjonalność skanowania urządzeń w zasięgu BLE
- Szatę graficzną spójną z identyfikacją wizualną klienta
Efekt
Projekt Labyrinth Drives zakończył się sukcesem zarówno z perspektywy technologicznej, jak i zarządzania. Dostarczyliśmy klientowi w pełni funkcjonalne rozwiązanie w ustalonym czasie i budżecie, spełniając w ten sposób dwie główne potrzeby startupu. Praca jedynie na wirtualnym dysku, który był jedynie prototypem docelowego urządzenia, nie stanowiła dla nas przeszkody. Sprawnie zarządziliśmy też koniecznością wprowadzenia zmian, np. przepisania kodu po aktualizacji Flutter. Projekt ten potwierdził nasze kompetencje w dziedzinie IoT oraz to, że potrafimy działać sprawnie i elastycznie nawet w warunkach dużej niepewności.Chcesz zrealizować podobny projekt?
Powiedz nam czego potrzebujesz, a nasi eksperci Powiedzą Ci jak to zrobić, ile to kosztuje i na kiedy będzie gotowe.