[Openswan Users] Windows 8.1 L2TP/IPsec with certificate not working

Daniel Minder daniel.minder at uni-due.de
Fri Mar 21 17:11:00 EDT 2014


Dear all,

I have openswan 2.6.39 running on a public server (no NAT on server side).

On a Windows machine I have a VPN configured with L2TP/IPsec and 
certifacte based authentification. The certificate is self-signed and 
imported to the certificate store of the computer.

This setup works perfectly on Windows Vista. However, it does not work 
on Windows 8.1 any more.

I switched on plutodebug and compared the two session establishments. 
 From Vista, I see messages as defined in RFC2409 (IKEv1) section 5.1:
         Initiator                          Responder
        -----------                        -----------
         HDR, SA                     -->
                                     <--    HDR, SA
         HDR, KE, Ni                 -->
                                     <--    HDR, KE, Nr
         HDR*, IDii, [ CERT, ] SIG_I -->
For Windows 8.1, the first four messages are similar, but the 5th is 
different. Instead of exchange type ISAKMP_XCHG_IDPROT I get this one:

| *received 92 bytes from xx.xx.xx.xx:500 on eth2 (port=500)
|   a3 aa 87 ba  dc 53 77 55  bf af cf f6  02 a7 88 3d
|   08 10 05 01  9c 83 6b 16  00 00 00 5c  3a 59 56 8c
|   1c 39 4a ae  18 31 2d 40  87 20 69 a2  67 0a 0c 9b
|   80 d0 f4 89  70 fb c4 5a  2f ff bd 0a  63 ac 06 43
|   fe 62 ef f3  86 91 42 65  10 a6 6b 5d  1d b9 03 5e
|   b8 77 e9 84  76 ba 3d 5f  ca a0 46 7c
| **parse ISAKMP Message:
|    initiator cookie:
|   a3 aa 87 ba  dc 53 77 55
|    responder cookie:
|   bf af cf f6  02 a7 88 3d
|    next payload type: ISAKMP_NEXT_HASH
|    ISAKMP version: ISAKMP Version 1.0 (rfc2407)
|    exchange type: ISAKMP_XCHG_INFO
|    flags: ISAKMP_FLAG_ENCRYPTION
|    message ID:  9c 83 6b 16
|    length: 92
|  processing version=1.0 packet with exchange type=ISAKMP_XCHG_INFO (5)
| ICOOKIE:  a3 aa 87 ba  dc 53 77 55
| RCOOKIE:  bf af cf f6  02 a7 88 3d
| state hash entry 8
| peer and cookies match on #5, provided msgid 00000000 vs 00000000/00000000
| p15 state object #5 found, in STATE_MAIN_R2
| processing connection l2tp-X.509[3] xx.xx.xx.xx
| last Phase 1 IV:
| current Phase 1 IV:  f8 c1 47 d0  e5 e9 a4 e4  b2 4d cf 60  eb c5 f1 b2
| current Phase 1 IV:  31 d6 f1 f0
| computed Phase 2 IV:
|   23 38 ca b8  0d a0 a1 70  52 3e 83 25  eb 83 ab 3d
|   b8 bd 98 0f
| received encrypted packet from xx.xx.xx.xx:500
| decrypting 64 bytes using algorithm OAKLEY_AES_CBC
| decrypted:
|   db 62 b5 6c  a9 b3 8a da  35 50 eb 23  71 76 38 36
|   0a 99 cb 61  b1 62 2e 56  00 00 00 1c  00 00 00 01
|   01 10 00 1c  a3 aa 87 ba  dc 53 77 55  bf af cf f6
|   02 a7 88 3d  00 00 00 00  00 00 00 00  00 00 00 00
| next IV:  1d b9 03 5e  b8 77 e9 84  76 ba 3d 5f  ca a0 46 7c
| got payload 0x100(ISAKMP_NEXT_HASH) needed: 0x100 opt: 0x0
"l2tp-X.509"[3] xx.xx.xx.xx #5: next payload type of ISAKMP Hash Payload 
has an unknown value: 219


Does Windows 8.1 really send me a broken packet? I guess it's not the 
decryption since the last 12 bytes are all 0 which really seems like 
padding bytes for the encryption to work. I guess the ISAKMP_XCHG_INFO 
exchange type also requires the general payload header, i.e. the first 
byte should indicate the next payload type - which is 219 here.


Has anyone successfully set up VPN with certs on Win 8.1? Any help is 
appreciated!


Best regards,
Daniel


More information about the Users mailing list