This is a 2 part program consisting of a server component and a client component. Because the server component services more than one client, the server must use a Socket Array, which requires an ActiveX Control. Since I cannot post OCX components, I have also provided the OCX code. Instructions on compiling and registering the component are included in the Readme file. To test your new OCX, I have included prjWebTest. Remember to change the NewSocketOCX reference lines in the project and the form.
The server component operates as a Service under the control of the Service Manager. As such, it has no visible interface, and the Administrator uses a client component to monitor the service. There is also daily log files to log access and errors. It offers service in straight text or encrypted modes, in either IPv4 or IPv6. IPv6 has experienced very limited testing due to the lack of a native IPv6 network.
For the Encryption mode, the client passes the User Name (Handle) and the Public Exchange Key (2048 bit) to the server. The server then uses that key to pass a random 256 bit Symmetric Key back to the client. The client then uses the Private Exchange Key to decrypt the Symmetric Key. Because the server is simply reflecting encoded traffic back to all the connected clients, it does not need to decrypt any of the traffic. The Exchange Key pair is created automatically by the operating system if it does not already exist.
Encoded traffic prevents network snooping, but cannot be considered secure without additional security by way of a password or secret token. Anyone with the correct client software can connect and obtain the current Symmetric Key.
J.A. Coutts
The server component operates as a Service under the control of the Service Manager. As such, it has no visible interface, and the Administrator uses a client component to monitor the service. There is also daily log files to log access and errors. It offers service in straight text or encrypted modes, in either IPv4 or IPv6. IPv6 has experienced very limited testing due to the lack of a native IPv6 network.
For the Encryption mode, the client passes the User Name (Handle) and the Public Exchange Key (2048 bit) to the server. The server then uses that key to pass a random 256 bit Symmetric Key back to the client. The client then uses the Private Exchange Key to decrypt the Symmetric Key. Because the server is simply reflecting encoded traffic back to all the connected clients, it does not need to decrypt any of the traffic. The Exchange Key pair is created automatically by the operating system if it does not already exist.
Encoded traffic prevents network snooping, but cannot be considered secure without additional security by way of a password or secret token. Anyone with the correct client software can connect and obtain the current Symmetric Key.
J.A. Coutts