ข้ามไปยังเนื้อหาหลัก

การสร้างคีย์แบบออฟไลน์: คู่มือความปลอดภัยแบบ Air-Gapped

การสร้างคีย์สกุลเงินดิจิทัลบนคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ตเปิดโอกาสให้คีย์ได้รับความเสี่ยงจากมัลแวร์ โปรแกรมบันทึกการกดแป้นพิมพ์ การแคปจอ การแฮคคลิปบอร์ด และการขโมยข้อมูลระยะไกล สำหรับกระเป๋าเงินมูลค่าสูงที่มีจุดประสงค์เพื่อเก็บรักษาแบบโฮลดีระยะยาว มาตรฐานสูงสุดคือการสร้างแบบ air-gapped แบบออฟไลน์: การสร้างคีย์บนอุปกรณ์ที่ไม่เคยและจะไม่เชื่อมต่อกับเครือข่ายใดเลย

คู่มือนี้มีหลักการแบบครอบคลุมและทีละขั้นตอนสำหรับการสร้างคีย์แบบออฟไลน์ โดยครอบคลุมการเลือกฮาร์ดแวร์ การตั้งค่าระบบปฏิบัติการ การสร้างคีย์ การตรวจสอบ และการล้างข้อมูลที่ปลอดภัย

เหตุใดการสร้างแบบ Air-Gapped จึงสำคัญ

แบบจำลองการคุกคาม

เมื่อคุณสร้างวลีเมล็ดหรือคีย์ส่วนตัวบนคอมพิวเตอร์ประจำวัน วัสดุคีย์จะมีอยู่ใน:

  • RAM — สามารถเข้าถึงได้โดยกระบวนการใดๆ ที่ทำงานบนระบบ
  • ดิสก์ — อาจถูกสลับไปที่ดิสก์โดยระบบหน่วยความจำเสมือนของระบบปฏิบัติการ
  • คลิปบอร์ด — หากคัดลอกและวาง สามารถเข้าถึงได้โดยแอปพลิเคชันทั้งหมด
  • เครือข่าย — หากเครื่องเชื่อมต่ออยู่ มัลแวร์สามารถขโมยคีย์ได้ในทันที
  • จอแสดงผล — มัลแวร์แคปจอหรือการมองดูจากไหล่ผู้อื่น
  • แป้นพิมพ์ — โปรแกรมบันทึกการกดแป้นพิมพ์ (ซอฟต์แวร์หรือฮาร์ดแวร์) บันทึกอินพุตทั้งหมด

คอมพิวเตอร์แบบ air-gapped ขจัดเวกเตอร์เครือข่ายโดยสิ้นเชิง เมื่อผสมกับการดำเนินงานความปลอดภัยที่เหมาะสม จะช่วยลดหรือขจัดเวกเตอร์อื่นๆ ได้อย่างมีนัยสำคัญ

ใครที่ต้องการการสร้างแบบ Air-Gapped?

  • ใครก็ตามที่เก็บรักษาเงินมากกว่าที่พวกเขาสามารถเสียได้
  • การเก็บรักษาแบบ "ลึกเย็น" ระยะยาว (ปีหรือทศวรรษ)
  • การจัดการการดูแลและคลังสินค้าของสถาบัน
  • ใครก็ตามที่ต้องการมาตรฐานความปลอดภัยที่สูงที่สุด

สำหรับกระเป๋าเงินประจำวันที่มียอดคงเหลือเล็กน้อย ฮาร์ดแวร์เวลเล็ตจะให้ความปลอดภัยเพียงพอโดยไม่ต้องมีความซับซ้อนของขั้นตอน air-gapped

การเลือกฮาร์ดแวร์

ตัวเลือกที่ 1: แล็ปท็อปเฉพาะทาง (แนะนำ)

ซื้อแล็ปท็อปใหม่หรือรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานที่จะใช้เฉพาะสำหรับการสร้างคีย์และไม่เคยเชื่อมต่อกับอินเทอร์เน็ต:

  • ลบหรือปิดใช้งานฮาร์ดแวร์เครือข่ายทั้งหมด หากเป็นไปได้ให้ลบการ์ด Wi-Fi และโมดูล Bluetooth ออกทางกายภาพ อย่างน้อยให้ปิดใช้งานในเฟิร์มแวร์ BIOS/UEFI
  • ปิดใช้งานกล้องและไมโครโฟน ลบออกหรือปิดบังการเชื่อมต่อทางกายภาพ
  • ใช้แล็ปท็อปที่ไม่มีโมเด็มเซลลูลาร์
  • ตัวเลือกประหยัด: ThinkPad ที่ใช้มา (X230, T440) — ราคาถูก รองรับโดย Linux เป็นอย่างดี ง่ายต่อการแก้ไขทางกายภาพ

ตัวเลือกที่ 2: Raspberry Pi

Raspberry Pi (รุ่น 3B+ หรือ 4) เป็นคอมพิวเตอร์บอร์ดเดี่ยวราคาต่ำที่ไม่มี Wi-Fi หากคุณใช้ Pi Zero ที่ไม่มีโมดูลไร้สาย หรือหากคุณปิดใช้งานเครือข่าย:

  • บูตจาก microSD card
  • ไม่มีที่เก็บข้อมูลถาวรนอกเหนือจาก SD card (ซึ่งคุณจะทำลายต่อมา)
  • ไม่มีฮาร์ดแวร์ไร้สายหากใช้รุ่นที่ถูกต้อง
  • ราคาต่ำกว่า ($35–$75 รวมอุปกรณ์เสริม)

ตัวเลือกที่ 3: Live USB บนฮาร์ดแวร์ที่มีอยู่

บูต Live USB เฉพาะ Linux บนคอมพิวเตอร์ที่มีอยู่โดยปิดใช้งานเครือข่ายทั้งหมด:

  • สภาพแวดล้อมแบบ Live ทำงานโดยสิ้นเชิงใน RAM
  • ไม่มีข้อมูลถูกเขียนไปยังไดรฟ์ภายในหากตั้งค่าอย่างถูกต้อง
  • หลังจากปิดระบบ RAM จะถูกล้าง
  • ความเสี่ยง: คอมพิวเตอร์ที่มีอยู่อาจมีความเสี่ยงทางฮาร์ดแวร์ระดับ (เฟิร์มแวร์ rootkit, keylogger ฮาร์ดแวร์) ที่คงอยู่ในการบูต OS ครั้ง อุปกรณ์เฉพาะใช้จะขจัดความเสี่ยงนี้

การตั้งค่าระบบปฏิบัติการ

Tails OS (แนะนำ)

Tails เป็นการกระจาย Linux ที่เน้นความเป็นส่วนตัวและออกแบบมาเพื่อไม่ทิ้งร่องรอย:

  • บูตจาก USB และทำงานโดยสิ้นเชิงใน RAM
  • เครือข่ายทั้งหมดจะถูกกำหนดเส้นทางผ่าน Tor โดยค่าเริ่มต้น — แต่สำหรับการใช้งาน air-gapped คุณจะไม่เปิดใช้งานเครือข่ายเลย
  • ออกแบบมาสำหรับการใช้งาน amnesic: ไม่มีสถานะถาวรเว้นแต่ว่าตั้งค่าอย่างชัดแจ้ง
  • รวมเครื่องมือทั่วไปและสามารถเรียกใช้ Python สำหรับสคริปต์การสร้างคีย์

ขั้นตอนการตั้งค่า:

  1. ดาวน์โหลด Tails ISO บนคอมพิวเตอร์ปกติของคุณ
  2. ตรวจสอบลายเซ็น ISO โดยใช้คีย์ลงนาม Tails
  3. เขียน ISO ไปยังไดรฟ์ USB โดยใช้ Tails Installer, Etcher, หรือ dd
  4. บูตคอมพิวเตอร์ air-gapped จาก USB
  5. ที่ Tails Greeter ให้ ไม่ ตั้งค่าการเชื่อมต่อเครือข่าย
  6. ตรวจสอบว่าไม่มีอินเทอร์เฟซเครือข่ายที่ใช้งาน: ip link show ควรแสดงอินเทอร์เฟซทั้งหมด DOWN

Ubuntu Live USB (ทางเลือก)

หาก Tails ไม่เหมาะสม:

  1. ดาวน์โหลด Ubuntu ISO และตรวจสอบ checksum ของมัน
  2. เขียนไปยัง USB
  3. บูตโดยปิดใช้งานเครือข่ายใน BIOS
  4. ที่ตัวติดตั้ง Ubuntu ให้เลือก "ลอง Ubuntu" (ไม่ติดตั้ง)
  5. ตรวจสอบว่าไม่มีการเชื่อมต่อเครือข่าย

การตรวจสอบความสมบูรณ์ของ Air-Gap

หลังจากบูต ตรวจสอบ air-gap:

# ตรวจสอบว่าไม่มีอินเทอร์เฟซเครือข่ายที่ใช้งาน
ip link show

# ตรวจสอบว่าไม่มีที่อยู่ IP ที่ระบุ
ip addr show

# พยายามเข้าถึงอินเทอร์เน็ต (ควรล้มเหลว)
ping -c 1 8.8.8.8

# ตรวจสอบ Wi-Fi และ Bluetooth
rfkill list all

อินเทอร์เฟซเครือข่ายทั้งหมดควรเป็น DOWN ไม่ควรมีที่อยู่ IP ใด และ ping ควรล้มเหลว หากการทดสอบใดๆ แนะนำการเชื่อมต่อ ให้หยุดและแก้ไขปัญหาก่อนดำเนินการต่อ

กระบวนการสร้างคีย์

วิธีที่ 1: ใช้เครื่องมือ SafeSeed แบบออฟไลน์

เครื่องมือของ SafeSeed เป็นแอปพลิเคชันเว็บฝั่งไคลเอนต์ที่สามารถทำงานในเบราวเซอร์ได้โดยไม่ต้องมีการเชื่อมต่อกับอินเทอร์เน็ต

เครื่องมือ SafeSeed

ตัวสร้างวลีเมล็ด SafeSeed และ ตัวสร้างกระเป๋าเงินกระดาษ สามารถบันทึกไว้เพื่อใช้แบบออฟไลน์ได้ ก่อนที่จะออฟไลน์ ให้บันทึกหน้าเว็บที่สมบูรณ์ (Ctrl+S / Cmd+S) ถ่ายโอนไปยังคอมพิวเตอร์ air-gapped ผ่าน USB และเปิดไว้ในเบราวเซอร์ การดำเนินการเข้ารหัสทั้งหมดทำงานเฉพาะที่ใน JavaScript — ไม่จำเป็นต้องมีการสื่อสารกับเซิร์ฟเวอร์

ขั้นตอน:

  1. บนคอมพิวเตอร์ออนไลน์ปกติของคุณ ไปที่เครื่องมือ SafeSeed
  2. บันทึกหน้าเว็บที่สมบูรณ์ไปยังไดรฟ์ USB
  3. ตรวจสอบความสมบูรณ์ของไฟล์ (เปรียบเทียบ checksum หากมีอยู่)
  4. ถ่ายโอนไดรฟ์ USB ไปยังคอมพิวเตอร์ air-gapped
  5. เปิดไฟล์ HTML ที่บันทึกไว้ในเบราวเซอร์
  6. สร้างวลีเมล็ดของคุณ
  7. เขียนลงบนกระดาษ (อย่าบันทึกไว้ในรูปแบบดิจิทัลบนเครื่อง air-gapped)
  8. ตรวจสอบวลีเมล็ดโดยป้อนใหม่และยืนยันว่าสร้างที่อยู่เดียวกัน

วิธีที่ 2: ใช้เครื่องมือ BIP-39 ของ Ian Coleman

เครื่องมือ BIP-39 ของ Ian Coleman เป็นหน้า HTML เอกเทศแบบโอเพนซอร์สที่ใช้กันอย่างแพร่หลายสำหรับการสร้างคีย์แบบออฟไลน์:

  1. ดาวน์โหลดเวอร์ชันล่าสุดจาก GitHub บนคอมพิวเตอร์ออนไลน์
  2. ตรวจสอบลายเซ็น PGP
  3. ถ่ายโอนไปยังคอมพิวเตอร์ air-gapped ผ่าน USB
  4. เปิด bip39-standalone.html ในเบราวเซอร์
  5. สร้างหรือป้อน mnemonic
  6. เลือกเหรียญและเส้นทางการได้มา
  7. บันทึกวลีเมล็ดและที่อยู่

วิธีที่ 3: เอนโทรปีตามลูกเต๋า

เพื่อแสดงความไม่ไว้วางใจสูงสุดต่อ RNG ของซอฟต์แวร์ทั้งหมด ให้สร้างเอนโทรปีด้วยตนเองโดยใช้ลูกเต๋า:

  1. ใช้ลูกเต๋าระดับคาสิโน (ลูกเต๋าความแม่นยำที่มีขอบคม ไม่ใช่ลูกเต๋าผู้บริโภคแบบกลม)
  2. ทอยลูกเต๋าเพียงลูกเดียว 99 ครั้งสำหรับเอนโทรปี 256 บิต (แต่ละการทอยให้เอนโทรปี ~2.585 บิต; 99 ครั้งให้เอนโทรปี ~255.9 บิต)
  3. แปลงการทอยลูกเต๋าเป็นสตริงไบนารี
  4. ใช้เครื่องมือ BIP-39 (แบบออฟไลน์) เพื่อแปลงเอนโทรปีไบนารีเป็น mnemonic
  5. หรือทอยลูกเต๋า 50 ครั้งเพื่อให้ได้เอนโทรปี 128 บิต (วลี 12 คำ)

วิธีแปลงลูกเต๋า:

  • วิธี base-6: บันทึกการทอยลูกเต๋าแต่ละครั้ง (1-6) แปลงลำดับเป็นไบนารี
  • วิธีลูกเต๋าไบนารี: ใช้เหรียญ (หัว=1, ก้อย=0) 256 ครั้ง
  • ลูกเต๋าเป็นไบนารี: ทอยลูกเต๋า; หาก 1-3 ให้บันทึก 0; หาก 4-6 ให้บันทึก 1 ทำซ้ำ 256 ครั้ง

วิธีที่สามจะสูญเสียเอนโทรปีมากที่สุด แต่ง่ายที่สุด สำหรับการอภิปรายโดยละเอียดเกี่ยวกับคุณภาพเอนโทรปี โปรดดูคู่มือเอนโทรปีและความสุ่มเสมอของเรา

วิธีที่ 4: บรรทัดคำสั่ง (Python)

สำหรับผู้ใช้ที่สะดวกสบายกับบรรทัดคำสั่ง สคริปต์ Python ขั้นต่ำสามารถสร้าง mnemonics ของ BIP-39:

import hashlib
import os

# ต้องโหลดรายชื่อคำ BIP-39 จากไฟล์
with open('english.txt', 'r') as f:
wordlist = [w.strip() for w in f.readlines()]

# สร้างเอนโทรปี 256 บิต
entropy = os.urandom(32) # ใช้ CSPRNG ของระบบปฏิบัติการ

# คำนวณ checksum
h = hashlib.sha256(entropy).digest()
checksum_bits = bin(h[0])[2:].zfill(8) # 8 บิตแรกสำหรับเอนโทรปี 256 บิต

# แปลงเอนโทรปีเป็นสตริงไบนารี
entropy_bits = bin(int.from_bytes(entropy, 'big'))[2:].zfill(256)
all_bits = entropy_bits + checksum_bits

# แบ่งออกเป็นกลุ่ม 11 บิตและแมปกับคำ
words = []
for i in range(0, len(all_bits), 11):
index = int(all_bits[i:i+11], 2)
words.append(wordlist[index])

print(' '.join(words))

ที่สำคัญ: นี่คือตัวอย่างแบบง่ายเพื่อวัตถุประสงค์ของการศึกษา สำหรับการใช้งานจริง ให้ใช้ไลบรารีที่ได้รับการตรวจสอบอย่างชัดแจ้งเช่น mnemonic จาก python-mnemonic

การตรวจสอบ

หลังจากสร้างวลีเมล็ด ให้ตรวจสอบก่อนที่จะวางใจกับเงิน:

1. การตรวจสอบ Checksum

ป้อนวลีเมล็ดกลับเข้าไปในเครื่องมือการสร้าง หากเครื่องมือยอมรับโดยไม่มีข้อผิดพลาด checksum จะถูกต้อง

2. การตรวจสอบที่ได้มาของที่อยู่

ได้มาที่อยู่แรกๆ สำหรับสกุลเงินดิจิทัลที่ตั้งใจและเส้นทางการได้มา บันทึกที่อยู่เหล่านี้ ต่อมา บนอุปกรณ์อื่น (หรือหลังจากเริ่มเซิร์ฟเวอร์เครื่อง air-gapped ใหม่) ให้ป้อนวลีเมล็ดใหม่และตรวจสอบว่าสร้างที่อยู่เดียวกัน

3. การตรวจสอบเครื่องมือข้าม

หากเป็นไปได้ ให้ตรวจสอบวลีเมล็ดในเครื่องมือสองชุด (เช่น ตัวสร้างตัวสร้าง SafeSeed และเครื่องมือ Ian Coleman) ทั้งสองควรสร้างที่อยู่เดียวกันจากวลีเมล็ดเดียวกัน เส้นทางการได้มา และวลีรหัสผ่าน

4. การทดสอบธุรกรรมขนาดเล็ก

ก่อนเก็บรักษามูลค่าที่มีนัยสำคัญ:

  1. ส่งสกุลเงินดิจิทัลจำนวนเล็กน้อยไปยังที่อยู่การรับครั้งแรก
  2. บนอุปกรณ์อื่น ให้คืนค่ากระเป๋าเงินจากวลีเมล็ด
  3. ตรวจสอบว่าเห็นเงินและสามารถลงนามธุรกรรมเพื่อส่งคืนได้

สิ่งนี้ยืนยันโซ่ทั้งหมด: การสร้างเอนโทรปี การเข้ารหัส mnemonic การได้มาของเมล็ด การได้มาของคีย์ และการสร้างที่อยู่ทั้งหมดถูกต้อง

บันทึกวลีเมล็ด

กระดาษ

  • เขียนให้ชัดเจนด้วยปากกาหมึกถาวรบนกระดาษปราศจากกรด
  • นับแต่ละคำ (1-24)
  • อย่าเขียนบนพื้นผิวที่อาจเหลือร่องรอย (อย่าเขียนบนแผ่นกระดาษที่แผ่นด้านล่างแสดงร่องรอย)
  • เก็บไว้ในภาชนะที่ทนไฟและกันน้ำ

โลหะ

  • ตราหรือแกะสลักบนแผ่นเหล็กกล้าไร้สนิม
  • ทดสอบด้วยตัวย่อ 4 ตัวอักษรแรก หากพื้นที่จำกัด
  • ตรวจสอบความสามารถในการอ่านได้ทันทีหลังจากตราแสตมป์
  • โลหะทนต่อไฟและน้ำท่วม — แนะนำสำหรับการเก็บรักษาระยะยาว

สิ่งที่ไม่ควรทำ

  • อย่าถ่ายภาพวลีเมล็ด
  • อย่าพิมพ์ลงในไฟล์ใดๆ บนเครื่อง air-gapped
  • อย่าพิมพ์ (เครื่องพิมพ์มีหน่วยความจำและความสามารถในการเชื่อมต่อเครือข่าย)
  • อย่าบันทึกลงในไดรฟ์ USB

การล้างข้อมูลแบบปลอดภัย

หลังจากสร้างและบันทึกวลีเมล็ดของคุณ ให้ขจัดสิ่งร่องรอยทั้งหมดจากอุปก