Защита на данните в облака посредством криптиране

У повечето хора съществува голямо безпокойство относно това дали да съхраняват данните си в облака или не, защото смятат че не е токова сигурно както ако ги съхраняват на собствени физически сървъри. Въпреки че има известна истина в това твърдение, в зависимост от вашата юрисдикция това може да важи или да не важи за вас. Ако използвате незащитен сървър, няма значение дали той е в мазето ви или в облака, те са еднакво уязвими.

(Ако искате да научите как да съхраните вашите данни защитени, ние публикувахме статия, имаща за цел да разясни защо и как данните ви са на сигурно място в нашия облак – както от техническа, така и от правна гледна точка).

В тази статия ще ви дадем насоки за това как вашите данни могат да са в безопасност, в случай че решите да ги преместите в облака. Основната стратегия е криптирането на диска. Тъй като нашият облак ви дава много по-голям контрол и гъвкавост в сравнение с други облаци, ще разгледаме два различни типа криптиране: криптиране на раздел от диск и пълно дисково криптиране.

Предвид сложността на тази тема няма да навлизаме в много детайли за различните алгоритми за криптиране, а по-скоро ще се съсредоточим върху общия план.

Криптиране на раздел от диска

Най-удобната форма на криптиране е криптирането на определен раздел от диска. Ако имате някакви данни на съществуваща виртуална машина, лесно можете да добавите криптиран диск или криптиран раздел от диск. След това, когато откачите криптирания раздел от сървъра (или изключите захранването на сървъра), данните ви ще бъдат в безопасност, стига да не съхранявате ключа за шифроване на сървъра.

Недостатъкът на този тип криптиране обаче е, че ако някой проникне във вашият сървър по някакъв начин, има възможност да види вашия ключ (и / или данни) следващия път, когато закачите диска на сървъра.

Има няколко различни начина за криптиране на данни. Последните версии на Ubuntu например ви дават възможност да криптирате вашата “home” директория.

Най-общо казано, за да използвате този тип криптиране ви трябва или диск image (например голям файл на диска или т.н. “sparse image”), или част от диск. Има плюсове и минуси и за двата подхода, но ние предпочитаме да поставяме данните на отделен диск, тъй като това е по-логичната структура и дава възможност за лесно монтиране на диск или част от диск на отделен сървър.

В примера по-долу ще използваме Ubuntu 14.04, който работи на нашия облак с два диска: един за операционната система (‘/dev/vda’) и един за съхранението на важните данни (‘/dev/vdb’).

Използване на Cryptsetup

Ако работите на Ubuntu, най-лесният начин за настройване е чрез cryptsetup. Ако приемем, че диска, който искате да криптирате е ‘/dev/vdb’ (който би трябвало да е празен), ще трябва да изпълните следната команда:

[bash light=“true“] $ sudo apt-get install cryptsetup
$ sudo cryptsetup –verbose –verify-passphrase luksFormat /dev/vdb
$ sudo cryptsetup luksOpen /dev/vdb enc_disk
$ sudo mkfs.ext4 /dev/mapper/enc_disk
$ sudo mount /dev/mapper/enc_disk /mnt
[/bash] Уверете се, че сте демонтирали дяла/диска, когато сте готови.

Следващият път, когато искате да монтирате този дял/диск, просто изпълнете тази команда:
[bash light=“true“] sudo cryptsetup luksOpen /dev/vdb enc_disk
sudo mount /dev/mapper/enc_disk /mnt
[/bash]

Използване на Truecrypt

Truecrypt все още е мощен инструмент за криптиране. Truecrypt ще прължи да се използва докато не бъде доказано, че е несигурен (Is TrueCrypt Audited Yet?).

Докато версията на официалния сайт вече не поддържа създаването на определен раздел, нашите приятели от TrueCrypt.ch (хостнати при КлаудСигма) все още пазят копие на версия 7.1а. Това е последната версия, която поддържа създаване на определен раздел.

Тъй като ние използваме TrueCrypt на работещ сървър, ще използваме основната му версия. Използването на TrueCryptе може да бъде малко объркващо, тъй като предоставя много голям набор от опции за криптиране, които бихте могли да зададете. ArchWiki и TrueCrypt User Guide трябва да ви дадат добра представа за това, което най-добре отговаря на нуждите ви.

Създаване на раздел
[bash light=“true“] $ sudo truecrypt –volume-type=normal -c /dev/vdb
Encryption algorithm:
1) AES
2) Serpent
3) Twofish
4) AES-Twofish
5) AES-Twofish-Serpent
6) Serpent-AES
7) Serpent-Twofish-AES
8) Twofish-Serpent
Select [1]:

Hash algorithm:
1) RIPEMD-160
2) SHA-512
3) Whirlpool
Select [1]:

Filesystem:
1) None
2) FAT
3) Linux Ext2
4) Linux Ext3
5) Linux Ext4
Select [2]: 5

Enter password:
Re-enter password:

Enter keyfile path [none]:

Please type at least 320 randomly chosen characters and then press Enter:

Done: 100.000% Speed: 120 MB/s Left: 0 s

The TrueCrypt volume has been successfully created.
[/bash]

Това беше доста просто. Както можете да видите, ние решихме да използваме обикновено AES криптиране с EXT4. Това върши работа в повечето случаи.

Монтиране на устройството

След това монтираме устройството:
[bash light=“true“] $ sudo truecrypt –mount-options=nokernelcrypto /dev/vdb /mnt
[/bash]

Демонтиране на устройството

Когато сте готови с диска, уверете се, че го демонтирате правилно като използвате следната команда:
[bash light=“true“] $ sudo truecrypt -d
[/bash]

Пълно дисково криптиране (FDE)

Както беше показано по-рано, използвайки криптиран дял или диск оставя вашият сървър уязвим за някои атаки. Използването на пълното дисково криптиране решава този проблем, тъй като пропуска паролата, която трябва да бъде въведена при зареждане. Следователно, няма начин нарушител да види паролата ви за сървъра (тъй като въвеждате паролата си тогава, когато не протичат никакви потребителски сесии). Също така, с нашия интерфейс можете да получите достъп до сървъра, използвайки криптирана VNC връзка и така да избегне man-in-the-middle атаки.

Пълното дисково криптиране в публичен облак е по-скоро рядкост, тъй като изисква голям контрол върху виртуалната машина, отколкото повечето публични облаци предлагат. За щастие, създаване на пълно дисково криптиране в CloudSigma е напълно възможно и лесно.

За криптиране ще използваме вграденото в Ubuntu криптиране – LVM. Има много други опции, но това е може би един от най-лесните варианти, с които можете да започнете.

Подобно на последния пример и тук ще използваме Ubuntu 14.04. Въпреки това няма да използваме някои от предварително инсталираните системи, а по-скоро се ще инсталима Ubuntu от нулата с помощта на инсталационния диск (да, това също е възможно в нашия облак).

След като стартирате сървъра и на екрана се появи инсталационния прозорец, просто продължете по стандартния начин. Когато се появи въпрос дали искате да криптирате вашия сървър, изберете “не” и продължете.

Когато стигнете до екрана по-долу, се уверете, че сте избрали „Use entire disk and set up encrypted LVM“.

use_entire_disk_and_set_up_encrypted_lvm

Сега въведете паролата. Ще трябва да въвеждате тази парола всеки път, когато спирате или рестартирате сървъра си.

set_lvm_passphrase

Когато сте завършили инсталацията си и се опитате да се логнете на сървъра за първи път, ще забележите, че ще трябва да въведете парола.

fde_on_first_boot

Това е! Сега вече имате сървър с пълно дисково криптиране качен на облака.

Съвет относно производителността

Докато криптирането е чудесен начин да защитите вашите данни, то това не е напълно безплатно. Всеки път когато данните се четат или се пише върху тях се получава overhead на криптирания диск. Размерът на този overhead се определя до голяма степен от криптирането, което използвате. В TrueCrypt, например, имате някоко възможности за избор. Основното е да се определели колко важни са данните и до колко overhead-а си заслужава. Ако това е просто диск, върху който четете или пишете време на време, то тогава overhead-а може и да си струва, но ако това е нещо, което често използвате, то тогава overhead-а не си заслужава.

Заключение

Както е посочено в началото на статията, криптирането е много сложна тема. Този пост е само за цел да ви насочи в правилната посока. Ако наистина искате да защитите вашите данни, препоръчваме ви да почетете повече на тази тема, за да прецените кой точно алгоритъм и кои инструменти ще са ви необходими, за да постигнете целите си.

Също така, имайте предвид, че когато използвате криптиране (и двата типа) сте по-уязвим по отношение на прекъсванията в облака. Макар, че нашата цел е да поддържаме всички хостове в максимална производителност по всяко време, то понякога се случва те да паднат и виртуалните машини да се рестартират. Ако използвате частично криптиране за вашия сървър (или използвате пълно криптиране на диска), ще трябва ръчно да влезете в настройките на сървъра и да го върнете обратно към работещо състояние. Следователно, всяка криптирана настройка за съхранение трябва да бъде свързана с мониторинг софтуер, за да се гарантира правилното възстановяване след прекъсване. За тази цел препоръчваме две много добри опции в лицето на Pingdom (за основен мониторинг) и New Relic (за по-детайлен мониторинг).

About Viktor Petersson

Former VP of Business Development at CloudSigma. Currently CEO at WireLoad and busy making a dent in the Digital Signage industry with Screenly. Viktor is a proud geek and loves playing with the latest technologies.