A look into the Mobile Messaging Black Box Roland Schilling Frieder - - PowerPoint PPT Presentation

a look into the mobile messaging black box
SMART_READER_LITE
LIVE PREVIEW

A look into the Mobile Messaging Black Box Roland Schilling Frieder - - PowerPoint PPT Presentation

A look into the Mobile Messaging Black Box Roland Schilling Frieder Steinmetz December 27, 2016 Hamburg University of Technology Security in Distributed Applications 33 rd Chaos Commmunication Congress #33c3 @NerdingByDoing @twillnix


slide-1
SLIDE 1

A look into the Mobile Messaging Black Box

33rd Chaos Commmunication Congress #33c3

Roland Schilling

@NerdingByDoing

Frieder Steinmetz

@twillnix

December 27, 2016

Hamburg University of Technology Security in Distributed Applications

slide-2
SLIDE 2

Messaging – Identifying Our Expectations

You’re at a party

  • Friend approaches you and needs to tell you something in private
  • What do you expect when you say private?
  • You enter a separate room, you trust the location
  • What does a separate room offer you?

party

slide-3
SLIDE 3

A Private Room

You are now alone in a closed room with your Friend

  • Both of you have absolute Confidentiality that you are alone
  • Nobody can overhear your talk
  • Your exchange is completely private

We call this confidentiality

slide-4
SLIDE 4

You Know Each Other

Since you’re long-time friends, you’re absolutely sure, whom you’re talking to

  • Nobody can impersonate your friend or you, without the other noticing
  • You’re talking directly, without a phone or webcam in between

We call this authenticity

slide-5
SLIDE 5

In Sight of Each Other

The room you’re in is small enough that you can always see each other

  • You know that the words you speak are received just as you spoke them
  • There is no way either of you hears something other than the other says

We call this integrity

slide-6
SLIDE 6

It’s a One-Time Talk

Suppose somebody steps into the room

  • They could overhear your conversation
  • They would only learn the contents of this particular conversation
  • They would not learn anything about past conversations you had

We call this forward secrecy → After leaving they would not be able to listen to any future conversations you might have We call this future secrecy

slide-7
SLIDE 7

It’s a One-Time Talk

Forward- and Future Secrecy

third person enters room Forward Secrecy

timeline

third person leaves room

secret conversation

  • verheard

conversation

Future Secrecy

slide-8
SLIDE 8

It’s a One-Time Talk Between Only You Two

There are no witnesses in the room

  • Either of you can later deny to other having made any statement
  • Neither of you can prove to other that any of you have made a particular

statement We call this deniability

slide-9
SLIDE 9

Messaging – Reality Check

slide-10
SLIDE 10

Messaging – A More Technical Analogy

We started with a conversation analogy to identify our expectations of messaging → Actually postal services are better to look at messaging from a technical point

  • f view.

= >

From: Alice To: Bob

slide-11
SLIDE 11

Example: Traditional Messaging

What if our party conversation had taken place via SMS? Your providers (and other people on the same network)

  • would know the contents of your exchange: no confidentiality
  • could change the contents of your exchange: no integrity
  • could reroute your messages and impersonate either of you: no

authentication

  • do not guarantee any secrecy, so we have neither forward secrecy nor future

secrecy → We could argue having deniability though. → Messaging translates badly to our offline communication expectation

slide-12
SLIDE 12

From Postcards to Letters

slide-13
SLIDE 13

From Postcards to Letters

slide-14
SLIDE 14

The Shortest Introduction to Encryption You Will Ever Get

Symmetric Encryption:

→ Encryption and decryption with the same key

Crypto

plain text ciphertext Key

Asymmetric Encryption:

Encryption and decryption with different keys

slide-15
SLIDE 15

The Shortest Introduction to Encryption You Will Ever Get

Symmetric Encryption:

→ Encryption and decryption with the same key

Crypto

plain text ciphertext Key

Crypto

plain text Key

Asymmetric Encryption:

Encryption and decryption with different keys

slide-16
SLIDE 16

The Shortest Introduction to Encryption You Will Ever Get

Symmetric Encryption:

→ Encryption and decryption with the same key

Crypto

plain text ciphertext Key

Crypto

plain text Key

Asymmetric Encryption:

→ Encryption and decryption with different keys

Crypto

plain text ciphertext Key

Crypto

plain text Key

slide-17
SLIDE 17

The Shortest Introduction to Encryption You Will Ever Get

Symmetric Encryption:

→ Encryption and decryption with the same key

Crypto

plain text ciphertext Key

Crypto

plain text Key

Asymmetric Encryption:

→ Encryption and decryption with different keys

Crypto

plain text ciphertext Key

Crypto

plain text Key

key pair

slide-18
SLIDE 18

Public-Key Cryptography – In a Nutshell

Secret Key Identity Public Key Secret Key Identity Public Key Secret Key Identity Public Key

  • Both parties publish their identities and public keys
  • Any message can be encrypted with anyone’s public key and only be

decrypted with its corresponding secret key

slide-19
SLIDE 19

Public-Key Cryptography – In a Nutshell

Secret Key Identity Public Key Secret Key Identity Public Key Secret Key Identity Public Key

Crypto

plain text ciphertext Key

Crypto

plain text Key

key pair

  • Both parties publish their identities and public keys
  • Any message can be encrypted with anyone’s public key and only be

decrypted with its corresponding secret key

slide-20
SLIDE 20

Public-Key Cryptography – In a Nutshell

Crypto Crypto

Bob Public Key Bob Secret Key

?

Bob

  • Both parties publish their identities and public keys
  • Any message can be encrypted with anyone’s public key and only be

decrypted with its corresponding secret key

slide-21
SLIDE 21

Key Establishment

.

Secret Key Identity Public Key Secret Key Identity Public Key Secret Key Identity Public Key

Key Generator Key Generator

Bob Public Key Alice Public Key Key

slide-22
SLIDE 22

Recap

Asymmetric Encryption gives us IDs but is very ex- pensive.

Crypto

plain text ciphertext Key

Crypto

plain text Key

key pair

Symmetric Encryption is cheap, but a key has to be shared by all participants before communica- tion starts.

Crypto

plain text ciphertext Key

Crypto

plain text Key

Key Establishment allows us to create symmetric keys based on asymmetric key pairs.

Secret Key Identity Public Key Secret Key Identity Public Key Secret Key Identity Public Key

Key Generator Key Generator

Bob Public Key Alice Public Key Key

But there’s more…

slide-23
SLIDE 23

Confidentiality

Crypto

plain text ciphertext Key

Crypto

plain text Key

?

slide-24
SLIDE 24

Deniability

From: either of us To: both of us

slide-25
SLIDE 25

But What About Forward- and Future Secrecy? third person enters room Forward Secrecy

timeline

third person leaves room

secret conversation

  • verheard

conversation

Future Secrecy

slide-26
SLIDE 26

But What About Forward- and Future Secrecy? key compromise Forward Secrecy

timeline

key renegotiation

secret messages compromised messages

Future Secrecy

slide-27
SLIDE 27

But What About Forward- and Future Secrecy?

Crypto Crypto

Bob

Key Key

slide-28
SLIDE 28

But What About Forward- and Future Secrecy?

Crypto Crypto

Bob

Key Key

Key

slide-29
SLIDE 29

Recap

Our key establishment protocol gives us:

  • Confidentiality
  • Deniability
  • Authenticity

We don’t have:

  • Forward Secrecy
  • Future Secrecy

→ We are ignoring Integrity here, but we have that, too.

slide-30
SLIDE 30

Key and ID Management

Cryptography is rarely, if ever, the solution to a security problem. Cryptography is a translation mechanism, usually converting a communications security problem into a key management problem. —Dieter Gollmann

slide-31
SLIDE 31

Key and ID Management

Secret Key Identity Public Key Secret Key Identity Public Key Bob Public Key Alice Public Key

Messenger Server

Bob? B

  • b

P u b l i c K e y Alice? Alice Public Key

slide-32
SLIDE 32

Key and ID Management

We can ask for IDs, but what is an ID?

  • A phone number?

Can identify a user. But is also considered personal information.

  • An email address?

Same thing as with phone number. But a temporary email can be used.

  • Something else?

Dedicated IDs offer anonymous usage, but ID ownership must be verifyable. Dedicated IDs are preferrable. But only if we find a way to verify ID ownership

slide-33
SLIDE 33

Key and ID Management

We can ask for IDs, but what is an ID?

  • A phone number?

→ Can identify a user. But is also considered personal information.

  • An email address?

Same thing as with phone number. But a temporary email can be used.

  • Something else?

Dedicated IDs offer anonymous usage, but ID ownership must be verifyable. Dedicated IDs are preferrable. But only if we find a way to verify ID ownership

slide-34
SLIDE 34

Key and ID Management

We can ask for IDs, but what is an ID?

  • A phone number?

→ Can identify a user. But is also considered personal information.

  • An email address?

→ Same thing as with phone number. But a temporary email can be used.

  • Something else?

Dedicated IDs offer anonymous usage, but ID ownership must be verifyable. Dedicated IDs are preferrable. But only if we find a way to verify ID ownership

slide-35
SLIDE 35

Key and ID Management

We can ask for IDs, but what is an ID?

  • A phone number?

→ Can identify a user. But is also considered personal information.

  • An email address?

→ Same thing as with phone number. But a temporary email can be used.

  • Something else?

→ Dedicated IDs offer anonymous usage, but ID ownership must be verifyable. Dedicated IDs are preferrable. But only if we find a way to verify ID ownership

slide-36
SLIDE 36

Key and ID Management

We can ask for IDs, but what is an ID?

  • A phone number?

→ Can identify a user. But is also considered personal information.

  • An email address?

→ Same thing as with phone number. But a temporary email can be used.

  • Something else?

→ Dedicated IDs offer anonymous usage, but ID ownership must be verifyable. → Dedicated IDs are preferrable. But only if we find a way to verify ID ownership

slide-37
SLIDE 37

Key and ID Management

How does Alice know which is Bob’s public key?

Bob Public Key Bob Public Key Bob Public Key Bob Public Key Bob Public Key

??

?

slide-38
SLIDE 38

Mobile Messaging Key Management

Secret Key Identity Public Key Secret Key Identity Public Key Bob Public Key Alice Public Key

Messenger Server

Bob? B

  • b

P u b l i c K e y Alice? Alice Public Key

slide-39
SLIDE 39

Mobile Messaging Key Management

Secret Key Identity Public Key Secret Key Identity Public Key Bob Public Key Alice Public Key

Messenger Server

Bob? B

  • b

P u b l i c K e y Alice? Alice Public Key

slide-40
SLIDE 40

Authenticity

We have now solved the Authentiticy problem

  • User can be identified by their phone number or email address

→ But they have dedicated IDs. → Personal verification is possible. The remaining unsolved problem is a user changing their ID. → At this point, the problem starts anew. → We will get back to that later.

slide-41
SLIDE 41

Metadata Handling

Everybody on the network can see:

  • the sender of the message
  • the intended receiver of the message

?

Alice From Bob

slide-42
SLIDE 42

Metadata Handling

Solution: wrap encrypted message in a second layer of encryption and address it

  • nly to the message server.

Msngr

!

slide-43
SLIDE 43

Metadata Handling

slide-44
SLIDE 44

Metadata Handling

A l i c e

slide-45
SLIDE 45

Metadata Handling

The message server will remove the outer layer and add a new one, targeted at the receiver.

Alice

!

From Msngr

!

slide-46
SLIDE 46

Metadata Handling

This leaves us with an encrypted end-to-end tunnel, transmitted through two transport layer encryption tunnels. The message server still knows both communication partners!

slide-47
SLIDE 47

Metadata Handling

We can obfuscate the size of a message with padding

slide-48
SLIDE 48

Metadata Handling

We can obfuscate the size of a message with padding Message Padding Size of encrypted Message

=

slide-49
SLIDE 49

Threema

slide-50
SLIDE 50

Threema’s Architecture

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

slide-51
SLIDE 51

Threema Fingerprints

Threema offers dedicated IDs

  • Users may provider their phone number and email.
  • If provided, phone number and email are used for

identification with the directory server.

  • If no additional data is provided, IDs can only be

exchanged manually.

  • In either case, manual verification using QR codes is

encouraged.

  • The app permanently tracks the verification status
  • f each peer ID.
slide-52
SLIDE 52

NaCl and Threema

Public Key Secret Key

ECDH HSalsa20

Nonce

Random Generator XSalsa20 Poly1305

Key plain text

Nonce Cipertext MAC

slide-53
SLIDE 53

NaCl and Threema

NaCl

Public Key Secret Key

ECDH HSalsa20

Nonce

Random Generator XSalsa20 Poly1305

Key plain text

Nonce Cipertext MAC

slide-54
SLIDE 54

Threema’s Handshake Between the App and the Messaging Server

Threema App Threema Messaging Server Client Hello Server Hello Client Auth Pkt Server Ack

Exchange a set of ephemeral keys and verify each

  • thers long term identity keys.
slide-55
SLIDE 55

Threema’s Handshake Between the App and the Messaging Server

Threema App Threema Messaging Server Client Hello Server Hello Client Auth Pkt Server Ack

Client Hello Packet

Client Hello

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Ephemeral Client Public Key Client Nonce Prefix

  • Client generates a ephemeral key pair
  • Client generates random nonce prefix
slide-56
SLIDE 56

Threema’s Handshake Between the App and the Messaging Server

Threema App Threema Messaging Server Client Hello Server Hello Client Auth Pkt Server Ack

Server Hello Packet

Server Hello

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Server Nonce Prefix Ephemeral Server Public Key Client Nonce Prefix

                

Ciphertext

  • Server generates ephemeral key pair
  • Server generates random nonce
  • Ciphertext encrypted with Server Nonce, Client

Ephemeral Key and Server Long-Term Key

slide-57
SLIDE 57

Threema’s Handshake Between the App and the Messaging Server

Threema App Threema Messaging Server Client Hello Server Hello Client Auth Pkt Server Ack

Client Authentication Packet

Client Authentication Packet

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Threema ID User Agent String Server nonce Prefix Random Nonce Ciphertext (Ephemeral Client Public Key)

                

Ciphertext

  • Outer Encryption with ephemeral Keys
  • Ciphertext links clients ephemeral key pair to it’s

long term key pair

slide-58
SLIDE 58

Threema’s Handshake Between the App and the Messaging Server

Threema App Threema Messaging Server Client Hello Server Hello Client Auth Pkt Server Ack

Server Acknowledgement Packet

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Zeros

}

Ciphertext

  • Server comfirms everything worked fine by

encrypting something with both ephemeral keys

  • We have established a forward secure channel

between app and messaging server.

slide-59
SLIDE 59

A 2-Layer Tunnel

Has Forward Secrecy Doesn't have Forward Secrecy

slide-60
SLIDE 60

Threema Packet Format

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header Ciphertext

slide-61
SLIDE 61

Threema Text Messages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x01

Text Variable-length Padding

   Ciphertext

slide-62
SLIDE 62

Threema Image Messages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x43

Blob ID Size Key Variable-length Padding

        

Ciphertext

slide-63
SLIDE 63

Sending an Image Message

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

slide-64
SLIDE 64

Sending an Image Message

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

Blob

Blob ID

slide-65
SLIDE 65

Sending an Image Message

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

Blob

Blob ID

slide-66
SLIDE 66

Sending an Image Message

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

Blob

Blob ID

slide-67
SLIDE 67

Sending an Image Message

Messaging Server Media Server Directory Server

Bob Public Key Alice Public Key

Blob

Blob ID Blob ID

Blob

slide-68
SLIDE 68

Recap

Basic messaging functionality achieved.

slide-69
SLIDE 69

Group Messages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x41

Creator ID Group ID Text Variable-length Padding

        

Ciphertext

slide-70
SLIDE 70

Group Management Messages

Group creation message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x4A

Group ID Member IDs Variable-length Padding

        

Ciphertext

slide-71
SLIDE 71

Group Management Messages

Group rename message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x4B

Group ID Group Name Variable-length Padding

        

Ciphertext

slide-72
SLIDE 72

Implementation of Addon Features

Captions in Image Messages

JPEG Image Exif Data

..x...1}....y....l.a.. e}...q.Gy....w.m....w. ......p8..H....x..I.! Greetings from Iceland ....." ..,...{.]...... ..G..8....O<R.....x.\.

Image data

slide-73
SLIDE 73

Implementation of Addon Features

Quoted Messages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

0x01

> 1EE733C3: I’m a quoted message. And I’m a comment! Variable-length Padding

slide-74
SLIDE 74

Our Library

Our reverse-engineering efforts led to a re-implementation of Threema’s API.

  • Fully Threema-compatible
  • Almost feature-complete
  • Completely undocumented (yet)

You can find the repositories at this location: https://github.com/o3ma

slide-75
SLIDE 75

Done!

Thank You!

Roland Schilling

 schilling@tuhh.de  @NerdingByDoing

Frieder Steinmetz

 frieder.steinmetz@tuhh.de  @twillnix

Beamer Theme: Metropolis by Matthias volgelsang Color Theme: Owl by Ross Chirchley Icons: The BIG collection by Sergey Demushkin Foundation Icon Fonts 3 by ZURB NaCl slide was adapted from a figure in Threema’s Cryptography Whitepaper Threema Screenshots taken from the Threema press package Thanks to Jan Ahrens and Philipp Berger – their work has made ours somewhat easier Thanks to Maximilian Köstler for his initial work on Threema

slide-76
SLIDE 76

Appendix Message Packet (Threema Protocol Layer)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header Ciphertext

  • Only the MSB of Flags is used
slide-77
SLIDE 77

Appendix Message Packet on the Wire

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Length

Threema Client-to-Server Ciphertext

slide-78
SLIDE 78

Appendix Text Message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x01

Text Variable-length Padding

   Ciphertext

slide-79
SLIDE 79

Appendix Image Message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x43

Blob ID Size Key Variable-length Padding

        

Ciphertext

  • Blob is symmetrically encrypted using Key and uploaded to asset server.
  • Image captions are stored inside the image’s EXIF data. These data leak upon creating such an image

while the “save media to gallery” option is enabled.

slide-80
SLIDE 80

Appendix Audio Message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x02

D u r a t i

  • n

Blob ID Size Key Variable-length Padding

        

Ciphertext

slide-81
SLIDE 81

Appendix Group Message Packet

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x41

Creator ID Group ID Text Variable-length Padding

        

Ciphertext

slide-82
SLIDE 82

Appendix Group Image Message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x41

Creator ID Group ID Blob ID Size Key Variable-length Padding

        

Ciphertext

slide-83
SLIDE 83

Appendix Group Picture Update

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

80

Group ID Blob ID Size Symmetric key Variable-length Padding

slide-84
SLIDE 84

Appendix Create/Update Group (members)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

74

Group ID Group Members

slide-85
SLIDE 85

Appendix Acknowledgement Packet to Server

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Length

Pkt Type

Sender Message ID ← − Length − →

slide-86
SLIDE 86

Appendix Client-Server Handshake

Client Hello

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Ephemeral Client Public Key Client Nonce Prefix

Server Hello

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Server Nonce Prefix Ephemeral Server Public Key Client Nonce Prefix

                

Ciphertext

slide-87
SLIDE 87

Appendix

Client Authentication Packet

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Threema ID User Agent String Server nonce Prefix Random Nonce Ciphertext (Ephemeral Client Public Key)

                

Ciphertext

Server Acknowledgement

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Zeros

}

Ciphertext

slide-88
SLIDE 88

Appendix PKCS7 Padding

03 03 03 04 04 04 04 08 08 08 08 08 08 08 08 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 05 05 05 05 05 06 06 06 06 06 06

slide-89
SLIDE 89

Appendix Group Management Message - Add Users

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x4A

Group ID Member IDs Variable-length Padding

        

Ciphertext

slide-90
SLIDE 90

Appendix Group Management Message - Rename Group

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Message Header

0x4B

Group ID Group Name Variable-length Padding

        

Ciphertext

slide-91
SLIDE 91

Appendix Quoted Text Message

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Pkt Type

Sender Recipient Message ID Time Flags Public Nickname (string) Nonce

        

Header

0x01

> 1EE733C3: I’m a quoted message. And I’m a comment! Variable-length Padding

                

Ciphertext