个人隐私信息泄露在中国是一个非常严重的现象。
盗取、贩卖个人信息已经有完整的黑市产业链,部分互联网征信和数据公司,从黑市上购买数据,甚至雇佣黑客盗取数据。互联网用户普遍意识到个人隐私信息的重要,对隐私保护的要求会更高。程序员有责任从技术上加强个人隐私的保护。
在传统的应用架构设计中,隐私保护或者安全性设计的优先级并不是很高,现在这种情况必须有所改变,架构师需要提升隐私保护设计的优先级。
区块链应用领域采用了很多密码学的技术,例如哈希算法、加密算法、公钥密码学、默克尔树、和零身份证明。
Bitcoin在保护用户身份方面,使用哈希过的公钥作为个人账号,这样在交易时隐藏了个人信息。另外,个人账号可以设计成一次性的,每次交易都使用新账号,这样就很难通过追踪某个账号的交易来推测用户身份。Bitcoin的总帐是公开的,上面每笔交易记录包含付费账号、收费账号以及转账金额。
如果觉得这样的隐私保护还不够,另一个数字货币Zcash在Bitcoin之上增加了一些协议,将付费账号、收费账号以及转账金额都隐藏了起来,采用的方法仍然是加密、哈希、默克尔树和零知识证明。
尽管比特币出自于一群无政府主义者之手,但他们秉承的一些诸如保护个人隐私的信念,在这个信息泛滥的互联网时代还是非常可取的。
你的应用是否收集了超越应用需要的个人信息?(保护隐私的最好办法就是不收集它们)在处理交易时,是否可以传递尽可能少的个人身份信息?或者使用一次性账号?在日志中是否可以记录尽可能少的个人身份信息?或者完全不需记录?缓存数据库中的个人信息是否安全?消息传递时不仅采用Session Key加密,是否还可以采用Message Key?如今,哈希算法、公钥加密,默克尔树,这些加密技术唾手可得。程序员应该养成新的习惯,在应用设计中采用各种加密技术保护个人隐私信息,包括个人账户、交易、浏览、日志信息等。