TrueCrypt + Prey; jak pogodzić?
Wstęp
pokaż spoiler
jak dla kogoś "TR", to można tę sekcję "DR"
TrueCrypta, mam nadzieję, nikomu nie muszę przedstawiać. Szyfrowanie pojedynczych archiwów, partycji czy całych dysków w dobie permanentnej inwigilacji to niemal konieczność (a dla niektórych nawet nie "niemal").
W połączeniu z regularnymi backupami (oczywiście na szyfrowanych dyskach) otrzymujemy świetne bezpieczeństwo danych, ale nadal pozostaje problem bezpieczeństwa sprzętu. Twórcy narzędzia Prey przychodzą z pomocą, dając szerokie możliwości śledzenia zagubionego laptopa (czy tableta, smartfonu). W telegraficznym skrócie: zgubiony/skradziony komputer można (o ile oczywiście znalazca/złodziej podłączy maszynę do internetu - a Prey sam z siebie próbuje nawiązać połączenia z widocznymi sieciami bezprzewodowymi) zdalnie monitorować namierzając jego lokalizację po IP/punktach WiFi/GPS, robić "nowemu właścicielowi" zdjęcia kamerką czy screenshoty albo komunikować się z nim.
Problem pojawia się, gdy chcemy z obu tych funkcjonalności skorzystać naraz. Bo jeśli uczciwy znalazca nie może zalogować się do systemu, nie może dostać naszej wiadomości; natomiast złodziej, który napotyka się jedynie na Prey'a ma dostęp do wszystkich naszych wrażliwych danych.
Metoda
Zasadnicza koncepcja mojego rozwiązania polega na zainstalowaniu dwóch systemów (w moim przypadku Windows 7 i Ubuntu 12.04) w taki sposób, żeby pierwszy był zaszyfrowany z możliwością pominięcia autentykacji i uruchomienia drugiego, nad którym po cichu czuwa Prey. Dodatkowo, starałem się by połączenie było jak najprostsze (tj. żeby potencjalny znalazca miał jak najkrótszą drogę do zalogowania się do Ubuntu) - finalnie nie pojawiają się żadne ekrany wyboru systemu, ba: ktoś patrzący z boku nie ma nawet świadomości, że komputer zawiera dwa systemy operacyjne (oczywiście dopóki nie dobierze się bezpośrednio do zawartości dysku twardego).
pokaż spoiler
Podam tylko schemat konstrukcji; nie chciałem robić tutaj tutorialu, a opisać swój pomysł na tyle czytelnie, by można było go łatwo skopiować (chętnym mogę rozwinąć szczegóły).
Moja maszyna zawiera 5 partycji:
* partycja systemowa, Windows 7 (wraz z bootloaderem!),
* partycja NTFS pod Windowsa (lubię instalować programy osobno),
* partycja NTFS pod Windowsa (magazyn plików),
* partycja główna Ubuntu (system operacyjny oraz bootloader),
* partycja /home/ Ubuntu (ale nie trzeba jej robić).
pokaż spoiler
Minimalnie potrzebne są dwie partycje: na Windę i Ubuntu.
Jak wiadomo, Windows 7 podczas instalacji tworzy sobie przed zadaną partycją tzw. partycję rozruchową, na której umieszcza bootloader i narzędzia odzyskiwania, a której zaszyfrowanie TrueCryptem jest niemożliwe. Ja jednak z niej zrezygnowałem, by bootloader umieścić na zaszyfrowanej partycji systemowej (ma to bardzo dużą zaletę, którą przedstawię dalej). Dlatego też sugerowałbym zacząć od nowej instalacji Windowsa, bo o wiele prościej jest zainstalować go bez tej partycji, niż usuwać ją na już istniejącym systemie.
pokaż spoiler
Jest to możliwe, ale zgadnijcie, na czym rozsypałem poprzednią instalację
Partycja Windowsa jest w całości zaszyfrowana przy użyciu TC metodą dla komputerów z wieloma systemami operacyjnymi. Jest to proces odrobinę bardziej skomplikowany niż zwykle, ale jak się przeczyta jakiś tutorial i uważa na każdym kroku, to nie powinno być problemów.
Przy okazji małe pytanie do ekspertów: czy ważne jest, by przed rozpoczęciem szyfrowania Ubuntu był już zainstalowany? Ja wolałem mieć i wszystko śmiga, zastanawia mnie jedynie, czy można drugiego OSa doinstalować potem.
Po zaszyfrowaniu należy, w ustawieniach ("System Encryption Settings") zezwolić na pamiętanie wprowadzonego hasła i na pominięcie autentykacji; można też wyłączyć pokazywanie defaultowego ekranu startowego TrueCrypta, a zamiast tego wyświetlić swój własny komunikat. Ja podałem "Press ESC to start..." (czemu - dalej).
Następne dwie partycje są również zaszyfrowane; co ważne, używając identycznego hasła co systemowa. Jest to o tyle istotne, że pozwala na automatyczne ładowanie tych partycji ze startem systemu, a więc można zrobić zupełnie gładkie połączenie (z perspektywy użytkownika nie widać żadnej różnicy względem czystego systemu). W TC nazywa się to "System Favorite Volumes".
Uwaga: w takiej sytuacji, po zaszyfrowaniu dysku i uruchomieniu zobaczymy następujący układ partycji: C (Windows), D ("surowa" partycja, zaszyfrowana - więc zawierająca pozornie losowe bity; Windows zasugerowałby jej sformatowanie), E (jak D), F (zamontowana przez TC zawartość D - możliwy odczyt i zapis), G (zamontowana E) - a więc niepotrzebny bałagan. Można sobie z tym poradzić usuwając litery dysków przypisane do partycji D i E, dzięki czemu TrueCrypt będzie mógł następnym razem zamontować pod te litery właściwe wolumeny.
Partycje Ubuntu są u mnie bardzo małe, na ok. 500GB dysku przypisałem im ok. 10GB, ale mają mi służyć tylko okazjonalnie (no i do Prey'a). Bardzo istotne jest, by przy instalacji drugiego systemu umieścić jego bootloader w odpowiednim miejscu (tj. w moim przypadku na czwartej partycji). Gdy zaszyfrujemy pierwszą partycję TrueCryptem, na sektorze rozruchowym dysku twardego (MBR) wpisany zostanie jego bootloader, który - po wpisaniu hasła - załaduje loader Windowsa, a po pominięciu autoryzacji znajdzie zapisany dalej loader Ubuntu. Gdybyśmy przy instalacji drugiego systemu nie wybrali lokalizacji jego bootloadera, zostałby nadpisany loader TC (w MBR), a więc utracony zostałby dostęp do zaszyfrowanego systemu (w takich sytuacjach ratujemy się TrueCryptowym Rescue Diskiem).
pokaż spoiler
Istotne jest też to, by logowanie do Ubuntu nie było zabezpieczane żadnym hasłem - ale to raczej oczywiste ;)
W Ubuntu jest jeszcze jedna ważna rzecz do zrobienia: konfiguracja loadera GRUB. Normalnie po pominięciu autentykacji TrueCrypta pojawiłby się (w opisywanej konfiguracji) menedżer rozruchu Ubuntu, dając różne opcje uruchamiania systemu. Ja postanowiłem go jednak nie wyświetlać (z obawy o trudność uruchomienia dla "osoby trzeciej"). W tym celu w konfiguracji GRUB'a należy ustawić GRUB_TIMEOUT na zero.
Jak to wygląda ostatecznie?
W spojlerach techniczne szczegóły, niewidoczne dla końcowego użytkownika.
Po włączeniu komputera
pokaż spoiler
BIOS ładuje z MBR bootloader TrueCrypta, który wyświetla jedynie
komunikat: "Press ESC to start...".
pokaż spoiler
Poza tym maszyna jest pozornie nieresponsywna, wprowadzanie znaków nie powoduje żadnej reakcji.
Podanie poprawnego hasła powoduje
pokaż spoiler
odszyfrowanie bootloadera Windowsa z partycji systemowej, zamontowanie dwóch dodatkowych partycji i
start systemu.
Podanie błędnego hasła nie daje żadnego efektu (resetuje pole do wprowadzania).
Pominięcie autentykacji przez wciśnięcie Escape powoduje
pokaż spoiler
w sytuacji klasycznej wyświetlenie boot managera TC (który pozwala na wybór systemu do załadowania w przypadku bardziej rozbudowanych konfiguracji). W naszym przypadku menedżer ten znajdzie na dysku tylko jeden bootloader: należący do Ubuntu, tj. GRUB (windowsowy jest zaszyfrowany, bo nie mamy partycji rozruchowej!); a skoro nie ma z czego wybierać, odpali go bezpośrednio. Ten natomiast skonfigurowaliśmy, by uruchamiał swój docelowy system również bezpośrednio. W efekcie dostajemy więc eleganckie łańcuchowe
uruchomienie Ubuntu.
Jak widać, dzieje się to bez żadnych widocznych szwów - "końcowy użytkownik", widząc komputer (o ile go włączy) nie reagujący na żaden klawisz i komunikat "Press ESC", prawdopodobnie wciśnie ten klawisz (chyba, że jest profesjonalnym złodziejem i od razu zrobi format - ale na tak fatalistyczne scenariusze raczej się nie przygotujemy), a następny obraz, jaki zobaczy, to ekran startowy Ubuntu. A potem, o ile ma dostęp do internetu, dostanie od nas sygnał :)
Więcej w celu odzyskania maszyny nie zrobimy - a to wszystko przy gwarancji bezpieczeństwa danych znajdujących się na HDD!