ЧАТ

ЦІЛІ ТА ПРИНЦИПИ

Компанія користується наступними принципами які формують цілі продукта:

Конфіденційність. Розмови у CHAT 💬 X.509 завжди наскрізно зашифровані, їх можуть прочитати або почути лише призначені одержувачі.

Прозорість. Повний вихідний код CHAT 💬 X.509 клієнтів і серверних рішень доступний на GitHub. Це дає змогу зацікавленим сторонам перевірити код на безпеку та правильність.

Відповідність світовим та державним телекомунікаційним та криптографічним стандартам.

Акредитовані Центр Сертифікації Ключів. Чат має власний X.509 центр видачі сертифікатів з використанням еліптичної криптографії ECC CA. Кожен раз при реєстрації нового користувача генерується PKCS-10 X.509 запит на створення сертифікату. Це також може бути зроблено за допомогою консольної утіліти. Підтримка сертифікатів сторонніх АЦСК.

Ієрархічні домени. ЧАТ має власний DNS сервер NS з підтримкою DNSSEC. Структура використаних сервісів і їх імена зберігаються в DNS сервері;

Директорія підприємства як розподілена база. В складних розподілених ієрархія підпорядкування з двома видами адміністраторів (безпеки і операційний) підтримка крос-DMZ реплікації регулюється глобальними правилами системи для авторизації пошукових LDAP запитів. Топ-левел LDAP сервери вибирають адміністраторів безпеки LDAP серверів друго рівня, і т.д.; Чат має власний верифікований LDAP сервер, захищений по TLS.

Всі повідомлення шифруются завжди. Кожне повідомлення шифрується за допомогою моделей полів Галуа GF(2^m) GCM або з використанням еліптичних кривих та групових операції на них, які зберігаються в X.509 конвертах. Нешифровані месаджі заборонені в системі.

Повідомлення не зберігаються на сервері. Транзієнта оперативна черга доставки повідомлень MQTT, сертифіковані сервери: MQTT: Mosquitto через TLSv1.3 та EMQX через QUIC (HTTP/3). Кожне повідомлення після останнього кроку отримання квитанції про доставку кореспондентом знищується на сервері і залишається відтепер тільки на клієнті. Так працювали перші версії Viber;

Не збираєм метадані. Месенжер не зберігає ніяких метаданих, як то локація, IP адреса, інформація про апаратуру клієнта, тощо. ЧАТ використовує тільки наступні внутрішнін ідетифікатори: client, device, profile, roster виключно для роутінга повідомлень. Користувач також має змогу обрати зберігати контактну книгу (ростер) не на сервері, а на клієнті;

Ростер на клієнті. Вся контактна інформація про ваші підписки, чати, канали, та компанії може зберігатися ексклюзивно на клієнті. Після логіна на іншому присторії користовач має змогу отримати (по MQTT) контактну книгу (ростер) з іншого клієнта, який працює на іншому пристрої;

Ростер на сервері. Вся контактна інформація про ваші підписки, чати, канали та компанії зберігається в корпоративній LDAP дерикторії яка має багато каналів реплікації;

Багато контактних книг. Для ведення подвійного та багааватарного життя на платній основі та для корпоративних акаунтів клієнт підтримує мульті-ростерність та верифікує акаунти за допомогою phone та mail способів верифікації клієнта;

Відкритий код. Імплементація Erlang SSL пережила heartblead тому була вибрана як основа безпеки TLS з'єднань в архітектурі ЧАТ. Всі серверні субкомпоненти системи написані на Erlang та доступні для верифікації та ліцензування публічно. Єдиний і повний автор усіх компонент системи який здійснює свою політику згідно BDFL собору є Максим Сохацький.

БІЗНЕС

Форми співробітництва:

— Автономні впровадження на ВАШИХ потужностях;
— Хостинг сервісу по підписці на НАШИХ потужностях;
— Багато-ростерні конфігурації по підписці;
— Інтеграційне API SDK для партнерських програм;
— Конфігурація під потреби бізнесу.


˙

СУСПІЛЬСТВО

Зроблено для людей:

— Безкоштовний захищений анонімний месенджер;
— Безкоштовний захищений веріфікований месенджер;
— Безпека персональних даних при спілкуванні в Інтернеті;
— Цифровізація держпослуг та звернень громадян;
— Використання електронного підпису документів онлайн;
— Інтегровані системи масового оповіщення;
— B2C сервісні канали для бізнесу і ОВВ;
— Календар iCal та Контакт vCard органайзер;
— Референсний iOS UI дизайн, додаток без залежностей;
— Відкритий консольний клієнт;
— Державний або корпоративний ДСТУ 4145 логін.

˙

ПРОТОКОЛ

Поняття протоколу:

Топіки. ЧАТ протокол використовує наступні MQTT топіки, перелік яких зберігається на клієнті: 1) actions/:client; 2) events/:client; 3) devices/:phone; 4) contacts/:roster; 5) private/:roster/:roster; 6) room/:room.

Записи. По цим топікам передаються наступні Erlang записи (records): Index, Typing, Search, Feature, Service, Presence, Friend, Tag, Link, Message, Member, Room, Contact, Star, Ack, Auth, Roster, Profile, History, push, io закодовані ETF серіалізатором.

Модулі. Протокол ЧАТ реалізований у наборі модулів-підпротоколів: ФАЙЛ, ІСТОРІЯ, ПОСИЛАННЯ, ПОВІДОМЛЕННЯ, ПРИСУТНІСТЬ, ПРОФІЛЬ, PUSH, КІМНАТА, РЕСТЕР, ПОШУК, АУТ. Щоб отримати повну специфікацію, перейдіть до папки priv/proto. Реалізація сервера CHAT покладається лише на підключення ISO/IETF, такі як DNSSEC, X.509 CSR, LDAP, QUIC, WebSocket, MQTT.

Додатки. ЧАТ — це простий сервер обміну миттєвими повідомленнями на основі стандартів ISO. Він використовує протокол MQTT і бінарну серіалізацію ETF від Erlang/OTP у різних своїх додатках: MQTT, LDAP, DNS, CA. Безпечний за замовчуванням. Додаток ЧАТ має функцію підпису/підтвердження, шифрування/розшифрування, увімкнену для кожного окремого переданого повідомлення. Доставлені повідомлення видаляються з MQTT сервера після підтвердження отримки одержувачем. Це заміна Keybase, OTR, PGP (називайте як хочете) для безпечних комунікацій, визначених X.509 ASN.1.

Ключі. Ключі які використовують користувачі складаються з трьох типів-пар (можна більше, але типів всього три): 1) Перша пара ключів SECP384R1 забезпечує безпеку каналу TLS 1.3 засобами еліптичної криптографії власного АЦСК/CA; 2) Друга пара ключів ED25519 забезпечує безпеку повідомлень; 3) Третя пара ключів забезпечує доступ до державних та юридичних сервісів ДСТУ-4145. Кожен учасник системи перед комунікацією здійснює реанонс своїх публічних частин цих асиметричних ключів.

Відкритість платформи. Єдиний додаток як в часи IRC та XMPP забезпечує доступ до всіх серверів сумісних з CHAT X509. Таким чином клієнт підримує довільну кількість ключів та довільну кількість серверів. І вся ця інформація зберігається тільки на клієнті.


˙

[1]. SYNRC. ASN.1/ETF/TLS/TCP/MQTT CHAT протокол.
[2]. Ю.І. Горбенко, І.Д. Горбенко. — Інфраструктури відкритих ключів. Електроний цифровий підпис. Теорія та практика.
[3]. ДСТУ 4145-2002 — Інформаційні технології. Криптографічний захист інформації. Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та перевірка.
[4]. SEC2 — Recommended EC Domain Parameters.
[5]. Eric Schorn — A Tour of Curve25519 in Erlang.

ТЕХНІЧНІ ХАРАКТЕРИСТИКИ

CHAT/CMS/MQTT/TLS

NIST: SP 800 38D-56A-57-162, P-384, P-571;
ISO: 20922 15946 10646 8824 8825;
ANSI: X9-64, X9-62;
FIPS: PUB 180-4;
ДСТУ: 4541 28147 GF(2^509);
ITU: X.509 (PKI), X.894 (CMS), X.680-X.683 X.690-697 (ASN.1);
ДССЗІ: #112 14.05.2010 #1236/5/453 20.08.2012 #687 27.10.2020

Як імплементація ЧАТ реалізований як простий сервер доставки миттєвих повідомлень розроблений для ненадійних мереж та у відповідності до стандартів ISO/IETF. Він використовує шину та брокер MQTT, LDAP сервер для корпоративних ієрархічних конфігурацій, та бінарну серіалізацію ASN.1 DER. ЧАТ складається з наступних додатків:

1) MQTT у якості Pub/Sub ABAC брокера; 2) LDAP для директорії користувачів; 3) DNS для безпеки іменного простору; 4) CA для видачі клієнтських сертифікатів (містить OCSP, CMP, TSP сервери).

PKIX CRYPTO

Протоколи ключів. ED-25519, X25519, X448, SECP-384r1, SECP-571r1,
ДСТУ-ГАЛУА-GF(2^431), GF(2^509).

Схема ED-25519 поліноміальної репрезентації Монтгомері B⋅y²=x³+A⋅x²+x () і редукційного многочлена x²⁵⁵-19 з порядком циклічної групи — 2^252 + 27742317777372353535851937790883648493, А=486662, B=1.

Схема SECP-384r1 поліноміальної репрезентації y²+y⋅x=x³+A⋅x+B і редукційного многочлена x³⁸⁴+x¹²⁸+x⁹⁶+x³²-1, A=FF(9) 00(2) FFFFFFFC, B=3312FA7E 23EE7E49 88E056BE 3F82D191 81D9C6EF E8141120 314088F5 013875AC 656398D8 A2ED19D2 A85C8EDD 3EC2AEF.

Схема SECP-571r1 поліноміальної репрезентації y²+y⋅x=x³+A⋅x+B і редукційного многочлена x⁵⁷¹+x¹⁰+x⁵+x²+1, A=1, B=02F40E7E 2221F295 DE297117 B7F3D62F 5C6A97FF CB8CEFF1 CD6BA8CE 4A9A18AD 84FFABBD 8EFA5933 2BE7AD67 56A66E29 4AFD185A 78FF12AA 520E4DE7 39BACA0C 7FFEFF7F 2955727A.

Схема ДСТУ-ГАЛУА-GF(2^431) поліноміальної репрезентації y²+y⋅x=x³+A⋅x+B і редукційного многочлена x⁴³¹+x⁵+x³+1, A=1, B=53FB7AF7 B4407000 A6F226AD 6BAD2837 8646BD83 F1F94081 0A4C1953 6EE65E53 F40F973F 2F06C5E8 0EFE3B43 651BD5FF 8B06BA5F 9299.

Похідні ключі. KDF, PBDKF2, HKDF, AES-KW.

Шифри. AES-CBC, AES-GCM, AES-CCM,
ДСТУ-КАЛИНА.

Хеші. SHA-2, POLY-1305, AES-CMAK,
ДСТУ-КУПИНА, CAdES.

Протоколи груп. MLS.

PQC. IBE, KYBER.

CA/CMS/CMP/CMC/ETS/TSP/TLS

SMIME-WG: 5990, 5911, 5750—5754, 5652, 5408, 5409, 5275, 5126, 5035, 4853, 4490, 4262, 4134, 4056, 4010, 3850, 3851, 3852, 3854, 3855, 3657, 3560, 3565, 3537, 3394, 3369, 3370, 3274, 3114, 3278, 3218, 3211, 3217, 3183, 3185, 3125—3126, 3058, 2984, 2876, 2785, 2630, 2631, 2632, 2633, 5083, 5084, 2634.

PKIX: 7030, 6960, 6818, 6844, 6712, 6664, 6402, 6277, 6170, 6024, 6025, 5934, 5912—5914, 5877, 5816, 5755, 5756, 5758, 5697, 5636, 5480, 5272—5274, 5280, 5055, 5019, 4985, 4683, 4630, 4476, 4387, 4325, 4158, 4210, 4211, 4055, 4043, 3874, 3779, 3820, 3739, 3709, 3628, 3161, 3029, 2797, 2559, 2587, 3039, 3029, 2511, 2510.

Compatibility: BoringSSL CMS, LibreSSL CMS, OpenSSL CMS, GnuPG S/MIME, OpenSSL, Cisco, Red Hat, Siemens, Nokia, IBM.


LDAP/TLS

LDAP: 2849, 3296, 3671—3673, 3866, 4511—4518, 4522, 4525, 4526, 4529, 1823, 2377, 2820, 3352, 3384, 3494, 4510, 4520, 4521, 2589, 2649, 2696, 2891, 3062, 3829, 3876, 3909, 3928, 4370, 4373, 4527, 4527, 4531—4533, 5805, 6171, 2247, 2798, 2926, 2985, 3045, 3112, 3687, 3698, 4517, 4519, 4524, 4530, 5020, 2079, 2307, 2713, 2714, 2739, 3641, 3642, 3703, 3727, 4104, 4403, 4523, 4792, 4876, 5803, 7612, 8284.


Compatibility: Apache Directory Studio, OpenLDAP.

NS/DNSSEC/TLS

NS: Name Server IETF 1034, 1035, 1101, 2065, 2535, 2539, 4033-4035 4398, 6944.

КЛІЄНТ iOS 13.0

Тут ви можете завантажити білд iOS клієнта написаного на Swift:














˙

[1]. SYNRC. CHAT 💬 X.509 iOS клієнт (Swift).

КЛІЄНТ X Windows

Простий X Windows клієнт доступний для запуску у WSL, BSD, Linux та Mac. Написаний на C. ЧАТ клієнт X.ORG X.509 базується на наступних бібліотеках: 1) X Windows Toolkit (Xt), 2) X Windows Library (Xlib) and 3) OpenGL for X Windows (GLX 1.3). Завантаження:


˙

[1]. SYNRC. CHAT-X509-GUI X Windows клієнт (C99).

КЛІЄНТ POSIX

Тут ви можете завантажити консолький референсний клієнт CHAT-X509:

CHAT включає систему доставки текстових повідомлень на основі вбудованого брокера повідомлень Erlang/OTP SYN разом із MQTT. Реалізація протоколу SYNRC CHAT CLI намагається бути інформативною, але не надмірною, вона повинна подбати про граничні випадки під час виконання, але не надто стабільна. Текстовий протокол CLI призначений для демонстраційних цілей і справді коротких повідомлень, коли у вас немає доступу до мобільних клієнтів, він підтримує завантаження файлів, але не підтримує олосові виклики. Це SMPT, але зроблений правильно: HELP, BOX, CUT, AUTH, SEND, LIST.

$ chat-x509 -c wss://chat.erp.uno > HELP < AUTH <user> | SEND <user> <msg> | BOX | CUT <id>. > AUTH buddha < USER buddha > SEND rocco HELO < ERROR user doesn't exist. > AUTH rocco < USER rocco > SEND buddha OK < NOTIFY rocco:buddha:1556151953113322286:OK < ACK "1556151953113322286" > AUTH buddha < USER buddha > BOX < LIST rocco:buddha:1556151953113322286:OK > SEND buddha this is me < NOTIFY buddha:buddha:1556152151055371152:this is me < ACK "1556152151055371152" > SEND buddha back again < NOTIFY buddha:buddha:1556152157283311935:back again < ACK "1556152157283311935" > BOX < LIST rocco:buddha:1556151953113322286:OK buddha:buddha:1556152151055371152:this is me buddha:buddha:1556152157283311935:back again > CUT 1556152157283311935 < ERASED 3 > BOX < LIST >

˙

CHAT-X509 — TERMIO клієнт (C99).

КОМПАНІЯ

Структура виробничого процесу компанії:

Маркетинговий відділ: Threema, Signal, WhatsApp, Session, Element, Wire, Wickr. Займається дослідженням найкращих практик та адаптацією їх до дизайну месанжера;

Клієнтський сектор розробки. Відділ розробки iOS клієнта на мові програмування Swift 5.8 CHAT 💬 X.509, разом з дизайном та ігровою ергономікою в Figma та Swift;

Серверний сектор розробки. Займається як розвитком сервера на Erlang/OTP так і розробкою інших серверів в інфраструктурі системи: CA, NS, LDAP, MQTT, CHAT;

Відділ по роботі з корпоративними клієнтами. Відділ займається підтримкою та комунікацією з органами державної влади, партнерами, провайдерами та зовнішніми контрагентами. Інформація про корпоративного клієнта визначається його сертифікатами (SYNRC.PEM), директорією підприємства (SYNRC.LDIF), та структурою серверів (SYNRC.DNS);

Відділ впровадження, супроводу і підтримки. Відділ займається інсталяціями під ключ та супроводом існуючої публічної клієнтської бази користувачів месенжера для операційних систем NetBSD і Linux. Головний продукт компанії — CHAT 💬 X.509 месенжер;

Відділ математичної криптографії. Відділ займається верифікацією криптографічних систем ITU, NIST та ДСТУ;

Відділ документування та проєктування. Відділ займається розвитком та підтримкою протоколу, дидактичних матеріалів та технічної докментації. Описує протокол SYNRC CHAT 💬 X.509 в ASN.1 DER та Erlang BERT форматах для мов Swift і Erlang.


˙

1) Технічні характеристики (Datasheet);
2) Брошура та головний сайт (Whitepaper);
3) Екрани мобільного додатку (Screens);
4) Посібник користувача (Manual);
5) Слайди презентації (Slides);
6) Діаграми Ґанта (Gantt);
7) Вимоги та технічне завдання (Requirements);
8) Публікації (Publications);
9) Архітектура і документація (Architecture);
10) Архітектура та програмування (Book);
11) Ліцензії та угода користувача (EULA);
12) Субліцензії (Licenses);
13) Контракти (ЄДРПО);
14) Контракти (ФОП);
15) Комплекс систем захисту інформації (КCЗІ).