Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sign Sparkleshare binary to make installation on OS X easier #1672

Open
yeah opened this issue Nov 29, 2015 · 6 comments
Open

Sign Sparkleshare binary to make installation on OS X easier #1672

yeah opened this issue Nov 29, 2015 · 6 comments

Comments

@yeah
Copy link
Contributor

yeah commented Nov 29, 2015

With the introduction of Apple's Gatekeeper in Lion, unsigned apps downloaded from the Internet can no longer be executed. The two possible workarounds (disabling Gatekeeper in Settings or pressing Control while opening the app via the context menu) are cumbersome and sometimes hard to explain to users.

Without judging on whether it's a good or bad thing that Apple's now made OS X more of a walled garden, I think SparkleShare should play along for the sake of its (not so IT savvy) users.

@hbons, what's your opinion on this? If I understand correctly, Apple is charging $99/year for the developer program. Should that be the only reason holding you back, my company Planio (which is using SparkleShare with great success!) would be happy to cover for that as part of an ongoing donation to the SparkleShare project.

@aggsol
Copy link

aggsol commented Dec 4, 2015

SparkleShare emphasizes to be open and free for everyone.In spirit of this disabling the Gatekeeper is the proper way. Also as SparkleShare is GPL3 everybody is free to build and sell SparkleShare there if anyone wants it.

@yeah
Copy link
Contributor Author

yeah commented Dec 4, 2015

SparkleShare emphasizes to be open and free for everyone.In spirit of this disabling the Gatekeeper is the proper way.

I agree, that's what we as computer-savvy people can do. My argument was made with the "average user" in mind for whom - I believe - SparkleShare was made as well, and who might not know how to do it.

And yes, educating them about Gatekeeper and why it's bad would be a totally acceptable answer. But afaik, the download page at sparkleshare.org doesn't attempt at doing that either.

Also as SparkleShare is GPL3 everybody is free to build and sell SparkleShare there if anyone wants it.

Yup, I have been thinking about this as well. We could just fork SparkleShare, slap our own name + logo on it and do our own thing. But wouldn't that be even worse for the SparkleShare project? I want our users to see the SparkleShare "brand" and I'd like them to understand that they're using an awesome open source software.

@hbons
Copy link
Owner

hbons commented Dec 4, 2015

I think it's a good idea to have signed binaries. I don't think it conflicts with the spirit of Free software all. People will still be able to build their own binaries and we can offer a normal download as well.

@yeah It would be amazing if you could cover this cost. Thanks so much. I don't know how to set this up with MonoMac though, can you do some research into this?

@yeah
Copy link
Contributor Author

yeah commented Dec 7, 2015

That's great. Yes, we would be happy to cover the cost. I've also done some research (googling) and have collected a few pointers:

https://www.mail-archive.com/search?l=mono-osx@lists.ximian.com&q=subject:%22Re%5C%3A+%5C%5BMono%5C-osx%5C%5D+AppStore+Sandboxing%22&o=newest

http://stackoverflow.com/questions/25760651/why-application-with-version-2-envelope-working-on-os-x-10-9-not-accepted-by-gat

http://stackoverflow.com/questions/21736367/signing-code-for-os-x-application-bundle

I'll get in touch via email to discuss how we can arrange paying for the developer program.

@hbons hbons added the feature User visible and useful functionality label Jan 26, 2016
@hbons hbons added the macOS label Jun 18, 2016
@hbons hbons added this to the 2.0.0 milestone Jul 12, 2016
@hbons hbons modified the milestones: 3.0.0 - "Fairy Dust", 2.0.0 - "Break All The Things" Sep 9, 2017
@hbons hbons modified the milestones: "Fairy Dust", 3.32 Mar 2, 2018
@hbons hbons removed the feature User visible and useful functionality label Mar 8, 2018
@brandung-sjorek
Copy link

I totally agree to @yeah 's thoughts - distributing a code-signed fork of this product, would be a really bad idea.

Sadly, the unsigned SparkleShare-binary prevents us from using this great product. Disabling Gatekeeper means disabling Security in MacOS - this is not an option. And opening SparkleShare with Gatekeeper disabled (control-click or right-click => open) also means, there is no security that prevents SparkleShare to be compromised. As SparkleShare also does not run in a Sandbox, the whole security-model (including the encryption) can be called broken on MacOS.

To work around this issue I would need to compile SparkleShare by myself and sign the binary with my own certificate. If this is really the road you want your community to take, we could do so. As neither the Gatekeeper nor the MacOS Code-Signing mechanism's violate the GPL3, this would be a sad situation for this great product.

So @yeah - spending the money for SparkleShare's own developer-certificate is the best what could be done. I (and my 150+ employee company) really would like to participate in paying the yearly certificates - although a company-wide fork would be much cheaper for us.

@aggsol I totally understand your open-source concerns and appreciate them very much - but we're not talking about the open-source aspects here - we're talking about the security aspects of SparkleShare. To make any security-model work on MacOS a software-product must be code-signed by a trusted source (in this case Apple only trusts registered developers) and should run in a MacOS-sandbox … it is as simple as the marketing describes it:

The App Sandbox in macOS helps ensure that apps do only what they’re intended to do. App sandboxing isolates apps from the critical system components of your Mac, your data, and your other apps. Even if an app is compromised by malicious software, sandboxing automatically blocks it to keep your computer and your information safe.

from: MacOS - Security - Sandboxing helps contain malicious code

Gatekeeper … allows you to run apps … that are signed with a Developer ID from Apple. The Developer ID allows Gatekeeper to block apps created by malware developers and to verify that apps haven’t been tampered with.

from: MacOS - Security - Gatekeeper makes … the Internet safer.

To accomplish security on MacOS, means to follow these two simple contraints.

@hbons hbons added the security label May 26, 2019
@hbons
Copy link
Owner

hbons commented May 26, 2019

Thanks everyone. I do think this is important but I just never got round to this. I'll bump this on my list of priorities, but I can't promise when this will happen.

@hbons hbons pinned this issue May 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants