diff --git a/dev/linux/Контейнерная виртуализация.md b/dev/linux/Контейнерная виртуализация.md index bc1a71a9..ddbe38ee 100644 --- a/dev/linux/Контейнерная виртуализация.md +++ b/dev/linux/Контейнерная виртуализация.md @@ -1,9 +1,9 @@ --- -aliases: +aliases: + - контейнерах tags: - maturity/🌱 -date: - - - 2024-03-20 +date: 2024-03-20 zero-link: - "[[../../meta/zero/00 Linux|00 Linux]]" parents: diff --git a/dev/network/HTTP.md b/dev/network/HTTP.md index 296ed893..5b80bc58 100644 --- a/dev/network/HTTP.md +++ b/dev/network/HTTP.md @@ -25,6 +25,16 @@ date: 2024-10-29 ![[../../meta/files/images/photo_2024-10-29 18.27.09.jpeg]] ![[../../meta/files/images/Pasted image 20241103035804.png]] +**Как происходит шифрование и дешифрование данных** +- **Шаг 1** — Клиент (браузер) и сервер устанавливают [[../../../../knowledge/dev/network/TCP|TCP]]-соединение. +- **Шаг 2** — Клиент отправляет серверу сообщение «client hello». Это сообщение содержит набор поддерживаемых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую клиент может поддерживать. Сервер отвечает сообщением «server hello», чтобы сообщить клиенту, какие алгоритмы и версия TLS поддерживаются. +- Затем сервер отправляет клиенту SSL-сертификат, который содержит публичный ключ, имя хоста, срок действия сертификата и другую информацию. Клиент проверяет подлинность сертификата. +- **Шаг 3** — После успешной проверки SSL-сертификата клиент генерирует сеансовый ключ и шифрует его с помощью публичного ключа. Сервер получает зашифрованный сеансовый ключ и дешифрует его с использованием своего приватного ключа. +- **Шаг 4** — Теперь, когда и клиент, и сервер обладают одним и тем же сеансовым ключом (симметричное шифрование), данные передаются в зашифрованном виде по защищённому двустороннему каналу. + +**Почему HTTPS переключается на симметричное шифрование для передачи данных?** +1. **Безопасность**: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их, используя публичный ключ. +2. **Ресурсы сервера**: Асимметричное шифрование требует значительных вычислительных ресурсов из-за сложных математических операций. Это делает его непригодным для передачи данных в долгих сессиях. *** ## Мета информация **Область**:: [[../../meta/zero/00 Сети|00 Сети]] diff --git a/dev/Хранение паролей в приложении.md b/dev/Хранение паролей в приложении.md new file mode 100644 index 00000000..42a9f9ff --- /dev/null +++ b/dev/Хранение паролей в приложении.md @@ -0,0 +1,46 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +![[../../../garden/ru/meta/files/images/Pasted image 20241103184325.png]] + +**Что не следует делать** +- **Хранение паролей в виде обычного текста** — это плохая практика, так как любой, имеющий доступ к данным, может увидеть пароли. +- **Хранение хэшей паролей напрямую** — также небезопасно, так как они подвержены атакам с использованием заранее вычисленных таблиц, таких как rainbow tables (радужные таблицы). + +**Как защититься от атак с предварительным вычислением хэшей?** +Для предотвращения атак с использованием радужных таблиц используется соль (salt). + +**Что такое соль?** +Согласно рекомендациям OWASP, «соль — это уникальная, случайно сгенерированная строка, которая добавляется к каждому паролю как часть процесса хэширования». + +**Как хранить пароль и соль?** +- Результат хэширования будет уникален для каждого пароля. +- Пароль можно сохранить в базе данных в следующем формате: hash(password + salt). + +**Как проверить пароль?** +Процесс проверки пароля может выглядеть следующим образом: +1. Клиент вводит пароль. +2. Система получает соответствующую соль из базы данных. +3. Система добавляет соль к паролю и выполняет хэширование. Назовем полученный хэш H1. +4. Система сравнивает H1 с H2, где H2 — это хэш, сохраненный в базе данных. Если они совпадают, пароль считается правильным. + +Такой подход значительно повышает безопасность системы, так как использование соли делает каждый хэш уникальным и усложняет атаки с использованием предварительно вычисленных таблиц. +*** +## Мета информация +**Область**:: +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + +- [[Хеширование паролей пользователей алгоритмом bcrypt]] + + diff --git a/meta/files/images/Pasted image 20241103180845.png b/meta/files/images/Pasted image 20241103180845.png new file mode 100644 index 00000000..8a2b21ec Binary files /dev/null and b/meta/files/images/Pasted image 20241103180845.png differ diff --git a/meta/files/images/Pasted image 20241103182657.png b/meta/files/images/Pasted image 20241103182657.png new file mode 100644 index 00000000..9196acce Binary files /dev/null and b/meta/files/images/Pasted image 20241103182657.png differ diff --git a/meta/files/images/Pasted image 20241103182733.png b/meta/files/images/Pasted image 20241103182733.png new file mode 100644 index 00000000..fbd78eea Binary files /dev/null and b/meta/files/images/Pasted image 20241103182733.png differ diff --git a/meta/files/images/Pasted image 20241103184325.png b/meta/files/images/Pasted image 20241103184325.png new file mode 100644 index 00000000..3232cc70 Binary files /dev/null and b/meta/files/images/Pasted image 20241103184325.png differ diff --git a/meta/files/images/comp/Pasted image 20241103180845.png b/meta/files/images/comp/Pasted image 20241103180845.png new file mode 100644 index 00000000..d1709e19 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103180845.png differ diff --git a/meta/files/images/comp/Pasted image 20241103180845.png.md5 b/meta/files/images/comp/Pasted image 20241103180845.png.md5 new file mode 100644 index 00000000..2a5722c9 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103180845.png.md5 @@ -0,0 +1 @@ +d260c1802f13d455bda27348dbfd5c02 diff --git a/meta/files/images/comp/Pasted image 20241103182657.png b/meta/files/images/comp/Pasted image 20241103182657.png new file mode 100644 index 00000000..976ac273 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103182657.png differ diff --git a/meta/files/images/comp/Pasted image 20241103182657.png.md5 b/meta/files/images/comp/Pasted image 20241103182657.png.md5 new file mode 100644 index 00000000..40f506fe --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103182657.png.md5 @@ -0,0 +1 @@ +0e0ff94f4ec596e5d629df2988cccde5 diff --git a/meta/files/images/comp/Pasted image 20241103182733.png b/meta/files/images/comp/Pasted image 20241103182733.png new file mode 100644 index 00000000..274c6b64 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103182733.png differ diff --git a/meta/files/images/comp/Pasted image 20241103182733.png.md5 b/meta/files/images/comp/Pasted image 20241103182733.png.md5 new file mode 100644 index 00000000..8f0294f2 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103182733.png.md5 @@ -0,0 +1 @@ +b9826eeafb3e24097af16ac356b7508c diff --git a/meta/files/images/comp/Pasted image 20241103184325.png b/meta/files/images/comp/Pasted image 20241103184325.png new file mode 100644 index 00000000..2540de22 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103184325.png differ diff --git a/meta/files/images/comp/Pasted image 20241103184325.png.md5 b/meta/files/images/comp/Pasted image 20241103184325.png.md5 new file mode 100644 index 00000000..00a71203 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103184325.png.md5 @@ -0,0 +1 @@ +0e68e36f1fe3931a3ffba609f8e8611c diff --git a/meta/files/images/git-merge-git-rebase.jpeg b/meta/files/images/git-merge-git-rebase.jpeg new file mode 100644 index 00000000..0f292942 Binary files /dev/null and b/meta/files/images/git-merge-git-rebase.jpeg differ diff --git a/meta/files/images/webp/Pasted image 20241103180845.webp b/meta/files/images/webp/Pasted image 20241103180845.webp new file mode 100644 index 00000000..b14c855b Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103180845.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103180845.webp.md5 b/meta/files/images/webp/Pasted image 20241103180845.webp.md5 new file mode 100644 index 00000000..2a5722c9 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103180845.webp.md5 @@ -0,0 +1 @@ +d260c1802f13d455bda27348dbfd5c02 diff --git a/meta/files/images/webp/Pasted image 20241103182657.webp b/meta/files/images/webp/Pasted image 20241103182657.webp new file mode 100644 index 00000000..8c6cb103 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103182657.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103182657.webp.md5 b/meta/files/images/webp/Pasted image 20241103182657.webp.md5 new file mode 100644 index 00000000..40f506fe --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103182657.webp.md5 @@ -0,0 +1 @@ +0e0ff94f4ec596e5d629df2988cccde5 diff --git a/meta/files/images/webp/Pasted image 20241103182733.webp b/meta/files/images/webp/Pasted image 20241103182733.webp new file mode 100644 index 00000000..29aea0ab Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103182733.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103182733.webp.md5 b/meta/files/images/webp/Pasted image 20241103182733.webp.md5 new file mode 100644 index 00000000..8f0294f2 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103182733.webp.md5 @@ -0,0 +1 @@ +b9826eeafb3e24097af16ac356b7508c diff --git a/meta/files/images/webp/Pasted image 20241103184325.webp b/meta/files/images/webp/Pasted image 20241103184325.webp new file mode 100644 index 00000000..949bca95 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103184325.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103184325.webp.md5 b/meta/files/images/webp/Pasted image 20241103184325.webp.md5 new file mode 100644 index 00000000..00a71203 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103184325.webp.md5 @@ -0,0 +1 @@ +0e68e36f1fe3931a3ffba609f8e8611c diff --git a/meta/files/images/webp/git-merge-git-rebase.webp b/meta/files/images/webp/git-merge-git-rebase.webp new file mode 100644 index 00000000..aca516cc Binary files /dev/null and b/meta/files/images/webp/git-merge-git-rebase.webp differ diff --git a/meta/files/images/webp/git-merge-git-rebase.webp.md5 b/meta/files/images/webp/git-merge-git-rebase.webp.md5 new file mode 100644 index 00000000..7b616c19 --- /dev/null +++ b/meta/files/images/webp/git-merge-git-rebase.webp.md5 @@ -0,0 +1 @@ +dad09828efea80cf824a25fcdc1c62b3 diff --git a/meta/zero/00 Docker.md b/meta/zero/00 Docker.md index ddf800fb..704d79c2 100644 --- a/meta/zero/00 Docker.md +++ b/meta/zero/00 Docker.md @@ -7,7 +7,9 @@ aliases: - Docker title: Docker --- -Для изоляции и управления ресурсами контейнеров активно используется [cgroup](../../dev/linux/Control%20group.md). Так же для изоляции активно используется [Namespace](../../dev/linux/Namespace.md). Все это функционал ядра Linux, поэтому не оказывает сильного влияния на производительность. Однако, нужно быть осторожным при работе с диском и сетью. С сутью больше всего проблем, например при запуске nginx можно получить просадку в 5%. +Docker — это платформа с открытым исходным кодом, которая позволяет упаковывать, распространять и запускать приложения в изолированных [[../../dev/linux/Контейнерная виртуализация|контейнерах]]. Она ориентирована на контейнеризацию, предоставляя легковесные среды, которые инкапсулируют приложения и их зависимости. + +Для изоляции и управления ресурсами контейнеров активно используется [cgroup](../../dev/linux/Control%20group.md). Так же для изоляции активно используется [Namespace](../../dev/linux/Namespace.md). Все это функционал ядра Linux, поэтому не оказывает сильного влияния на производительность. Однако, нужно быть осторожным при работе с диском и сетью. С сетью больше всего проблем, например при запуске nginx можно получить просадку в 5%. Обычно docker запускается от root пользователя. diff --git a/meta/zero/00 Git.md b/meta/zero/00 Git.md index ea0bcfe3..962280df 100644 --- a/meta/zero/00 Git.md +++ b/meta/zero/00 Git.md @@ -12,4 +12,10 @@ title: Git Изменение места создания папки `.git`: ```bash git init --separate-git-dir=/path/to/my-git-storage /path/to/my-project -``` \ No newline at end of file +``` + +![[../files/images/Pasted image 20241103182657.png]] + +![[../files/images/Pasted image 20241103182733.png]] + +![[../files/images/git-merge-git-rebase.jpeg]] \ No newline at end of file diff --git a/meta/zero/00 System Design.md b/meta/zero/00 System Design.md index c9df11e7..15db195a 100644 --- a/meta/zero/00 System Design.md +++ b/meta/zero/00 System Design.md @@ -5,4 +5,6 @@ tags: - type/zero-link title: System Design --- -- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]] \ No newline at end of file +- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]] +## Полезное +- [GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.](https://github.com/ByteByteGoHq/system-design-101) \ No newline at end of file