• 0 Posts
  • 17 Comments
Joined 1 year ago
cake
Cake day: August 9th, 2023

help-circle

  • The inner zip files are just stored, uncompressed:

    Archive: update.zip
    Index Encryption Compression CRC32    Uncompressed  Packed size Name
    ----- ---------- ----------- -------- ------------ ------------ ----------------
        0 ZipCrypto  Store       d1bca061     65761967     65761979 system_lib.zip
        1 ZipCrypto  Deflate     64a3f383         2183          741 config.json
        2 ZipCrypto  Store       3731280f     89300292     89300304 app.zip
        3 ZipCrypto  Store       a2bd64f5    135518964    135518976 app_lib.zip
        4 ZipCrypto  Store       700eb186      5996410      5996422 system.zip
    

    So 12 bytes from the original content.


  • The entries in update.zip are encrypted using the weak ZipCrypto scheme, which is known to be seriously flawed. If you feel motivated, and can guess at least 12 bytes of plaintext for an entry, it is possible to recover the internal state of the generator, which is enough to decipher the data entirely, as well as other entries which were encrypted with the same password. The bkcrack project implements this attack.

    Since some of the entries are zip files themselves, it is within the realm of possibility to guess 12 bytes of plaintext. Parts of the zip local file header are pretty static, and you can use some of the values from the local file header of update.zip itself. Still, this would require a bit of luck / inspired guesswork.












  • Here is a config template to run an obfs4 bridge, make changes as required:

    BridgeRelay 1
    
    # Replace "TODO1" with a Tor port of your choice.
    # This port must be externally reachable.
    # Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
    ORPort TODO1
    
    ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
    
    # Replace "TODO2" with an obfs4 port of your choice.
    # This port must be externally reachable and must be different from the one specified for ORPort.
    # Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
    ServerTransportListenAddr obfs4 0.0.0.0:TODO2
    
    # Local communication port between Tor and obfs4.  Always set this to "auto".
    # "Ext" means "extended", not "external".  Don't try to set a specific port number, nor listen on 0.0.0.0.
    ExtORPort auto
    
    # Replace "" with your email address so we can contact you if there are problems with your bridge.
    # This is optional but encouraged.
    ContactInfo 
    
    # Pick a nickname that you like for your bridge.  This is optional.
    Nickname PickANickname
    

    You can also use the reachability test to check if everything is configured correctly. If it is reachable and bootstrapping reaches 100% you should be set.

    Set SocksPort if you want to connect your browser (don’t confuse this with ORPort). Default is localhost:9050.


  • I’m not on NixOS, but I have a decent working knowledge of Tor.

    Not quite clear on what you’re trying to do, are you trying to run a relay, or just connecting to the Tor network and pointing your browser to the socks proxy?

    Arti (the official Tor implementation in Rust) is not a complete replacement for the Tor C implementation yet. Hidden service support is disabled by default (due to the lack of a security feature that could allow guard discovery attacks), and bridges don’t work either. If you don’t understand Tor very well stick with the old router.