+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Google представила відкриту криптографічну бібліотеку Tink

Google представила відкриту криптографічну бібліотеку Tink

Google представила відкриту криптографічну бібліотеку Tink, націлену на надання простого для коректного застосування криптографічного API, при використанні якого важко припуститися помилок, здатних призвести до зниження безпеки. Надається повноцінна підтримка мов Java (у тому числі для Android), C++ та Obj-C, а також експериментальна підтримка Go та JavaScript. Код постачається під ліцензією Apache 2.0.

Бібліотека підготовлена ​​командою, що займалася розробкою інструментарію Wycheproof і виявила понад 40 вразливостей та слабких місць у різних популярних криптографічних бібліотеках та реалізаціях алгоритмів шифрування. В результаті цієї роботи народилася ідея створення гранично простого API, який не дозволяв би робити помилки, спричинені недорозумінням роботи алгоритмів шифрування, і який без ризику для безпеки змогли б використовувати розробники, які не мають досвіду у криптографії.

У результаті з'явився проект Tink, сконцентрований на скороченні кількості потенційних помилок, які можуть з'явитися в результаті неналежного застосування API, спроектований з урахуванням досвіду аналізу слабких місць у різних реалізаціях алгоритмів шифрування, написаний з огляду на безпеку, жорсткий рецензування коду і досконало протестований. У Google Tink вже застосовується у багатьох внутрішніх проектах, таких як AdMob, Google Pay, Google Assistant, Firebase та Android Search App.

Основу програмного інтерфейсу Tink складає набір криптографічних примітивів, кожен з яких охоплює певну область без заглиблення в деталі, наприклад, для симетричного шифрування по ключу пропонується примітив AEAD, що надає дві операції - шифрування та розшифровка, що не вимагає від розробника вибору конкретних алгоритмів шифрування та визначення їх параметрів (наприклад, векторів ініціалізації (nonce)). Перед використанням примітива виконується його реєстрація, після чого генерується або завантажується необхідний операції набор ключів і прив'язується до примітиву.

В даний час пропонуються такі примітиви:

  • AEAD (Authenticated Encryption with Associated Data) - симетричне автентифіковане шифрування фіксованого ключа з опціональною можливістю прикріплення автентифікованих, але не зашифрованих, пов'язаних даних. Підтримується як шифрування блоків, і потоків даних;
  • MAC (Message Authentication Codes) - коди автентифікації повідомлень для забезпечення цілісності та автентифікації джерела даних;
  • Функції для створення цифрового підпису та його перевірки (PublicKeySign та PublicKeyVerify);
  • Функції гібридного шифрування, що поєднують швидкість симетричного шифрування із зручністю шифрування за відкритими ключами;

Кожен примітив підтримує опції для роботи в stateless-режимі (безпечний для багатопотокових програм), з використанням безпечних операцій копіювання (copy-safe) та для застосування ключів, довжиною як мінімум 128 біт. Бібліотека автоматично блокує спроби виконання потенційно небезпечних операцій, таких як спроби завантаження ключів із незашифрованих файлів на диску. Доступний API для ротації ключів та взаємодії із зовнішніми системами керування ключами, такими як Google Cloud KMS, Amazon KMS, Android Keystore та Apple iOS KeyChain.

Бібліотека має модульну архітектуру та дозволяє підключати свої реалізації примітивів та замінювати існуючі примітиви та компоненти управління ключами, не змінюючи програмний код кінцевих програм. Наприклад, у разі виявлення вразливості в якомусь алгоритмі шифрування достатньо буде замінити примітив у самій бібліотеці та перегенерувати ключі, при цьому не чіпаючи коду додатків. У поточному вигляді запропоновані примітиви базуються на використанні бібліотек BoringSSL та Java Cryptography Architecture, які є низькорівневою основою.

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

 

Інші новини

Найкраща ціна