jabronson wrote on 12/23/2015 05:45 PM:
(XcodeGhost highlights the importance of code signing or validating the checksum of an insecure download—e.g. one retrieved over http, or from an unofficial mirror
[...]
- https://wiki.debian.org/SecureApt
- https://en.wikipedia.org/wiki/Gatekeeper_(OS_X) <https://en.wikipedia.org/wiki/Gatekeeper_%28OS_X%29>
- https://wiki.mozilla.org/Add-ons/Extension_Signing
- etc.

If you're saying that core Racket should participate in OS/distro vendor's signing system for the download of core Racket, that sounds OK.

If you're saying that Racket should have a signing system for third-party packages, I've advocated that myself -- *but* it is important to have an *appropriate* signing system, not merely *a* signing system, and this is harder than it seems, especially if starting with bad-influence role models.

The Debian approach is fine for Debian (it's worked OK for a long time, and isn't snoopy or too authoritarian, and it pushes Debian's security weak-links elsewhere), though not a drop-in for third-party Racket packages. The proposed Mozilla signing system is creepy in context (especially when you consider what pressures Mozilla is under, and some of the pressures they seem likely to be under in the future, and considering their spotty track record), and I'd suspect that the FSF will have renewed interest in a Firefox fork because of this. Regarding OS X Gatekeeper, I don't know how Apple is currently using that on OS X, but students should look at the history of how Apple has used the iOS App Store approval process and retroactive deletion in an abusive and anticompetitive way (which has been a big deal, and should be a textbook case, despite its omission from the Wikipedia page) -- it's arguably first about strangehold middleman revenue and ongoing competition elimination, and only second about security/quality/brand control.

One of the reasons I mention this is due to the education-heavy slant of the Racket community. There is a cliché in IT security (actually pervading many aspects of IT, but perhaps most painful in security), of thinking "X will solve this security problem", which might or might not be true, and then proceeding to do X in a very wrong way. For example, I think Schneier's introductory crypto book is one that points out, something like, homebrew applications of crypto seem to inevitably be incorrect, and I've seen many real-world examples of this. What it often reduces to is people not understanding the tools they're trying to work with: like someone being sick, and thinking they need "medicine", and they know that a particular antibiotic is strong. Or someone needing to clean the floors, and thinking making a cleaning solution from bleach and ammonia will work even better. These sound ridiculous, but so is how IT security is usually implemented. Students should appreciate this reality, and how it affects the industry examples they see, and know that they have to work actively to avoid the bad practices in their own work.

Even Racket is not immune to mistakes of enthusiasm and overconfidence -- and everyone has made, and will occasionally continue to make, mistakes of this kind. But security/privacy (and impositions on users and volunteers) are some of the last places we least want to make big mistakes. So, when we think "we need X security", I think there's a burden on us to understand the problem well. And, bad prevailing practices mean that we might also want to communicate that understanding.

Neil V.

--
You received this message because you are subscribed to the Google Groups "Racket 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/567B4E6D.6070407%40neilvandyke.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to