不少Google的產品都使用加密技術來保護用戶資料安全,不過,密碼學實作必須非常的小心,只要有一點疏漏,就可能造成嚴重的後果,Google提到,要理解密碼學學術文件之後,再實作成函式庫並非一件容易的事,多數的開發人員沒有多餘的時間資源進行這項工作。

因此Google為了幫助自家發展加密服務應用,為開發人員提供了安全的跨平臺加密函式庫Tink。而Tink的設計重點特色在於,易用而且難以被誤用。Google提到,Tink中有許多防呆設計,來減少用戶誤用函式庫,像是如果底層加密模式需要nonce,但重複使用nonce反而造成不安全,Tink就不會允許開發者傳遞nonce。

Tink建立在既有的函式庫上,包括BoringSSL和Java Cryptography Architecture,不過,他們在開發Tink的過程,發現了這些函式庫的弱點,因此也順便修補了這些弱點。Tink在介面宣告了例如抵禦選擇密文攻擊等安全屬性,讓安全稽核人員和自動化工具,能快速發現與安全保證不符的安全需求。Tink還為潛在危操作隔離API,使用者無法進行從硬碟載入明文金鑰等行為,Tink提供開發者發現、限制、監控以及紀錄函式庫使用的功能。

另外,Tink還可以結合自訂義的加密方法或是內部金鑰管理系統,以便Tink和其他系統無縫協作,Tink的架構非常靈活,每一個部分都可以被移除或是更換,所有元件都是可組合的,開發者可以選擇並與其他元件組裝,當開發者只需要數位簽章功能,那就可以拿掉對稱金鑰加密元件,能夠最大程度減少應用程式的程式碼大小。

目前Google的AdMob、Google Pay、Google智慧助理、Firebase以及Android搜尋應用等,都已經使用了Tink。Tink經過兩年的發展,來到了1.2版本,支援雲端、Android和iOS各平臺,現在已經在GitHub開源,而且也已經有外部貢獻者參與開發。


Advertisement

更多 iThome相關內容