T h u n d e r b
- l
t 3 a n d G N U / L i n u x
F O S D E M 2 1 8 C h r i s t i a n K e l l n e r , P h D D e s k t
- p
T h u n d e r b o l t 3 a n d G N U / L i n u - - PowerPoint PPT Presentation
T h u n d e r b o l t 3 a n d G N U / L i n u x F O S D E M 2 0 1 8 C h r i s t i a n K e l l n e r , P h D D e s k t o p H a r d w a r e E n a b l e m e n t 0 4 / 0
3
I n t e l *
* h t t p s : / / t h u n d e r b
t t e c h n
y . n e t /
4
5
A c t i v e w h e n U S B d e v i c e s a r e p l u g g e d i n . B e h a v e s a s a n
m a l U S B
3 . 1 p
t .
S w i t c h p i n s
U S B
i n t
P a l t e r n a t e m
e . T B w i l l a c t a s a r
t e r f
D P d a t a f r
G F X t
S B
p
t O n e h i g h
p e e d p a i r i s u s e d f
D P . T h e
h e r h i g h
p e e d p a i r i s u s e d f
U S B 3 . 1 A l l 4 h i g h s p e e d s l i n k s a c t i v e ( a t 1 / 2 G b p s ) . m a x 4 P C I e G e n 3 l a n e s m a x 2 D i s p l a y P
t l i n k s
6
h t t p s : / / g i t h u b . c
/ u f r i s k / p c i l e e c h
7
N
e c u r i t y . D
. A l l d e v i c e s a r e a u t h
i z e d b y d e f a u l t .
D i s p l a y P
t
l y . Y
g u e s s e d r i g h t . T h u n d e r b
t d e v i c e s n e e d t
u t h
i z e d . O n l y t h e n a r e P C I e l a n e s a c t i v a t e d . T h u n d e r b
t d e v i c e s n e e d t
u t h
i z e d . T h e i r i d e n t i t y c a n b e v e r i fi e d v i a a k e y .
8
1
S y s t e m d e a e m
1 1
/sys/bus/thunderbolt/ └── devices ├── domain0 → 0-0/ security subsystem@ uevent […] ├── 0-0 → 0-1/ authorized device device_name vendor_name unique_id […] ├── 0-1 → 0-301/ authorized […] key […] unique_id └── 0-301 → […] nvm_active2/ nvm_non_active2/ nvm_version nvm_authenticate # echo 1 > /sys/bus/thunderbolt/devices/0-1/authorized # key=$(openssl rand -hex 32) # echo $key > /sys/bus/thunderbolt/devices/0-1/key # echo 1 > /sys/bus/thunderbolt/devices/0-1/authorized # echo $key > /sys/bus/thunderbolt/devices/0-1/key # echo 2 > /sys/bus/thunderbolt/devices/0-1/authorized /sys/bus/thunderbolt/ └── devices ├── domain0 → 0-0/ security subsystem@ uevent […] ├── 0-0 → 0-1/ authorized device device_name vendor_name unique_id […] ├── 0-1 → 0-301/ authorized […] key […] unique_id └── 0-301 → […] nvm_active2/ nvm_non_active2/ nvm_version nvm_authenticate # echo 1 > /sys/bus/thunderbolt/devices/0-1/authorized # key=$(openssl rand -hex 32) # echo $key > /sys/bus/thunderbolt/devices/0-1/key # echo 1 > /sys/bus/thunderbolt/devices/0-1/authorized # echo $key > /sys/bus/thunderbolt/devices/0-1/key # echo 2 > /sys/bus/thunderbolt/devices/0-1/authorized
1 2
* h t t p s : / / f w u p d .
g / # get current version nvm_version # write new firmware to nvm_non_active2/nvmem # start updating nvm_authenticate # get current version nvm_version # write new firmware to nvm_non_active2/nvmem # start updating nvm_authenticate
1 3
S y s t e m d e a e m
1 4
1 5
1 6
1 7
1 8
1 9
2
2 1
g i t h u b . c
/ g i c m
b
t c h r i s t i a n . k e l l n e r . m e