<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:973175085;
        mso-list-type:hybrid;
        mso-list-template-ids:428391936 1951284910 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\.\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m not joking when I say that I am looking to setup the most secure-possible remote access VPN setup.  Scenario is 1 connection at 1 time while on the road so I don’t care about performance hits with ciphers and hashing algorithms or key exchange parameters or any other attributes for setting up the tunnel and ensuring authentication is stronger than necessary in every way.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Can anyone offer any suggestions if they have already done the research?  I am a bit opposed to doing 2-factor authentication by introducing other software into the mix = increasing the attack surface.  But would like to do some other form of 2 factor authentication, like a USB stick or smart card or something, is this possible using x.509 with pam?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have a dedicated and hardened Debian box with only the necessary software installed (command line and the barest skeleton possible)…… it’s literally barebones and I’m only going to install libreswan and any other dependencies on it.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’d like to use IKEv2 with the strongest configuration possible – but have had some issues in finding whether or not  I can utilize client certificates AND a username and password, or if there are custom checks I can do on the host (registry values, software installed, certain services running, etc.) I don’t think this is possible but wanted to ask anyway.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This will have to be a NAT-T scenario as my box is going to be reachable via pass-through (on that note can I use a custom port number, and do port translation with an already complicated NAT-T setup?).  I will only be using the VPN tunnel to allow for the remote access client to utilize my home network instead of an insecure wireless or wired network on the road.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’d like to avoid NIST recommendations if possible because I don’t trust the selection process….<o:p></o:p></p><p class=MsoNormal>For some base requirements I’m thinking – main mode, IPv4 only as I don’t trust IPv6 in any way yet, the strongest encryption algorithm (CHACHA?), the most entropic pseudo-random function PRF_HMAC_SHA2_512?, the strongest hashing integrity algorithm AUTH_HMAC_SHA2_512_256?, the strongest ESP encryption = AES-CBC (SUCKS), the strongest ESP authentication algorithm = AES-GMAC with AES-128?, the strongest DH transform brainpoolP512r1?, strongest certificate (and way to most safely secure password for cert) and hashing algorithm SHA3? and other attributes public key size limit = 4096 8192 do we know what the threshold is where we may be introducing other issues obviously we don’t need to go with something insanely high but I don’t want it to even be possible assuming that governments lie about computing power which they do? Prime number generate for seeding for certificate with a limit on value lower bounds, the strongest , no compression, strongest hash algorithm SHA2-512 hash algorithm?, strongest secure password method PACE?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Depending on the chosen configuration – obviously there would be conflicts above<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Questions:<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>1.)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]>Can I do main mode IKEv2 with a remote access to VPN server NAT-T setup?<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>2.)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]>Can I do AH and ESP with this setup, or is AH or ESP alone more secure, I know AH is typically tunnel and ESP is typically transport but there are differing opinions online?<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>3.)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]>Can I do client certificate and password without using another product piece of software that relies on an external source e.g. google or RSA tokens one OTP – maybe a usb stick or smart card or some other software token that does not have to reach out externally? My concern is the VPN server having to get this information primarily – best case scenario would be cert and pass PLUS a google OTP or RSA token number. I know I’m reaching on this one, just wondering what thinking out of the box solutions there might be that libreswan is capable of doing<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>4.)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]>Can I check host configuration and OS or other software attributes before finalizing (finalizing meaning at whatever point would be secure and still possible)<o:p></o:p></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>5.)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]>Can anyone list the most secure of each IKEv2 spec?  In my research the ones I’ve listed above are the best – chacha, brainpool, SHA2, public key sizes greater or equal to 4096 – but for the others I don’t know – like ESP, AH, PRF, hashing integrity algorithm, prime number seeding with boundaries on low numbers,  secure password method, etc.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Have I missed anything ?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p></div></body></html>