Як це працює

 

Підключення

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

Аутентифікація

Обліковий запис Pica клієнта базується на самопідписаному сертифікаті X.509, що використовує RSA-ключ розміром щонайменше 4096 біт. Pica Pica ID є похідним від хешу SHA-224 цього сертифіката. Клієнти встановлюють TLS-з’єднання та взаємно аутентифікують один одного, використовуючи ці сертифікати.

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

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

Найкращий спосіб перевірити Pica ID — обмінятися ним особисто. Однак це не завжди можливо. Альтернативно, можна здійснити телефонний або відео дзвінок і озвучити Pica ID один одному. Зважаючи на досягнення в машинному навчанні (наприклад, “глибокі фейки”), існує ймовірність, що в майбутньому, якщо не вже зараз, реальний час зміни відео та голосу під час відеодзвінка стане технічно можливим. 🙂

Локальне сховище даних

Клієнт Pica зберігає всі дані в каталозі профілю під назвою «.pica-client», що знаходиться в домашньому каталозі користувача. У Unix-подібних системах це зазвичай знаходиться за адресою /home/user/.pica-client, а в Windows — за адресою C:\Users\user\.pica-client. Контакти, історія повідомлень, налаштування та інша інформація зберігаються в SQLite базі даних за адресою .pica-client/pica-client.sqlite. Сертифікати облікових записів і приватні ключі зберігаються в підкаталогах профілю.

Офлайн-повідомлення

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