idea for application

Name and Description of application

Name: clientguard

Description: this application is a VPN application that would ideally be open source.

The idea  is to make a hardware-enforced, no logging VPN protocol that would secure devices VPN traffic from even the VPN company itself.

How would it work?

If you are in IT, you will know most VPN providers use server side key generation. This is because VPNs, as stated by palo alto networks , were used to securely connect to private networks.

These are the norms, such as openvpn , ipsec , and even wireguard .

The problem

Server side key generation allows for administrators of the VPN provider to read logs of traffic and decrypt traffic.

The idea is to have no logging by making the key generation client side, meaning all the key generation happens locally, not on the server.

How would the key generation  work?

The client would work in 2 ways

The first way is using the trusted execution environment or secure enclave of the computer. Examples include: on android, trusty (android open source project) , or on IOS,  or on IOS, it would use the apple secure enclave

On windows, depending on a processor type, you can either have the intel TDX  or AMD TEE

The  only reliable tee however, is trusty due to it having an open source capability.

The problem with blackboxes, such as TdX, apples secure enclave, etc, is that you do not necessarily know what code is on it, and  the problem with that is if a vulnerability has been executed and it even partially relies on is remote code execution, this means your TEE has been tanked!

The solution to this is to store keys on a hardware security module that is open source.

An example of this is the   nitrokey HSM   which securely stores keys, and can be exported anywhere.

As an added benefit is the fact that if PKCS#11 libraries are programmed into the keys rust APIs, you will be able to conduct perfect forward secrecy  which will allow secure key deletion and rotation, meaning that a key compromise will not compromise the entire session.

Cryptography

Since we will theoretically use asymmetrical encryption, we should use algorithms such as kyber and dilithium  for post quantum cryptography algorithms.

This will allow for post quantum encryption.

Note: if you want to build a national security system, this algorithm is part of the commercial national security algorithm sweet 2.0

This key would be used to authenticate  the session and secure the connection itself.

ML-KEM  would be used to encrypt the traffic itself during the connection.

It can both encapsulate and exchange keys, which both allows for confidentiality during receiving of the key, and protection of the traffic.

In an ephemeral key setup, ML-KEM will be able to do perfect forward secrecy.

Rules of the application:

Where this will not work

The instructions (process described)

The user, assuming a server is configured by the administrator, inserts their key, or can choose to use the device's secure enclave.

The first key  for the session is generated by the client, which will be a libreSSL or a PKCS#11 library.


If using nitrokey HSM, a rust APi will be used for key generation on key.

After the key is generated, the VPN client verifies that the key is generated, and if key verification is successful, the VPN will connect.

The server will be notified of the connection, however, will not have the key.

The output

The VPN connects, and the connection is secure.

The client also returns the VPN IP address, which a user can type ipconfig or a website like whatismyip.com  to check if the IP is the same. If it matches, the VPN has successfully connected.

After around 15minutes, every time, the key will expire, and a new one will regenerate either on the enclave or the Hsm.

If the HSM is unavailable, the client will not fall back to the builtin device enclave, because it assumes the key is the enclave and not the device.

Possible vulnerabilities

Storage information

Conclusion

Clientguard ames to solve the no VPN logs by using client side key generation to generate cryptographic keys to ensure that logs are not accessible to the server. It generates keys using the secure enclave of a device or TEE (E.G. android trusty, IOS secure enclave, intel TDX) or a hardware security module (E.G. nitrokey) to securely delete, generate, and rotate keys. The keys will never be stored on the device itself or on ram outside of the secure enclave or outside the key, and the server will never be able to grab this key, ensuring privacy.

No key=no VPN logs.