iT邦幫忙

4

如何在DB存敏感資料?

  • 分享至 

  • xImage

如果我想在DB內保存銀行號碼或信用卡號碼該怎麼存?

我有想過後端在環境變數內設定RSA的Private key
前端則保管Public Key

當前端要傳這些資料給後端的時候就先用Public Key加密
到後端之後用Private Key解密後再用PrivateK Key加密存進DB
之後前端需要資料的時候直接從DB取出加密過的資料傳給前端,前端用自己的PublicKey解密即可

這樣會是一個好的可行性作法嗎?
系統是做客戶的會計系統跟ERP

謝謝

看更多先前的討論...收起先前的討論...
我的建議是去租金流服務,不要自己搞,因為你就算紀錄了卡號跟安全碼,除非你通過一定的資安認證,不然沒有一間銀行願意跟你直接對接,而且一旦你確定要自己寫金流,那後面的成本都是億在算的,光營業額保證金就夠你吃一壺了
skycover iT邦新手 4 級 ‧ 2022-02-25 15:44:39 檢舉
我們沒有打算存安全碼,也沒有要串接金流
只是單純要保存客戶資料
DennisLu iT邦好手 1 級 ‧ 2022-02-25 15:55:55 檢舉
這麼說好了
印象中...
你說的那些資料,沒串金流的ERP軟體商也不敢自己完整的保留在資料庫。
頂多為了對帳簡單識別,保留的是碼掉大部分的號碼部位。

能存的系統,都要通過認證,其認證規範包含軟體設計、機房安全管制...等等。
也就是連實體的Server位置就需要門禁森嚴了。
skycover iT邦新手 4 級 ‧ 2022-02-26 11:27:36 檢舉
了解 我們再去跟客戶溝通看看 看這個欄位是否要存完整資料
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
尼克
iT邦大師 1 級 ‧ 2022-02-25 14:35:04

Oracle Database DES 加密與解密
我有用過HR系統,資料庫全部都是加密。
AP端要有一個產生一個HR的KEY才能使用,不然一般人看到資料都是空白。

1

什麼做法比較好我不太清楚,但我之前有做過類似的。
也就是將敏感資料重新編碼儲存。

早期用的是將數據先json化。然後再利用zip函數加密碼的方式轉成字串。
不過這招後期發現會比較操資源。且容易出問題。

後來則是自行寫了另一種編碼的方式。原理其實跟使用base64的方式類同。
再搭配MD5的方式處理。(詳細編碼原則就不能說了,反正是自定義的編碼方式)

這樣存入的字串只是一大堆亂碼。再取出時經由cats的方式再將其轉回原json使用。

skycover iT邦新手 4 級 ‧ 2022-02-26 11:32:26 檢舉

使用編碼跟使用加密有什麼不同的地方嗎?
還是說在效能上有差異?

一般加密的定義,大多是雙向外部KEY作用。
用白話點講就是公鑰及私鑰的處理。
但雙方無法獨立去做解密的處理。

編碼的話。可以直接在本機上作用。就雙向安全性而言。
只有單一方可以處理,一般是SERVER方。

其實兩者做法都性質一樣就是了。差別在於做法上的不同。

1
Ray
iT邦大神 1 級 ‧ 2022-02-25 16:59:45
  1. 前端可以用 Publickey 解密的話, 每個人的電腦都有這支 Key, 不就全被解了?
  2. 萬一你需要對這個欄位進行資料搜尋的話怎麼辦?
0
kueiho
iT邦新手 5 級 ‧ 2022-02-26 11:55:30

儲存信用卡號,跟個資一樣,是有法律責任的

通常都是介接第三支付業者
轉導過去支付
再轉導回自己系統壓完成

我要發表回答

立即登入回答