что jimichi не защищает

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

глобальный наблюдатель
модель не покрывает нарушителя, который видит все каналы сразу.
скомпрометированное устройство
если ваш телефон или компьютер захвачен, jimichi не поможет. атаки по сторонним каналам на него тоже вне модели.
root на машине с узлом
заблокированная память защищает от выгрузки, а не от привилегированного чтения. против root на машине с узлом меры уровня процесса не работают.
моменты соединений
каждая цепочка открывает и закрывает свои tcp-соединения по всей цепочке. эти моменты совпадают и видны глобальному наблюдателю; атака в работе их не измеряет.
принуждение
отрицаемый контейнер даёт легенду, а не иммунитет против требования выдать пароль.

где кончаются результаты.

стенд

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

криптография и память

  • реализация гост не является сертифицированным скзи. алгоритмы те же и проверены контрольными примерами из стандартов, но класс защиты не заявляется.
  • библиотеки держат свои копии ключей на куче go, рабочий ключ aead живёт там всю жизнь цепочки. secmem защищает только собственные буферы.
  • слои цепочки не обладают прямой секретностью против соседа: ключ узла живёт до его перезапуска. запись с провода без эфемерных ключей каналов не читается.
  • формат ячейки даёт постоянный размер и защиту от повтора, но это не полный sphinx: позицию узла в цепочке больше ничто не скрывает.

тайминг

  • отправка по своим часам требует, чтобы период узла был на несколько процентов короче клиентского; стенд берёт 5%. при равных периодах пропущенный тик уже не наверстать.
  • канал закрыт, только если меру включил узел, который по нему шлёт. клиент не может проверить, что его узлы это делают.
  • служебная ячейка установки цепочки уходит сразу, не по часам узла, и отмечает начало цепочки на каждом канале.
  • без отправки по своим часам ответ выхода уходит после доставки, и время доставки у настоящего получателя стало бы заметным.

отрицаемость

  • она ломается окружением, а не криптографией: журналы файловой системы, теневые копии, временные метки, wear-leveling и trim на ssd оставляют следы записи.
  • наблюдатель с несколькими снимками контейнера во времени видит изменения там, где по легенде ничего не происходило. против него свойство не заявляется.