科技愛好者週刊(第 262 期):告別密碼

阮一峰發表於2023-07-14

這裡記錄每週值得分享的科技內容,週五釋出。

本雜誌開源,歡迎投稿。另有《誰在招人》服務,釋出程式設計師招聘資訊。合作請郵件聯絡[email protected])。

封面圖

你以為這是一群羊在草原上吃草。錯了,這是智利阿塔卡馬沙漠的陣列望遠鏡,一共66臺天線,大部分直徑12米,高度15米。(via

告別密碼

上網體驗最差的環節,肯定是密碼。

網際網路發展了20多年,所有環節都巨大改善,只有密碼除外,還是20年前的用法。

更準確的說,它的使用者體驗比20年前更差了。密碼的強度要求現在越來越高,一般不能少於8個字元,還要包括特殊符號。另外,除了密碼,通常還有其他驗證(簡訊、圖片識別、OTP 時間碼等等)。

最讓人無語的是,即使變得如此麻煩,依然不能杜絕密碼被盜、被破解、被釣魚的風險。

多年來,業界一直努力,試圖解決密碼問題。近兩年終於有了突破,各大公司達成一致,設計出了一套密碼的替代方案:金鑰登陸,英文叫做 Passkey

Passkey 這個方案可以做到,登入不需要密碼,解決了上面提到的所有問題,而且使用者很容易上手,主要廠商已經全部支援。

2022年 WWDC 大會,蘋果宣佈支援 Passkey。

2023年5月,谷歌微軟同時宣佈,全面接入 Passkey。

今天,我就簡單講講,Passkey 到底怎麼回事。

其實,手機 App 早就做到了"無密碼登入",按一下指紋,或者人臉識別,就可以登入,完全不需要密碼。

於是,很早就有人想到了,可以設計一套通用機制,讓網站也去呼叫手機上面的硬體識別,從而徹底告別密碼。這就是 Passkey 的由來。

具體來說,Passkey 之所以不要密碼,因為採用了金鑰登入。網站不再儲存使用者密碼,而是儲存使用者的公鑰。登入時,使用者必須用自己的私鑰,解開公鑰加密的隨機數,從而確認身份。

這也意味著,使用者要自己儲存私鑰。這是很麻煩的事情,因此 Passkey 協議的重點,就在於金鑰的生成和保管徹底自動化了。

Passkey 要求使用者必須配備一個"身份管理器"(通常由作業系統提供),這個"身份管理器"負責生成金鑰,然後公鑰交給網站儲存,私鑰由它自己儲存。

等到使用者登入網站,需要私鑰證明自己身份時,網站就要向使用者選定的"身份管理器"發出請求。這時,"身份管理器"就會呼叫作業系統的指紋識別或者人臉識別,要求使用者完成驗證。如果使用者透過了,"身份管理器"就允許使用者使用儲存在裡面的私鑰。

目前,iOS 和安卓已經支援 Passkey,自帶"身份管理器",有些筆記本(比如 Macbook)也支援。如果是桌上型電腦,沒有任何識別裝置,瀏覽器就會給出二維碼或者藍芽,讓手機代為驗證。

"身份管理器"也可以做成獨立的硬體(比如 Yubikey),這就需要花錢買了。

Passkey 是一個很複雜的協議,上面我說的只是它的核心思路,也不知道說清楚了沒有。但是,對於使用者來說,它是很簡單的,就是按一下指紋,或者掃一下人臉,就登入網站了。至於密碼,忘了它吧。

我預測,再過一兩年,等到這個協議的封裝庫和框架出臺,它就會迅速流行,大大減少密碼的使用。

大家現在可以去Passkeys.io,親身體驗一下無密碼登入,更詳細的細節請參考後面的文章(123)。

科技動態

1、木屑馬桶

一家芬蘭公司推出了木屑馬桶,從座圈到底座,都是木屑做的。

這家公司在木屑中加入樹脂材料,使其完全防水,同時非常牢固。相比陶瓷馬桶,主要好處是環保,可以大量減少二氧化碳排放(因為陶瓷需要燒製),而且很輕。

下一步,該公司會繼續推出木屑洗臉盆和木屑浴缸 。

2、干擾無人車

舊金山市允許無人駕駛計程車上路,你可以用軟體叫車。

美國網友近日發現了一個重大 Bug,根據他釋出的影片,只要把停車錐放在引擎蓋上(下圖),這輛無人駕駛車就會立刻自動停下來,不再行駛,哪怕是在路中央。

這個 Bug 好像不那麼容易修復。這個事件凸顯了無人駕駛的困難,軟體如何判別惡意破壞呢。

3、最熱的一天

美國緬因大學有一個全球氣候模型,根據氣象站、衛星資料、計算機模擬的資料,得到全球每個地點的實時氣溫。

他們發現,7月6日是有紀錄以來最熱的一天,全球平均氣溫達到17.23攝氏度。更糟糕的是,第二名和第三名,分別是今年7月5日和7月4日。

上圖是他們官網的歷年氣溫圖表,那根最粗的黑線就是2023年。從6月開始,黑線就快速上升,遠遠超出過以往任何一年。

另外,根據全球氣溫分佈圖(上圖),可以看到現在的地球,整個低緯度和中緯度都是高溫區,只有高原地區除外,非常觸目驚心。

4、最大的 LED 裝置

拉斯維加斯的威尼斯酒店,最近建了一個球館,非常奇特。

它是全球最大的球形建築,同時也是全球最大的 LED 裝置,高111米,寬516米。

它的外殼都是 LED 螢幕,可以對外播放球形影片,夜晚亮燈,極其奪目。

它的內部則是一個正常的球館,可以舉辦大型體育比賽和演唱會。

這樣的裝置肯定會成為地標,以及遊客的最愛,但同時也是一個高耗能的巨大光汙染。

文章

1、"進化"這個詞正確嗎?(中文)

本文討論一個觀點,"進化"(evolution)這個詞是否應該改成"演化"?因為生物更多是在適應環境,不一定變得進步。

2、我如何創立海外一人 SaSS 公司(中文)

作者講述自己如何一個人將面向海外使用者的 SaSS 服務,註冊成公司。

3、愛奇藝 TV 版如何佔用使用者頻寬(中文)

電視機裝了愛奇藝 TV 版,息屏狀態下,居然在上傳資料,只有拔掉電源才會停止。它預設把使用者機器用作 CDN 節點。

4、全方位對比 Postgres 和 MySQL (2023 版)(中文)

Postgres 和 MySQL 是兩大最主流的關係型資料庫,本文對它們進行全方位的比較。(@milasuperstar 投稿)

5、如何破解滑動驗證碼?(中文)

本文介紹了圖片滑動驗證碼的實現原理和流程分析,以及如何破解。(@niumoo 投稿)

6、最佳化人工智慧生成的二維碼(英文)

作者嘗試讓二維碼,儘可能像人類可以看懂的圖片,同時機器還能掃描。上圖其實是一個二維碼,本文記錄了最佳化過程。(@POKEZHANG 投稿)

7、React 伺服器元件的問題(英文)

React 官方開始推廣伺服器元件,本文作者表示擔憂,這會讓現有的很多寫法都失效。

8、Chrome 支援模組名對映(英文)

Chrome 瀏覽器載入 JS 模組時,需要給出模組的 URL。但是,現在只要指定模組名與 URL 之間的對映,瀏覽器就可以從模組名載入。

9、中國與美國的雲服務競爭(英文)

美國政府正考慮把中國的雲服務商(阿里雲、騰訊雲、華為雲)趕出美國機房。本文分析中美雲服務商在東南亞、拉美和中東的全球競爭。

工具

1、Connect-Web

一個 TypeScript 庫,用於從瀏覽器呼叫 RPC 伺服器,參見介紹文章

2、xBrowserSync

一個瀏覽器的同步外掛,最大特點是跨瀏覽器同步,比如安卓的 Chrome 同步了桌面的 Firefox。

3、I Don't Care About Commit Message

VS Code 外掛,使用 AI 自動生成程式碼提交的 Commit 摘要,你就不必自己寫了。它需要 OpenAI API Key。(@mefengl 投稿)

4、React1s

瀏覽器外掛,本地開發 React 專案時,點選頁面元素,就會跳轉到編輯器的對應元件位置。(@aaamoon 投稿)

5、TGSCAN

開源的 Telegram 搜尋引擎。(@HandelDev 投稿)

6、LeaferJS

一個國產的 Canvas 2D 圖形渲染引擎,追求極致效能。(@leaferjs 投稿)

7、AltTab

這個軟體可以讓 Mac 電腦具備 Windows 的 alt + tab 鍵的功能,方便地切換各個視窗。

8、Rsync time backup

一個命令列工具,類似於蘋果的 Time Machine 備份工具,對檔案和目錄進行增量備份,以後可以恢復到任意時點。它支援跨平臺使用。

9、XState

一個 JS 庫,實現了有限狀態機,設計得很簡潔,可以用來學習有限狀態機。

10、hat-syslog

Linux 系統日誌 Syslog 的圖形操作工具。

資源

1、美國無線電頻譜表

美國政府釋出的無線電頻譜表,視覺化展示美國的所有頻段分配,直接下載 PDF 檔案

2、編寫你自己的 React、ProseMirror 和 Redux(英文)

《紐約時報》技術團隊編寫的培訓教程,指導新人自己實現前端的 React 等基礎庫。

3、StockAI.Trade

基於 ChatGPT 的 AI 選股工具(僅限中國 A 股)。(@yvonuk 投稿)

4、GifCities

上個世紀的 GeoCities 平臺存有海量的 Gif 小動畫。這個網站有所有這些檔案的存檔,並提供搜尋。

5、FlagWaver

這個網頁模擬旗幟飄揚的效果,你可以上傳自己的圖片作為旗幟,然後定製各種引數。

圖片

1、美聯航811航班事故

1989年2月24日,一架波音747執行美聯航811航班,從洛杉磯飛往澳大利亞悉尼,中途在夏威夷停留。

起飛後17分鐘,機組人員聽到一聲巨響,發現前貨艙門被炸飛。

爆炸的力量如此巨大,在機身上撕開了一個大洞,機艙的五排座位都被掀起,上面的9個乘客瞬間就被彈出飛機。

這9名乘客全部喪生。其中有一名乘客坐在走道對面,不屬於爆炸的核心區域(上圖最左側箭頭)。由於他沒有繫上安全帶,是被氣流帶出去的,如果繫了,很可能倖存下來。

下面是機上乘客拍攝的事故發生後的機內景象,氧氣面罩全都落下了,但是裡面沒有氧氣,機內到處都是呼呼的風聲。

機長一瞬間認為死定了,但是後來發現,飛機還能飛行,只是爆炸一側的兩個發動機發生故障了。

機組人員想盡辦法,將飛機重新飛回了夏威夷,在機場平安落地。

事故調查人員一開始認為是炸彈導致的,但後來確定原因是貨艙門的電動鎖有設計失誤,起飛後並未切斷門鎖的馬達電源,導致飛行中貨艙門意外開啟,釀成大禍。

事後,所有波音747的門鎖都更換了設計。並且,原來的外開門改成了內開門,在高空中,由於機內的氣壓大於機外,內開門是無法開啟的。以後就再也沒有發生過類似事故。

文摘

1、有效筆記的三個原則

三個原則可以幫助你有效地記筆記。

(1)筆記必須符合你的思維方式。

做筆記要按照自己的思考方式,不能原封不動地按照老師(或者書本)的講解方式。這樣不僅你寫起來更輕鬆,而且將來回顧筆記的時候,你也更容易理解自己當時的想法。

(2)筆記必須代表你的知識。

筆記不要僅僅複製/貼上他人的話語,而要用自己的語言表達。你不妨標記清楚,哪些地方是已經理解的,哪些地方還沒有理解或者有疑問。

(3)筆記必須可以輕鬆檢索。

為了最大限度利用自己的筆記(其實也是節約自己的時間),它必須可以方便地檢索。你要為每個部分寫一個標題,並且定期整理出一份目錄。

言論

1、

跟大家想的不一樣,程式設計並不需要掌握深刻的思想,而是需要某種程度上記住文件,以便用某些固定詞彙,清晰表達我們的想法。

-- 《程式設計需要知識的廣度》

2、

如果你真的愛護環境,那麼買車的時候,你不是買一輛電動車,而是買一輛舊車,並儘量少用它。

-- 《我喜歡電動車,但覺得被騙了》

3、

如果你在手機上看這部電影,你將永遠不會體驗到它。你認為你已經體驗過了,但事實是沒有。

真是太糟了,你以為在該死的電話機上看電影,算看過電影嗎。去看真實的電影吧。

-- 大衛·林奇,著名的美國電影導演,談有些觀眾在手機上看他的作品

4、

理想的工人是機器人,永不疲倦,永不休息,只要最基本的維護。如果崩潰了,很容易被複制和替換。

你越能夠不休息地工作,越說服自己像機器人一樣工作,你在市場上的就業價值就越大。

-- 《休息不是為了最佳化》

歷史上的本週

網際網路最喜歡的行為模式(2022 #215)

全端 App 的時代(2021 #165)

保護你的 DNA,不要洩漏(2020 #115)

週刊開設"誰在招人"的招聘服務(2019 #65)

贊助商廣告位

歡迎贊助週刊,有意請郵件聯絡([email protected])。

(完)

相關文章