Adventures in laptop battery hacking -Matthew Chapman
- Lenovo Thinkpad X230T
- Bought Aug 2013
- Ariginal capacity 62 KWh – 5hours and 12W
- Capacity down to 1.9Wh – 10 minutes
- 45N1079 replacement bought
- DRM on laptop claimed it was not genuine and refused to recharge it.
- Batteries talk SBS protocol to laptop
- SMBus port and SMClock port
- Options
- Throw Away
- Replace Cells
- Easy to damage
- Might not work
- Hack firmware on battery
- Talk at DEFCON 19
- But this is different model from that
- Couldn’t work out how to get to firmware
- Added something in between
- Update the firmware on the machine
- Embeded Controller (EC)
- MEC1619
- Looking though the firmware for Battery Authentication
- Found routine that look plausable
- But other stuff was encrypted
- EC Update process
- BIOS update puts EC update in spare flash memory area
- After the BIOs grabs that and applies update
- Pulled apart the BIOs, found EcFwUpdateDxe.efi routine that updates the EC
- Found that stuff send to the EC still encrypted.
- Unencryption done by flasher program
- Flasher program
- Encrypted itself (decrypted by the current fireware)
- JTAG interface for flashing debug
- JTAG
- Physically difficult to get to
- Luckily Russian Hackers have already grabbed a copy
- The Decryption function in the Flasher program
- Appears to be blowfish
- Found the key (in expanded form) in the firmware
- Enough for the encryption and decryption
- Checksums
- Outer checksum checked by BIOs
- Post-decryption sum – checked by the flasher (bricks EC if bad)
- Section Echecksums (also bricks)
- Applying
- noop the checks in code
- noop another check that sometimes failer
- Different error message
- Found a second authentication process
- noop out the 2nd challenge in the BIOs
- Works!
- Posted writeup, posted to hacker news
- 1 million page views
- Uploaded code to github
- Other people doing stuff with the embedded controller
- No longer works on latest laptops, EC firmware appears to be signed
- Anything can be broken with physical access and significant determination
Election Software – Vanessa Teague
- Australian Elections use a lot of software
- Encoding and counting preferential votes
- For voting in polling places
- For voting over the internet
- How do we know this software is correct
- The Paper ballot box is engineered around a serious of problems
- In the past people bought their own voting paper
- The Australian Ballot used in many places (eg NZ)
- Franch use different method with envelopes and glass boxes
- The US has had lots of problems and different ways
- Four cases studies in Aus
- vVote: Victoria
- Vic state election 2014
- 1121 votes for overseas Australians voting in Embassies etc
- Based on Pret a Voter
- You can varify that what you voted was what went though
- Source code on bitbucket
- Crypto signed, varified, open source, etc
- Not going forward
- Didn’t get the electoral commissions input and buy-in.
- A little hard to use
- iVote: NSW and WA
- 280,000 votes over Internet in 2015 NSW state election ( around 5-6% of total votes)
- Vote on a device of your choosing
- Vote encrypted and send over Internet
- Get receipt number
- Exports to a varification service. You can telephone them, give them your number and they will read back you votes
- Website used 3rd-party analytics provider with export-grade crypto
- Vulnerable to injection of content, votes could be read or changed
- Fixed (after 66k votes cast)
- NSW iVote really wasn’t varifiable
- About 5000 people called into service and successfully verified
- How many tried to verify but failed?
- Commission said 1.7% of electors verified and none identified any anomalies with their vote (Mar 2015)
- How many tried and failed? “in the 10s” (Oct 2015)
- Parliamentary said how many failed? Seven or 5 (Aug 2016)
- How many failed to get any vote? 627 (Aug 2016)
- This is a failure rate of about 10%
- It is believed it was around 200 unique (later in 2016)
- Vote Counting software
- Errors in NSW counting
- NSW legislative voting redistributed votes are selected at random
- No source code for this
- Use same source code for lots of other elections
- Re-ran some of the votes, found randomness could change results. Found one most likely cost somebody a seat, but not till 4 years later.
- Recomended
- Generate the random key publicly
- Open up the source code
- They electorial peopel didn’t want to do this.
- In the 2016 localgovt count we found 2 more bugs
- One candidate should have won with 54% probability but didn’t
- The Australian Senate Count
- AEC consistent refuses to revel the source code
- The Senate Date is release, you can redo it yourself any bugs will become evident
- What about digitising the ballots?
- How would we know if that wasn’t working?
- Only by auditing the paper evidence
- Auditing
- The Americas have a history or auditing the paper ballots
- But the Australian vote is a lot more complex so everything not 100% yet
- Stuff is online