Вступний посібник і практичний приклад Google Cloud

Запрошую вас разом дослідити сферу хмарної криптографії, розглянути її різновиди та особливості впровадження на прикладі Google Cloud.

Хмарні обчислення, будучи підмножиною IaaS, давно перестали бути просто модним трендом. Сьогодні це домінуюча технологія, завдяки якій окремі користувачі, компанії та державні установи використовують хмарні сервіси для спрощення роботи з ІТ-інфраструктурою.

Хмара є втіленням практичності, економічності та можливості масштабування.

Простіше кажучи, хмарні обчислення – це оренда обчислювальних ресурсів, таких як місце для зберігання даних, оперативна пам’ять, процесорні потужності тощо, через інтернет без необхідності їх фізичного розміщення.

Поширеним прикладом є Google Drive чи Yahoo Mail. Ми довіряємо цим компаніям свої дані, іноді конфіденційну особисту або комерційну інформацію.

Як правило, середньостатистичний користувач не замислюється про конфіденційність або безпеку хмарних обчислень. Але будь-хто, хто обізнаний з історією стеження або сучасними кібератаками, повинен бути пильним або, принаймні, інформованим про ситуацію.

Що таке криптографія в хмарі?

Криптографія в хмарі вирішує проблему безпеки, шифруючи дані, які зберігаються в хмарі, для запобігання несанкціонованому доступу.

Шифрування – це метод застосування шифру (алгоритму) для перетворення звичайної інформації у зашифровану форму. В такому випадку зловмисник не зможе зрозуміти зміст, навіть якщо отримає доступ.

Існують різні види шифрування, залежно від ситуації. Тому важливо використовувати надійний шифр для шифрування даних у хмарі.

Наприклад, чи можете ви розшифрувати цей текст:

Iggmhnctg rtqfwegu jkij-swcnkva vgejpqnqia & hkpcpeg ctvkengu, ocmgu vqqnu, cpf CRKu vq jgnr dwukpguugu cpf rgqrng itqy.

Звичайно, ні!

Це справжня головоломка для людського розуму, але використайте будь-який декодер Цезаря, і він миттєво розгадає її:

Навіть людина, знайома з шифром Цезаря, помітить, що кожна літера зашифрованого тексту зміщена на дві позиції вперед відносно відповідної літери відкритого тексту.

Отже, головне – використовувати сильний шифр, наприклад AES-256.

Як працює криптографія в хмарі?

З попереднього розділу могло скластися враження, що ви самостійно обираєте шифр для шифрування даних.

Технічно це можливо. Але, як правило, постачальник хмарних послуг вмикає власне шифрування, або ви використовуєте шифрування як послугу від третьої сторони.

Тому розглянемо два варіанти та їх реалізацію.

#1. Шифрування на хмарній платформі

Це найпростіший метод, коли відомий постачальник хмарних послуг сам займається шифруванням.

Зазвичай це стосується:

Дані в стані спокою

Це означає, що дані зберігаються в зашифрованому вигляді перед або після переміщення у сховище.

Оскільки хмарна криптографія є відносно новим підходом, не існує єдиного способу реалізації. Існує багато наукових праць, що досліджують різні методи, але найважливішим є їх практичне застосування.

Отже, як компанія з першокласною хмарною інфраструктурою, така як Google Cloud, захищає дані в стані спокою?

Згідно з інформацією від Google, вони поділяють дані на невеликі блоки по кілька гігабайтів, які розподіляються по контейнерах на різних серверах. Кожен контейнер може містити дані одного або кількох користувачів.

Крім того, кожен блок шифрується окремо, навіть якщо вони знаходяться в одному контейнері та належать одному користувачеві. Це означає, що якщо ключ шифрування, пов’язаний з одним блоком, буде скомпрометовано, інші файли залишаться в безпеці.

Джерело: Google Cloud

Крім того, ключ шифрування змінюється щоразу при оновленні даних.

Дані на цьому рівні зберігання шифруються за допомогою AES-256, за винятком деяких постійних дисків, створених до 2015 року, які використовують шифрування AES-128.

Отже, це перший рівень шифрування на рівні окремого блоку.

Далі жорсткі диски (HDD) або твердотільні накопичувачі (SSD), на яких розміщено ці фрагменти даних, шифруються ще одним рівнем шифрування AES-256, а деякі старі HDD все ще використовують AES-128. Зверніть увагу, що ключі шифрування на рівні пристрою відрізняються від шифрування на рівні сховища.

Тепер усі ці ключі шифрування даних (DEK) додатково шифруються ключами шифрування ключів (KEK), якими потім централізовано керує служба керування ключами Google (KMS). Варто зазначити, що всі KEK використовують шифрування AES-256/AES-128, і принаймні один KEK пов’язаний з кожною хмарною службою Google.

Ці KEK змінюються принаймні один раз на 90 днів за допомогою загальної криптографічної бібліотеки Google.

Кожен KEK створюється резервна копія, відстежується кожен випадок використання, і доступ до нього має тільки авторизований персонал.

Далі всі KEK знову шифруються за допомогою 256-бітного шифрування AES, в результаті чого генерується головний ключ KMS, який зберігається в іншому інструменті керування ключами під назвою Root KMS, який зберігає кілька таких ключів.

Цей кореневий KMS управляється на виділених машинах у кожному центрі обробки даних Google Cloud.

Тепер цей кореневий KMS зашифрований за допомогою AES-256, створюючи єдиний головний ключ кореневого KMS, який зберігається в інфраструктурі однорангового з’єднання.

Один екземпляр Root KMS працює на кожному розповсюджувачі головного ключа Root KMS, який зберігає ключ в оперативній пам’яті.

Кожен новий екземпляр розповсюджувача головного ключа кореневого KMS підтверджується вже працюючими екземплярами для запобігання несанкціонованим діям.

Крім того, щоб впоратися з ситуацією, коли всі екземпляри дистриб’ютора повинні запускатися одночасно, головний ключ кореневого KMS також резервується лише у двох фізичних місцях.

І, нарешті, менше 20 працівників Google мають доступ до цих суворо засекречених місць.

Ось як Google застосовує хмарну криптографію для даних в стані спокою.

Але якщо ви хочете взяти справу у свої руки, ви також можете самостійно керувати ключами. Крім того, можна додати додатковий рівень шифрування та також самостійно керувати ключами. Однак слід пам’ятати, що втрата цих ключів означає блокування доступу до вашого веб-проєкту.

Варто зазначити, що не всі хмарні постачальники надають такий рівень деталізації. Оскільки Google стягує плату за свої послуги, ви можете вибрати іншого постачальника, який пропонує нижчу ціну, але відповідає вашій конкретній моделі загроз.

Дані під час передачі

Це означає, що дані передаються всередині центру обробки даних хмарного постачальника або за його межами, наприклад, коли ви завантажуєте їх зі свого комп’ютера.

Знову ж таки, немає єдиного способу захисту даних під час передачі, тому розглянемо підхід Google.

У своїй білій книзі про шифрування під час передачі Google виділяє три методи захисту нестаціонарних даних: автентифікацію, шифрування та перевірку цілісності.

У своєму центрі обробки даних Google захищає дані під час передачі за допомогою автентифікації кінцевої точки та перевірки цілісності, а також додаткового шифрування.

Хоча користувач може вибрати додаткові заходи, Google забезпечує найвищий рівень безпеки на своїх територіях завдяки надзвичайно контрольованому доступу, наданому лише кільком своїм працівникам.

За межами своїх фізичних меж Google використовує різну політику для власних хмарних сервісів (наприклад, Google Drive) та для будь-якої програми клієнта, що розміщена в її хмарі (наприклад, будь-який веб-сайт, що працює на її обчислювальній системі).

У першому випадку весь трафік спочатку надходить до контрольної точки, відомої як Google Front End (GFE) за допомогою Transport Layer Security (TLS). Згодом трафік отримує захист від DDoS-атак, балансується навантаження на серверах і, зрештою, направляється до потрібної хмарної служби Google.

У другому випадку відповідальність за забезпечення безпеки передачі даних здебільшого лежить на власниках інфраструктури, якщо вони не використовують інший сервіс Google (наприклад, Cloud VPN) для передачі даних.

Зазвичай TLS використовується для забезпечення цілісності даних під час передачі. Це той самий протокол, який використовується за замовчуванням, коли ви підключаєтеся до будь-якого веб-сайту через HTTPS, і його символом є значок замка в рядку URL-адреси.

Хоча він зазвичай використовується у всіх веб-браузерах, ви також можете використовувати його в інших програмах, таких як електронна пошта, аудіо/відеодзвінки, обмін миттєвими повідомленнями тощо.

Однак для найвищих стандартів шифрування існують віртуальні приватні мережі, які знову ж таки забезпечують багаторівневий захист за допомогою передових шифрів, таких як AES-256.

Але самостійно реалізувати хмарну криптографію досить складно, що підводить нас до…

#2. Шифрування як послуга

Тут стандартні протоколи безпеки на вашій хмарній платформі можуть бути недостатніми для конкретних цілей.

Одне з найкращих рішень – самостійно контролювати все та забезпечувати безпеку даних на корпоративному рівні. Але це простіше сказати, ніж зробити, і це нівелює безпроблемний підхід, який є основною причиною вибору хмарних обчислень.

Тому нам залишається використовувати шифрування як послугу (EAAS), наприклад, CloudHesive. Як і у випадку з хмарними обчисленнями, ви “орендуєте” шифрування, а не процесор, оперативну пам’ять, дисковий простір тощо.

Залежно від постачальника EAAS, ви можете отримати шифрування як для даних в стані спокою, так і для даних під час передачі.

Переваги та недоліки хмарної криптографії

Найбільша перевага – це безпека. Хмарна криптографія гарантує, що дані ваших користувачів будуть захищені від кіберзлочинців.

Хоча хмарна криптографія не може запобігти всім зломам, важливо докладати зусиль та мати чітке обґрунтування в разі виникнення проблем.

Щодо недоліків, то першим є вартість і час, необхідні для оновлення наявної системи безпеки. Крім того, мало що можна зробити, якщо ви втратите доступ до ключів шифрування при самостійному їх управлінні.

І, оскільки це нова технологія, нелегко знайти перевіреного часом постачальника EAAS.

Зрештою, найкращим варіантом є використання відомого постачальника хмарних послуг та використання їх власних криптографічних механізмів.

Підсумок

Сподіваємося, що цей огляд дав вам уявлення про хмарну криптографію. В основному, це про забезпечення безпеки даних, пов’язаних із хмарою, особливо під час передачі за межі інфраструктури.

Більшість провідних компаній з хмарною інфраструктурою, таких як Google Cloud, Amazon Web Services тощо, забезпечують достатній рівень безпеки для максимального використання. Тим не менш, корисно ознайомитися з технічними деталями, перш ніж розміщувати свої критично важливі програми у будь-якого постачальника.

PS: Ознайомтеся з деякими хмарними рішеннями для оптимізації витрат для AWS, Google Cloud, Azure та інших.