• 4 Posts
  • 24 Comments
Joined 3 years ago
cake
Cake day: June 1st, 2023

help-circle
  • Here’s a response.

    I work at Mullvad. (co-CEO, co-founder)

    Some aspects of the described behavior are as we intended and some are not. The cause is not exactly as described in the blog post. As for mitigation, we are already testing a patch of the unintended behavior on a subset of our infrastructure. If any of you try to reproduce the blog post’s findings you may get confusing results throughout the day.

    We will also re-evaluate whether the intended behaviors are acceptable or not. Some of this is a trade-off between multiple aspects of privacy, and multiple aspects of user experience.

    Please note that this is my current understanding, which may change. I was only made aware of this an hour ago, and most of that time was spent talking with Ops, considering what to do immediately, and writing this post.

    Finally, for those of you who do security research: when you find a security or privacy issue, please consider notifying the maintainer/vendor before publishing your findings, even if you intend to publish right away.

    https://news.ycombinator.com/item?id=48145679





  • Steam’s AI Generated Content Disclosure states:

    The developers describe how their game uses AI Generated Content like this:

    -Some base textures have been AI generated during the development

    -Some of the imagery and speech audio in the in-game TV programs are AI generated

    -Some in-game radio music is AI generated

    And a post by the developer specifically stating where AI is used.

    Here is a specific rundown of the AI used in the game:

    -One TV program that has two episodes, around 5min in length each (images and speech is AI, but written, edited and music composed by humans)

    -One TV commercial 10sec in lenght

    -Paintings on the house walls (same as in MSC)

    -Food pictures/textures, around 12 separate pieces

    -“Carbon fiber finish” texture, but this is definitely not important so it can be removed :D

    -And then maybe half (in minutes) of the music on the radio, generated by AI and lyrics written by humans except for one instrumental song. These can be removed (apart from one song that is part of the game feature), but there is no replacement. Lets just say that without them, the radio experience is… rather interesting.









  • The last thing I can suggest are the last two comments on the steam-devices repo: https://github.com/ValveSoftware/steam-devices/issues/64#issuecomment-3092449971

    Try adding these to a file such as /etc/udev/rules.d/71-8bitdo-pro-2.rules

    # 8bitdo pro 2 bluetooth hidraw
    ACTION!="remove", KERNEL=="hidraw*", KERNELS=="*2DC8:6006*", MODE="0660", TAG+="uaccess"
    

    and/or

    ACTION!="remove", KERNEL=="hidraw*", KERNELS=="*2DC8:6012*", MODE="0660", TAG+="uaccess"
    

    The reason I added ACTION!="remove" is due to a recent change with systemd.

    ACLs for device nodes requested by “uaccess” udev tag are now always applied/updated by systemd-udevd through “uaccess” udev builtin, and systemd-logind no longer applies/updates ACLs but triggers “change” uevents to make systemd-udevd apply/update ACLs. Hence, the “uaccess” udev tag should be set not only on “add” action but also on “change” action, and it is highly recommended that the rule is applied all actions except for “remove” action.

    Recommended example:

    ACTION!=“remove”, SUBSYSTEM==“hidraw”, TAG+=“uaccess”

    The following example does not work since v258:

    ACTION==“add”, SUBSYSTEM==“hidraw”, TAG+=“uaccess”












  • So I am not entirely sure. I did find the code for it however if you want to take a look.

    In Firefox it uses the variable for the neqo library, which is the the Mozilla Firefox implementation of QUIC in Rust.

    Line #284: https://github.com/mozilla-firefox/firefox/blob/57e6d88cb3ad7f9777145f2d4fba11d4fc9de369/netwerk/socket/neqo_glue/src/lib.rs#L284

    code:

    let mut params = ConnectionParameters::default()
        .versions(quic_version, version_list)
        .cc_algorithm(cc_algorithm)
        .max_data(max_data)
        .max_stream_data(StreamType::BiDi, false, max_stream_data)
        .grease(static_prefs::pref!("security.tls.grease_http3_enable"))
        .sni_slicing(static_prefs::pref!("network.http.http3.sni-slicing"))
        .idle_timeout(Duration::from_secs(idle_timeout.into()))
        // Disabled on OpenBSD. See <https://bugzilla.mozilla.org/show_bug.cgi?id=1952304>.
        .pmtud_iface_mtu(cfg!(not(target_os = "openbsd")))
        // MLKEM support is configured further below. By default, disable it.
        .mlkem(false);
    

    In the neqo library it’s used here: https://github.com/mozilla/neqo/blob/9e52e922343609dba5171c0adb869cff7bd8d3a0/neqo-transport/src/crypto.rs#L1594

    code:

    let written = if sni_slicing && offset == 0 {
        if let Some(sni) = find_sni(data) {
            // Cut the crypto data in two at the midpoint of the SNI and swap the chunks.
            let mid = sni.start + (sni.end - sni.start) / 2;
            let (left, right) = data.split_at(mid);
    
            // Truncate the chunks so we can fit them into roughly evenly-filled packets.
            let packets_needed = data.len().div_ceil(builder.limit());
            let limit = data.len() / packets_needed;
            let ((left_offset, left), (right_offset, right)) =
                limit_chunks((offset, left), (offset + mid as u64, right), limit);
            (
                write_chunk(right_offset, right, builder),
                write_chunk(left_offset, left, builder),
            )
        } else {
            // No SNI found, write the entire data.
            (write_chunk(offset, data, builder), None)
        }
    } else {
        // SNI slicing disabled or data not at offset 0, write the entire data.
        (write_chunk(offset, data, builder), None)
    };