栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2011年5月15日 星期日

天空 @ 20110515120558

  對地球人有害的編程話題。
  最近再整理了一下「天空」的設計,越搞越複雜。

  我弄這東東的目的,是讓一些最普通的用家(簡易),也能夠在最安全保密的環境下(安全),做一些類似社交網站那樣的資訊分享活動(功能)。但我發現這三者之間存在著極大的矛盾。
  例如一般的社交網站,都有朋友介紹/搜索的功能。如果 A 君有兩位朋友 B/C,B/C 都有朋友 D,那麼這位 A 很大機會是 D 的朋友。然而,這種功能本身就不安全,因為這網上的 D,可能是偽冒的 D。即使你相信 B/C 的人格,但 B/C 也未必有足夠的保安意識(簡易的考量)去驗証 D 的真確性。梅菲定律,B/C 可能也是偽冒 D 的受害者。
  在偽冒身份的問題上,其中一個常見但不安全的方法,是建立一套中央 ID 系統。一些大機構例如 Facebook 或政府,都會對每個人發一個獨一無二的 ID。這個功能看似非常有效,但實際上卻使這些 ID 機構,都可以隨時偽冒任何人的身份。而我亦不希望我這個系統,會存在這種角色。
  在現今資訊科技保安的技術,要做到防偽冒的功能,最常見的做法,是使用公開密鑰加密數位簽章。這種做法雖然不會涉及任何第三者,但通訊者雙方都要先在現實中面對面交換密鑰一次,才可以做無限次的通訊。雖然非常安全,但要求雙方先面對面交流密鑰,卻窒息了很多社交網站功能的可能性。

  最近終於做出了取捨。先是建立一個安全的框架,然後再以不侵犯安全的原則下,嘗試令它有更多功能和更簡易。結果這東西還未成社交工具,卻越來越似諜報工具。
  以下簡單描述一下現時的框架設計。


  上圖只是提及加密的結構,而簽章/過濾和大量儲存的過程則被省略掉。如欲深入了解,可以試試挑戰捶肩劵
  當使用者發訊時,先用一個短暫運行的 Agent 程式,把訊息加密。然後再交給長時間運作的 Daemon,把訊息發送出去。而收訊方的 Daemon 會先把加密的訊息暫存,待收信人出現才會用 Agent 進行解密。在這個設計下,所有 Daemon 都不需要任何使用者的私鑰。只要把所有 Daemon 和 Agent 停止,即使電腦被搬走,也得不到任何資料。

  剛剛想到的一個新問題。
  例如,很多很多年之前,李白因思鄉而作了一首詩,到最後加上了數位簽章:「床前明月光--李白」。
  現在,栗子屁股發癢,抄了別人的詩,再用自己的簽名:「床前明月光--栗子」。然後再招搖撞騙說那是自己的創作。
  基本上,沒有任何數位証據,証明誰是原創。
  所謂誰是原創的問題,最簡單的判定,是時間的次序。那麼,李白就找天文台,為創作的時間加數位簽章:「床前明月光--李白--某年某月某日」。
  然後栗子買通了天文台,又胡亂搞了個數位簽章:「床前明月光--栗子--某年某月某日減一」。問題還是沒有被解決。
  有甚麼方法可以為一件事物的出現時間做認証?碳十二?那已經不是數位可以做的事了。

1 則留言:

方潤 提到...

你想講碳十四吧﹖