# 2022 Tech Day - Bob 如何兼具人性與安全的管理密碼?
## 講義本文:[連結](https://hackmd.io/IURU0xuQS6SQ_LunEGcitw?view)
## 如何安全的加密
- 不包含個人資訊(生日、身分證字號)
- 長度越長越好(讓暴力破解軟體比較不好破解)
- 複雜不一定好,但一定不好記
- 使用生物特徵辨識或實體金鑰(USB、卡片)
- 可以選擇一串密碼(例如:C8763),然後加上密碼使用的地方(例如:在google,變成C8763@google)
## 分析密碼破解時間與安全度
- https://www.security.org/how-secure-is-my-password/
## 加密vs雜湊
- 雜湊:不可以還原
- 密碼:可還原
- [延伸學習-加密(Encryption)vs 雜湊(Hash function)](https://miahsuwork.medium.com/%E7%AC%AC%E4%B9%9D%E9%80%B1-%E8%B3%87%E8%A8%8A%E5%AE%89%E5%85%A8%E5%9F%BA%E7%A4%8E-%E5%8A%A0%E5%AF%86-encryption-vs-%E9%9B%9C%E6%B9%8A-hash-function-704575fd5fe3)
## 前端
- 增加驗證密碼的功能
- 切忌用明碼的方式送出密碼
- 密碼格式的限制
## 後端
- 加上錯誤次數限制,避免遭駭客暴力破解
- 以雜湊方式儲存使用者密碼
### 補充
- OTP(一次性密碼)
- 2FA(雙重驗證)
- 第三方帳號登入(Facebook, Google)
## 非對稱式加密-公私鑰順序的差別應用
|公鑰加密私鑰解密| 私鑰加密公鑰解密|
|:-:|:-:|
|機密訊息|數位簽章|
|大家都能用公鑰加密訊息,但只有私鑰持有者才能解開訊息|能用公鑰解鎖的文件,一定來自私鑰持有者|
## 問題討論
1. 重設密碼可以當OTP來玩嗎?
- 我覺得很有趣,但不會想每次登入都弄這麼麻煩
- OTP 有簡訊費用吧,某些?
- 每次重設密碼,銀行端 app 會很麻煩
like:
- 國泰每次重設要驗證過金融卡密碼,如果忘記金融卡密碼等於整個鎖住,如果是有加上人臉辨識,重設密碼好像要配合再視訊一次
2. 還有想到什麼取密碼的建議?能在安全與便利性平衡些的
- tj;4dk y vmp4cl31;41;4 注音輸入當密碼
- 我剛剛也想到這個
- 隨便英文單字+數字穿插:C1h2o3c4o5l6a7t8e9(chocolate+123456789)
3. 製作會員系統登入註冊的部分,你們還有想到那些可以注意的細節或概念?
- Websocket (我就想到可能有QQ -> 比較多用在即時通訊?
- session
- cookie / JWT
- auth token
- token 要怎麼存ㄚ(看套件吧)
- 前端的登入 Form 可以直接存入帳號/密碼到我們自己的資料庫嗎?
- 密碼要雜湊後再存
- 密碼表單(form)格要防止自動填充(autocomplete="off")
###### tags: `2022` `monosparta` `分享會` `Feb`
{"metaMigratedAt":"2023-06-16T19:46:06.999Z","metaMigratedFrom":"Content","title":"2022 Tech Day - Bob 如何兼具人性與安全的管理密碼?","breaks":true,"contributors":"[{\"id\":\"c0088264-87b6-426b-b9f0-699d85f07370\",\"add\":322,\"del\":0},{\"id\":\"038fe3e7-337c-4117-aa78-228802afd0e1\",\"add\":233,\"del\":14},{\"id\":\"3756a144-d239-4cd7-a826-8f3215a908e2\",\"add\":269,\"del\":2},{\"id\":\"3002b047-1de2-473e-8deb-8c4f42c51840\",\"add\":227,\"del\":8},{\"id\":\"190f6529-cca1-4b8a-b60b-4039a3472120\",\"add\":19,\"del\":0},{\"id\":\"18189b73-36e6-4437-ac13-f797deedc9b6\",\"add\":242,\"del\":0},{\"id\":\"1ff2af61-242b-4341-8f7d-b7d62777d7de\",\"add\":52,\"del\":0},{\"id\":\"fc5e7075-ed79-431d-bb1c-bee060fb4e31\",\"add\":151,\"del\":0},{\"id\":\"82fbe252-2c28-40f5-9d1d-6817c2bcebc8\",\"add\":1,\"del\":0}]"}