@ -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:
|
||||
|
@ -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 Сети]]
|
||||
|
46
dev/Хранение паролей в приложении.md
Normal file
@ -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]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Хеширование паролей пользователей алгоритмом bcrypt]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
BIN
meta/files/images/Pasted image 20241103180845.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
meta/files/images/Pasted image 20241103182657.png
Normal file
After Width: | Height: | Size: 357 KiB |
BIN
meta/files/images/Pasted image 20241103182733.png
Normal file
After Width: | Height: | Size: 756 KiB |
BIN
meta/files/images/Pasted image 20241103184325.png
Normal file
After Width: | Height: | Size: 762 KiB |
BIN
meta/files/images/comp/Pasted image 20241103180845.png
Normal file
After Width: | Height: | Size: 425 KiB |
@ -0,0 +1 @@
|
||||
d260c1802f13d455bda27348dbfd5c02
|
BIN
meta/files/images/comp/Pasted image 20241103182657.png
Normal file
After Width: | Height: | Size: 103 KiB |
@ -0,0 +1 @@
|
||||
0e0ff94f4ec596e5d629df2988cccde5
|
BIN
meta/files/images/comp/Pasted image 20241103182733.png
Normal file
After Width: | Height: | Size: 233 KiB |
@ -0,0 +1 @@
|
||||
b9826eeafb3e24097af16ac356b7508c
|
BIN
meta/files/images/comp/Pasted image 20241103184325.png
Normal file
After Width: | Height: | Size: 262 KiB |
@ -0,0 +1 @@
|
||||
0e68e36f1fe3931a3ffba609f8e8611c
|
BIN
meta/files/images/git-merge-git-rebase.jpeg
Normal file
After Width: | Height: | Size: 538 KiB |
BIN
meta/files/images/webp/Pasted image 20241103180845.webp
Normal file
After Width: | Height: | Size: 271 KiB |
@ -0,0 +1 @@
|
||||
d260c1802f13d455bda27348dbfd5c02
|
BIN
meta/files/images/webp/Pasted image 20241103182657.webp
Normal file
After Width: | Height: | Size: 103 KiB |
@ -0,0 +1 @@
|
||||
0e0ff94f4ec596e5d629df2988cccde5
|
BIN
meta/files/images/webp/Pasted image 20241103182733.webp
Normal file
After Width: | Height: | Size: 136 KiB |
@ -0,0 +1 @@
|
||||
b9826eeafb3e24097af16ac356b7508c
|
BIN
meta/files/images/webp/Pasted image 20241103184325.webp
Normal file
After Width: | Height: | Size: 168 KiB |
@ -0,0 +1 @@
|
||||
0e68e36f1fe3931a3ffba609f8e8611c
|
BIN
meta/files/images/webp/git-merge-git-rebase.webp
Normal file
After Width: | Height: | Size: 196 KiB |
1
meta/files/images/webp/git-merge-git-rebase.webp.md5
Normal file
@ -0,0 +1 @@
|
||||
dad09828efea80cf824a25fcdc1c62b3
|
@ -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 пользователя.
|
||||
|
||||
|
@ -12,4 +12,10 @@ title: Git
|
||||
Изменение места создания папки `.git`:
|
||||
```bash
|
||||
git init --separate-git-dir=/path/to/my-git-storage /path/to/my-project
|
||||
```
|
||||
```
|
||||
|
||||
![[../files/images/Pasted image 20241103182657.png]]
|
||||
|
||||
![[../files/images/Pasted image 20241103182733.png]]
|
||||
|
||||
![[../files/images/git-merge-git-rebase.jpeg]]
|
@ -5,4 +5,6 @@ tags:
|
||||
- type/zero-link
|
||||
title: System Design
|
||||
---
|
||||
- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]]
|
||||
- [[../../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)
|