Cơ chế khóa trên phần cứng, phần sụn hoặc phần mềm (trình điều khiển, hệ điều hành) của thẻ SD có được thi hành không?


16

Trường hợp khóa ở chế độ chỉ đọc được thi hành bằng thẻ SD? Điều này được thực hiện bên trong thẻ vật lý, trong phần sụn của độc giả hay trong HĐH? (Một số nơi khác?)

Câu trả lời:


20

Nếu bạn đọc Thông số kỹ thuật SD Phần 1 Đặc tả đơn giản lớp vật lý , phần 4.3.6 "Quản lý bảo vệ ghi" nói

Ba phương thức bảo vệ ghi được hỗ trợ trong Thẻ nhớ SD như sau:
- Công tắc bảo vệ ghi cơ học (Chỉ chịu trách nhiệm máy chủ)
- Bảo vệ ghi nội bộ thẻ (Trách nhiệm của thẻ)
- Hoạt động khóa thẻ bảo vệ mật khẩu.

Công tắc cơ bảo vệ

Một máy tính bảng trượt cơ học ở mặt bên của thẻ (tham khảo Phụ lục cơ học phần 1) sẽ được người dùng sử dụng để chỉ ra rằng một thẻ nhất định có được bảo vệ ghi hay không. Nếu máy tính bảng trượt được định vị theo cách mà cửa sổ đang mở, điều đó có nghĩa là thẻ được bảo vệ ghi. Nếu cửa sổ đóng, thẻ không được bảo vệ chống ghi. Một công tắc phù hợp, phù hợp, ở phía ổ cắm sẽ cho chủ nhà biết rằng thẻ có được bảo vệ chống ghi hay không. Trách nhiệm của chủ nhà là bảo vệ thẻ. Vị trí của công tắc bảo vệ ghi không xác định đối với mạch bên trong của thẻ.

(nhấn mạnh của tôi)

Một TOSHIBA SD Card Specification nói

CMD28 SET_WRITE_PROT - Bảo vệ ghi nội bộ không được triển khai.
CMD29 CLR_WRITE_PROT - Bảo vệ ghi nội bộ không được triển khai.
CMD30 SEND_WRITE_PROT - Bảo vệ ghi nội bộ không được triển khai.

Giáo dục

2) Các chức năng không được hỗ trợ:
Bảo vệ chống ghi nội bộ của thẻ (Tùy chọn trong THÔNG SỐ KỸ THUẬT LAYER 4.3.5.)


Nhưng tôi tự hỏi như
tsenapathy

14

Trong công việc của tôi, chúng tôi sử dụng thẻ SD trong một hệ thống nhúng. Nếu chúng tôi cố gắng khởi động với thẻ bị khóa, chúng tôi sẽ bị hoảng loạn hạt nhân. Đây không phải là một vấn đề lớn cho đến khi chúng tôi có một loạt thẻ SD có công tắc ghi rất lỏng lẻo: hành động cắm thẻ vào đầu đọc đôi khi đủ để di chuyển công tắc và khóa thẻ. Nhiều người bắt đầu cố gắng đưa ra các tùy chọn cơ học để ngăn chặn điều này, như dán một miếng băng dính trên mỗi thẻ SD, nhưng cuối cùng chúng tôi đã khắc phục điều này bằng cách thay đổi một dòng mã nguồn trong nhân Linux. Bây giờ khi phát hiện thẻ SD với công tắc được đặt thành chỉ đọc, chúng tôi chỉ cần bỏ qua công tắc và vui vẻ ghi dữ liệu vào thẻ bất cứ khi nào chúng tôi muốn.

Đây là từ sự không phù hợp điên rồ của chúng tôi về backport vì vậy tôi nghi ngờ bản vá này sẽ được áp dụng sạch ở bất cứ đâu, nhưng nếu bạn muốn thử nghiệm với hạt nhân của riêng mình, đây là một điểm khởi đầu tốt:

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

Nếu bạn không muốn vá và xây dựng nhân Linux nhưng bạn có máy ảnh Canon P & S, bạn có thể sử dụng CHDK để ghi tệp (ảnh) vào thẻ SD được bảo vệ chống ghi (khi máy ảnh bật, OF sẽ kiểm tra trạng thái của công tắc, khi được đặt thành RO, nó sẽ tự động tải firmware từ thẻ SD. Điều này cho phép người dùng khởi động trực tiếp vào CHDK, sau đó CHDK bỏ qua trạng thái của công tắc để nó vẫn có thể ghi ảnh vào thẻ; xem ví dụ http : //chdk.wikia.com/wiki/Bootable_SD_card ).

Bạn cũng có thể ghi vào thẻ SD được bảo vệ chống ghi trong Linux bằng cách tắt cờ chỉ đọc hdparmvà ghi lại thẻ:

$ 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

Nó phụ thuộc vào người đọc. Người đọc có thể bỏ qua tab bảo vệ ghi. Trình đọc có thể có phần sụn vô hiệu hóa ghi nếu tab bảo vệ ghi được kích hoạt. Trình đọc có thể có trình điều khiển phần mềm vô hiệu hóa ghi nếu tab bảo vệ ghi được kích hoạt. Trong thực tế, đại đa số độc giả làm điều đó trong phần sụn.


Tôi nghĩ bạn đã sai. Xin vui lòng gửi một nguồn.
wizlog


@wizlog: Không biết bạn nghĩ gì về tôi, tôi không biết yêu cầu đăng nguồn nào.
David Schwartz

Người đọc có thể bỏ qua tab bảo vệ ghi
wizlog

3
"Bởi vì notch chỉ được phát hiện bởi người đọc, nên sự bảo vệ có thể bị ghi đè nếu muốn (và nếu được người đọc hỗ trợ)." - Wikipedia
David Schwartz

-3

Đây là một công tắc dựa trên phần cứng. Đây là một tính năng chỉ chặn mọi thao tác ghi.

Nếu được chuyển đổi, bạn không thể:

  • Di chuyển tệp từ hoặc đến Thẻ SD

  • Xóa tệp khỏi Thẻ SD

  • Sao chép tập tin vào thẻ SD

  • Định dạng thẻ SD

EDIT Đọc thêm tại đây . Lưu ý vòng tròn màu cam mờ ...


2
Một công tắc ở phía bên trái. Chỉ để các op biết ở đâu
Canada Luke

2
Bạn có chắc rằng khóa thực sự thực thi điều này mặc dù? Tôi đã đọc có những máy ảnh có thể (hơi trùng hợp) bỏ qua điều này và viết vào thẻ bằng mọi cách.
Jane Panda

Liên kết bạn đang trích dẫn cho biết "Một số thẻ SD cũng có chức năng chống ghi được tích hợp trong thẻ". Một số - không phải tất cả. Nếu bạn so sánh các câu trả lời khác thì có vẻ như đây là một ngoại lệ. Khá sốc, tôi nghĩ - có vẻ như họ không nghĩ gì về bảo mật và virus cả. 8- {
Hans-Peter Störr

1
Tại sao câu trả lời này được bỏ phiếu rất nhiều?
wizlog
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.