• 请不要在回答技术问题时复制粘贴 AI 生成的内容
coderflying
V2EX  ›  程序员

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

  •  1
     
  •   coderflying · May 31, 2022 · 7541 views
    This topic created in 1626 days ago, the information mentioned may be changed or developed.

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

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

    36 replies  •  2022-06-01 16:57:02 +08:00
    yuanix
    yuanix
    May 31, 2022❤️1
    1
    过于愚蠢以至于我怀疑是领导没说清楚自己的实际需求
    wd
    wd
    May 31, 2022 via iPhone
    2
    私钥都发给别人了还叫私钥吗?
    skull
    skull
    May 31, 2022
    3
    怕是没有理解透领导的需求吧
    cloudsigma2022
    cloudsigma2022
    May 31, 2022
    4
    领会意图,事半功倍。领会不了,事倍功半!
    coderflying
    coderflying
    OP
    May 31, 2022
    5
    @yuanix 我一开始看到这需要我也傻了,我反复确认了数次,他也明确说流程就这样。
    M9jB6pg65
    M9jB6pg65
    May 31, 2022❤️2
    6
    听上去像是 ssl 加速卡的诡异变种, 不同在于 正常人最多认为 pci 设备可信, 而你的老板似乎认为内网是绝对安全的
    MoYi123
    MoYi123
    May 31, 2022
    7
    我们公司还有要填身份证号鉴权,然后去查自己身份证号的接口呢.
    coderflying
    coderflying
    OP
    May 31, 2022
    8
    @wd 我对加密这块不是太熟悉,所有私钥由我们本地生成再发给用户,我也提过私钥这样通过网络传输不安全,但是没办法,需求就这样
    dcsite
    dcsite
    May 31, 2022
    9
    A:数据发送端
    C:加密(签名服务)
    D:解密(验签服务)
    B:数据接收端

    我觉得你领导这个需求没问题,相当于微服务化了
    coderflying
    coderflying
    OP
    May 31, 2022
    10
    @skull 我曾视图说服领导说我这块根本是多余的,他跟我掰扯半天,我感觉的快说服的时候,来了句”这样跟客户说的时候,显得我们这用到了 xx 签名,显得安全。“
    billlee
    billlee
    May 31, 2022 via Android
    11
    以后要做性能优化的时候,就可以去掉签名、校验这段代码了(不是
    codefever
    codefever
    May 31, 2022❤️1
    12
    我觉得不是领导不懂,只是客户不懂,但是又不能说客户不懂,所以以一种客户能理解的方式去运作项目,照顾了客户的面子,除了繁琐对项目也没有其他影响,客户觉得自己的需求也得到了你们充分的尊重,win-win
    coderflying
    coderflying
    OP
    May 31, 2022
    13
    @codefever 这个说法可以,很可能就是客户非要加这么个东西
    coderflying
    coderflying
    OP
    May 31, 2022
    14
    @billlee 看了流程图你会发现多余的实在太多了,优化的空间非常大
    libook
    libook
    May 31, 2022
    15
    按需求做了,出问题怎么追责,得想清楚。
    coderflying
    coderflying
    OP
    May 31, 2022
    16
    @dcsite 如果我仅提供签名和验证服务并分别部署由其他角色调用,那我觉得没问题。但是在这里,除了我自己永远不会有人调用验证接口。
    Irina
    Irina
    May 31, 2022
    17
    用户角度来看,进行了验证并收到验证成功提示的确能带来一种“更安全”的感受,尽管实际...hhh
    coderflying
    coderflying
    OP
    May 31, 2022
    18
    @M9jB6pg65 他坚信内网绝对安全,坚信 AB 间交互时在提供各自身份的时候,要对身份信息进行加密才安全,我说如果别人拿到这个加密后的身份密文去与对方交互,这不是白搭,他说别人不可能拿到
    xsm1890
    xsm1890
    May 31, 2022
    19
    你是来实现需求的,不是来评价需求合不合理的,手动狗头保命!
    bk201
    bk201
    May 31, 2022
    20
    为啥不和领导提出自己的不解。
    zhaokun
    zhaokun
    May 31, 2022
    21
    我之前也接触过这类领导
    拆分微服务,每个微服务里有且仅有一个接口,领导的意思是,给甲方报的时候显着服务多工作量多
    LZWDRWEB
    LZWDRWEB
    May 31, 2022❤️1
    22
    检测电脑有没有开机.exe
    bthulu
    bthulu
    May 31, 2022
    23
    领导是需要全盘考虑的, 不仅仅是技术方面的考量. 有些事情, 技术上确实是无用功, 但这无用功, 恰恰是公司能成功的关键.
    Yest192
    Yest192
    May 31, 2022
    24
    为什么我感觉没什么问题呢.. 不过我不是做后端的,只是提一下我的看法:
    感觉你这个模块就算是 验证也解密的 领导希望这块和主要的逻辑功能解耦吧。这样子如果后面还有其他客户端,可能主逻辑不用改了,只需要改动你这块就行了。还有就是内网也不一定安全,但是至少比公网安全得多吧,所以这个秘钥验证我觉得也是有意义的吧。
    cp19890714
    cp19890714
    May 31, 2022
    25
    你来问网友, 为啥不直接问你领导呢?
    如果你觉得他没说清楚,或者你无法接收他给的解释,那你就问到底。
    这种具体的事情,就别来问网友了,问了也没用,网友最多也只能给你方法论。
    Vindroid
    Vindroid
    May 31, 2022
    26
    这不是技术层面的需求,而是纯业务要求导致的,你照做就行了,和领导细聊技术没意义
    rb6221
    rb6221
    May 31, 2022
    27
    这种基本上就是为了满足某些强制标准 或者吹嘘安全性用的,没有实际意义但是必须要做。这样的需求到处都是,我之前还遇到一个项目,谈的时候说搞了两台服务器,做的时候是一个单体项目,然后领导跟我们说把数据库部署到一台,服务部署到另一台,不然客户会觉得我们没用光预算,显得我们做的东西太过简单。这样会影响后面的单子。
    Zerowgd
    Zerowgd
    May 31, 2022
    28
    感觉你这不叫私钥,类似于 AK/SK 认证方式,发送私钥以及实体进行数据签名,然后接口去验证,这个接口去验证只是你们领导想把验签独立,类似于 Oauth2 的资源服务器认证,然后 B 服务可以通过调用接口返回的消息来确认是否是验签成功的,个人认为没什么问题,整体流程微服务化
    imn1
    imn1
    May 31, 2022
    29
    签名和验证签名很可能是在两套设备上完成,就是“我”和“我”是一个岗位的两个工序

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

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

    另外,如果领导在做完之后又说这个方案怎么那么蠢,要改掉,你就要么跑要么按部就班地排期改,改完了回家抱老婆。刚刚说的那个文档和签字画押是老板试图让你背锅的时候用的。
    Outshine
    Outshine
    Jun 1, 2022
    34
    楼上都没人注意到需要用户上传自己的私钥这个事情嘛?
    zilongzixue
    zilongzixue
    Jun 1, 2022
    35
    @Yest192 你看懂了吗,楼主是自己加签自己验证,直接把数据转给 b 不就行了,还加密个毛,这不是脱裤子放屁吗
    raysonlu
    raysonlu
    Jun 1, 2022
    36
    可以尝试不要把自己代入进去理解。A 发消息给 B ,B 生成一个签名,然后问 C 是否正确。把 AB 当作一个客户端整体,C 是远程服务端,这模式看上去就有点类似软件注册码验证了,当然 B 如果真的是在客户端的话应该是“编译部署”好的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2487 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 11:06 · PVG 19:06 · LAX 03:06 · JFK 06:06
    ♥ Do have faith in what you're doing.