Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 1.88 KB

File metadata and controls

56 lines (41 loc) · 1.88 KB

Test Webxdc Tool

A little webxdc tool to test webxdc-interpreter implementations.

Building

to create a .xdc file, execute:

./create-xdc.sh

Testing network isolation

To test whether a webxdc runtime implementation (i.e. a messenger) keeps the "apps can't access internet" promise, one can utilize this app together with Wireshark.

  1. Launch Wireshark.

  2. Start capturing packets on the default "internet" interface.

  3. Apply the following packet filter:

    ip.addr == 173.194.76.127 ||
    ip.addr == 37.218.242.41 ||
    udp contains "delta" ||
    tcp contains "delta"

    The first IP is the IP address of a Google STUN server, used in this app's WebRTC test. The second IP is the IP address of delta.chat.

  4. Open the webxdc runtime (i.e. the Delta Chat client) and launch this webxdc app.

  5. Scroll down to the "DNS Prefetch" section.

  6. Type in foobar.delta.chat and press all the 3 buttons in the section.

  7. Go back to Wireshark and verify that there are 0 packets that match the filter.

Disclaimer: the fact that a webxdc implementation passed all these tests doesn't mean that it's fool-proof.

Wireshark is required because this webxdc app might not always be able to receive data back, and thus detect a leak. For example, this is the case for the TURN server test.

As a bonus step, try building Delta Chat with no CSP set for webxdc apps, and repeating the test. Still no network activity should occur, otherwise we're one misstep away from breaking the promise.