Углубленное понимание протокола SSL: от теории к практике
Углубленное понимание протокола SSL: от теории к практике

Предисловие

Это техническая статья о протоколе SSL. Она содержит теоретические знания, но также имеет определенную степень практичности. Основное содержание статьи описывает основные концепции, принципы работы, общие сценарии применения протокола SSL и практическое применение. https. Сценарии приложений, а также сосредоточимся на ознакомлении с конкретными принципами работы и способами реализации https-доступа к веб-сайту. Независимо от того, являетесь ли вы новичком в области технологий информационной безопасности или профессионалом, я считаю, что эта статья может принести вам помощь или вдохновение. Если есть какие-либо ошибки, пожалуйста, укажите на них в комментариях, чтобы мы могли расти и совершенствоваться вместе.

Что такое SSL

SSL (Secure Sockets Layer) — это стандартная технология безопасности, используемая для защиты информации в Интернете. Он обеспечивает безопасную передачу данных между клиентами и серверами путем шифрования сетевых соединений. Протокол SSL использует асимметричное шифрование и технологию симметричного шифрования для предотвращения кражи или подделки данных во время передачи. SSL в основном используется для защиты конфиденциальной информации на веб-сайтах, такой как личная информация, данные кредитной карты и т. д. В современных сетевых коммуникациях SSL был заменен стандартом-преемником TLS (Transport Layer Security), но обычно люди по-прежнему называют его SSL.

Как работает SSL

В приведенном выше концептуальном описании упомянуты два ключевых момента: во-первых: SSL — это технический стандарт защиты информации; во-вторых: SSL использует технологию симметричного шифрования и технологию асимметричного шифрования, в частности, «Как работает SSL» включает следующие три ключевых этапа:

  1. Фаза установления связи: клиент инициирует запрос на соединение с сервером, и сервер возвращает свой SSL-сертификат. Клиент проверяет действительность сертификата и генерирует предварительный главный ключ, который затем шифруется открытым ключом сервера и отправляется на сервер.
  2. Фаза согласования ключа: после того, как сервер получает предварительный главный ключ, отправленный клиентом, он использует свой собственный закрытый ключ для его расшифровки и получения предварительного главного ключа. Затем обе стороны генерируют сеансовый ключ (симметричный ключ) на основе предварительного ключа. -мастер-ключ для шифрования передаваемых данных.
  3. Этап передачи данных: клиент и сервер используют сеансовые ключи для шифрования и дешифрования данных связи, чтобы обеспечить конфиденциальность и целостность данных во время передачи.

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

Несколько вопросов о том, как работает SSL

Как клиент проверяет действительность сертификата SSL, возвращаемого сервером?

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

  1. Проверка цепочки сертификатов

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

  1. Проверка действительности сертификата

Клиент проверит срок действия сертификата, чтобы убедиться, что срок действия сертификата не истек. Если срок действия сертификата истек, клиент не будет ему доверять.

  1. совпадение имени хоста

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

  1. Проверка отзыва сертификата

Клиент также проверяет, отозвал ли центр сертификации сертификат сервера. Это можно проверить, запросив список отзыва сертификатов (CRL) или онлайн-протокол статуса сертификатов (OCSP) центра сертификации.

  1. Необязательная дополнительная проверка

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

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

Что такое премастер-ключ? Что такое сеансовый ключ?

Премастерский секрет:

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

Сессионный ключ:

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

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

Характеристики технологии асимметричного шифрования и технологии симметричного шифрования

Технология асимметричного шифрования имеет следующие основные особенности:

  • Открытые и закрытые ключи

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

  • Шифрование и дешифрование

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

  • цифровая подпись

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

  • безопасность

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

  • обмен ключами

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

  • эффективность

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

Технология симметричного шифрования имеет следующие характеристики:

  • Эффективность

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

  • простота

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

  • Ключевое управление:

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

  • применимость

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

  • симметрия

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

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

Является ли Md5 типом технологии асимметричного шифрования?

Ответ — нет. MD5 и асимметричное шифрование — это две разные технологии шифрования. Между ними есть некоторые связи, но есть и различия:

  • Функция и использование

MD5 (алгоритм дайджеста сообщения 5) — это алгоритм хеширования, который в основном используется для создания дайджеста данных для обеспечения целостности данных и проверки согласованности данных.

Алгоритмы асимметричного шифрования (такие как RSA, ECC и т. д.) — это алгоритм шифрования, который использует пару ключей (открытый ключ и закрытый ключ) для шифрования и дешифрования. Его также можно использовать для цифровых подписей и функций обмена ключами.

  • Однонаправленность

MD5 — это алгоритм одностороннего хеширования, то есть он может генерировать дайджест данных, но не может восстановить исходные данные из дайджеста.

Алгоритм асимметричного шифрования является двусторонним. Вы можете использовать открытый ключ для шифрования данных и закрытый ключ для расшифровки данных или использовать закрытый ключ для подписи данных и открытый ключ для проверки подписи.

  • безопасность

Алгоритм MD5 имеет некоторые недостатки безопасности, такие как уязвимость к коллизионным атакам и т. д., и не подходит для использования в сценариях с высокими требованиями безопасности.

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

  • комбинированное использование

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

Сценарии применения SSL

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

  • Шифрованная связь на веб-сайте: защитите передачу данных на веб-сайте через протокол HTTPS, чтобы обеспечить безопасность связи между пользователями и веб-сайтом.
  • Шифрование электронной почты. Например, используйте такие протоколы, как SMTPS, IMAPS и POP3S, чтобы защитить процесс передачи электронной почты и обеспечить конфиденциальность содержимого электронной почты.
  • Виртуальная частная сеть (VPN): установите безопасное соединение удаленного доступа с помощью технологии SSL VPN, чтобы удаленные пользователи могли безопасно получить доступ к внутренним сетевым ресурсам компании.
  • Удаленное управление и доступ: например, удаленное управление сервером через SSH (Secure Shell) и доступ к интерфейсу удаленного управления через HTTPS.
  • Безопасный чат и обмен мгновенными сообщениями. Многие приложения для обмена мгновенными сообщениями используют SSL/TLS для шифрования сообщений между пользователями и обеспечения конфиденциальности содержимого чата.

Общие шаги по реализации доступа https

Среди сценариев применения протокола SSL можно использовать протокол https для реализации зашифрованной связи на веб-сайте. У некоторых друзей могут возникнуть вопросы. https и ssl - это оба протокола. Есть ли разница или связь? Это можно понять так: HTTPS на самом деле является безопасной версией протокола HTTP. Он добавляет к HTTP механизм шифрования протокола SSL/TLS и защищает безопасность связи путем шифрования данных на транспортном уровне.

В настоящее время большинство веб-сайтов используют HTTPS. Если вы хотите внедрить HTTPS на своем веб-сайте, вам обычно требуются следующие шаги:

  1. Получить SSL-сертификат

Обычно существует всего несколько способов получить сертификат SSL. Ниже приведены некоторые распространенные способы:

  • Коммерческий центр сертификации (CA). Вы можете приобрести сертификат SSL, выданный коммерческим центром сертификации (например, Comodo, DigiCert, GlobalSign, Symantec и т. д.). Эти сертификаты обычно предлагают больше функций и гарантий и подходят для различных потребностей корпоративного уровня.
  • Поставщик услуг хостинга: если вы используете услуги облачного хостинга (зарубежные, такие как AWS, Azure, Google Cloud и т. д., внутренние, такие как Alibaba Cloud, Tencent Cloud и т. д.), эти платформы обычно предоставляют интегрированные услуги управления сертификатами SSL, которые можно легко получен и настроен SSL-сертификат.
  • Let's Encrypt: Let's Encrypt — это бесплатный центр сертификации. С помощью его службы вы можете получить бесплатные сертификаты SSL и поддерживать автоматическую выдачу и продление.
  • Сторонний рынок сертификатов. Существуют некоторые сторонние рынки сертификатов (например, SSLs.com, Namecheap и т. д.), которые также предоставляют различные типы сертификатов SSL. На этих рынках вы можете приобрести и получить сертификаты.
  • Самозаверяющий сертификат. Если вы используете SSL-шифрование только во внутренней среде или в целях тестирования, вы также можете создать для использования самозаверяющий сертификат. Однако имейте в виду, что самозаверяющим сертификатам нельзя доверять в общедоступных сетях.
  1. Установить SSL-сертификат

После получения SSL-сертификата вам необходимо установить его на свой веб-сервер. Обычно это предполагает настройку файла сертификата и файла ключа в соответствующем расположении серверного программного обеспечения (например, Apache, Nginx и т. д.). Это будет сделано позже на примере nginx для установки самозаверяющего сертификата.

  1. Настроить сервер

Необходимо изменить конфигурацию веб-сервера, включить протокол SSL/TLS и настроить параметры безопасности, такие как набор шифров и версию протокола.

  1. Обновить ссылку на сайт

Измените все ссылки на веб-сайте, чтобы они начинались с https://, и убедитесь, что доступ ко всем ресурсам на веб-сайте осуществляется через зашифрованные соединения.

  1. принудительное перенаправление

Чтобы гарантировать, что весь доступ осуществляется через HTTPS, обычно принудительно перенаправляют доступ HTTP на HTTPS.

  1. Тестируйте и проверяйте

Наконец, тестирование и проверка необходимы, чтобы гарантировать, что конфигурация HTTPS вступила в силу и что веб-сайт отображает логотип безопасной блокировки в браузере.

На этом этапе вы можете относительно безопасно получить доступ к целевому веб-сайту.

Как работает HTTPS

Я думаю, вы уже знаете, как реализовать HTTPS для обычных веб-сайтов. Но понимаете ли вы, как работает весь процесс? И посмотрите вниз. Принцип работы HTTPS (безопасный протокол передачи гипертекста) в основном основан на протоколе SSL/TLS. Его ключевые этапы включают в себя:

  1. фаза рукопожатия

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

  1. ключевой этап соглашения

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

  1. Этап передачи данных

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

Благодаря вышеуказанным шагам HTTPS обеспечивает зашифрованную передачу данных, обеспечивая тем самым безопасность данных во время передачи. Кроме того, HTTPS также использует цифровые сертификаты для проверки личности сервера, предотвращения атак «злоумышленник посередине» и обеспечения безопасности и надежности связи между клиентом и сервером.

Настройте SSL-сертификат в Nginx для обеспечения https-доступа к веб-сайту.

Настройка сертификата SSL в Nginx обеспечивает доступ клиента по протоколу HTTPS. Процесс настройки не сложен, но предполагается, что у вас должен быть сертификат.

1. Получите SSL-сертификат:

Как упоминалось выше, вы можете получить сертификат SSL от доверенного центра сертификации (CA) или с помощью бесплатной службы сертификации, такой как Let's Encrypt. Следует отметить, что самозаверяющие сертификаты лучше всего использовать только в интрасети. Самозаверяющим сертификатам нельзя доверять в Интернете.

2. Настройте SSL-сертификат.

В конфигурации Nginx укажите расположение SSL-сертификата, закрытого ключа и других связанных конфигураций. Ниже приведен пример конфигурации ключей в nginx.conf:

копировать

Язык кода:javascript
копировать
server {
        listen       443 ssl;
        server_name  192.168.35.106;
        root         /usr/share/nginx/html;
        ssl_certificate /etc/nginx/ssl/cert.crt;
        ssl_certificate_key /etc/nginx/ssl/key.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
        ssl_prefer_server_ciphers on;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;


        error_page 404 /404.html;
        location = /404.html {
        }


        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
   server {
        listen 80;
      server_name 192.168.35.106;
    return 301 https://$host$request_uri;
   }
В приведенном выше примере конфигурации необходимо сосредоточиться на на Несколько мест: 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.
  • ssl_certificate: укажите путь к файлу сертификата SSL, здесь /etc/nginx/ssl/cert.crt. Файл сертификата содержит открытый ключ, цепочку сертификатов и другую необходимую информацию.
  • ssl_certificate_key: укажите путь к файлу закрытого ключа сертификата SSL, здесь /etc/nginx/ssl/key.pem. Закрытый ключ используется для расшифровки зашифрованных данных, отправленных клиентом.
  • ssl_protocols TLSv1.2 TLSv1.3;: указывает версию протокола SSL/TLS, поддерживаемую Nginx. Здесь настраиваются версии TLS 1.2 и TLS 1.3.
  • ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';: Здесь указаны два набора шифров, а именно ECDHE-ECDSA-AES256-GCM-SHA384 и ECDHE. -RSA-AES256-GCM-SHA384.
  • ssl_prefer_server_ciphers on;: Включить настройки приоритета набора шифров на стороне сервера, что означает, что сервер будет отдавать приоритет наборам шифров, которые он поддерживает, и согласовывать методы шифрования с клиентом.
  • прослушивайте 443 ssl;: при использовании протокола HTTPS порт 443 обычно используется для обеспечения зашифрованного доступа к веб-сайту, поэтому вам необходимо убедиться, что 443 может пройти брандмауэр и включить шифрование SSL.
  • прослушивать 80 на втором сервере: функция этой конфигурации — перенаправить все запросы к серверу через HTTP (порт 80) на HTTPS (порт 443), чтобы обеспечить доступ к веб-сайту через зашифрованное безопасное соединение;
  • return 301 https://$host$request_uri;: это директива перенаправления, которая при получении HTTP-запроса возвращает ответ постоянного перенаправления HTTP 301, перенаправляя запрос на тот же URL-адрес запроса, но с использованием протокола HTTPS. Где $host представляет имя хоста исходного запроса, а $request_uri представляет URI исходного запроса.

3. Перезапустите Nginx.

После завершения настройки SSL вам необходимо перезагрузить или перезапустить Nginx, чтобы изменения вступили в силу. Вы можете использовать команду nginx -s reload или systemctl restart nginx, чтобы перезагрузить конфигурацию.

копировать

Язык кода:javascript
копировать
nginx -s reload
 systemctl restart nginx1.2.

4. Проверка

Используйте браузер для доступа к своему веб-сайту и измените исходный доступ http на доступ https. Если к нему можно получить доступ через HTTPS, а в адресной строке браузера отображается логотип безопасного соединения, это означает, что настройка прошла успешно.

напиши в конце

Большое спасибо за ваше терпение при чтении моей статьи. Надеюсь, мой рассказ будет вам полезен. Конечно, если вы считаете, что эта статья полезна для вас, вы можете также нажать кнопку «Нравится», чтобы больше людей увидели этот высококачественный обмен технологиями. В то же время не забудьте добавить эту статью в закладки для удобства использования в будущем.

ssl
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose