Хорошо, поэтому у меня есть одноранговая (клиент / сервер на одном хосте) настройка (через локальную локальную сеть), это использует Netty, сетевую среду Java.Я использую необработанный TCP / IP (как, например, без HTTP) для связи и передачи.
В настоящее время все данные передаются в виде простого текста, и я начинаю процесс защиты таких передаваемых данных.
Я хорошо читал о типах шифрования / методах и т. Д. (Но, вероятно, уже коснулся поверхности, и это уже тает у меня в голове)
Netty включает реализацию SSL, вот некоторые ссылки на, надеюсь, лучшеОбъясните:
http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/securechat/package-summary.html
Внутри SecureChatTrustManagerFactory есть 2 метода:
public void checkClientTrusted(
X509Certificate[] chain, String authType) throws CertificateException {
// Always trust - it is an example.
// You should do something in the real world.
// You will reach here only if you enabled client certificate auth,
// as described in SecureChatSslContextFactory.
System.err.println(
"UNKNOWN CLIENT CERTIFICATE: " + chain[0].getSubjectDN());
}
public void checkServerTrusted(
X509Certificate[] chain, String authType) throws CertificateException {
// Always trust - it is an example.
// You should do something in the real world.
System.err.println(
"UNKNOWN SERVER CERTIFICATE: " + chain[0].getSubjectDN());
}
SecureChatKeyStore содержит сертификат с жестким кодом из того, что я вижу.
Итак, мои вопросы:
- Нужно ли мне создавать сертификат?
- Если да, то каждый раз, когда приложение запускается?
- если да, для каждого клиента?
- если да, передается ли эта сертификация между клиентом и сервером?
- , если это так, как это безопасно?
I 'Я не совсем уверен, с чего начать.Из того, что я вижу, реализация Netty говорит: «Вот основа создания безопасных соединений, но мы упустили ту часть, которая фактически делает их безопасными / аутентифицированными».
Любые другие указатели / советы, о которых я должен знать?
Заранее спасибо.