ไฟล์ถูกพิจารณาว่ามีความเสียหายในโวลุ่มการเข้ารหัส


8

ฉันกำลังใช้encfs @1.7.5และosxfuse @2.6.4ติดตั้งผ่าน MacPorts 2.2.1 ใน MacBook Pro Retina ปลายปี 2013 ของฉันซึ่งใช้ OS X Mavericks 10.9.2 เมื่อเปิดไฟล์บางไฟล์ (เช่น xlsx, pdf) ในencfsโวลุ่มของฉันฉันได้รับข้อผิดพลาด "X เสียหายและไม่สามารถเปิดได้" รวมถึงข้อเสนอแนะเพื่อย้ายไปยังถังขยะ อย่างไรก็ตามเมื่อฉันคัดลอกไฟล์นั้นที่อื่น (เช่นไม่ได้อยู่ในencfsโวลุ่ม) ดูเหมือนว่าจะใช้ได้ดี ทำไมนี้

แก้ไข: ฉันดูออนไลน์และพบโพสต์ที่เกี่ยวข้องกับการปิดใช้งาน GateKeeper มันหลอกลวง โดยพื้นฐานแล้วคุณจะเข้าสู่ "การตั้งค่าความปลอดภัย -> ความปลอดภัยและความเป็นส่วนตัว -> อนุญาตแอปพลิเคชันที่ดาวน์โหลดจาก: ทุกที่"

ฉันเข้าใจว่าวิธีแก้ปัญหาใช้งานได้ แต่ฉันอยากจะรู้ว่าทำไมมันถึงได้ผล ขอบคุณล่วงหน้า.

แก้ไข 2: นอกจากนี้หากใครบางคนสามารถติดแท็กโพสต์ของฉันด้วยencfsมันจะได้รับการชื่นชมมาก

คำตอบ:


6

ฉันได้พบคำตอบที่นี่ (สำหรับ BoxCryptor):

ภายใต้สถานการณ์พิเศษ Mac OS X จะเพิ่มแอตทริบิวต์เพิ่มเติม 'com.apple.quarantine' ลงในไฟล์ที่ถูกดาวน์โหลดจากอินเทอร์เน็ตเช่น สิ่งนี้สามารถเกิดขึ้นได้กับไฟล์ภายในโฟลเดอร์ BoxCryptor หากไฟล์ที่เข้ารหัสมีชุดคุณลักษณะเพิ่มเติมนี้คุณจะได้รับข้อความแสดงข้อผิดพลาด "เสียหาย" เมื่อพยายามเปิดไฟล์ข้อความธรรมดาใน BoxCryptor Volume

ลองวิธีนี้วิธีแก้ปัญหาที่ปลอดภัยยิ่งขึ้น:

x) Open Terminal (Applications -> Utilities)

y) รันคำสั่งต่อไปนี้ (แทนที่พา ธ ):

$ xattr -r -d com.apple.quarantine / path / to / encfs / mount / point


2

@apmouse ถูกต้อง: คุณสามารถซ่อมแซมไฟล์ด้วย xattr แต่คุณต้องทำอย่างนั้นซ้ำ ๆ - ทุกครั้งที่คุณบันทึกไฟล์มันจะมีการเพิ่มค่าสถานะการกักกันกลับเข้าไป

ในขณะที่คุณชี้ให้เห็นว่ามีทางเลือกที่ปลอดภัยน้อยกว่า แต่สะดวกกว่า: ปิดการใช้งาน GateKeeper

วิธีปิดการใช้งาน Gatekeeper

ฉันเข้าใจว่าวิธีแก้ปัญหาใช้งานได้ แต่ฉันอยากจะรู้ว่าทำไมมันถึงได้ผล ขอบคุณล่วงหน้า.

สิ่งแรกที่ควรทราบคือถ้าคุณเข้าไปใน Keynote และเลือก File → Open คุณสามารถเปิดไฟล์ "เสียหาย" โดยไม่มีปัญหาใด ๆ นี่ก็หมายความว่าเป็นตัวค้นหาที่แทรกแซงเพื่อป้องกันการเปิดไฟล์

ข้อความแสดงข้อผิดพลาด "_____ เสียหายและไม่สามารถเปิดได้" เป็นข้อผิดพลาดของลายเซ็นจริง(ดูที่นี่ - ประมาณ 3 ใน 4 ของทางลง) ซึ่งหมายความว่า GateKeeper ไม่สามารถตรวจสอบลายเซ็นที่ถูกต้องได้ ควรใช้การตรวจสอบลายเซ็นกับไฟล์ที่เรียกใช้งานได้และฉันยังไม่เข้าใจสาเหตุที่ทำให้เกิดการดักฟังในสถานการณ์นี้

ฉันพยายามรวบรวมระบบไฟล์ลูปแบ็คตัวอย่างของ osxfuse และวางไฟล์ "เสียหาย" ไว้ที่เดิมและเปิดขึ้นมาได้ดี ดังนั้นฉันคิดว่าข้อผิดพลาดนี้เฉพาะกับ encfs - ไม่ใช่ osxfuse โดยทั่วไป

สำหรับสิ่งที่คุ้มค่ามีตั๋วเปิดในโครงการ osxfuse สำหรับปัญหาที่แน่นอนนี้ หากคุณมีปัญหานี้โพสต์รายละเอียดของคุณในตั๋ว

หวังว่านี่จะช่วย ...


ฉันคิดว่า Gatekeeper มีผลกับแอพเท่านั้นไม่ใช่เอกสาร แล้วมันมีผลกับไฟล์. xlsx อย่างไร?
user151019

ฉันเดาว่าธงถูกนำไปใช้กับเอกสารที่ดาวน์โหลดทั้งหมดเช่นเดียวกับในคำตอบของ @ apmouse แต่ไม่ใช่ "บังคับใช้" ในแอปที่ไม่ใช่ แต่มีลักษณะการทำงานที่ผิดพลาดในปริมาณที่เข้ารหัส ฉันต้องทดสอบพฤติกรรมนี้sshfsและระบบไฟล์ FUSE อื่น ๆ เพื่อให้แน่ใจ
Nicolas De Jay

2

ฉันไม่รู้ว่าทำไมแอปเปิ้ลไม่มีวิธีง่าย ๆ ในการพูดว่า "หนังสือเล่มนี้ปลอดภัย" แต่ปัญหาค่อนข้างง่ายที่จะแก้ปัญหาการเข้ารหัส โปรดหาสคริปต์ที่ฉันใช้สำหรับติดตั้งวอลล์เข้ารหัส มันจะแก้ปัญหาคุณลักษณะโดยอัตโนมัติและยังช่วยในการจำเพื่อปิดไดรฟ์ มันสามารถขยายได้โดยการอ่านencfs dirและจุดเชื่อมต่อจากบรรทัดคำสั่ง แต่ฉันไม่ชอบเพราะพิมพ์ผิดอาจสร้างความเสี่ยงด้านความปลอดภัย ควรปรับให้เข้ากับกลไกการเมาท์อื่น ๆ เช่น boxcryptor มันใช้งานได้สำหรับฉัน แต่คุณต้องพึ่งพาความเชี่ยวชาญของคุณเองในการตัดสินใจว่าจะใช้ด้วยตัวเองหรือไม่ โดยเฉพาะอย่างยิ่งฉันไม่ได้เป็นผู้เชี่ยวชาญด้านความปลอดภัยและไม่มีคุณสมบัติที่จะตัดสินว่าจะเปิดช่องโหว่ด้านความปลอดภัยใด ๆ (โดยเฉพาะในขณะที่ทำงานอยู่และโดยเฉพาะอย่างยิ่งในเครื่องที่ใช้ร่วมกัน)

#!/bin/bash
# script to mount encrypted volume

ENCFSDIR=<encfs dir>
MOUNTPOINT=<mount point>
SAFELOC=<somewhere outside mounted volume>

encfs $ENCFSDIR $MOUNTPOINT

cd $MOUNTPOINT
xattr -r -d com.apple.quarantine .
MY_PROMPT='SECRET: '
echo 'noscecrets to finish'
while :
do
  echo -n "$MY_PROMPT"
  read line
  if [ 'nosecrets' == "$line" ] ; then
    break
  fi
  eval "$line"
done

\# and clean up
cd $SAFELOC
umount $MOUNTPOINT

exit 0

2

ฉันคิดว่าฉันมีวิธีแก้ปัญหาแบบถาวรมากกว่านี้แทนที่จะเป็นคำสั่งที่คุณต้องใช้ในแต่ละครั้ง ตามที่ฉันเพิ่งกล่าวถึงรายงานข้อผิดพลาดต้นน้ำ :

ฉันคิดกับตัวเองว่า OS X ใช้ผู้ใช้ระบบและ daemons ของระบบสำหรับงานทุกประเภทบางทีเคอร์เนลคาดว่าจะสามารถทำงานบางอย่างในฐานะผู้ใช้รายอื่นหรือเป็นรูทของไฟล์เหล่านี้และทำเครื่องหมายว่าเสียหายเมื่อนั้น ไม่ทำงาน

ดังนั้นฉันจึงทำเครื่องหมายsshfsไบนารีของฉันเป็นsetuidและฉันได้เพิ่ม-o allow_otherตัวเลือกการเมานท์ไปยังsshfsบรรทัดคำสั่งของฉันและ ... ฉันดูเหมือนจะสามารถเปิดและแก้ไขเอกสารได้อย่างน่าเชื่อถือในปริมาณที่เมานต์ ฉันจะทดลองและติดตามต่อไปหากหยุดทำงาน

แน่นอนว่าฉันกังวลเกี่ยวกับ setuid root ไบนารีที่วางอยู่รอบ ๆ แต่ดูเหมือนว่าจะดีกว่าตัวเลือกในการใช้ daemon ซึ่งต้องการสิทธิ์รูทบนฝั่งไฟล์เซิร์ฟเวอร์เพื่อรับ NFS หรือ SMB :)

ระบุว่าallow_otherเป็นตัวเลือกการเมานต์แบบ FUSE และไม่เจาะจงsshfsฉันเชื่อว่าวิธีแก้ปัญหานี้จะใช้งานได้encfsเช่นกัน มันจะเป็นการดีถ้ารู้ว่ามีคนลองและมันใช้งานได้!


1

ขอบคุณ @Glyph จากสิ่งที่ฉันสามารถบอกได้ว่าดูเหมือนว่าจะใช้งานได้หลังจากทำตามขั้นตอนของคุณ ฉันทำตามขั้นตอนเหล่านี้:

  1. ก่อนอื่นฉันต้องเพิ่มกลุ่มที่ฉันอยู่ในกลุ่มผู้ดูแลระบบ osxfuse มิฉะนั้น allow_other จะล้มเหลวหากไม่รองรับการทำงาน

    sysctl -w osxfuse.tunables.admin_group=12
    
  2. จากนั้นใช้ -o allow_other เพื่อเข้ารหัส

ฉันได้ลองใช้เพียงเล็กน้อย แต่กรณีความล้มเหลวที่สามารถทำซ้ำได้ซึ่งตอนนี้ฉันดูเหมือนจะใช้งานได้แล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.