LINE可以算是台灣最主流的即時通訊軟體,不管是好友聊天至工作聯絡、還是商家與品牌行銷,幾乎可以說是完全充斥著台灣人的生活。而此類社交通訊軟體,大量的文字、訊息、檔案之間,必然存在著不少「不想讓人窺探的隱私」,或者是「不能讓人取得的機敏資訊」。所以對於LINE公司來說,守護好使用者們的『隱私』與『安全』就會是個相當重要的議題。
本篇文章算是隨手筆記一些LINE的安全介紹,主要還是從LEGY說起。資源主要從LINE官方部落與網站取得,還有一些則是取自於網路新聞,來源都會留下連結,要了解詳細內容可以點擊連結查看。
LEGY(Line Event Gateway)
圖片來源:LINE安全介紹
最先前看到介紹LEGY,是看到iThome的新聞報導2016年的駭客年會:
Line內部資安架構大公開,關鍵事件路由LEGY全公司只讓3人懂
這邊摘要一下新聞中該議程的內容。LINE可以在不同的裝置平台上使用,所以使用者可能存在許多相異裝置系統,包含Android、iOS,以及桌機版等。而對於LINE的伺服器來說,在後端則必須透過不同的系統元件,處理使用者傳送訊息的需求,例如Talk Server、Timeline、認證模組等元件。而介於使用者於後段系統間,就是透過LEGY(Line Event Gateway或 Line Event Delivery Gateway),來串接系統後端的應用程式服務。
更簡單來說,也就是使用者(Client端),都是透過LEGY協定來與後端(Server端)許多的應用程式服務串接。根據官方部落格文章說明:為了確保傳輸的效率與安全,LEGY協定根據通訊軟體的特性修改了部分SPDY的功能來降低網路傳輸的延遲,透過LEGY協定,LINE可以將訊息都放置於加密的TCP通道中傳輸而不會因為加密而犧牲太多的通訊品質。
所以我們知道LEGY可以保有傳輸的效率與安全性。也可以看得出LEGY算是一個SPDY的LINE自家魔改版本。這個其實在更早期的新聞當中也有提到過,關於相關新聞與SPDY可以參考下面連結跟摘要。
新聞:天天170億筆訊息傳送無阻礙,Line靠SPDY撐爆量訊息
Line改用SPDY通訊協定的過程可分兩階段,第一階段先拿開源的SPDY程式庫來使用,之後發現速度仍不夠快,因此第二階段,Line總部工程師再去學了Erlang語言,用Erlang語言來改寫SPDY。Erlang語言由瑞典電信公司愛立信提出,Line自行開發API閘道伺服器來支援SPDY,並以Erlang語言改寫,稱做LEGY(Line Event-delivery Gateway)。
SPDY修改了HTTP的傳輸方式,主要特點是可以多工處理(Multiplexing)、判斷請求的優先順序,並將HTTP的標頭(Header)壓縮,大幅提升速度與效能。
SPDY(發音如英語:speedy),一種開放的網路傳輸協定,由Google開發,用來傳送網頁內容。基於傳輸控制協定(TCP)的應用層協定。SPDY也就是HTTP/2的前身。設計SPDY的目的在於降低網頁的載入時間。通過優先級和多路復用,SPDY使得只需要建立一個TCP連接即可傳送網頁內容及圖片等資源。SPDY中廣泛應用了TLS加密,傳輸內容也均以gzip或DEFLATE格式壓縮(與HTTP不同,HTTP的頭部並不會被壓縮)。另外,除了像HTTP的網頁伺服器被動的等待瀏覽器發起請求外,SPDY的網頁伺服器還可以主動推播內容。
Letter Sealing
除了LEGY以外,另一個加密傳輸的重點則是點對點加密(End-to-End Encryption, E2EE)。在LINE當中的實作被稱為「Letter Sealing(訊息保護)」功能。Letter Sealing可以讓每個使用者擁有自己專屬的加密金鑰,確保通訊的安全性。更白話的來說,Letter Sealing的訊息,在傳送前就會在LINE的客戶端,也就是使用者的手機上進行加密,且LINE伺服器端無法解密。(備註:官方還是有寫到會有一些例外情況,例如你的訊息被收訊的人檢舉,就會傳送至伺服器檢查)
加密演算法的部分,金鑰交換使用的為橢圓曲線加密 Elliptic Curve Diffie-Hellman (ECDH),而非RSA加密演算法。訊息傳輸加密使用 AES-CBC-256。並且與SSL/TLS相同,有使用 Message Authentication Code (MAC) 機制,一旦訊息的接收者收到訊息,可以透過與 MAC 值進行比較,以確認訊息內容是否有遭受到任何篡改或損毀。整體流程示意如上圖。
Letter Sealing的功能目前是預設啟用的,在一對一、還有50人以下的情況中都會自動使用此功能。關於更多詳細資訊可以看上面提到的LINE安全介紹,或是以下的LINE官方文件
LINE 加密技術報告 (Encryption Report)
小結
通訊軟體的隱私與安全性問題牽涉廣泛,前面提到2016駭客年會,Nikolay Elenkov揭露Line內部的資安架構。他也有提到,當時平臺所著重的資安議題總共有四大項:
- Line架構安全性
- 通訊傳輸
- 訊息及網路通話安全
- 裝置安全
其實這篇文章隨手筆記也只有寫到傳輸加密的部分,頂多也就是涵蓋「通訊傳輸」及「訊息及網路通話安全」。並且在LINE當中的安全機制與加密方式,也不是這麼單純二分法不是LEGY就是Letter Sealing,其實仍然還有不同加密方式。並且牽扯到不同的訊息類型(如文字、圖片、影片、檔案),處理方式也都會有所差異。
然後以上的一些新聞還有來源,不少都是好幾年前的了。現在科技日新月異,新技術成長快速,也不清楚LINE的安全機制變化如何,如果是真想了解最新與正確的LINE技術細節,還是要到LINE官方文件確認才行。
最後最後就是,這篇主要還是隨手筆記一下,內容正確性不負責XD
您好,因為家人遭到line群組詐騙,後來找資料的時候有看到您這一篇題到Letter Sealing安全金鑰的部分,我發現在安全金鑰的頁面裡每個使用者都有配到一組固定的英數混合字串有點類似ip的感覺,請問是否能假設1) 此英數字串是否固定配對給同一帳號或同一電話號碼之使用者 2) 此英數字串回溯使用者進而找出更多使用者資料 。謝謝您
詐騙部分的話其實比較像是另一回事了
但如果有關於LINE安全機制問題的話建議可以直接問LINE官方,他們內部的安全團隊會給出更好的回應的