多用户密码数据库解决方案? [英] Multi-user Password Database Solutions?

查看:37
本文介绍了多用户密码数据库解决方案?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里第一次发布海报!让我直截了当......


我目前不能让我定期与其他开发人员面对面交流,我需要帮助某些圆桌会议讨论一个给我的项目。让我首先用尽可能一般的术语描述我的功能要求:


1)向我收取的任务是调查,如果可能的话,实施一个存储一个伟大的系统许多密码尽可能安全。


2)每个密码的用途*不需要存储在数据存储区中。数据存储区中不需要URL,用户名,描述或任何其他相关信息。我唯一需要的是某种唯一标识符,它可以通过引用系统中给定密码的ID绑定到其他数据跟踪系统中。即:向某人发送指示他们的电子邮件,为此查找密码432。换一种说法;我目前的计划是尽可能使密码存储不可知。我可以通过多种方式实现对笔记,用户名和目的的跟踪:在Wiki中发布,在纸上书写或保存Word文档。我真正需要锁定好的和紧的是密码本身。


3)系统必须允许多个并发用户登录。访问/更新存储的密码。对于存储信息的子集,不需要每用户权限:允许系统中的任何用户访问存储在其中的所有信息。


4)高度优先考虑记录每个用户执行的所有操作:包括查看或更改某个密码的时间,用户以及与之相关的任何其他可用信息。行动。


5)用于访问密码的界面(如果它与用于管理数据的软件不同)理想情况下不应锁定到给定的操作系统(意思是我会可能拒绝仅在Windows中运行的预先存在的应用程序。


6)系统最好也应该能够抵抗大规模观察:应该不可能(至少使用给定的界面)一次查看或修改多个密码,并尽可能难以获得数据存储文件的副本。


7)最后一个请求是必须定期备份整个数据存储区以实现冗余,因此,所使用的备份格式/系统也必须尽可能安全。 br />

就是这样。这根本不是一个简单的问题。解决,重复和变化的谷歌搜索没有发现任何足够接近我正在寻找的东西。我目前的思路并不完全令我满意,我需要看看是否有一个比我更有知识的人自然会想出一个我不会考虑的解决方案 - 特别是如果有可能我非常过分思考整件事。


无论如何,我试图保持我的描述尽可能通用,以防止偏见读者自己的思维过程。我当然希望听到社区对此有任何想法。我很乐意接受任何现有的应用程序(FOSS或其他),以及从头开始的建议。实现。如果有人有问题,他们需要要求澄清问题,我会非常乐意回答他们。


我也很想分享我目前的实施想法再次,我希望看到每个人在将讨论人为地锁定到任何特定类别或编程语言之前可以提出的独特建议。


最后,如果这是不是正确的董事会发布这个,但正如我所说,我目前没有将这个项目限制为数据库项目。或者C ++项目等。实现的_method_并不像整个系统的安全性那么重要。我希望39,000名其他人的力量可以帮助我们提供一个比我的人更安全可靠的系统。


谢谢你的时间!

First time poster here! Let me get straight to it...

I''m currently not in a position that lets me interact with other developers face to face on a regular basis, and I am in need of some "round table" discussion on a project that has be given to me. Let me describe the functional requirements I have in as general terms as possible first:

1) The task charged to me is to investigate, and if possible implement, a system for storing a great many passwords as securely as possible.

2) The purpose of each password does *not* need to be stored in the datastore. There does not need to be a URL, a username, a description or any other associated information in the datastore. The only thing I do need is some kind of unique identifier which could be tied into other data-tracking systems by referencing the ID for a given password in the system. I.e.: sending someone an email instructing them to, "Go look up password number 432 for this." In other words; my current plan is to make the password storage as agnostic as possible. I can implement the tracking of notes, usernames, and purposes in any number of ways: posting in a wiki, writing them down on paper, or saving a Word document. The only thing I really need to lock down good and tight are the passwords themselves.

3) The system must allow multiple, concurrent user "logins" to access/update the stored passwords. There is no need for per-user permissions for subsets of the stored information: any user in the system is allowed to access ALL information stored inside.

4) A high priority is placed on logging all actions performed by each user: including when a certain password is viewed or changed, by which user, and any other available information pertainent to the action.

5) The interface for accessing the passwords (if it is different from the software used for managing the data) should ideally not be locked to a given operating system (meaning I''ll likely reject a pre-existing application that only runs in Windows, for example).

6) The system should also preferably be resistant to mass-viewing: it should be impossible (using the given interface at least) to view or modify more than one password at a time, and as difficult as possible to obtain a copy of the datastore file(s) themselves.

7) The last request is that the datastore as a whole must be backed up regularly for redundancy, and hence, the backup format/system utilized must also be as secure as possible.

There it is. This is not at all an easy "problem" to solve, and repeated and varied Googlings have not turned up anything close enough to what I''m looking for. My current line of thinking is not entirely satisfying to me and I need to see if somebody more knowledgeable than myself naturally comes up with a solution I would not have considered-- especially if there''s a possibility I''m grossly over-thinking this entire thing.

Anyway, I''ve tried to keep my description as generic as possible to prevent biasing the reader''s own thought process. I''d of course like to hear any thoughts the community has on this. I''d be happy to entertain any existing applications (FOSS or otherwise), as well as suggestions for a "from scratch" implementation. If anyone has questions they need to ask to clarify the problem, I''d be only too happy to answer them.

I''m also eager to share my current ideas for implementing this, but again, I want to see what unique suggestions everyone can come up with first before artifically locking the discussion into any particular category or programming language.

Lastly, I apologize if this is not the correct board to post this under , but as I said I am not currently restricting this project to being a "database project" or a "C++ project", etc. The _method_ of implementation is not as important as the security of the resulting system as a whole. I''m hoping the power of 39,000 other minds can help come up with a more secure, reliable system than just my one can.

Thanks for you time!

推荐答案


这里的第一次海报!让我直截了当......

等...
First time poster here! Let me get straight to it...
etc...



嗨。


我只想提出一个小技术要点 - 或者可能更好地称之为政策。比技术。作为一般规则,您应该避免存储未加密的密码。在任何可能被泄露的位置,您只应以加密形式存储密码。要检查它,您可以获取用户输入的密码,对其进行加密,然后根据数据库进行检查。

Hi.

I''d just like to make one small technical point - or perhaps it would be better termed "policy" than technical. As a general rule, you should avoid storing passwords unencrypted. In any location which might conceivably be compromised, you should store passwords only in an encrypted form. To check it, you take the password entered by the user, encrypt that, and then check it against the database.



作为一般规则,你应该避免存储未加密的密码。在任何可能被泄露的位置,您只应以加密形式存储密码。要检查它,请获取用户输入的密码,对其进行加密,然后针对数据库进行检查。
As a general rule, you should avoid storing passwords unencrypted. In any location which might conceivably be compromised, you should store passwords only in an encrypted form. To check it, you take the password entered by the user, encrypt that, and then check it against the database.



一个完全可以接受和合理的观点,但不幸的是忽略了数据库的目的。密码本身需要可以恢复。也就是说,实际上,数据库的重点是:将一些密码安全地存储在一个位置,以便以后可以检索和使用它们。我想的很像Mac OS X Keychain(这里的描述如果您不熟悉该技术,则比Apple更好),除了分布式访问而不依赖于平台。


有没有人知道任何现有的包,或者有任何好处关于如何实现这一点的建议?


由于兴趣不大,我不妨继续前进并将自己的头脑风暴投入其中。请记住,这很大程度上受我最喜欢使用的工具的影响。目前我的想法是使用一个非常简单的表格布局的MySQL数据库:

A perfectly acceptable and reasonable point, however it unfortunately neglects the purpose the database. The passwords themselves need to be recoverable. That is, in fact, the whole point of the database: to securely store a number of passwords in a single location so that they can be retrieved and used later. I''m thinking a lot like the Mac OS X Keychain (the description here is better than Apple''s if you are unfamiliar with the technology), except with distributed access and not platform dependent.

Does anybody know of any existing packages, or have any good suggestions for ways to implement this?

Since there''s been so little interest, I might as well go ahead and throw my own brainstorming out there. Keep in mind this is heavily influenced by the tools I''m most comfortable using. Currently my thinking is to use a MySQL database with a very simple table layout:

展开 | 选择 | Wrap | 行号


还请保留记住,客户请求这个解决方案。目前,他们的密码以明文形式存储在开放网络共享上托管的Excel文件中。换句话说,他们迫切需要大幅提高安全性。系统不一定非常完美,但它必须比目前的系统好几个数量级。
Please also keep in mind that the client requesting this "solution" is currently storing their passwords in cleartext in an Excel file hosted on an open network share. In other words, they are in critical need of a huge increase in security. The system doesn''t have to be perfect, but it has to be a couple orders of magnitude better than what they have currently.


这篇关于多用户密码数据库解决方案?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆