V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iMath
V2EX  ›  问与答

把 openai 或 deepseek 的 api key 写到 GUI 客户端里会被网络抓包软件嗅探到吗?

  •  
  •   iMath · 7 天前 · 384 次点击

    如果我把 openai 或 deepseek 的 api key 写到 GUI 客户端里,然后把这个 GUI 客户端软件打包成 exe 软件分发给好多用户,我的 key 不会被用户使用网络抓包软件探测到而泄露呢? 我是为了提高响应速度所以才会这么做的,否则我也知道可以把这部分功能放到我的服务器上面,然后再转接给客户端。 除此之外不知道还有没有别的方法?

    8 条回复    2025-01-14 15:02:30 +08:00
    EgbertW
        1
    EgbertW  
       6 天前
    这样肯定会泄露啊,我自己做类似的事情的笨办法是,搭个服务端,用到 key 的请求全放服务端上,然后自己的服务端跟客户端做一个自己的 api ,做个加密之类的机制防止别人抓包套用,这样套一层
    iMath
        2
    iMath  
    OP
       6 天前
    @EgbertW 奇怪的是我用网络抓包软件没有抓到,不知道是什么原因
    yinmin
        3
    yinmin  
       5 天前 via iPhone
    iMath
        4
    iMath  
    OP
       4 天前
    @yinmin 我参照这里的方法
    https://www.cnblogs.com/yoyoketang/p/16984669.html
    还是没有抓到,只是报错,错误码 V2EX 不准发,请看这里 https://q.cnblogs.com/q/151615
    yinmin
        5
    yinmin  
       4 天前
    @iMath https MITM 抓包是要先将根证书导入到系统里的,你漏了这步。

    防止 MITM 抓包的方法是做证书锁定(SSL Pinning),但是如果别人 crack 你的代码,去掉 SSL Pinning ,还是可以抓包的。

    总之,你把 key 写在代码不安全,别人 crack 你的代码总能获得 key 的。
    iMath
        6
    iMath  
    OP
       4 天前
    @yinmin 我按照博文里的“抓取 https 请求”部分安装了证书了呀
    yinmin
        7
    yinmin  
       4 天前
    你加根证书的姿势不对。你在 python 对应的 Lib\site-packages 的嵌套子目录下找 cacert.pem ,你文本编辑器打开,将新的根证书添加在末尾。(如果还不行,就全盘找 cacert.pem 都加一下)
    iMath
        8
    iMath  
    OP
       3 天前
    @yinmin
    你说这个我搜了一下找到这个粗略的方法
    https://www.redelijkheid.com/blog/2023/8/22/add-ca-certificates-to-python
    说是要转成 base64 ,我用这个代码转了

    ```
    import base64

    # Read the binary content of the .p12 file
    with open('mitmproxy-ca-cert.p12', 'rb') as file:
    binary_content = file.read()

    # Encode the binary content to base64
    base64_encoded_content = base64.b64encode(binary_content).decode('utf-8')

    # Print the base64 encoded content
    print(base64_encoded_content)
    ```
    mitmproxy-ca-cert.p12 在这里 https://drive.google.com/file/d/1Ctuk6G-NSHlOCH30jP_uNhKzw-wRslGB/view?usp=sharing

    然后把 Python312\Lib\site-packages\certifi\cacert.pem 里最后的信息复制了一份,转出来的 base64 信息贴进去,但是肉眼可见格式不一致,实在不会弄了,没进行下去

    ```
    # Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH
    # Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH
    # Label: "Telekom Security TLS RSA Root 2023"
    # Serial: 44676229530606711399881795178081572759
    # MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2
    # SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93
    # SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46
    -----BEGIN CERTIFICATE-----
    转出来的 base64 信息贴在了这里,
    -----END CERTIFICATE-----
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.