# Архитектура модуля безопасности

## Обзор

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

## Компоненты модуля

### 1. SecureStorage (`secure_storage.rs`)

Основной компонент для безопасного хранения данных.

#### Функциональность:
- **Шифрование данных**: AES-256-GCM для симметричного шифрования
- **Управление ключами**: Argon2 для деривации ключей из паролей
- **Системная интеграция**: 
  - macOS: Keychain Services
  - Windows: Credential Manager
  - Linux: Secret Service API

#### Архитектура хранения:
```rust
pub struct SecureStorage {
    app_handle: AppHandle,
    keyring: Keyring,
    salt: [u8; 32],
}
```

#### Процесс шифрования:
1. Генерация случайной соли (32 байта)
2. Деривация ключа из мастер-пароля через Argon2
3. Шифрование данных с AES-256-GCM
4. Сохранение в системное хранилище

### 2. API Validator (`api_validator.rs`, `api_validator_service.rs`)

Валидация ключей внешних API сервисов.

#### Поддерживаемые сервисы:
- OpenAI (GPT-3.5, GPT-4)
- Anthropic (Claude)
- Google AI (Gemini)
- Replicate
- Hugging Face

#### Архитектура валидации:
```rust
#[async_trait]
pub trait ApiValidatorService: Service {
    async fn validate_api_key(&self, service: &str, key: &str) -> Result<bool>;
    async fn validate_all_keys(&self, keys: HashMap<String, String>) -> Result<HashMap<String, bool>>;
}
```

#### Особенности:
- Асинхронная валидация с таймаутами
- Кеширование результатов
- Graceful degradation при недоступности сервисов

### 3. OAuth Handler (`oauth_handler.rs`)

Обработка OAuth авторизации для социальных сетей.

#### Поддерживаемые платформы:
- YouTube (Google OAuth 2.0)
- Instagram (Facebook OAuth)
- TikTok

#### Процесс авторизации:
1. Генерация URL авторизации с PKCE
2. Открытие браузера для авторизации
3. Перехват callback через deep link
4. Обмен кода на токены
5. Безопасное сохранение токенов

### 4. Environment Importer (`env_importer.rs`)

Импорт существующих ключей из файлов окружения.

#### Функциональность:
- Поиск .env файлов в проекте
- Парсинг различных форматов переменных
- Валидация найденных ключей
- Безопасная миграция в SecureStorage

#### Поддерживаемые форматы:
```bash
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AIza...
```

## Безопасность

### Криптографические примитивы

1. **AES-256-GCM**
   - Симметричное шифрование
   - Аутентифицированное шифрование
   - Защита от модификации данных

2. **Argon2id**
   - Устойчивость к атакам по времени
   - Настраиваемые параметры памяти/времени
   - Защита от GPU/ASIC атак

3. **CSPRNG**
   - Криптографически стойкая генерация случайных чисел
   - Используется для солей и nonce

### Защита в памяти

- Очистка чувствительных данных после использования
- Использование `zeroize` для безопасного обнуления
- Минимизация времени хранения расшифрованных данных

### Аудит и логирование

- Логирование операций без раскрытия данных
- Отслеживание попыток доступа
- Мониторинг аномальной активности

## Интеграция с приложением

### Tauri команды

```rust
#[tauri::command]
async fn store_api_key(
    storage: State<'_, Mutex<SecureStorage>>,
    service: String,
    api_key: String,
) -> Result<(), String>

#[tauri::command]
async fn validate_api_key(
    validator: State<'_, ApiValidatorService>,
    service: String,
    key: String,
) -> Result<bool, String>
```

### События безопасности

- `security:key-stored` - Ключ сохранен
- `security:key-validated` - Ключ проверен
- `security:oauth-complete` - OAuth авторизация завершена

## Лучшие практики

1. **Никогда не логировать ключи**
2. **Использовать минимальные привилегии**
3. **Регулярно ротировать ключи**
4. **Валидировать ключи перед сохранением**
5. **Использовать системные хранилища паролей**

## Тестирование

Модуль включает comprehensive тесты:

- Unit тесты для криптографических функций
- Integration тесты для системных хранилищ
- Mock тесты для API валидации
- E2E тесты для OAuth flow

## Будущие улучшения

1. **Поддержка Hardware Security Modules (HSM)**
2. **Биометрическая аутентификация**
3. **Распределенное хранение ключей**
4. **Автоматическая ротация ключей**
5. **Поддержка дополнительных OAuth провайдеров**