由經濟部技術處輔導工研院研發的手機通訊App Juiker(揪科),政府希望能成為取代Line的手機通訊軟體。但Android版的Juiker 3.2.0829.1日前卻被發現一個因為沒有進行x.509憑證認證的漏洞。經濟部技術處科長林青海表示,工研院已經修正App端的憑證認證問題,新版App將於即日上架。。

揪科App端出現中間人攻擊漏洞,工研院重新上架新版App

揪科因為政府推廣而知名度暴增的同時,日前發現Android版的揪科App,在全球漏洞資料庫網站揭露一個CVE(Common Vulnerabilities and Exposures)漏洞(編號:CVE-2014-6693)。CVE漏洞報告指出,因為揪科沒有驗證x.509的CA(Certificate Authority)憑證,駭客可以藉此發動中間人攻擊,以竊取使用者敏感性資料。

林青海表示,揪科通訊功能分成兩類,第一類是類似Line和What’s App手機即時通訊軟體;第二類則是針對政府和企業推廣的具有企業節費的語音功能。目前出現問題的是一般即時通訊的手機App版本,他說,工研院當初為了讓一般版和企業版的App可以泛用,所以沒有特別在App端做x.509憑證認證,但在伺服器端原本就採用多金鑰、多伺服器的方式,沒有被偽造伺服器導致中間人攻擊的問題。然因多數人對此有資安疑慮,所以工研院會把App認證加上對x.509的CA憑證認證,並且即日重新上架。

林青海表示,揪科資料傳輸過程還是有採用SSL傳輸加密,為了因應政府對於資安要求,目前內部研發的版本上,也已經將SSL加密升級到TLS加密,同時做到資料和語音的加密。他表示,工研院將先完成政府版的測試後,之後也會將TLS加密應用到一般版的手機App。

資安專家證實,揪科App有中間人攻擊風險

資安專家戴夫寇爾資安研究員岑志豪表示,這個CVE揭露的漏洞是使用者端可能會遭到中間人攻擊(Man-In-The-Middle Attack),當連線被中間人攻擊時,使用者原本的連線目的地,會被導到攻擊者的設備上,此時伺服器憑證也會被取代成攻擊者自行簽發的憑證,造成原本正常的連線出現異常。他認為,不論什麼原因,沒有在App端做憑證認證,都是不合理的,況且這是一個強調企業使用的產品,安全性怎麼可以打馬虎眼呢?

岑志豪親自測試8月29日更新的揪科Juiker 3.2.0829.1版,證實的確會遭到中間人攻擊。目前測試會出現兩個常見的SSL處理錯誤的問題,包括用來檢查伺服器憑證的 checkServerTrusted被留空,導致警告被略過;以及當透過WebView元件訪問HTTPS網站發生SSL錯誤時,會觸發onReceivedSslError這個函數,讓異常的連線繼續進行。

針對前者的錯誤問題,他表示,App業者不要自行實作TrustManager,而是要把憑證放到KeyStore,再把KeyStor放到TrustManagerFactory,最後從TrustManagerFactory產出相關的TrustManager,如此是比較安全的作法。另外,針對後者的問題,較為恰當的做法是使用handler.cancel()讓連線終止,或是限制在開發階段才執行handler.proceed()。像Apache Coradova和 Facebook Android SDK,皆有對這部分做控管。

岑志豪建議,可以透過使用憑證綁定(Certificate Pinning)的方式,把需要比對的憑證預先存放在應用程式裡,指定特定Domain就只能使用特定憑證,等到要進行SSL Handshake的時候,再與伺服器的憑證做比對,即可快速解決這種手機端SSL連線處理的問題。

已有公務機關測試中,沒有資安疑慮才會全面推廣

因為政府不允許公務人員使用手機通訊軟體App Line討論公務,而改由推廣工研院研發的揪科App,不過,科技部長張善政表示,只要是資安軟體都可能會有風險,若推廣作為政府使用,也可能被鎖定攻擊,因此,政府必須確認揪科沒有資安疑慮後,才會放手讓政府和民眾使用。

臺北市資訊局主任秘書潘瓊如表示,臺北市政府自從2014年3月開始試用揪科,目前已經有71個機關參與試用,App總共下載622次。她說,因為工研院這次解決資安問題的速度很快,會在年底進行節費的效益評估,在虛實整合桌機功能的情況下,再判斷是否全面推廣。

工研院研發的手機語音通訊App揪科(Juiker)被公布CVE漏洞,資安專家也證實,該App的確有遭到中間人攻擊的風險。工研院目前已經進行修補,預計今日會將新版App上架。

 

資安專家戴夫寇爾資安研究員岑志豪表示,揪科會遇到用來檢查伺服器憑證的 checkServerTrusted被留空,導致警告被略過的手機SSL處理問題。

 

 

資安專家戴夫寇爾資安研究員岑志豪表示,揪科App透過WebView元件訪問HTTPS網站發生SSL錯誤時,會觸發onReceivedSslError這個函數,讓異常的連線繼續進行

 

 

 

 

 

 

熱門新聞

Advertisement