找出並聯絡 AirPods 的失主

從「Did you lose your AirPods? (alexyancey.com)」這邊看到的,原文是「Did you lose your AirPods?」。

如同標題提到的,作者朋友撿到 AirPods,接上 iPhone 後能得到的資訊除了序號以外只有失主的電話末四碼了,不知道怎麼聯絡失主。

接下來作者開始想辦法,先假設失主是在同一個州,這樣電話的區碼 (前三碼) 就會一樣了,中間三碼的排列組合就只剩下 1000 組 (作者寫 999):

I started with the assumption that the owner lived near me in the Portland metropolitan area. With that, I restricted the search to our local area code*. Sure, they could be from out of town, but hey, let's give it a shot.

接著是透過公開的資料庫查有哪些電話號碼是有效,而且屬於行動網路的,這樣就降到 232 組:

Next, I narrowed it down by central office code (commonly called prefix) (those three digits after the area code). Most of Portland’s are assigned, but only 26% to wireless carriers. Also, 000-199 are reserved codes that aren't available for telcos. I lied earlier, sorry.

再接著,既然是 Apple 生態系的,作者決定用 iMessage Lookup API 去掃,這樣就剩下 84 組:

It's a safe bet that the owner has an iPhone with iMessage turned on. We can use this assumption to narrow down the list further by filtering out any non-iMessage phone numbers. I ran a check using this API. (The API is probably used for shady stuff, but my intentions were pure.)

最後是透過 MacBook 直接打 iMessage 出去問,就不用花錢透過簡訊聯絡:

With the list whittled down, I avoided Twilio entirely by using a script on my MacBook to send iMessages in bulk. Now we wait.

最後真的找到失主並且順利還給對方了:

回頭看裡面用到的兩個小技巧 (公開資料庫的查詢與 iMessage 的查詢),有蠻濃厚的 OSINT 味道,還蠻有趣的...

Telegram 的 CEO Pavel Durov 在法國機場被收押

好幾個地方都有報導 Telegram 的 CEO Pavel Durov 在法國的機場被收押的事情,引 Reuters 的好了:「Telegram messaging app CEO Durov arrested in France」。

目前傳言的理由是缺乏管理,允許犯罪行為:

TF1 and BFM both said the investigation was focused on a lack of moderators on Telegram, and that police considered that this situation allowed criminal activity to go on undeterred on the messaging app.

算是剛發生的新聞,接下來幾天應該會有後續的消息...

AWS KMS 支援 ECDH

看到「Announcing AWS KMS Elliptic Curve Diffie-Hellman (ECDH) support」這篇的介紹,AWS KMS 支援 ECDH 了。

AWS 的文件「DeriveSharedSecret」這邊可以看到就是在不將 private key 暴露出來的情況下得到 ECDH 產生的 shared secret:

The private key in your KMS key pair never leaves AWS KMS unencrypted. DeriveSharedSecret returns the raw shared secret.

翻了一下其他兩個雲的 Cloud HSM 類服務,好像沒有看到 ECDH 的,不過如果是實際硬體 HSM 的話,Azure Dedicated HSM 似乎有支援,可以在 FAQ 這邊看到:

Dedicated HSM service provisions Thales Luna 7 HSM appliances.

Cryptography (ECDSA, ECDH, Ed25519, ECIES) with named, user-defined, and Brainpool curves, KCDSA

AWS KMS 畢竟是軟體基底的,要支援什麼演算法可以直接加...

Disney 這兩天的 PR 風暴

幾乎是到處都會看到這個新聞,這邊先提供公視的連結:「民眾在樂園用餐引發過敏身亡 迪士尼引串流平台用戶條款要求駁回求償訴訟」,然後美國 npr 的新聞連結:「Disney wants a wrongful death lawsuit thrown out because the plaintiff had Disney+」。

公視的「結論先講」已經很清楚說明這次的 PR 風暴了:

去(2023)年10月1名醫師在佛州迪士尼之泉一間餐廳用餐時,因餐廳未能照要求提供不含過敏原的餐點,導致嚴重過敏身亡。其丈夫於今年2月向迪士尼與餐廳提出訴訟並求償5萬美元(約新台幣161.4萬元),但迪士尼律師以丈夫過去註冊迪士尼串流服務Disney+免費試用時,便同意以仲裁方式解決針對迪士尼的任何訴訟,要求法院駁回訴訟,改採「仲裁」的方式進行庭外和解。

這東西以前還在交大的時候 (oops,20 年前?) 印象中有聽過科法所的人 (忘記是誰了) 有提過類似的架構,但當時的結論好像是合約的效力未必成立,但確定 PR 鐵定會爆炸,現實中應該不太容易在大公司看到?

不過沒想到居然還是看到了,才想起很久前的這個討論... 不過 Disney 畢竟是西方法務強權,這場仗會怎麼打還不曉得,是有機會會硬打下去...

goo.gl 將在 2025/08/25 停止轉址

堆了一陣子的消息,Google 將在 2025/08/25 停止 goo.gl 轉址服務:「Google URL Shortener links will no longer be available」。

2019 就已經停止新的網址了:「Transitioning Google URL Shortener to Firebase Dynamic Links」,要維持這個服務對 Google 來說不會花太多力氣 (以 Google 的規模來說),但因為這對於賺錢 (尤其是 Ad) 沒有直接與間接幫助,還是被砍掉了...

看了一下 ArchiveTeam 的資料,應該是 URLTeam 這個計畫,看起來 2019 年就有人拉了一包了。

不過好像不太好找,他們應該是丟到 Internet Archive 上,不過 Internet Archive 上面找 goo-gl 看起來有點散?不確定丟上去的邏輯是什麼...

Backblaze 的 2024Q2 硬碟報告

Backblaze 的 2024Q2 硬碟報告有些新的花樣:「Backblaze Drive Stats for Q2 2024」。

先大概掃一下文字的部分,可以看到 HGST 這邊的 HUH721212ALN604 有狀況,用季計算的 AFR 偏高 (但還沒高到觸發到整個生命週期的 AFR 值):

An HGST surprise: Over the years, the HGST drive models we have used performed very well. So, when the 12TB HGST (model: HUH721212ALN604) drive showed up with a 7.17% AFR for Q2, it’s news. Such uncharacteristic quarterly failure rates for this model actually go back about a year, although the 7.17% AFR is the largest quarterly value to date. As a result, the lifetime AFR has risen from 0.99% to 1.57% over the last year. While the lifetime AFR is not alarming, we are paying attention to this trend.

比較有趣的是多了幾張圖,用四象限分類可以更清晰的看出不同型號的情況:

另外還有依照時間變化的樣子:

這樣看起來更直覺了,比起之前對表格對半天方便不少,不過少了信賴區間的資訊,要注意硬碟的量...

AWS 的 VPC 可以設定 Private IPv6 address 了

AWSVPC 以前都只能設定 public IPv6 address,現在總算是可以設定 private IPv6 address 了:「AWS announces private IPv6 addressing for VPCs and subnets」,另外一篇講的比較詳細:「Understanding IPv6 addressing on AWS and designing a scalable addressing plan」。

IPv6 address 的熟悉度沒有 IPv4 address 高... 看起來 AWS 所提到的 private 包括了 GUA 與 ULA:

Private IPv6 addresses on AWS can include ULA, which are intended for local communication, and private GUA, which could be globally routable according to protocol definition.

GUA 好像是就是拿 public ip 區段用 (反正 IPv6 區段夠大)?反而是 ULA 這邊用的 fd00::/8 跟以前 IPv4 的 private range 剛好相對應,比較好理解...

OpenAI 現在可以輸出定義的 JSON 了

OpenAI 在「Introducing Structured Outputs in the API」這邊提到目前的 JSON mode 不能保證 schema 的正確性:

While JSON mode improves model reliability for generating valid JSON outputs, it does not guarantee that the model’s response will conform to a particular schema.

而現在新的 model 可以了:

Today we’re introducing Structured Outputs in the API, a new feature designed to ensure model-generated outputs will exactly match JSON Schemas provided by developers.

新的 model 代碼是 gpt-4o-2024-08-06 這組,而且又降價了:

By switching to the new gpt-4o-2024-08-06, developers save 50% on inputs ($2.50/1M input tokens) and 33% on outputs ($10.00/1M output tokens) compared to gpt-4o-2024-05-13.

這個功能可以解掉不少 workaround...