为了管理公司公共应用账号,差点手搓一个浏览器

一、任何一个公司都存在公共账号

任何一个公司都存在或多或少的公共账号,或者叫做共享账号,定义就是一个系统,有限个账号,多个人使用。原因多种多样,比如常见的一些自媒体号(知乎号、抖音号、百家号等等)用于企业日常的宣传经营,这些平台企业只能注册一个账号,而这一个账号老板要使用、多个运营人员也要使用。又比如招聘网站(BOSS 直聘、拉钩、猎聘等等)的管理员账号,往往也是使用公司特有的电话号码或者公共邮箱注册,然后给多个人共享使用。

二、所谓的公共账号,就是账号密码都公开使用

账号共用,其实是个挺“可怕”的事情,举个极端的例子,你能想象把你的微信账号共享给别人一起使用吗。当然企业维度的账号共享问题,倒不是微信这种个人隐私的顾虑,主要是在管理成本和数据安全和其它风险角度的考虑。我们按上图的示意,假设几种可能发生的情况:

员工 A 离职后会发生什么

管理员连夜修改知乎的账号密码,然后给员工B和C发送新的账号密码。

员工 A 转岗

管理员连夜修改知乎的账号密码,然后给员工B和C发送新的账号密码。

知乎密码发生了不明原因的泄露

管理员连夜修改知乎的账号密码,然后给员工A、B和C发送新的账号密码。

我们能够看到,任何人员和系统账密的变动,管理员就要重复更改密码、公示密码。那我们假设系统数量和员工数量都不断上涨的时候,管理员会是个如何的心如死灰。

三、数据安全怎么会允许账号密码漫天飞

上面讲的管理员的问题,是大多数企业都在经历的痛苦挣扎,大家看到的是管理的复杂度或者说叫做运营成本,但如果搬出“数据安全”的利剑,那么这一切都不应该存在。因为只要有一个员工有意或无意地泄露了密码,而公司其它人都无所知的情况下,管理员的所有操作都变得徒劳而没有意义。这,就是老板给我的的看似不可能完成的任务。

老板:你,去解决公司账号共用的问题,不要让大家都知道密码,另外公司要降本增效,这件事没有太多预算,你自己看着办!

我:......好的老板(你是老板你说什么就是什么咯)

四、思如泉涌之密码管理软件

接到任务,我第一个想到的就是密码管理软件,不就是账号密码管理嘛。那不是一大堆工具,行业内做得比较好而安全的我首先想到的是 1Password 和 Lastpass,反正有免费版本注册了先试用看看,如果能满足需求,再想想看能不能搭建开源的版本,不花钱,老板肯定要表扬我的,想想都开心。

试用下来,这些密码管理工具确实比现在公司内部人工管理有很大优势

都有企业版本,可以方便管理员去共享账号给员工,不用在拉群或者私聊给每个员工发账号了。

有一定账号使用情况的管理和视图。

可以设置很复杂的密码,不用担心简单密码被破解。

员工不需要记忆账号密码,选择登录就行。

有这么多优势,员工和管理员都受益,但是却有个致命的数据安全问题,那就是“每个人都知道密码”,可以通过账号管理软件内部,或者插件,或者浏览器开发者模式,轻易的就能拿到密码。老板要求的不能大家都知道密码的底线要求,最终只能弃用这种方案。

五、思如泉涌之自己实现密码管理软件

其实上面密码管理软件的思路是没有问题的,只是他们无法解决隐藏密码的问题,我只要沿着这个思路解决这个问题就好了。那我倒不如找个开源的密码管理软件,简单修改做到不让密码可见不就好了!

经过一番对比,我选择了难度相对适合的项目 bitwarden 。我准备读读里面的源码,把界面上能显示密码的地方给禁用掉,当然也包括其它能把密码拷贝出来的功能。

就在我一腔热血读源码的时候,突然一个念头闪过,如遭雷劈!即使我实现了密码管理软件的密码不可见,在系统登录页面,通过浏览器的开发者模式修改密码框属性不是也能拿到密码吗?

六、思如泉涌之自己实现浏览器

其实上面自建密码管理软件的思路是没有问题的,只是无法解决浏览器的密码屏蔽问题,我只要沿着这个思路解决这个问题就好了。那我倒不如找个开源浏览器,简单修改做到不让密码可见不就好了!比如禁用开发者模式,想想都激动,我真是个天才。

于是,我下载了 chromium 的源码,准备大干一场。当我看到 20G 的 chromium 源码的目录,且搭建编译环境的配置异常复杂的时候,于是,我放弃了......

七、思如泉涌之找个第三方的办公安全浏览器

其实上面自建浏览器的思路是没有问题的,只是我放弃了,我只要沿着这个思路解决能禁用浏览器开发者模式的问题就好了。

于是,我开始搜索第三方办公安全浏览器,竟然都能满足这个安全管控的要求。比如 360 的安全浏览器、奇安信的安全浏览器 ,还有个数影的办公安全浏览器(意外发现,也是救赎之路)。这些安全浏览器都能禁用开发者模式,甚至还包括远程调试模式等我不曾想到过的漏洞。

从官方介绍上来看,似乎都能满足需求,遗憾的是只有数影星球这一家是支持直接注册试用的,于是我马不停蹄要去验证一下。这就让我发现惊喜了!

7.1 通过浏览器再也看不到密码

通过浏览器可以拿到密码的方式也有多种,比如通过网页源代码、通过开发者模式修改密码框属性,这些都可以通过安全浏览器策略去禁用。不过这些高级安全功能默认不开放的,需要官网联系客服进行试用开通。

打开开发者模式,将密码框类型属性从password修改为text,就可以直接显示密码了。

7.2 应用账号管理

我原本的目标是找个可以禁用开发者模式的浏览器,然后配合自己改造过的开源账号管理软件,实现公司公共账号的安全管理。但是让我意想不到的是,数影办公浏览器已经自带了企业级别的账号分配管理能力(不是浏览器那种简单记住密码功能),这让我也省了自己实现账密管理软件的麻烦,实在是意外之喜。

7.3 网站自己也有显示密码的功能

原来密码管理这事实在没那么简单,还有很多我之前都没有想到过的情况,比如下面这种系统本身就提供了显示密码的功能,又让密码暴露无遗了。这也算是惊喜发现之二了,数影这个工具实在是考虑得挺周全,它本身就已经兼容了这种场景,用数影打开系统就会发现,这样的小眼睛功能已经被自动去除了,这个必须点赞。

7.4 手机验证码动态登陆

账号密码登陆是我们习以为常的,但是现在的确越来越多的应用开始只支持手机动态验证码登录,这种情况下前面所说的所有方案都起不了作用了。我抱着试一试的心态联系了官方客服才发现,这又是另一个高级功能,现在商业化产品套路也确实挺深的,都是一点一点功能给你。没有去申请开通,从官方答复的方案来讲确实是行之有效,其实就是公司内部配一个专属的手机,在手机里内置短信转发的APP,把短信转发到浏览器对应的员工通知里就行了,技术实现是不难的,我们目前还没有这种场景,也就没有亲自去验证了。

7.5 动态二维码

和短信验证码类似,有些系统在 PC 端只支持其手机 APP 扫码登录,这样的应用比较少,我们也还没遇到,要解决这类问题,其原理和短信的转发一样,不过技术难度要大得多。

想起最初打算自己改造个密码管理软件和浏览器,实在是想得过于简单了。

本文转载自知乎,作者:无形大象;转载目的在于传递更多信息,如有侵权,请私信联系。

猜你喜欢

转载自blog.csdn.net/Dsphere_shuying/article/details/128939080