Alternatives to Preshared Key for IPSec
OpenVPN just doesn't have widespread support at the operating system level and IPSec is required in many circumstances. PIA only supports static preshared keys that are global to all users, which makes it vulnerable to MITM attacks.
Ideally, you would distribute certificates. This may not make sense at the protocol level, but I would think the simplest solution would be to generate a preshared key for each account. But even relying on IKE would be better than using global preshared keys!
Comments
As far as your concerns about PIA using a global shared key for IPSec, if that's true then it concerns me too.
The choice words "at the OS level" are ambiguous. Do you want only to use software that comes preinstalled in the OS? If so, I guess you have a lovely array of screensavers and nothing else.
In which case he should stop worrying. If his opponent is a commercial actor it's prohibitively expensive to MITM a particular user and if his opponent is a state actor, they're already inside his client PC, every website he visits, and the carrier grade firewalls.
Anyone else see the news that Juniper's Netscreen boxes have been remotely reconfigurable and had VPN broken - passing traffic but not keeping it secret - for several years?
http://www.wired.com/2015/12/juniper-networks-hidden-backdoors-show-the-risk-of-government-backdoors/
If that can be done to Juniper, it can be done to anyone.
Or just use hybrid RSA for IPSec.