移动端 | 加入收藏 | 设为首页 | 最新ss | 赞助本站 | RSS
 

freefq.comfree——免费、自由fq——翻墙

困在墙内,请发邮件到freefqcom#gmail.com获得最新免费翻墙方法!
您当前的位置:首页 > 网络翻墙技巧

加泰罗尼亚如何绕过西班牙政府封锁

时间:2017-10-05  来源:medium  作者:chihao 条评论

评论:可惜湾湾没胆搞独立公投,不然刚好可以看看党国到底有没有依法治国。rPG免费翻墙网

原题:加泰隆尼亞用行星檔案系統繞過西班牙政府封鎖rPG免费翻墙网

正文以巴塞隆納為首府的加泰隆尼亞,是西班牙現行十七個自治社群之一。加泰隆尼亞獨立運動歷史久長,過去也曾宣布獨立。現在,多數加泰隆尼亞人希望舉行獨立公投,支持獨立人數也不容小覷,政治氣氛熱烈,不在話下。rPG免费翻墙网

 rPG免费翻墙网

 rPG免费翻墙网

 rPG免费翻墙网

 rPG免费翻墙网

先講結論:加泰隆尼亞不顧西班牙中央政府反對,十月一日,自己的獨立公投自己辦。法院宣告違法之外,中央政府正盡一切可能阻止這次獨立公投,其中一項作 為:封鎖任何支持獨立公投的網站。國家警察突襲網路服務供應商、接管數個提供公投資訊的網站,甚至對複製網站內容的人提起告訴。
我要去哪裡投票?
投票地點通常會透過官方郵件告知。但,西班牙的國家郵政由中央政府控制,任何加泰隆尼亞政府的宣傳都會被沒收。
網站被快速的關閉、郵件遞送不可能,加泰隆尼亞政府要如何通知人民,去哪裡投票?
加泰隆尼亞用行星檔案系統、加密和創意找到答案。他們架設了《公投2017》網站。九月二十七日為止,網站仍正常運作。

架設在行星檔案系統上的網站

 
透過行星檔案系統(Interplanetary File System)的網域https://ipfs.io/發佈這個投票資訊網站,有幾個好處。
  1. 西班牙政府很難強制要求將造訪國際頂級網域.io的訪客重新導向別的網站。如果是加泰隆尼亞的.cat網域結尾的網站,這就很容易了。
  2. 網域擁有者與「加獨份子」扯不上關係。這讓任何干預行動很難取得法律正當性,尤其是當.io網域的管理在英國境內,而這些行動必須在英國境內執行時。
  3. 因為這是一個https網站,這讓從網路服務供應商進行中間人攻擊變的困難。政府還是可以要求網路服務供應商封鎖任何來自或前往ipfs.io的網路通訊,但沒辦法讓使用者在不被瀏覽器警告憑證失效的狀況下,看到其他政府置入的內容。
  4. 就算西班牙政府封鎖任何與ipfs.io的網路通訊,網站上的資訊還是能被存取、複製。ipfs.io只是行星檔案系統的一個代理服務,行星檔案系統本身是點對點分散式內容即位址的網路檔案系統。只要下載行星檔案系統的程式,任何人都可以存取系統中的任何內容。
點對點分散式讓內容能夠自由擴散,當內容能自由擴散,它就幾乎不可能被單一用戶封鎖。點對點的加密連線也讓存取內容的用戶很難被認出來,也許中國可以,但西班牙鐵定是不行的。
問題:可以嗎?
內容即位址讓內容無法被竄改。加泰隆尼亞政府人員只要分享網站首頁的雜湊值(hash),所有人都能確定點擊連結後看到的內容確實是加泰政府所發佈的。
一個挑戰:因為行星檔案系統上的資訊都是公開的,所以網站使用、連結的資訊頁都必須是公開的。只要需要額外的伺服器處理私密的資料,那這個伺服器就很有可能成為讓整件事失敗的弱點。
所以,加泰隆尼亞政府必須讓網站的資料庫成為能夠透過行星檔案系統擴散、能簡單地用網址,或最少的程式碼,就能查詢的資料庫。他們是怎麼做到的?

靜態資料庫

 
以往的選舉,西班牙公民需要在政府網站上輸入身分證字號、生日、現居地郵遞區號。核對無誤後,網站才會告訴你該去哪裡投票。
這個做法顯然不怎麼樣,因為如果你知道某人的生日,還有他現在住在哪個區域,就可以透過不停嘗試身分證字號組合得到你想要的資訊。不過,如果是一般的網站,只要在伺服器上控制單一IP每秒存取次數就可以解決。
不過這次不同,加泰隆尼亞不能使用伺服器,否則西班牙政府就能輕易封鎖伺服器。為了充分利用行星檔案系統的優勢,整個網站,連同資料庫都必須是靜態的,這樣內容才能自由擴散。
來看看他們怎麼讓選民查詢投票資訊吧!在網站中《我要去哪裡投票》這一頁,介面會請你輸入這些。
  • 身分證字號(DNI)後五碼數字,加上一個字母檢核碼,格式是[0–9]{5}[A-Z]
  • 出生年月日,格式是YYYYMMDD
  • 郵遞區號五碼,皆為數字,格式是[0–9]{5}
這十八碼,就是能夠取得個人投票資訊🗳的個人鑰匙👤
身分證字號 + 生日 + 郵遞區號 → 👤 → lookup() → 🗳
可是可是,如果這些個人鑰匙👤也都是用明碼發佈,那豈不是洩露了所有加泰隆尼亞公民的個資嗎?

加密來救援

 
為了易於了解,將個人對應到投票資訊的資料庫查詢程式lookup()大概長成這樣。
 
function lookup(dni, birth, zip, callback) {  var key = dni + birth + zip;  var passkey = sha256_times(key, 1714);   var search = sha256(passkey);rPG免费翻墙网
  var dir = search.substring(0, 2);  var file = search.substring(2, 4);  var path = db_path + dir + "/" + file + ".db";  var lines = readfile(path).split("\n");rPG免费翻墙网
  lines.forEach(function(line) {    if (line.substring(0,60) == search.substring(4)) {      found = true;rPG免费翻墙网
      var plaintext = decrypt(line.substring(60), passkey);      callback(plaintext.split('#'));    }  })rPG免费翻墙网
  if (!found) {    callback("not-found");  }}
裡面有用到三個加密函式,分別是第三行的sha256、第四行的sha256_times和第十五行的decrypt。三個函式的細節如下,其中在第二行、第十六行使用的crypto就是Node.js的crypto模組,任何人都可以取得、使用。
rPG免费翻墙网
function sha256(text) {  return crypto.createHash('sha256')    .update(text)    .digest('hex');}rPG免费翻墙网
function sha256_times(text, times) {  var result = text;  for (var x = 0; x < times; x++) {    result = sha256(result);  }  return result;}rPG免费翻墙网
function decrypt(text, key) {  var decipher = crypto.createDecipher('aes-256-cbc', key);  var dec = decipher.update(text, 'hex', 'utf8');  dec += decipher.final('utf8');  return dec;}
 
rPG免费翻墙网
這其實沒有很複雜。
lookup()這個函式在第二行把身分證字號、生日、郵遞區號所組成的個人鑰匙👤sha256這個函式加密1714次,生成解密密碼🎛,在第三行再用sha256一次,把解密密碼再次加密,成為查詢金鑰🔑
👤 → sha256 × 1714 → 🎛 → sha256 → 🔑
接下來,就用查詢金鑰🔑查詢資料庫🗄,找到一或多筆相對應的內容之後,再用解密密碼🎛將找到的內容解密,進而獲得投票資訊🗳
🔑 → 🗄 → 加密的投票資訊 → 🎛 → 🗳
我不是什麼加密專家,看不出來這樣的機制有沒有什麼致命的失誤。不過,要強制取得個人資訊,看樣子除了暴力解,好像也沒別招了。那麼,到底要多暴力呢?讓我們賣弄一下自己的教育程度,估計看看。
  • 身分證字號的部分,因為最後的檢核字母只有二十三種可能,所以總共有10⁵×23種可能的組合。
  • 出生年月日的部分,假設沒有人超過一百歲,就有365×100種可能。
  • 郵 遞區號的部分,因為西班牙的郵遞區號是由兩位省的代碼加上三位區碼組成,如果假設所有人都住在加泰隆尼亞,而加泰隆尼亞境內僅有四省,所以有4×10³種 可能。不過,並不是所有可能的組合都是有效的郵遞區號,而且任何人都可以輕易取得所有有效郵遞區號的列表。在這裡,暫時不考慮這件事,先這樣。
  • 把所有可能綜合考慮,個人鑰匙👤有10¹⁰×23×365×4,也就是33580×10¹⁰種組合,大概是48 bit。
「怎麼這麼少?」算完之後,我懷疑只要有點耐心,有一點錢,應該能很快把整個資料庫轉為明碼。假設需要計算1715次sha256來確認某個人鑰匙👤在資料庫裡有沒有資料,那麼,那麼檢查完所有可能的個人鑰匙👤就需要計算575897×10¹²次雜湊值。參考比特幣維基,用不同的硬體設備所需的時間如下。
  • AntMiner S9每秒能計算28×10⁹次雜湊值,所以檢查完所有可能的個人鑰匙👤,需要238天。
  • AMD 7970每秒825×10³,需要20870年。
  • Nvidia Tesla S2070每秒749×10³,需要24381年。
嗯。對一個普通駭客來說不太可行,但如果有點錢,絕對不是不可能。並且,這是要把整個資料庫轉為明碼需要的時間,如果你知道某人的身分證字號和住處,用你的筆電猜測他的生日,應該不會花上多少時間吧!

未解的問題

 
雖然困難,不過把整個資料庫轉為明碼是可能的。這就表示加泰隆尼亞政府或許洩露了所有加泰隆尼亞公民的部分身分證字號、生日、郵遞區號及投票地點。因為西 班牙的身分證字號並不是什麼秘密資訊,所以也許這些資訊也沒那麼重要,但如果頻繁使用這種作法,尤其是當有人開始交叉比對資料庫時,事情可能就不這麼無害 了。
每個嘿喀都應該知道的事:絕對不要自己寫加密演算法。加泰隆尼亞政府的嘿喀是否犯了這個錯誤?希望五樓能為我解答。
最後,行星檔案系統大致上保證內容的可及,但據我所知,它並不保證匿名。西班牙政府已經對複製這個網站內容的至少十人提出告訴,他們也能很容易的,在行星檔案系統中架一個受污染的節點,秘密紀錄存取的IP位址,就能起訴使用者。

那麼,你覺得加泰隆尼亞的作法如何?如果是你的話,會怎麼做?對於想要避免國家言論審查的人,這樣的作法夠不夠嚴謹?
加泰隆尼亞的嘿喀們,現在一定很興奮吧?
rPG免费翻墙网

 rPG免费翻墙网

 rPG免费翻墙网

 rPG免费翻墙网

本文由chihao翻譯,譯文以CC0釋出。原文為《How the Catalan government uses IPFS to sidestep Spain’s legal block》。原文在《嘿喀新聞》上的討論串在這裡。rPG免费翻墙网

来自https://medium.com/@chihaoyorPG免费翻墙网

来顶一下
返回首页
返回首页
欢迎评论:免登录,输入验证码即可匿名评论 共有条评论
用户名: 密码:
验证码: 匿名发表

推荐资讯

Octohide VPN:快如闪电的免费VPN
Octohide VPN:快如闪
原子网络加速器 - 免费高速VPN 一键链接 方便快捷
原子网络加速器 - 免费
foxovpn绿狐VPN——即连即用、快速、安全
foxovpn绿狐VPN——即
Dubai VPN - Free, Fast & Secure VPN下载
Dubai VPN - Free, Fa
相关文章
栏目更新
栏目热门
墙外新闻
读者文摘

你可以访问真正的互联网了。You can access the real Internet.

管理员精中特别提醒:本网站域名、主机和管理员都在美国,且本站内容仅为非中国大陆网友服务。禁止中国大陆网友浏览本站!若中国大陆网友因错误操作打开本站网页,请立即关闭!中国大陆网友浏览本站存在法律风险,恳请立即关闭本站所有页面!对于您因浏览本站所遭遇的法律问题、安全问题和其他所有问题,本站均无法负责也概不负责。

特别警告:本站推荐各种免费科学上网软件、app和方法,不建议各位网友购买收费账号或服务。若您因付费购买而遭遇骗局,没有得到想要的服务,请把苦水往自己肚子里咽,本站无法承担也概不承担任何责任!

本站严正声明:各位翻墙的网友切勿将本站介绍的翻墙方法运用于违反当地法律法规的活动,本站对网友的遵纪守法行为表示支持,对网友的违法犯罪行为表示反对!

网站管理员定居美国,因此本站所推荐的翻墙软件及翻墙方法都未经测试,发布仅供网友测试和参考,但你懂的——翻墙软件或方法随时有可能失效,因此本站信息具有极强时效性,想要更多有效免费翻墙方法敬请阅读本站最新信息,建议收藏本站!本站为纯粹技术网站,支持科学与民主,支持宗教信仰自由,反对恐怖主义、邪教、伪科学与专制,不支持或反对任何极端主义的政治观点或宗教信仰。有注明出处的信息均为转载文章,转载信息仅供参考,并不表明本站支持其观点或行为。未注明出处的信息为本站原创,转载时也请注明来自本站。

鉴于各种免费翻墙软件甚至是收费翻墙软件可能存在的安全风险及个人隐私泄漏可能,本站提醒各位网友做好各方面的安全防护措施!本站无法对推荐的翻墙软件、应用或服务等进行全面而严格的安全测试,因此无法对其安全性做保证,无法对您因为安全问题或隐私泄漏等问题造成的任何损失承担任何责任!

S. Grand Ave.,Suite 3910,Los Angeles,CA 90071

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。