ЦІЛІ ТА ПРИНЦИПИ
Компанія користується наступними принципами які формують цілі продукта:
Конфіденційність. Розмови у CHAT X.509 завжди наскрізно
зашифровані, їх можуть прочитати або почути лише призначені одержувачі.
Прозорість. Повний вихідний код CHAT X.509 клієнтів і
серверних рішень доступний на GitHub. Це дає змогу зацікавленим сторонам
перевірити код на безпеку та правильність.
Відповідність світовим та державним телекомунікаційним та
криптографічним стандартам ISO/IETF/ITU/IEEE/ANSI/NIST/FIPS.
Акредитовані Центр Сертифікації Ключів. Чат має власний X.509
центр видачі сертифікатів з використанням еліптичної криптографії ECC
CA. Кожен раз при реєстрації
нового користувача генерується PKCS-10 X.509 запит на створення
сертифікату. Це також може бути зроблено за допомогою консольної утіліти.
Підтримка сертифікатів сторонніх АЦСК.
Ієрархічні домени. ЧАТ має власний DNS
сервер NS з підтримкою DNSSEC.
Структура використаних сервісів і їх імена зберігаються в DNS сервері;
Директорія підприємства як розподілена база. В складних розподілених ієрархія підпорядкування
з двома видами адміністраторів (безпеки і операційний) підтримка крос-DMZ реплікації регулюється глобальними правилами
системи для авторизації пошукових LDAP запитів. Топ-левел LDAP сервери вибирають адміністраторів безпеки LDAP серверів друго рівня, і т.д.;
Чат має власний верифікований LDAP сервер, захищений по TLS.
Всі повідомлення шифруются завжди. Кожне повідомлення шифрується за допомогою моделей полів Галуа GF(2^m) GCM або з
використанням еліптичних кривих та групових операції на них, які зберігаються в X.509 CMS конвертах.
Нешифровані месаджі не в CMS конвертах заборонені в системі.
Повідомлення не зберігаються на сервері. Транзієнта оперативна черга доставки повідомлень на MNESIA.
Кожне повідомлення після останнього кроку отримання квитанції про доставку кореспондентом знищується на сервері
і залишається відтепер тільки на клієнті. Так працювали перші версії Viber;
Не збираєм метадані. Месенжер не зберігає ніяких метаданих, як то локація, IP адреса,
інформація про апаратуру клієнта, тощо. ЧАТ використовує тільки наступні внутрішнін ідетифікатори: client,
device, profile, roster виключно для роутінга повідомлень. Користувач також має змогу обрати зберігати
контактну книгу (ростер) не на сервері, а на клієнті;
Ростер на клієнті. Вся контактна інформація про ваші підписки, чати, канали, та компанії
може зберігатися ексклюзивно на клієнті. Після логіна на іншому присторії користовач має змогу отримати
контактну книгу (ростер) з іншого клієнта, який працює на іншому пристрої;
Ростер на сервері. Вся контактна інформація про ваші підписки, чати, канали та компанії
зберігається в корпоративній LDAP дерикторії яка має багато каналів реплікації;
Багато контактних книг. Для ведення подвійного та багааватарного життя на платній основі
та для корпоративних акаунтів клієнт підтримує мульті-ростерність та верифікує акаунти за допомогою
phone та mail способів верифікації клієнта;
Відкритий код. Імплементація Erlang SSL пережила heartblead тому була
вибрана як основа безпеки TLS з'єднань в архітектурі ЧАТ. Всі серверні субкомпоненти системи написані
на Erlang та доступні для верифікації та ліцензування публічно. Єдиний і повний автор усіх компонент
системи який здійснює свою політику згідно BDFL собору є Максим Сохацький.
ПРОТОКОЛ
Поняття протоколу:
Записи. По цим топікам передаються наступні Erlang записи (records):
Index, Typing, Search, Feature, Service,
Presence, Friend, Tag, Link, Message, Member,
Room, Contact, Star, Ack, Auth,
Roster, Profile, History, push, io закодовані ASN.1/DER серіалізатором.
Модулі. Протокол ЧАТ реалізований у наборі модулів-підпротоколів: ФАЙЛ, ІСТОРІЯ, ПОСИЛАННЯ, ПОВІДОМЛЕННЯ,
ПРИСУТНІСТЬ, ПРОФІЛЬ, PUSH, КІМНАТА, РЕСТЕР, ПОШУК, АУТ. Щоб отримати повну специфікацію,
перейдіть до папки priv/proto. Реалізація сервера CHAT покладається лише на підключення ISO/IETF,
такі як DNSSEC, X.509 CSR, LDAP, QUIC, WebSocket.
Додатки. CHAT — це простий сервер обміну миттєвими повідомленнями на основі стандартів ITU.
Він використовує протокол опису ASN.1 і бінарну серіалізацію DER у різних своїх додатках:
LDAP, DNS, CA. Безпечний за замовчуванням. Додаток CHAT має функцію підпису/підтвердження,
шифрування/розшифрування, увімкнену для кожного окремого переданого повідомлення.
Доставлені повідомлення видаляються з сервера після підтвердження отримки одержувачем.
Це заміна 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/DER/TLS/TCP CHAT протокол.
[2]. Ю.І. Горбенко, І.Д. Горбенко. — Інфраструктури відкритих ключів. Електроний цифровий підпис. Теорія та практика.
[3]. ДСТУ 4145-2002 — Інформаційні технології. Криптографічний захист інформації.
Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та перевірка.
[4]. SEC2 — Recommended EC Domain Parameters.
[5]. Eric Schorn — A Tour of Curve25519 in Erlang.
ТЕХНІЧНІ ХАРАКТЕРИСТИКИ
CHAT/CMS/TLS
NIST: SP 800 38D-56A-57-162, P-384, P-571;
ISO: 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. Він використовує
LDAP сервер для корпоративних ієрархічних
конфігурацій, та бінарну серіалізацію ASN.1 DER.
ЧАТ складається з наступних додатків:
1) LDAP для директорії користувачів;
2) DNS для безпеки іменного простору;
3) 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.