<template>
  <article class="report-page">
    <div class="report-page__wrapper">
      <h1>政府推行數位身分證，我覺得⋯⋯</h1>
      <div class="intro intro--report">
        <p>​身分證要改版了！明年，政府預計將現有的紙本身分證，換發為裝有晶片的「數位身分證」。政府認為數位身分證更能防偽，使用者更能自主掌握個資，也會讓生活更便利，且不存在政府監控的問題。</p>
        <p>​但包括民間團體與專家學者在內的反對者，卻有不同的意見。我們透過線上參與式投票系統 pol.is 在網路上蒐集意見，引起這樣的討論：</p>
        <p>「我覺得政府為了提升服務效能，串連存在不同機關的民眾個資，是可以接受的」</p>
        <p>「我覺得政府只要廣發或低價發行自然人憑證即可，不需要一定併入身分證」</p>
        <p>「我贊成各部會存取民眾的個資時，都要求一組獨立的密碼，增加資料庫的安全性」</p>
        <p>「一卡搞定，好恐怖⋯⋯」</p>
        <p>「紙本的資料庫，坦白說也是有資安疑慮的風險」</p>
        <p>「任何理由不能侵犯個人隱私權」</p>
        <p>結果顯示，多數網友贊成「政府開放更多線上服務」，但前提是「政府應重新檢視與個資相關的法規，再全面推動數位身分證換發」；更有超過七成的參與者不同意「政府無限擴權使用民眾個資」，希望能在個資被取用前收到通知。</p>
      </div>
      <ReportFigure src="infographic/5" caption="來源：<a href='https://polis.pdis.nat.gov.tw/report/r6fywxx6pd6nze2nmvhjd' target='_blank'>READr 大調查：你接受政府換發數位身分證嗎？</a>" />

      <div class="intro intro--report">
        <p>而經過系統計算，參與者被分為「較贊成數位化政府」的 A 群，與「對數位化政府較有疑慮」的 B 群，其中 B 群人數是 A 群的 2.8 倍，顯示對這個政策抱持懷疑的人比較多（<a href="https://polis.pdis.nat.gov.tw/report/r6fywxx6pd6nze2nmvhjd" target="_blank">看完整的 pol.is 投票結果</a>）。</p>
        <p>從數位身分證規劃以來，掀起關於隱私權、資安、數位資料應用⋯⋯等等爭議，特別受到科技、法律、人權等領域的專家學者關注。原訂於今年 10 月開始的換發作業，政府以武漢肺炎疫情影響與國外廠商的接洽進度為由，將時程調整至 2021 年初在部分縣市先小規模試行。</p>
      </div>

       <h2 class="sub">「秀才不出門，能辦天下事」</h2>
      <div class="intro intro--report">
        <p>臺灣的身分證至今已經歷經 6 次改版，但目前仍是一張記載了個人資料的紙卡。歷經 15 年的使用，行政院在去年 6 月拍板數位身分證換發計畫，將結合「紙本身分證」與目前使用政府服務的數位鑰匙「自然人憑證」，預計用 2 年半的時間，將全臺灣人民的身分證換發為搭載晶片的數位身分證。</p>
      </div>
      <ReportFigure src="infographic/2" />
      <div class="intro intro--report">
        <p>行政院長蘇貞昌表示，換發數位身分證後，未來政府會提供從出生、就學、就業輔導、再到終老關懷的個人化服務，整合政府的各項服務如：社福、保健、津貼、保險、年金、稅務、監理等等，精準服務民眾，可說是「秀才不出門，能辦天下事」。以往必須臨櫃辦理的各項服務都將變得快速便利。</p>
        <p>內政部更公開舉出數位身分證的幾項優點：防偽升級更安全<NotationUnfolded><p>採用 PC （聚碳酸酯）為材質的卡片體，卡片內的晶片封裝後無法取出，無法被側錄，也無法複製偽造。</p></NotationUnfolded>、卡面個資最小化<NotationUnfolded><p>現行的身分證正反面上共有 11 項個資，未來數位身分證上只會有 5 項。將實體數位身分證交給辦事人員時，會被直接看到的個資比以前少了一半。</p></NotationUnfolded>、敏感個資存晶片<NotationUnfolded><p>較敏感的個資會儲存於晶片內，且依據重要性不同實施分區、分密碼保護。依照最新的規劃，已知有四區。一般只需辨識身份的使用情境下，不會要求讀取加密區的內容。若政府部門或金融單位要取得民眾加密區內的資料，要向內政部申請授權，內政部會依機構工作需要，控管哪些欄位可以被讀取。</p><ReportFigure src="infographic/3" /></NotationUnfolded>、個資仍分別儲存在主管機關<NotationUnfolded><p>內政部表示，數位身分證內只有提供辨識使用者身份的資料，民眾在政府內的個資例如健保、勞保、 財稅、監理⋯⋯等資料，仍個別存放在各機關資料庫。</p></NotationUnfolded>、沒有國家監控問題<NotationUnfolded><p>政府不會收集民眾的數位身分證使用紀錄，線上驗證不需要連回內政部，因此內政部不會得知民眾的使用歷程。</p></NotationUnfolded>。</p>
        <p>國發會也舉武漢肺炎疫情中的「口罩實名制」為例，機構可以運用資料分析口罩的產能，以及藥局逐日發放情形，改善特定區域、特定年齡層的口罩數量配置，滿足民眾的購買需求。在有了數位身分證後，這類的便民服務將會變得更多更頻繁。</p>
      </div>

      <h2 class="sub">反對者：資安、隱私、法源都有疑慮</h2>
      <div class="intro intro--report">
        <p>雖然政府多次向民眾宣導數位身分證將帶來更便利的生活，也舉辦論壇、公聽會等公民討論，但部分民間團體認為，政府的「溝通」是在自說自話，對於民眾提出的一些質疑避重就輕，或「已讀不回」。</p>
        <p>民團認為的行政程序瑕疵也不只發生一次。明明原本宣稱的上路時間在即，5 月底，身分證內晶片分區儲存的資料欄位又有變動（從 5 區減為 4 區），目前在招標書公告的規格仍不一定是最終版本，難免讓人疑慮：政府真的準備好了嗎？</p>
        <p>5 月 14 日，臺灣人權促進會等團體召開記者會，發起「反對全面換發晶片身分證」連署，當時已有超過 1300 人參與，還包括超過 250 位專家學者。連署的 3 大訴求是：「保留無晶片身分證的選項」、「暫緩發放，先就資安及隱私風險立法或修法」、「政府應設置獨立的隱私保護專責機關」。</p>
        <p>針對這 3 大訴求，READr 訪問國發會和內政部，均得到初步的解答。而內政部也表示，自 2016 年起就不斷與民眾、民間專家學者溝通關於換發數位身分證引起的爭議。為爭取民眾的安心與信任，換發初期會選定部分縣市進行小規模試行，試行期間如有問題，會修正後再全面推行。</p>
      </div>

      <h1 ref="title1">爭點一：會不會有獨立專責機構保護民眾隱私？</h1>
      <h2 class="sub">政府：正在研議，但不是為了數位身分證的換發</h2>
      <div class="intro intro--report">
        <p>數位身分證上路後，民眾用數位身份使用更多元的政府服務，將會累積愈來愈多數位資料。在 READr 的調查中，政府可不可以使用民眾的個人資訊，就是一個相當分歧的題目。</p>
      </div>
      <ReportFigure src="infographic/7-a" />
      <div class="intro intro--report">
        <p>有人願意犧牲部分的隱私權，讓生活更便利；但有人擔心授權之後的事不夠透明，或授權範圍超出想像。開放文化基金會董事長李柏鋒認為，政府目前管理民眾個資的程度，不足以因應數位化政府後可能衍伸的問題。</p>
        <p>例如：在跨部會資料串接的服務發生問題時，民眾該找誰負責？透過網路買口罩時個資外洩，是握有健保資料的健保署負責？還是發數位身分證的內政部？目前臺灣《個資法》採分散式管理，沒有單一主管機關，職權分散在各直轄市、縣（市）政府，不同行業的個資主管機關則分屬各部會，共有環保署、農委會、公平交易委員會、交通部⋯⋯等數十個。</p>
        <p>因此，同為力主暫緩發放數位身分證的台權會認為，為了保障人民個資不被濫用，政府應該先建立「獨立的隱私保護專責機關」，由各領域的專家學者組成，此機關不隸屬任何部會，專責獨立處理與個資有關的問題。</p>
        <p>行政院已在 2018 年 7 月將《個資法》的法律主政機關移交給國發會。由國發會協調，避免各機關對《個資法》的解釋不同而有衝突的情況。而國發會目前已在規劃中的「個資獨立專責機關」，並不是為了數位身分證而設立，也還無法確認會不會在正式發放數位身分證前設置。</p>
        <p>這個機構，是為配合歐盟於 2018 年開始實施的《一般資料保護規範》（General Data Protection Regulation，GDPR）<NotationUnfolded><p>GDPR 嚴格規定歐盟境內的個人資料，原則上只能傳輸到經認定具有充分個資保護能力的國家或地區，國發會在 2018 年底向歐盟申請適足性認定（adequacy decision）。</p></NotationUnfolded>而設置。目的是強化臺灣整體的個資保護，協助臺灣企業與歐盟間的跨境資料傳輸，目前正在等待與歐洲諮詢後的評估報告回應，才會開始個資獨立專責機關組織法草案的作業。</p>
        <p>台權會副秘書長何明諠表示，樂見政府籌設獨立的個資專責機關，但需要持續監督，確保機關真的能以保障人民權益為目標獨立運作。他指出，若是由國發會籌備，機關的獨立性令人懷疑，因為國發會的目標之一是推動國家建設與經濟發展，這個目標有時與保障民眾的隱私有所衝突。</p>
      </div>
      <ReportSituation
        :intro="situations[0].intro"
        :question="situations[0].question"
        :percentages="situations[0].percentages"
        @submit="(values) => { handleSubmit(values, 0) }"
        class="report-page__situation"
      />

      <h2 class="sub">資料會不會在民眾不知情時被其他機構串接應用？</h2>
      <div class="intro intro--report">
        <p>民間團體關注的另一個問題，是資料與資料之間的流動。若有一個服務同時需要兩個不同部會的資料，資料如何串接？授權時民眾知情嗎？</p>
        <p>國發會回應，機關蒐集、處理及利用民眾個資時，皆須符合兩個必要條件：第一，依法（該機關依照法定職務必要範圍搜集民眾個人資料）；第二，需要當事人同意。</p>
        <p>國發會以建置「數位服務個人化（MyData）平臺」為例。民眾若要申請高中生中低收入戶的學雜費減免服務，可以在 MyData 平臺經身分驗證後，從衛福部下載所屬低收入證明資料。經過經民眾再次線上同意後，才將該證明資料傳輸給教育部國教署，辦理學雜費減免服務。民眾的「同意」僅限於當次資料傳輸，不是永久授權這份資料可以無限制地傳給其他部會。</p>
      </div>

      <h1 ref="title2">爭點二：法律完備了嗎？應就資安及隱私風險立法或修法</h1>
      <h2 class="sub">政府：不用立專法，也無修法必要</h2>
      <div class="intro intro--report">
        <p>除了沒有專責機構，民間團體也認為現有的法律不夠完備。如愛沙尼亞、德國都有為數位身分證的發行訂定專法，明確以法條限制數位個資的傳輸、利用，何明諠認為，臺灣最理想的情況是訂定數位身分證專法，並讓人民可以自由選擇是否領取數位身分證。</p>
        <p>他分析，現在臺灣的個資法「容易被寬鬆解釋」，法條中對個資的運用規範很抽象，公務機關在「為維護國家安全或增進公共利益所必要」時，可以在原本收集個資的目的之外使用。</p>
        <p>但究竟「國家安全」、「公共利益」的界線在哪裡？政府什麼時候可以擴張權力使用民眾的個資，沒有明確的法律規範。</p>
        <p>例如在武漢肺炎防疫中，因應「防疫需要」而串連民眾的出入境資料與健保資料；在健保資料上對醫護人員、空服員等「高風險」職業做註記；透過民眾的手機信號得知民眾的行蹤等等，都是民眾事前不知情、過程也無法說不的例子。</p>
        <p>但「立專法」的過程與時間難以估計，民間團體也可以接受從修法開始做起。</p>
        <p>開放文化基金會認為，因為新的數位身分證與傳統紙本身分證，使用方式有很大變革，《戶籍法》應該新增「數位國民身分證與自然人憑證」一章，規範有別於紙本身分證的數位個資使用。</p>
        <p>例如：數位身分證裝有晶片，可能具有追蹤人民行蹤的功能，應該修改原本《戶籍法》對於身分證應隨身攜帶的規定；或是政府應完整公布數位身分證及自然人憑證的驅動程式原始碼，讓社會大眾自由研究、修改，畢竟涉及國民隱私的數位個資，若存取、讀取技術都只掌握在特定廠商的封閉系統當中，一旦遭到有心人士破解，民眾的隱私會大受影響。</p>
        <p>國發會認為，是否換發數位身分證、是否由民眾自由決定開通電子身份驗證功能等議題，回歸《戶籍法》就足夠，不需要訂定專法。至於民間團體建議加強個資法，國發會則以「審酌各國立法例，都沒有看到在《個資法》訂定相關規定的前例」為由認為無修法必要。</p>
        <p>而關於民間團體建議、內政部主管的《戶籍法》修法，內政部則回應，第 52 條授與內政部訂定身分證的「格式」與「內容」的權責，身分證納入「晶片」，就是有關身分證「格式」與所載「內容」的調整，不需要再修。</p>
        <p>內政部也認為，在個人隱私、資訊安全的保護方面，現有的《資通安全管理法》、《電子簽章法》、《個資法》等法規已經建構綿密的保護網，無需再另訂專法；內政部也曾發函詢問各主管機關，是否配合新版數位身分證修法？但「相關機關均表示並無修法之必要」。</p>
      </div>
      <ReportSituation
        :intro="situations[1].intro"
        :question="situations[1].question"
        :percentages="situations[1].percentages"
        @submit="(values) => { handleSubmit(values, 1) }"
        class="report-page__situation"
      />

      <h1 ref="title3">爭點三：一卡多用好可怕，我可以不要使用數位身分證嗎？</h1>
      <h2 class="sub">政府讓步：可以</h2>
      <div class="intro intro--report">
        <p>其實臺灣政府不是第一次推動「一卡多用」的超級卡片，1998 年，就曾有結合身分證、健保卡、電子簽章、指紋等功能的「國民卡」BOT 計畫，但最後因反對一卡多用的聲音而終止。同時具有政府和學界經驗的中研院資訊科學研究所研究員何建明，當時也是反對者。事隔多年，他再次站上反對數位身分證的前線，堅定反對「一卡多用」，他認為，政府不能一味跟民眾強調「多方便」，卻避談可能的風險。</p>
        <p>何建明表示，政府裡有關於報稅、健保、戶籍、財產權等等各式各樣的資料庫，目前都是獨立分開的。這些資料是否能靠一張卡或一組帳號密碼就全部拿到？政府應該給出限制。這一項在 READr 的調查中，意見也相當分歧。</p>
      </div>
      <ReportFigure src="infographic/8-a" />
      <div class="intro intro--report">
        <p>何建明表示，他很期待能有一個更貼近人民需求的智慧政府，「但不能老是遇到數位身份認證或識別，就想到要做身分證。」他指出，《戶籍法》有規定「國民身分證應隨身攜帶」，身分證是國家強制人民要拿的，但很多政府服務並不是每個人都需要。舉例來說，報稅一年只要用一次自然人憑證，「平常你可以把自然人憑證鎖在保險櫃，報稅時再拿出來，但身分證你沒有選擇。」</p>
        <p>未來的身份驗證，「密碼」會是關鍵。與櫃檯人員面對面確認身份的流程，將由「輸入密碼驗證身份」取代。基於密碼學的公私鑰配對驗證<NotationUnfolded><p>依照內政部規劃，數位身份的驗證是透過公鑰、私鑰的配對來完成。私鑰儲存在個人的晶片卡中，是透過數學公式運算得出的結果。有了私鑰後，再運算生成公鑰，由私鑰運算生成公鑰的過程，理論上是無法逆推破解的。有了公鑰之後，就等於是有了「在網路上裝資訊的信箱」，使用者可以把公鑰發給各個公私部門，讓它們把資料放進信箱，使用者的私鑰可以視為開啟信箱的鑰匙，使用者插卡、輸入密碼同意，就像拿私鑰解鎖信箱一樣。</p></NotationUnfolded>，理論上夠安全，要計算能力非常強大的電腦才有可能破解。</p>
        <p>內政部回應，數位身分證是提供民眾多一種享受網路便利服務的選擇，民眾可自由選擇是否要附加自然人憑證，所以臨櫃服務不會取消。現行自然人憑證卡仍持續發行，讓不希望整合在同一張卡的民眾仍可使用智慧政府服務。</p>
        <p>但何建明從實務應用層面提出懷疑：不諳電腦操作的長者、過去讓代書、旅行社職員代辦服務的人們、不會上網的「數位弱勢」族群，是否就要把自己的密碼交給他人使用？使用者的密碼真的安全嗎？使用者如果設定很簡單的密碼，是不是就很容易被破解、被冒用身份？若有心人士藉由釣魚簡訊、釣魚郵件要騙使用者輸入密碼該怎麼防？</p>
        <p>「2019 臺灣網路報告」顯示，55 歲以上有上網經驗者僅佔七成，相比其他世代皆超過 96% 的上網率，遠遠落後。</p>
        <p>何建明表示，過去政府推動自然人憑證、健保卡，較少被反對，因為這是「專卡專用」。他強調自己並非反對國家走向「智慧政府」，他建議，使用教育類的線上服務用一組帳號密碼，使用財稅類的服務用另一組，透過技術連接有關部門的網站，減少 100 個部門有 100 個帳號密碼這種極端麻煩的情況，但也不要一組帳號密碼打天下。</p>
      </div>

      <h2 class="sub">資料串接後，單點被破解就全部淪陷？</h2>
      <div class="intro intro--report">
        <p>臺灣政府仿造國際的數位政府規格，打造了一條「T-Road」<NotationUnfolded><p>T-Road 是什麼？</p><p>未來民眾可以用數位身分證當作「鑰匙」，打開存在政府各部門的電子化資料。跨部門間的資料傳輸，會透過在政府內部網路（正式名稱是政府骨幹網路 GSN，電子化的公文、人事資料、民眾申辦資料……等全國各級政府機關的業務資料，都在這個網路環境當中）建造的資料交換通道 T-Road 來傳遞，國發會表示，這會比以往臨櫃紙本申辦更快速，且透過 T-Road 的多重加密技術，資料更安全。未來民眾要使用政府服務，可使用數位身分由 T-Road 入口網登入，使用在政府骨幹網路裡的資料。</p><ReportFigure src="infographic/1-1" /><p>若涉及資料交換時，A 機關若要和 B 機關交換資料，A 機關的資料中心透過 T-Road ，在政府骨幹網路中與 B 機關交接資料，這過程中，T-Road 當中的「T-Road 管理平臺」和「資料交換防護機制」可以統一資料規格並做好安全防護，要交換的資料將會從 T-Road 回到 B 機關的資料中心，完成 A、B 機關間的資料交換。</p><ReportFigure src="infographic/1-2" /></NotationUnfolded>，意即資料在政府部門間穿梭的通道，若一個部門的資料庫被攻破，駭客會不會沿著 T-Road 流竄到其他部門？淡江大學資訊管理學系教授黃明達認為，民眾個資存在各部會，有各自獨立的資安系統，不太可能單點突破。</p>
        <p>中研院資訊科技創新研究中心主任黃彥男表示，對 T-Road 的疑慮可以透過技術解決，數位身分證就像一把鑰匙，技術上可以「讓這把鑰匙只開這一扇門」，假設健保署的資料被偷，照理說，內政部的資料不會連帶被偷。要開其它的門，應該要有其他的手續（例如多一層密碼）。</p>
        <p>T-Road 的主責單位國發會回應，T-Road 是政府資料專屬的傳輸通道，傳輸過程使用特定的內部網路，外界無法介接 T-Road 取得資料。而且目前分別存在各機關的資料庫，存取權限與密碼是各機關依資安規範分別設定的，資安防護工作由各機關負責，具有不同的防護措施，因此資料不會無限制地被串接，也不會發生經由某一機關連結其他機關資料庫的情形。</p>
      </div>

      <h2 class="sub">政府讓步：可以「不使用」數位身分證</h2>
      <div class="intro intro--report">
        <p>開放文化基金會董事長李柏鋒質疑，為什麼不能讓人民有選擇權？為什麼一定要強迫民眾換發資安、應用層面都還有疑慮的數位身分證？在 READr 的調查中，「我還是想拿紙本身分證」是意見最分歧的觀點之一。</p>
      </div>
      <ReportFigure src="infographic/6" />
      <div class="intro intro--report">
        <p>雖然這個問題在較支持數位化的 A 群中共識較高，只有近兩成的人拒絕數位化。但在另一群人裡，無論如何都不想拿的比例是 34%，接受換發的比例是 28％，有 36％ 的人選擇跳過，意見相當分歧。</p>
        <p>內政部在 5 月 14 日發布新聞稿，對「完全不願意拿數位身分證」的選項提出讓步解法：不願使用晶片身分證的民眾，可以提供國民身分證晶片資料證明書<NotationUnfolded><p>具浮水印、騎縫章及檢查號碼供查驗資料內容有無被竄改，與現行電子戶籍謄本相同。</p></NotationUnfolded>當作身分證明使用，未來需要讀取晶片內存的個資時，不用經過插卡讀取，可經由輸入國民身分證晶片資料證明書上的資料來解鎖資料。內政部表示，此措施已「充分保障民眾資訊自主權」。</p>
        <p>內政部進一步解釋，還是會全面換成有晶片的數位身分證，不會同時存在紙本、晶片兩種。數位身分證裡的晶片不能取出、難以破壞，民眾可以選擇關閉自然人憑證區、可以選擇不讓人讀取晶片。</p>
      </div>

      <h1 ref="title4">爭點四：攜帶數位身分證等於被政府時時監控？</h1>
      <h2 class="sub">政府：要靠很近才感應得到，感應到也不能做什麼事</h2>
      <div class="intro intro--report">
        <p>去年 9 月，當時的國民黨籍立委許毓仁針質疑，數位身分證具有 RFID （無線射頻辨識）功能，等於政府在人民身上安裝追蹤器。對此內政部嚴正否認，表示身分證中的晶片需要近到以「公分」為單位才能感應，不存在遠端感應的功能。且民眾要自行輸入密碼，加密區的資料才能被取用，單單感應到身分證也不能做什麼事。</p>
        <p>內政部戶政司長張琬宜也表示數位身分證不會主動發送訊號、不會洩漏位置、更不會蒐集民眾使用軌跡，晶片一旦寫入個人化資料就會啟動亂數序號機制，根本無法追蹤，民眾可以放心。</p>
        <p>根據最新的招標書規格，數位身分證的非接觸介面採用 ISO-14443，工作頻率 13.56 MHz，在頻帶分類上屬於次低的「高頻」（HF），一般讀取範圍在 10 公分，理論上能讀取的距離以 1.5 公尺為限。高速公路的感應收費系統，使用的多是頻率最高的「微波」（Microwave） ，讀取距離為 3  公尺至 10 公尺。</p>
        <p>但李柏鋒指出，網路上早有文章教學如何透過工具直接在 50 公分內讀取。而根據臺大鄭振牟教授的論文，透過其他技術，有把握能讀到的距離是 2 公尺，理論上應可達到 10 幾公尺。李柏鋒曾對內政部提出「是不是能關掉數位身分證中的 RFID 功能？」，政府只回應可選擇是否開啟自然人憑證，迴避對晶片感應功能的質疑。</p>
      </div>

      <h2 class="sub">資料存在政府裡，夠安全嗎？</h2>
      <div class="intro intro--report">
        <p>臺灣政府推行數位身分證，最常以數位化政府堪稱世界典範的愛沙尼亞為例。但愛沙尼亞也不全然是數位化政府的烏托邦，2007 年春天，愛沙尼亞遭到疑似源自俄羅斯的大規模駭客攻擊，當時政府、銀行及許多網站停擺，損失慘重。此次事件後，愛沙尼亞研發網路安全戰略，2018 年在盧森堡開設全球首座「數據大使館」，主要用來備份如國民身分證、稅金、年金、不動產、企業登記等國家級數位資料。</p>
        <p>2017 年，位於捷克的密碼暨安全研究中心發現，德國半導體業者英飛凌（Infineon）生產的晶片含有演算法漏洞，加密的身分證可能因此被破解，有 75 萬張使用德國業者晶片的愛沙尼亞身分證暴露在資安風險中，需要停用更新。總部位於美國的高等計算系統協會（USENIX）刊登一篇預計在今年 8 月正式發表的論文，愛沙尼亞資安學者 Arnis Parsovs 發現，愛沙尼亞數位身分證的製造過程存在缺失，造成部分數位身分證有被他人複製的可能，數位身分證的安全性再次受到質疑。</p>
        <p>在臺灣，根據政府單位資安事件通報統計，2018 年共有 262 件資安事件通報，當中嚴重等級排第二位的三級事件有 6 件。在 520 總統就職前夕，總統府遭駭客入侵，內部文件遭變造外流。國內外資安事件頻傳，未來數位身分證連結更多數位服務，累積更多數位個資，政府是否有能力好好保護？</p>
        <p>內政部回應對於「政府資安保護能力」的提問，澄清臺灣目前為止並沒有自然人憑證加密被破解的事件。2011 年起已加強自然人憑證的卡片金鑰強度，目前金鑰尚屬安全。2012 年間曾發現 163 張有被破解風險的「弱金鑰」自然人憑證卡片，這是因為 2006 年生產的卡片有晶片瑕疵及參數錯誤，發現之後，內政部即對所有自然人憑證用戶的金鑰進行全面檢測，2012 年主動更換新憑證給受影響民眾使用後，目前為止沒有加密被破解的事件。</p>
        <p>內政部對晶片及系統的資安，分別訂有規格及防範機制。黃彥男認為，以晶片卡的規格來說，已經是最高等級，資料保護能力應該是足夠的。「如果規格是對的、應用是對的，（數位身分證）照理說會比現在的紙本身分證要安全。」</p>
        <p>黃彥男強調，數位身分證和政府資料庫是兩件不同的事，不能混為一談。沒有數位身分證，駭客一樣能進到政府資料庫裡去偷東西。很多時候政府發生資安事件，不是技術問題，而是使用者人為的管理問題。「要駭客完全攻不到，就是把資料全部刪掉，或資料全部不要連網。」但這又造成效率差、服務差的問題，不太可能再回到這種低度數位化的狀態。</p>
        <p>他指出，臺灣政府對資安的保護程度一直在進步，駭客的功力也在進步，資安沒有完美的一天，只能不斷去預防、修正。</p>
        <p>但正因為很多資安事件事後檢討是人為操作疏失，何建明認為，政府在「規範人的使用行為」這一部分，到目前還不明確。他質疑，為什麼不是前期仔細規劃，而是後期補漏洞？這樣的政府真的可以信任？「要盲目地說『我相信政府的資安能力』，是有很大風險的。」</p>
      </div>
      <ReportSituation
        :intro="situations[2].intro"
        :question="situations[2].question"
        :percentages="situations[2].percentages"
        @submit="(values) => { handleSubmit(values, 2) }"
        class="report-page__situation"
      />

      <h2 class="sub">誰可以使用我的數位資料？</h2>
      <div class="intro intro--report">
        <p>除了政府以外，未來隨著數位身分證使用普及，民間私部門也會用來做身份認證，不管使用者有沒有開通自然人憑證，卡片本身都已經可以被機器讀取，就會留下使用者的紀錄，透過這些紀錄，是不是就可以勾勒出一個人的生活軌跡？有心人士是否可以藉此追蹤他人？</p>
        <p>內政部回應，若私部門對個人資料的蒐集、處理及利用，超出特定目的，將以違反《個資法》開罰。</p>
        <p>參與過許多「智慧城市」專案、臺北市政府資訊局主任秘書陳慧敏表示，在實際應用上，提供服務的系統若僅透過最小化的資料來完成認證，可以做到最大程度去識別化——也就是不留下足夠拼湊出使用者輪廓——的紀錄。</p>
        <p>她舉衛福部、健保署與臺北市政府合作推動「實名制口罩自動販賣系統」為例，口罩販賣機只有查詢、讀取功能，沒有儲存功能，插再多次健保卡資料都不會儲存。使用者插卡買口罩時，系統會產生一組只有當次交易才有的數字供機器辨認，不會儲存健保卡號碼。就算是同一張健保卡，下一次使用時，又是不同的交易號碼。</p>
        <p>對於這些存在私部門的紀錄是不是可以被刪除？政府只回答若違法將依法開罰。何明諠認為，政府對於數位身分證衍生的數位足跡，不管是存在私部門還是公家單位，規劃都嫌不足。他舉例日本、德國，都用法條載明私部門使用數位身分證的界線，臺灣只靠《個資法》，留下的灰色空間太大。如果要透過去識別化對資料進行加值利用，他進一步質疑，目前法律上沒有規範資料要模糊到什麼程度才算真正的「去識別化」，過去也有從號稱「去識別化」的健保資料庫中，透過未模糊處理的特殊欄位資料，辨識出個人的案例。</p>
      </div>

      <h2 class="sub">理想的數位政府？</h2>
      <div class="intro intro--report">
        <p>數位身分證的背後，是政府更大的願景「數位國家、智慧島嶼」。這是行政院 2016 年提出 DIGI+ 方案時的主張，目標是期望在 2025 年時，臺灣和人工智慧（AI）、物聯網（IoT）、電子商務⋯⋯等等有關的數位經濟規模能倍增至 6.5 兆元，民眾數位生活服務使用普及率達 8 成。</p>
        <p>根據政府的藍圖，未來透過民眾授權政府使用個資，政府將提供更完善、更精準的數位服務。</p>
      </div>
      <ReportFigure src="infographic/4" caption="資料來源：國發會「<a href='https://ws.ndc.gov.tw/Download.ashx?u=LzAwMS9hZG1pbmlzdHJhdG9yLzEwL3JlbGZpbGUvNTU2Ni84ODQwL2U1ZjE0OWZhLThmYmQtNGFkYi1hM2Q1LTBmMTY3MmU3ZDU3Yi5wZGY%3D&n=5pyN5YuZ5Z6L5pm65oWn5pS%2F5bqc5o6o5YuV6KiI55WrX%2BaguOWumueJiC5wZGY%3D&icon=..pdf' target='_blank'>服務型智慧政府推動計畫-第五階段電子化政府計畫</a>」2018 年 5 月核訂本" />
      <div class="intro intro--report">
        <p>何建明認為，理想的智慧政府應該是從使用流程的優化來著手，更貼近人民需求，更多服務可以方便地在網路上處理掉的同時，不忽略民眾有些臨櫃辦理的需求，也要顧及不熟悉數位操作的民眾，「不是一張智慧的卡片就叫智慧政府」。</p>
        <p>就目前政府的回應，爭議十足的數位身分證已經確定「不強制所有人使用晶片功能」；那「智慧政府」究竟只是拿來包裝數位身分證的空泛願景，還是真能實踐？還待觀察臺灣政府的下一步。</p>
      </div>

      <h2 class="sub">我關心這個議題，我還可以怎麼做？</h2>
      <div class="intro intro--report">
        <p>台權會副秘書長何明諠呼籲：</p>
        <ul>
          <li>「任何事後補救都比不過事前的保護」：資料一旦交出去，個人就很難再掌控。在當前規範不明的狀態下，個人能不用數位身分證就不用， 盡量不要把自己的資料交出去。</li>
          <li>「落實個資法賦予民眾的權利」：民眾可以用個資法查詢自己的資料存在哪、被如何使用。民眾也可以拒絕不合理或非必要的資料蒐集、處理、利用。</li>
        </ul>
        <p>開放文化基金會董事長李柏鋒建議，若換發數位身分證勢不可擋，可以有幾項消極對抗的自保方法：</p>
        <ul>
          <li>「放在鋁箔卡套裡面」：因為數位身分證有遠端感應功能，放在厚的鋁箔材質內可以防止卡片被感應。</li>
          <li>「更極端可以用紙本證明文件代替卡片」：不要隨身攜帶有晶片的身分證，把存在晶片裡的資料印成紙本攜帶。</li>
          <li>「混淆你的數位足跡」：不要留足跡在現在已經不太可能，但可以讓數位足跡紊亂到難以拼湊出使用者輪廓。</li>
        </ul>
      </div>

      <DonateBlock class="report-page__donate-block" @sendGa="sendGa({ label: '按下贊助鈕' })" />

      <ReportSituation
        v-if="hasCheckedSituation"
        title="授權情境選擇結果"
        :intro="result"
        class="report-page__situation"
      >
        <div class="report-situation__choices">
          <div v-for="(agree, idx) in agrees" class="choice">
            <div class="agree">{{ agreeText(agrees[idx]) }}</div>
            <div class="question">{{ situations[idx].question }}</div>
          </div>
        </div>
      </ReportSituation>
    </div>

    <div class="btn-wrapper-bottom">
      <button
        type="button"
        class="normal normal--two"
        @click="shareToFb"
      >
        分享報導到 FB
      </button>
      <button
        type="button"
        class="normal normal--two"
        @click="shareToLine"
      >
        分享報導到 LINE
      </button>
    </div>
  </article>
</template>

<script>
import { READR_SITE_URL } from 'src/constants'
import { GOOGLE_SHEET_ID_EID, GOOGLE_SHEET_RANGES_EID } from 'api/config.js'
import { getSheetWithoutRedis, appendSheet } from 'src/api/index.js'
import { situations, results } from '../data/situations.js'
import { rafWithDebounce } from 'src/util/comm.js'

import ReportSituation from './ReportSituation.vue'
import ReportFigure from './ReportFigure.vue'
import NotationUnfolded from './NotationUnfolded.vue'
import DonateBlock from './DonateBlock.vue'

const [, RANGE_SITUATION] = GOOGLE_SHEET_RANGES_EID
const SHARED_URL = `${READR_SITE_URL}eid`

let scrollDepthTriggers = []
let curtScrollDepth = 0

export default {
  name: 'ReportPage',
  components: {
    ReportSituation,
    ReportFigure,
    NotationUnfolded,
    DonateBlock
  },
  data () {
    return {
      situations,
      defaultValues: Array.apply(undefined, { length: 6 }),
      hasCheckedSituation: false,
      agrees: [1, 1, 1]
    }
  },
  computed: {
    result () {
      return results[this.agrees.join('')]
    },
    wh () {
      return this.$store.state.viewport[1]
    }
  },
  async mounted () {
    const percentages = await this.fetchPercentageOfSituations()
    this.situations.forEach(function fillInPercentages (situation) {
      const [disagree, agree] = percentages.splice(0, 2)
      situation.percentages = { disagree, agree }
    })

    const { title1, title2, title3, title4 } = this.$refs
    scrollDepthTriggers = [
      {
        el: title1,
        label: 'scroll to title 1'
      },
      {
        el: title2,
        label: 'scroll to title 2'
      },
      {
        el: title3,
        label: 'scroll to title 3'
      },
      {
        el: title4,
        label: 'scroll to title 4'
      }
    ]

    window.addEventListener('scroll', this.sendScrollDepth)
  },
  beforeDestroy () {
    window.removeEventListener('scroll', this.sendScrollDepth)
  },
  methods: {
    shareToFb () {
      window.open(`https://www.facebook.com/share.php?u=${SHARED_URL}`)
      this.sendGa({ label: '分享報導到 fb 鈕' })
    },
    shareToLine () {
      window.open(`https://line.me/R/msg/text/?${SHARED_URL}`)
      this.sendGa({ label: '分享報導到 line 鈕' })
    },
    async fetchPercentageOfSituations () {
      const response = await getSheetWithoutRedis({
        params: {
          spreadsheetId: GOOGLE_SHEET_ID_EID,
          range: `${RANGE_SITUATION}!A1:F1`
        }
      })
      return response.body?.[0] ?? []
    },
    handleSubmit (values, replacerIdx) {
      this.hasCheckedSituation = true
      this.agrees.splice(replacerIdx, 1, values[1])

      const submittedValues = [
        ...this.defaultValues.slice(0, replacerIdx * 2),
        ...values,
        ...this.defaultValues.slice(replacerIdx * 2 + 2)
      ]

      appendSheet({
        params: {
          spreadsheetId: GOOGLE_SHEET_ID_EID,
          range: `${RANGE_SITUATION}!A:F`,
          valueInputOption: 'RAW',
          resource: { values: [[...submittedValues, Date.now()]] }
        }
      })
    },
    agreeText (agree) {
      return agree === 1 ? '同意' : '不同意'
    },
    sendGa ({ action = 'click', label, value = 1 }) {
      window.ga('send', 'event', 'projects', action, label, value)
    },
    sendScrollDepth () {
      rafWithDebounce(() => {
        const totalScrollTriggers = scrollDepthTriggers.length

        if (curtScrollDepth > totalScrollTriggers) {
          return
        }

        if (curtScrollDepth === totalScrollTriggers) {
          const scrollH = window.pageYOffset
          const totalH = document.documentElement.scrollHeight
          if (scrollH >= totalH - this.wh - 8) {
            this.sendGa({ action: 'scroll', label: 'scroll to report end', value: totalScrollTriggers + 1 })

            window.removeEventListener('scroll', this.sendScrollDepth)
          }
          return
        }

        const { el, label } = scrollDepthTriggers[curtScrollDepth]
        const { top: triggerT } = el.getBoundingClientRect()

        if (triggerT < 0) {
          this.sendGa({ action: 'scroll', label, value: curtScrollDepth + 1 })
          curtScrollDepth += 1
        }
      })
    }
  }
}
</script>

<style lang="stylus">
@import '../variables.styl'

.report-page
  &__wrapper
    max-width 660px
    margin 42px auto
    @media (min-width $breakpoint-md)
      margin-top 70px
      margin-bottom 70px
  &__situation
    margin-left 10px
    margin-right 10px
    @media (min-width 680px)
      margin-left 0
      margin-right 0
  &__donate-block
    margin-top 36px
    margin-left 10px
    margin-right 10px
    @media (min-width 680px)
      margin-left 0
      margin-right 0
      margin-top 55px
  h1
    color #5f6c11
    padding-left 10px
    padding-right 10px
    margin-top 42px
    margin-bottom 28px
    @media (min-width $breakpoint-md)
      padding-left 0
      padding-right 0
      margin-top 70px
      margin-bottom 50px
  .sub
    padding-left 30px
    padding-right 30px
    margin-top 44px
    margin-bottom 20px
    @media (min-width $breakpoint-md)
      padding-left 0
      padding-left 0
      margin-bottom 35px
  a:not(.normal)
    color #5f6c11
    text-decoration none
    border-bottom 1px solid #5f6c11
  ul
    list-style disc
    padding-left 30px
  li
    margin-top 1em
    margin-bottom 1em
  .notation-unfolded
    &__content
      padding 20px
      margin 20px -20px
      @media (min-width $breakpoint-md)
        padding 30px 55px
        margin 22px 0
      p
        margin-top 0
        margin-bottom 20px
      .report-figure
        padding-left 0
        padding-right 0
        margin-top 0
        margin-bottom 20px

.intro--report
  color rgba(0, 0, 0, 0.87)
  padding-left 30px
  padding-right 30px
  p
    margin-top 2em
    margin-bottom 2em
  @media (min-width $breakpoint-md)
    padding-left 0
    padding-right 0

.report-figure
  padding-left 10px
  padding-right 10px
  margin-top 36px
  margin-bottom 36px
  @media (min-width $breakpoint-md)
    margin-top 44px
    margin-bottom 44px
    padding-left 0
    padding-right 0
  figcaption
    margin-top 14px
    padding-left 20px
    padding-right 20px
    @media (min-width $breakpoint-md)
      max-width 550px
      margin-left auto
      margin-right auto
      padding-left 0
      padding-right 0

.report-situation__choices
  padding-top 10px
  padding-left 10px
  padding-right 10px
  letter-spacing 2.5px
  .choice
    display flex
    align-items center
    background-color rgba(255, 255, 255, 0.5)
    border-radius 2px
    padding 10px
    @media (min-width $breakpoint-md)
      padding 15px 20px
    + .choice
      margin-top 5px
  .agree
    font-weight 700
    font-size 15px
    line-height 1.8
    color #5f6c11
    margin-right 10px
    flex 0 0 60px
    @media (min-width $breakpoint-md)
      margin-right 12px
      font-size 22px
      line-height 1.8
      flex-basis 80px
      letter-spacing 0.025em
  .question
    font-size 13px
    line-height 1.5
    text-align justify
    color rgba(0, 0, 0, 0.87)
    flex 1 1 auto
    @media (min-width $breakpoint-md)
      font-size 15px
      line-height 1.8
</style>
