ประวัติย่อของการเข้ารหัส
ในความหมายที่ง่ายที่สุดการเข้ารหัสเป็นกระบวนการปลอมเนื้อหาที่แท้จริงของข้อความในลักษณะที่ผู้ส่งและผู้รับเท่านั้นที่สามารถถอดรหัสได้ บุคคลเหล่านั้นใช้อุปกรณ์บางประเภทเพื่อทำการเข้ารหัสและถอดรหัส อุปกรณ์เหล่านี้มีหลายรูปแบบ แต่โดยทั่วไปจะเรียกว่ากุญแจ คำวิทยาการเข้ารหัสลับที่เกิดจากคำภาษากรีกสองคำหมายถึงการซ่อนและการเขียน ตัวอย่างแรกของสิ่งที่ดูเหมือนว่าเป็นการใช้วิทยาการเข้ารหัสลับถูกค้นพบในปี 1900 ในหลุมฝังศพของราชอาณาจักรเก่าของอียิปต์ (2686–2181 ก่อนคริสตศักราช) แม้ว่านักประวัติศาสตร์บางคนโต้แย้งว่าอักษรอียิปต์โบราณที่ค้นพบควรตีความว่าเป็นการเข้ารหัส ตัวอย่างที่เป็นรูปธรรมมากขึ้นจะเห็นได้ในสูตรดินเหนียวที่เข้ารหัสจาก Mesopotamia ประมาณ 1500 BCE.
ในยุคปัจจุบันการเข้ารหัสส่วนใหญ่ถูกใช้โดยรัฐบาลและนักแสดงรายใหญ่อื่น ๆ เท่านั้น จนกระทั่งทศวรรษ 1970 การเข้ารหัสสมัยใหม่ไม่พร้อมให้สาธารณชนทั่วไปใช้งานได้ รัฐบาลสหรัฐฯกลัวว่าจะจัดให้มีการเข้ารหัสเป็นอุปกรณ์เสริมทางทหารและทำให้การส่งออกนอกประเทศผิดกฎหมาย สิ่งนี้พิสูจน์ได้ว่าแทบจะเป็นไปไม่ได้ที่จะบังคับใช้ดังนั้นข้อ จำกัด ต่างๆก็ผ่อนคลายลงในปี 1990 แต่สหรัฐอเมริกายังคงมีข้อ จำกัด ในการเข้ารหัสการส่งออกจำนวนมากมากกว่า 64 บิต คำว่าบิตหมายถึงขนาดของคีย์ที่ใช้สำหรับการเข้ารหัส มีมากขึ้นเกี่ยวกับพยานที่สำคัญและพื้นที่ว่างที่สำคัญในภายหลังในบทความนี้.
หนึ่งในปัญหาที่ใหญ่ที่สุดที่ทำให้เกิดการใช้การเข้ารหัสแบบกว้างคือปัญหาของการแลกเปลี่ยนกุญแจ เพื่อให้ทั้งสองฝ่ายแลกเปลี่ยนข้อความเข้ารหัสลับพวกเขาทั้งสองจะต้องมีการครอบครองกุญแจหรือกุญแจ เนื่องจากใครก็ตามที่ครอบครองกุญแจสามารถถอดรหัสข้อความได้การโอนคีย์จึงมีความปลอดภัย มักจะผ่านการประชุมแบบตัวต่อตัวเพื่อให้แน่ใจว่าคีย์เหล่านั้นไม่ถูกบุกรุก เพื่อให้การเข้ารหัสสามารถใช้งานได้โดยบุคคลทั่วไปและเห็นการใช้อย่างแพร่หลายต้องมีวิธีการแลกเปลี่ยนการสื่อสารที่เข้ารหัสลับระหว่างผู้ที่ไม่เคยพบกันมาก่อนและในความเป็นจริงอาจไม่ทราบถึงการมีอยู่ของกันและกัน.
กระบวนการนี้มีอยู่ในปัจจุบันและเป็นส่วนหนึ่งของการเข้ารหัสคีย์สาธารณะ การเข้ารหัสคีย์สาธารณะเกี่ยวข้องกับสองคีย์: ไพรเวตคีย์ที่สามารถใช้เพื่อเข้ารหัสถอดรหัสและเซ็นชื่อแบบดิจิทัลไฟล์และคีย์สาธารณะที่สามารถใช้เข้ารหัสและตรวจสอบลายเซ็นดิจิทัล ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในส่วนของปุ่ม Symmetric และ Asymmetric.
แนวคิดของการเข้ารหัสแบบ ‘ไม่เป็นความลับ’ ได้เกิดขึ้นที่ GCHQ ในสหราชอาณาจักรในปี 1970 และส่งผ่านไปยัง NSA ในเวลานั้น ทั้งสององค์กรไม่สามารถพัฒนาได้เพียงพอสำหรับการใช้งานจริงดังนั้นมันจึงหยุดทำงานชั่วคราวและมันไม่ได้เกิดขึ้นจนกระทั่งปี 1976 ที่ Whitfield Diffie และ Martin Hellman ที่ MIT ได้คิดค้นวิธีการปฏิบัติของข้อตกลงที่สำคัญซึ่งทำให้การเข้ารหัสกุญแจสาธารณะเป็นจริง มาถึงตอนนี้อินเทอร์เน็ตได้รับการพัฒนามากพอที่จะแบ่งปันไฟล์และนั่นก็เป็นวิธีการหลักในการแจกจ่ายกุญแจสาธารณะ.
ปุ่ม Symmetric และ Asymmetric
ต้องใช้คีย์อย่างน้อยสองครั้งในการสนทนาที่เข้ารหัสใด ๆ คีย์จะต้องใช้ในการเข้ารหัสการสนทนาโดยผู้ส่งและต้องใช้รหัสที่ปลายอีกด้านเพื่อถอดรหัสการสนทนา ก่อนการถือกำเนิดของการเข้ารหัสคีย์สาธารณะกุญแจที่ใช้ในการเข้ารหัสและถอดรหัสเหมือนกัน พวกเขาสมมาตร นี่เป็นปัญหาที่ฉันพูดถึงก่อนหน้านี้ เพื่อให้ทั้งสองฝ่ายแลกเปลี่ยนการสื่อสารที่เข้ารหัสพวกเขาต้องแลกเปลี่ยนคีย์นั้นในอดีตผ่านวิธีการรักษาความปลอดภัยบางอย่างที่ทำให้คนอื่นไม่ได้คัดลอก นี่เป็นอุปสรรค์ที่ยิ่งใหญ่ที่จะเอาชนะและมันก็มีส่วนทำให้ประชาชนทั่วไปขาดการยอมรับ.
การเข้ารหัสคีย์สาธารณะแก้ไขปัญหานี้ได้ด้วยการใช้คีย์อสมมาตร ขณะนี้ผู้ใช้สร้างสองปุ่มไม่ใช่หนึ่งปุ่ม รหัสส่วนตัวซึ่งจำเป็นต้องเก็บเป็นความลับและไม่เคยแบ่งปันและรหัสสาธารณะซึ่งทุกคนสามารถเห็นและแบ่งปันได้ ผู้ส่งสามารถเข้ารหัสข้อมูลโดยใช้รหัสสาธารณะที่มีอยู่อย่างกว้างขวางของผู้รับ ข้อมูลสามารถถอดรหัสได้โดยกุญแจส่วนตัวของผู้รับเท่านั้น ในทางกลับกันหากผู้รับต้องการตอบกลับรหัสสาธารณะของผู้ส่งจะถูกใช้เพื่อเข้ารหัสการตอบกลับเพื่อให้แน่ใจว่ามีเพียงพวกเขาเท่านั้นที่สามารถถอดรหัสได้ ในลักษณะนี้บทบาทของผู้ส่งและผู้รับเปลี่ยนไปในทุกบทสนทนา แม้ว่าสิ่งนี้อาจดูซับซ้อน แต่มีโครงสร้างพื้นฐานทั้งหมดชื่อ aptly Public Key Infrastructure (PKI) ที่ทำให้การดึงกุญแจสาธารณะและการใช้คีย์ส่วนตัวง่ายมาก ฉันพูดถึงว่าในส่วนการใช้งานปัจจุบันของบทความนี้.
ด้วยคำอธิบายนี้คุณอาจสงสัยว่าทำไมทุกคนจะใช้การเข้ารหัสแบบ Symmetric อีกต่อไป เหตุผลหลักคือมันเร็วกว่าในการเข้ารหัสและถอดรหัส หากคุณเพิ่งส่งเอกสารหรืออีเมลไม่กี่หน้าก็ไม่มีความแตกต่างที่สังเกตได้ แต่ถ้าคุณเข้ารหัสข้อมูลเป็นกิกะไบต์หรือเทราไบต์บนฮาร์ดไดรฟ์มันสามารถสร้างความแตกต่างได้อย่างมาก การเข้ารหัสแบบสมมาตรนั้นยังถือว่าแข็งแกร่งกว่าการเข้ารหัสแบบอสมมาตร แต่ทั้งคู่ก็ยากพอที่จะทำให้ไม่เป็นปัญหาสำหรับคนส่วนใหญ่.
พื้นที่กุญแจและความยาวกุญแจ
คีย์ทั้งหมดไม่ได้สร้างขึ้นอย่างเท่าเทียมกัน คีย์ถูกสร้างขึ้นด้วยจำนวนบิตที่กำหนดความยาวของคีย์และพื้นที่คีย์.
ความยาวของคีย์หมายถึงจำนวนบิตที่ใช้ในการสร้างคีย์ พื้นที่ที่สำคัญคือกลุ่มของคีย์ที่อาจเข้ารหัส ciphertext กุญแจยิ่งมีขนาดใหญ่เท่าใดก็จะยิ่งมีช่องว่างของคีย์มากขึ้นเท่านั้น ตัวอย่างเช่นถ้าฉันบอกคุณว่าฉันกำลังคิดเลขสามหลักในที่สุดคุณก็จะสามารถหาตัวเลขที่ฉันกำลังคิดได้เพราะมีตัวเลขสามหลักเพียง 900 ตัวในระบบหมายเลขของเรา (999 – 99 = 900) ในกรณีนี้พื้นที่สำคัญคือ 900 ในการเข้ารหัสพื้นที่สำคัญจะแสดงดังนี้:
2n
…โดยที่ n เท่ากับจำนวนบิตที่ใช้สร้างคีย์
พื้นหลัง:
- keylength = จำนวนบิตที่ใช้สร้างคีย์ ยังเรียกว่าขนาดที่สำคัญหรือเป็นพยาน คีย์ยิ่งยาวยิ่งคีย์พื้นที่ใหญ่ขึ้น.
- keyspace = จำนวนของคีย์ที่เป็นไปได้
จำนวนนั้นเพิ่มขึ้นอย่างมากโดยมีจำนวนการทำซ้ำน้อยมาก ตัวอย่างเช่นคีย์ 40 บิตแบบโบราณและหักได้ง่ายมีช่องว่างของคีย์ที่เป็นไปได้ 1,099,511,627,776 คีย์ ปุ่ม 2048 บิตและใหญ่กว่าของวันนี้ถือว่าไม่สามารถบังคับกำลังดุร้ายได้ในเวลานี้.
เดรัจฉานบังคับให้ข้อความที่เข้ารหัสจะแตกต่างจากเดรัจฉานบังคับให้เข้าสู่ระบบเว็บไซต์ ในกรณีหลังการโจมตีใช้รูปแบบของการพยายามรวมชื่อผู้ใช้และรหัสผ่านจำนวนมากโดยหวังว่าจะสะดุดคู่ที่ถูกต้อง ในการเข้ารหัสลับเดรัจฉานบังคับให้ข้อความที่เข้ารหัสหมายถึงการลองคีย์ทั้งหมดในพื้นที่คีย์ที่กำหนดโดยรู้ว่าหนึ่งในนั้นถูกต้อง.
พื้นหลัง:
ข้อมูลที่เข้ารหัสถูกอ้างถึงเป็น ciphertext และข้อความที่ถอดรหัสได้ถูกอ้างถึงว่าเป็นข้อความธรรมดา.
คำเกี่ยวกับการทำลายการเข้ารหัส
การเข้ารหัสใช้งานได้ มันยากที่จะทำลาย มีเหตุผลที่รัฐบาลกำลังออกกฎหมายเพื่อบังคับให้ผู้คนปลดล็อคโทรศัพท์และเปิดเผยรหัสผ่านสื่อสังคมของพวกเขา: การเข้ารหัสที่ทันสมัยใช้พื้นที่ที่สำคัญมากจนวิธีการอื่นในการเข้าถึงสิ่งเหล่านั้นคือพยายามทำลายการเข้ารหัสซึ่งเป็น แทบจะเป็นไปไม่ได้.
Hollywood ทำลายความคิดเรื่องการป้องกันการเข้ารหัส เราเห็นความสุข Smoak และแองเจล่ามอนเตเนโกรแบ่งการเข้ารหัสของรัฐชาติประจำสัปดาห์ในรายการเช่น Arrow และ Bones ความจริงนั้นคล้ายกับ Elliot Alderson ของ Mr. Robot ที่ปฏิเสธที่จะเจาะเข้าไปในเราเตอร์ WPS ระดับผู้บริโภคที่ทุกคนสามารถซื้อได้จาก Costco เพราะมันต้องใช้เวลาหลายสัปดาห์ มัน. การเข้ารหัสใช้งานได้.
ต้องบอกว่ามีบางประการ:
การค้นพบกุญแจสู่ข้อความที่เข้ารหัสเป็นความสำเร็จที่รับประกันได้ในทางทฤษฎี ดังเช่นในตัวอย่าง 900 ของฉันมีจำนวนคีย์ที่รู้จักดังนั้นการบังคับให้ข้อความที่เข้ารหัสจึงเป็นเรื่องของการผ่านทุกคีย์ที่เป็นไปได้เพราะหนึ่งในนั้นถูกต้อง อย่างไรก็ตามเนื่องจากความยาวของคีย์ขนาดใหญ่ที่ใช้ในปัจจุบันทำให้เราขาดพลังในการคำนวณเพื่อผ่านช่องว่างขนาดใหญ่ที่มีอยู่ในกรอบเวลาที่เหมือนจริงดังนั้นการโจมตีประเภทนี้จึงไม่เป็นไปได้ มันอาจใช้เวลาหลายปีในการเข้ารหัสลับเดรัจฉานโดยใช้คีย์ที่แข็งแกร่งพอสมควร.
เนื่องจากความยากลำบากนี้ด้วยช่องว่างขนาดใหญ่ทำให้แรงเดรัจฉานไม่ค่อยถูกใช้กับการเข้ารหัส แต่อัลกอริทึมที่ใช้ในการสร้างการเข้ารหัสนั้นมีการสำรวจเพื่อค้นหาจุดอ่อนที่จะระบุข้อบกพร่อง หรือใช้การโจมตีทางคณิตศาสตร์เพื่อกำหนดและพยายามใช้คีย์ที่มีโอกาสมากขึ้น ความพยายามประเภทใด ๆ เหล่านี้พยายามลดช่องว่างที่สำคัญเพื่อให้การโจมตีแบบเดรัจฉานบังคับได้อีกครั้ง.
หากมีขนาดของความยากในการทำลายการเข้ารหัสมันจะหมุนเหมือนแฟน พลังในการคำนวณเพิ่มขึ้นทุกวันและทุกครั้งที่เพิ่มขึ้นจำนวนของปุ่มสามารถอธิบายได้ในช่วงเวลาเดียวกันซึ่งจะเพิ่มโอกาสในการประสบความสำเร็จโดยใช้วิธีการเดรัจฉาน ในทางตรงกันข้ามเมื่อพลังการประมวลผลเพิ่มขึ้นปุ่มที่ซับซ้อนและใหญ่ขึ้นสามารถสร้างขึ้นเพื่อทำการเข้ารหัสที่แข็งแกร่งขึ้นตั้งแต่แรก.
สุดท้ายอย่าลืมว่าใคร ๆ ก็สามารถโชคดีได้ เพียงเพราะมีช่องว่างสำคัญของความเป็นไปได้หลายพันล้านรายการสำหรับ ciphertext ไม่ได้หมายความว่าคุณไม่สามารถโชคดีและกดปุ่มในการลองครั้งแรก.
สามารถนำไปใช้ได้อย่างไร
การเข้ารหัสอีเมล
อีเมลไม่ใช่สื่อที่ปลอดภัยหรือเป็นส่วนตัว อินเทอร์เน็ตถูกสร้างขึ้นสำหรับผู้ใช้กลุ่มเล็ก ๆ ที่เชื่อถือได้ดังนั้นจึงไม่ได้ถูกสร้างขึ้นด้วยกลไกความปลอดภัยที่แท้จริงที่มีอยู่ในนั้น เมื่อเวลาผ่านไปเมื่ออินเทอร์เน็ตมีผู้ใช้จำนวนมากที่ไม่น่าไว้วางใจโปรโตคอลความปลอดภัยจึงถูกปิดไว้เพื่อพยายามทำให้อินเทอร์เน็ตปลอดภัย อีเมลจะไม่มีข้อยกเว้นและไม่มีการรักษาความปลอดภัยที่มีอยู่ภายใน.
ความเป็นมา: คำว่าโปรโตคอลหมายถึงชุดมาตรฐานที่ตกลงกันว่าจะทำงานอย่างไร.
การใช้อีเมลเป็นตัวอย่างมีโพรโทคอลที่กำหนดว่าเซิร์ฟเวอร์อีเมลจะทำงานอย่างไรประเภทของข้อความที่จะส่งเพื่อสร้างการเชื่อมต่อเพื่อส่งหรือรับอีเมลและรูปแบบของข้อความเอง โปรโตคอลมีความจำเป็นเนื่องจากอนุญาตให้สร้างบริการอินเทอร์เน็ตเฉพาะกิจที่จะสามารถทำงานได้อย่างถูกต้องกับส่วนอื่น ๆ ของอินเทอร์เน็ต เนื่องจากอินเทอร์เน็ตทั้งหมดขึ้นอยู่กับการติดตามโปรโตคอลเหล่านี้จึงเป็นการยากที่จะเปลี่ยนโปรโตคอลที่กำหนดไว้ นั่นคือเหตุผลที่ไม่เคยมีการเปลี่ยนแปลงระดับใหญ่ในโปรโตคอลเก่าเช่นอีเมลเพื่อความเป็นส่วนตัวที่ดีขึ้น แต่จะง่ายกว่าที่จะเปลี่ยนวิธีการส่งหรือเปลี่ยนเนื้อหาของข้อความที่ไม่จำเป็นสำหรับการจัดส่ง.
ในกรณีของอีเมลโปรโตคอลการส่งข้อมูลคือ TCP / IP แต่ปัจจุบันเซิร์ฟเวอร์อีเมลจำนวนมากสนับสนุนการเข้ารหัส TLS สิ่งนี้จะสร้างช่องทางการเข้ารหัสระหว่างเซิร์ฟเวอร์อีเมลเพื่อให้อีเมลของคุณได้รับการเข้ารหัสอย่างปลอดภัยภายในอุโมงค์นั้นในระหว่างการส่งจากเซิร์ฟเวอร์อีเมลของคุณไปยังปลายทาง อย่างไรก็ตามเมื่อมาถึงปลายทางแล้วมันจะอยู่บนเซิร์ฟเวอร์อีเมลในรูปแบบข้อความธรรมดา นอกจากนี้คุณไม่สามารถควบคุมได้มากว่าเซิร์ฟเวอร์อีเมลที่ผู้รับของคุณใช้รองรับการเชื่อมต่อที่เข้ารหัสหรือไม่ดังนั้นอีเมลของคุณสามารถเดินทางผ่านอินเทอร์เน็ตเป็นข้อความธรรมดาที่ไม่ได้เข้ารหัสได้.
การเพิ่มการเข้ารหัสไปยังอีเมลของคุณป้องกันจุดอ่อนทั้งสองนี้ อีเมลที่เข้ารหัสได้รับการคุ้มครองในระหว่างการขนส่งหรือไม่ว่าจะมีอุโมงค์ที่เข้ารหัส TLS สำรองเพื่อเดินทางผ่าน นอกจากนี้การเข้ารหัสอีเมลยังช่วยให้มั่นใจได้ว่าอีเมลที่ส่งมอบจะอยู่บนเซิร์ฟเวอร์อีเมลของผู้รับในรูปแบบการเข้ารหัสซึ่งสามารถถอดรหัสได้โดยกุญแจส่วนตัวของผู้รับเท่านั้น.
การเข้ารหัสไฟล์
การเข้ารหัสไฟล์เป็นพื้นฐานเหมือนกับอีเมล อีเมลที่เข้ารหัสเป็นกระบวนการของการเข้ารหัสอีเมลธรรมดาลงใน ciphertext รหัสสาธารณะของผู้รับถูกใช้เพื่อทำการเข้ารหัส การเข้ารหัสไฟล์ดำเนินการในกระบวนการเดียวกันกับไฟล์ใด ๆ มันเข้ารหัสไฟล์เพื่อให้สามารถถอดรหัสได้โดยกุญแจส่วนตัวที่ตรงกับกุญแจสาธารณะที่ใช้ในการเข้ารหัส หากคุณต้องการส่งไฟล์ที่เข้ารหัสไปยังบุคคลอื่นคุณต้องใช้รหัสสาธารณะของพวกเขาในการเข้ารหัส หากคุณเพิ่งเข้ารหัสไฟล์เพื่อใช้เองคุณควรใช้รหัสส่วนตัวของคุณเอง การเข้ารหัสไฟล์ถูกใช้อย่างกว้างขวางในบริการสำรองข้อมูลและบริการจัดเก็บไฟล์เพื่อให้แน่ใจว่าเนื้อหาของไฟล์ไม่สามารถอ่านได้โดยผู้อื่น ในกรณีเหล่านี้โดยทั่วไป keypair ใหม่จะถูกสร้างขึ้นโดยซอฟต์แวร์ไคลเอนต์สำรองและ keypair นั้นใช้สำหรับการเข้ารหัสดังนั้นกระบวนการจึงโปร่งใสสำหรับคุณ.
ลายเซ็นสำหรับการปฏิเสธ – ไม่ใช่
การไม่ปฏิเสธคือคำที่มีความหมายว่าบางสิ่งไม่สามารถปฏิเสธได้ ในการเข้ารหัสคำเฉพาะอ้างถึงการใช้ลายเซ็นดิจิทัลในข้อความหรือไฟล์ที่สามารถใช้เพื่อยืนยันว่ามาจากแหล่งที่อ้างว่ามาจาก.
ในการเข้ารหัสคีย์สาธารณะนั้นลายเซ็นดิจิตอลจะถูกสร้างขึ้นโดยกุญแจส่วนตัวที่เป็นความลับและผู้รับสามารถใช้กุญแจสาธารณะที่มีอยู่อย่างกว้างขวางของผู้ลงนามเพื่อยืนยันว่าลายเซ็นนั้นถูกต้อง ดังนั้นเมื่อมีคนขโมยคีย์ส่วนตัวของผู้ส่งและใช้งานลายเซ็นดิจิทัลจะเป็นตัวชี้วัดของแท้ว่าข้อความหรือไฟล์มาจากแหล่งที่อ้างสิทธิ์.
ตัวอย่างทั่วไปของการใช้ลายเซ็นต์คือในการสื่อสารทางอีเมลเพื่อให้ผู้รับทราบว่าพวกเขาสามารถเชื่อถือได้ว่าอีเมลนั้นมาจากที่กล่าวถึง ลายเซ็นยังใช้ในการลงชื่อไฟล์ในลักษณะเดียวกัน.
GnuPG เป็นแอปพลิเคชั่นกุญแจสาธารณะที่มีอยู่ทั่วไปสำหรับระบบปฏิบัติการส่วนใหญ่ ฉันไปที่บรรทัดคำสั่งและแอปพลิเคชันแบบกราฟิกเพื่อใช้ในภายหลังในบทความนี้ คำสั่งทั้งหมดเหมือนกันเมื่อใช้จากพรอมต์คำสั่งหรือเทอร์มินัลดังนั้นหากต้องการเซ็นชื่อไฟล์ให้ใช้สวิตช์ -s:
การทดสอบ gpg -s
โปรดทราบว่าไฟล์ไม่ได้เข้ารหัสอย่างไรข้อความธรรมดายังคงสามารถอ่านได้ แต่มีการเพิ่มลายเซ็นดิจิทัลในตอนท้าย.
หากคุณได้รับไฟล์ที่มีลายเซ็นคุณสามารถใช้คำสั่ง –verify เพื่อให้แน่ใจว่าไฟล์นั้นได้รับการลงนามโดยบุคคลที่อ้างว่าได้ลงนามแล้ว ผู้ส่งลงนามในไฟล์ด้วยกุญแจส่วนตัวของพวกเขาดังนั้นคุณจะต้องใช้กุญแจสาธารณะของผู้ส่งเพื่อยืนยันลายเซ็น.
ปุ่มเพิกถอน
อาจมีเวลาที่คีย์ส่วนตัวของคุณถูกขโมยถูกขโมยหรือไม่ควรใช้ด้วยเหตุผลอื่น ในกรณีนั้นมีกระบวนการในการเพิกถอนกุญแจสาธารณะที่เกี่ยวข้อง ผู้ใช้ไม่ควรใช้รหัสที่ถูกเพิกถอนเพื่อเข้ารหัสข้อความอีกต่อไป.
เพื่อป้องกันไม่ให้ใครก็ตามเพิกถอนกุญแจสาธารณะของคุณโดยพลการการเพิกถอนจะทำผ่านวิธีการรับรองที่ลงนามโดยคีย์ส่วนตัวของคุณ ใบรับรองการเพิกถอนนั้นจะถูกแบ่งปันกับที่เก็บกุญแจสาธารณะออนไลน์เพื่อแจ้งให้ผู้อื่นทราบว่าคุณได้เพิกถอนกุญแจสาธารณะของคุณแล้ว โดยปกติในเวลาเดียวกันคุณจะสร้าง keypair ใหม่และอัปโหลดพับลิกคีย์ใหม่ไปยังที่เก็บเช่นกัน ซึ่งจะช่วยให้ผู้คนรับรหัสสาธารณะใหม่ของคุณในเวลาเดียวกันพวกเขาก็ตระหนักว่าไม่ควรใช้รหัสสาธารณะเดิมของคุณอีกต่อไป.
หากต้องการเพิกถอนคีย์ใน Ubuntu ให้เลือกกุญแจแล้วเลือกปุ่มเพิกถอน เลือกเหตุผลแล้วคลิกตกลง.
บนบรรทัดคำสั่งสวิตช์ –gen-revoke จะสร้างใบรับรองการเพิกถอน:
บังคับให้เอาท์พุทหุ้มเกราะ ASCII.
—–กุญแจสาธารณะ PGP เริ่มต้น —–
ความคิดเห็น: นี่คือใบรับรองการเพิกถอน
iQEfBCABCAAJBQJEvE3GAh0CAAoJEOBF7 / 1nz5mmwOsH / jmnR4X7dbaOTv3rrRBKHFkLX7gTfo8K1AmwJiShI3Wl9yPxrqFstLcZPoW67il0K457eBWXojFUNUX5Esnqhfpqs8ryBGb8LazP / Z / 3vItl9LKAjhfqapoLlkUIPNC7uoXUIzAY7lnzee99NShADSktqtEZLsvoCeqwh6nOTlR79QWyfUNengFcZye5t3FvtqpVS6unz1leVnMXOMq5veYAu3v / TwAAvPTS / qbdf1PmrLI0 // K82eSOqO4X5XHhH8gCl6ZqKjYZQ68fhStEWWT1hrRaJZvMP + + Ve f2gZwcmqGyvO + + veqiCGXBo8eiROu1aiBbYzvc6Y21c qM8hic == JRyx
—– END PGP พับลิกคีย์บล็อก —–
สร้างใบรับรองการเพิกถอนแล้ว
โปรดย้ายไปที่สื่อที่คุณสามารถซ่อนได้ หากมัลลอรี่เข้าถึงใบรับรองนี้เขาสามารถใช้เพื่อทำให้คีย์ของคุณใช้ไม่ได้ เป็นเรื่องที่ฉลาดที่จะพิมพ์ใบรับรองนี้และเก็บไว้ในกรณีที่สื่อของคุณไม่สามารถอ่านได้ แต่มีข้อควรระวัง: ระบบการพิมพ์ของเครื่องของคุณอาจเก็บข้อมูลและทำให้ผู้อื่นสามารถใช้งานได้!
ความเป็นมา: สังเกตการใช้ชื่อมัลลอรี่ในข้อความเตือน เพื่อแสดงแนวคิดบางอย่างในการเข้ารหัสคีย์สาธารณะชื่อจริงจะถูกใช้แทนชื่อตามอำเภอใจเช่นผู้ใช้ 1 หรือผู้ใช้ 2 ชื่ออลิซและบ๊อบถูกใช้เพื่อระบุผู้ส่งและผู้รับและมัลลอรี่จะใช้เพื่อระบุผู้โจมตีที่พยายาม ขโมยข้อความเข้ารหัสลับของคุณ มีชื่อที่สร้างขึ้นอื่น ๆ ที่มีบทบาทเป็นที่รู้จักเช่นกันซึ่งสามารถทำให้อ่านน่าสนใจ.
การเซ็นกุญแจเพื่อรับความไว้วางใจ
เนื่องจากทุกคนสามารถสร้างคู่คีย์โดยใช้ข้อมูลใด ๆ ที่พวกเขาต้องการจึงง่ายต่อการปลอมแปลงคีย์ มีสองวิธีหลักที่สร้างความเชื่อมั่นในระบบนิเวศคีย์สาธารณะ ข้อแรกคือกุญแจถูกกำหนดให้กับที่อยู่อีเมล แม้ว่าฉันจะสามารถสร้างคู่คีย์สำหรับที่อยู่อีเมลใดก็ได้ในโลก แต่ในทางเทคนิคแล้วมันจะไม่ดีถ้าฉันไม่มีสิทธิ์เข้าถึงบัญชีอีเมลนั้น การตอบกลับอีเมลที่เข้ารหัสของฉันจะสิ้นสุดในบัญชีอีเมลที่ไม่สามารถเข้าถึงได้แทนที่จะส่งกลับมาหาฉัน วิธีที่สองคือการผ่านการเซ็นกุญแจ.
ผู้ใช้ PGP ใด ๆ มีความสามารถในการเซ็นกุญแจสาธารณะของผู้อื่นแบบดิจิทัล กลไกการทำเช่นนั้นอยู่ในส่วนการสร้างและการลงนามคีย์ “ในภายหลังในบทความนี้ แต่หลักฐานเป็นเรื่องง่าย เมื่อลงชื่อกุญแจสำคัญของคนอื่นแสดงว่าคุณเชื่อใจว่ากุญแจนั้นเป็นของบุคคลนั้น รหัสส่วนตัวของคุณใช้เพื่อลงนามในคีย์อื่น ๆ ซึ่งทำหน้าที่ให้คุณเป็นผู้สร้างลายเซ็นจริง.
พับลิกคีย์ที่มีลายเซ็นต์ถูกมองว่าเชื่อถือได้มากกว่าคีย์ที่ไม่มีลายเซ็น แต่ละลายเซ็นต์หมายความว่าผู้ลงนามเชื่อถือคีย์นั้นเพื่อให้ความน่าเชื่อถือว่าถูกต้องตามกฎหมาย อย่างไรก็ตามลายเซ็นมีค่าเฉพาะในกรณีที่คุณเชื่อใจผู้ลงนามเท่านั้น กุญแจที่มีลายเซ็นนับสิบจากคนที่คุณไม่รู้จักก็ไม่น่าเชื่อถือกว่ากุญแจที่ไม่มีลายเซ็นเลย.
ผู้เซ็นสัญญาหลักบางคนมีบทบาทอย่างจริงจังและจะลงนามในคีย์ของผู้อื่นหลังจากพบกันในชีวิตจริงและสร้างรหัสที่ถูกต้องเท่านั้น.
การใช้งานปัจจุบัน
ในการใช้การเข้ารหัสคีย์สาธารณะคุณจะต้องสร้างคู่คีย์ส่วนตัวและสาธารณะ เมื่อคุณมีชุดนั้นมีหลายวิธีที่จะใช้พวกเขา.
เครื่องมือ Pretty Good Privacy (PGP) พร้อมใช้งานสำหรับทุกระบบปฏิบัติการและมีการใช้งานที่หลากหลาย ฉันจะครอบคลุมการใช้งานดังกล่าวหนึ่งระบบสำหรับระบบปฏิบัติการขนาดใหญ่สามระบบ.
การสร้างและการเซ็นกุญแจ
MacOS / OSX
เยี่ยมชมเว็บไซต์เครื่องมือ GPG และดาวน์โหลด GPG Suite.
หลังการติดตั้งค้นหาแอปพลิเคชั่น GPG Keychain ใน Launchpad ของคุณและเริ่มต้น.
คลิกที่ไอคอนใหม่เพื่อสร้างคู่คีย์ส่วนตัวและสาธารณะใหม่ คีย์จะเชื่อมโยงกับที่อยู่อีเมลเสมอ.
กรอกข้อมูล โปรดทราบว่าคุณสามารถมีได้หลายปุ่มสำหรับที่อยู่อีเมลเดียว แต่ส่วนใหญ่เราไม่จำเป็นต้องใช้กุญแจจำนวนมาก เมื่อมีคนพยายามหากุญแจสาธารณะของคุณเพื่อเข้ารหัสข้อมูลที่จะส่งถึงคุณพวกเขาจะทำเช่นนั้นโดยค้นหากุญแจที่ตรงกับที่อยู่อีเมลของคุณ หากคุณมีคีย์มากกว่าหนึ่งคีย์สำหรับที่อยู่อีเมลใด ๆ รหัสดังกล่าวจะทำให้เกิดความสับสนว่าจะใช้รหัสใด.
ฉันยังไม่ได้ตรวจสอบตัวเลือกการอัพโหลดกุญแจสาธารณะเพราะฉันเพียงสร้างกุญแจทดสอบสำหรับวัตถุประสงค์ของบทความนี้ หากคุณกำลังสร้าง keypair จริงให้ใช้คุณควรทำเครื่องหมายที่ช่องนี้ มันจะอัปโหลดกุญแจสาธารณะของคุณไปยังที่เก็บคีย์อินเทอร์เน็ตโดยอัตโนมัติซึ่งเป็นวิธีที่โปรแกรมและผู้อื่นสามารถค้นพบได้เมื่อต้องการ.
แนะนำการหมดอายุของคีย์ด้วย แต่ไม่จำเป็น ความปลอดภัยมาในเลเยอร์และการหมดอายุการรับรองความถูกต้องหรือโทเค็นความปลอดภัยใด ๆ เป็นความคิดที่ดี.
การสร้างคีย์ที่ดีต้องมีการสุ่มจำนวนหนึ่ง ในสำนวนคอมพิวเตอร์นี้เรียกว่าเอนโทรปี จำนวนของเอนโทรปีที่มีในคอมพิวเตอร์เป็นปัจจัยหนึ่งที่กำหนดว่าต้องใช้เวลานานเท่าใดในการสร้างคีย์ กระบวนการสร้างคีย์ส่วนใหญ่จะขอให้คุณทำสิ่งต่าง ๆ เช่นเลื่อนเมาส์ระหว่างการสร้างคีย์เพื่อสร้างเอนโทรปีมากขึ้น.
เมื่อการสร้างเสร็จสมบูรณ์ฉันสามารถเห็นคู่กุญแจใหม่ของฉันในหน้าต่างคีย์หลัก มีบางสิ่งที่ควรทราบเกี่ยวกับรายชื่อนี้.
- รหัสทีม GPGTools ที่ติดตั้งไว้ใน GPG Keychain ของฉันเป็นกุญแจสาธารณะที่แสดงโดย pub ในคอลัมน์ Type คีย์ใหม่ของฉันเป็นคู่ที่สมบูรณ์พร้อมกับคีย์ส่วนตัวและสาธารณะซึ่งระบุโดยประเภทวินาที / ผับที่วินาทีหมายถึงปลอดภัย.
- นอกจากนี้ยังทราบคอลัมน์ความถูกต้อง นี่เป็นสิ่งเดียวกันกับปัญหาความไว้วางใจที่กล่าวถึงแล้วและระบุว่ามีแนวโน้มว่าคีย์เหล่านั้นเป็นของผู้ที่กล่าวว่าเป็นของมัน รหัสคู่ที่ฉันสร้างเชื่อถือได้อย่างสมบูรณ์สำหรับฉันเพราะฉันสร้างขึ้น รหัสทีม GPGTool ไม่น่าเชื่อถือมากเพราะยังไม่มีใครเซ็นชื่อ.
- ความถูกต้องของคีย์นั้นพิจารณาจากพื้นฐานต่อผู้ใช้ ตัวอย่างเช่นรหัสสาธารณะใหม่ของฉันจะไม่ได้รับความเชื่อถือจากบุคคลอื่น ณ จุดนี้เนื่องจากพวกเขาไม่สามารถแน่ใจได้ว่ามาจากที่ใด ดังนั้นจะไม่แสดงแถบสีเขียวสี่แถบบนระบบของผู้อื่น มันจะเป็นสองแท่งสีเหลืองที่ดีที่สุด.
หากต้องการเซ็นชื่อและเพิ่มความถูกต้องให้คลิกขวาที่ปุ่มแล้วเลือกตัวเลือกเมนูลงชื่อ.
กระบวนการนี้จะเพิ่มลายเซ็นของฉันไปที่คีย์เพื่อระบุระดับของความไว้วางใจที่ฉันมีในคีย์นี้ มีตัวเลือกอื่น ๆ ในเมนูคลิกขวาเพื่อทำสิ่งต่าง ๆ เช่นอัพโหลดกุญแจสาธารณะของคุณหากคุณไม่ได้อยู่ในระหว่างการสร้างหรือส่งอีเมลกุญแจสาธารณะของคุณให้ใครบางคน บทแนะนำโดยละเอียดเกี่ยวกับพวงกุญแจ GPG อยู่นอกขอบเขตสำหรับบทความนี้ดังนั้นตอนนี้เรามี keypair ที่ใช้งานได้บน macOS / OSX เราสามารถใช้งานได้.
Ubuntu Linux
Ubuntu มาพร้อมกับ GPG ที่ติดตั้งไว้ล่วงหน้า เพียงพิมพ์ gpg –gen-key ในหน้าต่างเทอร์มินัลจะเริ่มกระบวนการสร้างคีย์.
การสร้างคีย์จะเริ่มขึ้นและจำเป็นต้องสร้างเอนโทรปีอีกครั้ง:
คีย์ทั้งสองจะถูกสร้างขึ้นคีย์ pubic จะลงนามและเชื่อถือได้ในที่สุดและการรับรองการเพิกถอนจะถูกจัดทำขึ้นเช่นกัน.
หากต้องการดูคีย์ใหม่ของคุณให้ใช้ gpg –list-keys เพื่อดูกุญแจสาธารณะและ gpg –list-secret-keys เพื่อแสดงคีย์ส่วนตัว.
ในการเซ็นชื่อคีย์ใช้รวบรวมรหัสสาธารณะจากคีย์ที่คุณต้องการเซ็นชื่อจากนั้นใช้คำสั่ง gpg –sign-key.
GPG รู้ว่าฉันจะใช้รหัสส่วนตัวของฉัน [email protected] เพื่อลงนามในคีย์นี้เพราะมันเป็นกุญแจส่วนตัวอื่น ๆ เท่านั้นในพวงกุญแจของฉัน หากฉันมีคีย์ส่วนตัวมากขึ้นฉันจะต้องเลือกกุญแจที่ฉันต้องการใช้ในการลงชื่อ.
ในการใช้ไพรเวตคีย์สำหรับฟังก์ชั่นใด ๆ มันจะต้องปลดล็อคด้วยวลีรหัสผ่านที่ให้มาในเวลาการสร้างคีย์.
คุณสามารถดูลายเซ็นที่คีย์มีได้โดยใช้คำสั่ง gpg –list-sigs.
คำสั่ง GPG เพิ่มเติมแสดงอยู่ในไฟล์ช่วยเหลือซึ่งสามารถดูได้โดยใช้คำสั่ง gpg –help.
หากคุณต้องการอินเทอร์เฟซแบบกราฟิกบน Ubuntu มีแพคเกจส่วนหน้าหลากหลายสำหรับ GPG ซีฮอร์สมาพร้อมกับ Ubuntu แต่มีชื่อรหัสผ่านและคีย์แปลก ๆ ดังนั้นจึงไม่สามารถค้นหาได้อย่างชัดเจน.
โดยการดับเบิลคลิกที่คีย์คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับมันและเข้าถึงการกำหนดค่าลายเซ็นได้.
ตัวเลือกการตรวจสอบจะแตกต่างจาก macOS GPG Keychain เล็กน้อย แต่พื้นฐานก็เหมือนกัน คุณจะต้องระบุว่าคุณตรวจสอบคีย์ได้ดีเพียงใดและรหัสส่วนตัวใดที่คุณต้องการลงชื่อด้วย.
ของ windows
ดาวน์โหลดแอปพลิเคชัน GnuPG จากเว็บไซต์ GnuPG..
เรียกใช้โปรแกรมติดตั้งแล้วพิมพ์ gpg –gen-keys เพื่อสร้าง keypair ใหม่.
ตอนนี้คุณมีกุญแจแล้วคุณสามารถใช้มันเพื่อเข้ารหัสไฟล์และอีเมลได้.
อีเมล์
วิธีที่ง่ายในการเข้ารหัสอีเมลของคุณคือการใช้ไคลเอนต์อีเมลทั้งสนับสนุนการเข้ารหัสหรือมีส่วนเสริม Mozilla Thunderbird พร้อม Enigmail addon ทำงานได้ดีในทุกระบบปฏิบัติการ หากต้องการติดตั้ง Enigmail add on ให้ไปที่ Mozilla store และดาวน์โหลด.
หากคุณใช้เบราว์เซอร์ Firefox ระบบจะจดจำการเพิ่ม Thunderbird ไว้และแจ้งให้คุณติดตั้งโดยอัตโนมัติ.
หากระบบของคุณไม่รับรู้ว่านี่เป็นส่วนขยายของธันเดอร์เบิร์ดคุณสามารถทำตามคำแนะนำในการติดตั้งด้วยตนเองจากหน้าดาวน์โหลด.
หลังจากติดตั้ง addon และเริ่มต้น Thunderbird ใหม่ตัวช่วยสร้างการกำหนดค่าจะเริ่มขึ้น.
การติดตั้งมาตรฐานควรจะดีพอที่จะใช้งานได้.
อินิกเมลจะค้นพบการติดตั้ง OpenGPG ที่มีอยู่ของคุณและรายการคู่กุญแจที่มีอยู่ในระบบของคุณ คุณยังสามารถเลือกที่จะสร้าง keypair ใหม่ได้ในตอนนี้ แต่เราจะใช้คีย์ที่มีอยู่สำหรับบทความนี้.
เมื่อตัวช่วยสร้างการกำหนดค่าเสร็จสมบูรณ์คุณจะมีตัวเลือกการเข้ารหัสใหม่ในหน้าต่างการแต่งเพลงของคุณ.
ตอนนี้คุณสามารถเข้ารหัสหรือลงนามข้อความอีเมลโดยเลือกปุ่มที่เกี่ยวข้อง ไอคอนล็อคจะเข้ารหัสข้อความโดยใช้กุญแจสาธารณะของผู้รับ ไอคอนดินสอจะเซ็นข้อความโดยใช้รหัสส่วนตัวที่คุณตั้งค่าในการตั้งค่า Engimail.
คุณสามารถเปลี่ยนรหัสที่ใช้โดยคลิกปุ่ม เลือก ปุ่มและเลือกคีย์ที่แตกต่างจากพวงกุญแจของคุณ.
การตั้งค่า Enigmail ทั่วไปที่จะมีผลกับบัญชีทั้งหมดสามารถเข้าถึงได้โดยเลือก Enigmail การตั้งค่า … ปุ่มแล้วปุ่ม แสดงการตั้งค่าและเมนูของผู้เชี่ยวชาญ ปุ่ม.
จดบันทึก keyserver แถบ นี่เป็นรายการเซิร์ฟเวอร์ที่เก็บกุญแจสาธารณะออนไลน์ เป็นการตั้งค่านี้ที่ช่วยให้อินิกเมลสามารถดึงกุญแจสาธารณะของคนที่คุณกำลังเขียนอีเมลได้หากคุณยังไม่มี Engimail จะค้นหาเซิร์ฟเวอร์เหล่านั้นเพื่อหากุญแจสาธารณะของผู้รับและหากพบว่ามันจะทำการดาวน์โหลดมันและเพิ่มลงในพวงกุญแจของคุณ.
เมื่อคุณได้รับและเข้ารหัสอีเมลคุณจะต้องให้รหัสผ่านกุญแจส่วนตัวของคุณ นี่เป็นการปลดล็อคกุญแจส่วนตัวของคุณชั่วคราวเพื่อให้สามารถใช้ในการถอดรหัสอีเมลได้.
แม้เมื่อถอดรหัสแล้วธันเดอร์เบิร์ดจะยังคงแจ้งให้คุณทราบว่าอีเมลนั้นได้รับการถอดรหัสแล้ว.
เว็บเมล์
หลายคนใช้เว็บเมล์ในปัจจุบันแทนที่จะเป็นไคลเอนต์อีเมลเฉพาะเช่นธันเดอร์เบิร์ด ผู้ให้บริการอีเมลบางรายสนับสนุนการเข้ารหัสโดยตรงในเว็บไซต์ของพวกเขา ทั้ง Proton Mail และ Hush Mail อนุญาตให้คุณระบุคีย์ของคุณเองและใช้เพื่อเข้ารหัสและถอดรหัสอีเมล โซลูชันทั่วไปเพิ่มเติมคือ Add-on ของ Mailvelope สำหรับ Firefox และ Chrome.
Mailvelope จะกลับมามีชีวิตอีกครั้งเมื่อตรวจพบการเข้ารหัสและจะแสดงการซ้อนทับแบบโอเปร่าบนหน้า คลิกที่ภาพซ้อนทับจะแจ้งให้คุณใส่รหัสส่วนตัวของคุณ เมื่อคุณระบุแล้วอีเมลของคุณจะถูกถอดรหัส มีการสอน Mailvelope อย่างรวดเร็วในเว็บไซต์ Comparitech ที่นี่.
ข้อดีของการใช้ Mailvelope ผ่านผู้ให้บริการอีเมลโดยเฉพาะคือความยืดหยุ่น คุณสามารถใช้ Mailvelope กับผู้ให้บริการอีเมลทางเว็บใดก็ได้.
การเข้ารหัสไฟล์
ใช้สวิตช์ -e เพื่อบอก GPG ให้เข้ารหัสไฟล์:
gpg -r [email protected] – การทดสอบ
โปรดสังเกตว่าไฟล์ crypttext ที่เข้ารหัสที่ได้นั้นมีชื่อเหมือนกับไฟล์ข้อความธรรมดา แต่มีนามสกุล gpg ความพยายามที่จะอ่านมันแสดงให้เห็นว่าตอนนี้มันเป็นความหมายที่ไม่สามารถอ่านได้ซึ่งเข้ารหัส.
ไฟล์ต้นฉบับยังคงไม่เปลี่ยนแปลง หากเจตนาของคุณคือรักษาไฟล์ที่เข้ารหัสเท่านั้นคุณควรลบไฟล์ธรรมดาด้วยตนเอง อย่างไรก็ตามโปรดทราบว่าเนื่องจากคุณใช้รหัสสาธารณะของผู้รับในการเข้ารหัสไฟล์คุณจะไม่สามารถถอดรหัสได้อีก เฉพาะกุญแจส่วนตัวของผู้รับเท่านั้นที่สามารถถอดรหัสไฟล์ได้ในตอนนี้.
หากคุณมีคีย์ส่วนตัวที่ตรงกับกุญแจสาธารณะคุณสามารถใช้สวิตช์ -d เพื่อถอดรหัสไฟล์.
การทดสอบ gpg -d
เช่นการเข้ารหัสการถอดรหัสไม่ได้สร้างไฟล์ มันจะแสดงเนื้อหาของไฟล์ แต่ไม่ได้เขียนไฟล์ทดสอบธรรมดา เพื่อรักษาข้อความถอดรหัสคุณสามารถคัดลอกและวางลงในไฟล์หรือใช้ตัวดำเนินการเปลี่ยนเส้นทางบนระบบที่คล้าย Unix.