delphij's Chaos

重建了 IPv6 隧道

• Networking

之前 提到我换了一家ISP。这家ISP目前尚未提供IPv6服务,因此想要用IPv6的话就需要自己动手。此前也有一些其他朋友问过我关于为什么一定要有 IPv6,毕竟 狼来了 的故事已经讲了这么多年,而且 十几年前 IPv4 的中央地址池其实就已经用完了,只是在工业界抱残守缺^H^H^H^H食古不化^H^H^H^H我也不知道该管这种行为叫什么,总之苟延残喘了十几年依然没有把服务迁移到 IPv6 上去,所以目前用 IPv6 往往也只是满足一下一些技术宅的恶趣味,例如看 kame.net 那只能动的海龟之类。

当然,我自己用 IPv6 有一些更加现实的动力,比如我的一些服务是只在 IPv6 上提供的,这样做可以把那些做的不好的客户端直接排除在外,有点类似于在当年我把网站的 TLSv1.2 和更早版本的 TLS/SSL 支持全都砍掉一样。

话说回来,由于新的 ISP 出于一些我不理解的原因死活不愿意支持 ping (唯一可能的解释是,这样做会导致扫描起来容易不少,毕竟扫描 IPv4 地址段比扫描 IPv6 地址段要容易太多了,但安全不能建立在别人不知道的基础上,anyway,打电话、开票之后未能解决该问题),而大河的隧道服务又要求必须可以 ping 到终点,于是陷入了死循环。

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

胆囊摘除后记

• Life, Finance

⚠️ 免责声明

本文仅为作者基于个人经历所作的记录与分享,不构成任何形式的医疗建议或专业指导。作者并未接受相关专业培训,且文中所引用或提及的资料仅供参考,作者不对其完整性、准确性或适用性承担任何责任。涉及健康、医疗或相关法规的问题,请务必向具有资质的专业人士咨询。

上回书 说到我在12月初的时候急诊做了胆囊切除。这里更新一下后续的情况(主要是保险理赔)。

作为一个资深的bug吸铁石,我总是会不自觉地触发各种系统的边界条件,这一次也不例外:我之前参加的雇主组织的由安泰(Aetna)负责运营的医疗保险在2021年底到期,取而代之的是由伟彭医疗(Anthem)运营的医疗保险,而这次急诊及手术发生在靠近年底的时候,这想必会让保险的理赔复杂化,果不其然,还没到2021年12月31日的23:59,安泰的手机应用程序已经显示我不能直接用手机应用来查看理赔账单了,而伟彭医疗的应用程序则认为自己不是我目前的保险应用程序。

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

新年,新ISP

• Life

我在美国的这几年,家里一直使用的是来自 Comcast 的各种基于 cable 的互联网服务。关于 cable 的各种问题,多年以前 Extremely Decent 做过一个视频 The First Honest Cable Company 来吐槽。

简而言之,虽然谈不上有多好,但 Comcast 算是在湾区几个能用的 ISP 里比较靠谱的一个了。贵厂十一年前宣布了 Google Fiber,然而由于种种原因我家这片地方一直都没有愿意提供光纤入户服务的 ISP。比较新的小区,例如 yegle 同学所在的幸福屯地区则比较幸运,类似 AT&T Fiber 之类的服务都比较容易获得。

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

摘除了胆囊

• Life

⚠️ 免责声明

本文仅为作者基于个人经历所作的记录与分享,不构成任何形式的医疗建议或专业指导。作者并未接受相关专业培训,且文中所引用或提及的资料仅供参考,作者不对其完整性、准确性或适用性承担任何责任。涉及健康、医疗或相关法规的问题,请务必向具有资质的专业人士咨询。

我于12月6日在 San Jose 的 Regional Medical Center 切除了胆囊,这里记录一下相关的经历,主要的目的是整理一下相关资料,方便给娃讲故事。

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

指定 fetch(3) 的 User-Agent

• Cheatsheets

今天抽时间把邮件系统的软件升级了一下,然后发现无法获得 ClamAV 的源代码:

1
2
3
4
5
===>  License GPLv2 accepted by the user
===>   clamav-0.104.1,1 depends on file: /usr/local/sbin/pkg - found
=> clamav-0.104.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch https://www.clamav.net/downloads/production/clamav-0.104.1.tar.gz
fetch: https://www.clamav.net/downloads/production/clamav-0.104.1.tar.gz: Forbidden

同一个链接用浏览器是能打开的,一看邮件果然已经有人 开过票 了。最近发现不少网站都出于某种原因对 User-Agent 进行了限制,不过既然这是个用户能自行指定的值,这么限制到底意义何在呢?

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

重贷款笔记

• Finance

湾区有个晚间的中文广播电台多年以前经常会播放一个广告:「xx博士算对了!贷款利率又降了!」语调颇为激动,很有一种在拉斯维加斯住酒店时路过赌场,里面老虎机时不时会有人特别激动地嚷嚷一嗓子自己赢了的劲头。

因为我的贷款本金金额已经下降了不少,目测这次很可能是不做套现(cashout refinance)也不搬家的情况下最后一次做重贷款了。之前2013年的经历可以参见 这篇。

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

Let's Encrypt SSL证书失效问题

• Security

Let’s Encrypt 是我目前使用的证书发证机构。早上 yegle 提到了某个bug,于是研究了一下,这里记一笔,算是留个历史见证吧。

发生了什么

在 PKI 证书体系中,信任是通过逐级签名以及对这些签名的验证来实现的。对大部分客户端系统来说,这些系统中会存在一个或多个受信的根证书发证机构的证书,其公钥是通过这些系统本身的更新机制派发的。

根证书发证机构的证书通常是自签名的,更新相对来说比较麻烦(它通常依赖于操作系统的在线或离线更新机制),因此这些证书的私钥事关重大,因此人们通常不希望经常更新它们,因而证书发证机构在绝大多数时候并不会使用这些私钥来签署证书。取而代之的是,他们会创建一些称为中级发证机构的证书用来签署日常的证书,这样根证书的私钥可以采用更为严密的方法来保护,例如可以把它们从网络上彻底断开,而中级发证机构的证书则可以以较高的频率进行密钥轮换,借此来避免其私钥暴露导致的风险。

一个新的发证机构进入市场时,其自签名的根证书往往不会被已经在市场上的客户端系统认可,因此这样一来新的发证机构想要获得用户就必须想办法解决能被用户承认这个问题。一旦获得了一定的知名度并证明了自己的可靠性,这些发证机构便可以遵循一定的流程获得主流浏览器或操作系统的认可,并将自己的根证书也加入到它们的受信根证书列表中了。所以,在起步阶段,新的发证机构往往会要求一些已经存在的根证书去对其根证书进行交叉签署,在客户端验证证书有效性时,由于这些根证书在他们看来是一个经过了受信根证书签名的中级证书而不是一个普通的不受信自签名根证书,因此也就不会给出无法验证证书是否有效的提示,而是能够正确地对其有效性进行验证了。

Let’s Encrypt 在起步阶段正是采用了这种做法。通俗地说,它的中级发证机构的证书被两家根证书机构同时签名,其一是它自己的 ISRG Root,另一个是另一家根证书机构 IdenTrust 的 DST Root X3。初期,由于 DST Root X3已经被许多操作系统和浏览器认证过,因此为其普及起到了非常重要的作用。

UTC 时间 2021年9月29日 19:21:40,DST Root X3 的根证书过期了。这样一来,这一边的信任链便不再成立。

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

去 San Jose DLPC 办了 RealID

• Life

📜 历史文件已不具备现实意义

2023年9月,加州DMV 宣布 由于经费原因关闭了之前广受好评的圣何塞驾照处理中心,其业务已转至附近的其他DMV处理。

在发生 911 恐怖袭击之后,美国国会通过了 2005真实身份法案(Real ID act of 2005),并由时任总统小布什于 2005 年 5 月 11 日签署成为法律 PL 109-13。该法律要求美国各州签发的驾照符合一定联邦规范的驾照,符合这些规范的驾照称为 Real ID,可用于进入联邦政府机构或在美国境内乘坐飞机(TSA属于联邦管辖)。

由于对 DMV 办事效率的恐惧,加上办理 Real ID 驾照必须亲自去一趟 DMV,我一直对办理 Real ID 有些抗拒。去年由于疫情,我就直接在网上更新了驾照。前几天 DMV 发来邮件说我这种情况可以在今年的 12 月 31 日之前去直接升级成 Real ID,于是研究了一下相关流程,这里记一笔。

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

记录一下之前对 fsck_msdosfs(8) 的改进

• Development

疫情之前,娃在周末会去某个才艺班,上课的时间我觉得实在是比较无聊,于是就带上笔记本坐在星巴克做一些较小规模的代码清理工作。最终,我利用这些碎块化的时间完成了对 FreeBSD 的 fsck_msdosfs(8) 的核心代码的算法进行了改进,使其需要的内存用量变成了原先的 11281 \over 128,这里稍微记一下当时的一些思路。

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

线上重做 FreeBSD GPT 引导分区

• Kernel

记一笔。

我现在这台服务器已经用了蛮久(超过10年)了,刚刚安装的时候还是 FreeBSD 8.1 RC,一路升级到 FreeBSD 12.2。前段时间因为工作比较忙,一直没顾上把它升级到 FreeBSD 13.0,今天总算是找了点时间来做升级。

总体上这次升级比预想的还要平稳一些,由于 FreeBSD 13.0 和 12.2 的内核接口变化不大,因此我也没按照正规的做法,即升级内核、重启第一次、etcupdate、installworld,重启第二次、delete-old/delete-old-libs,而是在 installkernel之后直接做了 etcupdate 和 installworld。

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