Free as in cheap gadgets: the ESP8266 by Angus Gratton
- I missed the start of the talk but he was giving a history of the release and getting software support for it.
- Arduino for ESP8266 very popular
- 2015-2016 maturing
- Lots of development boards
- Sparkfun ESP8266 thing, Adafruid Hazaah, WeMOS D1
- Common Projects
- Lots of lighting projects, addressable LED strips
- Wireless power monitoing projects
- Copy of common projects. Smoke alarm project
- ESPlant – speakers project built in Open Hardware Miniconf – solar powered gardening sensor
- Moodlight kickstarter
- Shortcomings
- Not a lot of documentation compared to other micro-controllers. 1/10 that of similar products
- Weird hardware behaviour. Unusual output
- Default baud rate 74880 bps
- Bad TLS – TLS v1.0, 1.1 only , RSA 512/1024 . 2048 might work
- Other examples
- FOSS in ESP8266
- GCC , Lua , Arduino, Micro Python
- axTLS , LWIP, max80211, wpa_supplicant
- Wrapped APIs, almost no source, mostly missing attribution
- Weird licenses on stuff
- Does this source matter?
- Anecdote: TLS random key same every time due to bad random function (later fixed). But still didn’t initially use the built-in random number generator.
- Reverse Engineering
- Wiki , Tools: foogod/xtobjdis , ScratchABit , radara2 (soon)
- esp-open-rtos – based on the old version that was under MIT
- mbedTLS – TLS 1.2 (and older) , RSA to 4096 and other stuff. Audited and maintained
- Working on a testing setup for regression tests
- For beginners
- Start with Ardino
- Look at dev board
- Future
- Hopefully other companies will see success and will bring their own products out
- but with a more open licenses
- ESP32 is coming, probably 1y away from being good and ready
secretd – another take on securely storing credentials by Tollef Fog Heen
- Works for fastly
- What is the problem?
- Code can be secret
- Configuration can be secret
- Credentials are secret
- Secrets start in the following and move to the next..
- directly code
- then a configuration file
- then an pre-encrypted store
- then an online store
- Problems with stores
- Complex or insecure
- Manual work to re-encrypt
- Updating is hard
- Not support for dev/prod split
- Requirements for a fix
- Dynamic environment support
- Central storage
- Policy based access controls, live
- APIs for updating
- Use Case
- Hardware (re)bootstrapping
- Hands-of/live handling
- PCI: auditing
- Machine might have no persistent storage
- Options
- pwstore – pre-encrypted
- chef-vault – pre-encrypted
- Hashicorp Vault – distributed, complex, TTL on secrets
- etcd – x509
- Secretd
- go
- SQL
- ssh
- tree structure, keys are just strings
- positive ACLs
- PostgressSQL backend
- Apache Licensed
- Client -> json over ssh -> secret-shell -> unix socket -> secretd -> postgressSQL
- Missing
- Encrypting secrets on disk
- Admin tools/other UIs
- Auditing
- Tool integration
- Enrolment key support
- Demo
- Questions:
- Why not sqlite? – Cause I wanted at database. Postgres more directly supported the data structure I wanted, also type support
- Why do just use built-in postgress security stuff? – Features didn’t exist a year ago, also requires all users must exist as DB users.