EChat (BETA) Back to Home Page

EChat is a 2 part program consisting of a server component and a client component. The server component (EChatSvc.exe) runs as a Service, and must be accessible from the WAN (Wide Area Network aka Internet) on a listening port of your choosing. The service has no visible components and operates with system privileges in Session 0. It comes with a small management program (EChatCtrl.exe) to provide the necessary interface between the Service Manager (services.msc) and the service itself. The administrator would use a client program directed to the loopback address ( or ::1) to monitor the server. There is also daily log files to record access and errors.

The server component can also be run as a Desktop application (EChatS.exe) with a small window, which is how most users will operate, at least in the beginning. Everything noted about the Service above also applies to the Desktop server component, as it is essentially the same program. The only noticeable difference is the location of the log files. The Desktop server component logs to a sub directory (folder) of the directory where it is located, whereas the service logs to "\Windows\System32\Logfiles\EChat\".

EChat is short for Encrypted Chat, as all conversation data is fully encrypted using a 256 bit random key. Each client must have a UserID, and a password is required to activate the Client program and connect to the server. When the Client connects to the server, it sends the UserID and a Public ECC (Elliptical Curve Cryptography) key. The server uses that Public key and it's own Private key to generate a "Shared Secret". The server then sends it's Public ECC key back to the Client. The Client uses it's own Private ECC key and the Public key from the server to generate the same "Shared Secret" as the server. The Client then Encrypts a hash of the password, and sends it back to the server. The server decrypts the password hash and verifies that it matches the UserID. It then encrypts a randomly generated 256 bit Key using the "Shared Secret" and sends it back to the Client. The "Shared Secret" is only used once, and all further transmission uses the Random Key.

The Client part program operates as a normal User Application from the desktop, and consists of an initialization window and an actual messaging window. The initialization window sets the various parameters and makes the connection with the server. All parameters are saved in the registry when the program is exited. The connection can be made temporary by filling in the IP Address, and Port, or it can be added to the Connection List using the "Add To List" button. When the connection is chosen from the Connection List, it is automatically moved to the top of the list, so that it will be the default the next time the program is loaded.

These programs in theory support non-Latin character sets (eg. Chinese/Arabic), but these have not been tested extensively.

The client and server also support IPv6, but these have experienced very limited testing due to the lack of a native IPv6 network.

NOTE: The Cryptography routines will probably work on all versions of Windows, but the TCP/IP portion of the program will only work on dual stack systems that support both IPv4 and IPv6. This more or less restricts it to Windows Vista or later.

Back to Top

| Home Page