briar issueshttps://code.briarproject.org/groups/briar/-/issues2017-06-09T19:25:50Zhttps://code.briarproject.org/briar/briar/-/issues/937Research how to package Bramble as a Cordova plugin2017-06-09T19:25:50ZakwizgranResearch how to package Bramble as a Cordova pluginSubtask of #141.Subtask of #141.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/812Update screenshots on website2017-12-18T07:40:26ZakwizgranUpdate screenshots on websiteWe should probably use a newer phone, too.We should probably use a newer phone, too.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/783Make build process meet f-droid norms (no binaries)2018-05-11T14:19:12ZGreg TroxelMake build process meet f-droid norms (no binaries)(This ticket is not about actually getting briar into f-droid.)
Currently, the build downloads binaries, at least tor. My understanding is that f-droid, as part of reproducible builds, wants apps to build from source.
In addition to ...(This ticket is not about actually getting briar into f-droid.)
Currently, the build downloads binaries, at least tor. My understanding is that f-droid, as part of reproducible builds, wants apps to build from source.
In addition to f-droid issues, not being able to build tor from source easily makes it harder to debug #769.https://code.briarproject.org/briar/briar/-/issues/706Migrate crypto to libsodium2020-11-21T16:39:44ZakwizgranMigrate crypto to libsodiumUsing libsodium via JNI would give us constant-time implementations of Curve25519 and Ed25519 (see #236) and a fast implementation of Argon2 (see #170). Our crypto_secretbox implementation could be replaced, and we could use crypto_box i...Using libsodium via JNI would give us constant-time implementations of Curve25519 and Ed25519 (see #236) and a fast implementation of Argon2 (see #170). Our crypto_secretbox implementation could be replaced, and we could use crypto_box instead of ECIES for crash reports and feedback. BLAKE2s would remain in Java (libsodium only has BLAKE2b). If we replaced the Fortuna generator with libsodium's RNG, we could get rid of Bouncy Castle.
https://github.com/joshjdevl/libsodium-jnihttps://code.briarproject.org/briar/briar/-/issues/542Don't poll for retransmission2018-03-08T15:59:11ZakwizgranDon't poll for retransmissionOutgoing sync sessions poll the database periodically for messages that have reached their send times and can be sent or offered again. This requires a thread to wake up periodically for each open session, even when there's nothing to se...Outgoing sync sessions poll the database periodically for messages that have reached their send times and can be sent or offered again. This requires a thread to wake up periodically for each open session, even when there's nothing to send.
The sync layer should keep track of the earliest send time of any message in the DB, and either broadcast an event when the send time is reached or provide a method that blocks until the earliest send time is reached.
Related to #44.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/541Allow retransmission if it will result in faster delivery2018-09-18T17:04:01ZakwizgranAllow retransmission if it will result in faster deliveryEach time a message is sent to a contact, the message's send time is updated based on the maximum latency of the transport, and the message cannot be sent to the contact again until the send time is reached. This prevents messages from b...Each time a message is sent to a contact, the message's send time is updated based on the maximum latency of the transport, and the message cannot be sent to the contact again until the send time is reached. This prevents messages from being retransmitted unnecessarily while they're still in transit. However, if a message is in transit over a high-latency transport, it may be desirable to allow it to be retransmitted over a low-latency transport to allow faster delivery.
Instead of comparing the send time to the current time, it should be compared to the expected delivery time over the current transport. The current time plus the maximum latency of the current transport can be used as a first estimate of the expected delivery time; we can get clever with round-trip time measurements later.Mailbox PrototypeJulian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/424Forum post timestamps2018-06-12T11:32:26ZErnir ErlingssonForum post timestampsThere was some old logic upon forum post creation that I didn't quite understand:
`// Don't use an earlier timestamp than the newest post`
Find out what this is about and make appropriate changes if anyThere was some old logic upon forum post creation that I didn't quite understand:
`// Don't use an earlier timestamp than the newest post`
Find out what this is about and make appropriate changes if anyMilestone Dhttps://code.briarproject.org/briar/briar/-/issues/249Support multi-block messages2018-05-11T13:29:32ZakwizgranSupport multi-block messagesDepends on #175.Depends on #175.https://code.briarproject.org/briar/briar/-/issues/236Migrate to Curve25519 and Ed255192018-02-16T18:19:21Zstr4dMigrate to Curve25519 and Ed25519See comments in #117.See comments in #117.Android 1.0https://code.briarproject.org/briar/briar/-/issues/106Release beta versions through Google Play2017-07-17T15:02:45ZakwizgranRelease beta versions through Google PlayAndroid Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/59Traffic analysis prevention layer2022-11-01T14:51:18ZakwizgranTraffic analysis prevention layerThe traffic analysis prevention (TAP) layer is responsible for preventing an observer from determining the volume and timing of data carried by a BTP stream.
What should the interfaces between BTP, TAP and the transport plugin look like...The traffic analysis prevention (TAP) layer is responsible for preventing an observer from determining the volume and timing of data carried by a BTP stream.
What should the interfaces between BTP, TAP and the transport plugin look like? Does the plugin need to be able to ask for a specific stream length, other than setting an upper bound? Are there any transports for which sending data as quickly as possible is preferable (from a TAP point of view) to sending it at a limited rate?
The TAP layer could adjust the transmission rate, increasing it if there's data waiting and decreasing it if not. What could the adversary learn by observing changes in the transmission rate and/or manipulating congestion?
Padding could be handled at the BTP layer by choosing a padding multiplier for each stream. The TAP layer would then sit between BTP and the transport and handle chopping and delaying the stream -- that is, segmenting the encrypted, padded stream according to some segment size distribution, and writing segments to the transport according to some inter-segment delay distribution.
The padding, size and delay distributions can be used to produce a characteristic traffic 'shape' for each device or pair of devices:
http://www.cs.kau.se/philwint/pdf/wpes2013.pdf
We can conceal traffic bursts by throttling the output of the TAP layer so that bursts are smoothed out. However, we should make good use of intermittently available transports -- if we send too slowly, the transport connection may be lost before we finish.https://code.briarproject.org/briar/briar/-/issues/31Use built-in error correction for modem plugin?2022-04-18T09:39:27ZakwizgranUse built-in error correction for modem plugin?
Newer dialup modems (presumably the majority of those still in use) support error correction via V.42 LAPM and/or MNP. This may be sufficient to carry BTP without an intermediate reliability layer. If so, the reliability code (SLTP) co...
Newer dialup modems (presumably the majority of those still in use) support error correction via V.42 LAPM and/or MNP. This may be sufficient to carry BTP without an intermediate reliability layer. If so, the reliability code (SLTP) could be removed, reducing the size of the codebase and making BTP connections harder to identify: they would simply be SLIP-framed random data. (SLIP-framed UDP packets full of random data would be another easily implemented option, if that would be less likely to stand out.)
AT commands for enabling error correction (on which modems?):
* AT\N2: Require error correction, report NO CARRIER if the other end doesn't support it.
* AT&Q5: Try to negotiate an error corrected link.https://code.briarproject.org/briar/briar/-/issues/27Detect when LAN IP address changes2022-04-20T14:53:37ZakwizgranDetect when LAN IP address changesThis already works on Android, but how to do it on the desktop is an open question.This already works on Android, but how to do it on the desktop is an open question.https://code.briarproject.org/briar/tor-reproducer/-/issues/17Upgrade Tor to 0.4.7.152023-09-29T11:44:31ZakwizgranUpgrade Tor to 0.4.7.15Tor 0.4.7.15 contains a major bugfix for onion services.
https://forum.torproject.org/t/stable-release-0-4-7-15-and-0-4-8-6/9292
> This version contains an important fix for onion service regarding congestion control and its reliabil...Tor 0.4.7.15 contains a major bugfix for onion services.
https://forum.torproject.org/t/stable-release-0-4-7-15-and-0-4-8-6/9292
> This version contains an important fix for onion service regarding congestion control and its reliability. Apart from that, very minor bugfixes. We strongly recommend all onion service operators to update immediately.
>
> Major bugfixes (onion service):
> - Fix a reliability issue where services were expiring their
> introduction points every consensus update. This caused
> connectivity issues for clients caching the old descriptor and
> intro points. Bug reported and fixed by gitlab user
> @hyunsoo.kim676. Fixes bug 40858; bugfix on 0.4.7.5-alpha.akwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/22Write report2023-09-12T12:22:53ZSebastianWrite reporthttps://code.briarproject.org/briar/briar-mailbox/-/issues/186Add support for Snowflake2023-03-29T13:41:38ZakwizgranAdd support for SnowflakeTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/185Add Gradle task for verifying translations2023-04-20T09:36:48ZakwizgranAdd Gradle task for verifying translationsAdd a Gradle task for verifying the translations, similar to the one we have for Briar.Add a Gradle task for verifying the translations, similar to the one we have for Briar.Mailbox: ReleaseTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/184Add Mailbox strings to Transifex2023-02-07T13:24:02ZakwizgranAdd Mailbox strings to TransifexMailbox: ReleaseTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/public-mesh-research/-/issues/21Initial investigations: Bluetooth Mesh2022-12-16T13:08:29ZakwizgranInitial investigations: Bluetooth MeshInvestigate whether the Bluetooth Mesh standard could be useful.
https://www.bluetooth.com/wp-content/uploads/2019/03/Mesh-Technology-Overview.pdf
https://www.bluetooth.com/bluetooth-resources/controlling-bluetooth-mesh-networks-with-a...Investigate whether the Bluetooth Mesh standard could be useful.
https://www.bluetooth.com/wp-content/uploads/2019/03/Mesh-Technology-Overview.pdf
https://www.bluetooth.com/bluetooth-resources/controlling-bluetooth-mesh-networks-with-android-applications/Public mesh researchhttps://code.briarproject.org/briar/public-mesh-research/-/issues/19Investigate whether Android devices can connect via internet when no internet...2023-08-28T16:02:46ZakwizgranInvestigate whether Android devices can connect via internet when no internet access is detectedDuring a partial internet shutdown where a national network is disconnected from the internet but routing still works within the national network, Android devices may report that they don't have internet access because they can't fetch t...During a partial internet shutdown where a national network is disconnected from the internet but routing still works within the national network, Android devices may report that they don't have internet access because they can't fetch the URL that's used for detecting internet access (see https://stackoverflow.com/questions/33431931/how-does-android-know-if-the-wifi-connection-has-internet-access-or-not/39475588#39475588).
In this situation it would be useful to know whether an app can still route traffic to addresses on the national network. We might be able to simulate this situation by blocking access to the captive portal detection URL and perhaps also blocking DNS.Public mesh researchSebastianSebastian