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

如何通过技术手段证明一个文件的作者?

  •  
  •   shendaowu · 1 天前 · 2021 次点击
    如果不能彻底证明,大体上证明也行。或者说可以作为证据。再退一步,用某种手段之后其他人再伪造证据就很难了也行。也可以继续往后退。希望大佬说方法的时候能提一下退到什么程度了。

    我现在用的方法是在文件中包含并声明文件的创作者在网上的常用 ID ,然后把文件的 SHA256 写到比特币和以太坊的区块链里。只写这个 SHA256 ,其他的什么都没有。如果我的所有账号都被盗的话是否就不行了?我搜了一下,直接公布身份证号的 SHA256 风险很大,能撞出来。有没有其他的改良的方法?身份证号再加上一句不公开的话?这还有证明的效力吗?如果万一有人抄袭,公证处能公正吗?大概要多少钱?我感觉这种方法可能是有漏洞的,毕竟别人可能说是别人“栽赃”我,就是说可能有另外一个人做了这些证明的工作,并且我也接受了这个人的“栽赃”。另外其他技术上的漏洞还有没有?

    我问了一下 ChatGPT ,它说要还要同时在区块链中写入作者、创建时间和文件名。但是比特币才能写入 80 个字符,感觉会写不下。存 SHA256 的时候不二次转换?但是这可能会导致一些人获取的时候不那么方便。所谓二次转换是存储在比特币的区块链里的数据要转换成 0x 那种表示方式在区块链浏览网站显示的时候才不需要转换。如果不转换可以节省一点空间。
    第 1 条附言  ·  1 天前
    建议不要因为我这贴盲目操作。目前我已知的最严重的风险是银行卡、支付宝或者微信支付被冻结。我发帖的时候还不知道这些,发帖之后搜相关信息的时候才意外发现的。不过应该都是买卖金额比较大才可能会被冻。
    27 条回复
    EchoWhale
        1
    EchoWhale  
       1 天前 via iPhone   ❤️ 1
    你是否在找“数字签名”?
    churchmice
        2
    churchmice  
       1 天前
    lz 的奇思妙想挺多的
    你这问题就是数字签名,跟区块链啥的都扯不上关系
    你是否已经魔怔,啥玩意都要跟区块链上走一遭
    shendaowu
        3
    shendaowu  
    OP
       1 天前
    #1 @EchoWhale 我忘了说了,这个还需要证明时间,我搜了一下数字签名好像并不能证明时间,可能还需要配合可信时间戳。另外这两个想要靠谱好像都需要比较多的钱吧?在比特币和以太坊里写几块钱就行了,效果还不差。
    shendaowu
        4
    shendaowu  
    OP
       1 天前
    #2 @churchmice 请看我三楼回复。
    hcocoa
        5
    hcocoa  
       1 天前
    @shendaowu #3 你随便找一个安装包右键属性-数字签名,看看有没有时间戳
    Tiller
        6
    Tiller  
       1 天前
    @shendaowu 数字签名怎么可能没记录时间戳啊。。你直接打开微信的程序看一眼不就好了
    shendaowu
        7
    shendaowu  
    OP
       1 天前
    #5 @hcocoa
    #6 @Tiller

    我问了一下 ChatGPT ,他说普通数字签名附带的时间戳的效力不如可信时间戳,不过我不确定是不是幻觉。如果事实如 ChatGPT 所说的话,感觉你们两个有点类似那个对哈希一知半解,结果把自己的身份证号的 SHA256 发到知乎,然后身份证号被撞出来的那个人。
    DAMNCRAB
        8
    DAMNCRAB  
       1 天前
    打印出来 邮政邮给自己 不拆(
    WhatMelon
        9
    WhatMelon  
       1 天前
    @shendaowu 身份证号 18 位,撞出来 10^18 尝试(不考虑 x),实际上把自然人年龄,各个省市的身份证前缀确定下去还能减少尝试次数

    但是普遍说的私钥都是 2^256 次尝试吧
    Tiller
        10
    Tiller  
       1 天前
    @shendaowu 真是魔怔人。CA 证书选择权威机构,基本不可能被伪造,在进行写入时间戳确保证书在过期或者被吊销之后都可以保证有效。

    你告诉我其他人怎么伪造一个 CA 证书?

    你的问题是如何用技术手段证明一个文件的作者,用证书数字签名不就够了吗?

    如果你把问题改成“如何证明作者在某个时间写了某个软件?”,那就麻烦出门直奔邮政,挂一封挂号信,寄给自己。

    我往身份证号里面加盐,同样能够用 sha256 ,你来撞一个给我看看?
    olaloong
        11
    olaloong  
       1 天前
    @hcocoa #5 @Tiller #6 是要有可信时间戳的,点开数字签名详细信息,附署里那个签名就是可信时间戳的。毕竟好的数字签名,不仅要防止第三方伪造,也不能让所有者伪造。

    @shendaowu #4 文件不大还是邮寄一份给自己吧,靠谱。区块链什么的真搞起来法院不一定认
    0o0o0o0
        12
    0o0o0o0  
       1 天前
    数字签名的时间戳也是由时间戳提供机构提供的,和 CA 差不多,也就是说这个可信性也是中心化的,你只要信任这个机构就可以。
    shendaowu
        13
    shendaowu  
    OP
       1 天前
    #10 @Tiller 我想起来了。应该有的可信时间戳是基于比特币的。只要比特币不崩,那么一直就是可信的。不必考虑人为的因素。我搜了一下,好像有黑客入侵过证书颁发机构,并造成过不好的影响。当然能不能伪造我就不知道了。我也不想问 ChatGPT 了,大佬如果知道的话能不能直接告诉我一下?另外我描述里说了。我还想证明是我这个人是那个文件的作者,而不是关联到一些账号和证书上。当然如果不能就算了。
    shendaowu
        14
    shendaowu  
    OP
       1 天前
    @0o0o0o0 #12 我之前好像听说过基于区块链的可信时间戳,现在还有没有我不知道。我这记性,我前几天就使用过一个据说是基于比特币的可信时间戳: https://opentimestamps.org/ 。不过我有点看不明白具体是怎么证明的,所以我主要要是打算用这个网站作为一个辅助,主要还是自己把文件的 SHA256 保存在比特币的区块链里。
    michel00l
        15
    michel00l  
       1 天前
    代码打包 ->生成 hash-> hash 打印邮政盖戳 ->代码包时间戳 get
    从而时间维度上证明代码包的原创性

    司法实践的话建议问问律师
    Kaiv2
        16
    Kaiv2  
       1 天前
    文件: hash
    文件 + 时间戳: hash
    同时发布到各个平台
    paopjian
        17
    paopjian  
       1 天前
    你是来推销比特币的吧, 三句话不离比特币区块链
    dhb233
        18
    dhb233  
       1 天前
    就是文件签名机制,上链的话,应该只把哈希值上链,元数据还是在链外存储。
    要说方便的问题,那不太可能,文件内容你总是上不了链的。
    至于说时间戳,要么第三方签名确保时间戳的有效性。
    要么就是签名文件的时候,加上外部和时间相关的随机数据,比如相关时间段的区块哈希值
    dhb233
        19
    dhb233  
       1 天前
    @dhb233 使用哈希值这个好像有点多余。。如果上链,可能直接按照上链时间来算也差不多。毕竟历史区块的哈希值还是很容易获取。
    如果要保证使用历史时间戳签名的时间准确性,那时间戳相当于数据,这个验证是没有很好的办法的。
    shendaowu
        20
    shendaowu  
    OP
       1 天前
    @paopjian #17 感谢。你的话让我小悟了一下。我悟到在网上发言大部分人都会假设你有最坏的动机。这样想就感觉好多了,没有那种类似所有人都在针对我的感觉了。毕竟别人很可能也不是因为跟我有仇,只是不想被骗而已。
    linzyjx
        21
    linzyjx  
       1 天前   ❤️ 1
    如果你要确认某个作品的初始作者,方便稳妥,在国内法律这块公信力最强的是去邮政寄几份作品的打印件给你自己,不要拆封。上面邮戳就是时间戳。
    其次是那种 xx 司法链那种服务。
    区块链,再往后稍稍。
    shendaowu
        22
    shendaowu  
    OP
       1 天前
    @linzyjx #21 你说服我了。之前别人说类似的我没怎么在意,总感觉这个很容易伪造。不过既然法律很认可我就麻烦一下自己吧。不过感觉这个东西好像不能随便验证,配合其他方法应该效果更好一些。不同的证明方法应该不会有什么冲突吧?感觉我可能想多了。
    shendaowu
        23
    shendaowu  
    OP
       1 天前
    @linzyjx #21 我还有个问题,我没搜到,所以找你碰碰运气。就是信封封口的胶至少能有效多少年?我见过不少没多长时间就失效的胶,害怕。另外信封自己开胶应该也会失去证明的效力吧?
    colin2023
        24
    colin2023  
       1 天前
    文件打印出来寄 EMS ,自己寄给自己,不拆封
    hcocoa
        25
    hcocoa  
       1 天前
    可以搜一下“X-Y Problem”,根本不明白你想干啥。
    shendaowu
        26
    shendaowu  
    OP
       1 天前
    @EchoWhale #1
    @churchmice #2

    我三楼说错了。对大部分人来说这不是几块钱的事。我是因为之前有一点比特币。我之前用过的那个比特币和法币交易的网站好像基本都有最小交易限制。有个最少 100 元人民币的,不过我试了几次对方都没反应。剩下的基本都是最少几千的。
    shendaowu
        27
    shendaowu  
    OP
       1 天前
    @EchoWhale #1
    @churchmice #2

    再次更正。买比特币可能会被冻银行卡、支付宝和微信支付。这也是不小的风险。不过小额好像问题不大。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:43 · PVG 05:43 · LAX 13:43 · JFK 16:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.