-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Extended FAQ zh CN
“补充常见问题”涵盖了一些您可能想了解的不太常见的问题以及它们的答案。 对于更常见的问题,请访问基本常见问题。
ASF 是由 Archi 在 2015 年 10 月创作的。 您可能已经知道,我和您一样,是一名 Steam 用户。 正如您所见,除了玩游戏,我也很愿意将我的技能与意志付诸实践。 这里没有大公司参与,没有开发者团队,也没有一百万美元的预算——只有我自己维护这个项目。
然而,ASF 是一个开源项目,您在这里看到的一切并非完全出自我手。 我们有一些其他 ASF 项目,几乎全部由其他开发者开发。 即使是 ASF 核心,也有许多贡献者参与帮助我完成。 最重要的是,有一些第三方服务支持了 ASF 的开发,特别是 GitHub、JetBrains 与 Crowdin。 当然也不能忘记实现 ASF 所用的优秀的库和工具,例如我们使用的 IDE Rider(我们还特别喜爱 ReSharper 插件),特别是 SteamKit2,没有这个库,ASF 也就不复存在。 同样,如果没有各种赞助者对我们的支持,ASF 也不会是现在这个样子。
感谢所有帮助 ASF 开发的人! 你们很酷 ❤️。
创作 ASF 的主要目标是成为 Linux 的全自动 Steam 挂机工具,无需任何外部依赖(例如 Steam 客户端)。 事实上,这仍然是它的最主要目标,因为我的 ASF 概念从那以后没有改变,我现在使用它的方式仍然与我在 2015 年的使用方式完全相同。 当然,自那时起,ASF 已经发生了相当多的变化,我很高兴看到 ASF 取得了如此大的进展,这主要得益于我们的用户,如果我只是为自己开发,ASF 恐怕连现在的一半功能都没有。
需要指出,ASF 从未试图与其他相似工具竞争,特别是 Idle Master,因为 ASF 从来没有被设计为一个桌面/面向用户的应用,现在亦然。 如果您仔细分析上述的 ASF 主要目标,您就会发现 Idle Master 处于完全相反的方向。 虽然您现在肯定能找到类似于 ASF 的工具,但对我来说,当时还没有合适的(目前仍然没有),所以我按照我想要的方式创造了自己的软件。 随着时间的推移,用户迁移到 ASF 的主要原因是其强健、稳定和安全的特性,但也有我这些年开发的所有特性的功劳。 如今,ASF 是史上最棒的 ASF。
您不需要付出代价,我为自己创作了 ASF,并将其分享给社区,希望对其他人有用。 1991 年发生过同样的事情,Linus Torvalds 将他的第一份 Linux 内核分享给了全世界。 这里没有暗藏恶意软件、数据挖掘、恶意挖矿或者其他任何能够为我产生利益的活动。 ASF 项目的支持完全来自于非强制性的捐款,这些捐款由像您一样的普通用户捐赠。 您可以像我一样使用 ASF,并且如果您喜欢它,您可以随时为我捐赠一杯咖啡来表达您对我工作的感激。
此外,我也将 ASF 视为一个现代 C# 项目的完美示例,始终追求完美和最佳实践,无论是技术、项目管理还是代码本身。 这是我对于“把事情做好”的定义,所以假如您打算从我的项目中学到一些有用东西,那只会使我更高兴。
从统计角度看,无论结果多么悲剧,在 ASF 启动之后不久,一定会有至少一人死于车祸。 区别在于,没有正常人会因为这种情况指责 ASF,但出于某些原因,有些人却因为他们的 Steam 帐户出现了相同的问题指控 ASF。 当然我们可以理解这一点,毕竟 ASF 是在 Steam 平台下运作,所以人们自然会因为他们 Steam 帐户财产上发生的任何事而指责 ASF,尽管没有任何证据表明他们运行的软件与此情况有一丝一毫的联系。
ASF 如常见问题和上面提到的问题所述,它没有恶意软件、间谍木马、数据挖掘,以及任何其他用户可能不希望的可疑行为,特别是不会收集您的 Steam 敏感信息,也不会窃取您的数字财产。 如果您遇到了类似的情况,我们只能对您表示遗憾,并建议您联系 Steam 客服,希望他们能够在恢复过程中帮助到您——因为我们对您遇到的事情没有任何责任,并且我们并未违背良心。 如果您不这样认为,这是您的选择,进一步阐述毫无意义,上述资源提供了客观可验证的方式确认我们的声明,如果您仍然不相信,那我们无论写下什么都是一样的效果。
然而,上述内容并不意味着您可以在缺少常识的情况下对 ASF 进行任何操作而不会导致安全问题。 例如,您可能会忽略我们的安全准则,将 ASF 的 IPC 接口暴露到互联网上,如果有人来访问并盗走了您的所有物品,请不要感到惊讶。 人们经常这样做,他们认为如果没有域名或连接指向他们的 IP 地址,就没有人能够找到他们的 ASF 实例。 就在此刻,有成千上万个全自动机器人爬取整个 Web 网络,包括随机 IP 地址,以及搜索可以利用的漏洞,而 ASF 作为一个受欢迎的程序,同样是它们的目标。 我们已经有足够的人因为自己的愚蠢行为被入侵了,所以您应该从他们的错误中吸取教训,而不是加入他们的行列。
您的 PC 安全性也是一样。 是的,PC 上的恶意软件会从每个角度摧毁 ASF 的安全性,因为它可以从 ASF 配置文件或者进程内存中直接读取敏感信息,甚至影响程序做它原本无法做的事情。 不,您从可疑来源获得的最新破解软件并不像某些人说的那样是“误报”,这是入侵接管其他人 PC 最有效的方法,被害人会主动入侵自己,甚至还会乖乖按照提供的指示进行操作,非常“有趣”。
那么使用 ASF 是否完全安全并且没有任何风险? 不,这种说法是不负责任的,因为任何软件都会有安全性问题。 与很多大公司在做的事情正好相反,我们在安全建议方面会尽可能做到透明,一旦我们发现 ASF 可能导致任何从安全角度来看不应发生的情况,即使只是假设的情况,我们也会立刻公开。 例如 CVE-2021-32794 就是这样的情况,即使 ASF 本身没有任何安全缺陷,但这样的错误可能导致用户操作造成意外的缺陷。
截至今日,ASF 尚无已知的、未修复的安全缺陷,并且程序也被越来越多的人使用,其中也包括白帽和黑帽黑客在分析源代码,其整体的可信度只会随时间推移而提升,因为要发现的安全缺陷数量有限,ASF 作为一个首先注重安全性的程序,并不容易被找到这种缺陷。 无论我们最好的愿望如何,我们仍然建议时刻保持冷静,并警惕潜在的安全威胁,包括来自使用 ASF 的威胁。
我们使用与 Debian 非常类似的简易验证方式,以此作为 GitHub Release 的一部分。 在 ASF 的每个官方版本中,除了 zip
构建产物以外,还包括 SHA512SUMS
和 SHA512SUMS.sign
文件。 在下载您所需 zip
文件的同时,也下载这两个文件用于校验。
首先,您应该使用 SHA512SUMS
文件来验证指定 zip
文件 SHA-512
校验和的值与我们的计算相符。 在 Linux 上,您可以使用 sha512sum
工具做这件事。
$ sha512sum -c --ignore-missing SHA512SUMS
ASF-linux-x64.zip: OK
在 Windows 上,我们可以在 Powershell 里实现,但您需要人工确认 SHA512SUMS
。
PS > Get-Content SHA512SUMS | Select-String -Pattern ASF-linux-x64.zip
f605e573cc5e044dd6fadbc44f6643829d11360a2c6e4915b0c0b8f5227bc2a257568a014d3a2c0612fa73907641d0cea455138d2e5a97186a0b417abad45ed9 ASF-linux-x64.zip
PS > Get-FileHash -Algorithm SHA512 -Path ASF-linux-x64.zip
Algorithm Hash Path
--------- ---- ----
SHA512 F605E573CC5E044DD6FADBC44F6643829D11360A2C6E4915B0C0B8F5227BC2A2575... ASF-linux-x64.zip
这样我们就保证了 SHA512SUMS
中记录的内容与实际文件是符合的,这些文件没有被篡改。 然而,这还不能证明您使用的 SHA512SUMS
文件真的来自我们。 为此,我们将使用 SHA512SUMS.sign
文件,里面记录了能证明 SHA512SUMS
真实性的数字 PGP 签名。 我们可以使用 gpg
工具,无论是在 Linux 还是 Windows 上(在 Windows 上需要将 gpg
命令换成 gpg.exe
)。
$ gpg --verify SHA512SUMS.sign SHA512SUMS
gpg: Signature made Mon 02 Aug 2021 00:34:18 CEST
gpg: using EDDSA key 224DA6DB47A3935BDCC3BE17A3D181DF2D554CCF
gpg: Can't check signature: No public key
您可以看到,此文件确实有一个有效的签名,但来源未知。 您需要导入我们用于签名 SHA-512
校验和的 ArchiBot 公钥,来进行完整的验证。
$ curl https://raw.githubusercontent.com/JustArchi-ArchiBot/JustArchi-ArchiBot/main/ArchiBot_public.asc -o ArchiBot_public.asc
$ gpg --import ArchiBot_public.asc
gpg: /home/archi/.gnupg/trustdb.gpg: trustdb created
gpg: key A3D181DF2D554CCF: public key "ArchiBot <ArchiBot@JustArchi.net>" imported
gpg: Total number processed: 1
gpg: imported: 1
最后,您可以再次验证 SHA512SUMS
文件:
$ gpg --verify SHA512SUMS.sign SHA512SUMS
gpg: Signature made Mon 02 Aug 2021 00:34:18 CEST
gpg: using EDDSA key 224DA6DB47A3935BDCC3BE17A3D181DF2D554CCF
gpg: Good signature from "ArchiBot <ArchiBot@JustArchi.net>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 224D A6DB 47A3 935B DCC3 BE17 A3D1 81DF 2D55 4CCF
这次我们验证了 SHA512SUMS.sign
持有我们 224DA6DB47A3935BDCC3BE17A3D181DF2D554CCF
密钥的有效签名,对应您已验证过的 SHA512SUMS
文件。
您可能想知道最后的警告是怎么来的。 您已经成功导入我们的密钥,但尚未决定信任它。 虽然这不是强制性的,但我们也可以说明这一点。 通常,您需要通过另一个沟通渠道(例如电话或短信)来验证此密钥是有效的,然后使用您自己的密钥为其签名来信任。 在此示例中,您可以认为此 Wiki 条目就是“另一个”(非常弱的)渠道,因为原始密钥来自于 ArchiBot 的个人资料。 无论如何,我们假定您有足够的信心认为密钥是可信的。
首先,如果您还没有自己的私钥,则生成一个。 我们在此使用 --quick-gen-key
参数作为一个快速的示例。
$ gpg --batch --passphrase '' --quick-gen-key "$(whoami)"
gpg: /home/archi/.gnupg/trustdb.gpg: trustdb created
gpg: key E4E763905FAD148B marked as ultimately trusted
gpg: directory '/home/archi/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/archi/.gnupg/openpgp-revocs.d/8E5D685F423A584569686675E4E763905FAD148B.rev'
现在您可以使用您自己的密钥为我们的密钥签名,也就是信任它:
$ gpg --sign-key 224DA6DB47A3935BDCC3BE17A3D181DF2D554CCF
pub ed25519/A3D181DF2D554CCF
created: 2021-05-22 expires: never usage: SC
trust: unknown validity: unknown
sub cv25519/E527A892E05B2F38
created: 2021-05-22 expires: never usage: E
[ unknown] (1). ArchiBot <ArchiBot@JustArchi.net>
pub ed25519/A3D181DF2D554CCF
created: 2021-05-22 expires: never usage: SC
trust: unknown validity: unknown
Primary key fingerprint: 224D A6DB 47A3 935B DCC3 BE17 A3D1 81DF 2D55 4CCF
ArchiBot <ArchiBot@JustArchi.net>
Are you sure that you want to sign this key with your
key "archi" (E4E763905FAD148B)
Really sign? (y/N) y
完成信任密钥之后,gpg
应该不会在验证时再显示上面的警告了:
$ gpg --verify SHA512SUMS.sign SHA512SUMS
gpg: Signature made Mon 02 Aug 2021 00:34:18 CEST
gpg: using EDDSA key 224DA6DB47A3935BDCC3BE17A3D181DF2D554CCF
gpg: Good signature from "ArchiBot <ArchiBot@JustArchi.net>" [full]
注意在信任之后,[unknown]
信任状态已经变成 [full]
。
恭喜,您已经验证了您下载的文件没有经过篡改! 👍
喵!我们藏起来的愚人节彩蛋被你发现了喵! 如果您没有设置自定义的 CurrentCulture
,那么 ASF 在 4 月 1 日时将会使用 LOLcat 语言而不是系统语言。 如果您的确希望禁用此行为,您可以直接将 CurrentCulture
改为您要使用的语言。 实际上,您还可以强制启用这个彩蛋,只需要将 CurrentCulture
设置为 qps-Ploc
。