Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


Recommended Posts

Posted

Here i just want to say a big thank to all developers in Fibaro, that have listened our request for encrypting QA codes..

In new beta update we have this option, and i must say it is awesome..

Thanks a lot

  • Like 5
Posted

yep, thanks a lot, even if it took 2yrs to get implemented.

  • Like 2
Posted

I am glad that we were able to prepare this, I know it took some time - I know it was requested for long time now. 
From the bright side, it is very safe and soon will be available in GA version.

  • Thanks 2
Posted

Curious how this will develop. Open source, helping each other on the one site and protecting source code to create commercial opportunities on the other side. 

 

To encrypt you need the beta version, to use an encrypted quickapp you need the beta version also?

  • Like 1
Posted

@SmartHomeEddy, I think yes. It has different suffix. It is .fqax.

  • Thanks 1
Posted

@SmartHomeEddy

 

yes, the suffix is different, the data within the .fqax file of course ecrypted

 

Please login or register to see this image.

/monthly_2022_09/image.png.b448e1cbff38c95e3c9e7b31b543df70.png" />

 

 

to get decrypted there is runtime in the firmware since 5.113, so minimum level 5.113.

 

The physical imported .fqax file is of course still encrypted

 

image.png.f2c339d441c982209201e837f27468a2.png

 

Such encrypted QuickApp does have only "preview", not "edit&preview" tab. QuickApp Variables (in variables tab) can be of cours still edited.

 

image.png.5832149278acbb5bd97e4389b3a52302.png

 

 

 

The encryption happens during export, so you can chose between open source, encrypted for everybody and encrypted and locked to specific HC serial

 

image.png.da6e98eddbdbcd73755c994752ac3fcc.png

 

 

 

Encryption is not only good for business, as well to protect reverse engineered things hehe

 

  • Like 3
  • Thanks 1
Posted
33 minutes ago, tinman said:

Encryption is not only good for business, as well to protect reverse engineered things hehe

 

And Fibaro will have to check (download section and marketplace) the source code more to prevent malicious things, because the users cannot any more

  • Like 1
Posted

And now it is possible to integrate something with non-public API - which was not possible before.

  • Thanks 2
Posted

@m.roszak

I have auto-update procedure to update my distributed QA. Is there any possibility how to update encrypted QA from code (API)?

Posted

That is a great question, I am not sure how you implemented this but until it is working automatically from the code it should work :)
I will ask the devs but you can just try it in the meantime. 

Posted

I use these API:

Please login or register to see this code.

for encrypted QA devices these API should work only for own self.id and I shouldn't be able to read source code via these APIs for other encrypted devices

Posted

Yes, you can't.

 

It won't work - I did not think it thru after first question.

 

We talked about internally about QA updates - method to do so with 2 clicks.

 

Unfortunatelly it is not an easy and small task, it will take some time.

Posted
10 hours ago, m.roszak said:

Yes, you can't.

It won't work - I did not think it thru after first question.

We talked about internally about QA updates - method to do so with 2 clicks.

Unfortunatelly it is not an easy and small task, it will take some time.

Oh no,  not "clicks". Please provide API too, so we can do it programatically.

 

What one wants to do is to only update parts of the QA. Typically there can be configurations in the code (not just quickAppVariables) that needs to be kept between updates.

I tend to dedicate the 'main' file for user configurations and leave that untouched when updating. Alternatively the possibility to run some script at update to copy over code/data

that needs to be preserved.

  • Like 2
Posted

This is something to be developed, as soon it will be ready docs will be also provided - don't worry :)

  • Like 1
Posted

@m.roszak

perfect, thanks

I need to have APIs where I can do same manipulation with source code as before for encrypted QAs

Please login or register to see this code.

In meantime it will be very difficult for user to update encrypted QA… because standard upgrade process is “copy+paste” new source code to have same ids for QA and child devices.

 

Posted

Yeah, that is the limitation for encrypted ones for now.

  • Thanks 1
  • 2 weeks later...
Posted
On 9/7/2022 at 3:27 PM, SmartHomeEddy said:

 

And Fibaro will have to check (download section and marketplace) the source code more to prevent malicious things, because the users cannot any more

 

This ! 

Posted
On 9/7/2022 at 2:27 PM, SmartHomeEddy said:

 

And Fibaro will have to check (download section and marketplace) the source code more to prevent malicious things, because the users cannot any more

 

yes and no:

- when you download any kind of executable to any kind of your systems, are you checking the code? Decompiling it?
- using QAs with thousands of unformated code lines, with lots nested calls, are you checking what they "produce"?

- It was always easy to implement "update" button, to download new version, which could contain malicious code later (and at the time of releasing was clean)

- giving API access to users, was always somehow dangerus, lot of useful calls can be combined to disaster

- huge positive aspect of current implementation: encrypted QAs can't be updated from code, so when the code inside is clean, you can be sure it stay clean.
 

In principle, as always, do backup, do changes (or install unknown QA), check - and do restrore if you don't like it or somethign goes wrong.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...