fwm
Full Member
Posts: 105
|
Post by fwm on Jun 21, 2018 12:30:00 GMT -5
Yes I just wondered if it would make it easier for others to test the DLL out and start creating their secure TLS/SSL programs! I would be interested in finding out what you do (but I understand you might want to keep professional and personal work separate from each other) as you obviously have a very deep technical understand of programming and, from the clues you have given, network operations, server admin and management etc. In fact you would probably be the kind of guy I would watch on YouTube, where you take on a project and tell the story of how you tackled it (someone like 8 Bit Guy, for example). I would be very interested in seeing what research and work has gone into this project so far, but I recognise that might mean revisiting old ground and repeating things from this thread. Those are just some of the things I would be interested in but I think others should share their ideas too. Keith.
|
|
|
Post by Chris Iverson on Jun 22, 2018 15:39:50 GMT -5
I'm currently working in a sysadmin position for a company, started a few months ago. Before that, I was doing helpdesk work for a contract company. Honestly, most of what I know is stuff I've managed to pick up or teach myself over the years. I just have a huge fascination for this kind of thing, and love to dig straight into all of it. I think I can make some basic outlines of how I go about working on something like this, and see how well those come across. Heh, I love those people on YouTube. One of my favorite YouTubers is Tom Scott, who has a LOT of fascinating videos about all KINDS of things, and he's also done a ton of things for Computerphile, that go into the kinds of things you eventually have to keep track of when programming. Two of my favorites are the videos on Time/Date and Time Zone programming and Internationalization programming. Time/Date: www.youtube.com/watch?v=-5wpm-gesOYi18n: www.youtube.com/watch?v=0j74jcxSunY
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Jun 23, 2018 14:18:34 GMT -5
Yes I recognise him but can't remember what I've watched of his before. He does speak the truth and I can relate to the endless number of tweaks - I had something similar once with a piece of software I wrote to extract shipping methods from an e-commerce system's order feed. It was OK when there were a couple of shipping methods, but when they started adding multiple shipping methods for multiple couriers and multiple countries, keeping track of the costs, delivery times, CSV formats and codes that each individual courier required when the manifest was uploaded.... it just becomes a nightmare of epic proportions! I'm surprised that customers still got the correct orders but they did! I too have picked up most things from trying, doing, failing, getting frustrated and then looking at how someone else has done it to lead me to my "ah ha!" moment. I love taking things apart, I love writing software in LB, I love doing all sorts of web hosting stuff (Windows and Linux )... Looking forward to the next update to the DLL when you have chance - and hope to start hearing other people's stories of how they may be able to use it. Keith.
|
|
|
Post by cryptoman on Jun 30, 2018 8:43:46 GMT -5
I just read the entire thread and impressed with the work done.
I needed this about 5 years ago and asked it in the old board but nobody was able to help.
So, at that time I solved the same problem with STUNNEL which uses OpenSSL underneath.
However, what is made here is perfect and ideal.
I didn't get used to the. new board so I missed it when it started otherwise I would have told you immediately MESOCK can not be used because it can not handle binary communications.
SSL/TLS is crypto comms and crypto must be done in pure binary comms. Anyway, it was discovered soon enough and this is solved.
Building a new MESOCK like DLL which handles both binary clear comms and SSL/TLS is awesome.
I will try it as soon as possible.
I will also see if we can add Hardware Crypto to this library because critical part in crypto comms is not just implementing the algorithms but most importantly how to protect your Private Keys.
You can not protect keys in a general purpose Windows PC or Server but you need an HSM or Smartcard.
Let's see if we can also add this final step.
|
|
|
Post by Rod on Jun 30, 2018 15:12:03 GMT -5
Eventually, once the basics are sound and you all believe you have the functionality you need it would be great to see a practical example of controlling an online object. A lamp, a lock a camera or whatever this online journey is about.
|
|
|
Post by Chris Iverson on Jun 30, 2018 17:22:16 GMT -5
Sorry I've not had much time to work on this lately - been busier at work due to some projects coming together all at once, and now I'm dealing with a waterlogged car after flooding in my area =/
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Jul 8, 2018 17:52:31 GMT -5
Chris,
Hope you have managed to get your car sorted and all the work projects tamed!
I was wondering if it would be worth posting some demo code with a working version of the DLL as there seems to be a few more people interested in this project.
Let me know what you think when you get a chance.
Keith.
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Aug 13, 2018 19:28:44 GMT -5
Hi Chris,
I just wanted to check-in with you and see how things are going with this project, and generally?
Haven't seen you active for a while so hope everything is good and that we'll see you back on here soon!
Keith.
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Sept 8, 2018 12:50:54 GMT -5
Hi all,
As an update to this project, I have been using it very successfully for the last couple of months for secure TCP connections from my Liberty Basic programs. What Chris put together was amazing and I do hope that he is able to find the time to continue to develop the DLL and add in the additional features he spoke about, but for now the DLL does everything the old mesock.dll does, but adds in secure connections.
I also spent some time learning C++ and modified it to include the PING command I spoke about at one point with Chris, so I can now also use the DLL to ping a server via hostname or IP address if I want to check the connection times etc. before establishing TCP connections. Previously I was having to run a command line command from LB to run the PING command, save the result to a text file and then read it back into my program. This got very messy and unreliable sometimes so having this functionality built into a DLL is now so much more efficient. At the moment I have only implemented the IPv4 version of the ping check but eventually I hope to implement the same for IPv6 too.
If anyone is interested, please reply and I will post the DLL and some instructions, as I had discussed previously with Chris.
Keith.
|
|
|
Post by Mark Dunham on Sept 8, 2018 18:47:02 GMT -5
Hi all, As an update to this project, I have been using it very successfully for the last couple of months for secure TCP connections from my Liberty Basic programs. What Chris put together was amazing and I do hope that he is able to find the time to continue to develop the DLL and add in the additional features he spoke about, but for now the DLL does everything the old mesock.dll does, but adds in secure connections. I also spent some time learning C++ and modified it to include the PING command I spoke about at one point with Chris, so I can now also use the DLL to ping a server via hostname or IP address if I want to check the connection times etc. before establishing TCP connections. Previously I was having to run a command line command from LB to run the PING command, save the result to a text file and then read it back into my program. This got very messy and unreliable sometimes so having this functionality built into a DLL is now so much more efficient. At the moment I have only implemented the IPv4 version of the ping check but eventually I hope to implement the same for IPv6 too. If anyone is interested, please reply and I will post the DLL and some instructions, as I had discussed previously with Chris. Keith. I am totally interested in this. Do you have some example source code of what your doing as well. Always want to learn new things.
|
|
|
Post by metro on Sept 8, 2018 19:31:41 GMT -5
+1
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Sept 9, 2018 0:35:03 GMT -5
Ok give me a couple of days as I will have to write an example program.
Keith.
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Sept 11, 2018 22:11:22 GMT -5
Hi, I have created an example program that (I hope) shows some of the capabilities of being able to communicate over TCP using secure connections, and also use LB to ping servers etc. At this time the ping function only works for IPv4 IP addresses and hostnames, but I will see if I can add IPv6 into it at some point. There are lots of error-checking lines, and programmatically it is not well written but it is purely to show this wonderful DLL working. I'm sure if and when Chris is able to get back to this forum he will be able to provide any info I have missed and fill in the gaps etc. but right now this program shows a few examples of how it works. The example program includes very basic SMTP and HTTP examples, but this can also be used for FTP, IMAP, POP3, bog-standard TCP connections, and so on. You need to know how to have the conversations once the connections are made, but that's for you to figure out! Hope you find it interesting. TLS Examples (LB Program Code)SChannel Wrapper DLLEDIT: There were some issues with the DLL on Windows earlier than Windows 10, which you will read about in the following threads. Chris has now got these issues fixed and everything seems to work just fine on Windows 7 and Windows 10 from my testing... so I would assume Windows 8.1 etc. Not sure about XP - does XP even matter any more? I guess it might but haven't tested it yet! I have updated the DLL file I made available so download it again and give it a go! EDIT: I have removed the links as Chris has now released an official version on GitHub.
|
|
|
Post by Mark Dunham on Sept 12, 2018 7:06:33 GMT -5
Hi, I have created an example program that (I hope) shows some of the capabilities of being able to communicate over TCP using secure connections, and also use LB to ping servers etc. At this time the ping function only works for IPv4 IP addresses and hostnames, but I will see if I can add IPv6 into it at some point. There are lots of error-checking lines, and programmatically it is not well written but it is purely to show this wonderful DLL working. I'm sure if and when Chris is able to get back to this forum he will be able to provide any info I have missed and fill in the gaps etc. but right now this program shows a few examples of how it works. The example program includes very basic SMTP and HTTP examples, but this can also be used for FTP, IMAP, POP3, bog-standard TCP connections, and so on. You need to know how to have the conversations once the connections are made, but that's for you to figure out! Hope you find it interesting. TLS Examples (LB Program Code)SChannel Wrapper DLLAwesome! Thank you for doing that I am going to check it out now.
|
|
fwm
Full Member
Posts: 105
|
Post by fwm on Sept 12, 2018 15:09:02 GMT -5
There seems to be some issues with running the code on Windows 7 (I have done most of my testing on Windows 10) so you might find it doesn't work correctly right now.
I will see if I can figure this out...
Keith
|
|