ทรูคริปต์

จากวิกิพีเดีย สารานุกรมเสรี
TrueCrypt
รุ่นล่าสุด TrueCrypt 6.2[1]
ระบบปฏิบัติการ

Windows 2000/2003 Server/XP/Vista Mac OS X

Linux
ประเภท โปรแกรมสำนักงาน
ลิขสิทธิ์ Free Open-Source
เว็บไซต์ http://www.truecrypt.org

ทรูคริปต์ (อังกฤษ: TrueCrypt) เป็นซอฟต์แวร์ประเภทโอเพนซอร์ซสำหรับการเข้ารหัสบนดิสก์เสมือนจริง สามารถใช้บนระบบปฏิบัติการวินโดวส์ แมคโอเอส หรือลินุกซ์

ทรูคริปต์เป็นชุดคำสั่งที่ถูกสร้างขึ้นเพื่อใช้ในการเข้ารหัสพื้นที่เก็บข้อมูลแบบ real-time การเข้ารหัสแบบ real-time หมายถึงก่อนที่เราจะ load หรือ save ข้อมูล ข้อมูลเหล่านั้นจะมีการเข้ารหัสหรือถอดรหัสแบบอัตโนมัติ จะทำให้พื้นที่ที่เก็บข้อมูลที่ถูกเข้ารหัสเหล่านั้นจะไม่สามารถถูกอ่าน หรือถูกทำการถอดรหัสได้โดยปราศจากการใช้ password/keyfile (s) หรือกุญแจการถอดรหัสที่ถูกต้องโดยการเข้ารหัสจะครอบคลุมทั้งระบบของแฟ้มข้อมูล เช่น ชื่อไฟล์ ชื่อแฟ้มข้อมูล metadata และอื่น ๆ

ลักษณะการทำงาน[แก้]

ไฟล์ข้อมูลที่อยู่ในตำแหน่งที่มีการติดตั้งทรูคริปต์ จะสามารถทำการคัดลอกข้อมูลได้เหมือนข้อมูลเหล่านั้นมาจากพื้นที่ของดิสก์ธรรมดา ไฟล์ข้อมูลจะทำการถอดรหัสตัวเองอย่างอัตโนมัติ (ในหน่วยความจำหรือแรม) ในขณะที่เริ่มทำการอ่านหรือคัดลอกข้อมูลจากพื้นที่ส่วนที่มีการเข้ารหัส ในทางกลับกันไฟล์ข้อมูลก็สามารถถูกเขียนหรือคัดลอกกลับไปยังพื้นที่ที่มีการเข้ารหัสและไฟล์ข้อมูลเหล่านั้นก็จะถูกทำการเข้ารหัสด้วย แต่การเข้ารหัสหรือถอดรหัสแบบนี้ไม่ได้หมายความว่าไฟล์ข้อมูลที่จะทำการเข้ารหัสจะถูกบรรจุอยู่บนแรมทั้งหมด

ยกตัวอย่างเช่นเรามีไฟล์ .avi ที่เป็นไฟล์วิดีโอที่ถูกบรรจุอยู่ในพื้นที่ที่มีการติดตั้งทรูคริปต์ (ดังนั้นไฟล์วิดีโอนี้จะถูกทำการเข้ารหัสไว้ทั้งหมดแล้ว) ผู้ใช้งานต้องทำการกรอก password/keyfile ที่ถูกต้อง และทำการเปิดพื้นที่ที่ถูกเข้ารหัสนั้นขึ้นมา เมื่อผู้ใช้งานเปิดไฟล์วิดีโอ ระบบปฏิบัติการจะเรียกใช้งานแอปพลิเคชันที่เกี่ยวข้องกันชนิดของไฟล์วิดีโอนั้น ไฟล์วิดีโอจะทำการเรียกข้อมูลเริ่มต้นบางส่วนจากพื้นที่ที่ถูกเข้ารหัสไปยังหน่วยความจำเพื่อเตรียมพร้อมในการเล่น ในขณะที่ข้อมูลบางส่วนถูกเรียก ทรูคริปต์จะทำการถอดรหัสข้อมูลวิดีโอในแรมอย่างอัตโนมัติ ข้อมูลที่ถูกถอดรหัสแล้วจะถูกเก็บไว้ในแรมและถูกใช้งานต่อไป ในขณะที่ข้อมูลบางส่วนกำลังถูกเล่นอยู่นั้น โปรแกรมที่ทำการเล่นข้อมูลเหล่านั้นจะทำการเรียกข้อมูลถัดไปและถูกดำเนินการถอดรหัสเหมือนเดิม กระบวนการในการทำงานนี้เรียกว่า การเข้ารหัสและการถอดรหัสแบบ on-the-fly โดยการเข้ารหัสหรือถอดรหัสของทรูคริปต์นั้นสามารถกระทำการได้ทำทุกชนิดของแฟ้มข้อมูล

ทรูคริปต์จะไม่มีการบันทึกข้อมูลที่ทำการถอดรหัสข้อมูลไว้แล้วบนดิสก์ แต่ทรูคริปต์จะทำแค่เพียงเก็บข้อมูลเหล่านั้นไว้ชั่วคราวบนหน่วยความจำ เมื่อไหร่ที่พื้นที่ที่ถูกเข้ารหัสยังมีการเชื่อมต่ออยู่ ข้อมูลที่ถูกบรรจุอยู่ในพื้นที่เหล่านั้นก็ยังคงถูกเข้ารหัสเหมือนเดิม แต่เมื่อใดที่ทำการรีสตาร์ตหรือปิดเครื่องคอมพิวเตอร์พื้นที่เหล่านั้นจะไม่ถูกทำการเชื่อมต่อและไฟล์ข้อมูลที่ถูกเก็บอยู่ในนั้นจะไม่ทำการเข้าถึงได้ และถึงแม้ว่าเครื่องคอมพิวเตอร์ไม่ได้ถูกปิดอย่างถูกวิธี ข้อมูลที่ถูกเก็บอยู่ก็ไม่สามารถทำการเข้าถึงได้เช่นเดียวกัน การเข้าถึงข้อมูลจะสามารถทำได้ก็ต่อเมื่อมีการเชื่อมต่อกับพื้นที่ที่ถูกเข้ารหัสโดยการใช้ password/keyfile ที่ถูกต้องเท่านั้น

คุณสมบัติหลัก[แก้]

  • สร้างการเข้ารหัสดิสก์แบบเสมือนจริงภายในแฟ้มข้อมูล และใส่กลับไปเป็นดิสก์จริง ๆ ได้
  • สามารถเข้ารหัสได้ครอบคลุมทั้ง 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 ไบต์แรกจาก volume ลงบนแรม โดย 64 ไบต์แรกคือ salt
  2. ข้อมูลที่จะถอดรหัสอยู่ในแรมโดย parameter ที่จะพูดถึงต่อไปนี้เป็น unknown แต่มันจะใช้ในกระบวนการพิจารณาการเข้าถึงของข้อมูล โดย parameter มีดังนี้
    • 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)

  1. การถอดรหัสจะสำเร็จเมื่อมันตรวจสอบ 4 ไบต์แรกของรหัสแอสกีว่ามีข้อความว่า "TRUE" และ CRC-32 checksum ของ 256 ไบต์สุดท้ายของข้อความที่ถอดรหัส (volume header) ตรงกับค่าที่อยู่ในไบต์ที่ 8 หรือไม่ ถ้าค่าไม่ตรงจะกลับไปที่ข้อ 2 ใหม่และถ้าไม่ตรงอีกจะถูกปิดการเชื่อมต่อและหยุดการทำงาน
  2. ถ้าใส่รหัสผ่านถูกต้อง จะทำการเชื่อมต่อและสามารถดึงข้อมูลมาใช้งานได้

ดูเพิ่ม[แก้]

อ้างอิง[แก้]

แหล่งข้อมูลอื่น[แก้]