Применен ли механизм блокировки на оборудовании, встроенном программном обеспечении или программном обеспечении (драйвере, ОС) SD-карты?

16

Где замок в режиме только для чтения в исполнение с SD картами? Это делается внутри самой карты физически, в прошивке ридеров или в ОС? (Какое-то другое место?)

Джейн Панда
источник

Ответы:

20

Если вы читаете спецификацию SD, часть 1, Упрощенная спецификация физического уровня , в разделе 4.3.6 «Управление защитой от записи» говорится

Три карты защиты от записи поддерживаются на карте памяти SD следующим образом:
- Механический переключатель защиты от записи (только для хоста)
- Внутренняя защита от записи (для карты)
- Блокировка карты с помощью пароля.

Механический переключатель защиты от записи

Пользователь будет использовать механическую скользящую табличку на боковой стороне карты (см. Механические дополнения части 1), чтобы указать, что данная карта защищена от записи или нет. Если скользящий планшет расположен таким образом, что окно открыто, это означает, что карта защищена от записи. Если окно закрыто, карта не защищена от записи. Правильный, согласованный переключатель на стороне сокета будет указывать хосту, что карта защищена от записи или нет. Хозяин несет ответственность за защиту карты. Положение переключателя защиты от записи неизвестно внутренней схеме платы.

(мой акцент)

Спецификация TOSHIBA SD карта говорит

CMD28 SET_WRITE_PROT - Внутренняя защита от записи не реализована.
CMD29 CLR_WRITE_PROT - Внутренняя защита от записи не реализована.
CMD30 SEND_WRITE_PROT - Внутренняя защита от записи не реализована.

...

2) Неподдерживаемые функции:
внутренняя защита карты от записи (опционально в ФИЗИЧЕСКОМ УРОВНЕ СПЕЦИФИКАЦИИ 4.3.5.)

RedGrittyBrick
источник
Но мне интересно как
ценапатия
14

На моей работе мы используем SD-карты во встроенной системе. Если мы попытаемся загрузиться с карты, которая заблокирована, мы получим панику ядра. Это не имело большого значения, пока мы не получили партию SD-карт, у которых были очень свободные переключатели записи: иногда достаточно было вставить карту в считыватель, чтобы переместить переключатель и заблокировать карту. Многие люди начали пытаться придумать механические опции, чтобы предотвратить это, например приклеить кусок ленты на каждую SD-карту, но в конце мы исправили это, изменив одну строку исходного кода в ядре Linux. Теперь, когда SD-карта обнаружена с переключателем, установленным только для чтения, мы просто игнорируем переключатель и с радостью записываем данные на карту, когда захотим.

Это из-за нашей безумной ошибки в бэкпортах, поэтому я сомневаюсь, что этот патч будет применяться везде, но если вы хотите поэкспериментировать с собственным ядром, это хорошая отправная точка:

--- include/linux/mmc/card.h    (revision 1423)
+++ include/linux/mmc/card.h    (revision 1424)
@@ -125,7 +125,7 @@
 #define mmc_card_blockaddr(c)  ((c)->state & MMC_STATE_BLOCKADDR)

 #define mmc_card_set_present(c)    ((c)->state |= MMC_STATE_PRESENT)
-#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
+#define mmc_card_set_readonly(c) {printk("Ignoring MMC read-only switch\n");}
 #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED)
 #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)

Если вам не нужно вносить исправления и собирать ядро ​​Linux, но у вас есть камера Canon P & S, вы можете использовать CHDK для записи файлов (изображений) на SD-карту с защитой от записи (когда камера включается, OF проверяет состояние коммутатора; при установке значения RO он автоматически загружает микропрограмму с SD-карты, что позволяет пользователям загружаться непосредственно в CHDK, затем CHDK игнорирует состояние коммутатора, поэтому он все еще может записывать изображения на карту; см., например, http : //chdk.wikia.com/wiki/Bootable_SD_card ).

Вы также можете выполнить запись на SD-карту с защитой от записи в Linux, отключив флаг readonly с помощью hdparmи повторно установив карту:

$ mount | grep mmc
/dev/mmcblk0p1 on /media/hello type ext3 (ro,nosuid,nodev,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered,uhelper=udisks)
$ touch /media/hello/test
touch: cannot touch `/media/hello/test': Read-only file system
$ sudo hdparm -r /dev/mmcblk0p1

/dev/mmcblk0p1:
 readonly      =  1 (on)
$ sudo hdparm -r0 /dev/mmcblk0p1

/dev/mmcblk0p1:
 setting readonly to 0 (off)
 readonly      =  0 (off)
$ touch /media/hello/test
touch: cannot touch `/media/hello/test': Read-only file system
$ sudo mount -t ext3 -o rw,remount /dev/mmcblk0p1 /media/hello
$ touch /media/hello/test
$ echo goodbye > /media/hello/test
$ cat /media/hello/test
goodbye
$ sudo umount /dev/mmcblk0p1
$ sudo mount /dev/mmcblk0p1 /mnt
mount: block device /dev/mmcblk0p1 is write-protected, mounting read-only
$ cat /mnt/test
goodbye
$ touch /mnt/test
touch: cannot touch `/mnt/test': Read-only file system
$ 

источник
3

Это зависит от читателя. Читатель может игнорировать вкладку защиты от записи. Считыватель может иметь встроенное ПО, которое отключает запись, если активирована вкладка защиты от записи. Считыватель может иметь программный драйвер, который отключает запись, если активирована вкладка защиты от записи. На практике подавляющее большинство читателей делают это в прошивках.

Дэвид Шварц
источник
Я думаю, что ты не прав. Пожалуйста, разместите источник.
wizlog
@wizlog: Не зная, что вы думаете, я ошибаюсь, я не знаю, для какого утверждения разместить источник.
Дэвид Шварц
Читатель может игнорировать вкладку защиты от записи
wizlog
3
«Поскольку метка обнаруживается только читателем, защита может быть отменена при желании (и если поддерживается читателем)». - Википедия
Дэвид Шварц
-3

Это аппаратный переключатель. Его функция просто блокирует любые операции записи.

Если переключено, вы не можете:

  • Переместить файлы с или на SD-карту

  • Удалить файлы с SD-карты

  • Скопируйте файлы на SD-карту

  • Отформатируйте SD-карту

РЕДАКТИРОВАТЬ Подробнее здесь . Обратите внимание на слабый оранжевый круг ...

wizlog
источник
2
Переключатель на левой стороне. Просто опера знает, где
канадский Люк
2
Вы уверены, что замок на самом деле обеспечивает это? Я читал, что есть камеры, которые могут (по совпадению) игнорировать это и записывать на карту в любом случае.
Джейн Панда
Ссылка, на которую вы ссылаетесь, гласит: «Некоторые SD-карты также имеют встроенную в карту защиту от записи». Некоторые - не все. Если вы сравните другие ответы, кажется, что это исключение. Я думаю, что это шокирует - похоже, они вообще не думали о безопасности и вирусах. 8- {
Hans-Peter Störr
1
почему за этот ответ так много проголосовали?
wizlog