Ask HN: 零信任架构是过度设计吗?

2作者: devinabox4 个月前
大家好!我想听听大家对我们正在开发的调试工具采用零信任架构的看法。<p>我和我的伙伴一起开发了 Dev In A Box - 一个调试工具,它使用模拟来找出错误和安全漏洞,准确率约为 70%。它既可以用来查找已报告问题的根本原因,也可以用于更通用的调试/技术债务清除会话。<p>很自然地,该工具必须处理人们的代码,所以我们想确保我们的安全性万无一失。<p>我们设计架构时就考虑到了这一点——本质上,每个新项目都存在于其自己的数据库中。这使得访问数据的合同更容易执行,并且不可能通过 SQL/编码错误造成租户违规。<p>另一个目标是启用零信任加密系统——允许用户阻止我们访问他们静态的数据。但是,我不确定哪种方法是最好/最用户友好的。我很乐意收到关于这个概念的任何反馈:<p>这个想法是用户可以设置一个只有他们知道(而我们不知道)的“主密码”,该密码将用作加密密钥。这意味着他们的数据库只能在运行时使用该“主密码”解密——类似于 LastPass 等密码管理器的工作方式。<p>这意味着我们作为 SaaS 公司将无法访问他们的数据。这可能会让用户更加安心,并提供额外的安全层。<p>我认为这在理论上听起来不错——作为一个拒绝使用 GitHub 的人,因为我不信任微软,这绝对满足了我的疑虑。但在我们构建它之前,我想征求大家的意见,问问这是否真的值得。<p>当然,也有一些缺点,比如:<p>- 每次要访问您的项目时都必须输入主密码<p>- 在更大的团队中管理该密码(如果 50 个人都知道密码,它真的能提供任何安全性吗?)<p>- 如果密码丢失,则无法恢复项目。它将永远消失。<p>所以我想问大家的问题是:<p>- 优点是否大于缺点?这会让你对使用代码扫描器感觉更好吗?<p>- 这种级别的安全/隐私对你来说重要吗?<p>- 这种事情有更好的用户体验吗?<p>- (对于精通密码学的人)是否有更好的方法来解决这个问题?您是否知道更好的方法来管理数据,以便提供商无法在运行时访问它?<p>更多背景信息,请访问我们的网站:dev-in-a-box.com<p>提前感谢。欢迎所有意见!
查看原文
Hey everyone! I need you opinion on Zero Trust Architecture for a debugging tool we’ve been building.<p>My partner and I have built Dev In A Box - a debugging tool that uses simulations to pull out both bugs &amp; security vulnerabilities with ~70% accuracy. It works for both finding the root cause of reported issues and doing more general debugging &#x2F; tech debt removal sessions.<p>Naturally, the tool has to handle people’s code, so we wanted to make sure our security was air tight.<p>We’ve designed our architecture with this in mind - essentially, each new project lives in its own database. Making the contract to access the data much simpler to enforce and making a tenant breach via a SQL &#x2F; coding mistake impossible.<p>The other goal of this is enabling a zero trust encryption system - allowing the user to prevent us from accessing their data at rest. However I’m not sure what is the best &#x2F; most user friendly way to do this is. I’d appreciate any feedback on this concept:<p>The idea is a user could set a “master password” that only they know (and we don’t) that would serve as the encryption key. Meaning their database can only be unencrypted at run time with that “master password” - similar to how password managers like LastPass work.<p>This would mean we, as the SaaS company, won’t be able to access their data. Potentially giving users more peace of mind and an additional layer of security.<p>I think it sounds good in theory - as someone who refuses to use GitHub because I don’t trust Microsoft as far as I can throw them, it definitely fulfills my neurosis. But before we build it, I wanted to run it by all of you to ask if it’s really worth it.<p>There are some drawbacks, of course. Like:<p>- Having to input a master password every time you want to access your project<p>- Managing that password across larger teams (if 50 people know the password, is it really providing any security?)<p>- If the password is lost, there’s no way to recover the project. It’s gone for good.<p>So my questions to you are:<p>- Do the pros out weigh the cons? Is this something that would make you feel better about using a code scanner?<p>- Is this level of security &#x2F; privacy important to you?<p>- Is there a better UX for something like this?<p>- (For the folks who are knowledgeable in cryptography) Is there a better way of going about this? Do you know of a better method for managing the data so that the provider can’t access it at run time?<p>For more context you can see our website: dev-in-a-box.com<p>Thank you in advance. All opinions welcome!