Capillary — це бібліотека з відкритим вихідним кодом, яка допомагає розробникам застосовувати наскрізне шифрування для push-повідомлень у своїх програмах.
Якщо ви розробник, який реалізує push-повідомлення у своїй програмі, і ви або ваші користувачі дбаєте про конфіденційність даних, то важливо безпечно передавати ці push-повідомлення. Для тих із вас, хто вже займається безпекою даних, впровадження надійних заходів шифрування – це проста справа. Для інших це складно реалізувати. Google Firebase Cloud Messaging (FCM) надсилає повідомлення через TLS, щоб ви могли безпечно надсилати повідомлення через сервери Google, але тим самим ви не відповідаєте золотому стандарту, тобто наскрізному шифрування. Без наскрізного шифрування теоретично третя сторона може скомпрометувати дані; з ним лише пристрій кінцевого користувача може розшифрувати дані. Впровадження шифрування E2E може бути складним для нових розробників, тому Google представляє проект Capillary. Це є бібліотека з відкритим кодом що полегшує впровадження шифрування E2E між серверами розробників і пристроями клієнтів.
З бібліотекою Capillary перший крок виконується клієнтським пристроєм: генерується пара ключів. Потім відкритий ключ потрібно зареєструвати на сервері розробника. Сервер розробника надсилатиме push-повідомлення, зашифровані відкритим ключем, через службу push-повідомлень, як-от FCM. Потім служба надсилає це повідомлення клієнту, який розшифровує повідомлення за допомогою закритого ключа.
Capillary має зворотну сумісність із API рівня 19, тому його можна використовувати на будь-якому пристрої під керуванням Android KitKat або новішої версії. Бібліотека також включає деякі заходи захисту цілісності, щоб запобігти модифікації повідомлень, і враховує заходи скидання пристрою. Capillary НЕ призначений для впровадження E2E-шифрування між двома пристроями. Це не допоможе вам створити безпечний додаток для обміну повідомленнями!
Перегляньте бібліотеку з відкритим кодом Capillary за посиланням нижче. Майте на увазі, що залежно від архітектури вашого сервера вам може знадобитися внести деякі адаптації вручну. Це добре з боку Google, що полегшує життя розробників, надаючи необхідні інструменти та бібліотеки.
Перегляньте бібліотеку Project Capillary на GitHub
Джерело: блог розробників Android