规则1 禁止在shell脚本里面实现加解密算法
说明:shell作为解释性语言,在产品发布版本中以文本方式存在,功能实现逻辑能被直接看到,如果在shell脚本中实现加解密算法并使用,无任何保密性可言,所以禁止在shell脚本中实现加解密算法。
规则2 正确使用经过验证的安全的标准加密算法
说明:禁止使用是私有算法或者弱加密算法(如DES、SHA1等)。应该使用经过验证的、安全的、公开的加密算法。
规则3 禁止shell脚本中调用解密工具或者组件
说明:在产品发布版本中,shell脚本容易被修改,如果在脚本中使用了密码明文,会增加被利用的可能性,在产品功能实现中一般会涉及解密场景,如果在脚本中使用密文和解密组件获取密码明文并保存再变量中,会增大密码被利用的可能性。
防护措施:对于解密场景,解密操作全部由转门的加解密工具实现,shell脚本中不保存或使用密码明文等操作,直接使用由解密组件返回类似”对或错“的验证结果,尽量减少被利用的可能性。
错误示例:该例子中shell调用独立解密工具,在脚本中存在获取密码明文的过程,能被直接修改脚本获取密码明文。
modify
推荐做法:调用解密工具吧密文解密成明文作为参数直接使用。
modify
May you share freely, never taking more than you give.
愿你宽心与人分享,所取不多于你所施与。
閱讀更多 雲中牧歌 的文章