The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2023-08-04T17:02:08Zhttps://gitlab.torproject.org/tpo/onion-services/onionprobe/-/issues/79Onionprobe 1.2.0 release planning2023-08-04T17:02:08ZSilvio RhattoOnionprobe 1.2.0 release planningPlan the [1.2.0 milestone][].
* [x] Create the [1.2.0 milestone][].
* [x] Add initial set of tasks to the milestone.
* [x] Discuss and update the milestone.
* [x] Cleanup the milestone, removing all issues labelled with ~Icebox.
* [x] S...Plan the [1.2.0 milestone][].
* [x] Create the [1.2.0 milestone][].
* [x] Add initial set of tasks to the milestone.
* [x] Discuss and update the milestone.
* [x] Cleanup the milestone, removing all issues labelled with ~Icebox.
* [x] Set the correct deadlines to issues and update it's deadlines according to the milestone deadline.
[1.2.0 milestone]: https://gitlab.torproject.org/tpo/onion-services/onionprobe/-/milestones/1Onionprobe 1.2.0Silvio RhattoSilvio Rhatto2023-08-07https://gitlab.torproject.org/tpo/onion-services/oniongroove/-/issues/3Oniongroove prototype2024-03-28T12:56:29ZSilvio RhattoOniongroove prototypeWrite an early prototype/proof of concept for Oniongroove.Write an early prototype/proof of concept for Oniongroove.Oniongroove 0.1.0Silvio RhattoSilvio Rhatto2024-05-16https://gitlab.torproject.org/tpo/onion-services/onionprobe/-/issues/78Enhanced metrics for Onion Service descriptors2024-03-27T21:44:54ZSilvio RhattoEnhanced metrics for Onion Service descriptorsImplement additional metrics for Onion Service descriptors.
That need:
* A better way to parse descriptors would enable many other metrics.
* Some patches sent upstream to Stem.
Some fields that could get measurements:
* From the out...Implement additional metrics for Onion Service descriptors.
That need:
* A better way to parse descriptors would enable many other metrics.
* Some patches sent upstream to Stem.
Some fields that could get measurements:
* From the outer descriptor wrapper:
* [ ] "descriptor-lifetime".
* [ ] "revision-counter".
* From the first layer of encryption:
* [ ] "[caa-critical](https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/343-rend-caa.txt)".
* From the second layer of encryption:
* [ ] "single-onion-service".
* [ ] "pow-params": an indirect way to measure DoS for PoW-enabled
services (by measuring the PoW settings in the descriptor),
which depends on tpo/core/tor#40634 to be implemented.
* [ ] "[caa](https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/proposals/343-rend-caa.txt)".
Other measurements:
* [ ] Metrics for the descriptor and inner layer sizes.Onionprobe 1.2.0Silvio RhattoSilvio Rhatto2024-05-16https://gitlab.torproject.org/tpo/onion-services/onionprobe/-/issues/65config and examples installed to unusual locations2023-10-24T12:40:48Zgeorgconfig and examples installed to unusual locationsThe following bug was reported in Debian (-> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025508):
```
The next upload of dh-python will change the layout of onionprobe's
installed data:
$ debdiff existing/onionprobe_1.0.0+ds-2.1...The following bug was reported in Debian (-> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025508):
```
The next upload of dh-python will change the layout of onionprobe's
installed data:
$ debdiff existing/onionprobe_1.0.0+ds-2.1_all.deb new/onionprobe_1.0.0+ds-2.1_all.deb
[The following lists of changes regard files as different if they have
different names, permissions or owners.]
Files in second .deb but not in first
-------------------------------------
-rw-r--r-- root/root /usr/onionprobe/configs/real-world-onion-sites.yaml
-rw-r--r-- root/root /usr/onionprobe/configs/securedrop.yaml
-rw-r--r-- root/root /usr/onionprobe/configs/tor.yaml
-rwxr-xr-x root/root /usr/onionprobe/examples/real-world-onion-sites.py
-rwxr-xr-x root/root /usr/onionprobe/examples/securedrop.py
-rwxr-xr-x root/root /usr/onionprobe/examples/tpo.py
Files in first .deb but not in second
-------------------------------------
-rw-r--r-- root/root /usr/lib/python3/dist-packages/onionprobe/configs/real-world-onion-sites.yaml
-rw-r--r-- root/root /usr/lib/python3/dist-packages/onionprobe/configs/securedrop.yaml
-rw-r--r-- root/root /usr/lib/python3/dist-packages/onionprobe/configs/tor.yaml
-rwxr-xr-x root/root /usr/lib/python3/dist-packages/onionprobe/examples/real-world-onion-sites.py
-rwxr-xr-x root/root /usr/lib/python3/dist-packages/onionprobe/examples/securedrop.py
-rwxr-xr-x root/root /usr/lib/python3/dist-packages/onionprobe/examples/tpo.py
Control files: lines which differ (wdiff format)
------------------------------------------------
Installed-Size: [-263-] {+264+}
This is due to the fix for #1025485.
Neither of these looks quite correct. /usr/onionprobe would be against
the FHS.
If the package expects to find configs and examples within its module,
then this change will break it, and you'll probably need to patch the
setup.cfg or manually move the files around.
If it doesn't, then they should probably be moved to /etc/ and
/usr/share/doc/onionprobe/.
```Onionprobe 1.2.0Silvio RhattoSilvio Rhatto2024-02-29https://gitlab.torproject.org/tpo/onion-services/oniongroove/-/issues/2Oniongroove threat model2024-03-27T21:47:21ZSilvio RhattoOniongroove threat modelWrite initial version of [Oniongroove](https://gitlab.torproject.org/rhatto/oniongroove) threat model, including:
* [ ] Consider the scenario where someone run more than a single Onionbalance
"frontend" with the same address but w...Write initial version of [Oniongroove](https://gitlab.torproject.org/rhatto/oniongroove) threat model, including:
* [ ] Consider the scenario where someone run more than a single Onionbalance
"frontend" with the same address but with different backends and uploading
descriptors at different times. Would this:
* Impact the Tor network negativelly?
* Improve load balancing?
* Be an acceptable frontend failover?Oniongroove 0.1.0Silvio RhattoSilvio Rhatto2024-05-16https://gitlab.torproject.org/tpo/onion-services/oniongroove/-/issues/1Oniongroove deployment research2024-03-27T21:47:32ZSilvio RhattoOniongroove deployment researchResearch on all relevant deployment technologies (DevOps) for Onion Services: build a first matrix of technologies, recipes and strategies, incorporating it into the specs (onion-support#40).Research on all relevant deployment technologies (DevOps) for Onion Services: build a first matrix of technologies, recipes and strategies, incorporating it into the specs (onion-support#40).Oniongroove 0.1.0Silvio RhattoSilvio Rhatto2024-05-16https://gitlab.torproject.org/tpo/onion-services/onionprobe/-/issues/64Exit codes should reflect reality2024-03-27T21:44:24ZgeorgExit codes should reflect realityIt seems, onionprobe exits with `0` aka success in any case, while it should probably exit with `> 0` if things go wrong:
```
~ onionprobe -e test.onion; echo $? ...It seems, onionprobe exits with `0` aka success in any case, while it should probably exit with `> 0` if things go wrong:
```
~ onionprobe -e test.onion; echo $?
2022-07-23 12:52:30,170 INFO: Starting Onionprobe version 1.0.0...
2022-07-23 12:52:30,170 INFO: Initializing Tor process...
2022-07-23 12:52:32,145 INFO: Onionprobe is initialized. Hit Ctrl-C to interrupt it.
2022-07-23 12:52:32,145 INFO: Processing test.onion...
2022-07-23 12:52:32,145 ERROR: Invalid onion service address set for test.onion: test.onion
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "read of closed file"
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "peek of closed file"
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "peek of closed file"
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "peek of closed file"
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "peek of closed file"
2022-07-23 12:52:32,146 INFO: Error while receiving a control message (SocketClosed): received exception "peek of closed file"
0
```Onionprobe 1.2.0Silvio RhattoSilvio Rhatto2024-05-16https://gitlab.torproject.org/tpo/core/onionmasq/-/issues/89fix MissingForegroundServiceTypeException2024-03-29T14:36:43Zcybertafix MissingForegroundServiceTypeExceptionThe sample app is not yet well prepared for API34 and lacks the foreground service type declaration. When starting the app on API34 it crashes with:
```
FATAL EXCEPTION: main
Process: org.torproject.artitoyvpn, PID: 7028
java.lang.Runtim...The sample app is not yet well prepared for API34 and lacks the foreground service type declaration. When starting the app on API34 it crashes with:
```
FATAL EXCEPTION: main
Process: org.torproject.artitoyvpn, PID: 7028
java.lang.RuntimeException: Unable to start service org.torproject.artitoyvpn.vpn.ArtiVpnService@4f9cc3 with Intent { act=ArtiVpnService.start cmp=org.torproject.artitoyvpn/.vpn.ArtiVpnService }: android.app.MissingForegroundServiceTypeException: Starting FGS without a type callerApp=ProcessRecord{4eeb107 7028:org.torproject.artitoyvpn/u0a194} targetSDK=34
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4839)
at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2289)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: android.app.MissingForegroundServiceTypeException: Starting FGS without a type callerApp=ProcessRecord{4eeb107 7028:org.torproject.artitoyvpn/u0a194} targetSDK=34
at android.app.MissingForegroundServiceTypeException$1.createFromParcel(MissingForegroundServiceTypeException.java:53)
at android.app.MissingForegroundServiceTypeException$1.createFromParcel(MissingForegroundServiceTypeException.java:49)
at android.os.Parcel.readParcelableInternal(Parcel.java:4870)
at android.os.Parcel.readParcelable(Parcel.java:4852)
at android.os.Parcel.createExceptionOrNull(Parcel.java:3052)
at android.os.Parcel.createException(Parcel.java:3041)
at android.os.Parcel.readException(Parcel.java:3024)
at android.os.Parcel.readException(Parcel.java:2966)
at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:6761)
at android.app.Service.startForeground(Service.java:775)
at org.torproject.artitoyvpn.vpn.ArtiVpnService.onStartCommand(ArtiVpnService.java:97)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4821)
at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2289)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
```VPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/152improve bridge selection UX2024-03-28T13:48:16Zcybertaimprove bridge selection UXthere are a couple of issues with the current implementation
* after the bridge bot was selected, any manual selection for built-in bridges need to be unset in the UI
* only request obfs4 bridges from bridgeDB (wrapped in the circumventi...there are a couple of issues with the current implementation
* after the bridge bot was selected, any manual selection for built-in bridges need to be unset in the UI
* only request obfs4 bridges from bridgeDB (wrapped in the circumvention API) instead of snowflake + obfs4VPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/148Switch to Material Design 32024-03-21T17:21:08ZcybertaSwitch to Material Design 3The latest designs in Figma are based on Material Design 3.
However the actual theme in our App uses Material Design 2.
This ticket is meant to track updating to M3, which will cause a couple of visual bugs that need to be fixed.
- [...The latest designs in Figma are based on Material Design 3.
However the actual theme in our App uses Material Design 2.
This ticket is meant to track updating to M3, which will cause a couple of visual bugs that need to be fixed.
- [ ] update color scheme using the extended M3 color naming
- [ ] update the Base theme
- [ ] update to com.google.android.material:material:1.12.0 as soon as it becomes stable (that includes some design changes of the progress indicatorVPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/146Convert typography to use Inter instead of Figtree or Roboto2024-03-05T19:40:15ZdonutsConvert typography to use Inter instead of Figtree or RobotoIn the most recent iteration of the designs, we're using [MD3's default type scale](https://m3.material.io/styles/typography/type-scale-tokens) set in Inter instead of Roboto:
- [Inter on Google Fonts](https://fonts.google.com/specimen/...In the most recent iteration of the designs, we're using [MD3's default type scale](https://m3.material.io/styles/typography/type-scale-tokens) set in Inter instead of Roboto:
- [Inter on Google Fonts](https://fonts.google.com/specimen/Inter)
- [Inter on GitHub](https://github.com/rsms/inter)
This is different from earlier versions of the designs, which were set in [Figtree](https://fonts.google.com/specimen/Figtree). Since then we've adopted stricter requirements for a UI font, such as better latin coverage and compatibility with Cyrillic scripts. We also wish to use Inter as our corporate body font too, so everything matches nicely.
For reference, the styles used in the app are:
<details><summary>Show styles</summary>
**Headline** / Large
- Font: Inter
- Weight: 400
- Size: 32
- Line height: 40
- Letter spacing: 0
**Headline** / Medium
- Font: Inter
- Weight: 400
- Size: 28
- Line height: 36
- Letter spacing: 0
**Headline** / Small
- Font: Inter
- Weight: 400
- Size: 24
- Line height: 32
- Letter spacing: 0
**Title** / Large
- Font: Inter
- Weight: 500
- Size: 22
- Line height: 28
- Letter spacing: 0
**Title** / Medium
- Font: Inter
- Weight: 500
- Size: 16
- Line height: 24
- Letter spacing: 0
**Title** / Small
- Font: Inter
- Weight: 500
- Size: 14
- Line height: 20
- Letter spacing: 0
**Body** / Large
- Font: Inter
- Weight: 400
- Size: 16
- Line height: 24
- Letter spacing: 0
**Body** / Medium
- Font: Inter
- Weight: 400
- Size: 14
- Line height: 20
- Letter spacing: 0
**Body** / Small
- Font: Inter
- Weight: 400
- Size: 12
- Line height: 16
- Letter spacing: 0
**Label** / Large
- Font: Inter
- Weight: 600
- Size: 14
- Line height: 20
- Letter spacing: 0
**Label** / Medium
- Font: Inter
- Weight: 600
- Size: 12
- Line height: 16
- Letter spacing: 0
**Label** / Small
- Font: Inter
- Weight: 600
- Size: 11
- Line height: 16
- Letter spacing: 0
</details>
All text within the app should use one of these styles. Although the styles, sizes and line heights all match to MD3's type scale – note that the weights are different for selected styles ("Title / Large" and all "Label" styles), and letter spacing is always "0".VPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/145Fix the connection bar animation2024-03-27T17:36:16ZdonutsFix the connection bar animationThe connection bar is intended to animate like so: [Figma / Tor VPN for Android](https://www.figma.com/proto/sjNWeIOpb0BckjmxApXd5m/Tor-VPN-for-Android?page-id=4280%3A1524&type=design&node-id=4621-6088&viewport=-2084%2C233%2C0.65&t=O5WUU...The connection bar is intended to animate like so: [Figma / Tor VPN for Android](https://www.figma.com/proto/sjNWeIOpb0BckjmxApXd5m/Tor-VPN-for-Android?page-id=4280%3A1524&type=design&node-id=4621-6088&viewport=-2084%2C233%2C0.65&t=O5WUUZ62ub2lXys1-1&scaling=min-zoom&starting-point-node-id=4621%3A6088&mode=design)
At the moment it appears to be doing something different. However it should match the same color transition/animation as Tor Browser's connection bar – but remain fixed at 100% of the device's width.VPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/144Add "General" and "About" sections to Configure2024-03-07T00:04:57ZdonutsAdd "General" and "About" sections to ConfigureThere are additional Configure screens in the Figma file that haven't been built yet – "General", which contains sections for the app icon and notifications, and "About".
The Figma file can be found here: [Figma / Tor VPN for Android](h...There are additional Configure screens in the Figma file that haven't been built yet – "General", which contains sections for the app icon and notifications, and "About".
The Figma file can be found here: [Figma / Tor VPN for Android](https://www.figma.com/file/sjNWeIOpb0BckjmxApXd5m/Tor-VPN-for-Android?type=design&node-id=4280%3A1524&mode=design&t=QaXRFt9BKyClRF4p-1)VPN pre-alpha 07https://gitlab.torproject.org/tpo/applications/vpn/-/issues/143Convert "Add new bridges" dialog into a full-screen dialog2024-03-05T17:32:20ZdonutsConvert "Add new bridges" dialog into a full-screen dialogThe previous dialog we designed is a little claustrophobic. The text area is quite narrow, and the dialog awkwardly grows in height when new lines are entered. We could improve on this by switching to a full-screen dialog as described he...The previous dialog we designed is a little claustrophobic. The text area is quite narrow, and the dialog awkwardly grows in height when new lines are entered. We could improve on this by switching to a full-screen dialog as described here: https://m3.material.io/components/dialogs/guidelines
The Figma file can be found here: [Figma / Tor VPN for Android](https://www.figma.com/file/sjNWeIOpb0BckjmxApXd5m/Tor-VPN-for-Android?type=design&node-id=4395%3A1618&mode=design&t=QaXRFt9BKyClRF4p-1)VPN pre-alpha 07https://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/issues/82Create a privacy policy for Onion Launchpads2024-02-27T13:32:43ZrayaCreate a privacy policy for Onion Launchpads- [x] check with data is being collected in GP's backend system
- [x] write a short privacy policy (with USAGM agreement)
- [x] ask for review (isa or the rest of s145's team to review it (maybe with the board expertise))
cc: @rhatto- [x] check with data is being collected in GP's backend system
- [x] write a short privacy policy (with USAGM agreement)
- [x] ask for review (isa or the rest of s145's team to review it (maybe with the board expertise))
cc: @rhattoOnion Launchpad - 2024.Q2rayarayahttps://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/issues/81Onion Launchpad issue triage - 2024.Q12024-03-15T17:19:30ZSilvio RhattoOnion Launchpad issue triage - 2024.Q1# Tasks
* [x] Do an Onion Launchpad issue triage:
* [x] Close what does not make sense anymore.
* [x] Assign to the [2024.Q1 milestone][] what can be solved quickly.
* [x] Handle exceptions.
* [x] ~Icebox everything else.
[2024...# Tasks
* [x] Do an Onion Launchpad issue triage:
* [x] Close what does not make sense anymore.
* [x] Assign to the [2024.Q1 milestone][] what can be solved quickly.
* [x] Handle exceptions.
* [x] ~Icebox everything else.
[2024.Q1 milestone]: https://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/milestones/1
# Time estimation
* Complexity: very small (0.5 day)
* Uncertainty: low (x1.1)
* [Reference](https://jacobian.org/2021/may/25/my-estimation-technique/) (adapted)Onion Launchpad - 2024.Q2Silvio RhattoSilvio Rhatto2024-03-14https://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/issues/80Onion Launchpad build broken, maybe by some translation change2024-02-20T17:47:25ZSilvio RhattoOnion Launchpad build broken, maybe by some translation changeOnion Launchpad build is broken, possibly by some translation change.
Example job: https://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/jobs/458786
/cc @emmapeelOnion Launchpad build is broken, possibly by some translation change.
Example job: https://gitlab.torproject.org/tpo/onion-services/onion-launchpad/-/jobs/458786
/cc @emmapeelOnion Launchpad - 2024.Q2GusGus2024-03-28https://gitlab.torproject.org/tpo/ux/design/-/issues/74Update iconography to match newest version in Marble2024-03-27T17:24:58ZdonutsUpdate iconography to match newest version in MarbleDepends on https://gitlab.torproject.org/tpo/ux/design/-/issues/62.
Design estimate:
* Complexity: small (1 day)
* Uncertainty: moderate (1.5)
* Total: 1 day (expected) – 1.5 days (worst case)Depends on https://gitlab.torproject.org/tpo/ux/design/-/issues/62.
Design estimate:
* Complexity: small (1 day)
* Uncertainty: moderate (1.5)
* Total: 1 day (expected) – 1.5 days (worst case)VPN pre-alpha 07donutsdonutshttps://gitlab.torproject.org/tpo/ux/design/-/issues/73Swap colors to newest version of the Marble palette2024-03-27T17:25:32ZdonutsSwap colors to newest version of the Marble paletteDepends on https://gitlab.torproject.org/tpo/ux/design/-/issues/66.
Design estimate (including converting existing color styles into variables):
* Complexity: medium (3 days)
* Uncertainty: moderate (1.5)
* Total: 3 days (expected) – 4...Depends on https://gitlab.torproject.org/tpo/ux/design/-/issues/66.
Design estimate (including converting existing color styles into variables):
* Complexity: medium (3 days)
* Uncertainty: moderate (1.5)
* Total: 3 days (expected) – 4.5 days (worst case)VPN pre-alpha 07donutsdonutshttps://gitlab.torproject.org/tpo/ux/design/-/issues/72Add indigo to Marble color system2024-03-27T17:25:43ZdonutsAdd indigo to Marble color systemDesign estimate:
* Complexity: small (1 day)
* Uncertainty: high (2.0)
* Total: 1 day (expected) – 2 days (worst case)Design estimate:
* Complexity: small (1 day)
* Uncertainty: high (2.0)
* Total: 1 day (expected) – 2 days (worst case)VPN pre-alpha 07donutsdonuts