การสร้างคีย์แบบออฟไลน์: คู่มือความปลอดภัยแบบ 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 สำหรับสคริปต์การสร้างคีย์
ขั้นตอนการตั้งค่า:
- ดาวน์โหลด Tails ISO บนคอมพิวเตอร์ปกติของคุณ
- ตรวจสอบลายเซ็น ISO โดยใช้คีย์ลงนาม Tails
- เขียน ISO ไปยังไดรฟ์ USB โดยใช้ Tails Installer, Etcher, หรือ
dd - บูตคอมพิวเตอร์ air-gapped จาก USB
- ที่ Tails Greeter ให้ ไม่ ตั้งค่าการเชื่อมต่อเครือข่าย
- ตรวจสอบว่าไม่มีอินเทอร์เฟซเครือข่ายที่ใช้งาน:
ip link showควรแสดงอินเทอร์เฟซทั้งหมด DOWN
Ubuntu Live USB (ทางเลือก)
หาก Tails ไม่เหมาะสม:
- ดาวน์โหลด Ubuntu ISO และตรวจสอบ checksum ของมัน
- เขียนไปยัง USB
- บูตโดยปิดใช้งานเครือข่ายใน BIOS
- ที่ตัวติดตั้ง Ubuntu ให้เลือก "ลอง Ubuntu" (ไม่ติดตั้ง)
- ตรวจสอบว่าไม่มีการเชื่อมต่อเครือข่าย
การตรวจสอบความสมบูรณ์ของ 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 และ ตัวสร้างกระเป๋าเงินกระดาษ สามารถบันทึกไว้เพื่อใช้แบบออฟไลน์ได้ ก่อนที่จะออฟไลน์ ให้บันทึกหน้าเว็บที่สมบูรณ์ (Ctrl+S / Cmd+S) ถ่ายโอนไปยังคอมพิวเตอร์ air-gapped ผ่าน USB และเปิดไว้ในเบราวเซอร์ การดำเนินการเข้ารหัสทั้งหมดทำงานเฉพาะที่ใน JavaScript — ไม่จำเป็นต้องมีการสื่อสารกับเซิร์ฟเวอร์
ขั้นตอน:
- บนคอมพิวเตอร์ออนไลน์ปกติของคุณ ไปที่เครื่องมือ SafeSeed
- บันทึกหน้าเว็บที่สมบูรณ์ไปยังไดรฟ์ USB
- ตรวจสอบความสมบูรณ์ของไฟล์ (เปรียบเทียบ checksum หากมีอยู่)
- ถ่ายโอนไดรฟ์ USB ไปยังคอมพิวเตอร์ air-gapped
- เปิดไฟล์ HTML ที่บันทึกไว้ในเบราวเซอร์
- สร้างวลีเมล็ดของคุณ
- เขียนลงบนกระดาษ (อย่าบันทึกไว้ในรูปแบบดิจิทัลบนเครื่อง air-gapped)
- ตรวจสอบวลีเมล็ดโดยป้อนใหม่และยืนยันว่าสร้างที่อยู่เดียวกัน
วิธีที่ 2: ใช้เครื่องมือ BIP-39 ของ Ian Coleman
เครื่องมือ BIP-39 ของ Ian Coleman เป็นหน้า HTML เอกเทศแบบโอเพนซอร์สที่ใช้กันอย่างแพร่หลายสำหรับการสร้างคีย์แบบออฟไลน์:
- ดาวน์โหลดเวอร์ชันล่าสุดจาก GitHub บนคอมพิวเตอร์ออนไลน์
- ตรวจสอบลายเซ็น PGP
- ถ่ายโอนไปยังคอมพิวเตอร์ air-gapped ผ่าน USB
- เปิด
bip39-standalone.htmlในเบราวเซอร์ - สร้างหรือป้อน mnemonic
- เลือกเหรียญและเส้นทางการได้มา
- บันทึกวลีเมล็ดและที่อยู่
วิธีที่ 3: เอนโทรปีตามลูกเต๋า
เพื่อแสดงความไม่ไว้วางใจสูงสุดต่อ RNG ของซอฟต์แวร์ทั้งหมด ให้สร้างเอนโทรปีด้วยตนเองโดยใช้ลูกเต๋า:
- ใช้ลูกเต๋าระดับคาสิโน (ลูกเต๋าความแม่นยำที่มีขอบคม ไม่ใช่ลูกเต๋าผู้บริโภคแบบกลม)
- ทอยลูกเต๋าเพียงลูกเดียว 99 ครั้งสำหรับเอนโทรปี 256 บิต (แต่ละการทอยให้เอนโทรปี ~2.585 บิต; 99 ครั้งให้เอนโทรปี ~255.9 บิต)
- แปลงการทอยลูกเต๋าเป็นสตริงไบนารี
- ใช้เครื่องมือ BIP-39 (แบบออฟไลน์) เพื่อแปลงเอนโทรปีไบนารีเป็น mnemonic
- หรือทอยลูกเต๋า 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. การทดสอบธุรกรรมขนาดเล็ก
ก่อนเก็บรักษามูลค่าที่มีนัยสำคัญ:
- ส่งสกุลเงินดิจิทัลจำนวนเล็กน้อยไปยังที่อยู่การรับครั้งแรก
- บนอุปกรณ์อื่น ให้คืนค่ากระเป๋าเงินจากวลีเมล็ด
- ตรวจสอบว่าเห็นเงินและสามารถลงนามธุรกรรมเพื่อส่งคืนได้
สิ่งนี้ยืนยันโซ่ทั้งหมด: การสร้างเอนโทรปี การเข้ารหัส mnemonic การได้มาของเมล็ด การได้มาของคีย์ และการสร้างที่อยู่ทั้งหมดถูกต้อง
บันทึกวลีเมล็ด
กระดาษ
- เขียนให้ชัดเจนด้วยปากกาหมึกถาวรบนกระดาษปราศจากกรด
- นับแต่ละคำ (1-24)
- อย่าเขียนบนพื้นผิวที่อาจเหลือร่องรอย (อย่าเขียนบนแผ่นกระดาษที่แผ่นด้านล่างแสดงร่องรอย)
- เก็บไว้ในภาชนะที่ทนไฟและกันน้ำ
โลหะ
- ตราหรือแกะสลักบนแผ่นเหล็กกล้าไร้สนิม
- ทดสอบด้วยตัวย่อ 4 ตัวอักษรแรก หากพื้นที่จำกัด
- ตรวจสอบความสามารถในการอ่านได้ทันทีหลังจากตราแสตมป์
- โลหะทนต่อไฟและน้ำท่วม — แนะนำสำหรับการเก็บรักษาระยะยาว
สิ่งที่ไม่ควรทำ
- อย่าถ่ายภาพวลีเมล็ด
- อย่าพิมพ์ลงในไฟล์ใดๆ บนเครื่อง air-gapped
- อย่าพิมพ์ (เครื่องพิมพ์มีหน่วยความจำและความสามารถในการเชื่อมต่อเครือข่าย)
- อย่าบันทึกลงในไดรฟ์ USB
การล้างข้อมูลแบบปลอดภัย
หลังจากสร้างและบันทึกวลีเมล็ดของคุณ ให้ขจัดสิ่งร่องรอยทั้งหมดจากอุปก