Fixing trust on the Internet
Tom Marble <tmarble@info9.net>
Meta
This presentation is already online!
https://info9.net/trust
- Navigation
- Source (org-mode): Fixing-trust-on-the-Internet.tar.xz
- Copyright © 2017 Tom Marble
Licensed under { GPLv3+ | CC-by-sa 4.0 | copyleft-next }
Software Freedom & Trust
Software Freedom is essential to trust the core infrastructure that supports our health, safety, and democracy.
"We need to have confidence in our software, be able to audit it and be able to repair it when we detect vulnerabilities or unwanted functionality like surveillance."
– Karen Sandler 1
Evolution of using software
When we gave each computer a name
$ tar zxf code.tar.gz && ./configure && make install
When we configured computers automatically
PXE boot, puppet, apt-get install my-favorite-package
When we moved to the cloud
Use this prebuilt image
When we started using containers
Make slight modifications to a prebuilt image
Now we are considering lambda functions
There isn't an OS image anymore: just a function
Most software is installed from the app store
Just accept the EULA and device permissions
Copyleft isn't enough
Network services software is not conveyed
Our FLOSS licenses (including copyleft licenses) depend on conveyance.
AGPL
AGPL "fixes" this network loophole, but hasn't been adopted for wide use in practice other than proprietary relicensing.
What about AI "algorithms"?
What is the preferred form of modification when software is derived from data (e.g. machine learning)?
No one picks a license anyway
We haven't taught developers to care 2
Most software is installed from the app store
We haven't taught end users to care
The fifth freedom
Freedom 4: The right to deploy your software on someone else's server
"Even if you had the source code today you don't know how to increase other people's freedoms by letting them modify your website at runtime. All you have is a bag of tricks that let's people modify your source code and gives them no way to deploy it on your infrastructure."
– r0ml's LCA keynote 3
Essential infrastructure requirements
Energy
Communications
Peer to peer energy 4
Mobile apps
Where is trust now?
Shape of the solution (part 1/2)
Network service trust API
☙ Federated corroboration of assertions
Harder to corrupt
☙ Make and query assertions at the app level
libtrust.so, libtrust.js
☙ Transitive with personal vantage point
☙ Quick transactions
You think you know what I'm going to say now…
13
12
11
10
9
8
7
6
5
4
3
2
1
GPG WoT
nah :(
The GPG Web of Trust asserts identity
Using PGP is tricky for us
- Choosing algos and signature strengths
- Protecting key material
- Not getting fooled by EVIL-32 7
You think you know what I'm going to say NOW…
Bitcoin
In Satoshi Nakamoto we trust! 8
Hyperledger
It's hosted by the Linux Foundation. That means it's community friendly… rite? 9
Ethereum
Companies use it for smart contracts! 10
Zcash
Zooko and Matthew Green 11
DogeCoin
That's the MEME! 12
nah :(
Wait, why NOT blockchain tech?
centralized – in effect
Domination by huge mining pools
bandwidth limited
Time to process transactions long and variable
transaction fees
Start to look like PayPal fees
Great barrier reef
not fake news | 15 |
What we need is..
What's the essential thing the blockchain solves
non-repudiation
Learn by example
Append-only logs
Merkle Trees 23
Tree of hashes, provides log(n) performance
eXtended Merkle Signature Scheme (XMSS) 24
Requires maintaining state (not portable)
Generic use of append-only logs
Trillian 27
Merkle tree based
Cothority 28
Multi-party cryptographic signatures to avoid backdoors
Challenges
Toxic Data
Writing crypto safe code is difficult
Best Practices
Free Software with Complete and Corresponding Source
Reproducible builds
Shape of the solution (part 2/2)
Address the Challenges
Use Best Practices
Software Freedom Conservancy
Why you should support Conservancy:
🌲 supports diversity and is home to Outreachy 32
🌲 helps hackers: ContractPatch 33
🌲 is a 501(c)3 charity supported by individuals 34
Please join today!
disclaimer: I'm on the Conservancy Evaluation Committee
Possible first use case: Debian
Protect against compromised repositories
Why talk trust at LibrePlanet?
Because of the people in this room!
Q/A & Where we go from here
Call to action: Join the [trust-api] mailing list
Cuddles asks a question??? 35
References
Footnote references (press 's' for scrollbars)
- https://sfconservancy.org/blog/2016/dec/29/software-freedom-after-trump/
- See 48:35 in r0ml's talk on how the minority of GitHub projects actually have a license: https://www.youtube.com/watch?v=i3nJR7PNgI4&feature=youtu.be&t=2915
- https://www.youtube.com/watch?v=i3nJR7PNgI4
- https://www.nytimes.com/2017/03/13/business/energy-environment/brooklyn-solar-grid-energy-trading.html
- http://www.usatoday.com/story/tech/news/2017/03/06/mapping-software-routing-waze-google-traffic-calming-algorithmsi/98588980/
- https://archive.fosdem.org/2014/schedule/event/network_freedom/
- https://evil32.com/
- https://bitcoin.org/en/
- https://www.hyperledger.org/
- https://www.ethereum.org/
- https://z.cash/
- http://dogecoin.com/
- http://www.abc.net.au/news/2015-10-06/quiggin-bitcoins-are-a-waste-of-energy/6827940
- https://www.bitcoinmining.com/is-bitcoin-mining-waste-electricity/
- http://www.news.com.au/technology/environment/natural-wonders/before-and-after-great-barrier-reef-photos-expose-shocking-realities-of-coral-bleaching/news-story/527d7599f160532474b27f1ca26fdbfc
- Security Now, Epsiode #599 https://www.grc.com/securitynow.htm
- https://jhalderm.com/pub/papers/interception-ndss17.pdf
- https://www.certificate-transparency.org/
- https://www.thesslstore.com/blog/google-chrome-certificate-transparency-2017/
- https://www.thesslstore.com/blog/firefox-certificate-transparency/
- https://www.ietf.org/mailman/listinfo/trans
- https://datatracker.ietf.org/doc/rfc6962/
- https://en.wikipedia.org/wiki/Merkle_tree
- https://eprint.iacr.org/2011/484.pdf
- https://sphincs.cr.yp.to/
- https://cryptoservices.github.io/quantum/2015/12/08/XMSS-and-SPHINCS.html
- https://github.com/google/trillian
- https://boingboing.net/2016/03/10/using-distributed-code-signatu.html
- https://github.com/rootkovska/codehash.db
- https://secure-os.org/pipermail/desktops/2016-November/000143.html
- https://github.com/FreeBSDFoundation/binary-transparency-notes
- https://www.gnome.org/outreachy/
- https://sfconservancy.org/blog/?tag=ContractPatch
- https://sfconservancy.org/supporter/
- cuddles: Copyright © 2017 Tom Marble, CC-by-sa 4.0
/