Security 插件体系结构的安全/认证

Security 插件体系结构的安全/认证,security,language-agnostic,plugins,Security,Language Agnostic,Plugins,我在考虑在基于插件的系统中实现安全性的多种方法。现在当我说“安全”时,我的意思是: a) 插件系统的开发人员如何确保插件在核心平台上安全使用。 b) 插件开发人员如何确保其平台上使用的插件是“可信任的”,即通过某种方式,我们知道是谁开发了该插件(类似于Facebook使用其API密钥所做的) c) 开发人员如何控制插件对UI所做的更改(如果允许的话)?例如,允许维护UI并将插件用户重定向到特定网页的插件会将用户带到钓鱼网站 我对这个问题有初步的想法: 关于a)我正在考虑使用沙箱是否会导致窒息。这

我在考虑在基于插件的系统中实现安全性的多种方法。现在当我说“安全”时,我的意思是:

a) 插件系统的开发人员如何确保插件在核心平台上安全使用。 b) 插件开发人员如何确保其平台上使用的插件是“可信任的”,即通过某种方式,我们知道是谁开发了该插件(类似于Facebook使用其API密钥所做的) c) 开发人员如何控制插件对UI所做的更改(如果允许的话)?例如,允许维护UI并将插件用户重定向到特定网页的插件会将用户带到钓鱼网站

我对这个问题有初步的想法: 关于a)我正在考虑使用沙箱是否会导致窒息。这会不会保护插件,比如说,直接调用DB来做一些淘气的事情?在不影响系统功能的情况下,是否可以限制插件访问本地系统?你对此有什么想法

在b)上,我相信类似Facebook的身份验证是一条出路。但是,对于一个小型应用程序来说,这难道不是一个过火的举动吗(“小型”是指它比Facebook或Jira小)?还有其他可能的选择吗

关于c)我将诚实地说,我不知道如何实现这一点。有什么意见吗

所以,问题是。。。如何在插件架构上实现安全性

a) 插件系统的开发人员如何确保插件在核心平台上安全使用

开发人员怎么知道这些?他们没有。他们必须信任该框架。对于开放源代码,这意味着下载它并自己检查它。对于专有技术,谁知道开发人员如何信任该框架

b) 插件开发人员如何确保其平台上使用的插件是“可信任的”,即通过某种方式,我们知道是谁开发了该插件(类似于Facebook使用其API密钥所做的)

如果你建立一个插件框架,你对插件一无所知。插件框架可以有“好”插件和“坏”插件。但谁来决定好与坏呢?用户是这样做的。如果插件是“好的”,那么它是有用的,并且可以工作。如果一个插件是“坏的”,它是无用的或不工作的。大多数病毒只是无用的软件

任何软件都可以放入插件框架,但仍然是无用的。这是一个价值判断,不是一个技术问题

c) 开发人员如何控制插件对UI所做的更改(如果允许的话)?例如,允许维护UI并将插件用户重定向到特定网页的插件会将用户带到钓鱼网站

是的。这种事经常发生

什么是“网络钓鱼”?有时我甚至不想把我的电子邮件发给一家“真正的”公司。他们问的时候是不是在“钓鱼”?不是真的。注册页面后面的新闻来源呢?我必须登记才能得到消息。那是网络钓鱼吗?那么一个承诺提供财务信息的网站呢?如果我注册,那是来自财务来源的网络钓鱼还是合法的用户注册?如果财务信息是关于尼日利亚的呢?如果是关于我在尼日利亚的一个死去的亲戚呢

这里没有确定“好”与“坏”的技术手段。这完全是用户的价值判断


“插件”框架不能决定任何事情。只有用户可以决定。

ac如果我理解正确的话,是同一个问题

如果您想限制插件系统中可能存在的内容,那么简单的答案就是限制环境。构建一个安全、GUI和任何你认为神圣的东西都必须受到设计保护的环境,称之为沙箱,称之为非常严格的API,称之为强制插件开发人员使用非真正编程语言的东西

如果不可能使某个东西看起来像登录屏幕,或者将人们重定向到其他地方,那么恶意开发人员将不得不放弃这一点

然而,这就形成了一个僵化的插件系统,在这个系统中,开发人员几乎没有自由来实现新特性,这可能是不可接受的;过去人们对什么是安全操作做出了错误的假设

b要知道是谁开发了某些东西,你需要向他们询问并确认个人身份信息

在这一点上,您可以简单地通过SSL使用用户和密码,或者使用签名系统,如果您的系统将被其他任何人使用,并且您不想让下载插件的人承担额外的负载,那么您就可以成为证书颁发机构。他们总是会把钥匙放错地方,但你对此无能为力

即使你是免费签名,也不适用于小型系统

下一个最好的选择是一个句柄,其中一些合法的已检查插件意味着您可以在较少检查或根本不检查的情况下获得插件

如果开发人员也不想注册一个帐户,您可以随时检查带有一点SSL流量的IP,以避免欺骗,并将其用作其内部用户名。拥有动态IP或代理和大量插件的人最终会注册


当然,这需要能够检查插件的人。

有趣的是,我是尼日利亚人!;)但在这个话题上,你基本上是在说,要提供任何形式的安全性,人们几乎无能为力,而通过开发一个基于插件的系统,你在口头上是在举办一个家庭聚会,希望没有人会偷你的东西?@Kris Ogirri:干杯。我们称他们为“尼日利亚电子邮件诈骗”——谁知道他们是否真的来自尼日利亚,但他们在电子邮件中声称是这样。你可以