Hello Heiko,

> However it was only an example and thus
> didn't have to make any practical sense. =)

:-)

> You forgot the GUI in this picture. If the service is connected to the
> management interface the GUI can't connect anymore.

?
If I understand you correctly it works this way:

openvpnserv.exe spawns openvpn.exe
openvpnhelperserv.exe spawns openvpnhelper.exe

openvpn.exe runs with no privileges at all (local service) and
openvpnhelper.exe with priviliges to modify routing (network configuration 
operator)

openvpn.exe communicates via pipe to openvpnhelper.exe, for example "please add 
a route"

the user client (for example perl script) uses management interface to
connect to openvpn.exe (please establish connection, credentials are xyz)

> Interesting, could you elaborate?

The process needs to much rights.

AFAIK openvpnhelper.exe would than need SE_ASSIGNPRIMARYTOKEN_NAME
Why should it have so much power?

Can you explain the architeture in more detail?

Do you need it for smartcard auth? I don't know the details of Smartcard API ...

> Not users, really. More like session. So you can connect to different server
> simultaneously.

Yeah, that's a point.
But I think it would only need management commands like "connect vpn session 1"
"disconnect vpn session 1", "supply credentials for sessions 1".
Credentials could be more than username/password, for example tls key
or smartcard "connection".

>  Of course this could be used by two different users at the
> same time or different impersonations in the same session, while still running
> ovpn with the credentials of the entity who started openvpn. So the point
> isn't really that many user can connect, but that the running sessions will be
> isolated from each other by the service.

hmm, I'm unsure if you would win something.
If the network communicating process is compromised (exploited from
internet) than it could get all the credentials via normal interface
from processes that holds them.

greetings
Carsten


Reply via email to