Wird der Sperrmechanismus für die Hardware, Firmware oder Software einer SD-Karte (Treiber, Betriebssystem) erzwungen?

16

Wo ist die Sperre für den Nur-Lese-Modus bei SD-Karten durchgesetzt ? Wird dies physisch in der Karte selbst, in der Firmware der Lesegeräte oder im Betriebssystem durchgeführt? (Ein anderer Ort?)

Jane Panda
quelle

Antworten:

20

Wenn Sie die SD-Spezifikationen Teil 1 Physical Layer Simplified Specification lesen , heißt es in Abschnitt 4.3.6 "Write Protect Management"

Auf der SD-Speicherkarte werden drei Schreibschutzmethoden unterstützt:
- Mechanischer Schreibschutzschalter (nur Hostverantwortung)
- Interner Schreibschutz der Karte (Verantwortung der Karte)
- Kennwortschutz-Kartensperrvorgang.

Mechanischer Schreibschutzschalter

Ein mechanisches Schiebetablett an der Seite der Karte (siehe Teil 1 Mechanische Ergänzungen) wird vom Benutzer verwendet, um anzuzeigen, dass eine bestimmte Karte schreibgeschützt ist oder nicht. Wenn das Schiebetablett so positioniert ist, dass das Fenster geöffnet ist, bedeutet dies, dass die Karte schreibgeschützt ist. Wenn das Fenster geschlossen ist, ist die Karte nicht schreibgeschützt. Ein passender Schalter auf der Sockelseite zeigt dem Host an, dass die Karte schreibgeschützt ist oder nicht. Es liegt in der Verantwortung des Hosts, die Karte zu schützen. Die Position des Schreibschutzschalters ist der internen Schaltung der Karte nicht bekannt.

(meine Betonung)

Eine TOSHIBA SD-Kartenspezifikation besagt

CMD28 SET_WRITE_PROT - Interner Schreibschutz ist nicht implementiert.
CMD29 CLR_WRITE_PROT - Interner Schreibschutz ist nicht implementiert.
CMD30 SEND_WRITE_PROT - Interner Schreibschutz ist nicht implementiert.

2) Nicht unterstützte Funktionen:
Interner Schreibschutz der Karte (optional in PHYSICAL LAYER SPECIFICATION 4.3.5.)

RedGrittyBrick
quelle
Aber ich frage mich, wie
tsenapathy
14

Bei meiner Arbeit verwenden wir SD-Karten in einem eingebetteten System. Wenn wir versuchen, mit einer gesperrten Karte hochzufahren, kommt es zu einer Kernel-Panik. Dies war keine große Sache, bis wir einen Stapel SD-Karten mit sehr losen Schreibschaltern bekamen: Das Einsetzen der Karte in das Lesegerät reichte manchmal aus, um den Schalter zu bewegen und die Karte zu sperren. Viele Leute versuchten, mechanische Möglichkeiten zu finden, um dies zu verhindern, wie etwa ein Stück Klebeband auf jede SD-Karte zu kleben, aber am Ende haben wir dies durch Ändern einer Quellcodezeile im Linux-Kernel behoben. Wenn nun eine SD-Karte erkannt wird, deren Schalter auf Nur Lesen eingestellt ist, ignorieren wir den Schalter einfach und schreiben glücklich Daten auf die Karte, wann immer wir wollen.

Das liegt an unserer verrückten Verwechslung von Backports, daher bezweifle ich, dass dieser Patch überall sauber angewendet werden kann. Wenn Sie jedoch mit Ihrem eigenen Kernel experimentieren möchten, ist dies ein guter Ausgangspunkt:

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

Wenn Sie keine Lust haben, einen Linux-Kernel zu patchen und zu erstellen, aber eine Canon P & S-Kamera haben, können Sie mit CHDK Dateien (Bilder) auf eine schreibgeschützte SD-Karte schreiben (beim Einschalten der Kamera überprüft die OF die Status des Switches: Wenn RO eingestellt ist, wird die Firmware automatisch von der SD-Karte geladen, sodass Benutzer direkt in CHDK booten können. Dann ignoriert CHDK den Status des Switches, sodass weiterhin Bilder auf die Karte geschrieben werden können (siehe z. B. http) : //chdk.wikia.com/wiki/Bootable_SD_card ).

Sie können auch unter Linux auf eine schreibgeschützte SD-Karte schreiben, indem Sie das Readonly-Flag deaktivieren hdparmund die Karte erneut einbinden :

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

quelle
3

Es kommt auf den Leser an. Der Leser kann die Schreibschutzlasche ignorieren. Das Lesegerät verfügt möglicherweise über eine Firmware, die das Schreiben deaktiviert, wenn die Schreibschutzlasche aktiviert ist. Das Lesegerät verfügt möglicherweise über einen Softwaretreiber, der das Schreiben deaktiviert, wenn die Schreibschutzlasche aktiviert ist. In der Praxis macht die überwiegende Mehrheit der Leser dies in Firmware.

David Schwartz
quelle
Ich denke du liegst falsch. Bitte geben Sie eine Quelle an.
Wizlog
@wizlog: Ohne zu wissen, wovon du denkst, dass ich falsch liege, weiß ich nicht, für welchen Anspruch du eine Quelle postest.
David Schwartz
Der Leser kann den Schreibschutz-Tab
wizlog
3
"Da die Kerbe nur vom Leser erkannt wird, kann der Schutz auf Wunsch (und falls vom Leser unterstützt) außer Kraft gesetzt werden." - Wikipedia
David Schwartz
-3

Es ist ein Hardware-basierter Switch. Es ist eine Funktion, die nur Schreibvorgänge blockiert.

Wenn geschaltet, können Sie nicht:

  • Verschieben Sie Dateien von oder auf die SD-Karte

  • Entfernen Sie Dateien von der SD-Karte

  • Kopieren Sie die Dateien auf die SD-Karte

  • Formatieren Sie die SD-Karte

EDIT Lesen Sie hier mehr . Beachten Sie den schwachen orangefarbenen Kreis ...

wizlog
quelle
2
Ein Schalter auf der linken Seite. Nur damit die OP weiß, wo
Kanadier Luke REINSTATE MONICA
2
Sind Sie sicher, dass die Sperre dies tatsächlich erzwingt? Ich habe gelesen, dass es Kameras gibt, die dies (etwas zufällig) ignorieren und trotzdem auf die Karte schreiben können.
Jane Panda
Der Link, den Sie zitieren, besagt: "Einige SD-Karten verfügen über einen integrierten Schreibschutz." Einige - nicht alle. Wenn Sie die anderen Antworten vergleichen, scheint dies eine Ausnahme zu sein. Ziemlich schockierend, denke ich - an Sicherheit und Viren haben sie anscheinend überhaupt nicht gedacht. 8- {
Hans-Peter Störr
1
Warum wurde diese Antwort so herabgestimmt?
Wizlog