Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java SSL


Автор: Alone 24.9.2004, 10:11
Доброго дня всем.
Кто сможет подсказать - как сгенерить ключики непосредственно из программы а не внешними инструментами? Потому как это будет на стороне клиента, и лишние телодвижения ему не нужны.

Автор: Zandr 24.9.2004, 11:01
java.security, java.security.* смотрел? Какие для SSL нада ключи? Просто пока не шарю в этом совсем... smile.gif

Автор: Alone 24.9.2004, 11:19
Ключи генерятся с помощью утилиты keytool и результат - в файл.
А мне надо по ходу программы сгенерить их...

Автор: AntonSaburov 24.9.2004, 14:41
Посмотри javax.crypto.*

Автор: x00 2.2.2008, 16:16
у меня возникла такая же проблема надо весь процесс автоматизировать. Клиент с сервером должны общаться по сети , впервые видя друг друга, с помощью ssl, и все должно происходить автоматически.
Может кто-то что подскажет, или в доку ткнет?

Может есть какие-то готовые реализации?

Автор: w1nd 2.2.2008, 17:59
Вообще странное желание - использовать SSL и не использовать аутентификацию. Как подключаетесь к удалённому серверу?

Автор: Alexandr87 2.2.2008, 18:45
x00, клиенту ключи иметь не обязательно. Серверу же нужна не только ключевая пара, но и сертификат. Причем, один раз сгенериров ключи и сертификат, сервер использует их для всех клиентов. Ну и средствами J2SE сертификат не выпустишь - нужны дополнительные библиотеки (например, boucycastle.org).

Так что, я б на вашем месте задумался. Может все же лучше, один раз сгенерировать ключики и сертификат в сторонней программе.

Автор: w1nd 2.2.2008, 20:22
Цитата(Alexandr87 @  2.2.2008,  18:45 Найти цитируемый пост)
Серверу же нужна не только ключевая пара, но и сертификат. Причем, один раз сгенериров ключи и сертификат, сервер использует их для всех клиентов.

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

Цитата(Alexandr87 @  2.2.2008,  18:45 Найти цитируемый пост)
Ну и средствами J2SE сертификат не выпустишь - нужны дополнительные библиотеки (например, boucycastle.org).

Не обязательно. Если бы сторонние библиотеки были бы необходимы, без них и вовсе SSL нельзя было бы использовать.


Автор: Alexandr87 3.2.2008, 07:24
Цитата(w1nd @  2.2.2008,  23:22 Найти цитируемый пост)
Не обязательно. Если бы сторонние библиотеки были бы необходимы, без них и вовсе SSL нельзя было бы использовать.

Покажите API.

Цитата(w1nd @  2.2.2008,  23:22 Найти цитируемый пост)
Осталось выпытать у автора способ подключения к сервера

а какие они могут быть?

Автор: w1nd 3.2.2008, 22:13
Цитата(Alexandr87 @  3.2.2008,  07:24 Найти цитируемый пост)
Покажите API.

Да всё там же - java.security, java.security.cert - там что-то вроде CertificateFactory было. Вообще, поковыряйтесь в исходниках keytool (можно найти в Сети) - оно точнее будет.

Цитата(Alexandr87 @  3.2.2008,  07:24 Найти цитируемый пост)
а какие они могут быть?

Начиная от типичных - через URL и RMI, и заканчивая бесчисленным множеством сторонних библиотек и протоколов. В каждом случае способ конфигурирования SSL различается.

В общем - автору нужно отключить (реализовать свою) авторизацию сервера.

Автор: Alexandr87 4.2.2008, 16:52
Цитата(w1nd @  4.2.2008,  01:13 Найти цитируемый пост)
там что-то вроде CertificateFactory было

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

Автор: x00 5.2.2008, 16:57
Хотелось бы написать программу, для локалки, которая обеспечивала бы сикьюрный обмен сообщениями, как бродкаст от одного всем, так и риалтайм чат между двумя участниками, также и с передачей файлов. Хотелось бы, чтобы все было максимально сикьюрно. 
Каждый участник выступает как клиентом, так и сервером, и может посылать бродкаст месажи, которые должны понимать только авторизированные в данный момент клиенты.

Как я понимаю бек какого-то отдельного сервера регистрации мне не обойтись?
Или можно будет возложить эту задачу на одного из доверенных участников?
пс
Если кто знает подскажите есть ли какие то доки по работе жава с смарт картами.

Автор: Alexandr87 5.2.2008, 18:47
Цитата(x00 @  5.2.2008,  19:57 Найти цитируемый пост)
Хотелось бы написать программу, для локалки, которая обеспечивала бы сикьюрный обмен сообщениями, как бродкаст от одного всем, так и риалтайм чат между двумя участниками


SSL это соединение между двумя компьютерами, ни о каком бродкасте речи быть не может. Как варинат, наличие сервера - центра коммуникации. Текущие клиенты подключены к серверу и обмениваются информацией через него, тут вам и бродкаст и все, что захотите.
Перед первым сеансом работы, клиенты обязаны зарегистрировать на сервере, с занесением в базу данных пользовтаелей, выдачей сертификата для аутентификации и прочими процедурами. В общем все зависит от требоаний, которые предъявляются к системе.

Цитата(x00 @  5.2.2008,  19:57 Найти цитируемый пост)
Если кто знает подскажите есть ли какие то доки по работе жава с смарт картами.

вообще у нас тут принято: Одна тема - один вопрос. 
А так, можете посмотреть, входящий в состав j2se, крипто-провайдер SunPKCS. http://java.sun.com/j2se/1.5.0/docs/guide/security/p11guide.html
Но когда я года полтора назад с ним работал, меня в нем что то не устроило (что-то вроде невозможность просмотреть публичные объекты без ввода пина), я использовал просто враппер для pkcs#11 библиотек, который sun сам же и предоставляет, смотреть sun.security.pkcs11.wrapper.

Автор: x00 5.2.2008, 19:24
Цитата


SSL это соединение между двумя компьютерами, ни о каком бродкасте речи быть не может. Как варинат, наличие сервера - центра коммуникации. Текущие клиенты подключены к серверу и обмениваются информацией через него, тут вам и бродкаст и все, что захотите.


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

Цитата


Перед первым сеансом работы, клиенты обязаны зарегистрировать на сервере, с занесением в базу данных пользовтаелей, выдачей сертификата для аутентификации и прочими процедурами. В общем все зависит от требоаний, которые предъявляются к системе.


хорошая идея, но как это организовать что использовать?

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

Обмен сообщениями было бы удобно организовать RMI + SSL, передавать файлы через ssl socket, только перед этим хотелось бы автоматизировать все что возможно.
Допустимо чтобы приложение спрашивало у пользователя пасворд, но не как чтобы каждый генерил сертификат. 
Также хотелось бы, чтобы ключи и сертификаты менялись как можно чаще.

У кого есть какие идеи по реализации такой системы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)