I never authorized an integration that scans my secrets
github.com
github.com
- Should a password manager send even one byte of my data to any service, regardless of whether it is for a good intention and mathematically proven to be "safe" without opt in? I'd say no.
- So would any other product out there, be it a smart home manager or a toaster, send any of of my data, hashed or not to any 3rd party without opt in? even if it's just the byte "1" to a page called "donothing.com"? I say hell no.
- Should open source developers who are not Linus Torvalds be a bit nicer on a public issue?
- And should open source users should be less heated because "let us know if you plan to fix this or we will uninstall and fork it" deserves the "go ahead, this is open source, threats don't really help here"
We all can sometimes write a reply at the heat of the moment that we later regret. Frenk definitely realized it after the fact and I respect him owning it, apologizing, and keeping the old messages. He is right it's open source, and he doesn't owe anyone anything, but still, I believe a phoning home of any kind is violating The Principle of Least Astonishment.
I'm trying to run a business here. I can't get things done with you stupid customers bugging with me problems all the time. Go find something to do.
In the 80s and 90s customer satisfaction was important primarily in manufacturing. Today software treats customers like nyc realtors who know they have the balance of power:
that's too damn bad: the price is the price. Take it or i'll sell it to somebody else for wasting my time.
Let's get a few things straight:
- I tell the supplier if I am satisfied with their service. They don't tell me.
- I decide if the cost in terms of time or dollars is worth it; they don't tell me nor may they infer I'm too stupid to know better.
- some customers are lazy or don't have a backbone. Suppliers can push them around. Btw - this happens a lot inside corporations where management explicitly or implicitly mandates internal suppliers. In some cases those internal suppliers lost bad because of their arrogance wit. migration to the cloud from on-prem. Ultimately tech+business knew they got a better tradeoffs elsewhere.
- the customer is right is not a straight jacket for suppliers; we are allowed to smartly exclude features we don't think we can compently do or are bad business.
The swarmy arrogance and laziness of the big three re: customer satisfaction cost them about 35% of the auto market in our own backyard to the Japanese they never really got back. Too many corporations are sliding into at times seeing customer feedback as a nuisance at their own peril.
Im a strong customer advocate. Know what your getting; hold the supplier to the line; be in charge of the relationship; never retreat from options.
There are many memorable lines. One I goto when I'm frustrated;
Basil: if he didn't order a cheese salad, poly, then why had he got one?
Poly: I ... I don't know
Basil: I know how he feels
So Basil is annoyed with the customer (who he thinks is a super uptight hotel inspector, but who only sells spoons) while sympathizing with him at the same time.
There are many more things to say, but it's worth pointing out how expertly it uses the British sense of manners to fake a lot of "misunderstandings." It's to politeness what Woody Allen does in Deconstructing Harry with guilt. It's both a formidable defense and weapon. If you haven't seen this movie, try it out. It's worth it. Plus you'll get to meet cookie who helps harry pull off his university speech.
The only reason I'm comfortable transmitting sensitive over the internet is that we've got a bunch of proven systems like "encryption" that can guarantee my ISP, etc. doesn't learn much about my actual traffic.
Fundamentally, if you're giving an application your passwords, it is precisely so that the application can transmit those passwords, in full, to the relevant services. If you don't trust "mathematically proven safe" then it's already unsafe - and it's unsafe to a ton of third parties used to route the internet.
It's important because that means this is a harmless issue - there's a linked 3rd party mathematic proof by a credible authority on security (CloudFlare), and other password managers have similar features.
"I'd like clearer documentation" is still a reasonable request, but I don't think the OP is at all justified in acting like this is some outrageous trespass.
If you care about a harmless issue this intensely, you should be taking some responsibility to actually inspect the code. Given there was a feature flag to disable it, even a cursory scan with a cheap LLM probably would have found the "issue"
This is about secrets in general. Those could just as well be used to encrypt local data or sign session cookies for the internal web page. And sending the secret to the service it is for is different than sending it (or at least a part of its hash) to another service the user might not trust.
No software should ever make network requests without your consent.
Unless it is a distribution policy to respect privacy by default it is just to much work to keep up with all the leaks the system might have.
Depending on how serious you think the privacy breach is, you can report them on github, do a campaign against them on any website they don't control (HN/reddit/etc), also you can convince other participants of open source to block their software if they detect it (e.g. GNOME blocks binaries of certain hash etc).
If they run a malware/spyware or something that level, open source will make them stop or go irrelevant.
On the other side Viss basically just said "trust me bro, it is not save and by the way, I'm THE expert and I'm so very smart, that I don't even need to list some facts why this could be unsafe, just fix it NOW", which I find exhausting, unhelpful and boring.
To do that automatically without any notice to the user breaks the fundamental value proposition of a local home assistant which over and over again preaches keeping things local and private.
As someone who relies on home assistant every day, I'm quite disappointed to hear Frenck's response to this.
From the linked article I can count 2 with following conditions:
1. relies on a malicious or compromised lookup server, linking lookups to the same user, the user checking two predictably similar passwords, both passwords being breached, the attacker having their plaintext candidates, and knowing the account identifier for account takeover
2. relies on a malicious or compromised lookup server, linking lookups to the same user, the user checking multiple predictably related passwords, sufficient computing resources to search the original password space, and knowing the account identifier for account takeover, the attack demoed seems to work if you have a weak password to starts with (10 chars alphanum).
My replies there were more dismissive than they should have been. My apologies. I've posted a follow-up on the issue.
As it turns out, the check can already be turned off after all:
ha security options --pwned=false
It has been part of the Supervisor for years and checks app options that are marked as passwords. A recent release fixed the warning that surfaces it, which is why people are noticing it now.Only the first 5 characters of a SHA-1 hash go to HIBP, and the matching happens locally: https://github.com/home-assistant/supervisor/blob/main/super...
Our documentation should have explained all of this, including how to turn it off. We'll get that updated.
You might have a heart of gold, and just be having an off day due to reasons, so I hope people cut you some slack, but if I were you I'd update this feature to be opt-in and conspicuous, immediately
There are a lot of problems with poor security practices devices of this type. Maybe the feature is a bit too paternalistic but it is not malicious.
I still agree its not the right default but thats quite a lot less invasive than you are making it sound.
In the off chance Supervisor inadvertently revealed the first 5-characters of my password hash to something else on or off my network over the years, I’m now going to spend a weekend reinstalling a fresh copy of HAOS, blocking it from Internet access until I can run the command to disable this, issuing new passwords and accounts to my household, and resetting the passwords for all my devices and integrations, then restoring all my automations.
Better documentation will definitely help restore confidence, but good practice for me to cycle all my passwords and tighten network policies anyways.
To me, everyone swearing off HA over this is overreacting.
however
it's also a feature transmitting information in a product that bills itself as being offline. imo it's a (minor) privacy violation, not a security violation.
This is the problem. You do not know what you do not know. There have already been papers written about the problems with HIBP. You don't have to understand the threat model for it to exist.
The papers written about HIBP, one of which I contributed to, address some actual problems. but this isn’t one of them
Anyhow that sort of person might not take kindly to having a hash of their password sent to some random web server without being asked first.
I value my privacy quite highly, but I don't mind harmless, anonymous use of my data
I don't think these are /critical/ issues and the latter is basically just an argument against the HIBP service, but the point is that a user should opt-in to sharing their data in cases like this so they have a chance to make an informed decision. The k-anonymity design of the HIBP service has a degree of anonymity, it's not "provably anonymous" like homomorphic encryption or similar schemes would be.
Is there any realistic value to knowing "how many unique passwords you use"? If you already have one of my passwords compromised, you'd presumably try it on the rest of my accounts regardless?
My browser fingerprint leaks, what, thousands of times more information than that - surely fixing applications like Chrome to have sensible privacy-preserving opt-in-only behavior is vastly more important than nagging some obscure open source software about an edge case that can barely be exploited?
If you know someone with N logins has N passwords it's a decent indication they use a password manager and so passwords are unlikely to be weak, if they have 1 password it's probably shared elsewhere and weak.
I also wasn't responding to a question asking about practical exploits, I was responding to a question that claimed the k-anonymity model is "provably anonymous" and "harmless". Since it clearly leaks some information it's definitely not the former and one could argue it's not the later though the "harm" is minimal.
> My browser fingerprint leaks, what, thousands of times more information than that - surely fixing applications like Chrome ...
I fail to see how the privacy nightmare of modern browsers is relevant to a discussion on whether opt-out signalling to third-party services is a reasonable stance for an open source project? By that metric no privacy bug is worth reporting because Chrome continues to exist. If only there was a term for this kind of non-sequitur...
"Leaks information" is perfectly compatible with "provably anonymous"
You have to prove that the leak is enough to actually de-anonymize someone to disprove anonymity.
I'm not saying it can't be done, but you're jumping ahead and skipping a very important step.
The claim wasn't that they have the IP address - that's useless on it's own. The claim was that this somehow establishes it as an HA account
This is fundamental feature of all traffic sent via IP unfortunately.
The purpose of a browser is to make network requests. If I use a browser, I am implicitly giving it consent to make the network requests necessary for the web browsing I do.
This implied consent does not cover unnecessary requests, e.g. the adverts Firefox displays on new tabs by default are unacceptable, because I did not consent to them being downloaded. It also does not cover the network requests made by opening the "Extensions and Themes" menu, because merely looking at a configuration menu does not imply consent to make network requests.
But that fact that modern web browsers are a privacy disaster does not excuse bad behavior from other software.
Making such a behavior opt-out is malicious, intentionally or not. --pwned=false? Give me a fucking break, so you're pwned by default then. Unbelievable what some developers think they can get away with.
The site is called "Have I Been Pwned", thus the cutesy name of the flag...
The designer felt that "secure" included "is this password already published, online, in a known database breach", which is not an unreasonable interpretation.
The documentation has been clarified. There was a a feature flag. Calling this malicious is just absurd flame-bait.
It wasn't malicious but it wasn't expected.
Just my $0.02.
IMHO it's just not the kind of behavior that is expected by the people that use the software.
The fact that it didn't occur to anyone that this isn't a good idea makes me question other design decisions. When local-only isn't local-only, that's a problem.
I avoided HA due to some technical issues published and the further development, but that quote absolutely cemented the decision in me:
> It made me decide to request for complete removal. > I suggest you honor that request and sit on your wounds.
What a.... colourful persona! I wonder if he was alluding to the potential and baseless C&D request or his opinion that one person's wish revokes MIT licence just because.
But..... That's quite painful to read.
Seeing this, I don't think I'm going to set up Home Assistant any time soon.
I'm a Home Assistant user because I don't like my devices reaching out to random cloud services more than they need to. I suspect quite a number of fellow HA users feel similarly.
Although your intent was probably good, this feature certainly falls into the "more than they need to" bucket and feels hella icky. And yes, I'm very familiar with HIBP and cryptography in general. This simply isn't an opt-out feature I expect in a privacy positioned home automation product.
https://www.openhomefoundation.org/papers/privacy/
Cloud-optional: Any functionality that requires data or control signals to leave your home must be transparently explained, opt-in by default via a simple workflowDo you mean "how to turn it ON"? It should be off by default, just look at the replies you're getting by people that are seriously considering not using HA because of this. Is it worth it? It doesn't matter if it's secure by your standards, what matters is that it gives people the security "ick" and will then second-guess every other security decision in the rest of the software. That matters.
I'm not exactly sure why, but the stuff that happens tells that story (to me at least).
Barking at frenck on a Friday at 11.30PM like this is probably not the right thing to do.
But you are right, it is time to head downstairs for a beer with Mrs. Frenck.
../Frenck
It’s not a lie if the speaker believes it to be true; it’s just a mistake. A lie must have the intention to mislead behind it.
I don’t dispute that there is a lot of, perhaps way more, lying going on, especially in politics now, but let’s not both inflame opinions and cheapen the word ‘lie’ by just using it for non-deliberate falsehoods.
I would give them the benefit of the doubt but it's pretty clear from the initial response on github that privacy or security decisions of users do not matter much.
I'm looking forward to that latest Elizabeth Holmes documentary.
I've used 1Password's Watchtower for so many years that I assumed the breached password check was just part of it. After your reply I looked it up and learned it's actually a setting in their privacy preferences, so my comparison was off.
../Frenck
I'm just a rando stranger, don't mean to pile on to you. But as someone that has also launched products and talk to customers every day.. that's not a good look.
Again, no hate here, I'm sure you're great to talk to in real life, but just the way you wrote that was not pleasant at all.
Some would consider the first five characters being sent over the internet to be 'your secret leaving your system'.
Some would consider phoning home to a remote server to be worrisome. It's home assistant not cloud assistant.
Seeing this, I don't think I'm going to touch it. Alexa might be more respectful of user data.
Too many OSS projects die because authors are too afraid to tell demanding users in which direction they could proceed and instead burn out.
By suggesting that 1Password is doing the same you're lying to water down the gross abuse of trust.
"my replies were dismissive" non-apology after the initial "This issue is closed as won't fix." show pretty clear you're simply in the damage control mode, actually either not understanding or not caring why someone caring about security or privacy would be shocked and request opt-in you flatly rejected anyway.
What would have been an appropriate amount of dismissiveness in your view?
https://haveibeenpwned.com/Passwords (“Download & Integrate”)
I’m curious what made you change your mind, perhaps seeing this getting traction on hn?
You shouldn't have to apology to anyone.
Problem solved!
>My replies there were more dismissive than they should have been
What about this one?
Related discussion: https://news.ycombinator.com/item?id=27505277
It's not a good look taken together
Which option will minimize the feelings of betrayal and violation: making this feature opt-in or opt-out?
Any level of understanding of humans will produce the right answer.
As someone whose smart home need is minimal -- I just use it to turn on/off lights with voice -- I'd rather have nothing than support such behavior.
Is there anything wrong with (not) going with a solution based on your personal belief?
You are free to make your own decision.
His judgement is so poor we simply can't trust him to make correct decisions about the software he is building, there are doubtless other security issues.
> As the author of the package that is being re-packaged here. I'm against it being repacked into here. > While licensing wise I cannot stop you, I do hope you can honor my request.
Maintainers have to make decisions about how to handle support burden, and these decisions are completely outside the scope or purview of any license. People who have never been in that position may have a hard time understanding it, but the NixOS maintainers absolutely do understand and that is demonstrated in that thread.
Who says so?
If it's not in legal text, it doesn't exist, or matters.
If you don't want to support it, make it clear in license or README. Lots of projects work like that. Companies put "source available" or "open source but no external contribution" projects on GitHub and make it very clear what's the expectation. Nobody has any issue about that.
Somehow this guy thinks he is special.
If someone doesn't understand how licenses work, they should keep their work close sourced.
He acknowledged from the very beginning that the usage is licensed. Licenses aren't involved in the ask.
If you want a legal basis for this right, I suppose it would be GitHub's terms of service, with which his comments appear to be in compliance.
In terms of what is on-topic in this thread, he can state his terms for providing free, unlicensed support wherever he wants. He made it clear he wants nothing to do with support of this library in NixOS, in the place where it was most relevant to mention that.
It is absolutely not OK to participate in this scheme on a users behalf without their affirmative consent. You simply cant know the context of people's situations.
Even the information that there likely ARE some hits from my IP is a huge signal leak, to me.
Iv been using HA for a very long time and it feels like a betrayal of trust to me.
Please if you develop software, acknowledge that you do not know what you do not know, and take every opportunity to reduce attack surface area and potential information leaks. This is what computer security experts do.
For that matter, and speaking of NIST, their new guidelines apparently require checks against known breach databases when registering passwords. So if the goal is to "take every opportunity to reduce attack surface area and potential information leaks", if you're following the latest NIST recommendations it sounds like integrating with HIBP is actually the correct thing to do. Obviously they could also do things like offline checking with a downloaded DB (though are you potentially leaking information if HA requests an up to date offline DB?) or make the feature opt in. And I do think they should do both of those things, to be clear. But I don't think it's arrogant to want to understand the proposed threat model before making a change to your application's default security posture. Especially if you chose that posture with the intention of making the system more secure in the first place, and it does reasonably do so.
Edit: I'm sure a greater good argument can be made. I just don't think they are making it in a way that justifies the invasiveness.
Where did you get your public relations skills? In the school for ants?
Why don't you just ask someone who understands the _whole_ of the original issue instead of _mathematically proving_ we're just stupid?
If you're talking for HA - you guys are undoing _a lot_ of goodwill under this one post and it's interesting you either don't see it or don't care.
>Sorry, these are not statements we can work with. Doing such threats and trying to intimidate it not going to bring you anywhere. If you want to do a
just wanted to add an outsider perspective here, not trying to add wood to the fire
but i don’t think it’s inappropriate or ‘a threat’ to let the dev know the user can stop using the software.
It was a clear attempt to sway with intimidation. It was done politely but that doesn’t change what it was. (The dev had already closed as won’t fix, too, so they had preemptively answered.)
“how dare you threaten me?”
I understand how one might feel attacked by an ultimatum, but a policy of rejecting ultimatums altogether only has the benefit of keeping pride intact, on the other hand it discourages people in your life from giving you a last chance, from communicating why they are leaving, and for letting them come back if the parting was amicable
best response is to just communicate you are not fixing X and parting ways amicably, no hard feelings. not only is it beneficial for the ultimated party, but it’s fair for the ultimating party, who is absolutely in their own right to rescind their voluntary relationship, in no way is it a threat to communicate that possibility, because a threat implies violence or damage.
Again, I did not say the threat in this case was inappropriate. It’s totally legitimate to say “this doesn’t work for me; change it or I’m out”. But it is a threat. We should be honest with what we are doing. If nothing else it makes it easier to understand (and predict) a defensive reaction when we understand and acknowledge a threat is being delivered.
and it’s very common for the usage to cause conflict, the exchange of “are you threatening me?” “no, i’m just telling you what I’ll do” is very common.
i personally wouldn’t use it as a shorthand when there’s no violence or punitory damage implied, unless I purposefully wanted to escalate things. it’s a word that refers to violence, so it will harsh the vibes instantly
a key element of coercion (and this is deeply studied in law so there is less subjectivity than regular language) is that the hypothetical presented cause a damage, and then the avoidance of that damage is traded for a positive action. it doesn’t really apply to a case where a person exercises their right (to leave) and it only secondarily (or not at all) causes a damage, there is no intent to harm and no manipulation of the other into acting one way to avoid that harm.
in the context of leaving a relationship, it might make some sense only if there’s a contract, or even some sense of loyalty that is expected from an extracontractual custom, we are talking marriages or (arguably) employment or religious affiliation, where bonds and codependence are formed. but invoking that treatment for strangers on an as-is warrantyless usage contract? nah
Definitely not delving into legal definitions of coercion because I am not a lawyer and it is not relevant here.
> and it’s very common for the usage to cause conflict, the exchange of “are you threatening me?” “no, i’m just telling you what I’ll do” is very common.
I think you mean that threats are a common cause of conflict. “Are you threatening me?” “No, I’m merely posing a negative outcome that I will inflict if you don’t do what I want. Totally not a threat. Definitely not.”
So if you're a developer of OSS and released something that _already has inflicted_ a measurable negative outcome for me -- that's okay.
But if I in response say "I don't like, I'm going to fork and use that software without that feature" -- that's a threat to the dev?
I'd say it's very much double standards, especially since in that case the negative action in the original software has already happened and is already negatively impacting the people considering the fork.
And you're saying that them, by wanting to cease it, are the bad guys.
Maybe read the thread before knee-jerk responding.
I did read all the comments in this branch and I disagreed with the way you put something.
You didn't "defend" the dev stance but you called someone considering a fork due to the unwanted features "threatening the dev", probably due to the fact it's a negative outcome to them, but somehow you are okay with the dev making the arbitrary decisions that are negatively impacting some users.
You cannot have both. They're either allowed to walk away branching out, or he's not allowed to make "threats" to them.
And you cannot pretend you're engaging with my arguments in the good faith while ignoring clou of my comment and calling it "knee-jerk response" instead, LOL.
> You cannot have both.
I can absolutely have both. The dev can make decisions that users don’t agree with. Users can express their willingness to leave or fork in response. And the choice to leave can absolutely be expressed as a threat.
You’re assuming a moral judgement in my statements that is simply not there. This is why I called your response knee jerk. You made an assumption instead of reading what I wrote (and clarified repeatedly).
Take care.
And what exactly is the negative outcome being inflicted by someone not using the software? What is the injury or harm, and to who?
1. The software will have one less user. (Implication was potentially many fewer given “we” would uninstall.)
2. The software will have one more competing product (forked from their own work).
Most people willing to put their time and energy into building software for others would consider losing users to be a moderate negative and having their work potentially forked and having to compete with a derivative a strong negative.
“We will fork” is a strong threat. It is basically a statement that “we” will fight the maintainer for the effective future of the project. Many open source projects have been eclipsed by their own forks.
And what is the injury or harm of that? The developer said they wouldn't action the change and indirectly suggested the user to fork it - "it is open source after all".
>2. The software will have one more competing product (forked from their own work).
This is the very nature of open-source software. Labeling it a "competing product" makes many assumptions that aren't earned. We're talking about a user saying an opt-out feature should be opt-in. If I forked LibreOffice because it contained features I did not like, am I now making a competing product? Am I harming or injuring the repo I forked? Am I fighting the LibreOffice developers?
>Most people willing to put their time and energy into building software for others would consider losing users to be a moderate negative and having their work potentially forked and having to compete with a derivative a strong negative.
The developer didn't seem to consider it a moderate negative.
>“We will fork” is a strong threat. It is basically a statement that “we” will fight the maintainer for the effective future of the project.
You're expanding the scope of what was said. Saying "I will fork your open source software" [to make an opt-out feature, opt-in] is not "fighting" the maintainer for the "future of the project" - it's a core element of open-source software.
Sure. If you don’t care about whether your open source software has users, then there is no harm. People who maintain open source software for free usually do it out if a sense of pride and accomplishment that is tied to how many people use it, though.
> The developer said they wouldn't action the change and indirectly suggested the user to fork it - "it is open source after all".
They said that after the user already threatened to do so. You’re reversing the order. It was not “I recommend this” but “If you’re gonna do it I can’t stop you”.
> If I forked LibreOffice
If all you are doing is cloning the repo in GitHub then sure, you aren’t competing. But LibreOffice is a great example because it is specifically a fork that intended to and succeeded in replacing its parent project.
If someone says “we’re going to fork this because we disagree with your maintenance of the project”, they probably don’t mean “I’m gonna click ‘fork’ on GitHub.”
Specifically in this case, it seems the developer isn't doing it for free - their work is at least somewhat sponsored and looking at their site it seems to be their full-time work. I'm not diminishing their time and effort, but this isn't someone working late nights that is hoping their software gets its first 100 users.
>They said that after the user already threatened to do so.
There's a button on every public GitHub repo to fork it. If I say "I'm going to hit that button" (even in a particularly rude way) - is that really a threat? It is functionality built into not only the site, but also the culture and code licensing that underpins any open-source project. I struggle to see how anyone could threaten open-source code by saying they'll fork it. Go ahead - that was specifically designed into the license for any reason. It's so prevalent that it has its own button.
>If someone says “we’re going to fork this because we disagree with your maintenance of the project”, they probably don’t mean “I’m gonna click ‘fork’ on GitHub.”
What then is your expectation for what it means? By saying "we're going to fork this software" are they now starting a competing company? Making hardware products using it? Monetizing the pre-existing work? Selling subscriptions?
These are all examples that I read your comment as implying that aren't actually enumerated or described anywhere.
My expectation for someone saying "I don't like how you're running this project and will fork it" is _exactly_ that they'll hit the fork button and make their own project. That's why it's open-source, that's how open-source software works - that's what the button is for. Even if they then went and built an entirely competing business, around one minor change I specifically chose not to make - then what is the issue? The license allows it - and I chose the license.
I think we can agree to disagree because our assumptions are at odds and we have no data to bridge that gap.
A threat is an intention to cause harm.
You mean the response that was already written in a previous message and the response user decided to ignore so they can pester more?
Let me add some more double negatives in there.... It's not not a threat to not keep quiet about intention to not not cause pain to another person.
I don’t really care though. Call it whatever you want.
The way I read your response is "you must buy my X, otherwise you're negatively impacting me already" and it's something turned on its head.
"a competing product", perhaps for these pissed with the deb's human skills or those who want to use it in the unique environment he refuses them to adapt them to, contrary to his own licence?
No, seriously, intimidation? "Your position is untenable for us, we'll find another way forward" is a "let's agree to disagree", not more.
You can disagree with my view on the situation, that’s fine. But I will decline to re-argue every point for you.
Threatening is expressing an intention to cause pain or harm.
This is not that.
a declaration of an intention or determination to inflict punishment, injury, etc., in retaliation for, or conditionally upon, some action or course.
But you do you.
Their docs link to this explanation, in which the link I give uses an example that appears to be identical to the HA implementation - https://blog.cloudflare.com/validating-leaked-passwords-with...
I might be misunderstanding, but if the first 5 digits is a unique hash in the HIBP database then an attacker can replay that request, then lookup the hash. But "When hashes are grouped together by a Hash Prefix of 5 characters, we find the median number of hashes associated with a Hash Prefix is 305." {ibid}.
If you've acquired leaked passwords as HIBP have, you then just make hash lookup tables, then you have 305 potential passwords to try, or try and whittle down. If the bucket of hashes has "hunter2" in it, for example, then that's perhaps a good one to try - https://blog.cloudflare.com/validating-leaked-passwords-with... is worth reading.
according to that sharing a part of the hash is a risk. it could for example end up in logged urls somewhere. it's a pity that the argument revolves around absolutes ("this is bad", "no, it's not") instead of actually investigating and explaining why they see a problem here.
Even if the SHA1 isn't totally negligible in cost, if they're attacking many users at once they can share the SHA1 work across all of them (as it's not salted) making it marginally negligible. So someone attacking a sha-1 salted password database with a million users where they have the 20 bit unsalted sha1's still gets a similar speedup, even though the 'hard' hash is just as fast as the easy one.
Security aside, -- if you use some old crap password on internet isolated IOT devices that HA can reach (as some people I know do)-- then the 5 characters is a one in a million identifier which probably uniquely identifies you. The database sees your IP address and so you've probably connected to identity (via old leaks) to your IP to them and anyone surveilling your traffic. You've also connected your old weak passwords to that IP, so someone that gets access to it would have a ready database of plaintext passwords to use to initialize a password search against any exposed endpoints.
Even just making the request at all exposes information about the software you're running, that there are devices at that IP (which otherwise might be inbound blocked), etc.
I think the privacy concern is much worse than the security one: For security you can change any exposed passwords, presuming they didn't get you hacked yet. The privacy loss is far more irreversible.
Many people use home assistant in order to avoid security and privacy violating cloud services, so this is a significant disappointment.
Imagine if your smart toilet would just send a small anonymized message to a urine sampling analysis service so it can let you you know your cholesterol levels are a bit high, totally anonymous, totally for your benefit. Maybe it's a great feature, but would anyone expect this to happen without consent / opt in?
As he said: "This mechanism could be abused by a malicious threat actor with access to the home assistant github repos in a variety of ways." -> If you get access to write to the Github repo, yes in fact you can for sure do much more damage without ever touching this feature.
Also "I can give you a list as long as my arm about how I could abuse this to loot credentials from every HA install on the planet." -> Waiting for it.
I have a great deal of sympathy for them refusing to engage; decisive software creators are far less palatable to an entitled swarm of disagreement, and that same decisiveness is what makes the best software. Perhaps in U.S. culture, refusal with a smile and a reassurance that “We’re Listening” is something folks feel entitled to, but in other areas of the world, demanding a stranger change their mind once it’s made up earns only mockery or pity. To those cultures, this GitHub is a comedy-farce, and I laughed out loud upon reading it — not because I necessarily agree with the project’s decision, but because I agree culturally with their tone and handling of what some view as blatant immaturity: a final flat refusal, closing the door, and getting back to work.
It'll be interesting to see whether that gets accepted or not.
And the first reply being "It is not an invasion of privacy" just shows incompetence on privacy topics. It is never a valid answer.
Which is really concerning, for the lead developer of a home automation system that "fights for the fundamental principle of privacy" as per their mission statement.
It is not an invasion of privacy
this rubbed me the wrong way.absolutely no one but me gets to decide what is an invasion of my privacy.
The question is what PII does HIBP collect on submission (eg IP address), and with whose consent, and for which purposes?
All that should be explained in excruciating detail in the ticket and in the documentation, to begin with.
In this case, frenck most certainly backtracked because they realized they were on the front page of HN and did not want the heat.
I'm torn. And sad.
On the one hand, it's understandable. No amount of documentation changes will fix the issue.
On the other hand, it's a pretty abrasive response. It wouldn't have taken any more effort to be a little more helpful and direct OP to the right repo: "Sorry, this is the wrong place for this to be addressed. Please bring it up here instead [link]."
Yeah, I agree with the maintainer, this strikes me as outrage theater over any actual problem, no?
Most of people here probably would say the same.
So it should be clear if you look back at this.
Tons of people avoid buying certain consumer products because there is a camera/mic in it, even if it's not always on/can be turned off etc.
The fact password scanning is out of its scope and the potential that it can do harm are enough to drive people away.
I would like to see the write-up from the red teamer and white hat hacker that claim they could break into thousands of systems with five characters of a SHA hash of a password. Should be a fun read.
So, the triage person is misstating the circumstance, reframing it to introduce pain -- thank you dictionary.com -- pain via calling it a threat.
Speculatively, perhaps the triage person has evolved a defensiveness that includes hostility from historically being harassed directly or indirectly through their free support to the public position, and having some identity wrapped up in the software, and then feeling pain that way. That's just speculation. They do talk about going and drinking a beer, elsewhere in this chat, and alcohol use is associated with emotional dysregulation, bidirectionally.
So, to help out in this circumstance, perhaps an AI could be used to triage some of these issues.
Like, an AI that knows everything about the product in question, and says
a) this is the documentation repo, would you like me to move this issue to the main repo where we can discuss this properly, and
b) that feature already exists in the form of blah blah blah.
That would ease some of the more tedious triage workload the person doing the triage, hopefully give them space so that there are a few of these incidents deriving from this specific set of causes.
What, do you not include links to every single one of your social media accounts in every single post you make on GitHub? I think this is a very cool and normal thing, and not a concerning red flag about narcissistic tendencies at all.
what a petty answer. "just fork it bro".
> please let us know so we can uninstall and fork.
So he's letting them know
It's pretty clear that the maintainer should've handled it better but I'd be lying if I said I never felt like telling a petulant user off. The problem is he didn't handle it professionally.
Leaving that aside, even if you diagree with it you (the user) are not entitled to anything, especially not entitled to have an attitude.
Just think about it differently, what do you think would happen if you do the same in the real world?
I'm pretty sure in the best case scenario you may be asked to leave and in the worst case scenario you may be "escorted" out of the premises.
A little bit of politeness goes a long way.