X.509




CHAT X.509 1.0

PRINCIPLES

The project adheres to the following principles that shape its goals:

Privacy. Every message is encrypted using Galois/Counter Mode (GCM) over finite fields GF(2m) or elliptic-curve operations, and is stored in X.509 CMS envelopes. Unencrypted messages outside CMS envelopes are prohibited in the system.

Verifiability. The complete source code of the CHAT X.509 clients and server components is publicly available on GitHub. This enables interested parties to audit the code for security and correctness. All server subcomponents are written in Erlang and are open for public verification and licensing. The sole and complete author of all system components, who governs the project under the Benevolent Dictator for Life (BDFL) cathedral model, is Maxim Sokhatsky.

Interoperability. The application complies with international and national telecommunications (ISO/IETF/ITU/IEEE/ANSI) and cryptographic (NIST/FIPS) standards. Nothing proprietary has been invented — the implementation strictly follows established standards, as done by Nokia, Siemens, Ericsson, Apple, Microsoft, Google, and others.

Minimalism. The base application is only 5 MB. We believe that high-quality software must be verifiable at every level and therefore must remain minimal. The app is built on the modern declarative SwiftUI framework and replicates the aesthetic of native iOS applications.



GOALS

Contacts are not stored on servers. All contact information — subscriptions, chats, channels, and organisations — can be stored exclusively on the client. After logging in on another device, the user can synchronise their roster from another active client.

Messages are not stored on servers. Delivery uses a transient in-memory queue (MNESIA). Once the final delivery receipt is received from the recipient, the message is deleted from the server and remains only on the client — similar to early versions of Viber.

Metadata is not stored on servers. The messenger collects no metadata such as location, IP address, or device information. CHAT uses only internal identifiers (client, device, profile, roster) for routing purposes. Users may also choose to store their roster locally rather than on the server.



SOCIETY

Made for people:

— Free secure anonymous messenger;
— Free secure verified messenger;
— Protection of personal data in online communication;
— Calendar (iCal) and Contacts (vCard) organiser;
— Reference-grade iOS UI design, dependency-free application;
— Open-source console client;


GOVERNMENT

Support for digital transformation programmes:

— B2C service channels for public authorities;
— Digitisation of public services and citizen appeals;
— Online electronic document signing;
— Integrated mass-notification systems;
— State or corporate DSTU 4145 authentication.


BUSINESS

Forms of cooperation:

— B2C service channels for business;
— Autonomous on-premise deployments;
— Hosted service by subscription on our infrastructure;
— Multi-roster configurations by subscription;
— Integration API and SDK for partner programmes;
— Custom configuration to business requirements.


PROTOCOL

Channels, Messages and Services. User keys consist of three types of key pairs (more are possible, but only three types are defined):
1) First SECP384R1 pair secures the TLS 1.3 channel using elliptic-curve cryptography with our own CA;
2) Second ED25519 pair secures messages;
3) Third pair provides access to state and legal services under DSTU-4145.
Before communication begins, each participant announces the public parts of these asymmetric keys.

Openness of the X.509 platform. A single application, like classic IRC or XMPP clients, provides access to all compatible CHAT X509 servers. The client therefore supports an arbitrary number of keys and servers, with all such information stored exclusively on the client.



SPECIFICATIONS

STANDARDS

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.

CRYPTOGRAPHIC ALGORITHMS

Key agreement: SECP-571r1, GF(2^509);
Key derivation: KDF, PBKDF2, HKDF, AES-KW;
Ciphers: AES-CBC, AES-GCM, AES-CCM, КАЛИНА;
Hashes: SHA-2, POLY-1305, AES-CMAC, КУПИНА, CAdES;
Group protocols: MLS;
Post-quantum cryptography: KYBER, IBE.