从cracker中隐藏OPENSSL RSA公钥

从cracker中隐藏OPENSSL RSA公钥,openssl,rsa,cracking,Openssl,Rsa,Cracking,背景: 我想保护我的软件免受cracker攻击,我使用了VMProtect,但由于VMP不能保护内存搜索和修改。我的RSA公钥有被更改或发现的风险 在这种情况下。因为我的软件是基于网络授权的。如果发现公钥。cracker将能够从服务器解密数据,并找出我的许可证格式。如果破解者修改公钥,用自己的私钥托管一个新服务器,然后将DNS更改为该服务器,软件将被破解 问题: 在这种情况下。公钥永远不应该被发布,在OPENSSL中,我对RSA密钥格式有一个很大的问题。事情总是这样的: -----BEGIN R

背景: 我想保护我的软件免受cracker攻击,我使用了VMProtect,但由于VMP不能保护内存搜索和修改。我的RSA公钥有被更改或发现的风险

在这种情况下。因为我的软件是基于网络授权的。如果发现公钥。cracker将能够从服务器解密数据,并找出我的许可证格式。如果破解者修改公钥,用自己的私钥托管一个新服务器,然后将DNS更改为该服务器,软件将被破解

问题:

在这种情况下。公钥永远不应该被发布,在OPENSSL中,我对RSA密钥格式有一个很大的问题。事情总是这样的:

-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBALrBdN8F83hT2+pBsAwiNx+v3FWp51IdEElE8UvVhfZYmePbitpzLcJi
jZ4/tvRFXJGhqa3PKPUQkH2F4VrHruA2kNceiL/Btywc9oM+tDMeX1jcRKwXwK1k
KdccKwn0qywG6YxQuqWQIotOfV+IIuhcHdaHBl6CZ05/cBo6AlMlAgMBAAE=
-----END RSA PUBLIC KEY-----
或者这个:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
在任何一种情况下,密钥都有一个清晰的格式,破解者只需搜索字符串,他们就会发现我的公钥太容易了

是否仍然可以生成没有以下格式的RSA公钥:

1.在RSA密钥之前或之后没有用于生成格式的字符串。(没有像开始之类的东西。)

2.不是基于字符串的键:如果可能的话,基于字节的键将是完美的(键不是字符串而是十六进制,比如:0x12,0xDA,0x77,…)

3.如果可能,避免在密钥中使用特定长度:如果有时生成并获取98字节长的密钥,有时生成并获取137字节长的密钥,这将是完美的

所以,如果我能有一个这样的公钥,即使它在内存中,cracker也永远找不到它的位置。但是我找不到OPENSSL有任何关于这个的文档


还有什么我能做到的吗?

这个问题没有确切的答案。您可以隐藏公钥、私钥或任何您想要隐藏的硬密钥,“总会有一种方法来反向工程”这一点。不管怎样,你总有可能崩溃

然后问题就变成了:你想花多少钱来隐藏你的信息,使反向工程对一个黑客来说尽可能困难


然后,你有很多解决方案。我建议您寻找模糊处理程序和/或白盒密码术[如果您准备为您的应用程序花钱的话]。这些都是常用的技术,用来隐藏信息,使黑客的生活更加艰难。

这个问题没有确切的答案。您可以隐藏公钥、私钥或任何您想要隐藏的硬密钥,“总会有一种方法来反向工程”这一点。不管怎样,你总有可能崩溃

然后问题就变成了:你想花多少钱来隐藏你的信息,使反向工程对一个黑客来说尽可能困难


然后,你有很多解决方案。我建议您寻找模糊处理程序和/或白盒密码术[如果您准备为您的应用程序花钱的话]。这些都是常用的技术,用来隐藏信息,使黑客的生活更加艰难。

这个问题没有确切的答案。您可以隐藏公钥、私钥或任何您想要隐藏的硬密钥,“总会有一种方法来反向工程”这一点。不管怎样,你总有可能崩溃

然后问题就变成了:你想花多少钱来隐藏你的信息,使反向工程对一个黑客来说尽可能困难


然后,你有很多解决方案。我建议您寻找模糊处理程序和/或白盒密码术[如果您准备为您的应用程序花钱的话]。这些都是常用的技术,用来隐藏信息,使黑客的生活更加艰难。

这个问题没有确切的答案。您可以隐藏公钥、私钥或任何您想要隐藏的硬密钥,“总会有一种方法来反向工程”这一点。不管怎样,你总有可能崩溃

然后问题就变成了:你想花多少钱来隐藏你的信息,使反向工程对一个黑客来说尽可能困难


然后,你有很多解决方案。我建议您寻找模糊处理程序和/或白盒密码术[如果您准备为您的应用程序花钱的话]。这些都是常用的技术,用于隐藏信息,使破解者的生活更加困难。

您可以做的最简单的事情是将密钥从PEM转换为DER格式,OpenSSL工具也支持这种格式。大多数情况下,您需要添加另一个参数以使其接受

DER是一种二进制格式,因此如果没有任何线索,它可能看起来像二进制乱码。但它当然有其内部结构(ASN.1)


PEM是一种Base64编码的DER,添加了delimeters,如
----BEGIN RSA公钥---
行。

您可以做的最简单的事情是将密钥从PEM转换为DER格式,OpenSSL工具也支持这种格式。大多数情况下,您需要添加另一个参数以使其接受

DER是一种二进制格式,因此如果没有任何线索,它可能看起来像二进制乱码。但它当然有其内部结构(ASN.1)


PEM是一种Base64编码的DER,添加了delimeters,如
----BEGIN RSA公钥---
行。

您可以做的最简单的事情是将密钥从PEM转换为DER格式,OpenSSL工具也支持这种格式。大多数情况下,您需要添加另一个参数以使其接受

DER是一种二进制格式,因此如果没有任何线索,它可能看起来像二进制乱码。但它当然有其内部结构(ASN.1)


PEM是一种Base64编码的DER,添加了delimeters,如
----BEGIN RSA公钥---
行。

您可以做的最简单的事情是将密钥从PEM转换为DER格式,OpenSSL工具也支持这种格式。大多数情况下,您需要添加另一个参数以使其接受

DER是二进制的