公司用的 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 来实现生成验证码的功能?
1
irainsoft 247 天前
Certum 家的 code signing 本身就不支持 CI/CD 拓展,你要是真的搞一套 OCR 或者破解掉二步验证的话这安全性真的大打折扣,签名本身是一件很严谨的事情。如果是测试版的话直接自签解决,如果是正式版的话还是老老实实走流程吧,或者整个能网页批准的...
|
2
holinhot OP @irainsoft 破解掉自己按密钥生成 code 这样最好啊。最坏的情况 App 密钥也是能重置的。主要是签名的不只有安装程序,程序里的 DLL 和 exe 都要签名,即使不破解,验证码肯定还是要给开发人员的。只是说那个验证码登陆后只能用 2 小时可以缩短时间相对安全一点点而已。对于小公司来说代码签名即使被盗,也不会有大厂那么大风险。
|
3
virusdefender 247 天前
公司选择云签名可能有安全性的考虑吧,你要这么做的话,和自己存储私钥就没啥区别了,看看之后续费的时候可以换一下么。
|
4
holinhot OP @virusdefender 公司觉得 U 盾版的多个人共用很不方便。
|
5
caotian 247 天前
CI 流程运行时间如果不超过验证码过期时间,可以提交代码触发 CI 的时候,手工把验证码填写到 commit message 里,这样 CI 流程可以从 commit message 读取到验证码
|
6
Puteulanus 247 天前
“SimplySign 使用邮箱和手机 App 里的 6 位随机数字验证码登陆”
验证码有邮件的吗,邮件的好搞,CI 里写个工具去邮箱捞一下最近的邮件 |
7
julyclyde 247 天前 1
建议 ci 过程不要用对外发布的那个 key 签名哦
内测版可以签一下试试 如果可以发邮件通知六位数,那你就写个程序从邮箱里读出来 |
8
nieyujiang 247 天前 via iPhone
我司 windows 客户端也遇到这种问题,只不过我们是固定密码,然后我随手写了个 windows 的程序自动帮我填密码
|
9
holinhot OP @Puteulanus 他的验证码似乎是 Google 验证器那种离线生成的,只是生成算法和 Google 的不一样。验证码不是在线生成的
|
10
holinhot OP 解决了。不用破解。certum 激活步骤中有提供一个二维码。解析出来就能拿到
secret=xxxxx&issuer=Certum&algorithm=SHA1&digits=6&period=30 然后自己生成 CODE 就行,都不用他那个 APP 了 |
13
right0 19 天前
当我没问..就是个 base32, 原来是巨硬的 authenticator 不支持 sha256 的问题.
|