¿Se aplica el mecanismo de bloqueo en el hardware, firmware o software (controlador, SO) de una tarjeta SD?

16

¿Dónde se aplica el bloqueo al modo de solo lectura con las tarjetas SD? ¿Se hace esto físicamente dentro de la tarjeta, en el firmware de los lectores o en el sistema operativo? (¿Algún otro lugar?)

Jane Panda
fuente

Respuestas:

20

Si lee las Especificaciones SD, Parte 1 , Especificación simplificada de la capa física , la sección 4.3.6 "Gestión de protección contra escritura" dice

La tarjeta de memoria SD admite tres métodos de protección contra escritura de la siguiente manera:
- Interruptor mecánico de protección contra escritura (solo responsabilidad del host)
- Protección interna contra escritura de la tarjeta (responsabilidad de la tarjeta)
- Operación de bloqueo de la tarjeta de protección con contraseña.

Interruptor mecánico de protección contra escritura

El usuario utilizará una tableta deslizante mecánica en el costado de la tarjeta (consulte el Anexo mecánico de la Parte 1) para indicar que una tarjeta determinada está protegida contra escritura o no. Si la tableta deslizante se coloca de tal manera que la ventana está abierta, significa que la tarjeta está protegida contra escritura. Si la ventana está cerrada, la tarjeta no está protegida contra escritura. Un interruptor adecuado, coincidente, en el lado del zócalo le indicará al host que la tarjeta está protegida contra escritura o no. Es responsabilidad del anfitrión proteger la tarjeta. La posición del interruptor de protección contra escritura es desconocida para los circuitos internos de la tarjeta.

(mi énfasis)

Una especificación de tarjeta SD TOSHIBA dice

CMD28 SET_WRITE_PROT: la protección de escritura interna no está implementada.
CMD29 CLR_WRITE_PROT: la protección contra escritura interna no está implementada.
CMD30 SEND_WRITE_PROT: la protección contra escritura interna no está implementada.

...

2) Funciones no admitidas:
protección contra escritura interna de la tarjeta (opcional en la ESPECIFICACIÓN DE LA CAPA FÍSICA 4.3.5.)

RedGrittyBrick
fuente
Pero me pregunto como
tsenapathy
14

En mi trabajo, usamos tarjetas SD en un sistema integrado. Si intentamos arrancar con una tarjeta que está bloqueada, obtendremos un kernel panic. Esto no fue un gran problema hasta que obtuvimos un lote de tarjetas SD que tenían interruptores de escritura muy flojos: el acto de insertar la tarjeta en el lector a veces era suficiente para mover el interruptor y bloquear la tarjeta. Mucha gente comenzó a tratar de encontrar opciones mecánicas para evitar esto, como pegar un trozo de cinta en cada tarjeta SD, pero al final lo arreglamos cambiando una línea de código fuente en el kernel de Linux. Ahora, cuando se detecta una tarjeta SD con el interruptor configurado en solo lectura, simplemente ignoramos el interruptor y felizmente escribimos datos en la tarjeta cuando lo deseamos.

Esto es de nuestras locas mismash de backports, así que dudo que este parche se aplique limpiamente en cualquier lugar, pero si quieres experimentar con tu propio kernel, este es un buen punto de partida:

--- 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)

Si no tiene ganas de parchear y construir un kernel de Linux pero tiene una cámara Canon P&S, puede usar CHDK para escribir archivos (imágenes) en una tarjeta SD protegida contra escritura (cuando la cámara se enciende, el OF verifica el estado del conmutador; cuando se configura en RO, se cargará automáticamente el firmware desde la tarjeta SD. Esto permite a los usuarios iniciar directamente en CHDK; luego, CHDK ignora el estado del conmutador para que aún pueda escribir imágenes en la tarjeta; consulte, por ejemplo, http : //chdk.wikia.com/wiki/Bootable_SD_card ).

También puede escribir en una tarjeta SD protegida contra escritura en Linux desactivando el indicador de solo lectura hdparmy volviendo a montar la tarjeta:

$ 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
$ 

fuente
3

Depende del lector. El lector puede ignorar la pestaña de protección contra escritura. El lector puede tener firmware que inhabilite la escritura si la pestaña de protección contra escritura está activada. El lector puede tener un controlador de software que inhabilite la escritura si la pestaña de protección contra escritura está activada. En la práctica, la gran mayoría de los lectores lo hacen en firmware.

David Schwartz
fuente
Creo que estas equivocado. Por favor, publique una fuente.
wizlog
@wizlog: Sin saber en qué piensas que estoy equivocado, no sé para qué reclamar publicar una fuente.
David Schwartz el
El lector puede ignorar la pestaña de protección contra escritura
wizlog
3
"Debido a que la muesca es detectada solo por el lector, la protección puede anularse si se desea (y si el lector lo admite)". - Wikipedia
David Schwartz
-3

Es un interruptor basado en hardware. Es una característica que simplemente bloquea cualquier operación de escritura.

Si se cambia, no puede:

  • Mover archivos desde o hacia la tarjeta SD

  • Eliminar archivos de la tarjeta SD

  • Copiar archivos a la tarjeta SD

  • Formatear la tarjeta SD

EDITAR Leer más aquí . Tenga en cuenta el débil círculo naranja ...

wizlog
fuente
2
Un interruptor en el lado izquierdo. Solo para que el operador sepa dónde
canadiense Luke
2
¿Estás seguro de que la cerradura realmente hace cumplir esto? He leído que hay cámaras que pueden (de manera casual) ignorar esto y escribir en la tarjeta de todos modos.
Jane Panda
El enlace que está citando dice "Algunas tarjetas SD también tienen protección contra escritura integrada en la tarjeta". Algunos, no todos. Si compara las otras respuestas, parece que esta es una excepción. Bastante impactante, creo, parece que no pensaron en absoluto en la seguridad y los virus. 8- {
Hans-Peter Störr
1
¿Por qué esta respuesta ha sido rechazada tanto?
wizlog