Hacker News new | past | comments | ask | show | jobs | submit | stebalien's comments login

Will the Android companion app be open source? And/or will the watch APIs be documented such that someone could write an open source companion app?


there's an open-source companion app already, called Cobble. https://github.com/pebble-dev/mobile-app

Core Devices will publish an open source fully featured library, that anyone can use to build an open source companion app as well.


Awesome! Thanks!


See section 5.5 of the linked paper https://petsymposium.org/popets/2018/popets-2018-0026.php. I'm not sure if/how Kagi implemented this, but the idea is that Kagi's "public" component can be committed to publicly (e.g., in the browser extension itself).


[I implemented this at Kagi]

And you can validate this, if you try to issue a Privacy Pass search without a private token, you'll get a `WWW-Authenticate` header that kicks off the handshake, and that should be the same for all users for a given epoch (month). E.g.

    curl -v -H 'X-Kagi-PrivacyPass-Client: true' 'https://kagi.com/search?q=test'


But how do I validate that I’m actually getting the same value as everyone else? Is the value I should get published somewhere (in a verifiable and not editable way) so I can see that I’m not being tracked?

Or does the extension validate this and the correct value is hardcoded in the extension like stebalien suggested?


There's no auth required at this stage of the handshake, so you can test from any number of devices/locations/networks/etc and confirm you get the same value. We could publish it, but it will change every epoch/month. Plus, if you don't trust the service to not issue special key pairs to track you, you probably won't trust us to not do the same when publishing the key material. There are schemes involving third-parties we could employ, but it's trust and turtles all the way down.

A malicious server could maintain separate key pairs for users it wanted to track, but you can't do it for every user because 1) it'd be clear from the WWW-Authenticate header changing, and 2) you'd have to validate tokens against every key, which would quickly get too slow to work.


While it's relatively trivial to run something like:

  fetch(new Request("https://kagi.com/search?q=test", { method: "GET", headers: new Headers({ "X-Kagi-PrivacyPass-Client": true })})).then((r) => console.log(r.headers.get("www-authenticate")))
A simple response in the body to something like <https://kagi.com/privacypass> would be easier to check.

And you answered someone else:

> It is also something anyone else could do to keep us honest :)

While true I believe for such a feature making it as easy as possible for your users to check independently is just better.


Makes sense in general, but to make sure I understand it:

> Plus, if you don't trust the service to not issue special key pairs to track you, you probably won't trust us to not do the same publishing the key material.

You could publish it on some sort of blockchain to make sure it can’t be changed and is public for everyone, right?

> A malicious server could maintain separate key pairs for users it wanted to track, but you can't do it for every user because 1) it'd be clear from the WWW-Authenticate header changing, and 2) you'd have to validate tokens against every key, which would quickly get too slow to work.

Makes sense, thanks for explaining!


> You could publish it on some sort of blockchain to make sure it can’t be changed and is public for everyone, right?

Your understanding is correct, that's definitely something we could do. It is also something anyone else could do to keep us honest :)


Could you jam the bits into dummy ssl cert signing requests, then stick the result in the certificate transparency log?


Thanks for looking it up, that makes sense.


Private companies != federal government. See https://en.wikipedia.org/wiki/Strict_scrutiny, there's no way the federal government will be able to argue that it has a legitimate interest in banning pronouns in signatures.


I have to wonder, is this (and all the rest) just an attempt to DoS civil rights groups?


If and only if your site isn't already referenced by some other site in the index (see option A).


The privacy pass extension still requires you to pass a cloudlare turnstile which is impossible in some browser configurations. E.g., if you disable browser performance-debugging/timing features (these used to be a vector for Spectre timing attacks).


3.8% below target is "way below"?


I'm not a professional analyst but the numbers look weird to me. Prediction was to sell 507,000 in Q4, they delivered 497,570, but only made 459,445. That means that they had almost 35.000 cars "laying around" from Q3 that they delivered in Q4. That seems a bit weird to me. But maybe someone that monitors the big 3 automakers in the USA can comment on how many cars waiting in the pipeline is a normal amount.

Also the total 2024 production shows something very interesting: Tesla is a one-trick pony. They sold 1,77 million cars, of which 1,70 million were model 3/Y. So the Model S, X, and cybertruck only make up 85,000 cars. That is not healthy for the long term. Because the Model 3 and Y compete in the middle class price wise, so nobody buys expensive Tesla's. And nobody can buy a cheap Tesla because there is no 25k Toyota Corolla equivalent.

It will be interesting to see in the next years if Tesla can make a dent in other price segments.


Possible supply-chain "attack" (or demonstration, from what I can tell) on wherever they get their polyfill library? It's coming from:

https://polyfill.archive.org/v3/polyfill.min.js?features=fet...


Possibly unrelated. How can they elevate from a script injected in the frontend to the database of all users?

Also, the vulnerability seems to be a domain overtake. But Archive is self hosting a static version of the dependency?


One way would might be to capture credentials for admin accounts if they have a "god mode".


And if you want to automatically get redirected to xcancel: https://einaregilsson.com/redirector/


This attack doesn't allow anyone to, e.g., bypass any PINs you may have set on your yubikey. It allows an attacker to extract your keys if and only if they can already use your yubikey.

From what I can tell, the risk is:

1. Someone takes your yubikey without your knowledge.

2. They manage to disassemble it, extract your key, and put it back together.

3. They secretly return your yubikey.

4. You continue to use your yubikey, unaware of the fact that it has been compromised.


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: