这是需求是不是蠢到妈都不认识了?

2022-05-31 14:53:27 +08:00
 coderflying

领导非要实现这么一个需求:

需要提供一个接口,用户发送个人私钥、消息实体等一系列数据,让我使用特定算法完成签名,然后需要提供另一个接口,这个接口实现对签名的验证,然后将签名验证成功的消息发送给我的下游。 流程为:A 将数据发送给我->我完成签名->我自己调用验证接口验证该签名->将消息(不包含签名)发送给 B ,所有接口均走内网。 我这一步岂不是多余?自己签名自己验证,B 也不会去验证任何东西。还要求签名和验证分别部署,请问这样做真的有意义吗?

6126 次点击
所在节点    程序员
36 条回复
zhaokun
2022-05-31 16:40:54 +08:00
我之前也接触过这类领导
拆分微服务,每个微服务里有且仅有一个接口,领导的意思是,给甲方报的时候显着服务多工作量多
LZWDRWEB
2022-05-31 16:46:51 +08:00
检测电脑有没有开机.exe
bthulu
2022-05-31 16:47:57 +08:00
领导是需要全盘考虑的, 不仅仅是技术方面的考量. 有些事情, 技术上确实是无用功, 但这无用功, 恰恰是公司能成功的关键.
Yest192
2022-05-31 17:14:28 +08:00
为什么我感觉没什么问题呢.. 不过我不是做后端的,只是提一下我的看法:
感觉你这个模块就算是 验证也解密的 领导希望这块和主要的逻辑功能解耦吧。这样子如果后面还有其他客户端,可能主逻辑不用改了,只需要改动你这块就行了。还有就是内网也不一定安全,但是至少比公网安全得多吧,所以这个秘钥验证我觉得也是有意义的吧。
cp19890714
2022-05-31 17:32:21 +08:00
你来问网友, 为啥不直接问你领导呢?
如果你觉得他没说清楚,或者你无法接收他给的解释,那你就问到底。
这种具体的事情,就别来问网友了,问了也没用,网友最多也只能给你方法论。
Vindroid
2022-05-31 17:36:05 +08:00
这不是技术层面的需求,而是纯业务要求导致的,你照做就行了,和领导细聊技术没意义
janus77
2022-05-31 17:40:38 +08:00
这种基本上就是为了满足某些强制标准 或者吹嘘安全性用的,没有实际意义但是必须要做。这样的需求到处都是,我之前还遇到一个项目,谈的时候说搞了两台服务器,做的时候是一个单体项目,然后领导跟我们说把数据库部署到一台,服务部署到另一台,不然客户会觉得我们没用光预算,显得我们做的东西太过简单。这样会影响后面的单子。
Zerowgd
2022-05-31 18:00:23 +08:00
感觉你这不叫私钥,类似于 AK/SK 认证方式,发送私钥以及实体进行数据签名,然后接口去验证,这个接口去验证只是你们领导想把验签独立,类似于 Oauth2 的资源服务器认证,然后 B 服务可以通过调用接口返回的消息来确认是否是验签成功的,个人认为没什么问题,整体流程微服务化
imn1
2022-05-31 18:07:29 +08:00
签名和验证签名很可能是在两套设备上完成,就是“我”和“我”是一个岗位的两个工序

你想想:
1. 秘书把命令书准备好 --> 生成签名(的环境)
2. 领导审阅签字 --> 验证(这个验证可能在办公室,也可能在远程国外完成)
sivacohan
2022-05-31 19:16:18 +08:00
你说的这个不是加密机的操作流程吗?
是不是可以推荐领导采购一套加密机?
FrankAdler
2022-06-01 00:49:31 +08:00
@bthulu 听君一席话
JamesMackerel
2022-06-01 10:20:21 +08:00
确实蠢到妈都不认识了,不过既然已经反复沟通过了,那说明让上级理解的可能性很小,所以现在方案就两个,一个是跑,另一个是快点做完回家抱老婆。
JamesMackerel
2022-06-01 10:24:42 +08:00
对了,记得留好沟通的记录,把你在安全上的考量和对这个方案的疑虑都写出来在一个可查的文档里,让领导确认就是要这样做。

否则可能会有意想不到的结果。

另外,如果领导在做完之后又说这个方案怎么那么蠢,要改掉,你就要么跑要么按部就班地排期改,改完了回家抱老婆。刚刚说的那个文档和签字画押是老板试图让你背锅的时候用的。
Outshine
2022-06-01 12:55:15 +08:00
楼上都没人注意到需要用户上传自己的私钥这个事情嘛?
zilongzixue
2022-06-01 15:50:02 +08:00
@Yest192 你看懂了吗,楼主是自己加签自己验证,直接把数据转给 b 不就行了,还加密个毛,这不是脱裤子放屁吗
raysonlu
2022-06-01 16:57:02 +08:00
可以尝试不要把自己代入进去理解。A 发消息给 B ,B 生成一个签名,然后问 C 是否正确。把 AB 当作一个客户端整体,C 是远程服务端,这模式看上去就有点类似软件注册码验证了,当然 B 如果真的是在客户端的话应该是“编译部署”好的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX