本文從源碼確認,三星 10 月中推出的 Android firmware 更新,已修訂原本強行加入南京信風 DNS 伺服器(114.114.114.114
)的問題,但對發出 qq.com
有關的部份沒有改動,即前文的分析仍然生效。
事件簿
順帶一提,讓大家重溫、學習及欣賞大事化無的公關技巧:
2020年10月3日:問題先在 HKEPC 提出
2020年10月4日:lihkg 開始討論
2020年10月8日:此時未有主流媒體報導及確認,三星的回應,是「我們早前已告知閣下所有三星客人手機上的資料都是保密存放的,因此一般不會有閣下所提及的情況出現。如閣下發現所提及的情況出現,請閣下上傳有關圖片和相關資料給我們詳細了解」來源:lihkg
2020年10月8日:ePrice 報導
2020年10月8日:e-zone 報導
2020年10月10日:蘋果日報報導
蘋果報導三星的回應,首次提及 DNS,但沒有承認問題:三星「未有正面回應公司是否預設 114 DNS於旗下所有 Galaxy 系列手機之中,僅稱非常重視客戶的私隱及個人資料的保護。當手機連接Wifi網絡時,DNS 只會傳送網站的IP地址,並不會儲存任何客戶的個人資料,也不會追蹤用戶所瀏覽的網站或收集瀏覽的內容。」
事實上,如果最新版 Note 20U firmware(img 檔) 的 timestamp 正確,三星內部早在 10 月 10 日下午 3 時已完成對Note 20U firmware的修改及編繹,修正了 114 DNS 問題。由於發現問題,修正,至完成需時,特別是有一定規模的機構,亦即是說三星香港有可能在 10 月 8 日或之前已從本地討論區得悉問題以及向開發部門回報,而從短時間內完成修改至發布更新,亦肯定三星了解事情的嚴重性及敏感性。
而對外,三星不主動就問題澄清,在傳煤查詢時採取不承認,不否認,需更多資料,以及淡化問題的回覆。而回覆內容,對事件不太深入理解的或會安心,但是對知悉問題所在者是不知所云。
如果是指三星本身不會收集 DNS 資料,雖是事實但明顯具誤導性,因為很明顯對此事提出關注的用戶,不是擔心三星收集資料。但如果是指 DNS 服務供應商不會追蹤用戶所瀏覽的網站,卻不知三星是憑什麼作這項保證。事實上,Google就是有儲存這些資料,見其政策,用戶 IP 地址及其瀏覽的網站的資料會被收集,一般在 24 – 48 小時後轉為地方性的統計,但涉及一些保安或濫用調查除外。(而另一方面,Cloudflare 直接指不會存取完整用戶 IP 到 non-volatile memory,而經 truncate 的 IP 地址會在25小時內銷毀)。而可能令人擔心的 114.114.114.114,則恕作者未能發現其私隱政策。而即使南京信風本身沒有收集資料,須注意常規的 DNS 是沒有加密的,所有途經的中繼伺服器都可以收集相同的資料… 更何況,DNS 可以帶來的風險,絕不止於用戶瀏覽網站被追蹤… |
2020年10月13日:WinAndMac 報導
WinAndMac引述三星回應:「三星非常重視客戶的私隱及個人資料的保護。當手機連接Wi-Fi網絡時,網域名稱系統(DNS)只會傳送網站的IP 地址,並不會儲存任何客戶的個人資料,也不會追蹤用戶所瀏覽的網站或收集瀏覽的內容。我們將不斷為Galaxy產品推出軟件更新,以提升客戶使用體驗。」
即使此時已有充份證據是三星 firmware 的問題,亦無礙三星繼續其一貫處理技巧。而回應似乎顯示,三星已在計劃以軟件更新 |
2020年10月15日:Mobile Magazine HK 報導,三星 Note 20U 更新已解決 DNS 問題
2020年10月16日:ePrice 報導三星「亡羊補牢」
兩者皆比討論區眾用戶早,差不多時間搶先報導三星 Note 20U 更新已解決 114 DNS 問題 (前者之前在事件引起關注後沒有報導過此事),但同時都沒有提及後來證實沒有修正的 qq.com 問題。而在 16 日,一天內三星多個型號相繼收到更新(當然更新內容沒有提及 DNS 問題),之後討論區雖發覺 qq.com 問題依然存在,有用戶讚賞三星反應快速… |
由於事件從未獲官方承認,其性質在主流傳媒始終維持在「網傳」的階段,即使經大量測試屬實,甚至源碼被繹出,由於沒有相關權威或專業的認證,事件在討論區外沒有廣泛關注,在外地論壇,事件更被當作陰謀論處理,帖文被刪。本地主流傳媒在蘋果之後再沒有跟進(更新:明報10月17日有報導,不過只有輕輕一段附於其他新聞內)。卓越的公關技巧又一次發揮威力,將技術及政治上皆屬敏感的問題化解於無形。
不知眾多客戶的經過此事,對三星手機的使用體驗又提升了多少呢。
三星 10 月更新所作的修正
回到正題,三星 10 月中推出最新的 Note 10+ firmware,當中 wifi-service.jar
反編繹源碼已上載到 https://github.com/headuck/SM-N9750-TGY-Oct20。當中問題所在的 WifiConnectivityMonitor,在判別是否插入 DNS 時,只會直接檢查手機本身的 CountryISO
(以下行號屬 WifiConnectivityMonitor.java 檔案):
135 行,114 IP 依然健在:
private static final String CHN_PUBLIC_DNS_IP = "114.114.114.114";
1738 行,原本以inChinaNetwork()
來判斷是否用 114,現在改為新的isNetworkNeedChnPublicDns()
:
if (WifiConnectivityMonitor.this.mWifiManager != null && WifiConnectivityMonitor.this.isNetworkNeedChnPublicDns()) { Message msg = new Message(); msg.what = 330; Bundle args = new Bundle(); args.putString("publicDnsServer", WifiConnectivityMonitor.CHN_PUBLIC_DNS_IP); msg.obj = args; WifiConnectivityMonitor.this.mWifiManager.callSECApi(msg); }
isNetworkNeedChnPublicDns()
在 8880 行
private boolean isNetworkNeedChnPublicDns() { try { String countryCode = SemCscFeature.getInstance().getString("CountryISO").toLowerCase(); if (DBG) { Log.d(TAG, "Public DNS via Property(CSC) : countryCode: " + countryCode); } if (countryCode == null || countryCode.length() != 2 || !"cn".equalsIgnoreCase(countryCode)) { return false; } return true; } catch (Exception e) { return false; } }
可見已改為用手機的 CountryISO 碼並只限於 “cn” 才會返回 true
,港行機即使連接了大陸流動網絡亦沒有問題。
另一方面,之前文章 Part 1 提及的 inChinaNetwork()
及 isChineseIso()
同樣健在,見 8897 行。 前文 Part 2 提及的 DNS query 機制,仍然使用 inChinaNetwork()
,即港行三星手機或連接香港網絡的三星手機,仍會每分鐘向手機設定的每個 DNS 伺服器,查詢 qq.com
,這方面沒有改動。
三星不是最直接地將 inChinaNetwork()
改為目前 isNetworkNeedChnPublicDns()
的內容,而是特別拆開兩種處理方法,即有意保留原有的 qq.com
查詢的做法(不將其改為 google.com
),原因令人費解。
現時除非有其他未被發現的情況,否則已消除將瀏覽網站連用戶 IP 送上大陸的問題,不過用戶若介懷手機使用 WiFi 時不斷作 qq.com
的查詢(事實上這是不必要的),(17/10 7pm 更新)以及可能查詢並連接 www.qq.com
, www.baidu.com
, m.taobao.com
, m.hao123.com
以及 connectivity.samsung.com.cn
,可以按前文末段的方法,在家中 WiFi 名稱中加入 DIRECT-
及 :NEX-
,如 DIRECT-:NEX-Home
。
而即使非三星用戶,如果以 mobile network 開 tethering 給三星手機分享,將 hotspot 名稱加入上述字串,或可節省些少流量😁。
(17/10 7pm 更新﹕已證實有用戶發現的 baidu.com
及 taobao.com
等的 DNS 查詢甚至連接,亦是來自三星原廠 firmware,源自其對 Google 原生 NetworkMonitor
的修改,在 captive portal detection 時自行加料。相關連接可以由前文的 DNS checking loop 在某些情況下(如訊號強弱)觸發。上述更改 SSID 方式可減少觸發機會。要停止須在要接駁的 WiFi 連接,設定使用PAC,詳情將在 Part 3 解釋。)
在〈三星如何回應在港版手機加入南京信風 DNS 伺服器事件〉中有 3 則留言
多謝鴨仔嘅詳盡分析
實在嬲到爆,以後買新機可能,可能要用Google親生機,及iPhone…
多謝詳細資訊, 下部唔再揀三叔喇, 轉iphone算數
感謝提供,我的韓國版三星手機也有此類問題,不知是因人在中國大陸,還是三星爲了賺錢在亂搞。還好我懂Flash firmware,能夠使用XDA的open source firmware。現在是入侵隱私時代,所有巨頭皆不可信,Android還能做些什麽,換成Apple你更沒辦法啦。