FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) free hardware - - PowerPoint PPT Presentation

fst 01sz flying stone tiny 01 revision shenzhen free
SMART_READER_LITE
LIVE PREVIEW

FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) free hardware - - PowerPoint PPT Presentation

FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) free hardware design for Gnuk Token Niibe Yutaka gniibe@fsij.org 2019-02-03 1/30 FST-01SZ (board+shell) is ready now! 2/30 FST-01SZ (board+shell) and case 3/30 Acknowledgment Special


slide-1
SLIDE 1

1/30

FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) free hardware design for Gnuk Token Niibe Yutaka gniibe@fsij.org 2019-02-03

slide-2
SLIDE 2

2/30

FST-01SZ (board+shell) is ready now!

slide-3
SLIDE 3

3/30

FST-01SZ (board+shell) and case

slide-4
SLIDE 4

4/30

Acknowledgment

Special Thanks Luis Felipe R. Murillo SZDIY Rafael, Fonzie, Terry and Nala Seeed Technology Vivian, XuanYu, Simon and Nana FOSDEM and ”CAD and Open Hardware” devroom Free Software Foundation johns and johnh Debconf18 PaulLiu, YaoWei Debian noodles, zigo, glaubitz and dkg GnuPG wk and aheinecke RiseUP micah and guido GnuPG friends Justus, Kai, and Neal FSIJ hironobu, kaz and knok

  • Bro. in Hong Kong:

Satoshi

slide-5
SLIDE 5

5/30

About Me - Niibe with ’g’

◮ GNU Project

◮ 90s: GNU Emacs, Guile, glibc, GCC ◮ 00s: GPLv3 ◮ 10s: www.gnu.org (Japanese), GnuPG

◮ GNU/Linux on SuperH around 2000 ◮ since 2002 ◮ Debian developer since 2005 ◮ GnuPG developer since 2011

slide-6
SLIDE 6

6/30

0, 1, and * 0: NeuG

Nobody should control on random number generation

1: Gnuk

Privacy is important It’s only you who controls your private keys

*: GNU

Everyone deserves computing freedom

slide-7
SLIDE 7

7/30

Gnuk Token - for user freedom

◮ Firmware: “Gnuk” is free software ◮ FST-01: Reference free hardware design

◮ Original version: 2011 ◮ Manufactured in 2012

slide-8
SLIDE 8

8/30

Why Gnuk Token?

◮ To control our crypto computation

◮ Minimize the attack surface

◮ Goal: can be reproduced by others

◮ All technical docs available ◮ Free (as in freedom) tool

◮ KiCAD ◮ GNU Toochains ◮ OpenOCD...

◮ No NDA, never! ◮ Avoiding possible backdoors

slide-9
SLIDE 9

9/30

My use case of Gnuk Token

At work At home On the go 2012

slide-10
SLIDE 10

10/30

FST-01G

◮ Design updated in 2016, because...

◮ KiCAD: format change ◮ LDO: discon ◮ SPI flash in original version: not used

◮ Manufactured in 2017

slide-11
SLIDE 11

11/30

FST-01SZ

◮ Design updated in 2018, because...

◮ KiCAD: format change ◮ MCU protection: reverse engineered??? ◮ USB-A connector: too large

slide-12
SLIDE 12

12/30

FST-01SZ’s challenge

◮ Use of Chinese parts

◮ GD32F103TB (replaces STM32F103TB)

◮ Newer ◮ Faster ◮ Cheaper

◮ Chinese USB form factor: ”Wrist-Board”

◮ Use of unique tools

◮ Test clip with pogo pin needles ◮ BeagleBone Green as JTAG/SWD debugger

slide-13
SLIDE 13

13/30

GD32F103TB

◮ GD stands for “Giga Device” (not Godot Engine :-) ◮ ARM Cortex-M3 core ◮ Can run @ 96MHz with USB ◮ no wait cycle, no cache accessing flash

◮ static RAM loaded by flash content at boot ◮ less side channel info: power analysis, timing analysis

◮ Peripherals like USB and ADC are independent implementation

slide-14
SLIDE 14

14/30

USB form factor

◮ Chinese De-facto standard ◮ Smaller form factor

◮ metal shell ◮ plastic connector

◮ Used for USB Memory

slide-15
SLIDE 15

15/30

USB form factor: The parts

◮ ZL-271 (left, metal shell, CJ-AM-C5B0C010) ◮ ZL-272 (right, plastic connector)

slide-16
SLIDE 16

16/30

The name: wrist-board (1)

◮ Originally one for wrist band USB memory

slide-17
SLIDE 17

17/30

The name: wrist-board (2)

◮ But now, there are many kinds of plastic covers, like:

slide-18
SLIDE 18

18/30

The name: wrist-board (2)

◮ Or, there is a metal case

slide-19
SLIDE 19

19/30

FST-01SZ with metal case

◮ Putting the board+shell into the case ◮ It’s an one-way procedure ◮ Offering a feature of tamper resistance

slide-20
SLIDE 20

20/30

FST-01SZ prototype in action

slide-21
SLIDE 21

21/30

FST-01SZ prototype to be flashed and tested

BeagleBone Green as SWD debugger

slide-22
SLIDE 22

22/30

Chinese test clip with pogo pin needles

slide-23
SLIDE 23

23/30

Experiences (1) - Reproducibility

Our purpose is reproducibility for computing freedom ◮ Component availability matters ◮ Tools’ data format matters, too ◮ As well as tools themselves

slide-24
SLIDE 24

24/30

Experiences (2) - Test plan

For reproducibility, if it is intended for (mass) production, ◮ Test plan should be a part of ”Open Hardware Design” ◮ I’d like to propose a practice publishing a test plan for hardware design

slide-25
SLIDE 25

25/30

Experiences (3) - China

It’s good to learn Chinese culture for better communication ◮ The holiday seasons (Chinese New Year, National Day) ◮ How Taobao and Alibaba work (for unique parts) ◮ Relationship between person is so important

◮ It’s good you meet in person occasionally

◮ Better to confirm: exact part, exact material, date...

slide-26
SLIDE 26

26/30

Experiences (4) - China

◮ Specifying manufacturer and MPN (Manufacturer Product Number) is not enough

◮ it’s OK, when it’s available in Digikey, Mouser, etc. ◮ when it’s a Chinese unique part not available there... ◮ better to confirm with your own eyes

◮ For them, it’s a kind of reference number ◮ Remember: the copycat culture ◮ I like it!: Re-implementation is good for improvement and innovation!

slide-27
SLIDE 27

27/30

Experiences (5) - ShenZhen

Another big city in China ◮ Computer and electronics ◮ Many young engineers ◮ QR-code payment ◮ Surveillance system and “SECURITY” persons

slide-28
SLIDE 28

28/30

To summarize

◮ In 2011, I started using PCB service in ShenZhen

◮ Mainly because it’s cheap

◮ Things have been evolved a lot in China ◮ Now, good PCBA service is also available ◮ And many unique advantages, like:

◮ GD32F103TB ◮ “Wrist-Board” ◮ BeagleBone Green ◮ Test clip with pogo pin needles

◮ I take advantage of those things in ShenZhen ◮ ... to achieve good product

slide-29
SLIDE 29

29/30

Discussion

Here are my questions (and my children’s one)... ◮ How do you maintain your hardware design in a repo?

◮ Do you also put the output (gerber) to a repo?

◮ How do you ensure the output is same as yours?

◮ Do you use some automation (with CI/CD)?

◮ How do you care about reproducibility?

slide-30
SLIDE 30

29/30

Discussion

Here are my questions (and my children’s one)... ◮ How do you maintain your hardware design in a repo?

◮ Do you also put the output (gerber) to a repo?

◮ How do you ensure the output is same as yours?

◮ Do you use some automation (with CI/CD)?

◮ How do you care about reproducibility? ◮ If it is so reproducible, why people buy from you, papa?

slide-31
SLIDE 31

29/30

Discussion

Here are my questions (and my children’s one)... ◮ How do you maintain your hardware design in a repo?

◮ Do you also put the output (gerber) to a repo?

◮ How do you ensure the output is same as yours?

◮ Do you use some automation (with CI/CD)?

◮ How do you care about reproducibility? ◮ If it is so reproducible, why people buy from you, papa?

◮ Well, I don’t know... but...

slide-32
SLIDE 32

29/30

Discussion

Here are my questions (and my children’s one)... ◮ How do you maintain your hardware design in a repo?

◮ Do you also put the output (gerber) to a repo?

◮ How do you ensure the output is same as yours?

◮ Do you use some automation (with CI/CD)?

◮ How do you care about reproducibility? ◮ If it is so reproducible, why people buy from you, papa?

◮ Well, I don’t know... but... ◮ There is a tribe called hackers...

slide-33
SLIDE 33

30/30

Questions?

slide-34
SLIDE 34

30/30

Questions?

Happy Hacking!