Czy wymuszony jest mechanizm blokady na karcie SD, oprogramowaniu sprzętowym lub oprogramowaniu (sterowniku, systemie operacyjnym)?

16

Gdzie jest blokada w trybie tylko do odczytu wymuszona za pomocą kart SD? Czy odbywa się to w samej karcie, w oprogramowaniu układowym czytników lub w systemie operacyjnym? (Jakieś inne miejsce?)

Jane Panda
źródło

Odpowiedzi:

20

Jeśli czytasz Specyfikacje SD Część 1 Uproszczona specyfikacja warstwy fizycznej , rozdział 4.3.6 „Zarządzanie ochroną przed zapisem” mówi

Na karcie pamięci SD obsługiwane są trzy metody ochrony przed zapisem:
- Mechaniczny przełącznik ochrony przed zapisem (tylko odpowiedzialność hosta)
- Wewnętrzna ochrona przed zapisem karty (odpowiedzialność karty)
- Operacja blokady karty hasłem.

Mechaniczny przełącznik zabezpieczenia przed zapisem

Mechaniczny przesuwny tablet z boku karty (patrz część Dodatek mechaniczny 1) zostanie użyty przez użytkownika do wskazania, że ​​dana karta jest chroniona przed zapisem lub nie. Jeśli przesuwany tablet jest ustawiony w taki sposób, że okno jest otwarte, oznacza to, że karta jest chroniona przed zapisem. Jeśli okno jest zamknięte, karta nie jest chroniona przed zapisem. Właściwy, dopasowany przełącznik po stronie gniazda wskaże hostowi, że karta jest chroniona przed zapisem lub nie. Za ochronę karty odpowiada gospodarz. Położenie przełącznika zabezpieczenia przed zapisem jest nieznane wewnętrznym obwodom karty.

(mój nacisk)

TOSHIBA SD Specyfikacja mówi

CMD28 SET_WRITE_PROT - Wewnętrzna ochrona przed zapisem nie jest zaimplementowana.
CMD29 CLR_WRITE_PROT - Wewnętrzna ochrona przed zapisem nie jest zaimplementowana.
CMD30 SEND_WRITE_PROT - Wewnętrzna ochrona przed zapisem nie jest zaimplementowana.

2) Nieobsługiwane funkcje:
wewnętrzna ochrona przed zapisem karty (opcjonalnie w SPECYFIKACJI WARSTWY FIZYCZNEJ 4.3.5.)

RedGrittyBrick
źródło
Ale zastanawiam się jako
tsenapatia
14

W mojej pracy używamy kart SD w systemie wbudowanym. Jeśli spróbujemy uruchomić komputer z zablokowaną kartą, wpadniemy w panikę jądra. To nie była wielka sprawa, dopóki nie dostaliśmy partii kart SD, które miały bardzo luźne przełączniki zapisu: włożenie karty do czytnika czasami wystarczało, aby przesunąć przełącznik i zablokować kartę. Wiele osób próbowało wymyślić mechaniczne opcje, aby temu zapobiec, takie jak przyklejenie kawałka taśmy na każdej karcie SD, ale ostatecznie naprawiliśmy to, zmieniając jeden wiersz kodu źródłowego w jądrze Linuksa. Teraz, gdy zostanie wykryta karta SD z przełącznikiem ustawionym na „tylko do odczytu”, po prostu ignorujemy przełącznik i chętnie zapisujemy dane na karcie, kiedy tylko chcemy.

Wynika to z naszego szalonego niedopasowania backportów, więc wątpię, by ta łatka miała zastosowanie wszędzie, ale jeśli chcesz eksperymentować z własnym jądrem, to dobry punkt wyjścia:

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

Jeśli nie masz ochoty na łatanie i budowanie jądra Linux, ale masz aparat Canon P&S, możesz użyć CHDK do zapisywania plików (zdjęć) na zabezpieczonej przed zapisem karcie SD (po włączeniu aparatu OF sprawdza stan przełącznika; po ustawieniu na RO automatycznie ładuje oprogramowanie układowe z karty SD. Pozwala to użytkownikom na rozruch bezpośrednio do CHDK; następnie CHDK ignoruje stan przełącznika, aby mógł nadal zapisywać zdjęcia na karcie; patrz np. http : //chdk.wikia.com/wiki/Bootable_SD_card ).

Możesz także pisać na chronionej przed zapisem karcie SD w systemie Linux, wyłączając flagę tylko do odczytu hdparmi ponownie instalując kartę:

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

źródło
3

To zależy od czytelnika. Czytnik może zignorować zakładkę ochrony przed zapisem. Czytnik może mieć oprogramowanie układowe, które wyłącza zapis, jeśli włączona jest karta ochrony przed zapisem. Czytnik może mieć sterownik oprogramowania, który wyłącza pisanie, jeśli włączona jest karta ochrony przed zapisem. W praktyce zdecydowana większość czytelników robi to w oprogramowaniu układowym.

David Schwartz
źródło
Myślę, że jesteś w błędzie. Proszę zamieścić źródło.
wizlog 6.11.11
@wizlog: Nie wiedząc, o czym myślisz, że się mylę, nie wiem, dla którego roszczenia opublikować źródło.
David Schwartz,
Czytelnik może zignorować zakładkę ochrony przed zapisem
wizlog
3
„Ponieważ wycięcie jest wykrywane tylko przez czytnik, ochronę można w razie potrzeby zastąpić (i jeśli jest obsługiwana przez czytnik)”. - Wikipedia
David Schwartz
-3

Jest to przełącznik sprzętowy. Jest to funkcja po prostu blokująca wszelkie operacje zapisu.

Po zmianie nie możesz:

  • Przenieś pliki z lub na kartę SD

  • Usuń pliki z karty SD

  • Skopiuj pliki na kartę SD

  • Sformatuj kartę SD

EDYCJA Przeczytaj więcej tutaj . Zwróć uwagę na słaby pomarańczowy okrąg ...

wizlog
źródło
2
Przełącznik po lewej stronie. Tak więc operacja wie, gdzie
Kanadyjczyk Łukasz
2
Czy jesteś pewien, że zamek faktycznie to wymusza? Czytałem, że istnieją kamery, które mogą (nieco przypadkowo) zignorować to i mimo to napisać na kartę.
Jane Panda,
Cytowany link mówi: „Niektóre karty SD mają również wbudowaną ochronę przed zapisem”. Niektóre - nie wszystkie. Jeśli porównasz inne odpowiedzi, wydaje się, że jest to wyjątek. Myślę, że dość szokujące - wydaje się, że w ogóle nie myśleli o bezpieczeństwie i wirusach. 8- {
Hans-Peter Störr
1
dlaczego tak bardzo głosuje się tę odpowiedź?
wizlog 24.07.17