如何建立一個足夠安全的加密幣錢包及託管機制?

Tiffany SU
Blockcast Lab & Research 區塊客研究室
15 min readAug 12, 2019

通訊博士、白帽駭客、智能合約開發商及熱錢包供應商間的對談。

圖片來源:https://www.azquotes.com/quote/570040

Security is not a product; it itself is a process. And if we’re ever going to make our digital systems secure, we’re going to have to start building processes. — Bruce Schenier

Bruce Schneier 國際知名密碼學家、資安技術專家與作家,被《經濟學人》譽為 「Security Guru」資安大師,他同時也是 IBM 資安事業部特別顧問。這位資安大師告訴我們:只有技術並沒辦法完全解決資安問題,而是要從建構流程開始。

加密幣錢包因保管的是使用者的數位資產,這個錢包對使用者來說可以是一個用來作為小額支付的零錢包,也可以是保管他大部分資產的保險庫,除了在使用者體驗及便利性上需要不斷的被改善外,資訊安全控管也是加密幣錢包及託管商需要積極加強之處。

由「區塊客研究室」舉辦的「錢包及託管機制技術小聚」於 7/31 下午在 MaiCoin HQ 場地順利完成,現場邀請到區塊鏈技術研發公司 AMIS 科學家陳昶吾博士、區塊鏈錢包安全產品設計商 CYBAVO 聯合創辦人暨 CTO Tim、Pelith 創辦人暨 CEO 陳品及 Dapp Pocket 創辦人陳柏安來現場分享錢包加密技術及 MPC 加密,現場將近百位參與者,其中學生及技術開發者各佔 3 成,而創業家、PM 、業務及行銷、非區塊鏈工作者則各佔 1 成,顯示開發及非開發者都非常關注錢包安全議題。

AMIS 科學家 — 陳昶吾博士

首先由 AMIS 科學家陳昶吾博士來介紹 AMIS 目前正在開發的 MPC (Multi-Party Computation, 多方計算) 技術。陳昶吾博士表示,加密幣交易所要維持足夠的信譽才能讓使用者願意在此交易,而交易所需保管的資產數量很龐大,容易成為黑客盜竊的目標,因此資訊安全的控管非常重要。

他們的目標是要達到如同金融業的高標準,同時要防範竊盜以及加密幣本身的弱點下,建立一個軟體錢包擁有如同硬體錢包般的全天候安全等級。希望在兼顧「安全」、「使用者自主權」以及「使用者體驗方便性」中協調出最好的平衡點。

陳昶吾博士循序漸進的介紹了一些交易簽章方式及加密技術:

Multisig transaction (m-of-n):需要在 n 個簽章中拿到 m 個 的簽章才能執行交易,因為簽章量較多、資料變大而交易速度變慢且手續費變高。而從交易結果可以查詢到簽章持有者而有可能回推出交易對象也會影響到隱私。

Multi signature Wallet Contract:在智能合約上寫上多簽函數,此智能合約必須經過嚴格的合約審核,若寫出有漏洞的智能合約時,就算設計的簽章驗證流程再安全也沒用,也因此每次在智能合約加一個新功能都要重新做合約審查,讓功能變動較不彈性。而每個簽章者的動作都會發生在鏈上,手續費也會提高。另外有些交易所不支援來自智能合約的交易,所以有時並沒辦法使用。

Threshold Key Sharing:與其產生好幾個簽章,Threshold Key Sharing 是將一把私鑰切成好幾份,每個持有者拿到的是私鑰的一部分,像是拿到拼圖 (Share) 的一部分,湊齊指定的人數才可以完成一把私鑰,並只會產生一個簽名,所以減少手續費,並且因為不會從交易結果內回推查詢到持有者,可以增加隱私性。但缺點是當其中一位持有者拿到全部的拼圖,他可以偷偷記錄下來並且在之後使用,若遇到不誠實的持有者則會有安全問題。

Threshold Signature:門檻式簽章協定,這裏沒有私鑰的產生,將每個持有者的拼圖拼在一起就會直接完成一個簽名,而且每次的拼圖都會變換,就算其中一個拼圖被盜也不會影響到安全性。

Secret Sharing:任何想要切分的東西,例如私鑰、簽章、亂數值等,都可以用 Secret Sharing 切分成不同塊給不同的持有者。

他們藉由 MPC 的密碼學技術,可以達到不只是透過一把私鑰就來產生一個簽章,而是透過設立門檻 (Threshold) 的方式,當收集到足夠多的拼圖 (Shares) 才能產生簽章,進而對交易進行確認。

AMIS 用 Hierarchical Secret Sharing 的方式將簽章切分成不同的拼圖 (Shares) 給不同的持有者,並考慮組織垂直的階層性,透過設計不同 level 的拼圖 (Shares) 來實現 Accountable Threshold Signature 的方式,以達到「咎責」的目的,才能因應洗錢防制法或是其他法規,以合法合規為目標以達到主管機關的要求。

以下分享由 MaiCoin 錄製的這段陳昶吾博士演講影片:

接著由 CYBAVO 的聯合創辦人暨 CTO,同時也是台灣資安技術社群 CHROOT 創辦人、台灣駭客年會 HITCON 創辦人、BitoEX & BitoPro 資安長的 Tim Hsu 從駭客的觀點,來給予大家對區塊鏈安全一些不同的觀點。

CYBAVO 的聯合創辦人暨 CTO — Tim

首先 Tim 介紹了一些國際組織推出的漏洞通報平台,其中最知名的就屬由 MITRE 公司所管理的 CVE (Common Vulnerabilities and Exposures),他是一個與資訊安全有關的資料庫,收集各種資安弱點及漏洞並給予編號以便於公眾查閱,根據其資料庫內容顯示從 2012 年到現在 Bitcoin CVE 的漏洞數量已達到 38 個。

而另外也有一些有償的漏洞通報平台,像是專門代管各種抓漏專案的 HackerOne,他們提出的公開漏洞獎勵計畫讓想要賺錢的白帽駭客可以透過其平台回報幫助企業變得更安全,同時又可以獲得獎勵。從其網站上可見關於 EOS 的漏洞獎勵計劃 (EOS Bug Bounty) 目前已達到 91 個通報案件。

除了各種公開及有償的漏洞通報平台,還有很多是私底下回報並被企業或是組織默默被修補的漏洞。這些漏洞可能只是一個非常不起眼的 Bug,像是 EOS 節點過去曾因為一行程式碼有誤,而被駭客發現進而進行攻擊。

除了企業及組織遇到的資安問題外,對於一般使用者會遇到的駭客攻擊,可能是駭客透過攔截 DNS (網域名稱系統) 將使用者引導到假的錢包網站;也有網站提供免費的 Online Paper Wallet,幫使用者將私鑰密碼轉換成 QR Code 而可以列印下來保存,但是在轉換的過程中網站其實已經將私鑰記錄下來,讓使用者在不知不覺當中被駭。而硬體錢包則會因為使用上比較困難、助記詞記錯、或是不小心將助記詞曝光等原因讓自己錢包內的加密幣遺失,甚至硬體錢包本身的安全性也可能因為版本更新或是其他問題而受影響。所以對於一般沒有太多資安觀念的使用者來說不管軟體或硬體錢包都會有一定的風險。

因此 CYBAVO 想要提供一個同時具有冷錢包安全性跟熱錢包便利性的產品,以密碼學為出發點解決區塊鏈安全問題,同時也注重整體的安全性及身份認證。

CYBAVO 透過 Shared Responsibility and Risk Model 將保管私鑰的責任分散在三個地方,讓使用者、交易所以及 CYBAVO 分別保管。使用者在手機上認證App 並綁定,第一次登入之後系統會要求使用者做備份,備份的方式是將助記詞加密成一備份檔,因此使用者並不需要記住自己的私鑰跟助記詞,只需將備份檔歸回到 CYBAVO 的系統,所有的私鑰跟 Pin code 就能回復。

Tim 也呼應陳昶吾博士提到的,一般的「多重簽名」特性是每個持有者的身份跟權利是相同的,而且沒有一個固定的先後順序,難以做流程化的管理。CYBAVO 他們希望可做到多方角色的核准機制,達到像一般公司組織上會有垂直角色權限的差異來增加安全性。

他們從最底層的作業系統開始檢視,以假設任何一個系統都有可能被駭客入侵的前提來內建各種系統規則,當系統內執行駭客植入的任何跟原訂內建規則不一樣的軟體,都會被觸發通知有惡意攻擊。並且選用各種較為成熟的演算法 (RSA4096, AES256 以及 ECC 等) 來建立風險控管模型。另外因為不同區塊鏈上的多簽機制都不一樣,因此 CYBAVO 從密碼學的角度來建立多簽機制,而不是用程式碼或是資料庫來解決多簽的問題,因此駭客無法透過攻擊資料庫跟程式碼來做攻擊。

圓桌論壇與談人。左起:區塊客創辦人 Kevin、AMIS 科學家陳昶吾博士、區塊鏈錢包安全產品設計商 CYBAVO 聯合創辦人暨 CTO Tim、Pelith 創辦人暨 CEO 陳品、Dapp Pocket 創辦人陳柏安。

在兩位主講主題之後進行到圓桌論壇及現場 Q&A 時間,圓桌論壇中主持人 Kevin 及台下觀眾向與談人陳昶吾、Tim、陳品及陳柏安提了幾個問題加以討論,以下整理部分精彩內容:

Q1:各位對於使用者使用錢包的建議?

陳柏安提出的第一個建議是不要放太多的錢在軟體錢包,而是建議將加密幣分散在不同的地方存放,例如同時在交易所、冷錢包及軟體錢包都各方一些,而且一定要記得在更換手機前做備份,像是 Dapp Pocket 因為安全考量並沒有儲存使用者的註記詞或私鑰,所以使用者需要自己注意。而有些使用者會將助記詞記在手機的記事本,這其實就是將助記詞儲存在雲端上,其實還是不夠安全。另外他也覺得託管是未來趨勢,託管商保存驗證碼的方式較安全、能夠做備份、也比較能創造出好的使用者體驗,例如當私鑰安全的儲存在雲端時,使用者甚至不需要下載軟體錢包也可以做使用,因此這種第三方雲端錢包的廠商已經越來越多了。

陳品表示使用者的加密幣儲存工具的安全性應該和他擁有的加密幣資產成一等比例關係,並舉了兩個例子來解釋:第一個例子是過去曾經服務過一位客戶是使用相對不安全的瀏覽器錢包 Metamask 儲存了約 1 百萬美金的加密幣,陳品知道後即建議他盡快更換錢包;而另一個例子則是朋友在購買 0.5 個 ETH 之後想購買硬體錢包儲存他的加密幣,但這就像在一個大保險箱中放入 200 元台幣一樣不敷成本。需保管物品的價格高低應會決定使用者要花多少錢在追求安全上,像他本人在保管自己的加密資產所願意花費的費用,會和保管公司資產的程度上有落差。

Tim 也同意不要把雞蛋放在同一個籃子裡,分散儲存資金的地方是比較好的方式,但從資安的角度來看,建議大家不要把所有的密碼都放在同一個檔案中,若是密碼太多可以使用密碼管理軟體,但不要放在 Google Drive 等雲端伺服器上或是抄寫在太容易被其他人看到的地方。

陳昶吾表示可以挑選最多兩個適合自己的錢包,因為太多的錢包會增加使用者的管理成本,增加更多錯誤的機會跟使用者的麻煩。因此他建議找用起來順手的 Open Source 錢包即可。

Kevin 也呼應了一開始陳昶吾引用的「如果你覺得科技可以解決所有問題,那你就不瞭解科技」,並表示剛開始成立區塊客的時候,曾收過讀者將自己的私鑰寄來詢問該怎麼使用,顯示出使用者的觀念更是影響安全性的關鍵,很高興在兩年後的現在已經沒有使用者會將私鑰寄來公司信箱了,代表台灣在區塊鏈觀念推廣上已有一些成效。

Q2:在管理自己個人錢包的私鑰或是助記詞是怎麼保管的?建議用哪種方式?

陳昶吾表示自己主要是放在交易所,他覺得託管服務是未來很重要的服務,像是以前企業會自己架設 Email Server ,但現在大部分公司都是使用 Gmail。除了冷熱錢包之外,有些一次性的交易他可以自己將簽名算出來,因而可以在不知道私鑰的狀況下也可以完成當次的交易。另外他也提到中文助記詞的概念,使用者用自己熟悉的語言將更能幫助背誦 (例如:https://iancoleman.io/bip39/)。陳柏安表示自己會使用很多組不同的助記詞放在不同地方,以分散風險。

陳品表示在管理自己的資產上,有時候在情急下還是會做出一些為了方便而不符合資安點的行為,不過目前為止都還沒有被盜。Tim 則表示因為自己很熟悉 Linux 系統,再加上有其他加密的備份機制,所以自己的做法比較不適合一般人使用。

Q3:Facebook 的 Calibra 夠安全嗎?他們也說以後可以開放其他錢包跟 Calibra 一起競爭你們怎麼看?

陳昶吾表示並未研究 Calibra 的技術,但是設計上需要一把私鑰來簽名,都一定會要做到私鑰的管理。頂多就是簽章的演算法用不一樣的機制。

Kevin 表示目前錢包和技術文件未推出,而唯一看的到的白皮書,內容也隨時可能改變,因此目前並沒辦法做太多討論。

Q4:MPC 目前的應用還很小,但是的確是個劃時代的改變,請問 MPC 可以改變世界到什麼程度?除了錢包,還有什麼應用場景可以帶給用戶更好的體驗?

陳昶吾表示 MPC 的目的就是把風險分散,將想要保存的數值分散保存,再透過多方計算算出來,好處就是可以做回復,當有一方保存的拼圖掉了,還是有其他人可以去還原,以及當群組有內賊時,可以在一開始設計上建立門檻,例如設定大於 2n +1 的持有者是誠實的就可以執行交易。MPC 這個技術已經出現 10 幾 20 年了,但是一直沒有在實際面上被運用,代表在實際面上有些天生的缺陷,像是多方計算的設計,若使用者沒有同時在線就很難把他拼圖拼出來,但因為企業場景是需要全天候的服務客戶,所以一定會隨時在線,這樣的特性並不會影響到企業場景,而對於個人用戶就會將它視為一個問題。未來也是期待有更多 MPC 的發展。

Tim 表示 MPC 在目前區塊鏈私鑰管理面是一個很好的解決方案,但是在系統安全面向來看,多方節點的機器是否夠安全?雖然分散在不同的節點,但是駭客可能入侵不只一個節點,或是在輸入或輸出的資料進行攔截,在系統面來說,駭客可能不需要了解這個處理資料的黑盒子,只要會利用這個黑盒子就可以進行竊盜,所以需要從整個系統去看完善的資安技術。另外就是法律遵循面的推廣,因為法規規定銀行的硬體加密都要用HSM,所以現在銀行都需要用 HSM 的硬體為主;若是將來法規規定加密幣的管理需要用 MPC,則在推廣上就不會是問題。

陳品目前大家討論到 MPC 都比較在認為是一個原生的 Key Pair,帳號分成 Contract wallet 以及 External owner account 兩種,而 MPC 的好處是可以兼容任何的狀況並不用做太多的修改,並覺得 Contract 才是未來主流的趨勢,而且 Contract Wallet 允許在密碼學的選擇上更多元,要選擇用 RSA 或是某種抗量子的演算法都可以,因此 MPC 是一個趨勢沒錯,並且可以朝軟體層級多方合作的方向發展。

Q5:MPC 的私鑰簽章,對使用者體驗上有什麼不同?目前哪些交易所跟托管機構有在用 MPC?MAX 目前有在用嗎?

陳昶吾表示和一般的錢包基本上沒有什麼不同,但是可以多一個機制,就是核准的流程,交易金額中如果超過帳戶使用者的權限,則會被擋下來。現在 MAX 交易所已經有些地方採用 MPC 架構。在比特幣出現之後,開始有一些論文在討論 MPC 的應用,每個階段的討論都將 MPC 改善許多,MAX 先採取比較保守且成熟並且認可是安全的 MPC 技術運用,目前有其他 MPC 技術的 PoC,但會等驗證及稽核之後才會考慮再採用。

想知道接下來區塊客研究室還要推出什麼活動?

區塊客研究室 8 月活動「DWeb 與數據隱私 技術小聚」

7 月底,閒散又知性的 DWeb Camp (https://dwebcamp.org) 在洛杉磯的濱海小鎮舉辦,吸引了一批頂尖開發者與藝術家分享關於 Web 3.0 的想法,其中不乏大師級的人物,例如網際網路的發明者 Tim Berners-Lee 。Dimension 團隊的技術長劉懌斯受邀參與了這場盛會,並給出一場關於分散式身份認證的講座。這次區塊客研究室很高興邀請到劉懌斯,他將會在這次活動中分享 DWeb Camp 的迷人之處。

保護臉書上訊息隱私的插件 Maskbook 逐漸受到大眾的注意,提供不想離開臉書又擔心數據外洩的用戶一個新選擇。開發這款熱門工具的便是 Dimension 團隊。團隊執行長 Suji 將會向聽眾談談關於數據隱私、DID ,特別是 Maskbook 的開發故事。

最後,備受期待的 Panel 討論會中,區塊客研究室還邀請到區塊勢創辦人許明恩與 Unitychain 研究者邱駿加入對談,和聽眾一起閒聊 DWeb 的有趣話題。

報名網址:https://www.accupass.com/event/1908130908271292063233

用力地鼓掌拍很多下手和把文章分享出去,會是對一位文字梳理者,最大的鼓勵和寫下一篇文章的最大動力!

1 ~ 10 下 我看了。
11 ~ 30下 我喜歡。
31 ~ 50下 希望可以寫更多這類型的文章。

--

--

Tiffany SU
Blockcast Lab & Research 區塊客研究室

“Try to change the world by spreading and amplifying the knowledge of innovators.” Love: Dancing, exploring lands & new ideas. Hate: Alcohol and fizzy drinks.