# 投票專題 Overview [投票專題 Overview](https://hackmd.io/@zRWCfXc1TOaCsnINOAPeCw/HkkDB4G12) [投票專題 111上學期](https://hackmd.io/@zRWCfXc1TOaCsnINOAPeCw/not6914) [投票專題 111下學期](https://hackmd.io/nVW37qBfQiKJsjqVrHP1iQ?view) [投票專題 112上學期](https://hackmd.io/@zRWCfXc1TOaCsnINOAPeCw/Hkv1faxuh) [系統整合實作的 Github organization](https://github.com/System-Integration-Implementation) --- //10分鐘內(含QA) <font color=red>紅色</font>字是分工,總共有1~4號 <font color=green>[X]</font>是投影片需要做幾頁 <font color=red>1</font>吳 <font color=red>2</font>簡 <font color=red>3</font>祝 <font color=red>4</font>楊 ## Intro, Motivation (<font color=green>1</font>, <font color=red>1</font>) 投票是一件很重要的事;為了實現公正、可驗證且方便的投票,我們選擇開發手機投票系統。這不僅提高投票便利性,降低成本,而且利用手機內建的FIDO安全晶片進行身分認證,確保投票安全。 ## 核心理念 (<font color=green>1</font>, <font color=red>1</font>) 方便快速且安全(FIDO無密碼驗證+安全晶片) ## how to define security, speaking of CIA (<font color=green>1</font>, <font color=red>1</font>) 別人會因為通過裝置的身分驗證,所以無法取的對應的key handle,所以登不進去這個帳號。 ## 文獻回顧 (<font color=green>2</font>, <font color=red>2</font>) - FIDO是啥? FIDO是由FIDO聯盟制定的身分認證標準。FIDO標準的關鍵在於身分認證在裝置端進行,搭配非對稱公鑰私鑰架構,將身分驗證的方法統一,讓各服務能夠有共同的認證標準。 - 安全晶片是啥? 安全晶片就像一台小型電腦,具有獨立的處理器、記憶體和作業系統。即使手機作業系統被惡意程式攻擊,由於安全區域的獨立性,駭客無法存取機密資訊。手機資料經金鑰加密後存於磁碟,解密金鑰則存於安全區域,只有透過身份驗證後才能取得。此外,安全區域內還存有電子錢包的交易紀錄,防止惡意軟體存取。 ## 實作環境 (<font color=green>1</font>, <font color=red>2</font>) //可以放LOGO的圖 前端: Flutter 後端: Python Flask API + Google Cloud Platform Virtual Machine + Firebase ## 使用場景 (<font color=green>2</font>, <font color=red>3</font>) //放之前使用場景由大到小排列的圖 //我們做的是最小範圍的 "公司或學校高層的投票決議" 先定義一下"公司或學校高層的投票決議" 1. 人數不會超過100個人(Firebase OAuth限制) 2. 對於私人投票有需求 3. 大家為了趕時間所以需要一個快速的投票方式 4. 對安全有一定的需求 ## 研究方法 (<font color=green>2</font>, <font color=red>3</font>) 驗證: FIDO + 安全晶片 我們在一開始,為了測試投票流程是否完善,有先做一個完全仰賴Firebase的APP。而由於Firebase並不支援FIDO驗證,因此我們決定以這個版本為基礎,在不更改記錄使用者資訊的情況下,使用自己架設的API來完成FIDO。 //安全晶片 我們在參考官方網站的資料後,選擇Python Flask作為我們的框架,負責驗證、儲存驗證資料、以及銜接到Firebase。 再調用的api上,我們同樣在查找資料,了解FIDO的架構後,我們將android 提供的FIDO api與我們的app做整合。 安全晶片,其所提供的是一套安全的儲存空間,在概念是類似OS kernel mode管理,所以我們是以api將其與我們的app做整合。 ## 投票流程 (<font color=green>1</font>, <font color=red>4</font>) //Demo video 1. 登入 2. 創建投票 3. 分享私人投票 4. 參與投票 5. 查看投票結果 ## QA <font color=red>4</font>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up