09-09-2009 03:55 PM
I saw a link that talks about how LabVIEW 2009 has added support for SSL. What I didn't see mentioned is, what version? I have to interface to a server that will be using TLSv1.0 which is supposed to be equivalent to SSL v3.0. I tried to determine this from the screen shots at this link, but they're too grainy.
http://decibel.ni.com/content/docs/DOC-5941
09-09-2009 04:06 PM
09-10-2009 03:03 AM - edited 09-10-2009 03:04 AM
mrbean wrote:I saw a link that talks about how LabVIEW 2009 has added support for SSL. What I didn't see mentioned is, what version? I have to interface to a server that will be using TLSv1.0 which is supposed to be equivalent to SSL v3.0. I tried to determine this from the screen shots at this link, but they're too grainy.
http://decibel.ni.com/content/docs/DOC-5941
What you see in that post is the SSL support built into LabVIEW itself when acting as WebServer. What you want to do is having SSL support for your HTTP client implementation. Adding SSL support to such a setup is highly tricky when trying to do it in LabVIEW itself. Interfacing OpenSSL would be a possibility using the Call Library Node but that is a lot of work.
What I have done in the past is simply implement a HTTP client in LabVIEW that supports proxy server communication and then use stunnel to let it handle the security aspects of the HTTPS communication. Basically you point your HTTP VIs to connect to the local stunnel port and let stunnel do the actual HTTPS encryption. Fairly easy to do, but your HTTP VIs need to support proxy communication (that is not really difficult, but you need to connect to the proxy port and send the fully qualified URI in your HTTP requests).
Rolf Kalbermatter
09-11-2009 02:37 PM
09-11-2009 03:34 PM
While with normal HTTP you connect directly to the target server and only send the URI path without server address in the HTTP request, in the proxy case you will connect to the proxy address and send the entire URL including the server address in the HTTP request.
Rolf Kalbermatter
09-15-2009 02:17 PM
I'm still stuck on your statement "simply implement a HTTP client in LabVIEW that supports proxy server communication and then use stunnel to let it handle the security aspects of the HTTPS communication". Other than a little reading on all of this, I'm quite green in this area. I don't know if you're able to break this down into baby steps for me (you won't insult me).
What we have now is a server that (over secure link) sends html (web pages) to a client that (using Internet Explorer) displays these pages. The user enters button clicks, data, etc, to command the server to do certain tasks (the server is actually a radio). The server and client code were written by a third party. Now, WE are supposed to develop our own client such that the server (over this same secure link) can send me XML instead of html. I'm supposed to parse this XML and generate a http request using POST method (I saw where LabVIEW Web Server uses PUT and DELETE) and the web server will respond with HTTPS containing XML response (etc).
I was going to use easyXML from JKI Software to parse the XML, but that's about as far as I got. First, I'm not sure how to establish the server communication, and second, I'm not sure how to handle the security aspects. You mentioned using stunnel - I've also seen QT Framework, and Visual C++ suggested as I think it has similar MFC classes that support http implementation.
To throw another variable into this ... I'm used to using TestStand to sequence through all my LabVIEW tests. I'm having a very difficult time conceptualizing (if that's a word) how this secure link is going to be "kicked off" by TestStand, but handled by LabVIEW and stunnel (or equivalent). Most likely, due to time constraints, I'll have to punt this to some other group that has experience in this sort of thing. I was just hoping to learn something new.
09-16-2009 02:41 PM
Hey mrbean,
Unfortunately, I am not sure I fully understand what it is you are trying to do. However, take a look at this Knowledgebase that discusses how LabVIEW supports SSL and HTTPS.
09-17-2009 01:35 AM - edited 09-17-2009 01:36 AM
He wants to connect from a LabVIEW app to a HTTPS server. The added support in LabVIEW is for HTTPS when acting as WebServer itself, which this is not about. I'm still trying to get a drop in replacement for the TCP/IP VIs that would allow that
Unfortunately SSL is a little to complicated to be completely implemented in LabVIEW, aside of the security concerns of creating and using a security software with little to no peer review involved. So the only way to do this is to completely replace the TCP/IP built in nodes with VIs that access directly a shared library, which in turns uses OpenSSL for all the SSL stuff.
Rolf Kalbermatter