Partycja LUKS i diskpart->clean

Dyskusje o wszystkim co służy ochronie systemu i danych przed nieautoryzowanym dostępem.
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Partycja LUKS i diskpart->clean

Post autor: glonik »

Witam wszystkich.
Mam "mały problem". Prze pomyłkę i w pośpiechu użyłem polecenia 'clean' korzystając z diskpart pod Windows 7. Na dysku były 2 partycje:
- 1. zaszyfrowana TrueCryptem, z systemem plików NTFS służąca jako magazyn dla Windowsa
- 2. partycja LUKS służąca jako magazyn dla Linuxa.
( mam 2 systemy bo Linux jednak wygodniejszy, no ale w gry też fajnie czasem pograć, ale to nie ważne)
Na rzeczonym dysku twardym nie było żadnych partycji systemowych. Przechodząc do sedna sprawy, przypadkiem wyczyściłem ten dysk poleceniem 'clean'. Partycję zaszyfrowaną TrueCryptem odzyskałem, gorzej z tą LUKS. Skanowałem dysk TestDisk-iem, ale ten znalazł jedynie 2MB partycje zamiast tej właściwej, którą chce odzyskać. To co znalazł TestDisk to zdaję się jest jedynie ( a może aż ) nagłówek partycji LUKS, którą chcę odzyskać.

Pozdrawiam i liczę na pomoc :roll: .
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Sprawa jest trudna ale nie beznadziejna. Wszystko zależy od tego, czy nagłówek został uszkodzony czy nie. Nie wiem niestety jak działa ten diskpart z windows, ale podejrzewam, że on po prostu czyści tablice partycji. Dlatego odtworzenie ich dokładnie tak, jak były przedtem powinno pomóc. Rzuć okiem na ten wątek znajdziesz tam informacje, jak znaleźć początek partycji LUKS i jak to zamontować.
TestDisk nie jest najlepszym narzędziem w takich sprawach, istotne jest precyzyjne ustawienie początku partycji, nagłówek zaszyfrowanej partycji zawsze zaczyna się od LUKS (hex 4c 55 4b 53).
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Dzięki za podrzucenie linkiem. Oto do czego doszedłem:

Użyłem polecenia 'grep' w celu wyszukania ciągu znaków 'LUKS\xba\xbe' idąc za radą z forum pod linkiem:

Kod: Zaznacz cały

[root@new-host media]# grep -a -b -P --only-matching 'LUKS\xba\xbe' /dev/sdc
214748364800:LUKS��
Coś znalazło na bajcie 214748364800., więc użyłem 'hexdump', żeby zobaczyć co tam jest:

Kod: Zaznacz cały

[root@new-host localhost]# hexdump /dev/sdc -n 32 -s 214748364800
3200000000 554c 534b beba 0100 6561 0073 0000 0000
3200000010 0000 0000 0000 0000 0000 0000 0000 0000
3200000020
@infort napisał, że:
... nagłówek zaszyfrowanej partycji zawsze zaczyna się od LUKS (hex 4c 55 4b 53).
Czyferki trochę w innej kolejności, ale chyba o to chodziło.

Użyłem też 'hexdump', aby sprawdzić co jest na tej znalezionej przez TestDisk 2MB partycji:

Kod: Zaznacz cały

[root@new-host localhost]# cryptsetup luksDump /dev/sdc2 
LUKS header information for /dev/sdc2

Version:        1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      27 9b c4 7e 51 73 5b 09 cc 59 61 18 38 ad 33 c9 b4 d9 c0 05 
MK salt:        db 82 91 4c f5 47 0f bc 39 26 d9 4b 3c 3d 51 b9 
                89 62 d8 04 a6 b9 0e 66 3e 86 51 5c 2f 46 e3 c7 
MK iterations:  38125
UUID:           345629af-7fa2-4732-83fb-386568028a0a

Key Slot 0: ENABLED
        Iterations:             152857
        Salt:                   72 95 44 21 fc 8b f6 3b f2 4d 47 36 e2 8a cc 57 
                                d2 e1 c5 3c 7d c2 c9 30 e4 97 7b c3 6d 51 44 cc 
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
Z tego co ja wnioskuje to właśnie w tym miejscu zaczyna się partycja, którą chce odzyskać ( czyli tam gdzie ta 2MB ). Zajmowała ona miejsce do końca dysku, czy zatem wystarczy jeśli np. za pomocą gparted lub fdisk rozszeże ją na nie przydzielony obszar? A tak wygląda w tej chwili mój dysk.
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Jeśli to była ostatnia partycja to tak, spróbuj nic nie tracisz, zawsze można partycję skasować i spróbować innych ustawień.
Jak już utworzysz tę partycję, to spróbuj ją zamontować za pomocą cryptsetup, jesli nagłówek nie uległ uszkodzeniu a wygląda, że nie i pamiętasz hasło to powinno się zdeszyfrować.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Coraz bliżej celu..., usunołem więc tą 2MB partycję, a zamist niej utwożyłem nową zaczynającą się od tego samego miejsca, ale kończącą się na końcu dysku i już prawie mi się udało. Przekonwertowałem tabicę partycji z GPT=>MBR za pomocą jakiegoś windowsowego programu ( testdisk przy takim ustawieniu coś znajdował dlatego miałem GPT ). No i sprawa trochę dziwna bo udało mi się ją podmontować pod Windowsem za pomocą programów FreeOfte oraz Paragon. Szybko więc zrobiłem restart, uruchomiłem Linuxa i podczas próby montowania po wpisaniu hasła wyskakuje błąd ( taki sam jak gdy tabica partycji była GPT ):
Nie udało się zamontować „Magazyn”.

Error mounting /dev/dm-7 at /run/media/localhost/Magazyn: Command-line `mount -t "ext4" -o "uhelper=udisks2,nodev,nosuid" "/dev/dm-7" "/run/media/localhost/Magazyn"' exited with non-zero exit status 32: mount: niewłaściwy typ systemu plików, błędna opcja, błędny superblok na /dev/mapper/luks-345629af-7fa2-4732-83fb-386568028a0a,
brak strony kodowej lub programu pomocniczego albo jeszcze inny błąd

W niektórych przypadkach przydatne informacje można
znaleźć w logu systemowym (np. dmesg | tail)
Wpisał w terminalu 'dmesg | tail' tak jak sugerował monit:

Kod: Zaznacz cały

[  118.556537] EXT4-fs (dm-7): bad geometry: block count 191761152 exceeds size of device (191760896 blocks)
Uruchomiłem więc kompa z LiveCD i tam próbowałem zamontować, jednak wyskoczył identyczny błąd.
No, ale jeżeli pod Windowsem mogę zamontować tą partycje tym bardziej musi się dać zamontować pod Linuxem.
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Skoro udało Ci się choć raz podmontować partycję LUKSa pod FreeOTFE to znaczy że problem nie tkwi w samym szyfrowaniu. Jeśli możesz kopiuj pliki z tej partycji pod Windows skoro się montuje, tu chodzi o dane przecież.
Bad geometry można naprawić testdiskiem ale jeśli jest to szyfrowana partycja to nie wiem czy nie uszkodzi to danych. W każdym razie najpierw użyj cryptsetup żeby zdeszyfrować, potem testdisk. Jeśli testdisk nie pomoże to baw się sfdisk. Problemem jest błędny zapis w tablicy partycji, szukaj w tym kierunku.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Porzuciłem tą sprawę, ale postanowiłem do tego wrócić i coś mi się wydaję, że już tych danych nie odzyskam. Już piszę dlaczego tak uważam.
Nagłówek partycji luks wydaję się być nie naruszony, za pomocą gparted utwożyłem partycje zaczynającą się tam gdzie nagłówek do końca dysku ( czyli tak jak przed utratą danych ). Gdy uruchamiam Thunar'a w zakładce /NOŚNIKI/ mam do wyboru /Zaszyfrowana partycja o rozmiarze 785GB/ jednak gdy ją klikam po wpisaniu hasła wyskakuje okienko z informacją:
Nie udało się zamontować „Zaszyfrowane
dane o rozmiarze 785 GB”.

Error unlocking /dev/sdc2: Command-line
`cryptsetup luksOpen "/dev/sdc2"
"luks-345629af-7fa2-4732-83fb-386568028a0a"
' exited with non-zero exit status 2: Dla tego
hasła nie ma dostępnego klucza.
.
Jak wpisuje w wierszu poleceń to to samo:

Kod: Zaznacz cały

[root@new-host localhost]# cryptsetup -v luksOpen /dev/sdc2 sdc2_crypt
Hasło dla /dev/sdc2: 
Dla tego hasła nie ma dostępnego klucza.
Jak uruchamiam linuxa LiveCD to błędy są takie same.
Czy wobec powyższego możliwe jest, że tworząc partycje za pomocą gparted ( i nie tylko, korzystałem z kilku, zawsze jednak zwracałem uwagę, aby zmiany dokonywać bez nadpisywania danych ) uszkodziłem klucz znajdujący się w wierszu Key Slot 0: ENABLED w nagłówku szyfrowanej partycji ( zawartość nagłówka podałem już 4 posty wcześniej /klik/ ).

Proszę o odpowiedź ponieważ zastanawiam się czy nie utworzyć tam nowej partycji i odpuścić sobie odzyskiwanie tych danych, jednak wtedy już nie będzie szansy na cofnięcie.
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Błąd, który u ciebie występuje może co prawda oznaczać uszkodzenie klucza, ale jest to mało prawdopodobne. Jest to typowy błąd, kiedy z jakiegoś powodu hasło się nie zgadza. Poza błędnym wpisaniem samego hasła, może to być też związane z błędnym wpisem w locale.conf (rozwiązanie: ustawić właściwy i wygenerować ponownie initramfs). Istnieje też zgłoszony na launchpadzie błąd samego cryptsetup, który daje podobne objawy, niestety do dziś nie rozwiązany (deweloperzy ubuntu, a właściwie szerzej debiana olewają konkretnie sprawy szyfrowania, błędy nie poprawione latami straszą, choć w innych dystrybucjach linuksa są dawno rozwiązane).

Generalnie jeśli:

Kod: Zaznacz cały

cryptsetup -v isLuks /dev/oznaczenie_twojej_partycji
potwierdza poprawność nagłówka to nie jest on uszkodzony.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Hasło na pewno wpisuje dobrze. Tyle razy już je wpisywałem, że zapisałem sobie w pliku tekstowym i tylko kopiuje ( wiem, że nie powinno się go zapisywać nigdzie, ale jest długie i chciałem wyeliminować prawdopodobieństwo błędnego wpisywania ). Więc problem z locale.conf też raczej odpada. Tu jego zawartość:

Kod: Zaznacz cały

cat /etc/locale.conf 
LANG="pl_PL.UTF-8"
Co to tego polecenia to wyskakuje mi coś takiego;

Kod: Zaznacz cały

[root@new-host localhost]#
cryptsetup -v isLuks /dev/sdc2 
Polecenie się powiodło.
Więc chyba dobrze.
Natomiast co do initramfs wpisałem w wierszu poleceń dracut -v -f ( odpowiednik update-initramfs w Ubuntu ):

Kod: Zaznacz cały

[localhost@new-host ~]$ su
Hasło: 
[root@new-host localhost]# dracut -v -f
I: *** Including module: i18n ***
I: *** Including module: drm ***
I: *** Including module: plymouth ***
I: *** Including module: crypt ***
I: *** Including module: dm ***
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: kernel-modules ***
I: *** Including module: lvm ***
I: Skipping udev rule: 64-device-mapper.rules
I: *** Including module: resume ***
I: *** Including module: rootfs-block ***
I: *** Including module: terminfo ***
I: *** Including module: udev-rules ***
I: *** Including module: biosdevname ***
I: *** Including module: systemd ***
I: *** Including module: usrmount ***
I: *** Including module: base ***
I: *** Including module: fs-lib ***
I: *** Including module: shutdown ***
I: *** Including modules done ***
I: *** Installing kernel module dependencies and firmware ***
I: *** Installing kernel module dependencies and firmware done ***
I: *** Resolving executable dependencies ***
I: *** Resolving executable dependencies done***
I: *** Pre-linking files ***
I: *** Pre-linking files done ***
I: *** Hardlinking files ***
I: *** Hardlinking files done ***
I: *** Stripping files ***
I: *** Stripping files done ***
I: *** Creating image file ***
I: *** Creating image file done ***
I: Wrote /boot/initramfs-3.12.11-201.fc19.x86_64.img:
I: -rw------- 1 root root 11314676 04-09 23:56 /boot/initramfs-3.12.11-201.fc19.x86_64.img
I to również nic nie pomogło, ani przed ani po restarcie.
Co do tego uszkodzenia nagłówka to też mi się wydaję mało prawdopodobne ponieważ wtedy były by tam jakieś zupełnie przypadkowe dane.
A jeśli chodzi o błąd w cryptsetup w Ubuntu to ja używam Fedory, więc albo to nie to, albo w Fedorze też tego nie poprawili ( ewentualnie czy znacz dystrybucję - wolną od w/w błędu - którą bym sobie zgrał na pendrive i zamontował tą partycje pod LiveCD ( właściwie to LiveUSB )?
A mówiąc tak ogólnie, to rozumiem, że jest sens próbować dalej ponieważ wychodzi na to, że da się to wszystko jeszcze odzyskać?

Teraz doczytałem, że Fedora też chyba nie jest pozbawiona tego błędu /klik/.
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

W ostateczności spróbuj przesłać hasło wpisane otwartym tekstem przez:

Kod: Zaznacz cały

echo "twoje_hasło" | cryptsetup luksOpen partycja
przynajmniej będziesz widział czy się nie pomyliłeś przy wpisywaniu, zwłaszcza jeśli hasło zawiera znaki nie będące literami ani cyframi.

A próbowałeś może dodać nowy klucz do innego slotu? Chodzi mi o

Kod: Zaznacz cały

cryptsetup luksAddKey partycja -S numerslotu
To wymaga podania istniejącego hasła z dowolnego ustawionego slotu, pytanie, czy ten sam błąd występuje tak jak przy luksOpen.

Zakładam, że UUID partycji jest taki sam, jaki był przy szyfrowaniu, niby nie powinno, ale może to mieć znaczenie. Następne co mi przychodzi do głowy to niezgodność wersji cryptsetup lub kernela (w przypadku gdyby zastosowany parametr szyfrowania nie był już dłużej wspierany w nowszym kernelu).

Zasadniczo sprawdza się złota zasada - wszędzie tam, gdzie mamy do czynienia z szyfrowaniem, niezbędne jest posiadanie kopii ważnych danych. I nic nas od tego nie zwalnia, bo potem wychodzą takie kwiatki jak niepoprawiony od lat (!) błąd w wydawałoby się prostym programie. Na dodatek nikt tak naprawdę nie ma pojęcia dlaczego ten błąd występuje, ponieważ nikt tego nie bada. A rozwojem programu zajmuje się w porywach kilka osób, czasem tylko jedna.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Tak, próbowałem dodać klucz, każe wtedy podać hasło pasujące do istniejącego klucza i też wyskakuję monit o błędzie.

Kod: Zaznacz cały

[root@new-host localhost]# cryptsetup luksAddKey /dev/sdc3 -S 1
Dowolne istniejące hasło: 
Dla tego hasła nie ma dostępnego klucza.
Co do użycia polecenia echo mam taki problem:

Kod: Zaznacz cały

[root@new-host localhost]# echo "b@rdzo_dlugie_i_n@_koncu_jest!1024" | cryptsetup luksOpen /dev/sdc3
bash: !1024: event not found
Próbowałem wraz z cudzysłowami oraz bez, próbowałem też z backslash-em prze wykrzyknikiem ( "\!" ) .
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Ups.. wykrzyknik w bashu ma specjalne znaczenie, użyj pojedynczych cudzysłowów.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Apostrofy też nic nie dają:

Kod: Zaznacz cały

[root@new-host localhost]# echo 'b@rdzo_dlugie_i_n@_koncu_jest!1024' | cryptsetup luksOpen /dev/sdc3
Polecenie wymaga urządzenia i nazwy odwzorowywanej jako argumentów.
Cóż chyba nie pozostaję mi nic innego jak format. Zastanawiam się tylko nad jednym, gdybym za w czasu zrobił kopie nagłówka, to czy to by mnie nie uratowało? No i najlepsze w tym wszystkim jest to, że w pewnym momencie udało mi się zamontować tą partycję pod Windowsem za pomocą FreeOfte, trzeba było wtedy ratować to co najważniejsze, a następnie utworzyć partycję LUKS od nowa. A ja lekkomyślnie dalej kombinowałem z tworzeniem/usuwaniem partycji i coś mi się wydaję, że wtedy musiałem zrobić coś co nie pozwala mi na jej ponowne zamontowanie. Tak czy inaczej mam nauczkę.
Ludzie dzielą się na dwie grupy - tych, którzy robią backupy, i tych, którzy jeszcze nie stracili żadnych danych.
Minęło parę minut odkąd napisałem tego posta, więc go edytuje, ale coś mi nie daję spokoju.
Udało mi się raz zamontować tą partycję za pomocą FreeOfte, co by nie patrzeć mam kopie zapasową nagłówka, gdzie? Parę postów wyżej. Więc mogę porównać stan obecnego nagłówka z tym z chwili gdy udało mi się zamontować partycje. Są takie same. To czemu nie mogę tego zamontować, ani pod Fedorą, ani pod Ubuntu, ani kilkoma innymi Linuxami ( nie pamiętam, którymi, po prostu odpalałem UNetbootin i wybierałem z listy, któreś dystrybucje ). Jeżeli jest to kwestia jakiegoś błędu w oprogramowaniu, że po którejś aktualizacji nie da się zamontować szyfrowanej partycji LUKS to tak na chłopski rozum, wystarczy wrócić do starszej wersji i powinno zadziałać. Może się mylę, a może po prostu zaczyna mi brakować pomysłów i trochę mnie wyobraźnia ponosi.


Dalszy ciąg mojego rozumowania, proszę mnie poprawić jeśli się mylę.
Szyfrowanie/odszyfrowanie ( dm-crypt, truecrypt, bitlocker ) działa mniej więcej tak.
W momencie szyfrowania tworzony jest klucz do partycji, który jest szyfrowany hasłem podanym przez użytkownika. W momencie, gdy użytkownik podaję hasło, klucz do partycji zostaję rozszyfrowany i za pomocą niego uzyskujemy dostęp do danych. Ja mam hasło podane przy szyfrowaniu partycji, mam klucz do partycji ( ten z nagłówka ). Więc mam wszystko co mi potrzeba. Mam też UUID, widzę, że ten obecny zgadza się z tym, który był gdy FreeOfte zadziałało. Więc mam wszystko.
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Generalnie Twoje rozumowanie jest poprawne jesli chodzi o mechanizm działania. Diabeł tkwi w szczegółach.

cryptsetup luksOpen wymaga dwóch argumentów, urządzenia i nazwy wobec tego twoje polecenie jest niekompletne i dlatego wyskoczył błąd.
Spróbuj:

Kod: Zaznacz cały

echo 'b@rdzo_dlugie_i_n@_koncu_jest!1024' | cryptsetup luksOpen /dev/sdc3 mapowana_nazwa
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Z tego co zauważyłem to każda zaszyfrowana partycja ma swój odpowiadający plik w katalogu /dev/mapper. Czyli pliku o nazwie luks-[UUID_partycji_LUKS]. Brakuję jednak tego odpowiadającego tej co chcę odzyskać. Wobec tego nie wiem co wpisać zamiast mapowana_nazwa. Więc UUID po frazie luks- dopisałem sam:

Kod: Zaznacz cały

echo 'b@rdzo_dlugie_i_n@_koncu_jest!1024' | cryptsetup luksOpen /dev/sdc3 luks-345629af-7fa2-4732-83fb-386568028a0a
Dla tego hasła nie ma dostępnego klucza.
Czyli znowu problem z hasłem/kluczem.

Trafiłem na stronę, w której autor pisze o napisanym przez siebie programie, tj. Key-Slot Checker Tool. Ściągnołem programik, o którym mowa, kompilacja jest banalna i opisana na początku pliku z kodem programu. Więc skompilowałem, uruchomiłem i nie wiem jak zinterpretować wynik:

Kod: Zaznacz cały

[root@new-host asd]# gcc -lm chk_luks_keyslots.c -o chk_luks_keyslots
[root@new-host asd]# ./chk_luks_keyslots /dev/sdc1

Sectors with entropy below threshold (0.850000):

Keyslot 0: start:   0x1000 
  position:  0x10000   entropy: 0.571193
Keyslot 1: start:  0x21000 
  keyslot not in use
Keyslot 2: start:  0x41000 
  keyslot not in use
Keyslot 3: start:  0x61000 
  keyslot not in use
Keyslot 4: start:  0x81000 
  keyslot not in use
Keyslot 5: start:  0xa1000 
  keyslot not in use
Keyslot 6: start:  0xc1000 
  keyslot not in use
Keyslot 7: start:  0xe1000 
  keyslot not in use
[root@new-host asd]#
Na tej stronie znajdują się 2 przykłady wywołania tego programu, 1. dla poprawnego nagłówka oraz 2. dla błędnego. I jeśli dobrze to interpretuję to mnie tyczy się ten 2. przykład. Czyli nie za dobrze, choć pewności nie mam.


A czy da się jakoś na cryptluks-ie wymusić 'Cipher mode' w chwili montowania? Skąd ten pomysł?
Utwożyłem na pendrive partycje LUKS, następnie ją usunołem i w innym miejscu na tym pendrive ponownie utworzyłem partycje LUKS. W 1. i 2. przypadku wywołania polecenia 'cryptluks luksDump /dev/sdh1' dawało podobny wynik ( w sensie początek, który zamieszczam poniżej ):

Kod: Zaznacz cały

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
Dalsza część 'luksDump' była, rzecz jasna, różna w obydwu przypadkach. Nie mniej jednak metoda szyfrowania ( 'Cipher mode' ) w 1. i 2. to : 'xts-plain64'. Krótko mówiąc jak wymusić zamontowanie mojej utraconej partycji metodą 'xts-plain64'? A jak to nie pomoże to mogę próbować wszystkie możliwe po kolei.
Ja wpisałem w ten sposób, nie wiem czy dobrze, oczywiście zakończone niepowodzeniem ( złe hasło ):

Kod: Zaznacz cały

cryptsetup luksOpen --cipher aes-xts-plain64 /dev/sdc1 /dev/mapper/luks-[UUID]
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Key-Slot Checker Tool mierzy entropię klucza dla poszczególnych slotów LUKSa. Jest to tzw. znormalizowana entropia Shannona, która nie zależy od długości badanych danych. Dane idealnie losowe mają entropię 1 (całkowita przypadkowość), tyle się oczywiście nie uda osiągnąć, ale np. w moim przypadku ma wartość zbliżoną do 0,92. Zdaniem autora wartość poniżej 0,85 jest oznaką uszkodzenia. Pytanie, na ile to prawda w każdym przypadku, ale znając reputację Arno Wagnera można to przyjąć. Wartość 0,57 jest zastanawiająco niska.

Niestety wygląda na to, że jednak coś jest uszkodzone. Dla pewności bym obejrzał sobie cały klucz slotu zero od 0x1000 do 0x21000 np za pomocą

Kod: Zaznacz cały

hd /dev/sdc1 | less
jak znajdziesz tam coś, co nie wygląda losowo, to już wiesz, że klucz jest bezużyteczny.

Obawiam się, że skończyły mi sie pomysły, może ktoś inny na coś wpadnie. Przy okazji wg mojej wiedzy luksOpen odczytuje cipher mode z nagłówka i nie da się wymusić jego zmiany.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Zapewne ja coś źle robię, ale po wpisaniu:

Kod: Zaznacz cały

hd /dev/sdc1 | less
Wyświetla mi się mniej więcej coś takiego:

Kod: Zaznacz cały

(END)
Więc zrobiłem trochę inaczej. 0x1000(hex) => 4096(dec). Przedział <0x1000 ; 0x21000> ma długość 0x20000(hex) => 131072(dec).

Kod: Zaznacz cały

hexdump /dev/sdc1 -C -s 4096 -n 131088 >> dump.txt
Do 131072 dodałem 16, żeby mieć pełną ostatnią linijkę.
Zawartośc dump.txt ( 4 pierwsze linijki i 4 ostatnie ).

Kod: Zaznacz cały

00001000  28 bf 53 d2 2a 1c c0 0d  45 63 7c c3 76 30 95 e8  |(.S.*...Ec|.v0..|
00001010  a3 69 46 cf 30 57 49 bb  a4 e5 43 c2 c3 90 69 9e  |.iF.0WI...C...i.|
00001020  3c be fc 7a 51 87 f5 ce  3b 06 31 3f 2d ca 11 3c  |<..zQ...;.1?-..<|
00001030  91 d7 4a 27 21 e3 a9 1b  c2 ce cb 31 1a d6 19 4e  |..J'!......1...N|
.......................tu cała reszta.......................|................|
00020fd0  00 00 07 00 00 00 00 00  00 00 00 00 00 00 1a e3  |................|
00020fe0  0f 00 f8 07 1f 00 f8 07  20 1e f8 07 00 80 00 20  |........ ...... |
00020ff0  00 00 07 00 00 00 00 00  00 00 00 00 00 00 c1 43  |...............C|
00021000  00 00 00 08 10 00 00 08  20 00 00 08 e0 5f 00 20  |........ ...._. |
00021010
Daj tylko znać czy to mniej więcej o to chodziło. Ale jak patrze się w to co mi wyszło to nie widzę tam żadnych danych, które przypomniały by mi dane nie losowe. Ale po twoim poprzednim komentarzu wiem przynajmniej na czym polega działanie tego Ket Slot Cheker-a ( w sensie ogólnym ).
OS : Fedora 20
infort
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 204
Rejestracja: 19 paź 2010, 02:13
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Re: Partycja LUKS i diskpart->clean

Post autor: infort »

Sposób wylistowania danych jest dowolny, o to właśnie chodziło. Troszkę dużo powtórzonych bajtów o wartości zero na końcu klucza, ale nie umiem powiedzieć czy to jest nasz problem.
Skoro udało się za pierwszym razem zamontować partycję pod FreeOTFE to czy próbowałeś ponownie? Jesli się nie udaje i wyrzuca błąd hasła/klucza to masz praktycznie pewność, że nie jest to problem oprogramowania cryptsetup ale uszkodzenia klucza slotu 0. Czyli pomiędzy pierwszym otwarciem a ponownymi próbami coś się schrzaniło. Dlatego zwykle jak dane są ważne, robi się cyfrową kopię dysku i na niej się eksperymentuje.
Toshiba C850 i3-3210M 4GB RAM, Intel HD4000, Ubuntu 14.04
Samsung N145 Lubuntu 14.04

www.bezpieczneubuntu.pl
glonik
Piegowaty Guziec
Piegowaty Guziec
Posty: 16
Rejestracja: 08 mar 2014, 20:07
Środowisko graficzne: Xfce
Architektura: x86_64

Re: Partycja LUKS i diskpart->clean

Post autor: glonik »

Ok, myślę, że nadszedł już czas, aby się pogodzić z faktem utraty danych. Mam nauczkę na przyszłość, aby robić kopie najważniejszych danych, a co najmniej kopie nagłówka. A nawet jeśli nic z tego nie wyszło to może komuś ten wątek się przyda.

Wielkie dzięki infort, bez twojej pomocy pewnie miesiąc temu dałbym już sobie z tym spokój, a to, że nie wyszło to tylko moja winna, w którymś momencie zamontowałem to przez FreeOfte, no ale kombinowałem dalej.
Jeszcze raz dzięki i pozdrawiam.
OS : Fedora 20
ODPOWIEDZ

Wróć do „Bezpieczeństwo Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość