เมื่อท่านติดตั้ง gpg2 บน CentOS โดยใช้คำสั่ง yum install gnupg2 เรียบร้อยแล้วจะมีคำสั่ง gpg2 ไว้สำหรับเข้าหรือถอดรหัสไฟล์ข้อมูลต่อไปนี้เป็นตัวอย่างการใช้งาน

1. การสร้างคีย์

สร้างคีย์โดยใช้คำสั่ง

gpg --full-generate-key

เลือก RSA and RSA (default) ใส่ขนาด keysize เป็น 2048 bits กำหนดระยะเวลาคีย์เช่น 1y (1 ปี) หลังจากนั้นมันจะถาม user id ให้ใส่ Real name: และ Email address: และ Comment: และให้จด Passphrase ไว้ ซึ่ง Passphrase จะใช้ในขั้นตอนที่เกี่ยวข้องกับ Private Key

2. การส่งออกไฟล์ Key

ส่งออกไฟล์ Private Key โดยใช้คำสั่ง

gpg2 -a --export-secret-key mykey >> /path/to/private.key

ในที่นี้สมมุติว่า mykey คือชื่อคีย์ที่ตั้งไว้ และ /path/to เป็นพาธที่มีอยู่จริงบนเครื่องของท่าน ไฟล์ private key นี้ให้เก็บรักษาไว้บนเครื่องเซิร์ฟเวอร์ หรือบนเครื่องที่ปลอดภัยไม่ส่งออกไปภายนอก ไว้สำหรับถอดรหัสไฟล์ที่จะให้บุคคลอื่นส่งไฟล์มาให้เรา เราก็จะถอดรหัสด้วย private key นี้

การส่งออก Public Key ทำได้โดยใช้คำสั่ง

gpg2 -a --export mykey >> /path/to/public.key

ไฟล์ public key นี้ให้แจกไปยังบุคคลอื่นที่จำเป็นต้องส่งไฟล์มาให้เรา ให้เค้าใช้ gpg2 กับไฟล์ public key เข้ารหัส (Encrypt) ไฟล์ข้อมูลก่อนและส่งไฟล์ข้อมูลมาที่เรา

3. การนำไฟล์ Key เข้าระบบ

สำหรับเครื่องปลายทางเมื่อได้รับแจกไฟล์ public key ไปแล้วสามารถนำไฟล์คีย์เข้าระบบได้โดยติดตั้ง gpg2 ก่อนแล้วใช้คำสั่ง

gpg2 --import /path/to/public.key

หลังจากนั้นสามารถตรวจสอบรายการคีย์ที่นำเข้าระบบแล้วด้วยคำสั่ง

gpg2 --list-keys

จะพบรายการคีย์ออกมา ในกรณีที่นำเข้าไฟล์เดียวแต่พบหลายรายการคีย์ มีความเป็นไปได้ที่ในไฟล์ key ที่ได้รับมาประกอบด้วย key มากกว่า 1 รูปแบบ เช่น Key [SC] คือ Signing Certificate หรือ Key [E] คือ Encrypt สำหรับเข้ารหัสไฟล์ หรือเขียนว่า master คือ master key และ sub คือ subkey เป็นต้น ตัวอย่างเช่นในภาพนี้

สังเกตว่าคำสั่งย่อย –list-keys จะแสดงรายการคีย์ทั้งหมดออกมา พร้อมกับชื่อคีย์ เช่น DD66CDB2 คือ ชื่อคีย์ที่ท่านสามารถนำไปอ้างถึงตอนใช้คำสั่งย่อย –encrypt เพื่อเข้ารหัสไฟล์ได้

ถ้าเป็นการย้ายเครื่องมาเครื่องใหม่และต้องการนำไฟล์ private key เข้าระบบให้ใช้คำสั่ง

gpg2 --import /path/to/private.key

จะเป็นการโหลด private key ทั้งหมดจากไฟล์เข้าระบบ ใน private key จะมี user id และ passphrase ติดมาด้วยเพื่อให้ท่านสามารถใช้อ้างอิงเวลาถอดรหัสได้ ถ้าต้องการตรวจสอบรายการ private key ในระบบใช้คำสั่ง

gpg2 --list-secret-keys

4. การเข้ารหัสและถอดรหัสไฟล์

การเข้ารหัสไฟล์จะทำโดยบุคคลอื่นที่ต้องการส่งไฟล์ให้เรา เค้าจะได้รับแจกไฟล์ public key ไปและไปนำเข้าระบบฝั่งเค้า หลังจากนั้นเค้าจะใช้คำสั่งย่อย –encrypt เพื่อเข้ารหัสไฟล์ข้อมูล และส่งไฟล์ข้อมูลที่เข้ารหัสแล้วมาให้เรา เป็นไปตามภาพขั้นตอนดังนี้

ในภาพลำดับการทำงานข้างต้นจะเห็นว่าผู้ที่จะส่งไฟล์ให้เราจะใช้คำสั่งเข้ารหัสไฟล์ด้วยคำสั่ง

    gpg2 \
    --encrypt \
    --recipient 0B6C582A \
    --output helloworld.gpg \
    --yes \
    --armor \
    --verbose \
    helloworld.txt
    

    โดย 0B6C582A เป็นชื่อคีย์ (ดูได้ด้วยคำสั่งย่อย –list-keys ดังที่กล่าวไปข้างต้น) ส่วน helloworld.txt เป็นไฟล์อินพุตที่จะถูกเข้ารหัส เมื่อเข้ารหัสเสร็จแล้วส่งไปที่ปลายทาง ผู้รับที่เป็นเจ้าของคีย์คู่ จะมี private key อยู่ย่อมสามารถถอดรหัสได้ด้วยคำสั่ง

    gpg2 \
    --decrypt \
    --output helloworld2.txt \
    helloworld.gpg
    

    และจะถูกถาม passphrase ที่ตั้งไว้ตอนสร้างคีย์คู่ เมื่อใส่ passphrase ถูกต้อง ก็จะสามารถอดรหัสได้ไฟล์ต้นฉบับกลับออกมานำไปใช้งานต่อได้

    ใส่ความเห็น

    อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *