TrueCrypt
จากวิกิพีเดีย สารานุกรมเสรี
- บทความนี้มีชื่อเป็นภาษาอังกฤษ เนื่องจากยังไม่มีชื่อภาษาไทยที่กระชับ เหมาะสม หรือไม่รู้วิธีอ่านในภาษาไทย
| รุ่นล่าสุด | TrueCrypt 6.2[1] |
|---|---|
| ระบบปฏิบัติการ | Windows 2000/2003 Server/XP/Vista
Mac OS X Linux |
| ชนิด | โปรแกรมสำนักงาน |
| สัญญาอนุญาต | Free Open-Source |
| เว็บไซต์ | http://www.truecrypt.org |
TrueCrypt เป็นซอฟต์แวร์ประเภท open-source สำหรับการเข้ารหัสบนดิสก์เสมือนจริง โดยใช้บนระบบปฏิบัติการ Windows Vista/XP/2000 และ Linux
TrueCrypt เป็นชุดคำสั่งที่ถูกสร้างขึ้นเพื่อใช้ในการเข้ารหัสพื้นที่เก็บข้อมูลแบบ real-time การเข้ารหัสแบบ real-time หมายถึงก่อนที่เราจะ load หรือ save ข้อมูล ข้อมูลเหล่านั้นจะมีการเข้ารหัสหรือถอดรหัสแบบอัตโนมัติ จะทำให้พื้นที่ที่เก็บข้อมูลที่ถูกเข้ารหัสเหล่านั้นจะไม่สามารถถูกอ่าน หรือถูกทำการถอดรหัสได้โดยปราศจากการใช้ password/keyfile (s) หรือกุญแจการถอดรหัสที่ถูกต้องโดยการเข้ารหัสจะครอบคลุมทั้งระบบของแฟ้มข้อมูล เช่น ชื่อไฟล์ ชื่อแฟ้มข้อมูล metadata และอื่น ๆ
เนื้อหา |
[แก้] ลักษณะการทำงาน
ไฟล์ข้อมูลที่อยู่ในตำแหน่งที่มีการติดตั้ง TrueCrypt จะสามารถทำการคัดลอกข้อมูลได้เหมือนข้อมูลเหล่านั้นมาจากพื้นที่ของ disk ธรรมดา ไฟล์ข้อมูลจะทำการถอดรหัสตัวเองอย่างอัตโนมัติ (ในหน่วยความจำหรือ RAM) ในขณะที่เริ่มทำการอ่านหรือคัดลอกข้อมูลจากพื้นที่ส่วนที่มีการเข้ารหัส ในทางกลับกันไฟล์ข้อมูลก็สามารถถูกเขียนหรือคัดลอกกลับไปยังพื้นที่ที่มีการเข้ารหัสและไฟล์ข้อมูลเหล่านั้นก็จะถูกทำการเข้ารหัสด้วย แต่การเข้ารหัสหรือถอดรหัสแบบนี้ไม่ได้หมายความว่าไฟล์ข้อมูลที่จะทำการเข้ารหัสจะถูกบรรจุอยู่บน RAM ทั้งหมด
ยกตัวอย่างเช่นเรามีไฟล์ .avi ที่เป็นไฟล์วีดีโอที่ถูกบรรจุอยู่ในพื้นที่ที่มีการติดตั้ง TrueCrypt (ดังนั้นไฟล์วีดีโอนี้จะถูกทำการเข้ารหัสไว้ทั้งหมดแล้ว) ผู้ใช้งานต้องทำการกรอก password/keyfile ที่ถูกต้อง และทำการเปิดพื้นที่ที่ถูกเข้ารหัสนั้นขึ้นมา เมื่อผู้ใช้งาน double clicks ที่ icon ที่เป็นไฟล์วีดีโอ ระบบปฏิบัติการจะเรียกใช้งาน application ที่เกี่ยวข้องกันชนิดของไฟล์วีดีโอนั้น ไฟล์วีดีโอจะทำการ load ข้อมูลเริ่มต้นบางส่วนจากพื้นที่ที่ถูกเข้ารหัสไปยังหน่วยความจำเพื่อเตรียมพร้อมในการเล่น ในขณะที่ข้อมูลบางส่วนถูก load TrueCrypt จะทำการถอดรหัสข้อมูลวีดีโอใน RAM อย่างอัตโนมัติ ข้อมูลที่ถูกถอดรหัสแล้วจะถูกเก็บไว้ใน RAM และถูกใช้งานต่อไป ในขณะที่ข้อมูลบางส่วนกำลังถูกเล่นอยู่นั้น โปรแกรมที่ทำการเล่นข้อมูลเหล่านั้นจะทำการ load ข้อมูลถัดไปและถูกดำเนินการถอดรหัสเหมือนเดิม กระบวนการในการทำงานนี้เรียกว่า การเข้ารหัสและการถอดรหัสแบบ on-the-fly โดยการเข้ารหัสหรือถอดรหัสของ TrueCrypt นั้นสามารถกระทำการได้ทำทุกชนิดของแฟ้มข้อมูล
TrueCrypt จะไม่มีการบันทึกข้อมูลที่ทำการถอดรหัสข้อมูลไว้แล้วบน disk แต่ TrueCrypt จะทำแค่เพียงเก็บข้อมูลเหล่านั้นไว้ชั่วคราวบนหน่วยความจำ เมื่อไหร่ที่พื้นที่ที่ถูกเข้ารหัสยังมีการเชื่อมต่ออยู่ ข้อมูลที่ถูกบรรจุอยู่ในพื้นที่เหล่านั้นก็ยังคงถูกเข้ารหัสเหมือนเดิม แต่เมื่อใดที่ทำการรีสตาร์ท Windows หรือปิดเครื่องคอมพิวเตอร์พื้นที่เหล่านั้นจะไม่ถูกทำการเชื่อมต่อและไฟล์ข้อมูลที่ถูกเก็บอยู่ในนั้นจะไม่ทำการเข้าถึงได้ และถึงแม้ว่าเครื่องคอมพิวเตอร์ไม่ได้ถูกปิดอย่างถูกวิธี ข้อมูลที่ถูกเก็บอยู่ก็ไม่สามารถทำการเข้าถึงได้เช่นเดียวกัน การเข้าถึงข้อมูลจะสามารถทำได้ก็ต่อเมื่อมีการเชื่อมต่อกับพื้นที่ที่ถูกเข้ารหัสโดยการใช้ password/keyfile ที่ถูกต้องเท่านั้น
[แก้] คุณสมบัติหลัก
- สร้างการเข้ารหัส disk แบบเสมือนจริงภายในแฟ้มข้อมูล และใส่กลับไปเป็น disk จริง ๆ ได้ - สามารถเข้ารหัสได้ครอบคลุมทั้ง partition หรือจะเข้ารหัสทั้งหมดของอุปกรณ์เก็บข้อมูล เช่น USB flash drive หรือ hard drive - การเข้ารหัสทั้งในส่วนที่เป็นการเข้ารหัสทั้ง partition หรือการเข้ารหัสทั้ง drive สามารถทำการเข้ารหัสได้ในขณะที่ตัวเก็บข้อมูลเหล่านั้นมี Windows ติดตั้งอยู่ - การเข้ารหัสสามารถกำหนดได้ว่าจะเป็นแบบอัตโนมัติ แบบ real-time (on-the-fly) หรือแบบ transparent - การปฏิเสธความไม่มีเหตุผล (plausible deniability) หรือก็คือการป้องกันระบบไม่ให้เปิดเผย password กับผู้บุกรุก ประกอบด้วย 2 ระดับ
1. ซ่อนพื้นที่ที่เก็บข้อมูล (hidden volumn)
2. ไม่ให้สามารถระบุได้ว่ามี TrueCrypt ติดตั้งอยู่ (ไม่สามารถแยกแยะ TrueCrypt จากข้อมูลลวงที่โปรแกรมสร้างขึ้นมาได้)
- กระบวนการในกาเข้ารหัส () ที่ใช้ คือ AES-256, Serpent และ Twofish โดยใช้การดำเนินการแบบ XTS
[แก้] โครงสร้างการเข้ารหัส
1. เก็บ 512 bytes แรกจาก volume ลงบน RAM โดย 64 bytes แรกคือ salt 2. ข้อมูลที่จะถอดรหัสอยู่ใน RAM โดย parameter ที่จะพูดถึงต่อไปนี้เป็น unknown แต่มันจะใช้ในกระบวนการพิจารณาการเข้าถึงของข้อมูล โดย parameter มีดังนี้
a. key to decrypt the volume header PRF (specified in PKCS #5 v2.0) จะใช้สร้าง header key โดยสร้างมาจาก function เหล่านี้ HMAC-SHA-512, HMAC-RIPEMD-160, HMAC-Whirlpool เมื่อผู้ใช้งานกรอก password เข้ามา salt จะอ่านค่านั้นและส่งต่อไปยัง header key derivation function ที่จะสร้างตัวเลข sequence ออกมาชุดนึงจาก header encryption key และ secondary header key (XTS mode)
b. : AES-256, Serpent, Twofish, AES-Serpent, AES-Twofish-Serpent, etc.
c. Mode of operation: XTS, LRW (deprecated/legacy) , CBC (deprecated/legacy)
d. Key size (s)
3. การถอดรหัสจะสำเร็จเมื่อมันตรวจสอบ 4 bytes แรกของรหัส ASCII ว่ามีข้อความว่า "TRUE" และ CRC-32 checksum ของ 256 byte สุดท้ายของข้อความที่ถอดรหัส (volume header) ตรงกับค่าที่อยู่ใน byte #8
ถ้าค่าไม่ตรงจะกลับไปที step 2 ใหม่และถ้าไม่ตรงอีกจะถูกปิดการเชื่อมต่อและจะถูก terminate
4. ถ้าใส่ password ถูกจะทำการเชื่อมต่อและสามารถดึงข้อมูลมาใช้งานได้

