LINE安全機制:LEGY與Letter Sealing

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

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)

LINE Encryption Report

小結

通訊軟體的隱私與安全性問題牽涉廣泛,前面提到2016駭客年會,Nikolay Elenkov揭露Line內部的資安架構。他也有提到,當時平臺所著重的資安議題總共有四大項:

  • Line架構安全性
  • 通訊傳輸
  • 訊息及網路通話安全
  • 裝置安全

其實這篇文章隨手筆記也只有寫到傳輸加密的部分,頂多也就是涵蓋「通訊傳輸」及「訊息及網路通話安全」。並且在LINE當中的安全機制與加密方式,也不是這麼單純二分法不是LEGY就是Letter Sealing,其實仍然還有不同加密方式。並且牽扯到不同的訊息類型(如文字、圖片、影片、檔案),處理方式也都會有所差異。

然後以上的一些新聞還有來源,不少都是好幾年前的了。現在科技日新月異,新技術成長快速,也不清楚LINE的安全機制變化如何,如果是真想了解最新與正確的LINE技術細節,還是要到LINE官方文件確認才行。

最後最後就是,這篇主要還是隨手筆記一下,內容正確性不負責XD

發佈留言