Rebooting the Smartcard
Rebooting Web Of Trust Paris Meetup
November 2016
Nicolas Bacca
@btchip
A trust layer between the blockchain
and the physical world
For industrials, enterprises and consumers
Securing the first and last mile
LEDGER TECHNOLOGY
Without trust, data has no actionable value
node
node
node
node
nodeCloud servers
User on a PC or a
smartphone Industrial
sensor / IoT
node
node node
Connected
object
Blockchain/IT
trusted zone
Physical world
absence of trust
Is this really you?
Am I allowed to executethis transaction?
Critical temperature data
Did the driver got switched?
The ubiquitous Safe
Best technical solution for at scale (CHEAP) secure deployment
Best technical solution against physical attacks (theft, evil maid)
A configurable Safe
Lot of resources invested in secure remote management
Great portability of Java Card, at least on paper
But not YOUR manageable identity
The secrets are not YOUR secrets
Or are yours but you can’t manage them (fingerprint match on card)
> >
Definitely not made for YOU
Not Plug & Play
Cannot be reliable in a regular (malware infected) computing environment
Rebooting the Smartcard
Plug and Play
Developer friendly
Malware resistant
Auditable
Plug and Play
Native browser / mobile access
No driver, no middleware
Reusing the FIDO standards
Malware resistant
Physical user consent can be required for all sensitive operations
Display the operation to be validated, in human readable format
Developer friendly
Native isolation whenever possible
Accelerated, low level cryptographic primitives to build on
Improving on isolation, using ARM capabilities
Native application 1
Native application 2
Native application 3
Microkernel
User
seed
MMU lock
User modeSupervisor mode
System call
UI application
Auditable
Isolate secure and non secure code
Build on top of a microkernel that can be gradually opened
Ledger platform architecture
Trusted / Secure component
(Secure Element or enclave)
with limited I/O options
Non trusted component
with more I/O options
Screen
Direct control from the Trusted component, proxied
Pairing at boot
time
User app 1
User app 2
Button
Sensor
USB
Our latest consumer devices
Ledger Nano S : available now
Ledger Blue : pre order,
Christmas delivery
(larger screen, BLE)
Hardware Oracle - for machines
Cryptographically attestable
anti-tampering sensors
■ Secure chip ST31G480 (CC EAL6+)
■ Sensor
■ 3 axis anti-tampering MEMS
■ USB interface for blockchain computer
Getting started with development
Nano-S resources : compiler and SDK - https://github.com/ledgerhq/ledger-nano-s
Sample applications : https://github.com/LedgerHQ/blue-sample-apps
Documentation in progress : http://ledger.readthedocs.io/
Developer Slack : http://slack.ledger.co
Documentation is getting put together, so don’t hesitate to ask on Slack
Thank you
@btchip

Rebooting the smartcard

  • 1.
    Rebooting the Smartcard RebootingWeb Of Trust Paris Meetup November 2016 Nicolas Bacca @btchip
  • 2.
    A trust layerbetween the blockchain and the physical world For industrials, enterprises and consumers Securing the first and last mile LEDGER TECHNOLOGY
  • 3.
    Without trust, datahas no actionable value node node node node nodeCloud servers User on a PC or a smartphone Industrial sensor / IoT node node node Connected object Blockchain/IT trusted zone Physical world absence of trust Is this really you? Am I allowed to executethis transaction? Critical temperature data Did the driver got switched?
  • 4.
    The ubiquitous Safe Besttechnical solution for at scale (CHEAP) secure deployment Best technical solution against physical attacks (theft, evil maid)
  • 5.
    A configurable Safe Lotof resources invested in secure remote management Great portability of Java Card, at least on paper
  • 6.
    But not YOURmanageable identity The secrets are not YOUR secrets Or are yours but you can’t manage them (fingerprint match on card) > >
  • 7.
    Definitely not madefor YOU Not Plug & Play Cannot be reliable in a regular (malware infected) computing environment
  • 8.
    Rebooting the Smartcard Plugand Play Developer friendly Malware resistant Auditable
  • 9.
    Plug and Play Nativebrowser / mobile access No driver, no middleware Reusing the FIDO standards
  • 10.
    Malware resistant Physical userconsent can be required for all sensitive operations Display the operation to be validated, in human readable format
  • 11.
    Developer friendly Native isolationwhenever possible Accelerated, low level cryptographic primitives to build on
  • 12.
    Improving on isolation,using ARM capabilities Native application 1 Native application 2 Native application 3 Microkernel User seed MMU lock User modeSupervisor mode System call UI application
  • 13.
    Auditable Isolate secure andnon secure code Build on top of a microkernel that can be gradually opened
  • 14.
    Ledger platform architecture Trusted/ Secure component (Secure Element or enclave) with limited I/O options Non trusted component with more I/O options Screen Direct control from the Trusted component, proxied Pairing at boot time User app 1 User app 2 Button Sensor USB
  • 15.
    Our latest consumerdevices Ledger Nano S : available now Ledger Blue : pre order, Christmas delivery (larger screen, BLE)
  • 16.
    Hardware Oracle -for machines Cryptographically attestable anti-tampering sensors ■ Secure chip ST31G480 (CC EAL6+) ■ Sensor ■ 3 axis anti-tampering MEMS ■ USB interface for blockchain computer
  • 17.
    Getting started withdevelopment Nano-S resources : compiler and SDK - https://github.com/ledgerhq/ledger-nano-s Sample applications : https://github.com/LedgerHQ/blue-sample-apps Documentation in progress : http://ledger.readthedocs.io/ Developer Slack : http://slack.ledger.co Documentation is getting put together, so don’t hesitate to ask on Slack
  • 18.