delphij's Chaos

再谈域名注册服务提供商的选择

• Security

近期由于一些众所周知的原因,我做了一系列域名转移的操作。和 2006 年的这篇相比,这些年我也经历了不少域名注册服务提供商,并且积累了不少经验,是时候更新一下了。

域名服务是一项互联网基础服务,它提供了容易被人记忆和识别的在线地址。对于个人和企业来说,拥有自己的域名最大的好处在于能够掌握随时换一家供应商的议价权。集中式的平台,包括 YouTube、Twitter、GitHub,也包括新兴的平台如 TikTok、或是来自中国的小红书、喜马拉雅、B站等等,尽管也都是很好的产品,有些甚至可以为内容作者带来丰厚的回报,但是其上的个人或是企业无法很容易地离开这些平台。依赖这些平台,意味着在它们选择对内容作者采取某些行动,或是退出某项生意的时候,当事人可能没有任何其他选择,而必须在极短的时间内通知自己的受众去其他平台,这有时是很困难甚至不可能的。

对个人来说,邮件服务的运行成本是很高的(这里需要考虑的不仅是服务器本身的成本和运行费用,也包括需要投入的时间精力)。但即使不自己去运行邮件服务,也仍然有许多支持独立域名的邮件服务提供商,例如 Google Workspace、Microsoft 365、Zoho Workplace等等。与单纯使用 Gmail 或 outlook.com 等等相比,拥有独立的域名意味着可以在这些服务之间随时进行转移,而无需逐个通知亲朋好友。

阅读全文… ( 本文约 3727 字,阅读大致需要 8 分钟 )

带 DNSSEC 的域名转移

• Security

DNSSEC 是一组针对 DNS 协议的扩展,其主要目的是为数据的权威性(或者说DNS数据确实来自于有权发布这些数据的人)提供一套验证机制。DNSSEC并不改善私密性,所有的查询依然是明文的。

目前最新的 DNSSEC 最佳实践指南是 BCP 237 (RFC 9364)。值得说明的是,如果没有特别的需要,使用 DNS 服务业者的 DNSSEC 实现可以避免踩很多的坑,尽管这样一来安全方面就完全要仰赖这些业者了,但对普通的域名所有这来说这些服务要比他们自己去架设和管理要可靠不少。本文并不打算深入介绍 DNSSEC 及其部署,而只是关注于在进行域名转移时需要注意的问题,以备我个人未来进行参考。

阅读全文… ( 本文约 2097 字,阅读大致需要 5 分钟 )

关掉了 Google 账户的 passkey

• Security

最近, Google 账户新增了一种叫做 passkey 的登录方式。

传统的采用密码登录的登录方式中,用户需要用某种方式证明自己知道密码,而绝大多数实现中这意味着网站必须保存用户的密码,或是密码的 hash 值(通常是HMAC),这意味着网站如果发生了拖库的情况,有可能会将用户的密码或其 hash 值泄漏出去。此外,用户可能必须输入密码,并将密码通过某种方式传输到服务器上,这样一来在这个过程中便有可能由于本地的木马,或是网站采用的 SSL/TLS 实现的漏洞导致密码泄漏。除此之外,即使用户十分小心地在每一个不同的网站都使用了不同的密码,他们仍然需要担心被「钓鱼」的问题,所谓「钓鱼」是这样一种攻击方式:攻击者架设一个看起来很像是用户希望登录的网站的网站,并诱骗用户输入密码。

阅读全文… ( 本文约 1697 字,阅读大致需要 4 分钟 )

辶囗尺乇从 工尸与凹从

• Shared Chaos

辶囗尺乇从 工尸与凹从 刀囗辶囗尺 与工丅 闩从乇丅丶 匚囗以与乇匚丅乇丅凹尺 闩刀工尸工与匚工以丘 乇辶工丅丶 与乇刀 刀囗 乇工凹与从囗刀 丅乇从尸囗尺 工以匚工刀工刀凹以丅 凹丅 辶闩乃囗尺乇 乇丅 刀囗辶囗尺乇 从闩丘以闩 闩辶工曱凹闩。

阅读全文… ( 本文约 196 字,阅读大致需要 1 分钟 )

C main() 的 exit() 和 return

• Development

这里讨论一个犀利而无用的细节问题。事情的缘起是有人在 GitHub 上提了一个 pull request 要求把许多程序的main() 的终结部分从 exit(X) 改为 return X;,我反对了这一变动。

值得注意的是,在实践上,从 main 中 return 和调用 exit(3) 几乎等效的(此处还是有细微差别,后面将会讨论),原因是 C 运行环境库的启动部分(这部分会在连接过程中嵌入到可执行文件中,FreeBSD 的实现中,这部分位于 lib/libc/csu/libc_start1.c 的 __libc_start1:

1
2
3
4
5
6
7
void
__libc_start1(int argc, char *argv[], char *env[], void (*cleanup)(void),
    int (*mainX)(int, char *[], char *[]))
{
/* ... */
	exit(mainX(argc, argv, env));
}
阅读全文… ( 本文约 967 字,阅读大致需要 2 分钟 )

FreeBSD 14 确定延期

• Development

原定4月25日开始的code slush和KBI冻结并未发生,主要的原因是 OpenSSL 3.0 还未合并,以及 OpenZFS 近期的一些可靠性问题。

其中,OpenSSL 3.0 由于对 API 的改动比较大,因此会导致一些 port 无法正常工作(PR 258413)。近期已经有一批 port 标记为与 OpenSSL 3.x 不兼容,不过修掉这些可能会需要不少时间。

阅读全文… ( 本文约 536 字,阅读大致需要 2 分钟 )

FreeBSD 上的 nginx kTLS 支持

• Security

昨天,FreeBSD 13.2 正式发布了。kTLS 是在 FreeBSD 13.0 中由 Netflix 赞助的新功能,过去,TLS/SSL 应用程序对于通讯内容的加解密通常是在用户态进行的,这样一来,系统在读取出数据和发出数据之前需要进行额外的上下文切换,并在内核和用户地址空间之间来回复制缓冲区来满足加解密的需要。有了 kTLS 之后,内核可以在 sendfile(2) 时直接在内核上下文中完成加密和填充到网络协议栈的操作,从而减少了上下文切换和不必要的复制操作。

阅读全文… ( 本文约 836 字,阅读大致需要 2 分钟 )

Gordon Moore

• Tribute

2023年3月24日,戈登·摩尔(Gordon Moore)在夏威夷的家中逝世,享耆寿94岁。

戈登·摩尔于1929年出生在美国加州旧金山,并在佩斯卡德罗度过了他的童年时光。他的家族是最早一批最早一批定居在加州的英国移民家庭之一。在他家搬去红木城之后不久,邻居家孩子的一套 BGL Chemical Set 让他第一次接触到了化学,这点燃了他对化学的兴趣,并最终让他成为了一位化学家。在圣何塞州立大学学习两年之后,他在加州大学伯克利分校获得了学士学位,并在此后的1954年在加州理工学院获得了物理化学博士学位,接着进入了马里兰州的约翰霍普金斯大学应用物理实验室。

阅读全文… ( 本文约 1281 字,阅读大致需要 3 分钟 )

Google Domain 域名转让备忘

• Life, Cheatsheets

这里记录一下过程备忘。

我在 2011 年注册了一个比较技术宅的 .org 的域名,但一直没有实际投入使用,最近宏观经济形势不太好,所以索性把不用的域名出一批来减少持续的花销,周四终于出现了一位愿意接手的朋友,于是我们找时间做了一次域名转让的操作。

阅读全文… ( 本文约 823 字,阅读大致需要 2 分钟 )