Yes, we are currently using freerdp due to its licensing.  I have been using 
the current source for rdesktop as a source of information but I am waiting on 
a copy of the linux version of our CSP so I can test it completely with the 
smart cards we use.

I don't think I am encoding the authInfo data differently than what rdesktop is 
doing but a network capture of a testing using rdesktop will prove that out.  
Wonder if I could get in touch with the devs that did the SC implementation for 
rdesktop?

Thanks,

Nik Twerdochlib
Software Developer

-----Original Message-----
From: Peter Åstrand [mailto:astr...@cendio.se] 
Sent: Tuesday, October 01, 2013 2:47 AM
To: Nik Twerdochlib
Subject: Re: [Freerdp-devel] Adding logon smartcard authentication support


Hi. We have recently added Kerberos and smart card auth to rdesktop. Don't know 
the details though. Are you forced to use FreeRDP and the Apache license?

Regards,
Peter

On Mon, 30 Sep 2013, Nik Twerdochlib wrote:

> I have been working on adding support for performing authentication using a 
> smartcard certificate.  So far I have the authentication piece working using 
> Kerberos, but have run into an issue with the last TS_REQUEST message.  The 
> authInfo data that I am building, consisting up TS_SMARCCARD_CREDS and 
> TS_CSPDATADETAIL data gets encrypted and the TS_REQUEST is sent to the 
> server.  The server is responding with a TLS 80 Fatal Error and dropping the 
> connection.  I have not been able to determine why  this is happening so I am 
> wondering if anyone could provide any input?
>
> The TS_SMARTCARD_CREDS structure includes a keyspec value of 1 and the 
> TS_CSPDATADETAIL structure.  I am not sending any data for the optional Hints 
> fields.  The TS_CSPDATADETAIL structure includes data for the cardName, 
> readerName, containerName and cspName fields.  These strings are Unicode.
>
> Looking at a dump of the ber data, before encryption seems to show that the 
> asn.1 structure is correct.  Sample of the TS_Credentials sequence is below:
>
> Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
> 00000000  30 82 01 7E A0 03 02 01 02 A1 82 01 75 30 82 01  0'.~ ....¡'.u0'.
> 00000010  71 A0 0A 04 08 31 00 32 00 33 00 34 00 A1 82 01  q ...1.2.3.4.¡'.
> 00000020  61 30 82 01 5D A0 03 02 01 01 A1 1A 04 18 43 00  a0'.] ....¡...C.
> 00000030  53 00 53 00 49 00 20 00 4B 00 6F 00 6E 00 61 00  S.S.I. .K.o.n.a.
> 00000040  20 00 32 00 36 00 A2 6A 04 68 53 00 43 00 4D 00   .2.6.¢j.hS.C.M.
> 00000050  20 00 4D 00 69 00 63 00 72 00 6F 00 73 00 79 00   .M.i.c.r.o.s.y.
> 00000060  73 00 74 00 65 00 6D 00 73 00 20 00 49 00 6E 00  s.t.e.m.s. .I.n.
> 00000070  63 00 2E 00 20 00 53 00 43 00 52 00 33 00 33 00  c... .S.C.R.3.3.
> 00000080  78 00 20 00 55 00 53 00 42 00 20 00 53 00 6D 00  x. .U.S.B. .S.m.
> 00000090  61 00 72 00 74 00 20 00 43 00 61 00 72 00 64 00  a.r.t. .C.a.r.d.
> 000000A0  20 00 52 00 65 00 61 00 64 00 65 00 72 00 20 00   .R.e.a.d.e.r. .
> 000000B0  30 00 A3 76 04 74 6C 00 65 00 2D 00 53 00 6D 00  0.£v.tl.e.-.S.m.
> 000000C0  61 00 72 00 74 00 63 00 61 00 72 00 64 00 4C 00  a.r.t.c.a.r.d.L.
> 000000D0  6F 00 67 00 6F 00 6E 00 32 00 30 00 34 00 38 00  o.g.o.n.2.0.4.8.
> 000000E0  2D 00 61 00 65 00 33 00 37 00 32 00 31 00 35 00  -.a.e.3.7.2.1.5.
> 000000F0  65 00 2D 00 62 00 64 00 36 00 38 00 2D 00 34 00  e.-.b.d.6.8.-.4.
> 00000100  36 00 31 00 36 00 2D 00 62 00 66 00 33 00 64 00  6.1.6.-.b.f.3.d.
> 00000110  2D 00 64 00 61 00 61 00 31 00 36 00 62 00 34 00  -.d.a.a.1.6.b.4.
> 00000120  31 00 63 00 38 00 37 00 39 00 A4 56 04 54 43 00  1.c.8.7.9.¤V.TC.
> 00000130  68 00 61 00 72 00 69 00 73 00 6D 00 61 00 74 00  h.a.r.i.s.m.a.t.
> 00000140  68 00 69 00 63 00 73 00 20 00 53 00 6D 00 61 00  h.i.c.s. .S.m.a.
> 00000150  72 00 74 00 20 00 53 00 65 00 63 00 75 00 72 00  r.t. .S.e.c.u.r.
> 00000160  69 00 74 00 79 00 20 00 49 00 6E 00 74 00 65 00  i.t.y. .I.n.t.e.
> 00000170  72 00 66 00 61 00 63 00 65 00 20 00 43 00 53 00  r.f.a.c.e. .C.S.
> 00000180  50 00                                            P.
>
> I do not receive errors on the EncryptMessage() call.  The buffer for the 
> token is set to cbSecurityTrailer, and the resulting authInfo buffer is 
> constructed using the resulting token size and the encrypted data.  I have 
> even tried prepending the length of the encypted data in authInfo and still 
> got the same error.
>
> In comparison of this message to the same message captured using MSTSC using 
> SC authentication shows that my message is +24 bytes.  It seems like that 
> number should stick out enough to be noticed but after tearing my message a 
> part over and over I cannot find any data that adds up to 24 bytes.  Since I 
> cannot decrypt the authInfo data from the MTSC network capture I cannot 
> compare byte for byte.
>
> So I am hoping there are a few RDP Gurus on this list that might be willing 
> to shed some light on what the RDP server is validating on this TS_REQUEST 
> message that would cause it to through an alert.
>
> Thanks,
> Nik
> ----------------------------------------------------------------------
> -------- October Webinars: Code for Performance Free Intel webinars 
> can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the 
> most from the latest Intel processors and coprocessors. See abstracts 
> and register > 
> http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.c
> lktrk _______________________________________________
> Freerdp-devel mailing list
> Freerdp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freerdp-devel
>


---
Peter Astrand           ThinLinc Chief Developer
Cendio AB               http://cendio.com
Teknikringen 8          http://twitter.com/ThinLinc
583 30 Linkoping        http://facebook.com/ThinLinc
Phone: +46-13-214600    http://plus.google.com/112509906846170010689
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to