Облако под защитой. Тестируем Cryptomator и другие шифрующие ФС - «Новости» » Интернет технологии
sitename
Huawei выпустила мобильный процессор Kirin 9010 — он оказался быстрее Qualcomm Snapdragon 8 Gen 1 - «Новости сети»
Huawei выпустила мобильный процессор Kirin 9010 — он оказался быстрее Qualcomm Snapdragon 8 Gen 1 - «Новости сети»
У Samsung Galaxy S21 стали появляться зелёные линии через весь экран - «Новости сети»
У Samsung Galaxy S21 стали появляться зелёные линии через весь экран - «Новости сети»
YouTube продолжается бороться с блокировкой рекламы. Очередь дошла до сторонних приложений - «Новости»
YouTube продолжается бороться с блокировкой рекламы. Очередь дошла до сторонних приложений - «Новости»
Cisco предупредила о масштабных брутфорс-атаках, нацеленных на VPN-сервисы - «Новости»
Cisco предупредила о масштабных брутфорс-атаках, нацеленных на VPN-сервисы - «Новости»
Первый сторонний магазин iOS-приложений стал доступен в Евросоюзе - «Новости сети»
Первый сторонний магазин iOS-приложений стал доступен в Евросоюзе - «Новости сети»
Серьезная уязвимость в PuTTY позволяет восстанавливать приватные ключи - «Новости»
Серьезная уязвимость в PuTTY позволяет восстанавливать приватные ключи - «Новости»
DDoS-атак на отрасль энергетики стало больше почти в 10 раз - «Новости»
DDoS-атак на отрасль энергетики стало больше почти в 10 раз - «Новости»
В России перестали работать пиратские версии AutoCAD и другого ПО Autodesk, но выход уже найден - «Новости сети»
В России перестали работать пиратские версии AutoCAD и другого ПО Autodesk, но выход уже найден - «Новости сети»
Опубликован эксплоит для свежей уязвимости в PAN-OS Palo Alto Networks - «Новости»
Опубликован эксплоит для свежей уязвимости в PAN-OS Palo Alto Networks - «Новости»
Meta✴ представила нейросеть Llama 3 — «самую способную открытую LLM на сегодняшний день» - «Новости сети»
Meta✴ представила нейросеть Llama 3 — «самую способную открытую LLM на сегодняшний день» - «Новости сети»
Как заработать денег, не выходя из дома, мы вам поможем с этим разобраться » Самоучитель CSS » Текст » Облако под защитой. Тестируем Cryptomator и другие шифрующие ФС - «Новости»

Действительно конфиденциальные облака


Су­щес­тву­ют облачные про­вай­деры, которые ничего не зна­ют и не хотят знать о том, какой имен­но кон­тент хра­нят на их сер­верах поль­зовате­ли. Широко известен про­вай­дер Mega, офи­циаль­ная полити­ка которо­го такова: «Дан­ные в сер­висе Mega зашиф­рованы на сто­роне кли­ента с исполь­зовани­ем алго­рит­ма AES. Пос­коль­ку Mega не зна­ет клю­чей шиф­рования заг­ружа­емых фай­лов, рас­шифро­вать и прос­мотреть их содер­жимое невоз­можно. Сле­дова­тель­но, ком­пания Mega не может нес­ти ответс­твен­ность за содер­жимое заг­ружен­ных фай­лов». В то же вре­мя Mega час­то исполь­зуют для того, что­бы поделить­ся фай­лами, для чего генери­рует­ся ссыл­ка; в ссыл­ке содер­жится ключ, поз­воля­ющий рас­шифро­вать содер­жимое фай­ла. Это поз­воля­ет пра­вооб­ладате­лям отсле­живать нелегаль­ный кон­тент и тре­бовать у Mega его уда­лить.



Под­ведем итог. Популяр­ные облачные про­вай­деры (Google, Apple, Microsoft, Dropbox, Amazon) сог­ласны хра­нить твои фай­лы, фотог­рафии и докумен­ты, и эти дан­ные дей­стви­тель­но зашиф­рованы; воп­рос лишь в том, кто кон­тро­лиру­ет клю­чи шиф­рования. Для боль­шей час­ти дан­ных клю­чи шиф­рования находят­ся в руках у самих облачных сер­висов, а это зна­чит, что дос­туп к содер­жимому как для них самих, так и для взлом­щика, получив­шего дос­туп к тво­им учет­ным дан­ным, совер­шенно проз­рачен. Имен­но эту проб­лему — кон­троль клю­чей шиф­рования — мы и будем решать.


 

Вариант решения: костыль OneDrive Personal Vault


OneDrive Personal Vault — в перево­де наз­ванный «лич­ный сейф OneDrive» — допол­нитель­ный уро­вень защиты, который Microsoft пред­лага­ет под­писчи­кам на Office 365 (без под­писки в «лич­ный сейф» мож­но помес­тить толь­ко три фай­ла). В рек­ламе говорит­ся: «Лич­ный сейф OneDrive защищен средс­тва­ми про­вер­ки лич­ности, бла­года­ря чему вы можете сох­ранять в обла­ке самые важ­ные фай­лы, не бес­поко­ясь о воз­можнос­ти несан­кци­они­рован­ного дос­тупа к ним». Microsoft пред­лага­ет хра­нить в нем самые важ­ные докумен­ты — «циф­ровые копии сво­его пас­порта, водитель­ско­го удос­товере­ния и дру­гих важ­ных докумен­тов». Обе­щает­ся «повышен­ная безопас­ность»: по мне­нию ком­пании, «лич­ный сейф уси­лива­ет и без того надеж­ную защиту OneDrive с помощью шиф­рования фай­лов, отсле­жива­ния подоз­ритель­ных дей­ствий, поис­ка вирусов, обна­руже­ния прог­рамм‑шан­тажис­тов и вос­ста­нов­ления дан­ных».


Очень мно­го кра­сивых слов, которые вызыва­ют доверие и желание защитить важ­ные дан­ные. Фак­тичес­ки же нам пред­лага­ется обыч­ная «запаро­лен­ная пап­ка», для дос­тупа к которой тебе пот­ребу­ется ввес­ти пароль от учет­ной записи (тот же самый пароль, который исполь­зует­ся для дос­тупа к основно­му хра­нили­щу OneDrive) и прой­ти про­вер­ку по методу двух­фактор­ной аутен­тифика­ции (ту же самую про­вер­ку, которая нуж­на… ну, ты понял).


Мы иссле­дова­ли безопас­ность «лич­ного сей­фа OneDrive» и не обна­ружи­ли никаких допол­нитель­ных механиз­мов защиты или кон­тро­ля дос­тупа. В статье «Ана­лиз дан­ных из учет­ных записей Microsoft» есть упо­мина­ние о том, что для вхо­да в «сейф» не тре­бует­ся даже пов­торной авто­риза­ции, дос­таточ­но обыч­ного токена дос­тупа в OneDrive.


Вы­вод: «лич­ный сейф OneDrive» име­ет отно­шение к мар­кетин­гу, рек­ламе и зараба­тыва­нию денег, но не име­ет ни малей­шего отно­шения к реаль­ной безопас­ности тво­их дан­ных. Все фай­лы, которые ты помес­тишь в «лич­ный сейф», будут точ­но так же дос­тупны и Microsoft, и любому зло­умыш­ленни­ку, получив­шему дос­туп к тво­ей учет­ной записи.


 

Вариант решения: криптоконтейнер в облаке


До появ­ления крип­тогра­фичес­ких фай­ловых сис­тем широко извес­тным в узких кру­гах был такой вари­ант защиты дан­ных от любопыт­ных глаз: дан­ные сох­раня­ют внутрь фай­ла крип­токон­тей­нера, который, в свою оче­редь, помеща­ют в син­хро­низи­руемую с обла­ком пап­ку. Этот вари­ант дает дей­стви­тель­но неп­робива­емую защиту, одна­ко и недос­татков у него хва­тает.


Нес­табиль­ная син­хро­низа­ция — основная проб­лема это­го решения. Как пра­вило, файл, содер­жащий крип­токон­тей­нер, дос­таточ­но объ­емный, и син­хро­низи­ровать его нуж­но не целиком, а по бло­кам. В то же вре­мя блоч­ная син­хро­низа­ция появи­лась в облачных сер­висах не так дав­но, при­чем в некото­рых из них она дос­тупна толь­ко для плат­ных поль­зовате­лей. В отсутс­твие блоч­ной син­хро­низа­ции при каж­дом добав­лении или изме­нении фай­ла в крип­токон­тей­нере весь кон­тей­нер целиком дол­жен будет син­хро­низи­ровать­ся с обла­ком; это мед­ленно и неудоб­но.


Вто­рая проб­лема — неудобс­тво исполь­зования на нес­коль­ких устрой­ствах: под­клю­чить крип­токон­тей­нер в обла­ке к смар­тфо­ну или план­шету будет труд­но, а поль­зовать­ся им воз­можно толь­ко в руч­ном режиме. В этот же пункт запишем неудобс­тво инкре­мен­тно­го резер­вно­го копиро­вания кон­тей­нера.


На­конец, мак­сималь­ный раз­мер фай­ла в раз­ных облачных сер­висах так­же огра­ничен и варь­иру­ется меж­ду 5 Гбайт и 250 Гбайт в зависи­мос­ти от типа учет­ной записи и, собс­твен­но, про­вай­дера.


Все эти проб­лемы реша­ет шиф­рование каж­дого фай­ла в отдель­нос­ти — и имен­но этим занима­ются крип­тогра­фичес­кие фай­ловые сис­темы.


 

Правильный вариант: криптографические файловые системы


Ре­шить проб­лему при­ват­ности и безопас­ности сох­раня­емых в обла­ке (и не толь­ко) фай­лов поз­воля­ет класс про­дук­тов, который мож­но оха­рак­теризо­вать тер­мином «крип­тогра­фичес­кие фай­ловые сис­темы». В отли­чие от шиф­рования дис­ка (к при­меру, LUKS, VeraCrypt или BitLocker), крип­тогра­фичес­кие фай­ловые сис­темы шиф­руют и рас­шифро­выва­ют дан­ные «на лету» на уров­не отдель­ных фай­лов и папок, сох­раняя при этом проз­рачность дос­тупа для самого поль­зовате­ля. Цель и смысл сущес­тво­вания крип­тогра­фичес­ких фай­ловых сис­тем — защитить фай­лы от несан­кци­они­рован­ного дос­тупа, если зло­умыш­ленник получит физичес­кий дос­туп к тво­ему дис­ку либо взло­мает твою облачную учет­ную запись.


С целью син­хро­низа­ции в обла­ко подой­дет далеко не каж­дая крип­тогра­фичес­кая фай­ловая сис­тема. Так, популяр­ная сре­ди поль­зовате­лей Linux сис­тема eCryptFS (о ней мы еще погово­рим) под­держи­вает­ся толь­ко в Linux; о сущес­тво­вании кли­ентов для Windows, а тем более для мобиль­ных плат­форм мне неиз­вес­тно. Фай­ловая сис­тема EncFS, работа­ющая по прин­ципу FUSE, обла­дает чуть более широкой сов­мести­мостью, но удоб­ной син­хро­низа­ции с обла­ком с мобиль­ных устрой­ств не будет все рав­но. Схо­жими недос­татка­ми обла­дают и дру­гие фай­ловые сис­темы FUSE, которых для Linux сущес­тву­ет доволь­но мно­го. Эти огра­ниче­ния обхо­дят, пожалуй, толь­ко два про­екта: бес­плат­ный (для дес­ктоп­ных ОС), дос­тупный в исходных кодах Cryptomator и плат­ный, дос­тупный по под­писке Boxcryptor.


 

Cryptomator или eCryptFS?


По­дой­дет ли eCryptFS, если тебе не нуж­на под­дер­жка дру­гих ОС? Или же выбор в любом слу­чае делать в поль­зу Cryptomator? Это воп­рос спор­ный, у той и дру­гой ФС есть силь­ные и сла­бые сто­роны.


 

Совместимость


Как уже упо­мина­лось, eCryptFS есть в Linux и отсутс­тву­ет на дру­гих плат­формах. Cryptomator дос­тупен прак­тичес­ки на всех рас­простра­нен­ных дес­ктоп­ных и мобиль­ных плат­формах.


 

Ограничения на длину имен файлов и папок


В боль­шинс­тве сов­ремен­ных ОС ты можешь исполь­зовать име­на фай­лов дли­ной до 255 зна­ков ASCII (при исполь­зовании сим­волов Unicode — мень­ше). Крип­тогра­фичес­кие фай­ловые сис­темы могут либо оста­вить име­на как есть (зло­умыш­ленник уви­дит наз­вания фай­лов), либо зашиф­ровать име­на фай­лов и папок (при этом мак­сималь­ная дли­на име­ни фай­ла будет мень­ше; для eCryptFS — 143 сим­вола ASCII), либо исполь­зовать допол­нитель­ные ухищ­рения, сох­раняя ори­гиналь­ное длин­ное имя фай­ла в метадан­ных шиф­рования или, как дела­ет Cryptomator, в отдель­ном фай­ле. Забегая впе­ред, добав­лю, что фай­лы с длин­ными име­нами Cryptomator помеща­ет в отдель­ные пап­ки, в которых соз­дает фай­лы contents.c9r (содер­жимое фай­ла) и name.c9s (его имя в зашиф­рован­ном виде).


 

Скорость работы


Ско­рость дос­тупа к зашиф­рован­ным пап­кам будет ниже, чем к обыч­ным; это в какой‑то мере ожи­даемо. Одна­ко в боль­шинс­тве сов­ремен­ных крип­тогра­фичес­ких фай­ловых сис­тем ско­рость дос­тупа к зашиф­рован­ным фай­лам пада­ет катас­тро­фичес­ки. Это свя­зано не столь­ко с самим фак­том шиф­рования (аппа­рат­ное уско­рение AES прак­тичес­ки не замед­ляет работу), сколь­ко с нак­ладны­ми рас­ходами. Для каж­дого фай­ла нуж­но соз­дать заголо­вок (eCryptFS) или файл‑ком­пань­он (Cryptomator), в котором будут сох­ранены метадан­ные шиф­рования; ког­да его откры­ваешь, соот­ветс­твен­но, этот заголо­вок или отдель­ный файл нуж­но про­читать и обра­ботать. Если речь идет об одном круп­ном фай­ле — падение про­изво­дитель­нос­ти отно­ситель­но невели­ко, но при работе с мно­жес­твом мел­ких (а фотог­рафии и докумен­ты отно­сят­ся как раз к таким) ско­рость дос­тупа пада­ет в разы. От это­го стра­дают как eCryptFS, так и Cryptomator; пос­ледний даже в нес­коль­ко боль­шей сте­пени, если речь идет о мно­жес­тве мел­ких фай­лов с длин­ными име­нами (напом­ню, для таких фай­лов соз­дают­ся отдель­ные пап­ки и фай­лы‑ком­пань­оны).


 

Возможность сменить пароль


В той реали­зации шиф­рования eCryptFS, которую исполь­зуют популяр­ные сетевые хра­нили­ща (в час­тнос­ти, Synology) невоз­можно быс­тро (без перешиф­ровки фай­лов) сме­нить пароль шиф­рования. В то же вре­мя в самой фай­ловой сис­теме механизм сме­ны пароля пре­дус­мотрен; через wrapped-passphrase пароль шиф­рования всей пап­ки мож­но успешно сме­нить. Про­изво­дите­ли сетевых хра­нилищ не исполь­зуют этот механизм. Так, в Synology DSM в качес­тве клю­ча шиф­рования берет­ся пароль поль­зовате­ля, а в качес­тве wrapping passphrase — фик­сирован­ный пароль 1Cryptomator CLI, рас­простра­няемый в виде фай­ла JAR, для запус­ка которо­го тре­бует­ся уже уста­нов­ленная Java 11. Нас­коль­ко удоб­но будет исполь­зовать такой инс­тру­мент в скрип­тах и на вир­туаль­ных сер­верах «Ама­зона», можешь пред­ста­вить сам.



 

Особенности Cryptomator


Соз­дание зашиф­рован­ной пап­ки в Cryptomator выг­лядит пре­дель­но прос­то. Вво­дим наз­вание кон­тей­нера, выбира­ем мес­то (по умол­чанию пред­лага­ется выбор меж­ду облачны­ми про­вай­дерами — в моем слу­чае это Dropbox и OneDrive, но под­держи­вают­ся и iCloud Drive, и Google Drive — и любой пап­кой на дис­ке) и ука­зыва­ем пароль. Соз­даем (или не соз­даем) ключ вос­ста­нов­ления.


Все, кон­тей­нер (зашиф­рован­ный мас­тер‑ключ и неболь­шой файл с метадан­ными) соз­дан. Теперь его мож­но смон­тировать. Для замеров про­изво­дитель­нос­ти я исполь­зовал локаль­ную пап­ку.


Ес­ли соз­дать зашиф­рован­ную пап­ку в Dropbox, то в обла­ке будет при­мер­но сле­дующее.


Облако под защитой. Тестируем Cryptomator и другие шифрующие ФС - «Новости»

Эти фай­лы поз­волят смон­тировать пап­ку на дру­гих устрой­ствах, в том чис­ле на смар­тфо­не, если ты уста­новишь туда при­ложе­ние Cryptomator. Сам же облачный сер­вис тво­их фай­лов не уви­дит — точ­нее, уви­дит их зашиф­рован­ные вер­сии.


Собс­твен­но, это то, ради чего все и затева­лось: Dropbox хра­нит твои фай­лы, но не может их рас­шифро­вать. Ты же смо­жешь уста­новить на телефон при­ложе­ние Cryptomator (при­ложе­ние Dropbox для дос­тупа к зашиф­рован­ной пап­ке не нуж­но, дос­таточ­но соз­дать при­вяз­ку в при­ложе­нии Cryptomator), ввес­ти пароль от зашиф­рован­ной пап­ки — и дан­ные ста­нут тебе дос­тупны.


О том, как при­вязать и исполь­зовать зашиф­рован­ные пап­ки с облачны­ми про­вай­дерами, рас­ска­зано в до­кумен­тации. Выг­лядит это при­мер­но как на скрин­шоте.


Фун­кций у Cryptomator на мобиль­ных устрой­ствах не так мно­го; нап­ример, в при­ложе­нии для iOS нет штат­ного спо­соба нас­тро­ить син­хро­низа­цию фото­аль­бома с зашиф­рован­ной пап­кой (в при­ложе­нии для Android такая воз­можность при­сутс­тву­ет). Тем не менее дос­туп к важ­ным фай­лам сох­раня­ется, а на компь­юте­ре таких огра­ниче­ний нет. Если же ты хочешь исполь­зовать сквоз­ное шиф­рование для син­хро­низа­ции фотог­рафий — пос­мотри в сто­рону сер­виса Mega.


Ин­терес­ная осо­бен­ность Cryptomator — обфуска­ция струк­туры катало­гов. Час­тично это чис­то тех­ничес­кое решение (для фай­лов с длин­ными име­нами соз­дают­ся отдель­ные катало­ги с дву­мя фай­лами — содер­жимым зашиф­рован­ного фай­ла и его зашиф­рован­ным име­нем), отчасти же сде­лано соз­натель­но, что­бы зат­руднить воз­можность иден­тифика­ции по чис­лу и раз­меру фай­лов в катало­ге. Я про­тес­тировал эту воз­можность; выг­лядит она так.


Со­дер­жимое незашиф­рован­ной пап­ки:


| WELCOME.rtf
|
---2016
+---07
|
IMG_2016_07_01_16_14_5600.jpg
|
IMG_2016_07_01_16_11_3900.jpg
|
IMG_2016_07_01_16_11_4400.jpg
|
IMG_2016_07_01_16_10_0700.jpg
|
IMG_2016_07_01_16_14_1500.jpg

|
+---01
|
IMG_2016_01_03_12_22_0900.jpg
|
IMG_2016_01_03_12_22_0200.jpg
|
IMG_2016_01_03_12_22_1100.jpg
|
IMG_2016_01_03_12_21_5300.jpg

|
+---04
|
IMG_2016_04_21_16_04_1500.jpg

|
+---05
|
IMG_2016_05_01_14_34_0600.jpg
|
IMG_2016_05_01_14_34_1000.jpg
|
IMG_2016_05_01_14_34_0200.jpg

|
---06
IMG_2016_06_03_18_01_0200.jpg
IMG_2016_06_03_18_00_4000.jpg

А вот как выг­лядит та же пап­ка, но в зашиф­рован­ном виде (здесь при­веде­на толь­ко часть лис­тинга):


| IMPORTANT.rtf
| masterkey.cryptomator
| vault.cryptomator
|
---d
+---4H
|
---TD3CWCFSTS7VUHGVTBDFPQZVO223U3
|
+---0g9J-_jgFO_kMhu1urXobjwY.c9r
|
|
dir.c9r

|
|
|
+---cqTUhWxKgUxOKYRyEaLj5HRE.c9r
|
|
dir.c9r

|
|
|
+---m-DSWVeYyPogxkeGjpBFImj5.c9r
|
|
dir.c9r

|
|
|
+---ppPxaJGVhLPK8J0RmJ-But8t.c9r
|
|
dir.c9r

|
|
|
---v086lvJ5yXGfctveff6UvvVO.c9r
|
dir.c9r

|
+---77
+---JQ
+---NX
|
---E6PMXLIKCAKKERUMB3RVNKOOMYTESS
|
9l0EohTQJFHu7TioBlynQT16F9Oru9QngQ_2l4Vjm8FD83GSFPF_DfquoMPr.c9r
|
RrAwURAxq94yNNEiviSFgHCX9EXA9DgS9wQlg2i7U-tA3Gq3y_8fZgka1IXS.c9r
|
vIQ-JTS2L-J8D9UkeWairkOd6FMwHlJAT6G1j9BztwVH5eCKWJs-h3o6xF2Y.c9r
|
zchERCt2nRER1FT0q8PFTlnrVPPPRDHN8geUF59BQdbBK_PgfWpP867IjII8.c9r

...

В вер­сии для Windows Cryptomator работа­ет по прин­ципу fused file system через WebDAV либо под­систе­му Dokany, которую пред­лага­ется допол­нитель­но уста­новить пос­ле уста­нов­ки Cryptomator. Сто­ит ли это делать? Я про­тес­тировал Cryptomator в нес­коль­ких кон­фигура­циях на одном и том же кон­тей­нере; резуль­тат — ниже.


Для начала на быс­тром SSD (Samsung 970 Evo Plus) в локаль­ной пап­ке был соз­дан пус­той кон­тей­нер. Вот резуль­тат тес­та CrystalDiskMark.


Об­рати вни­мание: в качес­тве тес­тового устрой­ства наз­начена пап­ка, а не блоч­ный накопи­тель, который добав­ляет в сис­тему Cryptomator при соз­дании зашиф­рован­ной пап­ки.


Пос­ле это­го та же пап­ка была смон­тирова­на через Dokany; бен­чмарк получил­ся такой.


От­мечу, что в этом слу­чае CrystalDiskMark уда­лось завер­шить все тес­ты лишь с треть­ей попыт­ки; в двух пер­вых про­ходи­ли толь­ко пер­вые два тес­та, а на мес­те осталь­ных были нули.


Да­лее я перемес­тил зашиф­рован­ную пап­ку в Ramdisk, что­бы исклю­чить вли­яние SSD на резуль­таты тес­тирова­ния. Для начала — ско­рость самого рам­диска.


Пов­торяю тест через WebDAV.


Осо­бой раз­ницы не наб­людаю. Теперь то же самое, но через Dokany. Бен­чмарк получил­ся, как видишь, не очень.


Мой вывод: в Windows 10 смыс­ла в исполь­зовании Cryptomator через Dokany нет. Ско­рость сущес­твен­но ниже, надеж­ность — катас­тро­фичес­ки ниже, чем при исполь­зовании WebDAV.


На­конец, в режиме WebDAV я замерил сред­нюю ско­рость копиро­вания мел­ких фай­лов (фото­аль­бом объ­емом 7 Гбайт, поряд­ка 5600 фотог­рафий): запись — 120 Мбайт/с, чте­ние — 132 Мбайт/с. Для зашиф­рован­ной пап­ки впол­не при­лич­но, но, конеч­но же, нес­равни­мо со ско­ростью работы даже зашиф­рован­ного BitLocker дис­ка.


 

Cryptomator: достоинства и недостатки


Итак, Cryptomator нас­тро­ен и про­тес­тирован. Под­ведем итог, перечис­лив силь­ные и сла­бые сто­роны решения. К плю­сам Cryptomator я отне­су сле­дующее:



  1. Ра­бота­ет на компь­юте­рах (Windows, macOS, Linux) и мобиль­ных устрой­ствах (Android, iOS), при этом на компь­юте­рах — бес­плат­но.

  2. Дос­тупен в ис­ходни­ках.

  3. Есть при­ложе­ния для всех популяр­ных плат­форм: для дос­тупа к зашиф­рован­ным фай­лам дос­таточ­но уста­новить и нас­тро­ить соот­ветс­тву­ющее при­ложе­ние.

  4. Под­держи­вают­ся длин­ные име­на фай­лов (бич, прес­леду­ющий eCryptFS и мно­гие дру­гие крип­тогра­фичес­кие фай­ловые сис­темы).

  5. Мож­но как момен­таль­но сме­нить пароль шиф­рования, так и унич­тожить все зашиф­рован­ные фай­лы, сде­лав дан­ные недос­тупны­ми: для это­го дос­таточ­но уда­лить файл с мас­тер‑клю­чом.

  6. Пол­ностью авто­ном­ное шиф­рование: мож­но ско­пиро­вать зашиф­рован­ную пап­ку на дру­гой диск, пос­ле чего смон­тировать ее уста­нов­ленным или пор­татив­ным вари­антом Cryptomator.

  7. Бе­зопас­ное резер­вное копиро­вание: для соз­дания и под­держа­ния резер­вных копий (в том чис­ле инкре­мен­тных) нет необ­ходимос­ти рас­шифро­вывать дан­ные и мон­тировать зашиф­рован­ные сетевые пап­ки.

  8. Воз­можны инкре­мен­тные резер­вные копии: вре­мя пос­ледней модифи­кации каж­дого фай­ла дос­тупно без клю­ча шиф­рования.

  9. За­шиф­рован­ные фай­лы мож­но ско­пиро­вать куда угод­но: на любой встро­енный или внеш­ний диск, отформа­тиро­ван­ный в любой фай­ловой сис­теме, на любой NAS любого про­изво­дите­ля, в любой облачный сер­вис, на уда­лен­ный сер­вер по любому под­держи­ваемо­му про­токо­лу.

  10. Шиф­руют­ся как сами дан­ные, так и име­на папок и фай­лов. Для сок­рытия струк­туры катало­гов исполь­зует­ся обфуска­ция.


В минусы запишу сле­дующие пун­кты:



  1. Ста­биль­ность и ско­рость работы в Windows 10 через Dokany оставля­ет желать луч­шего.

  2. С исполь­зовани­ем WebDAV ско­рость работы выше и дос­тига­ет при­емле­мых величин, оста­ваясь, впро­чем, не очень высокой.

  3. Из­быточ­ность: пос­коль­ку шиф­рование имен фай­лов в фай­ловых сис­темах, работа­ющих по прин­ципу fused, всег­да слу­жит сво­еоб­разным «кос­тылем», Cryptomator соз­дает отдель­ные пап­ки и фай­лы‑ком­пань­оны для фай­лов с длин­ными име­нами. Если таких фай­лов у тебя мно­го, то дос­туп к ним будет очень мед­ленным.

  4. Не пре­дус­мотрен спо­соб син­хро­низи­ровать фото­аль­бомы с мобиль­ных устрой­ств в зашиф­рован­ную пап­ку.


 

Cryptomator или Boxcryptor?


Хо­телось бы написать пол­ноцен­ный обзор‑иссле­дова­ние всех популяр­ных крип­тогра­фичес­ких фай­ловых сис­тем, но огра­ниче­ния по вре­мени и объ­ему зас­тавля­ют уре­зать осет­ра, так что срав­нение с Boxcryptor получи­лось доволь­но повер­хностным.


Boxcryptor — это сер­вис, реша­ющий прин­ципи­аль­но те же задачи, которые реша­ет Cryptomator. При этом, в отли­чие от Cryptomator, Boxcryptor дос­тупен по под­писке. Бес­плат­ная вер­сия сер­виса сущес­тву­ет, но тре­бует регис­тра­ции учет­ной записи, при этом чрез­вычай­но фун­кци­ональ­но огра­ниче­на: нап­ример, в ней невоз­можно зашиф­ровать име­на фай­лов, а при­вязать мож­но толь­ко один облачный сер­вис. Есть ли смысл исполь­зовать плат­ный сер­вис Boxcryptor, если сущес­тву­ет бес­плат­ный Cryptomator? И наобо­рот, отка­зыва­ешь­ся ли ты от чего‑то важ­ного, поль­зуясь бес­плат­ным про­дук­том вмес­то дос­тупно­го по под­писке сер­виса? Про­веду корот­кое срав­нение, но преж­де рекомен­дую озна­комить­ся с, так ска­зать, офи­циаль­ными матери­ала­ми:




  • Boxcryptor про­тив Cryptomator про­изво­дите­ля Boxcryptor;


  • Cryptomator про­тив Boxcryptor раз­работ­чиков Cryptomator.


Сто­имость. Подож­ди, Cryptomator же вро­де бы бес­плат­ный? Так, да не так: бес­плат­ны при­ложе­ния для дес­ктоп­ных плат­форм, а за мобиль­ные при­ложе­ния (iOS, Android) пот­ребу­ется зап­латить 9,99 дол­лара/евро. Впро­чем, Boxcryptor все рав­но дороже: за пер­вый пос­ле бес­плат­ного уро­вень сер­виса про­сят 36 евро в год (бес­плат­ный же уро­вень доволь­но силь­но огра­ничен).


Воз­можность шиф­рования Camera Roll. Син­хро­низа­ция фотог­рафий с обла­ком. Плюс в поль­зу Boxcryptor: в мобиль­ных при­ложе­ниях реали­зова­на под­дер­жка шиф­рования син­хро­низи­рован­ных фотог­рафий, при­чем в при­ложе­нии для iOS даже при­сутс­тву­ет под­дер­жка Files с генера­цией умень­шен­ных вер­сий изоб­ражений на лету. Раз­работ­чики сер­виса пос­вятили это­му целую статью. Cryptomator под­держи­вает син­хро­низа­цию фотог­рафий с обла­ком толь­ко в при­ложе­нии для Android; в iOS под­дер­жка отсутс­тву­ет.


От­кры­тый исходный код. +1 в поль­зу Cryptomator.


Тре­бует­ся учет­ная запись. Боль­шой и жир­ный +1 Cryptomator, который не тре­бует­ся регис­три­ровать у раз­работ­чиков прос­то для того, что­бы он работал. А вот Boxcryptor тре­бует регис­тра­ции учет­ной записи, которая при этом активно исполь­зует­ся: ключ шиф­рования мас­тер‑клю­ча хеширу­ется не на компь­юте­ре поль­зовате­ля, а на сер­верах Boxcryptor (что, кста­ти, соз­дает некото­рую неуве­рен­ность в будущем про­екта: а что слу­чит­ся, если сер­вер зак­роет­ся?).


По­лити­ка защиты кон­фиден­циаль­нос­ти. И сно­ва +1 в поль­зу Cryptomator, раз­работ­чики которо­го не получа­ют и не хра­нят никакой информа­ции о сво­их поль­зовате­лях. Boxcryptor утвер­жда­ет, что он Zero Knowledge Provider, но в то же вре­мя собира­ет и хра­нит сле­дующую информа­цию:




  • Email address

  • First and last name

  • Country

  • Etc.


Keys and Additional Values


Additionally, we store keys and values that are necessary for encrypting and decrypting processes. Of course, these values are protected carefully as well.



  • Private RSA key (encrypted with the user’s password)

  • Public RSA key

  • AES keys (encrypted with the user’s password / wrapping key)

  • Hash of the password hash

  • Number of KDF iterations used in the key and password hash derivation functions

  • Salt (used to salt the password key and the password hash server side)

  • Password hash salt

  • If a company uses the Master Key: Password Key (encrypted with the company’s public RSA key)



Чес­тно говоря, не очень хочет­ся раз­бирать­ся, какие имен­но из этих клю­чей могут быть исполь­зованы для вос­ста­нов­ления дос­тупа к зашиф­рован­ным дан­ным при утеч­ке. В слу­чае с Cryptomator делать это­го и не нуж­но: никакие клю­чи на внеш­них сер­верах не хра­нят­ся.


Двух­фактор­ная аутен­тифика­ция. Казалось бы, ее под­дер­жку нуж­но записать в плю­сы Boxcryptor, но при исполь­зовании Cryptomator двух­фактор­ная аутен­тифика­ция не под­держи­вает­ся прос­то потому, что нет и одно­фак­торной: учет­ная запись тре­бует­ся толь­ко для Boxcryptor.


Ста­биль­ность работы. +1 в поль­зу Boxcryptor: про­ект стар­ше и луч­ше отла­жен.


Шиф­рование имен фай­лов и папок. Есть в обо­их про­дук­тах, но в Boxcryptor — толь­ко за день­ги. Еще +1 в поль­зу Cryptomator.


Ог­раниче­ния на чис­ло устрой­ств и облачных сер­висов. У Boxcryptor есть огра­ниче­ния в зависи­мос­ти от выб­ранно­го пла­на; у Cryptomator таких огра­ниче­ний нет. Еще +1 в поль­зу Cryptomator.


Об­фуска­ция струк­туры фай­ловой сис­темы. И сно­ва +1 в поль­зу Cryptomator. Этот пункт, пожалуй, сто­ит пояс­нить раз­верну­то. Сущес­тву­ют про­дук­ты, которые соз­дают опре­делен­ную струк­туру катало­гов, и в каж­дом из них могут быть свои под­катало­ги и/или опре­делен­ное количес­тво фай­лов. Ана­лиз фай­ловой струк­туры, таким обра­зом, может помочь ата­кующе­му догадать­ся, что исполь­зует­ся та или иная прог­рамма.


Воз­можность кол­лабора­ции через ссыл­ки на фай­лы (без ука­зания пароля): а вот здесь +1 получа­ет Boxcryptor. В Boxcryptor есть воз­можность орга­низо­вать сов­мес­тную работу над докумен­том нес­коль­кими поль­зовате­лями, при этом ни один из них не дол­жен будет раз­гла­шать свой пароль.


Та­ким обра­зом, Cryptomator выиг­рыва­ет с раз­гром­ным сче­том при исполь­зовании в домаш­них усло­виях за единс­твен­ным исклю­чени­ем: син­хро­низа­ция фотог­рафий. Boxcryptor, с дру­гой сто­роны, поз­воля­ет ком­пани­ям орга­низо­вать сов­мес­тную работу над докумен­тами, пред­лага­ет более ста­биль­ное и отла­жен­ное при­ложе­ние, син­хро­низа­цию фотог­рафий и интегра­цию с Files в iOS.


 

Заключение


Нуж­дают­ся ли твои дан­ные в допол­нитель­ной защите — решать тебе. Веро­ятно, нуж­дают­ся, но не все. Веро­ятно, ты захочешь защитить циф­ровые копии докумен­тов (пас­порта, водитель­ские пра­ва) и какие‑то еще дан­ные, дос­туп к которым может пот­ребовать­ся в неожи­дан­ный момент и в неожи­дан­ном мес­те.


«Лич­ный сейф OneDrive» спо­собен успо­коить нер­вы тех­ничес­ки малог­рамот­ных поль­зовате­лей; как‑то осо­бен­но защитить (а тем более зашиф­ровать) твои дан­ные он не может. Извес­тный спо­соб с крип­токон­тей­нером в обла­ке по‑преж­нему работа­ет и по‑преж­нему безопа­сен, одна­ко про­игры­вает в удобс­тве более сов­ремен­ным вари­антам, в роли которых выс­тупа­ют крип­тогра­фичес­кие облачные сис­темы.


Са­мых рас­простра­нен­ных вари­антов сегод­ня два: появив­ший­ся чуть рань­ше плат­ный сер­вис Boxcryptor и про­ект с откры­тым исходным кодом Cryptomator. Оба про­дук­та реша­ют одну и ту же задачу, но дела­ют это по‑раз­ному. Резуль­тат моего иссле­дова­ния дос­таточ­но однозна­чен: если брать для себя, бери Cryptomator — это бес­плат­но, удоб­но и безопас­но. Ком­пани­ям может боль­ше подой­ти Boxcryptor, но толь­ко в том слу­чае, если необ­ходимо орга­низо­вать сов­мес­тную работу над докумен­тами через облачные сер­висы.


Действительно конфиденциальные облака Су­щес­тву­ют облачные про­вай­деры, которые ничего не зна­ют и не хотят знать о том, какой имен­но кон­тент хра­нят на их сер­верах поль­зовате­ли. Широко известен про­вай­дер Mega, офи­циаль­ная полити­ка которо­го такова: «Дан­ные в сер­висе Mega зашиф­рованы на сто­роне кли­ента с исполь­зовани­ем алго­рит­ма AES. Пос­коль­ку Mega не зна­ет клю­чей шиф­рования заг­ружа­емых фай­лов, рас­шифро­вать и прос­мотреть их содер­жимое невоз­можно. Сле­дова­тель­но, ком­пания Mega не может нес­ти ответс­твен­ность за содер­жимое заг­ружен­ных фай­лов». В то же вре­мя Mega час­то исполь­зуют для того, что­бы поделить­ся фай­лами, для чего генери­рует­ся ссыл­ка; в ссыл­ке содер­жится ключ, поз­воля­ющий рас­шифро­вать содер­жимое фай­ла. Это поз­воля­ет пра­вооб­ладате­лям отсле­живать нелегаль­ный кон­тент и тре­бовать у Mega его уда­лить. Под­ведем итог. Популяр­ные облачные про­вай­деры (Google, Apple, Microsoft, Dropbox, Amazon) сог­ласны хра­нить твои фай­лы, фотог­рафии и докумен­ты, и эти дан­ные дей­стви­тель­но зашиф­рованы; воп­рос лишь в том, кто кон­тро­лиру­ет клю­чи шиф­рования. Для боль­шей час­ти дан­ных клю­чи шиф­рования находят­ся в руках у самих облачных сер­висов, а это зна­чит, что дос­туп к содер­жимому как для них самих, так и для взлом­щика, получив­шего дос­туп к тво­им учет­ным дан­ным, совер­шенно проз­рачен. Имен­но эту проб­лему — кон­троль клю­чей шиф­рования — мы и будем решать. Вариант решения: костыль OneDrive Personal Vault OneDrive Personal Vault — в перево­де наз­ванный «лич­ный сейф OneDrive» — допол­нитель­ный уро­вень защиты, который Microsoft пред­лага­ет под­писчи­кам на Office 365 (без под­писки в «лич­ный сейф» мож­но помес­тить толь­ко три фай­ла). В рек­ламе говорит­ся: «Лич­ный сейф OneDrive защищен средс­тва­ми про­вер­ки лич­ности, бла­года­ря чему вы можете сох­ранять в обла­ке самые важ­ные фай­лы, не бес­поко­ясь о воз­можнос­ти несан­кци­они­рован­ного дос­тупа к ним». Microsoft пред­лага­ет хра­нить в нем самые важ­ные докумен­ты — «циф­ровые копии сво­его пас­порта, водитель­ско­го удос­товере­ния и дру­гих важ­ных докумен­тов». Обе­щает­ся «повышен­ная безопас­ность»: по мне­нию ком­пании, «лич­ный сейф уси­лива­ет и без того надеж­ную защиту OneDrive с помощью шиф­рования фай­лов, отсле­жива­ния подоз­ритель­ных дей­ствий, поис­ка вирусов, обна­руже­ния прог­рамм‑шан­тажис­тов и вос­ста­нов­ления дан­ных». Очень мно­го кра­сивых слов, которые вызыва­ют доверие и желание защитить важ­ные дан­ные. Фак­тичес­ки же нам пред­лага­ется обыч­ная «запаро­лен­ная пап­ка», для дос­тупа к которой тебе пот­ребу­ется ввес­ти пароль от учет­ной записи (тот же самый пароль, который исполь­зует­ся для дос­тупа к основно­му хра­нили­щу OneDrive) и прой­ти про­вер­ку по методу двух­фактор­ной аутен­тифика­ции (ту же самую про­вер­ку, которая нуж­на… ну, ты понял). Мы иссле­дова­ли безопас­ность «лич­ного сей­фа OneDrive» и не обна­ружи­ли никаких допол­нитель­ных механиз­мов защиты или кон­тро­ля дос­тупа. В статье «Ана­лиз дан­ных из учет­ных записей Microsoft» есть упо­мина­ние о том, что для вхо­да в «сейф» не тре­бует­ся даже пов­торной авто­риза­ции, дос­таточ­но обыч­ного токена дос­тупа в OneDrive. Вы­вод: «лич­ный сейф OneDrive» име­ет отно­шение к мар­кетин­гу, рек­ламе и зараба­тыва­нию денег, но не име­ет ни малей­шего отно­шения к реаль­ной безопас­ности тво­их дан­ных. Все фай­лы, которые ты помес­тишь в «лич­ный сейф», будут точ­но так же дос­тупны и Microsoft, и любому зло­умыш­ленни­ку, получив­шему дос­туп к тво­ей учет­ной записи. Вариант решения: криптоконтейнер в облаке До появ­ления крип­тогра­фичес­ких фай­ловых сис­тем широко извес­тным в узких кру­гах был такой вари­ант защиты дан­ных от любопыт­ных глаз: дан­ные сох­раня­ют внутрь фай­ла крип­токон­тей­нера, который, в свою оче­редь, помеща­ют в син­хро­низи­руемую с обла­ком пап­ку. Этот вари­ант дает дей­стви­тель­но неп­робива­емую защиту, одна­ко и недос­татков у него хва­тает. Нес­табиль­ная син­хро­низа­ция — основная проб­лема это­го решения. Как пра­вило, файл, содер­жащий крип­токон­тей­нер, дос­таточ­но объ­емный, и син­хро­низи­ровать его нуж­но не целиком, а по бло­кам. В то же вре­мя блоч­ная син­хро­низа­ция появи­лась в облачных сер­висах не так дав­но, при­чем в некото­рых из них она дос­тупна толь­ко для плат­ных поль­зовате­лей. В отсутс­твие блоч­ной син­хро­низа­ции при каж­дом добав­лении или изме­нении фай­ла в крип­токон­тей­нере весь кон­тей­нер целиком дол­жен будет син­хро­низи­ровать­ся с обла­ком; это мед­ленно и неудоб­но. Вто­рая проб­лема — неудобс­тво исполь­зования на нес­коль­ких устрой­ствах: под­клю­чить крип­токон­тей­нер в обла­ке к смар­тфо­ну или план­шету будет труд­но, а поль­зовать­ся им воз­можно толь­ко в руч­ном режиме. В этот же пункт запишем неудобс­тво инкре­мен­тно­го резер­вно­го копиро­вания кон­тей­нера. На­конец, мак­сималь­ный раз­мер фай­ла в раз­ных облачных сер­висах так­же огра­ничен и варь­иру­ется меж­ду 5 Гбайт и 250 Гбайт в зависи­мос­ти от типа учет­ной записи и, собс­твен­но, про­вай­дера. Все эти проб­лемы реша­ет шиф­рование каж­дого фай­ла в отдель­нос­ти — и имен­но этим занима­ются крип­тогра­фичес­кие фай­ловые сис­темы. Правильный вариант: криптографические файловые системы Ре­шить проб­лему при­ват­ности и безопас­ности сох­раня­емых в обла­ке (и не толь­ко) фай­лов поз­воля­ет класс про­дук­тов, который мож­но оха­рак­теризо­вать тер­мином «крип­тогра­фичес­кие фай­ловые сис­темы». В отли­чие от шиф­рования дис­ка (к при­меру, LUKS, VeraCrypt или BitLocker), крип­тогра­фичес­кие фай­ловые сис­темы шиф­руют и рас­шифро­выва­ют дан­ные «на лету» на уров­не отдель­ных фай­лов и папок, сох­раняя при этом проз­рачность дос­тупа для самого поль­зовате­ля. Цель и смысл сущес­тво­вания крип­тогра­фичес­ких фай­ловых сис­тем — защитить фай­лы от несан­кци­они­рован­ного дос­тупа, если зло­умыш­ленник получит физичес­кий дос­туп к тво­ему дис­ку либо взло­мает твою облачную учет­ную запись. С целью син­хро­низа­ции в обла­ко подой­дет далеко не каж­дая крип­тогра­фичес­кая фай­ловая сис­тема. Так, популяр­ная сре­ди поль­зовате­лей Linux сис­тема eCryptFS (о ней мы еще погово­рим) под­держи­вает­ся толь­ко в Linux; о сущес­тво­вании кли­ентов для Windows, а тем более для мобиль­ных плат­форм мне неиз­вес­тно. Фай­ловая сис­тема EncFS, работа­ющая по прин­ципу FUSE, обла­дает чуть более широкой сов­мести­мостью, но удоб­ной син­хро­низа­ции с обла­ком с мобиль­ных устрой­ств не будет все рав­но. Схо­жими недос­татка­ми обла­дают и дру­гие фай­ловые сис­темы FUSE, которых для Linux сущес­тву­ет доволь­но мно­го. Эти огра­ниче­ния обхо­дят, пожалуй, толь­ко два про­екта: бес­плат­ный (для дес­ктоп­ных ОС), дос­тупный в исходных кодах Cryptomator и плат­ный, дос­тупный по под­писке Boxcryptor. Cryptomator или eCryptFS? По­дой­дет ли eCryptFS, если тебе не нуж­на под­дер­жка дру­гих ОС? Или же выбор в любом слу­чае делать в поль­зу Cryptomator? Это воп­рос спор­ный, у той и дру­гой ФС есть силь­ные и сла­бые сто­роны. Совместимость Как уже упо­мина­лось, eCryptFS есть в Linux и отсутс­тву­ет на дру­гих плат­формах. Cryptomator дос­тупен прак­тичес­ки на всех рас­простра­нен­ных дес­ктоп­ных и мобиль­ных плат­формах. Ограничения на длину имен файлов и папок В боль­шинс­тве сов­ремен­ных ОС ты можешь исполь­зовать име­на фай­лов дли­ной до 255 зна­ков ASCII (при исполь­зовании сим­волов Unicode — мень­ше). Крип­тогра­фичес­кие фай­ловые сис­темы могут либо оста­вить име­на как есть (зло­умыш­ленник уви­дит наз­вания фай­лов), либо зашиф­ровать име­на фай­лов и папок (при этом мак­сималь­ная дли­на име­ни фай­ла будет мень­ше; для eCryptFS — 143 сим­вола ASCII), либо исполь­зовать допол­нитель­ные ухищ­рения, сох­раняя ори­гиналь­ное длин­ное имя фай­ла в метадан­ных шиф­рования или, как дела­ет Cryptomator, в отдель­ном фай­ле. Забегая впе­ред, добав­лю, что фай­лы с длин­ными име­нами Cryptomator помеща­ет в отдель­ные пап­ки, в которых соз­дает фай­лы contents.c9r (содер­жимое фай­ла) и name.c9s (его имя в зашиф­рован­ном виде). Скорость работы Ско­рость дос­тупа к зашиф­рован­ным пап­кам будет ниже, чем к обыч­ным; это в какой‑то мере ожи­даемо. Одна­ко в боль­шинс­тве сов­ремен­ных крип­тогра­фичес­ких фай­ловых сис­тем ско­рость дос­тупа к зашиф­рован­ным фай­лам пада­ет катас­тро­фичес­ки. Это свя­зано не столь­ко с самим фак­том шиф­рования (аппа­рат­ное уско­рение AES прак­тичес­ки не замед­ляет работу), сколь­ко с нак­ладны­ми рас­ходами. Для каж­дого фай­ла нуж­но соз­дать заголо­вок (eCryptFS) или файл‑ком­пань­он (Cryptomator), в котором будут сох­ранены метадан­ные шиф­рования; ког­да его откры­ваешь, соот­ветс­твен­но, этот заголо­вок или отдель­ный файл нуж­но про­читать и обра­ботать. Если речь идет об одном круп­ном фай­ле — падение про­изво­дитель­нос­ти отно­ситель­но невели­ко, но при работе с мно­жес­твом мел­ких (а фотог­рафии и докумен­ты отно­сят­ся как раз к таким) ско­рость дос­тупа пада­ет в разы. От это­го стра­дают как eCryptFS, так и Cryptomator; пос­ледний даже в нес­коль­ко боль­шей сте­пени, если речь идет о мно­жес­тве мел­ких фай­лов с длин­ными име­нами (напом­ню, для таких фай­лов соз­дают­ся отдель­ные пап­ки и фай­лы‑ком­пань­оны). Возможность сменить пароль В той реали­зации шиф­рования eCryptFS, которую исполь­зуют популяр­ные сетевые хра­нили­ща (в час­тнос­ти, Synology) невоз­можно быс­тро (без перешиф­ровки фай­лов) сме­нить пароль шиф­рования. В то же вре­мя в самой фай­ловой сис­теме механизм сме­ны пароля пре­дус­мотрен; через wrapped-passphrase пароль шиф­рования всей пап­ки мож­но успешно сме­нить. Про­изво­дите­ли сетевых хра­нилищ не исполь­зуют этот механизм. Так, в Synology DSM в качес­тве клю­ча шиф­рования берет­ся пароль поль­зовате­ля, а в качес­тве wrapping passphrase — фик­сирован­ный пароль 1Cryptomator CLI, рас­простра­няемый в виде фай­ла JAR, для запус­ка которо­го тре­бует­ся уже уста­нов­ленная Java 11. Нас­коль­ко удоб­но будет исполь­зовать
CSS

Смотрите также

А что там на главной? )))



Комментарии )))



Комментарии для сайта Cackle
Войти через:
Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика Яндекс.Метрика