SlideShare a Scribd company logo
1 of 19
Download to read offline
Secure96
Joakim Bech
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● Mezzanine board with security ICs, why?
● ATSHA204A
● ATECC508A
● TPM - Infineon SLB 9670
● What is next?
ENGINEERS AND DEVICES
WORKING TOGETHER
Mezzanine board with security ICs, why?
● SFO16 keynote demo
○ Used IoT devices with different crypto capabilities
○ Main concern: how to store keys in a secure manner
● Found out about
○ Atmel CryptoAuthentication™ AT88CK590 Demo-evaluation Kit
○ ATECC508A (asymmetric) got my attention, but later on also ATSHA204A
○ Turnkey (?) solution for secure boot MCU’s?
● Common ground
○ While working with Zephyr for example, it would be nice to have common ground regardless
what MCU you are using while fleshing out initial APIs etc
● Maker community
ENGINEERS AND DEVICES
WORKING TOGETHER
Secure96 - Top
FTDI TPM EEPROMATSHA204A ATECC508A
ENGINEERS AND DEVICES
WORKING TOGETHER
Secure96 - Bottom
- 40-pin (2x20) connector
- Compatible with 96Boards
ENGINEERS AND DEVICES
WORKING TOGETHER
Similar hardware
● Atmel CryptoAuthentication™ AT88CK590 Demo-evaluation Kit
● CryptoShield by Josh Datko
○ No longer for sale
○ Nice software called “Hashlet”
[ Image courtesy of Microchip at http://www.atmel.com/tools/AT88CK590.aspx ]
[ Image courtesy of SparkFun at
https://www.sparkfun.com/products/retired/13183 ]
ENGINEERS AND DEVICES
WORKING TOGETHER
ATSHA204A
● Symmetric authentication (but still capable of deriving diversified keys)
● I/O: I2
C / SWI
● Commands like:
○ CheckMac, DeriveKey, GenDig, HMAC, SHA, Nonce, MAC, Random, Read, Write etc ...
● Not just plain crypto commands
○ HMAC, SHA-256 digest over the data + some other device data (serial number, OTP etc)
● Random Number Generator
● Guaranteed Unique 72-bit Serial Number
● Been on the market for quite some time (launched 2011)
● http://www.microchip.com/wwwproducts/en/ATSHA204A
ENGINEERS AND DEVICES
WORKING TOGETHER
ATSHA204A - Zones - Configuration
● 88 bytes
● Array with information
such as
○ Serial number
○ I2C address
○ Various modes
○ Slot configuration
○ Lock configuration etc
● Read and Write commands
ENGINEERS AND DEVICES
WORKING TOGETHER
ATSHA204A - Zones - Data
● 512 bytes - split into 16 general purpose registers (slots)
● One slot = 32 bytes
● There can be different restrictions on each slot (slot configuration)
● Typically used to store
○ Keys
○ Model number
○ Calibration data etc
ENGINEERS AND DEVICES
WORKING TOGETHER
ATSHA204A - Zones - OTP
● 64 bytes
● Two modes (three)
○ Read-only
■ Impossible to do any further updates.
○ Consumption
■ 0xFF default state, bits can only be changed to zero (after locking config).
ENGINEERS AND DEVICES
WORKING TOGETHER
Personalize the device
1. Configure and lock the configuration data
○ Lots of options here. When just playing with the device, the default configuration is probably a
pretty good start
2. Program the slots
3. Lock the data and OTP
ENGINEERS AND DEVICES
WORKING TOGETHER
Personalize - Write Config bits
ENGINEERS AND DEVICES
WORKING TOGETHER
Use cases
● Accessory authentication
○ Mobile device wants to authenticate a (genuine) battery
○ Consumables, ink cartridges etc
○ Technical support
● Secure boot
● Data integrity verification
● Session key exchange
Yes, I know it smells DRM ...
Data integrity verification example [Image courtesy of Atmel: Atmel-8794-CryptoAuth-ATSHA204-Product-Uses-Application-Note.pdf]
ENGINEERS AND DEVICES
WORKING TOGETHER
I2
C bus and still secure?
● How do I protect the bus between the crypto device and microprocessor?
○ Atmel’s answer (from the FAQ):
■ “Perform an authentication on the result of crypto calculation (CheckMAC command)”
■ “It involves using the second key that is both stored in the
CryptoAuthetication device and compiled into the code.
After the successful completion of the “CheckMAC” operation,
the second secret is copied into the TempKey register.
Then the MCU sends over a unique number (for example,
time of day), which is then combined with that second secret
using SHA and returned to the MCU.”
■ “The software on the MCU does the same combination using
the compiled secret to see if it agrees with the result from
the authentication device.”
○ The “compiled into the code” part sounds scary and feels like
it defeats the purpose of the device, but what if you have that
part in a TrustZone protected environment for example?
ENGINEERS AND DEVICES
WORKING TOGETHER
Software for ATSHA204
● Secure96→ https://github.com/jbech-linaro/secure96
○ In the future this should be moved to a “Linaro” page.
○ Still very much Work In Progress, but basic communication, read, write, getting config data,
generate random numbers, nonce, HMAC etc has been implemented.
○ Personalization “works”, but still a bit crude.
○ Works with any I2
C enabled device, but currently configured so it works with DragonBoard 410c
by default.
● Hashlet → https://github.com/cryptotronix/hashlet
○ Has been around for a while, seems pretty mature
○ GPLv3
● CryptoAuthLib → http://www.atmel.com/tools/CryptoAuthLib.aspx
○ Atmel’s own reference implementation
ENGINEERS
AND DEVICES
WORKING
TOGETHER
ATECC508A
● Shares lots of functionality with ATSHA204A
● Major difference is that it is working with asymmetric key
pairs instead of symmetric key pairs
● Supports ECDH and ECDSA
● Requires NDA (why?) to get the datasheet / TRM!
○ The CryptoAuthLib supports this IC, so you can study the code
without the reference manual, but ….
● No work done so far, but in the end this is the device that
we would like to use
● http://www.microchip.com/wwwproducts/en/ATECC508A
ENGINEERS
AND DEVICES
WORKING
TOGETHER
TPM - Infineon SLB 9670
● I/O: SPI
● Compliant to TCG TPM 1.2 and 2.0
● Have not done any work with this device more than sanity
test it using the
○ Intel TSS TPM2.0 resource manager
https://github.com/01org/TPM2.0-TSS.git
○ And the tpm2.0 tools
https://github.com/01org/tpm2.0-tools.git
● For more details see the official page for the IC
ENGINEERS
AND DEVICES
WORKING
TOGETHER
What is next?
● No real roadmap for now, but … some ideas
○ Finalize the ATSHA204A implementation
○ Create a library for the ATSHA204A implementation
○ Offline implementation to mimic device behavior (in a Trusted
Application in a TEE)
○ Use IC(s) for secure boot on a 96Boards IoT device
○ Get the specification and implement support for ATECC508A
○ TPM chip
■ Try it out using IMA in Linux
■ Use it to store SSH credentials
Thank You
#SFO17
SFO17 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org

More Related Content

More from Linaro

Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...Linaro
 

More from Linaro (20)

Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 

Recently uploaded

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 

Recently uploaded (20)

Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 

Secure96 - SFO17-111

  • 2. ENGINEERS AND DEVICES WORKING TOGETHER Agenda ● Mezzanine board with security ICs, why? ● ATSHA204A ● ATECC508A ● TPM - Infineon SLB 9670 ● What is next?
  • 3. ENGINEERS AND DEVICES WORKING TOGETHER Mezzanine board with security ICs, why? ● SFO16 keynote demo ○ Used IoT devices with different crypto capabilities ○ Main concern: how to store keys in a secure manner ● Found out about ○ Atmel CryptoAuthentication™ AT88CK590 Demo-evaluation Kit ○ ATECC508A (asymmetric) got my attention, but later on also ATSHA204A ○ Turnkey (?) solution for secure boot MCU’s? ● Common ground ○ While working with Zephyr for example, it would be nice to have common ground regardless what MCU you are using while fleshing out initial APIs etc ● Maker community
  • 4. ENGINEERS AND DEVICES WORKING TOGETHER Secure96 - Top FTDI TPM EEPROMATSHA204A ATECC508A
  • 5. ENGINEERS AND DEVICES WORKING TOGETHER Secure96 - Bottom - 40-pin (2x20) connector - Compatible with 96Boards
  • 6. ENGINEERS AND DEVICES WORKING TOGETHER Similar hardware ● Atmel CryptoAuthentication™ AT88CK590 Demo-evaluation Kit ● CryptoShield by Josh Datko ○ No longer for sale ○ Nice software called “Hashlet” [ Image courtesy of Microchip at http://www.atmel.com/tools/AT88CK590.aspx ] [ Image courtesy of SparkFun at https://www.sparkfun.com/products/retired/13183 ]
  • 7. ENGINEERS AND DEVICES WORKING TOGETHER ATSHA204A ● Symmetric authentication (but still capable of deriving diversified keys) ● I/O: I2 C / SWI ● Commands like: ○ CheckMac, DeriveKey, GenDig, HMAC, SHA, Nonce, MAC, Random, Read, Write etc ... ● Not just plain crypto commands ○ HMAC, SHA-256 digest over the data + some other device data (serial number, OTP etc) ● Random Number Generator ● Guaranteed Unique 72-bit Serial Number ● Been on the market for quite some time (launched 2011) ● http://www.microchip.com/wwwproducts/en/ATSHA204A
  • 8. ENGINEERS AND DEVICES WORKING TOGETHER ATSHA204A - Zones - Configuration ● 88 bytes ● Array with information such as ○ Serial number ○ I2C address ○ Various modes ○ Slot configuration ○ Lock configuration etc ● Read and Write commands
  • 9. ENGINEERS AND DEVICES WORKING TOGETHER ATSHA204A - Zones - Data ● 512 bytes - split into 16 general purpose registers (slots) ● One slot = 32 bytes ● There can be different restrictions on each slot (slot configuration) ● Typically used to store ○ Keys ○ Model number ○ Calibration data etc
  • 10. ENGINEERS AND DEVICES WORKING TOGETHER ATSHA204A - Zones - OTP ● 64 bytes ● Two modes (three) ○ Read-only ■ Impossible to do any further updates. ○ Consumption ■ 0xFF default state, bits can only be changed to zero (after locking config).
  • 11. ENGINEERS AND DEVICES WORKING TOGETHER Personalize the device 1. Configure and lock the configuration data ○ Lots of options here. When just playing with the device, the default configuration is probably a pretty good start 2. Program the slots 3. Lock the data and OTP
  • 12. ENGINEERS AND DEVICES WORKING TOGETHER Personalize - Write Config bits
  • 13. ENGINEERS AND DEVICES WORKING TOGETHER Use cases ● Accessory authentication ○ Mobile device wants to authenticate a (genuine) battery ○ Consumables, ink cartridges etc ○ Technical support ● Secure boot ● Data integrity verification ● Session key exchange Yes, I know it smells DRM ... Data integrity verification example [Image courtesy of Atmel: Atmel-8794-CryptoAuth-ATSHA204-Product-Uses-Application-Note.pdf]
  • 14. ENGINEERS AND DEVICES WORKING TOGETHER I2 C bus and still secure? ● How do I protect the bus between the crypto device and microprocessor? ○ Atmel’s answer (from the FAQ): ■ “Perform an authentication on the result of crypto calculation (CheckMAC command)” ■ “It involves using the second key that is both stored in the CryptoAuthetication device and compiled into the code. After the successful completion of the “CheckMAC” operation, the second secret is copied into the TempKey register. Then the MCU sends over a unique number (for example, time of day), which is then combined with that second secret using SHA and returned to the MCU.” ■ “The software on the MCU does the same combination using the compiled secret to see if it agrees with the result from the authentication device.” ○ The “compiled into the code” part sounds scary and feels like it defeats the purpose of the device, but what if you have that part in a TrustZone protected environment for example?
  • 15. ENGINEERS AND DEVICES WORKING TOGETHER Software for ATSHA204 ● Secure96→ https://github.com/jbech-linaro/secure96 ○ In the future this should be moved to a “Linaro” page. ○ Still very much Work In Progress, but basic communication, read, write, getting config data, generate random numbers, nonce, HMAC etc has been implemented. ○ Personalization “works”, but still a bit crude. ○ Works with any I2 C enabled device, but currently configured so it works with DragonBoard 410c by default. ● Hashlet → https://github.com/cryptotronix/hashlet ○ Has been around for a while, seems pretty mature ○ GPLv3 ● CryptoAuthLib → http://www.atmel.com/tools/CryptoAuthLib.aspx ○ Atmel’s own reference implementation
  • 16. ENGINEERS AND DEVICES WORKING TOGETHER ATECC508A ● Shares lots of functionality with ATSHA204A ● Major difference is that it is working with asymmetric key pairs instead of symmetric key pairs ● Supports ECDH and ECDSA ● Requires NDA (why?) to get the datasheet / TRM! ○ The CryptoAuthLib supports this IC, so you can study the code without the reference manual, but …. ● No work done so far, but in the end this is the device that we would like to use ● http://www.microchip.com/wwwproducts/en/ATECC508A
  • 17. ENGINEERS AND DEVICES WORKING TOGETHER TPM - Infineon SLB 9670 ● I/O: SPI ● Compliant to TCG TPM 1.2 and 2.0 ● Have not done any work with this device more than sanity test it using the ○ Intel TSS TPM2.0 resource manager https://github.com/01org/TPM2.0-TSS.git ○ And the tpm2.0 tools https://github.com/01org/tpm2.0-tools.git ● For more details see the official page for the IC
  • 18. ENGINEERS AND DEVICES WORKING TOGETHER What is next? ● No real roadmap for now, but … some ideas ○ Finalize the ATSHA204A implementation ○ Create a library for the ATSHA204A implementation ○ Offline implementation to mimic device behavior (in a Trusted Application in a TEE) ○ Use IC(s) for secure boot on a 96Boards IoT device ○ Get the specification and implement support for ATECC508A ○ TPM chip ■ Try it out using IMA in Linux ■ Use it to store SSH credentials
  • 19. Thank You #SFO17 SFO17 keynotes and videos on: connect.linaro.org For further information: www.linaro.org