1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/18981885165-cc.hanzs.server

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#cc.hanzs.server

Описание сервера Hanzs1. Этот проект представляет собой серверный фреймворк,

  1. который используется вместе с cc.hanzs.client.
  2. Поддержка веба отсутствует.
  3. Целью создания этого проекта является создание легковесного, эффективного и безопасного сетевого соединения.
  4. Между сервером и клиентом используется метод, аналогичный TLS. Невозможно установить, был ли это до или после TLS, так как автор узнал о TLS уже после завершения работы над этим коммуникационным фреймворком.
  5. Ограничение частоты запросов одного IP адреса установлено в два раза больше количества зарегистрированных пользователей. Это помогает предотвратить атаки типа DDoS, но увеличивает риск того, что злоумышленники могут использовать публичные IP адреса корпоративной сети для взаимодействия с сервером.
  6. Предприняты меры безопасности на уровне приложения для защиты от DDoS атак и снижения скорости кражи данных. Клиент ограничен следующими условиями:
      1. Доступ осуществляется последовательно.
      1. Клиент признаёт только тот IP адрес, который использовался во время рукопожатия.
      1. Частота доступа ограничена, превышение пороговой частоты вызывает прекращение обслуживания клиента. По умолчанию максимальная частота составляет 50 запросов в минуту. Включено также обслуживание сердцебиения, которое происходит каждую минуту. - 4) Объем отправляемых данных ограничен; превышение порогового значения вызывает прекращение обслуживания клиента. По умолчанию максимальный объем составляет 9600 байтов.
      1. Объем запрашиваемых данных ограничен; превышение порогового значения вызывает прекращение обслуживания клиента. По умолчанию максимальный объем составляет 12000 байтов.
      1. Уровень сжатия отправляемых архивов ограничен, чтобы предотвратить атаки типа "zip bomb".
  7. Ниже перечислены проблемы, которые данный подход не может предотвратить:
      1. Одновременная передача большого объема данных может заблокировать сервер, занятый приемом этих данных. Приложение принимает данные только первых (количество зарегистрированных пользователей * 2) соединений, объем каждого соединения составляет 9600 байт. Пределы, при которых система будет заблокирована, неизвестны.
      1. Управление большим количеством "мясных" машин для выполнения рукопожатий с сервером может занять много времени за счет использования алгоритма RSA. Когда количество таких машин достаточно велико, сервер может быть занят процессом расшифровки. Лимит для каждого IP адреса составляет двойное количество зарегистрированных пользователей. Пределы, при которых система будет заблокирована, неизвестны. - 3) Если сервер находится в облаке, использование поддельных IP-адресов корпоративной сети для постоянного выполнения рукопожатий с сервером может сделать невозможным доступ к серверу для корпорации. Сервер может считать это атакой и отклонить все входящие запросы.
    1. К тому же помимо врожденных проблем базовых протоколов, существуют также ошибки человеческого фактора и атаки на клиентскую сторону. Например, сотрудник может уволиться, забыв отключить его права доступа в системе; клиентская сторона может быть взломана, что приведет к использованию пользователя как "лошади", или к хищению пароля.9) Этот фреймворк можно использовать вне веб-среды. Например, для управления программами или аналогичных сред, чтобы разделить бизнес-функции и веб-компоненты.

##. ###Используемые редакторы NetBeans, Java 8.

lib. 7z распакуйте в папку lib, это необходимые jar-файлы.

cc. hanzs. server. 7z после распаковки вы получите оптимизированный jar.

##. ###Соблюдение лицензий Для максимальной защиты трудов автора и прав использования покупателями, этот проект следует лицензии LGPLv3:

1) Можно модифицировать саму программу, но никто не имеет права использовать саму программу или её модификацию в коммерческих целях.

2) Любой человек может бесплатно использовать данную программу (включая вызовы, упаковку и модификации) в коммерческих программах.

3) За техническую поддержку программы технический специалист может взимать плату.##.

Методы использования

public class Оптимизация_входа extends cc.hanzs.server.Бизнес.__ {
    public static void main(String[] args) {
        try {
            // Настройка параметров балансировки нагрузки
            cc.hanzs.server.Балансировка_нагрузки.Property.iЦентральныйПорт_i = 8080;
            // Этот RSA предназначен для Java-клиента, ключевой размер можно увеличивать до очень больших значений
            cc.hanzs.server.Балансировка_нагрузки.Property.rsa = cc.hanzs.Безопасность.RSA.dКопия(1);
            cc.hanzs.server.Балансировка_нагрузки.Property.rsa.gУстановитьПриватныйКлюч(cc.hanzs.Кодирование.Base64.dРазобрать.decode("MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvnU1UYcd93QJv9VLZuCAPONa9QBL5HaiJEkmecnAZZl0QUsrnVYIUF9uIdQu538YVHhFgdXpgF+PKWQ6NkLcfwIDAQABAkEAoYQQlXU6qpHTesXNzg7xcbF1f3Si57rbwl3urTW1XfKNuoRj9eNW1hvii67V61/6TTdqTQ/VBqVSMNB7sOLQQQIhAPo+JJY78fhXr3uWJ0Hvp8GjVk3kOU6Pm5IDx/5SO/AxAiEAwtbzHMDqjJHuIvLrm5q0nB6Os7WzhAlcWyhX3gecm68CIFUpFsxlxBfux1J4rA19YIq+al2BoJsCtj+/t6zuEWXRAiEAqlYfPoENzQz7YwR6pJPw2BgC6+urYICKhItVnh+Lc7MCIHhkYzuaBPF9DrMj4sNwxiQCxrRHC2iXVmI/5fVw/QWE"));
//            cc.hanzs.server.Балансировка_нагрузки.Property.rsa.gУстановитьПубличныйКлюч(cc.hanzs.Кодирование.Base64.dРазобрать.decode("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL51NVGHHfd0Cb/VS2bggDzjWvUAS+R2oiRJJnnJwGWZdEFLK51WCFBfbiHULud/GFR4RYHV6YBfjylkOjZC3H8CAwEAAQ=="));
            // Этот RSA предназначен для C#-клиента с фиксированной длиной ключа 1024
            // JAVA:
```            // Private key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJGFzm2TicnMjdZwNk0O5SO2tUXYgekFR5bkUwzB2sRiXOogyM6fLh/YayGUOop+XbVd6+PfLT+SGEJ4otCn7lwMBp8oNePf0ZmYbscp5Zmn4MLwAStVixAJFpcAm7O6jCaa6ds5rheg4F8Xdobyjni/PVO3LYx9mkMC6vSZR1ZvAgMBAAECgYAUbIEyY9ic1/a4N/uHCSYjwwriCKcC+1i21sjJK5P2qA9+VKeaSEEC+y7eAZ3NvjqMr+fhjXseRvTcr226dzc+wcGsxkJGWq3uTQa1od4yY1Mu5SRX7OnQ1wnYuIxhgt3+pMtjCe/JbAAZOd+GyDp4t2LJdwPRwOLKzIGmuBb+4QJBAMhxrG0UuQDGreviM1yIwrK/OFNN4EJunGWyrmi23YWxvBIFiGV0IEXRxpXKW/lAMGyQ3q2z9NQjfq/vrkq7EVkCQQC52zzELHNDkHzR3yow5SeEXfyafrdrAyGe+UM0KyOZyUkAvHj6VV7z7Kl8JAzsBdZFU/ujhJeysGNgYlSs6CUHAkEAkI5qa8CmK4kdpSBdKj73KzH8zRc8xKxA3pcecSZwXBryJ40V8RTusWu4bA6khf1k7ucLsPo3d0ah9wBEEmEXAQJAVJ1gq/uEupT0juQoJDyf4h6cG4ZnYRv62ZKoKv8c5S4Dw4cLGQV3BlyPyQnsrCP4KnYS0Z5TJjIx/DaoUFQcTwJAPBkI6jnZ5WzhfGmLfjqzsteICdY3OAO+E+Bsxu2MU3JFGXctu+MW1G+M2+2qZ4jJOsz3WQTY77ZOaH78Ja6kHA==
              //
             // C#:
             // Public key is: AQAB
             // Modulus is: kYXObZOJycyN1nA2TQ7lI7a1RdiB6QVHluRTDMHaxGJc6iDIzp8uH9hrIZQ6in5dtV3r498tP5IYQnii0KfuXAwGnyg149/RmZhuxynlmafgwvABK1WLEAkWlwCbs7qMJprp2zmuF6DgXxd2hvKOeL89U7ctjH2aQwLq9JlHVm8=
             cc.hanzs.server.балансировка.Свойства.RsaForDot = cc.hanzs.безопасность.RSA.dКопия(2);
             cc.hanzs.server.балансировка.Свойства.RsaForDot.gУстановитьПриватныйКлюч(cc.hanzs.кодирование.Base64.dРазобрать.разобрать("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJGFzm2TicnMjdZwNk0O5SO2tUXYgekFR5bkUwzB2sRiXOogyM6fLh/YayGUOop+XbVd6+PfLT+SGEJ4otCn7lwMBp8oNePf0ZmYbscp5Zmn4MLwAStVixAJFpcAm7O6jCaa6ds5rheg4F8Xdobyjni/PVO3LYx9mkMC6vSZR1ZvAgMBAAECgYAUbIEyY9ic1/a4N/uHCSYjwwriCKcC+1i21sjJK5P2qA9+VKeaSEEC+y7eAZ3NvjqMr+fhjXseRvTcr226dzc+wcGsxkJGWq3uTQa1od4yY1Mu5SRX7OnQ1wnYuIxhgt3+pMtjCe/JbAAZOd+GyDp4t2LJdwPRwOLKzIGmuBb+4QJBAMhxrG0UuQDGreviM1yIwrK/OFNN4EJunGWyrmi23YWxvBIFiGV0IEXRxpXKW/lAMGyQ3q2z9NQjfq/vrkq7EVkCQQC52zzELHNDkHzR3yow5SeEXfyafrdrAyGe+UM0KyOZyUkAvHj6VV7z7Kl8JAzsBdZFU/ujhJeysGNgYlSs6CUHAkEAkI5qa8CmK4kdpSBdKj73KzH8zRc8xKxA3pcecSZwXBryJ40V8RTusWu4bA6khf1k7ucLsPo3d0ah9wBEEmEXAQJAVJ1gq/uEupT0juQoJDyf4h6cG4ZnYRv62ZKoKv8c5S4Dw4cLGQV3BlyPyQnsrCP4KnYS0Z5TJjIx/DaoUFQcTwJAPBkI6jnZ5WzhfGmLfjqzsteICdY3OAO+E+Bsxu2MU3JFGXctu+MW1G+M2+2qZ4jJOsz3WQTY77ZOaH78Ja6kHA=="));```markdown
//            cc.hanzs.server.Балансировка нагрузки. Свойство. rsa. задание_открытого_ключа(cc. hanzs. Кодирование. Base64. декодирование. decode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCRhc5tk4nJzI3WcDZNDuUjtrVF2IHpBUeW5FMMwdrEYlzqIMjOny4f2GshlDqKfl21Xevj3y0/khhCeKLQp+5cDAafKDXj39GZmG7HKeWZp+DC8AErVYsQCRaXAJuzuowmmunbOa4XoOBfF3aG8o54vz1Tty2MfZpDAur0mUdWbwIDAQAB"));
              //Запуск балансировки нагрузки
             cc. hanzs. сервер. Балансировка_нагрузки. баланс. init(new оптимизация_входа());
             cc. hanzs. сервер. Балансировка_нагрузки. баланс. start();
             System. out. println("Запуск завершен");
         } catch (java. io. IOException | java. security. NoSuchAlgorithmException | java. security. spec. InvalidKeySpecException ex) {
         }
     }
      @Override
     public byte[] обработка_запроса(final int session_i, final byte[] клиентских_данных_bytes) {
         cc. hanzs. json. JSONObject json = cc. hanzs. json. JSONObject. копия("{success:true,_:'тестирование'}");
         json. put("@", session_i);
         return json. toString(). getBytes();
     }
      @Override
     public void удалить_сессию(int session_i) {
     }
 }
`Приватный ключ` и `публичный ключ` генерируются пользователем, а `публичный ключ` публикуется для использования клиентами.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Цель этого проекта — создать упрощённый, эффективный и безопасный сервис сетевых подключений с функцией предотвращения DDoS-атак, который можно использовать вне сферы WEB. Развернуть Свернуть
LGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/18981885165-cc.hanzs.server.git
git@api.gitlife.ru:oschina-mirror/18981885165-cc.hanzs.server.git
oschina-mirror
18981885165-cc.hanzs.server
18981885165-cc.hanzs.server
master