Overview
硬编码加密密钥可能会削弱安全性,一旦出现安全问题将无法轻易修正。
Details
请勿对加密密钥进行硬编码,因为这样会使所有项目开发人员都能查看该加密密钥,并且还会使解决这一问题变得极其困难。在代码投入使用后更改加密密钥需要软件补丁。如果受加密密钥保护的帐户遭受入侵,组织将必须在安全性和可用性之间做出选择。 加密密钥写于文件中。
示例 1:以下示例显示了 .pem 文件中的加密密钥: ...
-----BEGIN RSA PRIVATE KEY----- MIICXwIBAAKBgQCtVacMo+w+TFOm0p874BWvwXtVRpF28V+o0RNPx5x/1TJTlKEl ... DiJPJY2LNBQ7jS6843b6650JdvH8uQl6oeJ/aUmq63o2zOw=
-----END RSA PRIVATE KEY----- ...
任何可访问该代码的人都能查看加密密钥。应用程序一经发布,除非对程序进行修补,否则将无法更改加密密钥。雇员可以利用手中掌握的信息访问权限入侵系统。任何有权访问应用程序可执行文件的攻击者都可以提取加密密钥值。
Recommendations
永远不要将加密密钥签入您的源代码控制系统,也不要对它们进行硬编码。始终在外部源中混淆和管理加密密钥。在系统中的任意位置采用明文形式存储加密密钥会使拥有足够权限的任何人都能够读取并可能误用该加密密钥。