JUNE 2021
Cryptographic Protocols
for Machine Identities
and Credentials
Mrinal Wadhwa
CTO, Ockam
Slide 2
Slide 2 text
IoT will have an economic impact between
$4 trillion and $11 trillion, by 2025.
Source: McKinsey & Company
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
JUNE 2021
1. Implicit trust in network boundaries.
Source: Dragos - Industrial Control Systems,
CyberSecurity, Year in Review 2019 & 2020
Root causes
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
JUNE 2021
1. Implicit trust in network boundaries
.
2. Lack of end-to-end data integrity and con
fi
dentiality.
Root causes
Slide 8
Slide 8 text
Least
Privilege.
Principle of
Every program and every privileged user of the system should operate using
the least amount of privilege necessary to complete the job.”
— Jerome Saltzer, Communications of the ACM, 1974
Slide 9
Slide 9 text
Heart Rate
Monitor
Heart Rate
Application
Slide 10
Slide 10 text
Heart Rate
Monitor
Heart Rate
Application
Slide 11
Slide 11 text
Heart Rate
Monitor
Heart Rate
Service
Heart Rate
Application
The phone may not be online all the time so the service also caches this data to deliver it later …
Heart Rate
Monitor
Heart Rate
Service
80 bpm
Heart Rate
Application
Slide 15
Slide 15 text
Initiator Responder
Shared Secret Shared Secret
M1
M2
M3
The shared secret is then used as a key in Symmetric Key
Cryptography to maintain con
fi
dentiality and integrity of application
data.
Application Data - Authenticated Encryption
The entities involved use Public Key Cryptography to authenticate
each other and agree on a shared secret.
Authenticated Key Exchange
D
Secure Channel
Slide 16
Slide 16 text
THREAT DESIRED PROPERTY
S Spoo
fi
ng identity Identi
fi
cation, Authentication
T Tampering with data Integrity
R Repudiation Non-repudiability (some applications desire the opposite)
I Information disclosure Con
fi
dentiality
D Denial of service Availability
E Elevation of privilege Authorization
Note that this model is very high level, there is massive amounts of nuance in dealing with each of the rows.
The STRIDE threat model can help us evaluate every message.
Slide 17
Slide 17 text
Coming back to our heart rate solution, for secure communication …
Heart Rate
Monitor
Heart Rate
Service
Heart Rate
Application
Slide 18
Slide 18 text
Heart Rate
Monitor
Heart Rate
Service
Secure Channel
We setup a secure channel between the monitor and the service.
Heart Rate
Application
Slide 19
Slide 19 text
Heart Rate
Monitor
Heart Rate
Service
Secure Channel Secure Channel
And another secure channel between the phone and the service.
Heart Rate
Application
Slide 20
Slide 20 text
Heart Rate
Monitor
Heart Rate
Service
Transport Layer Security Transport Layer Security
Since these devices have direct access to the internet, with TLS …
Heart Rate
Application
Slide 21
Slide 21 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
Transport Layer Security Transport Layer Security
Heart Rate
Application
Slide 22
Slide 22 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
Transport Layer Security Transport Layer Security
Heart Rate
Application
Slide 23
Slide 23 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
80 bpm
Transport Layer Security Transport Layer Security
Heart Rate
Application
Slide 24
Slide 24 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
80 bpm
0x8621f842…
Transport Layer Security Transport Layer Security
Heart Rate
Application
Slide 25
Slide 25 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
80 bpm
0x8621f842…
80 bpm
This type of setup is industry best practice.
Transport Layer Security Transport Layer Security
Heart Rate
Application
Slide 26
Slide 26 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
80 bpm
0x8621f842…
80 bpm
But even when we manage to setup the channels correctly the data is still exposed to the service.
The service doesn’t need to know the contents of the message to route and cache messages (its primary job).
Transport Layer Security Transport Layer Security
Heart Rate
Application
Route/Cache sensor data, alerts and videos.
Camera Door Bell Camera Door Bell
Application
Camera Door Bell
Service
Slide 30
Slide 30 text
Gateway
Flood Warning Sensor
Multiple transport protocols in the path of one message.
TCP TCP
Flood Monitoring System
Sensors Vendor’s Service
LPWAN
Slide 31
Slide 31 text
Gateway
Flood Warning Sensor
Flood Monitoring System
Sensors Vendor’s Service
TLS TLS
LPWAN
Slide 32
Slide 32 text
Messages, within modern applications, rarely
flows over a single, direct, point-to-point
transport connection.
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
Secure Channel implementations are usually
tightly coupled with the length and duration
of the underlying transport layer connection.
Slide 38
Slide 38 text
Data integrity and confidentiality guarantees
are lost at every transport connection hop.
Slide 39
Slide 39 text
JUNE 2021
1. Implicit trust in network boundaries
.
2. Lack of end-to-end data integrity and con
fi
dentiality
.
3. Lack of mutual authentication.
Root causes
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
JUNE 2021
1. Implicit trust in network boundaries
.
2. Lack of end-to-end data integrity and con
fi
dentiality
.
3. Lack of mutual authentication
.
4. Poor management of keys and credentials.
Root causes
Slide 43
Slide 43 text
JUNE 2021
End-to-end Encrypted
Secure Channels
Slide 44
Slide 44 text
Initiator Responder
Shared Secret Shared Secret
M1
M2
M3
The shared secret is then used as a key in Symmetric Key
Cryptography to maintain con
fi
dentiality and integrity of application
data.
Application Data - Authenticated Encryption
The entities involved use Public Key Cryptography to authenticate
each other and agree on a shared secret.
Authenticated Key Exchange
D
Secure Channel
Slide 45
Slide 45 text
Heart Rate
Monitor
Heart Rate
Service
80 bpm
0x217c5111…
80 bpm
0x8621f842…
80 bpm
But even when we manage to setup the channels correctly the data is still exposed to the service.
The service doesn’t need to know the contents of the message to route and cache messages (its primary job).
Transport Layer Security Transport Layer Security
Heart Rate
Application
TLS
TCP
Application
TCP
Application
Routing
Secure Channels
IP IP
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
No content
Slide 55
Slide 55 text
TCP
Application
Routing
Secure Channels
IP
Slide 56
Slide 56 text
TCP
Application
Routing
Secure Channels
IP
UDP
WebSocket
HTTP
Slide 57
Slide 57 text
TCP
Application
Routing
Secure Channels
IP
UDP
WebSocket
HTTP
Bluetooth
LPWAN
Slide 58
Slide 58 text
THREAT DESIRED PROPERTY
S Spoo
fi
ng identity Identi
fi
cation, Authentication
T Tampering with data Integrity
R Repudiation Non-repudiability (some applications desire the opposite)
I Information disclosure Con
fi
dentiality
D Denial of service Availability
E Elevation of privilege Authorization
Note that this model is very high level, there is massive amounts of nuance in dealing with each of the rows.
The STRIDE threat model can help us evaluate every message.
Slide 59
Slide 59 text
JUNE 2021
Device Enrollmen
t
Leased API access token
s
Firmware Updat
e
Find my lost device
…
Slide 60
Slide 60 text
JUNE 2021
Privacy Contexts & Identity Profiles
Slide 61
Slide 61 text
JUNE 2021
Selective Disclosure
Slide 62
Slide 62 text
JUNE 2021
Anonymous Credentials
Slide 63
Slide 63 text
JUNE 2021
Zero Knowledge Proofs
Mozilla is using Non-Interactive Zero Knowledge Proofs to collect telemetry from the
Firefox browser without collecting any private browser usage.
A large subset of IoT use cases is telemetry collection.
Slide 64
Slide 64 text
JUNE 2021
Federated Learning
Google Keyboard learns out-of-vocabulary words on mobile phones without exposing
sensitive text to servers.
Connected sensors could similarly learn to improve accuracy while preserving privacy.
Slide 65
Slide 65 text
JUNE 2021
Homomorphic Encryption
Slide 66
Slide 66 text
No content
Slide 67
Slide 67 text
JUNE 2021
Mrinal Wadhw
a
github.com/ockam-network/ocka
m
twitter.com/mrinal