eCryptfs z Dropbox: należy ponownie zamontować, aby zmiany zsynchronizowane były widoczne

4

Eksperymentuję z użyciem eCryptfs na Dropbox i mam pewne problemy.

Mój system to GNU / Linux, a dokładniej openSUSE 12.2.

Moje ustawienia są następujące: skonfigurowałem dwa wystąpienia VirtualBox z uruchomionym openSUSE 12.2, nazwijmy je VM1 i VM2. Dropbox, jak zwykle, synchronizuje wszystko w ~ / Dropbox. Aby utworzyć konfigurację eCryptfs, wykonaj następujące czynności na obu maszynach wirtualnych:

mkdir -m 500 ~/ecryptfs_upper
mkdir -m 700 ~/Dropbox/ecryptfs_lower
sudo mount -t ecryptfs Dropbox/ecryptfs_lower/ ecryptfs_upper/

Konfiguruję eCryptfs za pomocą:

key type: passphrase
cipher: aes
key bytes: 16
plaintext passthrough: no
filename encryption: yes

Jeśli teraz przejdę do tworzenia pliku w ~ / ecryptfs_upper na VM1, będzie on poprawnie wyświetlany również na VM2. Jednak gdy zmienię ten plik na jednej maszynie wirtualnej, czasami (często, ale nie zawsze z jakiegoś powodu) nie będzie się aktualizować na drugiej maszynie wirtualnej.

Jeśli sprawdzę pliki źródłowe w ~ / Dropbox / ecryptfs_lower na dwóch maszynach wirtualnych, są one identyczne (sha256sum wytwarza ten sam skrót), więc Dropbox poprawnie je zsynchronizował. Ale odpowiednie pliki w ~ / ecryptfs_upper są nadal różne! Muszę umountować, a następnie ponownie zamontować eCryptfs, aby zmiany były wyświetlane poprawnie.

Problem polega na tym, że kiedy dropbox aktualizuje plik w dolnym katalogu eCryptfs, eCryptfs nie zauważa zmiany. Prawdopodobnie eCryptfs zakłada, że ​​wszystkie zmiany przejdą przez mount. W większości przypadków użycia jest to oczywiście uczciwe założenie, ale przy użyciu eCryptfs do szyfrowania zsynchronizowanego magazynu w chmurze, takiego jak Dropbox, jest to oczywiście duży problem.

Widziałem kilka osób opowiadających się za korzystaniem z eCryptfs z Dropbox, ale nie widziałem wspomnianego problemu. Czy ktoś wie o poprawce (na przykład sposobie wyłączenia pamięci podręcznej, z której korzysta eCryptfs), czy o jakiejś alternatywie dla eCryptfs, która nie cierpiałaby na ten problem?

Quantumboredom
źródło

Odpowiedzi:

3

Spójrz na encfs jako alternatywę dla eCryptfs. Problem nie dotyczy opisanego problemu.

Samouczek konfiguracji EncFS / Dropbox

polowanie
źródło
2
Wydaje się, że EncFS nie cierpi z powodu tego problemu, co czyni go bardziej odpowiednim do tego zadania. Znalazłem również github.com/timoc/encfsbox , który zapewnia ładny mechanizm obsługi konfliktów w kombinacji dropbox + EncFS, co czyni go naprawdę bardzo dobrym rozwiązaniem.
Quantumboredom
1
W systemach Windows, Mac i Mobile można użyć BoxCryptor, aby ułatwić dostęp do zaszyfrowanych danych.
polowanie
1
Należy pamiętać o słabościach kryptograficznych w EncFS, jeśli polega się na czymś krytycznym ( defuse.ca/audits/encfs.htm ). Trwają prace nad wersją 2.0, która może, ale nie musi, rozwiązać te problemy, ale jak dotąd nie wydano żadnych wydań.
darrend
3

Natknąłeś się na lukę projektową w eCryptfs w systemie Linux. Nie ma mechanizmu informującego eCryptfs o zmianie w pamięci podręcznej dolnej strony, więc nie wie, czy strona zmieniła się spod niej. Zmiana niższych zaszyfrowanych plików na aktywnym mocowaniu eCryptfs przypomina rodzaj odwracania bitów na urządzeniu blokowym, gdy jest zamontowany EXT4. EXT4 ma swój własny pomysł na temat stanu urządzenia blokowego, ponieważ zakłada, że ​​jest to jedyna rzecz, która zakłóca działanie urządzenia blokowego, a jeśli to się zmieni pod nim, sprawy mogą pójść dość szybko na południe.

Mike Halcrow
źródło
0

To nie jest rozwiązanie, ale jego rozwiązanie. Testowany na Linux Mint 17 i działa doskonale, ale powinien również działać na innych dystrybucjach Linuksa.

#! / bin / bash

export PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin"

xhome = $ {HOME}

# JAK
#
# Usuń poprzednią instalację Dropbox - wszystkie katalogi (~ / .dropbox, ~ / .dropbox-dist, ~ / Dropbox) oraz w wierszu poleceń:
#
# mkdir -p $ {HOME} /. mount / dropbox
# dd if = / dev / zero of = $ {HOME} /. mount / dropbox.img bs = 4K count = 2M # for 8GB
# mkfs.xfs $ {HOME} /. mount / dropbox.img # dla XFS, ale możesz użyć preferowanego FS, np. EXT4
# mkdir $ {HOME} / bin
#
# Ustaw ten skrypt na $ {HOME} / bin
#
# chmod 0755 $ {HOME} /bin/dropbox-mount.sh
#
# Dodaj do linii / etc / sudoers:
#
# YourUserName ALL = NOPASSWD: / bin / mount
#
# Uruchom ten skrypt: $ {HOME} /bin/dropbox-mount.sh
#
# chown (id -u) :( id -g) $ {HOME} /. mount / dropbox
#
# Następnie uruchom aplikację Dropbox i wybierz $ {HOME} /. Mount / dropbox / jako katalog podstawowy,
# Dropbox automatycznie utworzy $ {HOME} /. Mount / dropbox / Dropbox.
#
# WAŻNE
# Wyłącz autostart Dropbox w preferencjach Dropbox.
# Dodaj ten skrypt do automatycznego uruchamiania systemu (Ustawienia-> Aplikacje startowe)

xdropbox = ". mount / dropbox"
xdropbox_dir = "$ {xhome} / $ {xdropbox}"
xdropbox_img = "$ {xhome} / $ {xdropbox} .img"

if [`mount | grep -c "$ {xhome} / $ {xdropbox}" `-eq 0]; następnie
    sudo mount -o loop $ {xdropbox_img} $ {xdropbox_dir}
fi

sleep 10 && dropbox start &> / dev / null

wyjście 0
siewa001
źródło