2013年3月9日 星期六

在其他地方登入?Facebook 帳號被盜了?


幾天前看到學弟的一則 Facebook 動態,激起了我強烈的好奇心 .... 如上圖,看起來很嚇人對吧?我先說這位學弟是如何得知這個訊息的 (雖然我沒實際問過他),Facebook 跟 Google 服務一樣,在帳號設定的地方都可以顯示前幾次上線的紀錄,位置在 "隱私設定" (右上角齒輪處) > "帳號保安" > "有效的連網" (右邊最後一項),於是我一看我的連網紀錄 ...... 怪怪,真夠壯觀 .......


乍看之下好像很正常,但在它所呈現的三種訊息 (軟體、時間、地點) 中,其實有兩個疑點:

1. 連線紀錄的時間怎麼間隔這麼久?
雖然我不是一個每天都會上線的人,但也不可能隔這麼久才連線一次,所以這個紀錄是 ...?Facebook 又在搞笑?

嗯嗯,這部份的確很容易讓人誤會,相較之下 Google 服務所顯示的連線紀錄就是真正 "每天"、"每次" 的連線紀錄,比如說你一天之內登入 GMail 五次,連線紀錄裡就會多出五行。可是,Facebook 想的邏輯不是這樣,它的 "有效的連網" 是指 "還在連線的連線紀錄",所以你只要有登出過,那麼該次的連線就不會出現在這個清單裡 (像我用桌面瀏覽器上 Facebook,結束後都會登出),而且若連線的 "狀態" (像是連線軟體或是地理位置) 一樣,不管重新連線幾次,即使每次都沒有登出 (像是使用行動裝置的 Facebook App,應該很少人會手動登出吧),還是算在同一個紀錄之內

因此,你可能會發現每個連線紀錄都有些許的不同,不會像 Google 給你的連線清單滿滿一整排都是相同的資訊。我知道 Facebook 把這樣的連線清單呈現給使用者很容易造成誤解,不過我們要體諒那些在 Facebook 公司裡的天才可能不懂凡人們在想什麼 .....


2. 連線地點太誇張了,我根本沒去過 XXX 阿!


這部份比上一點更令人擔心,猜自己的帳號被盜的人大多是因為連線位置太離譜,不過我在此要告訴各位 -- "不要自己嚇自己!"

Facebook 的安全性及隱私權管理一直為人所詬病,因此近年來他們已在這方面做了不小的改進,但由於選項太多容易遺漏或難以理解,故官方有製作一些說明文件,比如說這一篇裡就有詳細敘述 "活躍連線" 的細節,我不清楚這玩意跟 "有效的連網" 是否相同,但我猜它們對於地理位置的偵測方法應該是相同的,也就是 -- 以 IP 決定位置

看到這裡應該很多人都懂了。在 HTML 5 開始支援地理位置的偵測之後 (雖然 "地理位置" 的 API 尚未被列入標準),不管有沒有內建 GPS 晶片,任何裝置都可以藉由 WiFi 熱點或網路路由器的設定來提供地理位置的資訊,可是實作的方法還是略有不同。以 Google 服務為例,它是以 "網卡 Mac 位置" 為判斷的基準 (細節就不再這裡說了),雖然比較麻煩,但這樣做有一個好處,因為路由器的網卡 Mac 位置是獨一無二的。

可是呢,Facebook 採用的是最簡單、最直覺,也最不準的判別依據 -- IP 位置,因為這年頭除了特定機關或學校之外,IP 幾乎都是浮動的,而且你也不知道那個 IP 是從哪個機房發給你的,所以距離差個十萬八千里都有可能。比如說本文的第二張圖,上面洋洋灑灑地有著六個連線紀錄,我們先看 "目前的階段" 這一項,看起來沒啥問題,可是我用我當時的 IP (49.158.136.223) 查一下位置 ....... [1]


嗯,所以就算乍看之下是對的,但實際上也是大有問題,因為我人在新北市阿 .... 接下來,我把第二張圖中的連線全部退出,再立即以 iPhone 的 3G 網路連上 Facebook,於是我們可以看到第三張圖 ..... 怪怪,我瞬間移動到台中去了?!這是由於 3G 行動網路的 IP 發放更複雜,所以若要以 IP 當作地理位置的依據根本是沒有意義的

所以,從上述的結論可知,之所以有那麼多行連線紀錄,只是因為你連線後沒登出,且連線的 IP 若沒有改變,Facebook 是不會將其紀錄下來的,可是 IP 位置啥時會改變呢?其實很難說,除非你去了其他已知 IP 不同的場所,不然還是難以確定,至於使用廣域的移動網路去連線就更不用想太多了,因為你在整個台北市用同一個 IP 都有可能,不用自己嚇自己。

喔 ..... 結論是這個 "有效的連網" 根本沒意義,只是用來嚇人的?其實也不是,我在上述的文章中一直沒有討論到 "連線軟體" 這項資訊,基本上這一項是準確的,除非 User Agent 遭到竄改。但是,修改 User Agent 這檔子事多半是自己做的,應該不會不知道,就算軟體可以自己亂改,但我也很好奇哪個開發者會這麼無聊 ....[2] 所以,若你發現你的連線紀錄中有你從未使用過連線系統或連線軟體,那就真的有問題了 (比如說,若我的紀錄中有使用 Win7 的 IE9 連線的話,就應該是被盜帳號了,至於小弟的紀錄中為何 iOS 5 及 iOS 6 都有?因為小弟的 iPad 1 不能升級到 iOS 6 啦 ~)


附註
1. 如何查詢實體外網 IP?可以利用 What is my IP
2. 附帶一提,在 iOS 上可以修改 User Agent 的瀏覽器不多,我推薦的是 Terra

16 則留言:

  1. 你好請問那如果有效連網的 "上次登入" 的時間.我在那個時間根本沒登出再登入.只是掛著.他就自己更新時間了呢?但是IP位置和登入瀏覽器都一樣.就是那個"上次登入"的時間怪怪的..

    回覆刪除
    回覆
    1. 其實我也不知道你發生了什麼事,因為我無法精準地向每個登入時間點求證。或許在那段時間裡,你的 Facebook 因某種原因重新登入?不過其他資訊都相同,理論上應該不會顯示出來 ...

      可以擷個圖給小弟瞻仰一下嗎?從你的敘述中我無法判斷是什麼情形,最好也概略說一下你使用 Facebook 的習慣。

      刪除
    2. 這是我用手機看電腦的fb有效連線"上次登入"時間才發現的.我平常是電腦與手機會同時上線.不過他顯示電腦的"上次登入"時間點前我並沒有登出在登入
      如上面顯示

      上次登入:今天13:30

      但是我並沒有在13:30前登出再登入

      刪除
    3. 不需要登出,登出的話,前一個連線紀錄會被清除掉,但不影響下一次的連線紀錄。注意,如果只是關閉 Facebook 網頁並沒有登出,一定要 "手動登出" 才算登出。

      我猜只是你在 13:30 的時候有重新登入過一次,之後就沒有登出,所以你才會看到這個紀錄。事實上你提供的資訊依然不夠,因為依照你前一次的留言,奇怪的地方在於 "其他的資訊都相同",理論上不會出現這次紀錄,所以我才要求你擷圖,目前我只能做這樣的猜測。

      刪除
    4. 恩恩沒關西.謝謝你的答覆
      如果有問題再來向你請教^^

      刪除
  2. 感謝您啊。看了這篇文章發現原來一切都是臉書自己烏龍。之前我收到臉書的通知說我登入ip在花蓮,叫我改密碼,我改了。但我自己查多次那個ip明明在台北,害我懷疑帳號被盜。原來其實臉書是耍笨了。我放心了。感恩。

    回覆刪除
  3. 你好,我今天剛好看到我2天前在屏東登錄,可TMD我根本連屏東都沒去過啊!這正常嗎?

    回覆刪除
    回覆
    1. 那地點是不準的,請用時間及連線軟體來判斷。

      刪除
  4. 那如果別人要查看自己的登入位置那要怎麼做

    回覆刪除
    回覆
    1. 這已經侵犯隱私了吧?應該不會有這種功能,至少我是不知道啦 ...

      刪除
  5. 你好請問那如果有效連網的 "上次登入" 的時間會出錯嗎?因為我在那個時間只有登出而已

    回覆刪除
    回覆
    1. 理論上是不會錯的,但你要確認一下時區問題,比如說 OneDrive 的檔案上傳時間都是錯的,因為不知道它是怎麼計算時間的,也許是用他們的系統時間或是另一個時區的時間。

      刪除
  6. 想請問下 為何fb被別人登入但密碼沒被改也沒被發奇怪訊息 這麼做的目的大概是什麼

    回覆刪除
    回覆
    1. 就看看你發表的私人文章或訊息吧?

      我疑惑的是,這種跟你個人網上行為有關的事怎麼會問我呢?

      刪除
  7. 所以如果顯示他在高雄登入但我不再高雄是正常的嗎
    還是我被盜了
    fb之前也有發提醒說我的登入位置不像平常會登入的位置我也改密碼了 怎麼還會這樣啊?

    回覆刪除
    回覆
    1. 我覺得只是地點用 IP 識別不準而已 .... FB 的提醒應該只是你去了別的地方上網吧?

      刪除