- Should a password manager warn me about reused passwords without sending things out without opt in? yes
- 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.
Their response attitude reminds me of basil from fawlty towers (paraphrasing):
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.
Also frenck explained how the feature works and why this is save.
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.
I think it matters a lot here if you can mathematically prove that it is "safe":
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"
> 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.
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.
Frenck here, I'm the one who replied on that issue.
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.
I do get the sense that you're not malicious, just that maybe you're not seeing this from the standpoint of someone that assigns a higher value to some elements of privacy. In this case, your user base expects a home automation system. They do not expect that system to scan their computer for passwords, regardless of how "safely" the home automation system were to behave.
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
I've not seen the claim that it is scanning their computer for passwords. My understanding is the ones it checks are those that are used in HA's config (I assume, for different devices it connects to in your home).
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.
Even sending out a request to a third party server without any input by the user or good reason (which I wouldn’t count this as) should be counted as a privacy violation because HIBP can now infer that network is running HA.
Trust is hard won and easily lost. The entire reason I use Home Assistant is because I trust it to be the local, privacy focused home automation system. Things like this is a huge surprise that gives me pause to wonder what else it's doing that I wouldn't approve of. If I feel like I need to start setting up firewalls between HA and my internet to protect my privacy and data, I'm more likely to look towards alternatives and push my family members towards something else as well. This is the first time I've wondered if the project's ethics and culture matches what I expect out of the software.
I've been considering home assistant, and yeah this gives me pause.
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.
Just to add to your point, I’ve deliberately avoided home-assistant since this kerfuffle where frenck was quite rude to the NixOS maintainers. https://news.ycombinator.com/item?id=27505277
Hey dude, I don't get the sense you're being malicious, but you might want to consider the following...
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.
Asking basically the same thing as the sibling replies, but hopefully in a less aggressive way: can you elaborate on what led you to reply like that in the first place? As someone with no horse in the race (I don't use Home Assistant), the first reply you gave genuinely does seem like it was intended in good faith, even if it was not satisfying to the user, and I can understand that angry users are not fun to interact with, but I'm struggling to wrap my head around why your second reply was "This issue is closed as won't fix" without any elaboration about why. The explanation that seems most likely to me is that you were annoyed at the user and decided not to spend any time looking into the issue, which would be unfortunate but maybe understandable if that's what you're apologizing for. Without any explanation about why you quickly dismissed and then suddenly turned around and changed your mind later though, I think you've risked the apology coming across more as damage control than genuine regret.
As someone reading this with no dog in the fight, you came across as rude and patronizing. I'm sure you are not like that in real life, but those responses were ..ooof, not pleasant.
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.
why lying on your first reply? you mentioned 1Password did the same, in an attempt to make yourself "less guilty", but you failed to realize 1Password doesn't enable that option automatically without consent, and in some cases this option is periodically DISABLED automatically. address this, please, it's pretty embarrassing to lie like this just to cover y'all's ass.
People accusing others of lying all the time is a major problem in current societal discourse.
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.
It's really not so hard to either install 1Password afresh and check, or to check the documentation.
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.
Not a lie, but I was wrong on that one. I'm happy to admit that.
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.
You should fix your fabrication in the 1st response. I have deployed 1Password in my organisation, and I'm also using it personally, and the "Check for vulnerable passwords" option (under Privacy) is opt in.
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.
I can’t speak for him, but I regularly reword replies after a minute of consideration or if I manage to think to myself “is this as kind as I intend to be to others” during it’s formation.
Problem is not solved. Why was this turned on by default behind our backs? What else is being contacted and with what purpose behind our backs? This is a serious breach of trust from Home Assistant.
interesting that the crux of the Nix dispute was about how he wanted to self-modify the HA after install, and the crux of the current dispute is how HA should be able to scan your secrets and upload truncated hashes
I doubt the guy is malicious, but it should really be obvious why people are nervous about this stuff. If I put a password into a home automation tool, is my default expectation that it's going to phone home and send any information (even if it's just a bit of information about a hash) about my passwords?
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.
Was thinking of setting my own assistant using Home Assistant to replace the Google Home device I got rid of. Looks like I should slow down and take a closer look at this.
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.
Nothing and no one is perfect, but Home Assistant is orders of magnitude better than any other home automation suite. The fact that there's enough transparency for this to be discovered, for this conversation to happen, and for the maintainer to publicly apologize is evidence of that.
It does seem that this is an unforgivable offense for many HN commenters, which makes me wonder what kind of Home automation those folks are running. Google Home? Amazon Alexa? Samsung SmartThings? Apple Homekit?
Holy shit, what a read. How do people not understand open source licensing? In every license I'm aware of, you don't get to decide whether or not someone else can use your stuff. Nothing stops you from asking, of course, but it just looks bizarre. If you want to control distribution, design a license to do so, or don't release it in the first place.
My experience is that people don't typically change their behavior. Even if they do, I don't see any issue with bringing up this GitHub issue on HN which is a very suitable place to discuss technical topics (and others)
I mean I can see the "I think your judgement is bad" could be seen as a personal insult (even though it is genuinely meant as an assessment of reality), but "multiple"?
So do you believe that it's acceptable for your comments here to be laced with insults throughout, as long as they aren't intentionally and specifically targeted at the author of the comment you're replying to? Because I definitely don't think it's appropriate behavior to be denigrating an entire Linux distro and anyone whose values align with the purpose of that distro as merely participating in a meme.
Yes, I do believe that nixOS (especially nixOS 5 years ago) was not to be taken seriously.
It was (and is) a never-ending drama faucet, because most people are in it for the identity and not for the utility. Or rather the utility primarily is the identity granted by using it.
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.
You may find this unasked for scan humiliating, but we can mathematically prove we're not humiliating you. Any feelings of discomfort or humiliation are therefore invalid and should be set aside.
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.
I think it's reasonable to argue that this should be an opt-in feature. The HIBP k-anonymity method is rather limited. It's not like homomorphic encryption, which perfectly shields information as long as the encryption is not broken. If an attacker wants to brute-force a password on a server, they have the advantage of only having to try one in a million passwords.
Giving the home assistant core developers the benefit of the doubt, I am sure there are good intentions here. But if they are interested in adding new security features, adding support for phishing-resistant multi factor authentication (passkeys) would be much more valuable. Users have been asking for it for some time, and even submitted patches, which were rejected.
That makes it even worse. A leak is still a leak even when you haven't notice it.
Personally I use HIBP but I would still be annoyed to learn a system I installed mainly for privacy was sending private data to a third party by default.
This feature should be opt-in, but can someone explain how this is a security concern? I don't understand how it would be an actual security risk to share the first 5 digits of the sha256 of my passwords.
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.
because why should my electric light scheduler be in the business of inspecting my passwords and furthermore involving third parties in inspecting my passwords?
It's a "severe invasion of privacy" to send anything to the Internet without the user's permission, period. Privacy is about having control over what information you disclose, how much, and to whom. Developers shouldn't be allowed to make that decision on behalf of the users.
I think the main issue is that you don't expect a service to send anything related to your data without letting you know. Even if it's a ping "alive" sent to a server they own.
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?
It's probably overzealous of HA to do this, but ultimately it isn't. The context missing from this HN thread so far is that the reporter, Viss, has been frankly not credible on security in general for a really long time, despite being a big name in the community on stuff like OSINT. A lot of people in the OSINT sphere basically believe any information being public at all is a security risk and prefer you to pay them exorbitant consulting fees to come up with numerous ways of rephrasing their circular reasoning about why.
As implemented it leaks information to HIBP. Whether or not that is a risk depends on your threat model. Leaking information about your local environment is a fact regardless of your threat model.
(For missing context from this bare link to an issue with no context provided by the submitter — Home Assistant apparently integrated the same Have I Been Pwned safe scanning process that many other password managers have.)
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 sounds like the dev's reason for rejecting the issue is that the issue was opened on the documentation repo rather than the code repo.
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]."
If you actually read through, the option to disable the functionality was already present… just not documented. So it seems the documentation repo was the correct place to open it
This is not an issue if you are running Home Assistant Core in a self hosted container; the relevant "supervisor" service that does the scanning is only part of "HA OS" and "HA Supervised."
I wouldn't be surprised if that integration is outright illegal in EU due to GDPR, thus putting HIBP in trouble for ingesting PII without any legal legitimacy.
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.
Is it inappropriate? Not really. Is it a threat? Yeah, it really is. “I’m going to stop using your software if you don’t change this” is a threat. “I’m going to fork it and ship a competing product” is a stronger threat.
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.)
Posting the same narrow definition 6 times doesn’t make it true. In one of your many replies you cite dictionary.com. This is the top definition on dictionary.com when I load it:
a declaration of an intention or determination to inflict punishment, injury, etc., in retaliation for, or conditionally upon, some action or course.
“hey, X is a dealbreaker for me, if this is not fixed please let me know so I can look for someone else”
“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.
there’s certainly an ambiguety in the word threat, where the main definition is about violent coercion, but it is sometimes used as a useful metaphoric shorthand.
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
A threat can be violence but it’s not necessarily so. A threat is an expression of a negative result if something is not done. The negative could be violence, monetary loss, embarrassment, end of a relationship, or any other negative.
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.”
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.
>1. The software will have one less user. (Implication was potentially many fewer given “we” would uninstall.)
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.”
>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.
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.
We’re arguing hypotheticals about what the commenter meant when they said they would fork. I have no evidence they specifically meant that they would create a competitor and you have no evidence that they meant they would quietly fork and change the one thing they cared about. Fork has more than one meaning in this context. (LibreOffice project was forked from OpenOffice.org, while LibreOffice core repo has 983 forks on GitHub.)
I think we can agree to disagree because our assumptions are at odds and we have no data to bridge that gap.
People here act like HA includes a script that collects every password on your computer and sends them all over plaintext HTTP. I'm disappointed to be honest.
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.
I have another tab open where I am about to buy a home assistant green and start a journey of probably-pointless automations. This is giving me pause. Not about sending hashes to haveibeenpwned, but about the response this got on github.
Here we have the classic if you want something to happen in the corporate world, make it go viral on the internet. Except, humans will be humans and it played out in open source.
In this case, frenck most certainly backtracked because they realized they were on the front page of HN and did not want the heat.
To be fair, nabu casa comms kinda leave not many other options than stuff like this happening, as the general strategy they employ could be described with the single word "tarpit".
The triage person incorrectly used the word "threat" when the user said that they were contemplating mitigating their concerns by moving away from this software, and it's technically not a threat. Dictionary.com to the rescue.
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.
His reasoning is sound. See the infamous Xscreensaver saga for just one of many examples, or the abuse Stenberg receives for merely making curl available.
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.
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.
Well, I didn't check the git history so I can't confirm or deny that he implemented the feature, in any case, if you read the comment about how the passwords are anonymized it sounds pretty reasonable.
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.
- 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.
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.
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.
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:
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.
I value my privacy quite highly, but I don't mind harmless, anonymous use of my data
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'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.
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.
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
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.
Too many OSS projects die because authors are too afraid to tell demanding users in which direction they could proceed and instead burn out.
I’m curious what made you change your mind, perhaps seeing this getting traction on hn?
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.
What would have been an appropriate amount of dismissiveness in your view?
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.
a) five years ago
b) nothing to be ashamed of, honestly
c) dumb drama
This is bad faith. You could reference it in good faith as context, but that is not what you are doing.
And it’s not bad faith to call out bad behavior. That’s some twisted logic.
Probably a good thing that you aren't in the therapy business
I'm not mad about anything, but I wouldn't need your permission to be so.
I've learned from this thread that I don't want to use HA in the future.
Who said that you would have?
My overarching point is that the outrage here is about Home assistant essentially not being "pure enough".
And I get that. I share those views.
But the people complaining about it, for the most part, actually can't handle what it would be if it was as "pure" as they say it should be.
Because that's then the role I have been playing here, and as you can see, that pisses people off even more than HA's friendly corporate diversions.
So, essentially, my point is that people actually want things to be exactly the way they are, because it is less dangerous to the ego.
Meaning that this is all just a charade. And a bad one at that that could not be further from the ideals, this platform wants to pursue.
Intellectual curiosity and all.
Good night!
I mean I can see the "I think your judgement is bad" could be seen as a personal insult (even though it is genuinely meant as an assessment of reality), but "multiple"?
The sentence structure implied that I would have personally insulted this HN user and did so multiple times.
That is not true though.
What you did probably sense instead is more of a general abrasiveness-field. That was intentional (and obvious, for that matter).
It was (and is) a never-ending drama faucet, because most people are in it for the identity and not for the utility. Or rather the utility primarily is the identity granted by using it.
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.
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.
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.
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?
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.
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]."
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.
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.
>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.)
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.
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.
“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.
A threat is an intention to cause harm.
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.”
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.
You mean the response that was already written in a previous message and the response user decided to ignore so they can pester more?
Yeah, I agree with the maintainer, this strikes me as outrage theater over any actual problem, no?
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.
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.
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.
https://github.com/NixOS/nixpkgs/pull/126326
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.