运行命令“youtube-dl -U”来更新 youtube-dl 有多安全?

运行命令“youtube-dl -U”来更新 youtube-dl 有多安全?

我读过手册,也搜索过他们的 GitHub。除了“下载最新的二进制文件并替换现有文件(它以某种方式确定了文件的位置)”之外,我找不到任何有关此命令功能的信息。

youtube-dl -U

但是它是否也会检查校验和/签名以确保它没有被泄露?我发现从他们的网站手动下载 youtube-dl 然后将其上传到 VirusTotal 然后手动替换二进制文件是一项艰巨的任务。

即使它进行了签名/校验和检查,如果开发人员的机器已被破坏,或者他们使用的任何机制来分发二进制文件,它仍然是不安全的。

答案1

我想说,假设你首先信任他们,那么它看起来相当安全。

它是否还检查校验和/签名以确保它没有被泄露?

是的。如果你看看更新.py在 github 上它会下载一个文件版本.json并检查其签名。

    UPDATE_URL = 'https://yt-dl.org/update/'
    VERSION_URL = UPDATE_URL + 'LATEST_VERSION'
    JSON_URL = UPDATE_URL + 'versions.json'
    UPDATES_RSA_KEY = (0x9d60ee4d8f805312fdb15a62f87b95bd66177b91df176765d13514a0f1754bcd2057295c5b6f1d35daa6742c3ffc9a82d3e118861c207995a8031e151d863c9927e304576bc80692bc8e094896fcf11b66f3e29e04e3a71e9a11558558acea1840aec37fc396fb6b65dc81a1c4144e03bd1c011de62e3f1357b327d08426fe93, 65537)
.
.       
    if 'signature' not in versions_info:
        to_screen('ERROR: the versions file is not signed or corrupted. Aborting.')
        return
    signature = versions_info['signature']
    del versions_info['signature']
    if not rsa_verify(json.dumps(versions_info, sort_keys=True).encode('utf-8'), signature, UPDATES_RSA_KEY):
        to_screen('ERROR: the versions file signature is invalid. Aborting.')
        return

该文件包含 .exe(和其他发布类型)的 SHA,它会根据下载的内容进行检查:

版本.json

    newcontent_hash = hashlib.sha256(newcontent).hexdigest()
    if newcontent_hash != version['exe'][1]:
        to_screen('ERROR: the downloaded file hash does not match. Aborting.')
        return

即使它进行了签名/校验,如果开发人员的机器被入侵,它仍然不安全

如果他们也丢了钥匙,那么是的,但所有事情都是如此。

有人必须入侵他们的服务器并复制版本.json用他们的钥匙签名包含不同的 .exe 哈希值,并且可能包含不同的下载位置。

相关内容