Почему старый iPhone работает как cold wallet
- Нет PII в supply-chain. Trezor / Ledger / Cypherock отправляются на ваше имя и адрес — эта запись живёт в fulfillment-стеке вендора (и теперь на чёрном рынке). Подержанный iPhone, купленный за наличные у незнакомца, — устройство, которое ни один вендор не связывает с крипто-холдером.
- Визуально неопознаваем. Аппаратный кошелёк в ящике кричит «кошелёк». Старый iPhone в ящике — это телефон. Вор, знающий ваш адрес, не знает, что нужно требовать именно это устройство.
- Secure Enclave. iPhone с 6s имеют Secure Enclave — усиленное хранилище ключей, архитектурно сопоставимое с тем, что несут выделенные аппаратные кошельки.
- Повсеместность + доступность запчастей. Если устройство умирает или батарея вздувается, замена в любой мастерской, за наличные, без таможенной записи.
- Air-gap тривиален. Авиарежим + отключённый Wi-Fi + отключённый Bluetooth + вынутая SIM = устройство, которое не может exfiltrate seed, пока вы намеренно не включите сеть.
Sourcing — правило «наличные + б/у»
- Покупайте наличными, лично, у частного продавца. Avito / Craigslist / Facebook Marketplace / ремонтная мастерская — цель: устройство, которое никогда не касалось вашей идентичности или карточной записи.
- Подойдёт любая модель от iPhone 6s / SE (1st gen) вверх — Secure Enclave присутствует. iPhone SE (2/3-е поколение) — sweet spot: дёшево, компактно, всё ещё поддерживается.
- Factory-reset перед использованием. Настройки → Основные → Перенос или сброс iPhone → Стереть контент и настройки.
- Пропустите настройку Apple ID. Когда Setup Assistant просит войти, выберите «Настроить как новый iPhone», затем откажитесь от Apple ID («Забыли пароль или нет Apple ID?» → «Нет Apple ID» → «Настроить позже»). Ваш cold wallet не должен быть привязан к реальному Apple ID.
- Если нужно установить кошелёк через App Store, создайте одноразовый Apple ID с masked-email (SimpleLogin, addy.io) без метода оплаты. Установите кошелёк, выйдите из одноразового Apple ID перед генерацией seed.
Air-gap настройка
- Авиарежим ON.
- Wi-Fi OFF — отдельно, в Настройки → Wi-Fi.
- Bluetooth OFF — Настройки → Bluetooth.
- SIM извлечена. Нет cellular attack surface.
- Авто-обновления OFF. Настройки → Основные → Обновление ПО → Автообновления → OFF. Обновляйте вручную по вашему графику, на доверенном Wi-Fi, потом возвращайтесь к air-gap.
- Privacy hardening. Отключите Siri, аналитику, геолокацию, Handoff.
- Храните устройство offline когда не подписываете. Faraday pouch — overkill; ящик достаточен. Батарея: заряд ~60% для хранения; проверяйте дважды в год.
Варианты кошельков для iOS + air-gap
- Cupcake Wallet (основной выбор для airgap-стороны). Построен командой Cake Wallet ровно для этого паттерна. Слоган буквально: *"Your old phone? Your new hardware wallet."* Open-source + audited + бесплатно, iOS + Android, парится с Cake Wallet через QR restore. Airplane-mode-safe by design — без аккаунтов, без сетевой зависимости после установки. Это то приложение, которое гайд описывал ещё до появления Cupcake; используйте его вместо самодельной airgap-signer конфигурации.
- Cake Wallet на online-стороне. iOS-нативный XMR-кошелёк как view-only companion на вашем повседневном устройстве — видит баланс, строит unsigned tx, передаёт QR в Cupcake для подписи, broadcast обратно. Одна семья, одна команда, спроектированы работать вместе.
- Альтернатива — Feather (desktop) как online-сторона. Лучший desktop UX для view-only + offline signing. iPhone-с-Cupcake остаётся signer; Feather на ноутбуке заменяет Cake как online-драйвер, если вам удобнее desktop для tracking + tx-building.
- Альтернатива — Monero GUI на спаренном offline ноутбуке. Если предпочитаете подписывать на ноутбуке, пропустите Cupcake — iPhone станет online view-only, hardened offline Mac / Linux — signer. Больше возни чем через Cupcake; используйте только при конкретной причине.
- НЕ используйте: browser-extension кошельки, custodial мобильные кошельки, всё, что требует cloud backup во время setup.
Что мы проверили в коде Cupcake (RNG-аудит)
Разумный вопрос в reply-треде: был ли код Cupcake пере-аудирован против класса атаки Coldcard после инцидента? Мы потратили сессию читая релевантные пути в github.com/cake-tech/cupcake. Находки:
- Cupcake не реализует собственный RNG для генерации wallet-seed. Monero-seed генерируется через FFI в C++ библиотеку
monero-project/monero(monero.Wallet_createPolyseed()вlib/coins/monero/creation/new_wallet.dart). Bitcoin/Litecoin-seed через стандартный Dart-пакетbip39плюсRandom.secure()из Dart, который маршрутизирует к OS-уровневому CSPRNG —SecRandomCopyBytesна iOS,SecureRandomна Android. - Всё security-relevant использование RNG корректно применяет
Random.secure(). Подтверждено вverify_seed_view_model.dart(перемешивание опций),random_name.dart, иflutter_secure_storage_value_outcome.dart(генерация 64 байт). - Есть два использования
Random()(non-secure) —verify_seed_view_model.dart:25выбирает индекс для того чтобы СПРОСИТЬ у пользователя какое слово (безопасно: атакующий предсказавший индекс ничего не выигрывает, пользователь всё равно должен знать слова), иui_playground.dart(dev-only файл, не в production-путях).
Что это значит для вопроса Coldcard. Класс атаки Coldcard таргетировал device-side RNG в прошивке конкретного hardware-кошелька (см. /guides/hardware-wallets-for-monero-after-coldcard). Тот же класс атаки затронул бы Cupcake только если upstream Monero-библиотека или пакет bip39 несут ту же слабость — что было бы экосистемным событием, затрагивающим все кошельки на этих библиотеках (Monero GUI, Feather, Monerujo, Cake, Cupcake, все). Собственная attack surface Cupcake — это FFI-мост к C++ библиотеке Monero, стоит смотреть, но это не RNG-баг класса Coldcard.
Не замена профессиональному аудиту. Это чтение кода curator-side против конкретного вопроса, не формальный security review. Cupcake опубликовал предыдущий профессиональный аудит на сайте; публичного заявления команды Cake о пере-аудите после Coldcard у нас нет — если нужно, пишите support@cakewallet.com и делитесь ответом. И спросите того, кто задал вопрос — хороший инстинкт.
Канонический flow: view-only + air-gap signing
- Сгенерируйте seed на air-gapped iPhone (Cake Wallet → new wallet → запишите seed на металл offline). Никаких фото, никакого iCloud, никакого AirDrop.
- Экспортируйте view-only key из offline кошелька.
- Передайте view-only key на online устройство через QR (offline iPhone показывает QR, online устройство сканирует).
- Online устройство теперь видит баланс + строит unsigned tx — но не может тратить.
- Отправка: собираете unsigned tx онлайн → QR → offline iPhone сканирует и подписывает → offline iPhone генерирует QR подписанной tx → online сканирует и broadcast.
- Проверьте destination address на offline iPhone перед подписью. Malware на online устройстве может подменить адрес между «вставили» и «подписали». Offline устройство — последняя линия обороны.
Почему это побеждает Trezor в опсеке адреса доставки
Двухколонный reframe. Аппаратный кошелёк в ящике сегодня даёт атакующему:
- Запись доставки, связывающую ваше имя + телефон + адрес с «владеет криптой».
- Видимое устройство, идентифицирующее, какой софт / формат seed требовать под принуждением.
- Brand-name attack surface — каждый firmware CVE, каждая утечка клиентской базы, каждая phishing-кампания предварительно нацелены на вас.
Air-gapped iPhone, купленный за наличные, в том же ящике даёт атакующему:
- Ничего.
Подход iPhone не побеждает Trezor в криптографической безопасности — оба сильны. Он побеждает в threat-model surface, где аппаратные кошельки тихо перестали быть самым безопасным вариантом.
Прецедент — это не новая идея
Паттерн предшествовал утечке Trezor 2026-08-13. On-chain-исследователь ZachXBT — референс по forensics украденной крипты — публично рекомендовал его в своём Telegram-канале (пост набрал 88.3K просмотров), дословно:
«Hot take: Все аппаратные кошельки — полный мусор, и я не советую использовать их для важных задач вроде подписания транзакций или хранения средств. Гораздо лучше иметь отдельный iPhone единственная цель которого — быть вашим hardware wallet. Ledger — худший, а Ledger Live регулярно обновляет UI/приложения без причин, ломая простые действия.»
Утечка Trezor усилила аргумент: раньше case для separate-iPhone был про firmware trust и UX вендора; теперь тот же паттерн также закрывает shipping-address surface. Если самый активный исследователь украденной крипты был на этой позиции месяцами, а данные утечки теперь поддерживают его по основаниям, которые он даже не выдвигал, паттерн стоит взять всерьёз.
Ловушки
- Принудительные iOS-обновления после EOL. Apple прекращает security updates через ~5–7 лет для модели. Планируйте update cadence на доверенном Wi-Fi.
- App Store account entanglement. Если вошли под реальным Apple ID при setup, устройство связано с вашей идентичностью в Apple fulfillment. Factory reset + burner Apple ID.
- Вздутие батареи при долгом хранении. Литий не любит стоять на 100% или 0% годами. Храните ~60%; проверяйте дважды в год.
- Ловушка «в каком приложении настоящий seed». Если ставите несколько wallet apps для теста — seed confusion реальна. Wipe между тестами, потом чистый setup.
- Screenshot в неправильном приложении. Screenshot seed-экрана живёт в Photos, синхронится в iCloud если включён — и хоронит весь setup.
- Face ID на seed-view экране. Удобно. Также удобно атакующему, держащему устройство к вашему лицу, пока вы спите. Passcode-only на signer.
Когда это НЕ правильный паттерн
- Маленькие балансы / активные траты. Hot wallet на повседневном телефоне ок для < 1 XMR.
- Пользователи, которые не будут поддерживать процесс. Дисциплина air-gap — это и есть security-свойство. Если включите Wi-Fi «на минутку» — модель рушится.
- Team / multisig setup. Multisig с аппаратными кошельками разных вендоров, юрисдикций и людей — сильнее single-device iPhone airgap.
- Если у вас уже работающий Ledger / Trezor workflow. Не меняйте ради смены. Добавьте ротацию адреса доставки (PO box, drop shipper, mail forwarding) перед следующим заказом — и закроете большую часть shipping-address gap без смены кошелька.
Cross-refs куратора
- Родительский гайд: /guides/monero-cold-storage.
- Verify wallet: /guides/verify-wallet-binary.
- Наследование: /guides/monero-inheritance-plan.