移站公告


橫下心想要多採用MD寫作與保持文檔,以及好好練習一下git進階使用的方法,故未來本站不會再作更新。之後在這保留來作舊文的存檔連結,未來網路寫作的發佈平台會轉向利用hugo作成,存放在github的空間: https//:blog.jxtsai.info。若有不棄不離者請自行轉換。若是透過feedburner訂閱,新RSS已作更新。


開源網路聊天室工具matrix.org系列介紹(4)--weechat

既然之前已寫了三篇關於matrix.org聊天通訊的介紹(分別是對於其分散式聊天系統標準的應用原理瀏覧器介面的riot.im應用以及自行安裝synapse,用來跑matrixs聊天伺服架設的操作實驗)
這幾天把之前早安裝好的weechat作好連線IRC使用設定,也順利讓它裝好matrix.lua外掛成功連上matrix.org聊天伺服器。故在此寫一下過程的流水帳介紹。

1)installation weechat
我的作業系統環境是ubuntu 14.04 64位元,其它作業環境者,或可直接從weechat下載安裝檔。
方法一:unbuntu software center直接安裝
這個方法雖然最簡單,但software center並未更新weechat資源庫,故其版本非常老舊(0.4.5),若硬安裝上要連線上matrix.org 的外掛協議,軟體會崩潰當機,故不建議用此方法。除非使用者只想拿來作為irc本地端的工具軟體。

方法二:apt-get install
參考本篇作法,在終端機文字界面環境下利用apt-get指令先更新weechat資源庫,再進行安裝。
此方法雖然簡單省事,但其資源庫所提供的「穩定版」卻是一年多前的1.2版,但已堪用來作為matrix.org 的連線工具。

方法三:從官網下載最新版deb檔,再透過software center安裝
這個方法能確保安裝weechat 的最新穩定版(1.6)。不過要提醍,如果之前電腦上已裝過其它版本的weechat,得先進行移除,以免因版本衝突而無法安裝。
$sudo apt-get remove weechat
$sudo apt-get remove weechat-core
$sudo apt-get remove weechat-plugins
官網上的debian/ ubuntu repositories一個版本中有7個檔案,主要是安裝:
weechat-core_1.6-1_amd64.deb
weechat-curses_1.6-1_amd64.deb
weechat-plugins_1.6-1_amd64.deb
這三個檔案即可。
安裝完畢後,在終端機打入$weechat, 應該就會跑出其執行畫面了。


2)IRC configuration
因為weechat 一開始的設計開發目的,就是提供一個純文字指令環境下執行的irc聊天應用工具,所以先來看看其如何設定連上irc服務器。在weechat的原廠預設中,已經加入了freenode這個目前人數用戶最多的irc 伺服。一兩個月前,我有寫過重溫這個老牌網路聊天室的應用程式介紹以及如何申請自己個人愛用的帳號並利用密碼綁定讓別人無法再重覆使用同一個ID。如果已有一組freenode帳密,可以在下二行指令中輸入自己的帳密,以方便利用sasl登入。
/set irc.server.freenode.sasl_username "mynick" #下mynick改成自己的ID
/set irc.server.freenode.sasl_password "xxxxxxx" #xxxxx改成自己的登入密碼。

然後輸入 /connect freenode 就可以順利連上IRC囉

其它的指令,就如同我之前在使用IRC Client軟體的轉貼常用的指令:
/msg nickname&gt ##傳私人訊息給某人,聊天室其它人不會看到
/list ##列出伺服器上的所有聊天室頻道清單
/me  ##向其它顯示自己的狀態
/part 離開聊天室
/partall 離開所有聊天室
/ignore nickname ##忽視某人的訊息,尤其是來亂的傢伙
/chat nickname ##據說也是傳私人訊息功能
/bye ##關閉weechat
2)IRC configuration
因為weechat 一開始的設計開發目的,就是提供一個純文字指令環境下執行的irc聊天應用工具,所以先來看看其如何設定連上irc服務器。
在weechat的原廠預設中,已經加入了freenode這個目前人數用戶最多的irc 伺服。一兩個月前,我有寫過重溫這個老牌網路聊天室的應用程式介紹以及如何申請自己個人愛用的帳號並利用密碼綁定讓別人無法再重覆使用同一個ID。如果已有一組freenode帳密,可以在下二行指令中輸入自己的帳密,以方便利用sasl登入。
至於在weechat 環境底下的某些參數或環境設定指令,可以參考這篇中文的介紹

3)matrix lua plugin
上面寫了那麼多weechat從安裝到IRC連線設定,但那些沒什麼新意,重點是接下來透過延伸外掛lua的安裝,讓它可以發揮連線上matrix.org聊天室伺服器的強大功能,我的作法是參考這篇:A WeeChat script in Lua that implements the matrix.org chat protocol,先安裝好WeeChat & Lua deps(on Debian/Ubuntu)
sudo apt-get install weechat lua-cjson
然後再下載安裝matrix-protocol-script並進行相關設定
$git clone https://github.com/torhve/weechat-matrix-protocol-script.git #下載matrix-protocol-script
$Copy the script into WeeChat's Lua dir
$cp weechat-matrix-protocol-script/matrix.lua ~/.weechat/lua
$ln -s ~/.weechat/lua/matrix.lua ~/.weechat/lua/autoload ## Make a symlink into the autoload dir to load script automatically when WeeChat starts
$weechat
啟動weechat後,就會看到它自動連上 matrix.org


要補充說明的是,目前marix.org只能提供網頁介面的帳號申請,故先得在matrix.org(其實也就是網頁版的riot.im)申請帳密,才能在weechat上順利登入matrix.org的IRC主機)例如在下圖中所看到上面藍底白字的那一行,就是目前所在的聊天室的名稱,而在weechat的純文字環境介面下,則是透過「alt + ->」「alt +<-」(alt+左右鍵)方式來切換聊天室頻道或不同的IRC主機。當然也因為是純文字的關係,無法看到圖片或多媒體類型的檔案,也無法進行VIOP或視訊。


至於利用weechat在 matrix.org 進行端對端之間的加密聊天(encryption),開發者承諾未來會加入這項功能。雖然在這篇A WeeChat script in Lua that implements the matrix.org chat protocol最後有提到其它開發者有提供一些試驗方式,不過我完全看不懂這裏的安裝方法,所以暫時就算了。

系列小短片Cybersecurity Policy for Human Rights Defenders


一開始寫這篇文章的動機,是配合Global Partner Digital今年夏天讓人權工作者更了解網路政策的能力建議計畫進程,原本早該在一兩個月就寫完,但因為遇上一點障礙:不知道如何來整理論述自己目前為止對於「cybersecuirty」的理解,如何從人權觀點「更細緻地」來挑戰某些資訊安全的技術層面課題?所以這篇文章就荒廢了一段時間。後來居然連這篇自己都不知道在記錄什麼筆記「Privacy and Cybersecurity」都先公開了,趕緊來清理一下殘稿吧。

前一陣子有寫了二篇文章介紹「Global Partner Digital」為鼓吹讓更多人權工作者、人權組織投入賽博網路政策的討論與規則建構,其不遺餘力地透過手冊、指南、工具箱、小短片的製作發表來介紹網路政策入門、其與各種人權議題之連結(請另參見:Cyber Policymaking For Human Rights Defenders?20160730; 系列小短片How to engage in cyber policy-人權篇20160805

接下來,GPD試著再把將「網路政策」,焦點放到了「網路安全」、「資訊安全」與人權運動之間的關係,其相關材料有一本100頁左右的手冊與二支動畫小短片,短片已嵌入在本文之中,而手冊則可在此處下載: http://www.gp-digital.org/publication/travel-guide-to-the-digital-world-cybersecurity-policy-for-human-rights-defenders

Cybersecurity Definitions


Cyber Threats


我自己先翻完手冊“Cybersecurity Policy for Human Rights Defender”之後,再觀看二支小短片。不過倒是建議可以先看影片後,再來翻讀手冊的文字內容(其實大概看完影片就差不多了),手冊共有四章,目錄架構如下:

Chapter 1--Understanding cybersecurity
1)Defining cybersecurity
2)What happens without cybersecurity?
3)Cybersecurity measures
4)The dimensions of cybersecurity policy
  • a)information security(另見Chapter 2)
  • b)cybercrime (另見Chapter 3)
  • c)cyber conflict (另見Chapter 4)
5)Cybersecurity stakeholders and the challenges they face
6)How human rights relate to cybersecurity
  • information
  • networks:此指的是硬體的基礎設施
  • CYBERSECURITY MEASURES: PROVIDING COVER FOR HUMAN RIGHTS VIOLATIONS?
7)What a human rights based cyberspace would look like

Chapter 2--Cybersecurity as information security
1)International technical standards:總而言是各唱各調,尚無一統天下的共主出現。
2)Coherence of legal obligations and responsibilities
3)Map: data protection laws around the world
4)Information–sharing practices:
bilateral Mutual Legal Assistance Treaties (MLATs)
5)CERTs and CSIRTs
CERTs stand for : Computer Emergency Response Teams 電腦網路危機處理團隊。台灣也有所謂的「台灣電腦網路危機處理暨協調中心」(一個看似NGO,但可能更是GNGO??)。 CSIRT Computer Security Incident Response Teams.
6)Recommendations for human rights defenders

Chapter 3 --Cybersecurity as cybercrime
1)The Budapest Convention
網路犯罪公約,這個國際協議是歐洲委員會Council of Europe(非歐盟理事會Council of the European Union)所發起的一項國際條約,但其簽署批淮的國家並不限於歐洲47個成員國。除了國際公約外,也有不少國家通對了針對利用網路工作從事犯罪行為的國內法律。
2)Mass surveillance
3)Encryption : 建議參閱Amnesty International 今年初發表的報告「Encryption and Human Rights」
4)Anonymous internet use
5)Internet restrictions and shutdowns
6)Recommendations for human rights defenders

Chapter 4--Cybersecurity as cyber conflict
1)Major policy priorities and debates
2)Relevant policy forums
3)Recommendations for human rights defenders

GPD在這個中單元花了不少力氣談「Cybersecurity」的定義、內容以及人權組織之所以要關注cybersecurity policy走向的理由,當我看到第一支小短片中引述UDHR聯合國世界人權宣言第三條「Everyone has the right to life, liberty and security of person」,心中一震:原來60多年前在討論普世性人權內涵時,早已把安全這個概念放入。於是決定先試圖著找出「security」的指涉定義,然後再把cyber這個詞彙冠上去看看好了。查了一下網路上牛津字典對security此字的解釋:
1. the state of being free from danger or threat
1.1 The safety of a state or organization against criminal activity such as terrorism, theft, or espionage。
1.2 Procedures followed or measures taken to ensure the security of a state or organization
1.3 The state of feeling safe, stable, and free from fear or anxiety
2. A thing deposited or pledged as a guarantee of the fulfilment of an undertaking or the repayment of a loan, to be forfeited in case of default.
3. A certificate attesting credit, the ownership of stocks or bonds, or the right to ownership connected with tradable derivatives.


顯然在這裏只用得上第一個定義:所謂安全仍指讓人有免於恐懼與受威脅之自由;而在集體的社群、社會與國家層次,則是免受到犯罪行為甚致恐怖活動、入侵威脅所造成失序動蕩。從這兩種層次的意思,已經隱約地看到一個古典難題:也就是所謂的個人基本權利以及所謂「集體利益」「多數人利益」之間的競合,以及如何破解權力者假維護「多數人利益」之名,任意對個人基本權利踐踏侵害。犯了老毛病,順手再翻出由UDHR演生,對台灣政府與台灣公民已具有法律約束力的「公民與政治權利國際公約」、「經濟與社會文化權利國際公約」,兩公約除了各自在第九條中肯認了個人層次上當享有安全之保護外,但也在一些條文上,放入了某些例外狀況下對該基本權利的限制,包括「國家安全」、「社會秩序」、「公共衛生」。但不要選擇性地忽略公約條文中另一個同等重要的字眼--必要necessary,這些例外後門的通行與否都必須得經過法律與其必要性之檢視。

個人層次的網路安全
同樣的,在討論所謂「網路安全」時,不斥又再次要追問,當以國家安全之名,以保護大部份老百姓為最高目標,是否可忽略程序之正當、手段之必要與適當性這些對於個人保護的安全閥?難道因為數位化帶來的成本降低,讓原本應針對性處理的案例,便讓它隨意地昇級成為鋪天蓋網的批次連動式處分?當"國家"/“政客”/“上司”以安全故慮,而要檢查你的每一封往來電子郵件、聊天訊息的內容、了解你上了哪些網站、搜㝷什麼資訊,幾點幾分出現在哪個地點、購買哪些商品、聽什麼音樂看什麼書與電影(太好了,許多人根本是把不得快點把這些個人資訊交出來召告「眾人」啊),作為一個微小的個體可以做什麼主張與行動來保護「自己的安全」呢?

這幾年在全球人權運動的場域上,似乎有一股對公民社會遭到更嚴峻打壓的憂慮,其打壓不只來自集權獨裁政權學會了假法律工具大力箝制人民基本權利,還包括了「民主」體制中在面對經濟蕭條與外來者保守極端勢力抬頭的暗潮,一個中間階層流失,政治經濟各向往上下極端移動、意見自朝左右極靠攏取暖,不同觀點意見間能夠正向引發思考刺激火花的公共論壇日益萎縮。我自己在讀這些關於cybersecurity 材料的同時,心中想到的亦是:「shrinking of cyberspace」。或許shrinking一辭用在過往三十年互聯網蓬勃發展並不準確適當,但每每想到許多人可以毫不遲疑地投入超大型集中式數位平台服務的使用,我個人心裏實在感到發毛和擔憂。對「cybersecurity」套上萎縮一辭似乎也不是那麼恰當,某種程度,作為一個産業或是研究領域,它應該會是未來幾年的熱門顯學吧。我所憺心的萎縮恐怕是shrinking space for civil society and no cybersecuirty for human rights :當公民社會還以為這是20年前剛上線連網的年代,那個因為面對開放所以懂得謙遜、以為將是去中心化、權力分散作自己媒體的模式,早已不會再復返了,而吾人又該如何面對如今各自圍籬領地、失控地巨量個資監控和自干放手讓渡的個人理性意志呢?

Privacy and Cybersecurity 隱私與網路安全

本文為之前已介紹過美國哈佛大學網路與社會研究中心Berkman Klein Center for Internet & Society網路數位社會研究中心,Translating Research for Action系列的筆記整理之二。

過去三四個月以來,透過一些網路自由軟體在地化的投入,以為自己好像稍懂了一點什麼是「資訊數位安全」,最近聽聞台灣行政機關正在積極推動「資通安全管理法」法制化進程, 但看過這份法律草案以及相關文章報導後,卻又讓我倒退地困惑不解台灣官方在中央層級的高度到底是如何理解和看待「資訊數位安全」這回事?如果連法規本身要處理的關鍵詞----「資訊數位安全」,它的定義、範疇與相關行為人都欠缺合理明確的界定,又怎麼能侈談對這些行為的規範獎賞以及行為者之間互動制衡?但是以我目前對台灣「資通安全管理法」草案內容的理解,總感覺其含糊地把行政組織法與作用法混綁,以應付之前「國家資通安全科技中心設置條例」遭廢止,無主管機關處理「資通安全管理」課題的囧境。而作為法律本身,它卻留有許多空白授權讓行政機關再另以子法或行政命令推行。例如原本「國家資通安全科技中心設置條例」這個組織法要規範新成立主管機關的行政職責份際,在草案中卻可能變成授權由行政院自行定之?然後這篇資安處處長的專訪,我更加不了為什麼台灣行政部門的資安法草案,還要向坑坑洞洞的「個資法」看齊咧?主事者到底怎麼樣地理解「資訊數位安全」與隱私權之間的關係,以作出合宜的規範?



帶著這些疑問,我試著先仔細閱讀這份簡報,看看能否弄懂美國面臨數位資訊安全和隱私權之間競合關係的因變之道,再來思考台灣的情況吧。再次聲明此文僅為個人閱讀時同步作的中文初譯,目的只是因為近來腦力記憶退化的狀況,許多事情都不復記得,所以留下重一點痕跡之故而已。這份簡報的架構其實和之前「privacy and open data」一樣,分別為1)Ecoeysem Map;2) Action Map;3) Naviation Aid。

1) Ecoeysem Map 生態系圖表:系統轉變、挑戰與緊張關係
當前網路世代中雲端運算模式的發達、行動網路與穿戴式設備的普及,現代人可說是活在一個網路無縫接軌的服務與商品環境,消費者與用戶儲存在雲端的各種資料都依賴著業者所提供設備服務來存取使用,與此同時用戶個人資料或是企業組織的內部資訊也都掌握在雲端服務器提供者手上。除此之外,不僅是家用與個人電子商品紛紛建置連結網路形成所謂物聯網(Internet of Things),更多基礎工業設施如電能、自來水供應、機械化自動控制等,都連上了互聯網方便遠端多方搖控。這樣的網路生態變化,勢必也為資訊數位安全與隱私保護帶帶來了另一層面的挑戰與緊張。特別隨著各種意外事件的增加與恐佈威脅的擔憂,網路安全課題已昇級為政府政策之首。 
*資安事件(客戶資料被駭、商業機密被盜、網路設備失靈、政府監控異議者等等)層不出窮,但枱面下有更多是未被引爆或被外界知曉的資安問題。而引發這些攻擊的動機不一,有些可能是商業情報間諜,有些是執法部違法監控,有些是詐欺手法,但甚致也可能透過網路破壞實踐公民不服從的抗議。
*雖然公私部門都了解提高資安防範的必要,但情況並未見好轉。這可能是由於軟體與系統設計不良,造成可被攻擊的漏洞。有些業者雖然會提供修補來防制,但也有些服務或商品因應漏洞缺失提供改善更新。
*除了軟硬體本身的弱點外,另一個關鍵因素恐怕是人為疏失、缺之標準安全操作。
*上述狀況其實都是老問題,但今天資安更為棘手的新挑戰乃在於互聯網的發達應用系統之間互相聯繫,以及軟體協議更趨複雜,一旦只要攻克了單一系統的漏洞,很可能造成其它系統一併的癱瘓。
*發動攻擊的敵手越來越高明厲害,而攻擊工具或應用軟體市場其實正在熱絡交易。
*利害關係者各因其立場尚無法對資安課題有一致的解決方案

緊張、權衝其它考量
在這些看似緊崩的表象下,我們需要更深入權衡探究資安與隱私之間關係,故從不同的利害關係者社群來作分析:

消費者(個人或團體)
  • 喪失椌制:當越依賴業者提供的服務,就越得受制於業者所開出的隱私和安全防護措施。但對消費者而言,缺乏替代選項或是轉換成本越高,似乎就只能受制於業者控制。
  • 需要安全與隱私:消費者對安全與隱私的重視未必反應在其行為與習慣的調整改變,其它因素如價格、便利性也很可能決定其行為模式。但也有可能是其技術知能不足。
  • 方便、可用性與自主權:為了提昇安全,有些軟體或商品設計得更為複雜而難以使用,這也造成它在市場上不討喜。同樣的,太過繁複的使用隱私政策也會阻卻許多終端用戶。
  • 安全與隱私成了特級付費品:這可能會造成某種有錢人才能享受安全與隱私的社會分級。
生產者(軟體開發者、廠商、服務供應商)
  • 高度競爭與市場驅力:為因應高度競爭,軟體開發生命週期往往非常快速而顧不上安全考量。
  • 組織內部的資源與知識配置:安全往往被視為「支出費用」而不是將之當作「投資」,因為在會計資產負債表上它不會提高收益。
  • 孤立與資訊分享:因為擔心洩漏、反托拉斯侵權和規範審查,限制了公私部門之間的資訊交流,造成了雙方無法分享資安問題或漏洞的資訊孤立。
  • 獨立的安全研究與弱點揭露:雖然有些公司有獎勵方案來感謝外部獨立的安全研究者找出其漏洞缺陷,但更多的公司卻是以提告或視為犯罪行為來威脅這些外部獨立的安全研究者。另外外部獨立的安全研究者也可能在黑市中兜售他們的發現。
  • 規範與法制體系:大部份的生產者在現有的法律架構下並無須對商品/服務已知的缺陷負擔法律責任。消費者也很少能夠從資安事件中得到傷害損失的返還。這也讓許多公司不會將其入成本考量。
政府單位
  • 對公部門信任不足:尤其在政付被揭露了其巨型控制項目之後。
  • 政府角色與規範政策;法制變革緩慢,故美國政府多半採取擔任促進者、號召者的角色,來鼓勵業者發展標準或自律規範等最佳作法。
  • 公民自由權利、國家安全與外交政策;某些工具(如加密)雖然有助強化面臨資安威脅上的安全與隱私,但也有人擔心這類工具被惡意使用,這也增加了國家安全與外交政策上提昇民主價值之間協解的困難。

  • 政府利用商業軟體的漏洞缺陷:軍方、情報機關、執法單位等利用軟體的漏洞缺陷來進行調查、攻擊行動。這也加深了公共利益到底何者優先的困難。
2) Action Map:
「隱私和數位安全」要如何予以治理呢?這份部份也和之前的「隱私與政府開放資料」一樣,提出了以下五種可能的模式:
  1. 技術治理:透過科技可強化隱私保護與數位安全。例如美國商業部轄下的NIST(Naitonal Institute Standard and Technology)即發展出一套讓業者自願採行的網路安全標準,來協助他們作隱私保護與網路安全之間的管控。這套治理方法相信維持一個開放的網路生態並同時作好隱私保護。
  2. 市場治理:透過市場機制來影響個人或組織在網路安全與隱私保護上的行為。例如業者担供系統缺陷獎賞計畫,以鼓勵白帽駭客回報所發現的安全漏洞。美國政府發起的DHS Innovation Call,資助新創公司來開發安全商業與物聯網環境。這套方法崇尚市場中各行為者的自主性,希望以此能找出包容而多元的解決方案。
  3. 以人為中心的治理:針對個別行為,其方法公眾資安意識的教育推廣、號召開發者與業者合作找出網路安全審視方法等。希望因強化了使用者的知能,提昇其行為的自主性。
  4. 法律與政策治理:對現有的法令規範、政策協議評估如何修更或新增以處理數位安全與隱私的挑戰。例如2015年美國聯邦政府通過了Cybersecuirty Information Sharing Act, 有些州亦有法令要求如果發生資安事件遭致個資當事人資料外洩,業者必須以予告之。這個方式相信透過立法規範用來保護個人與公共部門的安全,為者來執行更高的個資隱私保護行為,提高問責與透明。
  5. 混合式治理:採用上述一種以上的治理方法,來處理網路安全與隱私的多面向課題。
3) Naviation Aid:認清重要機會
從1)2)部份的描述,這個複雜的生態系還會繼續不斷進化,所以決策者必須能預期和準備未來世代中所會面臨的隱私與數位安全的挑戰。相關的利害關係者,如政府、私部門、公民社會和學術界等必須一起合作來找出解決方法,故建議以下四種可能的合作方式:
*Information sharing and horizon scanning 資訊分享與水平檢視:決策過程能夠加入多方關係人的參與,來檢視科技與政策的發展
**號召利害關係者能分享資訊,討論數位安全的潛在威脅,交流可操作的資訊,以打破各領域的資訊封閉,提高多元觀點不僅協助決策者完整理解當前的資安景況,亦有能力預測其未來軌跡。 **決策者不妨發展組織之間的人員交換計畫,作為一種資訊交流的方法。
*Impact Assessments 影響評估:可讓決策者更準確了解資安與隱私體系之間緊張,以及各種可能對策的效果與代價。
**召集利害關係者來討論和列出潛在的介入手段。
**支持研究,了解政府在此領域推動干預手段對經濟影響。
*Transparency and education 透明與教育:鼓勵教育改善與透明計畫來協助消費者了解資安的重要更好地自我保護。
**政府與利害關係者合作,找出評量與宣導資安實踐的好方法
**支持原型公測開發,並進行小規模消費者樣品測試,再公佈這些標準草稿以進一步強化其透明度。
**與網路安全實驗室合作,支持其評估與改善透明度的效果。
*Allocation of Risks and Decision-making 風險與決策:了解風險的私人與社會成本,以及負責決策必要性。其有助於認清哪些行為會侵害維護安全可信賴的軟體生態而哪些作法可以強化。
**政府與其它利害關係者一起合作,理解其在決策上的利害考量,以發展企業決策能影響整個產業態系。例如軟體開發者或業者能自願建立在隱私和安全上的最佳示範作法。
**與相關利害關係人討論新的治理機制,以協助其能最佳地內化資訊數位安全的風險成本。

後記
若用一兩句話來總括這份簡報,就是精要地描述現況後,從「網路安全」與「隱私」議題相關的利害人觀點來討論各種治理方法以確認處在當今與未來社會的各種挑戰下,兩者能繼續兼容。當然十六頁的簡報也只能先暫時把網路安全的焦點放在「隱私」憂慮這個面向上。如果回到台灣「資通安全法」草案內容的初探,根據行政院提案的「資通安全法」草案版本(2016年10月13日為準),對於所謂「資通安全」給予了如下的定義:
指防止資通系統或資訊遭受未經授權之存取、使用、控制、洩漏、破壞、修改、銷毀或其他侵害,以確保其機密性、完整性及可用性。
這段定義文字有種似曾相識的感覺,在之前閱讀另一份「government hacking and human rights」,其中即對government hacking予以了幾乎是如出一轍:
the manipulation of software, data, a computer system, network, or other electronic device without the permission of the person or organization responsible for that software application, data, computer system, network, or electronic device, and/or without the permission or knowledge of users of that or other software, data, computers, networks, or devices ultimately affected by the manipulation。
我上面引述的段落中少了主詞,但在原文的脈絡下指的就是「政府」這個物體啊!然而一直作為最可能侵害人權行為的當權者從來不會立法來砸自己的腳,除了遮掩模糊政府本身可能就是破壞資通安全者之一的現實,將之推卸為某公務人員個人行為,草案條文中規定了不少對於私人部門的管理控制,讓這部法律草案完全沒有一點現代民主社會的「法治國」態度。回想這幾個月來讀到許多資安事件,其攻擊或缺陷造成的後果,早已不僅只是用戶個人資料外洩這種令一般人無感痛癢的問題,而是已經入侵到了對於網路言論自由、資訊自由交換流通的威脅(如前一個月發生前華盛頓郵報資訊記者Brian Krebs網站受到「人類有史以來」流量最大的型DDOS攻擊讓主機商都受不了龐大維護費用的商業損失只能將其撤下站,而攻擊發動者則是利用上千部IOT網路攝影機不知不覺中成了攻擊僵屍)。除了人權倡議者高談的「隱私權」、「言論自由」等抽象價值受到侵害的擔憂外,說一點實際的風險好了:I Spy Doc網站製作的小短片,清楚地揭示網路攻擊演變成世界人類戰爭的可能性與後果,這種看似上世紀科力幻小說中出現的威脅離我們還會遠嗎?除卻個人使用習慣的安全意識提昇外,企業和政府又該負起什麼樣的責任且同時受到什麼樣的規範,這便是我所指的,在促進「資通安全」的上位法規在草擬設計時,也該思考如何對執政者予以約束,以確認人民基本權利不致受到侵害的法治基礎。

寫了半天,資訊數位安全含括的硬體建置、軟體漏洞、心理層次、隱私與資訊自由、甚致是人身安全,這麼多領域的課題,雖然我還是根本搞不懂什麼是資訊數位安全啊。但總覺得此議題不能輕易由技術專家來獨斷話語權啊。

Recommendations for human rights based approaches to cybersecurity

Sphinx / reStructuredText

之前曾簡介過了pelican由python 寫成的靜態網頁產生器,這篇文章則是有關另一個類似亦由python寫成,適合來作成如網頁電子書型態的文件資料產生器Sphinx,它也是目前python官方網站上用來呈現其技術文件的架站軟體。

1)安裝Sphinx
如同pelican, Sphinx亦是透過pip 進行安裝,請在CLI文字指令介面下輸入一行,即完成其安裝。當然前提是該電腦環境已有python2以及pip
$ pip install -U Sphinx

2)建立一個使用Sphinx的新專案
建一個專案目錄,透過CLI把目前工作目錄切換到此新專案目錄底下後,輸入以下指令:
$sphinx-quickstart
這時後台會自動來建立相關檔案目錄架構,不過在此同時它會先向你詢問這個專案設定的一些基本問題。我大概都是按「y」(yes)吧,回答完它的一長串問題後,Sphinx就把這個新目錄的資料架構檔案給生出來。




在Sphinx自動生成的一堆檔案中,有一個叫作index.rst檔案,它就是主文件master document,也就是這個專案的「首頁」。從副檔名rst來看,Sphinx使用的是一種叫作「reStructuredText」的文件格式。它一樣可透過純文字編輯器作編寫修改,據說其用法和makrdown相類似,但因其功能更為強大,所以要稍複雜一點。下圖就是index.rst的文件內容。

以我個人摸索sphinx文件結構的少數經驗,建議從沒碰過reStructuredText語法者,可先從這篇:「Sphinx-用reStructuredText 寫網站與書」中的「reStructuredText 的標準語法」段落,尤其是搜尋一下文章中所推薦的eStructuredText 簡易入門一文(原文的連結已經失效了,不過如果透過搜尋引擊還是可以找到這篇出自openfoundry.org的文章),至少先知道怎麼寫標題、作超連結、插入圖片等基本的使用方法即可。

知道了一些最最基本的reStructuredText之後呢,應該會有點信心可以來動手修改透過sphinx-quickstart指令所自動生成的index.rst檔案了。index.rst文件中的文件結構指令「.. toctree::」它有兩個作用,第一個就是告訴 sphinx 檔案是如何被排列組織的;第二個用途是在當前的頁面位置中嵌入目錄。例如我把在toctree加入這三行,代表欲插入三個文章連結。

然後還要在與index同一層目錄下,新增檔名為:preamble.rst, chapter 01.rst, chapter 02.rst 這三個檔案,接下來就可以對文件進行內容的編輯或撰寫。等文件寫好存檔後,只需要將CLI文字指令切換到此專案目錄底下,並輪入$make html ,則shpinx就會自動把rst文件轉換成為html格式,並建立好相對的文件結構目錄(一般是存放在該專案資料夾底下/_build/html/ 底下)。例如我打開這個index.html(是的,sphinx和之前的pelican, hugo, jekyll不太一樣,要看它輸出轉成hmtl的效果直接開啟html檔即可,不必呼叫伺服器指令),其呈現效果如下:


咦,對照之前index.rst當中在toctree之後放入的文字,怎麼有點不太一樣咧?不一樣之處在於:a)preamble/chapter 01為何在html的首頁中變成了「前言介紹」/「第一條」而且「第一條」底下的子標題居然也一併出現了? b)怎麼chapter 02的連結沒出現在首頁中呢?如果再看看我的chapter 1.rst 的內文模樣:

因為有依reStructuredText語法,將「第一條」作為文章標題,所以sphinx在將其轉換為html的過程中,就會自動把這個檔案的主標題作為目錄條次。並且因為在toctree之處,我還設定了「maxdepth: 2」,這表示在首頁會呈現二層連結,故chapter 01.rst的子標題「人民自決權」也一併地出現了。同理分析chapter 2.rst的語法結構,因為我並未設定其標題,故在轉換成html的過程中,sphinx雖然也有把該檔案轉換成chapter 2.html,但並不會在首頁為它放入此文章連結。


看看把chapter 2.rst修改放入了文章標題語法,但不加子標題,果然在首頁的顯示就沒出現第二層的子標題。



以上是對Sphinx簡單的介紹,老實說,對於一般人而言,如果要編電子書或是製作網頁型的長篇報告,我可能還是會偏向建議直接透過gitbook平台來操作比較輕鬆,省去了還要再學reStructuredText語法的麻煩。而reStructuredText比較強的優點,可能透過主標題次標題的文件結構自動抓取,適合作長篇式書籍類型的章節層次感展現。
至於其產生的網頁檔以及相關資料,只要透過git或ftp方式,即可上傳佈署到網頁空間上作發表,我就不再重述。例如之前曾介紹過的Pubstorm 就是一個不錯的方式,其免費帳號目前能享有10個網站專案額度,且支援自定的網域名,和不另收費的SSL(Let's encrypted)功能,個人高度推薦。


Privacy and Open data 隱私與開放資料



美國哈佛大學網路與社會研究中心Berkman Klein Center for Internet & Society作了不少有關網路數位社會的各面向有趣的研究,其中有一個系列叫作「Translating Research for Action」大概是希望能把高塔中的研究論文轉化為更易親近的政策指南與社會行動綱領。其中有一份研究簡報是關於「隱私與開放資料」,希望一方面當越來越希望各級政府能夠「開放資料」以提高其決策透明與責任擔當,但如果其中擬開放的資料涉及個人資料、隱私問題又該如何處置,是否將透成隱私與開放資料政策之間的緊張矛盾?故該研究簡報希望提供一個簡明的現況發展綜覧,並整理歸納了相關因應的治理方法來處理上述的衝突。

十三頁的簡報以三大部份構成,分別為1)Ecoeysem Map;2) Action Map;3) Naviation Aid。推想原始研究的重點應該是第二部份,標示出「隱私與開放資料」之間正在發生議題,又如何從各相關利害者為出發來識別不同治理方式以及找出可能的最佳解答。個人讀過後覺得這份簡報其實太過簡單了,或許可以把原始研究報告的這個部份再找出來了解,不過要克服某種懶病也不是那麼容易。既然自己已讀完簡版的整理,就乾脆先把自己作的中文初譯放上部落格好了,其目的只是因為近來腦力記憶退化的狀況,許多事情都不復記得,所以留下一點痕跡或許一個月再偶而看到會有新的刺激吧。

1) Ecoeysem Map 生態系圖表:從聯邦中央政府到地方層級相關政策的綜覧  
在這個快速由數據資料驅動的世界裏,提供簡明的總體構造變化,並指出近期有關隱私和開放資料的變化發展。
*Falling costs of data collection, processing, storage, analysis, and release 資料數據收集、處理儲存、分析與發佈的成本大量降低:讓公私部門不管規模大小,更容易進入該門檻來面對大量數據資料。例如:消費者在社交網路上的活動、智慧手機應用提供及時客制資訊但同時也讓企業收集其資料、數據模型應用在新興服務產業等等。 
*Demand for data is growing across sectors跨部門對於資料數據需求不斷成長:從企業到政府部門、學術研究單位,甚致是社會運動組織,都在探求新來源收集資料數據以支援其利潤活動開展、研究發現或是社會議題支持者。
*Data privacy risks are growing due to advances in analytical capabilities 資料隱私的風險也隨著分析能力的進化而提高了。有別於傳統對隱私的處理方法,一些新演算法展示了其能夠依取得的數據(即使宣稱資料已去識別化或加總的數據統計),重新辨別或描繪個人模樣。
*New tools for privacy protection are being developed 新式的隱私保護工具正在發展中,它們突顯了一般方式的不足。這些工具,包含程序面、經濟面、教育、法律與技術控制來確保隱私和安全,以提供資料收集機構作為資料收集、處理、儲存、分析與發佈等階段的新標準。
#####簡述今日隱私與開放資料的景觀,包括其主要角色、驅動者與張力
*Demand for access to government data is high 對政府官方資料近用的需求增高:不管是記者、公民組織、研究者等等,希望能重新使用政府資料以進一步強化其透明和問責,改善其效能與應變能力,提高創新與經濟效益。 
*Technological advances in data collection, processing, and sharing are leading gov-
ernment agencies at all levels to adopt open data policies 資料收集、處理和分享的技術進步,讓各層級政府部門必須採行開放資料政策,希望開放近用成為政府資訊的理所當然狀態。
*Governments rely on a narrow subset of tools to analyze and mitigate privacy
risks政府依賴有限的工具組來分析與減輕隱私風險:故其資料的釋出常只基於臨時性的利益平衝而不是系統性地認清與討論隱私風險與危機。
*Guidance on interpreting and applying regulatory standards for privacy protection is limited:對於隱私保護的解釋方式與規範準備應用往往有限,導致了政府部門之間對於資料處置的差異。例如在中央層級部會,可能不乏相關隱私保護的要求與方法指南,但在實際特定的執行上卻又欠缺足夠可行的指示,讓許多部門無法決定如何適當地使用這些新隱私工具在其部門的資料數據處置過程。

2) Action Map:關鍵的進行中議題,以不同治理方式和相關利害者為區分 
所謂治理方法指資訊如何被產生、分享、取得和利用,可分成五大類:技術治理、市場治理、以人為中心的治理、法律治理和混合式治理。  
*技術治理:透過科技來強化開放資料的隱私保護,其方法有SDL技術、加總統計、加密、資料視覺化、綜合式式數據、互動查詢系統、安全的加乘計算、差異性隱私、不可替換式審查記錄等等,這套治理方法相信新發展中的隱私技術或相關模型可以對個人或企業提供充足的私密保護。    
*市場治理:透過市場誘因來強化開放資料的隱私保護。方法有:收集資料付費、建立相關個資使用的市場機會或予以罰款等。其相信使用收費來降低資訊傷害風險,同時提高經濟價值。
*以人為中心的治理:主張人際間的關係,其方法有透明通知、教育型材料、公共論壇、元數據、數據組合登記、隱私儀表控制、委員會與個人資料商店等。其認為以人為中心,培力對資料釋出的決策,讓它能更充份地知情理解隱私之風險並達成社群對於不同價值之間權衡的共識。 
*法律與政策治理:改革現有的各層級的法令規範、政策協議來應對開放資料中的隱私挑戰。故其方法有:資料使用協議契約、檢查表、隱私影響評估、相關法令政策等。這個方式可以用來指引行為者來執行更高的個資隱私保護行為,也能提供透明問責機制,糾正其它治理的缺失。
*混合式治理:採用上述一種以上的治理方法,例如分層式近用方法,以調整配合特定資料釋 出的特定目的與其相關隱私風險,帶來其正向的效能與保護。  

3) Naviation Aid:指引決策者能識別與追求目標
決策者如何回應數位社會當中隱私和開放資料的景觀變化?一方面可應變隱私保障挑戰一方面又抓住開放資料潛在的龐大機會,新社會型操作系統下有四大重要領域
*資料:開放資料管理者應考慮採用標準化程序來分析,故一個結合資訊安全的生命循環模型,來類別化資料使用與隱私風險,可作為一套分析架構。 
*價值:投入多方利害關係者(隱私權專家、資料的消費者或使用者、公部門等)建立對話,以找出資料使用者社群與資料當事人社群的價值,以促進開放資料之利益與採行對個人隱私安全的相關措施。
*設計和方法:適當的開放資料管理,包括考量使用新的程序規範或科技方法。
*評量:持續地檢視和評估其資訊公開決策與分享機制



Pelican 另一個靜態網頁生成器

最近因為重新練習python 的一些語法、模組應用與操作,看到了有這麼一個「Web Scraping 101 with Python」部落格(我試著按上面的方法來學習,但不太推薦新手從這裏學習,作者可能假設對像都有部份編程基礎,所以程式碼用法偏向中階,且講解說明有點簡略),其部落格架軟體是Pelican,一個由python寫成的靜態網頁產生器。
之前已有介紹過hugo(language go); jekyll(ruby)這二個靜態網頁產生器,那麼怎麼可以不來試試這個由python撰寫的類似工具呢?於是我立馬在自己在電腦上試著安裝。

1)透過pip 一行安裝。
既然pelican是利用python寫成的應用,就得透過它的套件管理程式pip來安裝,如果電腦中已安裝好了python, pip, 只消在CLI命令列打入一行:
$pip install pelican markdown
沒錯,我們已經輕鬆完成了它在本地端電腦的安裝。若好奇這是怎麼回事,想一探它的原始碼,可在github上找到

2)建立新網站專案
在自己的電腦上,建立一個目錄夾,以作為新網站(網頁)的工作區,在文字指令介面下,將當前工作目錄切換到此建立的新目錄底下,並輸入以下指令:
$pelican-quickstart
這時電腦就會自動替建置一個靜態網站專案,並詢問你一些問題,例如網站標題、網站作者、存放位置、網址、時區、要不要利用ftp上傳、要不要放上gitpages等等。問完之後,pelican就會在此新專案目錄底下自動產生相關的檔案與資料目錄。例如下圖二是它的資料夾內容結構,其中content資料夾就是用來存於網頁資料內容的地方



3)Markdown 語法寫作
pelican支援Markdown語法寫法,所以可利用個人慣用的純文字編輯器來寫作即可,它的文章格式,大約是要求提供這標題、時間、文章類別等幾項資訊,接下來就可以進行內容的撰寫。
######
Title: My First Review
Date: 2010-12-03 10:20
Category: Review

這裏開始寫內文 Following is a review of my favorite mechanical keyboard.

#######
文章寫好後,存檔放在content資料夾底下,並在新專案工作目錄下的CLI指令行打入:
$pelican content
這時pelican會自動生成一個「output」資料夾,這裏面就是轉成了html格式網頁內容。


4)預覧網頁與套用綏網頁模版
將當前的工作目錄切換到新網頁專案的output目錄下,並打入以下指令:
$python2 -m pelican.server ##我電腦上雖然同時安裝了python2.7 與3.4版,而系統默認的是3.4版。但若我直接輸入python則這行指令回傳無相關模組的訊息,故我改採python2 來啟動此行。
然後打開瀏覧器,在網址列輸入:http://localhost:8000/ 就可以看到新專案網站的模樣。


目前pelican 收集了近100個網站主題樣式套件
http://www.pelicanthemes.com/
用套用某一個中意的模版,就是把它下載(或用git clone)後,修改pelican的設定檔案pelicanconf.py 加上這一行:
THEME = "/home/user/pelican-themes/theme-name" ##請再依模版名稱與存放位置作修改
pelicanconf.py 改好存檔案後,要再執行$make html 指令,利用Makefile讓原本已生成的html網頁配合更新為新採用主題模版。
同依前一步驟
$python2 -m pelican.server
然後打開瀏覧器,在網址列輸入:http://localhost:8000/ 應該就可以看到新專案網站的模樣。
就可以看到新的模版樣式已被全站套用了。


5) 發佈到伺服器主機或gitpage
如果是採ftp方式,就是把output底下的內容全部上傳到某網站伺服器www/底下。gitpages應該也與之前hugo網頁發佈, jekyll的作法大同小異吧

Security First: umbrella app 中文化滙整

之前提過會作一篇 Security First's umbrella app 滙整與中文化超連結整合,以讓未下載使用、觀看過原手機應用的讀者(其實指的就是錯亂的我自己本人)稍能有全盤的概念來想像這個手機應用程式(或更精準的說:一個手機上的隨身電子書)的內容。好了,本文...