Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-11-20 13:44:47

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Przepis na szyfrowane dane w Dropboxie

Na przykładzie katalogu z konfiguracją pidgina. Dzięki temu możemy np. synchronizować kilka instancji komunikatora pomiędzy komputerami.

1. Wyłaczamy pidgina, backupujemy konfigurację:

Kod:

$ pkill pidgin && mv /home/user/.purple /home/user/.purple.bak

2. Tworzymy pusty folder w którym będziemy montować nasz odszyfrowany zasób:

Kod:

$ mkdir -p /home/user/.purple

3. Tworzymy pusty folder na Dropboxie z którego będziemy montować zaszyfrowane dane:

Kod:

$ mkdir -p /home/user/Dropbox/pidgin

4. Instalujemy encfs-a:

Kod:

$ apt-get update && apt-get install encfs

5. Montujemy encfs-a

Kod:

$ encfs /home/user/Dropbox/pidgin /home/user/.purple
?>#[enter]
New Encfs Password: tajne_haslo
Verify Encfs Password: tajne_haslo

6. Weryfikujemy czy dobrze zamontowaliśmy zasób:

Kod:

$ mount | grep purple
encfs on /home/user/.purple type fuse.encfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)

7. Kopiujemy pliki konfiguracyjne Pidgina:

Kod:

$ cp /home/user/.purple.bak/* /home/user/.purple -R

8. Monitorujemy, czy Dropbox zsynchronizował wszystkie pliki:

Kod:

$ dropbox status
Idle

9. Sprawdzamy czy dane faktycznie są szyfrowane:

Kod:

$ ls /home/user/Dropbox/pidgin/
2667jhX5,NnUIFpg4JMp69R,                        mTUN8bFH8Hv9CCcY4lBwAPov
6nAws8S9i1fj4cEniqcj,w,P                        NDCme3UnSxVqle7R4fmX1T-v
75bUcv3T6LCX1n9Iaxcnn-vK                        oWH5y3oLBIuyojl4Z9UrxjWu
9cXnkPknTG,N0Pshvq-Gq3lh                        pu51Dal3LG6aYXM8iQV5334W
HZJuqzNzSVVMsKZHVXid2jmA                        u7x,Ge80kcDlCrXtq7pYHelhO7g-2xlYl5tK4XOO6EqmB,
,ILrW7iBYDJ-bYGxGirbccFD                        V2RUpnC5s3NbLsVjOjglPW0Q
jXRnl7,u3kidvlK40BodH6hl                        WhbcfnYyE5txresL0HnyYDEU
m12yJPMZAsTWqTApDJUFENngYSFMuCk9e,P0XcRtw6AiR-  ,YVva6eVCS27VVXCgi81MJFQ

10. Odmontowujemy zasób:

Kod:

$ fusermount -u /home/user/.purple

11. Do automatycznego montowania przy starcie, potrzebny będzie wrapper, który zapisujemy w /root/bin/encfs:

Kod:

#!/bin/sh
grep -q "encfs $2 fuse.encfs" /etc/mtab || grep "$1" /root/bin/encfs_password | sed "s/.*://g" | /usr/bin/encfs -S --public $@

12. Plik z hasłem w poniższym formacie zapisujemy w /root/bin/encfs_password:

Kod:

$ cat /root/bin/encfs_password
/home/michal/Dropbox/pidgin:tajne_haslo

13. Do /etc/fstab dopisujemy:

Kod:

/root/bin/encfs#/home/user/Dropbox/pidgin /home/user/.purple fuse defaults 0 0

14. Montujemy szyfrowany zasób przez fstab-a:

Kod:

# mount -a

15. Uruchamiamy pidgina, cieszymy się z działającej i bezpiecznej synchronizacji danych przez Dropboxa:

Kod:

$ pidgin &

16. Warto zapoznać się z działaniem narzędzia encfsctl. Dzięki niemu można: uzyskać informacje o rodzaju szyfrowania zadanego kontenera, zmienić hasło zaszyfrowanego zasobu, zaszyfrować/zdeszyfrować zadany plik w locie.

Kod:

$ man encfsctl

Ostatnio edytowany przez megabajt (2013-11-23 16:10:32)

Offline

 

#2  2013-11-20 15:27:30

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

Ja sobie to przetestuje jak będę miał chwilę czasu i obadam. :)

Offline

 

#3  2013-11-20 15:43:20

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: Przepis na szyfrowane dane w Dropboxie

Jedyny problem, jaki zauważyłem a korzystam już od dłuższego czaso, to trzeba pilnować aby była włączona zawsze tylko jedna instancja Pidgina. Gdy są dwie lub więcej, pidgin non stop zapisuje do tego samego pliku (np. prefs.xml lub blist.xml) przez co Dropbox tworzy kolejne kopie tego samego pliku. Trzeba tego pilnować i/lub wrzucić coś takiego do crona:

Kod:

* * * * *    root    find /home/user/Dropbox/pidgin -name "*conflicted\ copy*" -exec rm -rf {} \;

Offline

 

#4  2013-11-20 16:13:10

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

To standard, tak samo się dzieje przy używaniu kontenera truecrypt na dropboxie przez 2 osoby w tym samym czasie. Przy czym jeśli zaczniesz tworzyć takie pliki przez tego typu zachowanie to każdy z nich ma inną treść, w zależności od zmian wprowadzonych w każdej instancji i chyba wiesz co niesie ze sobą takie działanie oraz usuwanie tych plików. Dlatego lepiej pilnować by była otwarta tylko jedna instancja w tym samym czasie, inaczej możesz mieć np. dziury w historii rozmów itp.

Offline

 

#5  2013-11-23 03:08:23

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

Tworzę właśnie sobie setup ale:

Kod:

morfik:~/Desktop$ encfs /media/Server/Dropbox/zaszyfrowane_sync/ /home/morfik/Desktop/testowe_zaszyfrowane/
Creating new encrypted volume.
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.
?> x     

Manual configuration mode selected.
The following cipher algorithms are available:
1. AES : 16 byte block cipher
 -- Supports key lengths of 128 to 256 bits
 -- Supports block sizes of 64 to 4096 bytes
2. Blowfish : 8 byte block cipher
 -- Supports key lengths of 128 to 256 bits
 -- Supports block sizes of 64 to 4096 bytes

Enter the number corresponding to your choice: 1

Selected algorithm "AES"

Please select a key size in bits.  The cipher you have chosen
supports sizes from 128 to 256 bits in increments of 64 bits.
For example: 
128, 192, 256
Selected key size: 256

Using key size of 256 bits

Select a block size in bytes.  The cipher you have chosen
supports sizes from 64 to 4096 bytes in increments of 16.
Or just hit enter for the default (1024 bytes)

filesystem block size: 4096

Using filesystem block size of 4096 bytes

The following filename encoding algorithms are available:
1. Block : Block encoding, hides file name size somewhat
2. Null : No encryption of filenames
3. Stream : Stream encoding, keeps filenames as short as possible

Enter the number corresponding to your choice: 1

Selected algorithm "Block""

Enable filename initialization vector chaining?
This makes filename encoding dependent on the complete path, 
rather then encoding each path element individually.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: yes

Enable per-file initialization vectors?
This adds about 8 bytes per file to the storage requirements.
It should not affect performance except possibly with applications
which rely on block-aligned file io for performance.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: yes

Enable filename to IV header chaining?
This makes file data encoding dependent on the complete file path.
If a file is renamed, it will not decode sucessfully unless it
was renamed by encfs with the proper key.
If this option is enabled, then hard links will not be supported
in the filesystem.
The default here is No.
Any response that does not begin with 'y' will mean No: yes

Enable block authentication code headers
on every block in a file?  This adds about 12 bytes per block
to the storage requirements for a file, and significantly affects
performance but it also means [almost] any modifications or errors
within a block will be caught and will cause a read error.
The default here is No.
Any response that does not begin with 'y' will mean No: yes

Add random bytes to each block header?
This adds a performance penalty, but ensures that blocks
have different authentication codes.  Note that you can
have the same benefits by enabling per-file initialization
vectors, which does not come with as great of performance
penalty. 
Select a number of bytes, from 0 (no random bytes) to 8: 0
Enable file-hole pass-through?
This avoids writing encrypted blocks when file holes are created.
The default here is Yes.
Any response that does not begin with 'n' will mean Yes: 
yes


Configuration finished.  The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/aes", version 3:0:2
Filename encoding: "nameio/block", version 3:0:1
Key Size: 256 bits
Block Size: 4096 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.
File holes passed through to ciphertext.

-------------------------- WARNING --------------------------
The external initialization-vector chaining option has been
enabled.  This option disables the use of hard links on the
filesystem. Without hard links, some programs may not work.
The programs 'mutt' and 'procmail' are known to fail.  For
more information, please see the encfs mailing list.
If you would like to choose another configuration setting,
please press CTRL-C now to abort and start over.

Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism.  However, the password can be changed
later using encfsctl.

New Encfs Password: 
Verify Encfs Password: 
fuse: failed to exec fusermount: Permission denied
fuse failed.  Common problems:
 - fuse kernel module not installed (modprobe fuse)
 - invalid options -- see usage message

To dziwne, bo:

Kod:

$ lsmod | grep -i fuse
fuse                   61026  1 
$ id
uid=1000(morfik) gid=1000(morfik) groups=1000(morfik),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),115(fuse),122(vboxusers),5001(dane)

Ale fusermount wyskakuje tylko na root.

Kod:

root:~# ls -al /bin/fusermount
-rwsr-xr-- 1 root pulse 31K Mar 10  2013 /bin/fusermount*

WTF? Co tam robi grupa pulse? xD Też tak masz? Tam chyba powinno być fuse w grupie, to nie bug to ficzer. :]

Dociągnąłem w każdym razie wersję z experimentala i tam już jest normalnie, nie wiem czy to problem lokalny czy też tej wersji pakietu, jak coś to daj znać. I dodaj też wzmianki o instalacji fuse + dodaniu usera do grupy fuse, inaczej będzie musiał robić wszystko z roota.

Ale już mi się podoba:

Kod:

morfik:~/Desktop$ ls -al /media/Server/Dropbox/zaszyfrowane_sync/ /home/morfik/Desktop/testowe_zaszyfrowane/
/home/morfik/Desktop/testowe_zaszyfrowane/:
total 12K
drwxr-xr-x 2 morfik morfik 4.0K Nov 23 02:11 ./
drwxr-xr-x 8 morfik morfik 4.0K Nov 23 01:45 ../
-rwxr-xr-x 1 morfik morfik  896 Jul  4 12:02 skrypt*

/media/Server/Dropbox/zaszyfrowane_sync/:
total 16K
drwxr-xr-x 2 morfik morfik 4.0K Nov 23 02:11 ./
drwx------ 8 morfik morfik 4.0K Nov 23 01:33 ../
-rw-r--r-- 1 morfik morfik 1.1K Nov 23 01:43 .encfs6.xml
-rwxr-xr-x 1 morfik morfik  912 Jul  4 12:02 CNdpIAJkpe0bPsDjemJ-8986*

Kilka uwag:

Linijka w pliku powinna wyglądać tak:

Kod:

/media/Server/Dropbox/zaszyfrowane_sync/:haslo

bez [ ] inaczej wyrzuci:

Kod:

# mount -a
Error decoding volume key, password incorrect

Druga sprawa, czemu w fstab musi być # między ścieżkami?

Kod:

/home/morfik/Desktop/mount_fuse#/media/Server/Dropbox/zaszyfrowane_sync /home/morfik/Desktop/testowe_zaszyfrowane  fuse defaults 0 0

I chyba ostatnia jaka mi przychodzi do głowy — jeśli zsynchronizuję sobie drugą maszynę to część kroków trzeba powtórzyć na każdej podłączonej maszynie. Trzeba mieć skrypt hasło i wpis w /etc/fstab , inaczej nic z tym się nie zrobi/ xD

Mi wpadł inny ciekawy pomysł jak to ogarnąć i może tego nie będę używał do komunikatora, ale porównam sobie to z kontenerem luksa i zobaczę które jest wygodniejsze, bo truecrypt trochę był niedorobiony jakby nie patrzeć ale jeśli będzie to wyglądało tak jak myślę, że będzie, to uprości sporo robotę i bardziej zabezpieczy dane, bo nie będzie potrzeba zewnętrznych plików z hasłami i skryptów by automatycznie otworzyć kontener. Całość będzie zaszyfrowana, montowana na starcie bez dodatkowego hasła (o ile ma się zaszyfrowany system) i nie będzie żadnych przecieków informacji, bo w tym przypadku jakby nie patrzeć jest znana liczba plików, dobrze chociaż, że nazwy są zaszyfrowane i pliki nieco zmienione (przynajmniej w moim setupie). :)

Co do samego encfs jeszcze — istnieją dwa inne sposoby na montowanie i do tego prostsze. Jeden wykorzystuje gnome-keyring — więcej do poczytania tutaj https://bitbucket.org/obensonne/gnome-encfs/src , a drugi mechanizm pam — paczka libpam-encfs, tego drugiego jeszcze nie obadałem, ale gnome-keyring działa wyśmienicie.i montuje automatycznie po zalogowaniu się usera.

Udało mi się też wykorzystać pam, choć tutaj trochę dziwacznie to działa. Bo jeśli katalog ma to samo hasło, wtedy przy logowaniu np w lightdm się podaje jedno hasło i ono nas loguje i do systemu i otwiera katalog, ale jak katalog ma inne hasło, to trzeba w okienku logowania do systemu podawać dwa hasła, przy czym nie wiadomo które a i tak po podaniu właściwego wyrzuca, że jest niewłaściwe. xD Ale po tym podanie drugiego hasła, loguje do systemu.

Gdzieś mi się tam przez oczy przewineło gnome-keyring, da radę jakoś pam nauczyć by korzystał z keyringa, tak by to działało na takiej zasadzie, wpisujemy hasło do logowania, włazimy do systemu, wyrzuca okienko, blabla potrzebne hasło by zamontować zaszyfrowany katalog, klikamy zapisz hasło (w keyringu) i mamy z głowy? Od tej pory automatycznie sobie system otworzy katalog korzystając z pam i gnome-keyringa, da radę coś takiego?

Ostatnio edytowany przez morfik (2013-11-23 05:28:12)

Offline

 

#6  2013-11-23 10:10:21

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: Przepis na szyfrowane dane w Dropboxie

[quote=morfik]WTF? Co tam robi grupa pulse? xD Też tak masz? Tam chyba powinno być fuse w grupie, to nie bug to ficzer. :][/quote]

Kod:

ls -la `which fusermount`
-rwsr-xr-x 1 root fuse 30864 Jan  2  2013 /bin/fusermount

U mnie jest ok, na wszystkich komputerach

[quote=morfik]Dociągnąłem w każdym razie wersję z experimentala i tam już jest normalnie, nie wiem czy to problem lokalny czy też tej wersji pakietu, jak coś to daj znać. I dodaj też wzmianki o instalacji fuse + dodaniu usera do grupy fuse, inaczej będzie musiał robić wszystko z roota.[/quote]
Wyszedłem z założenia, że trzeba edytować fstab-a więc root i tak jest potrzebny :)


[quote=morfik]Linijka w pliku powinna wyglądać tak:

Kod:

/media/Server/Dropbox/zaszyfrowane_sync/:haslo

[/quote]
Poprawione

[quote=morfik]Druga sprawa, czemu w fstab musi być # między ścieżkami?[/quote]
Bo inaczej nie działa :)

Jeżeli chodzi o inne sposoby montowania, to wydaje mi się, że fstab jest najbardziej uniwersalny. Gnome-keyring zadziała, ale na tylko na gnomo-podobnych tworach i pod warunkiem, że masz x-y w ogóle :)

Ostatnio edytowany przez megabajt (2013-11-23 10:22:41)

Offline

 

#7  2013-11-23 14:41:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

[quote=megabajt]Gnome-keyring zadziała, ale na tylko na gnomo-podobnych tworach i pod warunkiem, że masz x-y w ogóle :)[/quote]
Jakby nie patrzeć, dziś wszyscy mają x-y, a gnome-keyring nie jest też znowu tylko dla gnome. Mi na openboxie bardzo dobrze się sprawuje i sporo ułatwia życie.

A co do samego fusermount, zainstalowałem ponownie wersję z testinga i teraz jest ok, nie mam pojęcia czemu wtedy tam była grupa pulse. xD

I jeszcze taka sprawa. Napisz coś o narzędziu encfsctl , za jego pomocą można zmienić hasło do katalogu itp.

Ostatnio edytowany przez morfik (2013-11-23 15:10:41)

Offline

 

#8  2013-11-23 16:06:30

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: Przepis na szyfrowane dane w Dropboxie

[quote=morfik]Jakby nie patrzeć, dziś wszyscy mają x-y, a gnome-keyring nie jest też znowu tylko dla gnome. Mi na openboxie bardzo dobrze się sprawuje i sporo ułatwia życie.[/quote]
Na xfce też go używam, ale posiadacze KDE będą niepocieszeni ;)

Offline

 

#9  2013-11-23 16:52:50

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

Oni tam chyba mają jakieś własne kwalety czy coś, nie szukałem info o tym, pewnie też się da jakoś to ogarnąć.

Ja sobie teraz pracuję nad luksem, i póki co wszystko idzie zgodnie z planem. xD

Offline

 

#10  2013-11-24 20:20:19

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

Ogarnąłem w końcu tego luksa z dropboxem -- http://dug.net.pl/tekst/253/dropbox_w_kontenerze_luks Zobacz czy ci to ułatwi życie. xD

Offline

 

#11  2013-11-24 21:38:53

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: Przepis na szyfrowane dane w Dropboxie

A jeżeli kontener będzie duży i zapełnimy go duża ilością danych, to czy zmiana pojedynczego pliku w nim, będzie powodować długą synchronizację do chmury?

Offline

 

#12  2013-11-24 22:35:39

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Przepis na szyfrowane dane w Dropboxie

Już raz o tym pisałem. :)

Dropbox dzieli pliki na kawałki 4 MiB i tworzy ich sumy kontrolne, które przechowuje w bazie danych. Zatem nasz kontener będzie miał 1000 części po 4 MiB. W przypadku modyfikacji którejkolwiek części, zostanie ona przesłana przez sieć. Nasuwa się pytanie - co w przypadku gdy wrzucimy do kontenera plik, powiedzmy, 1 MiB? Na dobrą sprawę zostanie przesłane nieco ponad 1 MiB danych. Czemu nie 4 MiB? Faktyczne dane zajmują 1 MiB, reszta części zostanie wypełniona zerami, a następnie wszystko zostanie skompresowane. Część części pliku - zawierającego zera (3 MiB) - po kompresji będzie zawierać mniej więcej tyle samo miejsca. Temu też zostanie przesłane przez sieć 1 MiB a nie 4 MiB, co bardzo odciąża łącza. Więcej na ten temat można poczytać na forum dropboxa - https://forums.dropbox.com/topic.php?id=97843.[/quote]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.012 seconds, 14 queries executed ]

Informacje debugowania

Time (s) Query
0.00015 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00112 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.15.228.171' WHERE u.id=1
0.00063 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.15.228.171', 1732593433)
0.00037 SELECT * FROM punbb_online WHERE logged<1732593133
0.00068 DELETE FROM punbb_online WHERE ident='185.191.171.16'
0.00075 DELETE FROM punbb_online WHERE ident='3.133.108.224'
0.00073 DELETE FROM punbb_online WHERE ident='3.22.70.169'
0.00067 SELECT topic_id FROM punbb_posts WHERE id=246543
0.00005 SELECT id FROM punbb_posts WHERE topic_id=24648 ORDER BY posted
0.00061 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24648 AND t.moved_to IS NULL
0.00007 SELECT search_for, replace_with FROM punbb_censoring
0.00231 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24648 ORDER BY p.id LIMIT 0,25
0.00071 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24648
Total query time: 0.00892 s