zerotracepen (2.4)

  • Major new features and changes

    • Upgrade Tor Browser to 6.0.1 based on Firefox 45.2. (Closes:

      11403, #11513).

    • Enable Icedove's automatic configuration wizard. We patch the
      wizard to only use secure protocols when probing, and only
      accept secure protocols, while keeping the improvements done by
      TorBirdy in its own non-automatic configuration wizard. (Closes:

      6158, #11204)

    • Security fixes

    • Upgrade bsdtar and libarchive13 to 3.1.2-11+deb8u1.

    • Upgrade icedove to 38.8.0-1~deb8u1+zerotracepen3.

    • Upgrade imagemagick to 8:6.8.9.9-5+deb8u3.

    • Upgrade libexpat1 to 2.1.0-6+deb8u2.

    • Upgrade libgd3 to 2.1.0-5+deb8u3.

    • Upgrade gdk-pixbuf-based packages to 2.31.1-2+deb8u5.

    • Upgrade libidn11 to 1.29-1+deb8u1.

    • Upgrade libndp0 to 1.4-2+deb8u1.

    • Upgrade poppler-based packages to 0.26.5-2+deb8u1.

    • Upgrade librsvg2-2 to 2.40.5-1+deb8u2.

    • Upgrade libsmbclient to 2:4.2.10+dfsg-0+deb8u3.

    • Upgrade OpenSSL to 1.0.1k-3+deb8u5.

    • Upgrade libtasn1-6 to 4.2-3+deb8u2.

    • Upgrade libxml2 to 2.9.1+dfsg1-5+deb8u2.

    • Upgrade openjdk-7-jre to 7u101-2.6.6-1~deb8u1.

    • Bugfixes

    • Enable Packetization Layer Path MTU Discovery for IPv4. If any
      system on the path to the remote host has a MTU smaller than the
      standard Ethernet one, then Zero Trace Pen will receive an ICMP packet
      asking it to send smaller packets. Our firewall will drop such
      ICMP packets to the floor, and then the TCP connection won't
      work properly. This can happen to any TCP connection, but so far
      it's been reported as breaking obfs4 for actual users. Thanks to
      Yawning for the help! (Closes: #9268)

    • Make Zero Trace Pen Upgrader ship other locales than English. (Closes:

      10221)

    • Make it possible to add local USB printers again. Bugfix on
      Zero Trace Pen 2.0. (Closes #10965).

    • Minor improvements

    • Remove custom SSH ciphers and MACs settings. (Closes: #7315)

    • Bring back "minimize" and "maximize" buttons in titlebars by
      default. (Closes: #11270)

    • Icedove improvements:

      • Stop patching in our default into Torbirdy. We've upstreamed
        some parts, and the rest we set with pref branch overrides in
        /etc/xul-ext/torbirdy.js. (Closes: #10905)
      • Use hkps keyserver in Enigmail. (Closes: #10906)
      • Default to POP if persistence is enabled, IMAP is
        not. (Closes: #10574)
      • Disable remote email account creation in Icedove. (Closes:

        10464)

    • Firewall hardening (Closes: #11391):

      • Don't accept RELATED packets. This enables quite a lot of code
        in the kernel that we don't need. Let's reduce the attack
        surface a bit.
      • Restrict debian-tor user to NEW TCP syn packets. It doesn't
        need to do more, so let's do a little bit of security in
        depth.
      • Disable netfilter's nf_conntrack_helper.
      • Fix disabling of automatic conntrack helper assignment.
    • Kernel hardening:

      • Set various kernel boot options: slab_nomerge slub_debug=FZ
        mce=0 vsyscall=none. (Closes: #11143)
      • Remove the kernel .map files. These are only useful for kernel
        debugging and slightly make things easier for malware, perhaps
        and otherwise just occupy disk space. Also stop exposing
        kernel memory addresses through /proc etc. (Closes: #10951)
    • Drop zenity hacks to "focus" the negative answer. Jessie's
      zenity introduced the --default-cancel option, finally!
      (Closes: #11229)

    • Drop useless APT pinning for Linux.

    • Remove gnome-tweak-tool. (Closes: #11237)

    • Install python-dogtail, to enable accessibility technologies in
      our automated test suite (see below). (Part of: #10721)

    • Install libdrm and mesa from jessie-backports. (Closes: #11303)

    • Remove hledger. (Closes: #11346)

    • Don't pre-configure the #zerotracepen chan on the default OFTC account.
      (Part of: #11306)

    • Install onioncircuits from jessie-backports. (Closes: #11443)

    • Remove nmh. (Closes: #10477)

    • Drop Debian experimental APT source: we don't use it.

    • Use APT codenames (e.g. "stretch") instead of suites, to be
      compatible with our tagged APT snapshots.

    • Drop module-assistant hook and its cleanup. We've not been using
      it since 2010.

    • Remove 'Reboot' and 'Power Off' entries from Applications →
      System Tools. (Closes: #11075)

    • Pin our custom APT repo to the same level as Debian ones, and
      explicitly pin higher the packages we want to pull from our custom
      APT repo, when needed.

    • config/chroot_local-hooks/59-libdvd-pkg: verify libdvdcss
      package installation. (Closes: #11420)

    • Make Zero Trace Pen Upgrader use our new mirror pool design. (Closes:

      11123)

    • Drop custom OpenSSH client ciphers and MACs settings. We did a
      pretty bad job at maintaining them compared to the Debian
      upstream. (Closes: #7315)

    • Install jessie-backports version of all binary packages built
      from src:hplip. This adds support for quite a few new
      printers.

    • Install printer-driver-postscript-hp, which adds support for
      some more printers.

    • Build system

    • Use a freezable APT repo when building Zero Trace Pen. This is a first
      step towards reproducible builds, and improves our QA and
      development processes by making our builds more predictable. For
      dezerotracepen, see: https://zerotracepen.boum.org/contribute/APT_repository/

    • There has been a massive amount of improvements to the
      Vagrant-based build system, and now it could be considered the
      de-facto build system for Zero Trace Pen! Improvements and fixes include:

      • Migrate Vagrant to use libvirt/KVM instead of
        Virtualbox. (Closes: #6354)
      • Make apt-get stuff non-interactive while provisioning.
        Because there is no interaction, so that will results in
        errors.
      • Bump disk space (=> RAM for RAM builds) needed to build with
        Vagrant. Since the Jessie migration it seems impossible to
        keep this low enough to fit in 8 GiB or RAM. For this reason
        we also drop the space optimization where we build inside a
        crazy aufs stack; now we just build in a tmpfs.
      • Clean up apt-cacher-ng cache on vm:provision to save disk
        space on the builder.
      • Add convenient Rake task for SSH:ing into the builder VM:
        rake vm:ssh.
      • Add rake task for generating a new Vagrant base box.
      • Automatically provision the VM on build to keep things up-to-date.
      • Don't enable extproxy unless explicitly given as an
        option. Previously it would automatically be enabled when
        http_proxy is set in the environment, unlike what is
        documented. This will hopefully lead to fewer surprises for users
        who e.g. point http_proxy to a torified polipo, or similar.
      • Re-fetch tags when running build-zerotracepen with Vagrant. That
        should fix an annoyance related to #7182 that I frequently
        encounter: when I, as the RM, rebuild the release image the
        second time from the force-updated tag, the build system would
        not have the force-updated tag. (Closes: #7182)
      • Make sure we use the intended locale in the Zero Trace Pen builder VM.
        Since we communicate via SSH, and e.g. Debian forward the
        locale env vars by default, we have to take some steps
        ensuring we do not do that.
    • Pull monkeysphere from stretch to avoid failing to install under
      eatmydata. Patch submitted by Cyril Brulebois cyril@debamax.com.

    • Test suite

    • Add wrapper around dogtail (inside Zero Trace Pen) for "remote" usage in
      the automated test suite. This provides a simple interface for
      generating dogtail python code, sending it to the guest, and
      executing it, and should allow us to write more robust tests
      leveraging assistive technologies. (Closes: #10721)

    • A few previously sikuli-based tests has been migrated to use
      dogtail instead, e.g. GNOME Applications menu interaction.

    • Add a test for re-configuring an existing persistent volume.
      This is a regression test for #10809. (Closes: #10834)

    • Use a simulated Tor network provided by Chutney in the automated
      test suite. The main motivation here is improved robustness --
      since the "Tor network" we now use will exit from the host
      running the automated test suite, we won't have to deal with Tor
      network blocking, or unreliable circuits. Performance should
      also be improved. (Closes: #9521)

    • Drop the usage of Tor Check in our tests. It doesn't make sense
      now when we use Chutney since that always means it will report
      that Tor is not being used.

    • Stop testing obsolete pluggable transports.

    • Completely rewrite the firewall leak detector to something more
      flexible and expressive.

    • Run tcpdump with --immediate-mode for the network sniffer. With
      this option, "packets are delivered to tcpdump as soon as they
      arrive, rather than being buffered for efficiency" which is
      required to make the sniffing work reliable the way we use it.

    • Remove most scenarios testing "tordate". It just isn't working
      well in Zero Trace Pen, so we shouldn't expect the tests to actually work
      all of the time. (Closes: #10440)

    • Close Pidgin before we inspect or persist its accounts.xml.
      I've seen a case when that file is not saved (and thus, not
      persisted) if we shut down the system while Pidgin is still
      running. (Closes: #11413)

    • Close the GNOME Notification bar by pressing ESC, instead of
      opening the Applications menu. The Applications menu often
      covers other elements that we're looking for on the
      screen. (Closes #11401)

    • Hide Florence keyboard window when it doesn't vanish by itself
      (Closes: #11398) and wait a bit less for Florence to disappear
      (Closes: #11464).