CI 中怎么代码签名问题?

66 天前
 holinhot

公司用的 Certum 的云 EV 代码证书。证书激活时在手机上装了一个类似 Google 验证器的 SimplySign App ( Certum 家的);

手动签名的流程是电脑上安装 SimplySign (模拟 SafeNet 类似功能的虚拟设备)。 SimplySign 使用邮箱和手机 App 里的 6 位随机数字验证码登陆。 登陆成功后可以直接使用这个命令签名并输入 signtool sign /a /t http://timestamp.digicert.com /fd SHA256 setup.exe

现在的问题是想把这个签名过程放到 CI 里面去,主要问题就是怎么在 CI 里面拿到上面那个 App 里的验证码?考虑过把验证码 App 装安卓虚拟机里,CI 通过接口去读屏幕上出现的验证码。

还是把 SimplySign App 破解了直接用 php 来实现生成验证码的功能?

1056 次点击
所在节点    问与答
11 条回复
irainsoft
66 天前
Certum 家的 code signing 本身就不支持 CI/CD 拓展,你要是真的搞一套 OCR 或者破解掉二步验证的话这安全性真的大打折扣,签名本身是一件很严谨的事情。如果是测试版的话直接自签解决,如果是正式版的话还是老老实实走流程吧,或者整个能网页批准的...
holinhot
66 天前
@irainsoft 破解掉自己按密钥生成 code 这样最好啊。最坏的情况 App 密钥也是能重置的。主要是签名的不只有安装程序,程序里的 DLL 和 exe 都要签名,即使不破解,验证码肯定还是要给开发人员的。只是说那个验证码登陆后只能用 2 小时可以缩短时间相对安全一点点而已。对于小公司来说代码签名即使被盗,也不会有大厂那么大风险。
virusdefender
66 天前
公司选择云签名可能有安全性的考虑吧,你要这么做的话,和自己存储私钥就没啥区别了,看看之后续费的时候可以换一下么。
holinhot
66 天前
@virusdefender 公司觉得 U 盾版的多个人共用很不方便。
caotian
66 天前
CI 流程运行时间如果不超过验证码过期时间,可以提交代码触发 CI 的时候,手工把验证码填写到 commit message 里,这样 CI 流程可以从 commit message 读取到验证码
Puteulanus
66 天前
“SimplySign 使用邮箱和手机 App 里的 6 位随机数字验证码登陆”
验证码有邮件的吗,邮件的好搞,CI 里写个工具去邮箱捞一下最近的邮件
julyclyde
66 天前
建议 ci 过程不要用对外发布的那个 key 签名哦
内测版可以签一下试试

如果可以发邮件通知六位数,那你就写个程序从邮箱里读出来
nieyujiang
66 天前
我司 windows 客户端也遇到这种问题,只不过我们是固定密码,然后我随手写了个 windows 的程序自动帮我填密码
holinhot
65 天前
@Puteulanus 他的验证码似乎是 Google 验证器那种离线生成的,只是生成算法和 Google 的不一样。验证码不是在线生成的
holinhot
63 天前
解决了。不用破解。certum 激活步骤中有提供一个二维码。解析出来就能拿到
secret=xxxxx&issuer=Certum&algorithm=SHA1&digits=6&period=30
然后自己生成 CODE 就行,都不用他那个 APP 了
SuoRan
29 天前
@holinhot 请问你是怎么操作成功的呢,我是使用 github actions 来构建的

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

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

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

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

© 2021 V2EX