Некоторые люди ставят под сомнение актуальность вопроса, который я поднимаю здесь.Хотя я задаю общий вопрос для запуска открытого разговора, для этого класса есть очень конкретное приложение:
Если я хочу расшифровать некоторые сообщения, мне нужно загрузить данные закрытого ключа в класс,Если я не могу предотвратить доступ к нему другого Java-кода, невозможно создать безопасную систему.Конечно, если я хочу расшифровать сообщение, мне лучше сделать это в классе, чем выдавать секрет, но, тем не менее, сейф должен оставаться неразрушимым.
Первый в безопасности, небьющийся нене существуетЕсть небольшой шанс, что случайно я найду твой ключ для записи, просто записав случайные вещи на клавиатуре.Если ваш ключ сложный, это сделает вас действительно неудачником, но это возможно.
Второй момент, использование пары значений открытый / закрытый ключ для защиты связи между клиентом и сервером действительно распространено, и этоработает отлично, если все сделано правильно.Но нужно понимать, что это действительно защищает связь между двумя компьютерами.Это не защищает компьютер.Все это основано на полном доверии компьютера друг к другу.
Третий момент, когда у вас есть физический доступ к компьютеру, вы можете делать все, что угодноВ частности, это включает в себя шпионаж во всем, что делает программа.И все содержимое компьютера.Да, контент может быть зашифрован, но при использовании он больше не шифруется.Это серьезная проблема системы открытых / закрытых ключей: закрытый ключ где-то хранится, поэтому вы должны быть уверены, что это место безопасно.
Этот процесс может быть вполне приемлем для вас, если вы доверяете компьютерам, участвующим вкоммуникации.Это пример для примера, когда вы подключаетесь к своему банковскому счету.
Банковские компьютеры являются доверенными, и предоставляемый доступ к внешнему слову действительно ограничен и контролируется.Они «безопасны».
Если вы отдадите свой личный ключ или получите доступ к банку.Вы скомпрометированы, но это ваша ответственность и проблема.Поскольку не в ваших интересах быть скомпрометированным, вы сделаете все возможное, чтобы избежать этого.Это хорошо, потому что вы тот, кто полностью контролирует ваш компьютер.
Но допустим, вы получаете доступ к своему банку с общедоступного компьютера или с компьютера другого человека.Тогда простой кейлоггер может просто записывать движения клавиш и мыши, которые вы делаете при вводе пароля.
Безопасность на стороне клиента основана на доверии, которое вы можете иметь на клиенте.Если вы можете доверять ему, это прекрасно, это работает.Если вы не можете, то он сломан.