Включить механизм шифрования в jvm [закрыт]

134
24 октября 2019, 01:10

Как включить механизм шифрования памяти в jvm? Для предотвращения Dll инъекций и замены переменных используя CheatEngine (как в denuvo)

Answer 1

Насколько я знаю, включить шифрование памяти в jvm нельзя.

Если вы храните данные в String:

Вы можете использовать GuardedString для обеспечения безопасности паролей. Это специальный объект String, созданный для решения вопросов, связанных с хранением паролей в памяти, представленных String:

Пакет org.identityconnectors.common.security.GuardedString. Документация:

Secure string implementation that solves the problems associated with keeping passwords as java.lang.String. That is, anything represented as a String is kept in memory as a clear text password and stays in memory at least until it is garbage collected. The GuardedString class alleviates this problem by storing the characters in memory in an encrypted form. The encryption key will be a randomly-generated key. In their serialized form, GuardedString will be encrypted using a known default key. This is to provide a minimum level of protection regardless of the transport. For communications with the Remote Connector Framework it is recommended that deployments enable SSL for true encryption. Applications may also wish to persist GuardedStrings. In the case of Identity Manager, it should convert GuardedStrings to EncryptedData so that they can be stored and managed using the Manage Encryption features of Identity Manager. Other applications may wish to serialize APIConfiguration as a whole. These applications are responsible for encrypting the APIConfiguration blob for an additional layer of security (beyond the basic default key encryption provided by GuardedString).

Если у злоумышленника есть root-доступ к компьютеру, он может прочитать всю память, выполнить операции отладки, выполнить обратный инжиниринг вашего байт-кода java и т.д., то есть нет никакого практического способа помешать злоумышленнику получить данные, которые где-то спрятаны в оперативной памяти. Также вы можете зашифровать swap file/partition.

Вы можете шифровать сами данные лежащие в переменных. Также чтобы усложнить предполагаемым взломщикам понимание вашего кода(т.е. что как работает), вы можете обфусцировать код.

READ ALSO
Доступ к массиву из другого класса java

Доступ к массиву из другого класса java

хочу сделать так, чтобы при вызове метода из другого класса можно было менять значение его массива на нужное мне, но никак не выходит это сделать...

145
Многопоточность java прогрессия [закрыт]

Многопоточность java прогрессия [закрыт]

Найти сумму арифметической прогрессии f(n, N) = n + 2n + 3n + 4n + 5n +

115
Можно ли создать глобальный класс для конфигурации ApplicationContxt в Spring?

Можно ли создать глобальный класс для конфигурации ApplicationContxt в Spring?

Подскажите можно ли создать глобальный класс конфигурации для ApplicationContext в Spring вместо того что бы использовать вот такой вот пример:

118