Самоуничтожение флэш-памяти

в 17:51, , рубрики: ATtiny25, nand, ssd, tlc, usb-флэшка, Биоимпеданс, макетная плата, микроконтролллер, самоуничтожение, удвоитель напряжения
Самоуничтожение флэш-памяти - 1

Секретные ключи и пароли доступа — самая конфиденциальная и чувствительная к утечке информация. Для максимальной сохранности её можно держать в надёжном хранилище, в зашифрованном виде и/или с разделением секрета по схеме Шамира:

Утилита horcrux разбивает файл на несколько зашифрованных частей (например, 5), а для дешифровки нужно найти и соединить несколько из этих частей (например, 3)

Утилита horcrux разбивает файл на несколько зашифрованных частей (например, 5), а для дешифровки нужно найти и соединить несколько из этих частей (например, 3)

На случай транспортировки файлов можно предусмотреть дополнительную меру безопасности: самоуничтожение накопителя. Существуют специальные SSD-накопители и USB-флэшки с такой функцией. При желании, электронная схема для самоуничтожения памяти собирается самостоятельно.


Уничтожение SSD-диска

Недавно компания Team Group выпустила линейку SSD-накопителей P250Q-M80 с уничтожением данных одним нажатием кнопки на корпусе ПК. Возможно, это первое серийное изделие такого рода.

Самоуничтожение флэш-памяти - 3

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

Самоуничтожение флэш-памяти - 4

Накопители выпускаются в формате M.2 PCIe, интерфейс PCIe Gen4 x4. Доступны модели объёмом 256 ГБ, 512 ГБ, 1 ТБ, 2 ТБ. Внутри установлены 112-слойные чипы 3D TLC NAND. Скорость последовательного чтения/записи: 7000/5500 МБ/с. Максимальное энергопотребление: 3,3 В × 1358 мА. Габариты 80×22×3,5 мм.

Выжигание чипов производится скачком напряжения и сопровождается задымлением:

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

Cамоуничтожение USB-флэшки по биоимпедансу

Ранее в открытом доступе публиковалась инструкция по производству самоуничтожающихся USB-флэшек.

Самоуничтожение флэш-памяти - 5

Идея в том, чтобы USB-флэшка гарантированно уничтожила конфиденциальную информацию, если попадёт в руки злоумышленника. Как отличить владельца от злоумышленника? Тут автор придумал интересный фокус: USB-флэшка производит уничтожение, если не смочить пальцы перед прикосновением. От этого зависит электрическое сопротивление кожи (биоимпеданс). Этот параметр и запускает триггер.

Самоуничтожение флэш-памяти - 6

В техническом описании микросхемы флэш-памяти указано, что максимальное напряжение, которое она может выдержать — 4,6 В. Поэтому энтузиаст решил сконструировать в электрической цепи удвоитель напряжения с номинальных 5 В от USB-порта.

Самоуничтожение флэш-памяти - 7

Схему измерения биоимпеданса автор позаимствовал из книги «Искусство электроники». Если сопротивление кожи низкое (500 кОм или меньше), мы можем предположить, что пальцы мокрые. Наверняка есть специализированные чипы для измерения биоимпеданса, но из-за дефицита чипов он использовал обычные компоненты.

Вот как устроена схема:

Самоуничтожение флэш-памяти - 8

В качестве микроконтроллера здесь используется ATtiny25, всё приложение поместилось в 55 строк кода:

#include <avr/io.h>

// PWM PA6
// ADC PA1
// LED PA2

const float R2 = 747e3;   // R2 in schematic
const float Rth = 0.4e6;  // If r > 1Mohm, finger not wet.

void init_pwm() {
   DDRA |= (1 << PA6);                    // PA6 as output
   OCR1A = 0x0000;
   TCCR1A |= (1 << COM1A1);               // set non-inverting mode
   TCCR1A |= (1 << WGM11) | (1 << WGM10); // set 10bit phase corrected PWM Mode
   TCCR1B |= (1 << CS11);                 // set prescaler to 8 and starts PWM
}

void set_pwm(float voltage) {
   OCR1A = ( voltage / 5 )* 0x400;
}

void init_adc() {
    ADMUX &= ~(1 << REFS0); // Use 5V as reference
    ADMUX &= ~(1 << REFS1);
    ADMUX |= (1 << MUX0);   // Use ADC1 (PA1)
    ADCSRB |= (1 << ADLAR); // Left adjusted (8bit) operation alright
    ADCSRA |= (1 << ADEN);  // Enable ADC
}

float read_adc() {
    float voltage;
    ADCSRA |= (1 << ADSC);
    while(ADCSRA & (1 << ADSC)) {};
    voltage = ADCH;
    voltage = voltage * 5 / 0xff;
    return voltage;
}

int main(void) {
    DDRA = 1 << PA2; // LED

    init_pwm();
    init_adc();

    while(1)
    {
        float v, r = 0;

        v = read_adc();
        set_pwm(v);
        r = v * (R2/2.5);

        (r > Rth) ? (PORTA &= ~(1 << PA2)) : (PORTA |= 1 << PA2);
    }
}

Испытание проекта на макетной плате со смоченными пальцами:

Самоуничтожение флэш-памяти - 9

Конечно, облизать пальцы перед прикосновением — это очень необычный триггер, так что при желании схему можно модифицировать на своё усмотрение. Все чертежи и исходный код опубликованы в открытом доступе.

Автор: GlobalSign_admin

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js