Mqttnet: Strong Named Assemblies

Created on 24 Oct 2017  路  13Comments  路  Source: chkr1011/MQTTnet

I really like the async API of the MQTT client :)

Any strong named assemblies planned?

All 13 comments

Hi, at the moment this is not planned. My doubts are how to share a certificate for building in GitHub. I can also create a self signed one but this is only a workaround.

What is your use case for a strong name? Does your project only accept assemblies with a strong name?

Yes, we have a signed project and this accepts only signed nugets. But it's not a big issue. We have compiled and signed it for our case.

I highly recommend reviewing this issue, although sharing the certificate on github is strongly discouraged.

  1. This builds a trust between releases, if someone were to hack your nuget account and release a rogue update this could be detected by third parties
  2. Building an app with full strong name verification now fails as MQTTnet.dll references MQTTnet.Core.dll with no strong name signature making secure release chains impossible without manually compiled and signed libraries.

This point two prohibits anyone with a somewhat serious security intent from using this library without custom compilation. Given that this project is activly maintained and really usefull and that the addition of a strong name signature doesn't break anything I highly recommend adding one (just be sure to back it up somewhere safe).

@chkr1011 If you choose not to start signing the libraries are we allowed to publish our own packages to nuget in order to help those who require signed assemblies?

Hi,
at the moment there is no plan to add a strong name. I understand your point but I have to organize the certificate etc. first and avoid pushing it to the repo etc. So some things to plan.

But in the meantime you can upload it with a strong name. You can also use the image etc. from the official nuget package if you don't change the code in any way. Also the links should point to this repository. Then it is OK for me.

After you uploaded it I can add a reference to the README and also to the Wiki if you agree.

I recommend to start with the upcoming version 2.5.3. Starting with that version no external libraries are used because we had several issues using them.

Best regards
Christian

@chkr1011 you don't have to organise a certificate, I think you are mixing up code signing with strong name signing.

The first one requires a paid certificate and usually anual renewal, the latter requires just a few mouse clicks and no renewal what so ever. (Just open the project properties --> Signing --> Sign the assembly and create one, keep a good backup and don't upload it to the repository).

I will have a look. If it that easy I can surely do it 馃槃

@chkr1011 any progress on this issue?

@GieltjE Version 2.6 should have a strong name. Please let me know if it does not.

My sincere apologies, I missed the latest release and a sincere thank you for implementing it.

No problem 馃槃 But does it also work for you? I don't have this use case...

Best regards
Christian

Works like a charm 馃挴 , it's not rocket science, helps build a chain of trust but you would be surprised how many projects refuse to implement it.

OK. Yes it was no rocket science 馃槃

Was this page helpful?
0 / 5 - 0 ratings