iOS client security question

Official client software for OpenVPN Access Server and OpenVPN Cloud.
Post Reply
lalamper
OpenVpn Newbie
Posts: 3
Joined: Wed Jul 10, 2013 10:02 pm

iOS client security question

Post by lalamper » Wed Jan 01, 2014 4:51 pm

Hi,

I am using your OpenVPN iOS client app on my iPad with satisfaction, it really rocks.
However, I have some question from security point of view, I hope you can make it clear.

I use the "standard way" to import profiles, keys, and certs to my device, I mean I add them with iTunes as a simple files and everything works fine.

Now, I would like to import some very important and confidential profiles as well, but before doing so, I need to know how and where my keys and certs stored inside the device. I know that it is also possible to import them as PKCS12, but in that case iOS keychain is used to store them, which is safe from one side, but I think it is unsecure, because my secrets can leave the device (iCloud backup)

I would like to avoid to make it possible to get my keys and certs out of my device, that is why I prefer store them locally. I do not trust in cloud. You know, this NSA and other issues are in the air.. :)

Of course, I can exclude OpenVPN client app from iCloud backup, but I am not sure if it is enough.

How do you see this?
Thanks,

User avatar
jamesyonan
OpenVPN Inc.
Posts: 169
Joined: Thu Jan 24, 2013 12:13 am

Re: iOS client security question

Post by jamesyonan » Thu Jan 02, 2014 12:50 am

OpenVPN Connect on iOS saves/accesses all profiles using the iOS VPN Framework APIs.

The only times that a profile touches the iOS filesystem as a flat file is:

(a) when iTunes/Safari/Mail is used to import a profile onto the device,

(b) OpenVPN Connect versions before 1.0.3 write the profile to a temporary file during connect then immediately delete the file.

For maximum security, I would suggest importing the client cert/private key into the iOS Keychain and remove it from the profile.

Be sure to use a strong device-level password, as this password essentially protects the iOS Keychain. Even though the iOS master password uses at least 10,000 PBKDF2 iterations to slow down automated password cracking, modern GPU-assisted password cracking rigs can achieve 1 billion iterations per second.

OpenVPN Connect also fully supports the OpenVPN challenge/response protocol, so you can add a challenge/response to your authentication procedure.

Having a strong password that is authenticated by the server and not saved on the device is a good defense against brute-forcing, as long as the server locks out the profile after a small number of authentication failures.

The OpenVPN Access Server supports both challenge/response authentication (such as Google Authenticator) and profile lockout after repeated authentication failures.

James

lalamper
OpenVpn Newbie
Posts: 3
Joined: Wed Jul 10, 2013 10:02 pm

Re: iOS client security question

Post by lalamper » Sun Feb 16, 2014 10:24 am

Hi James,

Thanks for your answer!

I have successfully stored my keys/certs in iOS keychain using pkcs12 file and I can connect easily.
However, when I was using normal profiles (not keychain integrated) I was able to encode the key files before importing and OpenVPN Connect asked for this password before connection.
After using the keychain to store secrets, I was not able to set up password, which is requested before connection. The only password I can set is the "export password", which needs when I want to add p12 file to the keychain. It is requested only one time.

Is it possible to use password before connect with keys/certs in the keychain? (I know challenge/response method also possible, but it is another thing)

By the way, I think most of the people are using 4 digit passlock code to protect their device, because using strong and difficult device level password makes everyday use very uncomfortable.
How much my secrects protected if I am using 4 digit passlock code?

Thanks,
L.

Post Reply