使用弱加密密钥¶
ID: go/weak-crypto-key
Kind: path-problem
Security severity: 7.5
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-326
Query suites:
- go-code-scanning.qls
- go-security-extended.qls
- go-security-and-quality.qls
不正确地使用加密算法可能会导致敏感数据泄露、密钥泄露、身份验证失效、会话不安全和欺骗攻击。
建议¶
确保使用具有建议位大小的强密钥。对于 RSA 加密,最小大小为 2048 位。
示例¶
以下代码使用密钥大小不足的 RSA 加密。
package main
import (
"crypto/rand"
"crypto/rsa"
"fmt"
)
func main() {
//Generate Private Key
pvk, err := rsa.GenerateKey(rand.Reader, 1024)
if err != nil {
fmt.Println(err)
}
fmt.Println(pvk)
}
在以下示例中,密钥大小设置为 2048 位。
package main
import (
"crypto/rand"
"crypto/rsa"
"fmt"
)
func main() {
//Generate Private Key
pvk, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
fmt.Println(err)
}
fmt.Println(pvk)
}