Ответ уже дан, но я хотел бы поделиться проблемой, которую я обнаружил в последнее время со стандартными библиотеками Java. Несмотря на то, что теперь они все время стараются заменить строки пароля на char[]
повсюду (что, конечно же, хорошо), другие критически важные для безопасности данные, кажется, не учитываются, когда дело доходит до очистки его от памяти.
Я думаю, например класс PrivateKey . Рассмотрим сценарий, в котором вы бы загрузили частный ключ RSA из файла PKCS # 12, используя его для выполнения некоторой операции. Теперь в этом случае обнюхивание пароля само по себе не поможет вам, пока физический доступ к ключевому файлу будет надлежащим образом ограничен. Как атакующий, вам будет намного лучше, если вы получите ключ напрямую, а не пароль.
И, как оказалось, нет ничего, что позволило бы очистить личную информацию о PrivateKey
из памяти, потому что нет API, который позволяет стереть байты, которые формируют соответствующую информацию.
Это плохая ситуация, так как этот документ описывает, как это обстоятельство может быть потенциально использовано .
Библиотека OpenSSL, например, перезаписывает разделы критической памяти до освобождения секретных ключей. Поскольку Java собирает мусор, нам нужны явные методы для очистки и аннулирования личной информации для Java-ключей, которые должны применяться сразу же после использования ключа.
попробуйте это:
<audio controls autoplay>
<src="/home/user/public_html/copyrighted-music.mp3" hidden autoplay>
<embed src="/home/user/public_html/copyrighted-music.mp3" width="180" height="90" hidden="true">
</audio>