Skip to content

Cryptobox review: signature scope #916

@oberstet

Description

@oberstet

WAMP-cryptobox works by computing a signature over and encrypting a bytes serialization of the following:

payload = {
    u'uri': uri,
    u'args': args,
    u'kwargs': kwargs
}

However, the URI is the only WAMP metadata that is included and checked under the signature.

The design question is: is that signature scope (uri/args/kwargs) enough?

Are there other things besides uri/args/kwargs a receiving client would expect to be untampered under end-to-end encryption (by being part of the stuff that goes into signature)?

Essentially, everything not under the scope of the signature must be treated "untrusted" by the receiving peer. Any intermediary WAMP router between the sending and the receiving peer might have tampered with stuff not under the signature.


Implementation wise the main thing to check is: is the URI contained within the bytes under the signature (still) the same as the URI in the WAMP message envelope? If not, someone tampered with the URI, and this should be treated as "fatal".

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions