加強 DNS 隱私

DNS privacy, DNS 隱私

用了一段時間的 DNSCrypt,在前幾個月 DNSCrypt Proxy 的專案開發維護者-Frank Denis,忽然(其實也不是忽然,他在 Twitter 上也有事先貼文,只是沒有比專案直接不見鬧得大 😂)把 Github 專案移除後,在 Reddit 上也有需多討論,這中間經過有公司願意接手,但是過了幾天後,Frank Denis 開了新的 dnscrypt-proxy 專案,也就是第二版。

在這些日子,越來越多公司/組織也提供 DNS 加密的服務協定,從之前支持 DNSCrypt 專案的 OpenDNS 及 OpenNIC 專案中志願者提供的 DNSCrypt 服務外,還有 Google Public DNS 蠻早也支援 DNS-Over-HTTPS,到去年(2017 年)11 月 IBM 推出的 Quad9 支援 DNS-Over-TLS、12 月 Tenta 發表 Tenta DNS 支援 DNS-Over-TLS,也將 DNS 伺服器專案的程式碼開源,到了今年(2018 年),Cloudflare 也在 04/01 發布他們也提供 DNS 服務,並支援 DNS-Over-HTTPS 與 DNS-Over-TLS 兩個協定。

繼續閱讀 “加強 DNS 隱私”

加強 DNS 隱私

阻擋廣告與被追蹤

目前網路上,充滿許多廣告,從網頁(Web)到行動裝置的應用程式(App),可能當你上了某個購物或商店的網站瀏覽商品後,再進入一些放置廣告的網站瀏覽時,會出現剛剛瀏覽過或是同類型的產品。除了很討厭見到廣告內容外,在行動裝置上更是會使用到可觀的行動網路流量,更重要的是,讓廣告商們能夠追蹤自己的瀏覽記錄與喜好等。Chrome 在今年(2018 年)二月加入了廣告過濾(AD Filtering),Google 在 Chrome 瀏覽器中,加入廣告過濾主要並不是想要保護使用者的隱私,因為使用者看不到廣告,與使用者不被追蹤是兩回事,沒看到廣告不表示你沒被追蹤。

下面會分享,自己目前或使用過的阻擋廣告、追蹤的方式與軟體(皆是開源的),主要分成瀏覽器、行動裝置端與其他。

瀏覽器端

在瀏覽器上瀏覽網頁,是透過 JavaScript 載入執行的程式,來顯示廣告或追蹤你點擊、瀏覽過的網頁,常見防止廣告與第三方追蹤的方式是阻擋特定的 JavaScript 檔案或特定的域名,來避免瀏覽器執行這些 JavaScript,或向特定域名送出 HTTP/HTTPS 請求。

uBlock Origin

uBlock logouBlock Origin 廣泛來說,並不是完全來阻擋廣告與被追蹤的工具,它提供了多種阻擋規則,包含了請求類型、主機名稱、網址、HTML DOM 等,也能利用正規表示式(regular expression)等來撰寫阻擋規則。(注意:uBlock Origin 與 uBlock 是不同的,可以從 logo 圖案來區分)

uBlock Origin 專案原始碼:https://github.com/gorhill/uBlock

如果你是 Firefox 瀏覽器使用者,請從 Firefox Add-on 安裝;如果你是 Chromium/Chrome 瀏覽器使用者請從 Chrome 線上應用程式商店安裝。

uBlock Origin 支援許多瀏覽器,像是 Firefox、Chrome、Safari 等,只要在瀏覽器內,安裝 uBlock Origin 擴充套件後就能使用,uBlock Origin 中也包含了許多的阻擋清單,讓你依照自己的需求,如阻擋的類型,或依照國家內常見的廣告與追蹤來阻擋。

Advanced uBlock
安裝完 uBlock Origin 後,也能查看到目前已經阻擋的連線請求及所有的連線請求有哪些。
uBlock logo 取自 Raymond Hill (@gorhill) https://github.com/gorhill/uBlock/blob/master/doc/img/ublock-16.svg,以公眾領域(CC0)釋出

繼續閱讀 “阻擋廣告與被追蹤”

阻擋廣告與被追蹤

找出網站中的混合內容 (mixed content)

Google 在 2014 年宣布 HTTPS 將會是搜尋排名的參考之一(相關連結:Official Google Webmaster Central Blog: HTTPS as a ranking signal),到了最近也宣布 Chrome 到了 2017 年 01 月的 Chrome 56 中(相關連結:Google Online Security Blog: Moving towards a more secure web),將會把不是採用 HTTPS 的輸入密碼或信用卡卡號的網站標示為 Not secure(動作超大),最後,會連不是 HTTPS 的網站都標成 Not secure…

blog-image-1
圖片來源:Google Online Security Blog

在把網站從 HTTP 轉到 HTTPS,除了需要調整網頁伺服器上的設定、申請憑證,及把來自 HTTP 的連線都轉到 HTTPS 之外,更費時間的是要確保沒有混合內容 (mixed content) 的情形。

什麼是 mixed content

來看看 Mozilla 的定義:

如果以 HTTPS 傳輸的頁面含有以 HTTP 傳輸的明文內容,則這個連線就只有部分加密:也就是說,未加密的內容就有可能被竊聽或是被中間人修改,連線也就不安全了。當網站發生這樣的情況時,我們說這個頁面含有混和內容

— 取自《混和內容 – Security | MDN》

簡單來說,如果 HTTPS 的網頁中有包含了 HTTP 的連線,就是網頁中有 mixed content。

例如,連線到 https://fmbase.tw/secure-page/,網頁伺服器回應 HTML 給瀏覽器去解析,當有像 <img src=””> 的標籤,需要再發出 HTTP(S) request 來取得圖片,如果當圖片是 HTTP 資源的時候,這個網頁就有 mixed content。

繼續閱讀 “找出網站中的混合內容 (mixed content)”

找出網站中的混合內容 (mixed content)