พื้นที่จัดเก็บไฟล์ขนาดใหญ่ ที่เก็บข้อมูลบนคลาวด์ MEGA

ที่เก็บข้อมูลบนคลาวด์ยังคงเป็นบริการประเภทหนึ่งในชีวิตของเรา พวกเขาประสบกับการเติบโตอย่างรวดเร็ว ประสบกับความอิ่มตัวของตลาด เมื่อ "เมฆ" ใหม่เปิดขึ้นเกือบทุกสัปดาห์ และประสบกับภาวะถดถอยเมื่อ "เมฆ" เดียวกันเหล่านี้เริ่มปิดทีละคน และตอนนี้เรากำลังเผชิญกับบริการประเภทหนึ่งที่ได้รับการยอมรับและกลายเป็นเรื่องธรรมดา ยืนหยัดผ่านการทดสอบของเวลา โดยคำนึงถึงคุณสมบัติและความเร็วของอุตสาหกรรมสมัยใหม่

มีที่เก็บข้อมูลบนคลาวด์ค่อนข้างมาก แต่ละคนมีลักษณะเฉพาะของตัวเองและผู้ชมของตัวเอง บางคนเลือก "คลาวด์" เพียงอันเดียว บางคนใช้หลายอันพร้อมกัน เราได้เลือกสิบสิ่งที่น่าสนใจที่สุดจากพวกเขา หนึ่งในเกณฑ์สำหรับการจัดอันดับสูงสุดนี้คือแผนบริการฟรีพร้อมพื้นที่คลาวด์ฟรีเพื่อให้ผู้ใช้ทุกคนสามารถทดลองใช้ได้ด้วยตนเอง ไม่มีการทดลองใช้ เป็นเพียงแผนฟรีพร้อมพื้นที่ว่าง

10.พีคลาวด์

ค่อนข้างเป็นคลาวด์ที่น่าสนใจและพัฒนาอย่างรวดเร็ว บล็อกบนคลาวด์ได้รับการอัปเดตเกือบทุกสัปดาห์ และเห็นได้ชัดว่านักพัฒนากำลังทำงานอย่างกระตือรือร้น พวกเขาให้พื้นที่ฟรี 10 GB แก่คุณ แต่เพียงทำตามขั้นตอนง่ายๆ ไม่กี่ขั้นตอนเท่านั้น คุณสามารถได้รับเพิ่มอีกสองสาม GB มีระบบการอ้างอิงที่จะช่วยให้คุณเพิ่มพื้นที่ว่างของคุณได้ สิ่งที่น่าสนใจคือ pCloud นอกเหนือจากค่าธรรมเนียมการสมัครสมาชิกรายเดือนและรายปีสำหรับคุณสมบัติขั้นสูงแล้ว ยังมีแผนการซื้อแบบครั้งเดียว คุณเพียงแค่จ่ายจำนวนหนึ่งและเพิ่มปริมาณคลาวด์ของคุณ ตลอดไป มันยากที่จะจดจำสิ่งอื่นใด เมฆทำเช่นนี้

9. เมก้า

พื้นที่เก็บข้อมูลที่เข้ารหัสจาก Kim Dotcom มีข่าวลือว่าคลาวด์ถูกพรากไปจากเขาเกี่ยวกับความผันผวนที่ไม่พึงประสงค์อื่น ๆ ในการจัดการของ MEGA แต่สิ่งนี้ไม่ได้ป้องกันที่เก็บข้อมูลบนคลาวด์จากการพัฒนาและมีอยู่ คลาวด์สร้างขึ้นจากการเข้ารหัสในระดับที่ค่อนข้างสูง เพื่อให้การทำงานกับเวอร์ชันเว็บสะดวกสบายยิ่งขึ้น ควรติดตั้งส่วนขยายเบราว์เซอร์พิเศษเพื่อให้กระบวนการถอดรหัสเร็วขึ้นมาก มีแอพพลิเคชั่นสำหรับระบบปฏิบัติการยอดนิยมทั้งหมด สิ่งสำคัญที่ดึงดูดผู้คนมากมายคือ MEGA ให้พื้นที่ 50 GB สำหรับแผนฟรี เล่มนี้เป็นเพียงจุดเริ่มต้น และยังคงเป็นเช่นนี้จนถึงทุกวันนี้

8.มีเดียไฟร์

หนึ่งในบริการที่เก่าแก่ที่สุดในบริการด้านบนนี้ ทำงานได้ดี แต่มีการพัฒนาค่อนข้างช้า ไม่มีเวอร์ชันสำหรับคอมพิวเตอร์ ดังนั้นคุณต้องใช้เวอร์ชันเว็บ แต่แอปบนอุปกรณ์เคลื่อนที่ก็ใช้ได้

MediaFire เริ่มต้นจากการเป็นบริการโฮสต์ไฟล์ แต่ในเวลาต่อมาก็ตระหนักถึงความเสื่อมถอยของบริการดังกล่าวและเปลี่ยนวัตถุประสงค์ใหม่ไปสู่ที่เก็บข้อมูลบนคลาวด์ ผู้ใช้เก่าและผู้ที่สามารถติดตามโปรโมชันได้จะมีพื้นที่ว่าง 50 GB ในขณะที่ผู้ใช้รายอื่นจะได้รับ 10 GB แต่บางครั้งก็เป็นไปได้ที่จะเพิ่มจำนวนพื้นที่ว่างฟรี

7.กล่อง

พื้นที่เก็บข้อมูลบนคลาวด์ที่ผ่านการทดสอบตามเวลาอีกครั้ง เดิมที Box มุ่งเน้นไปที่ธุรกิจ และสิ่งนี้ทำให้สามารถอยู่รอดมาได้จนถึงทุกวันนี้และมีฐานผู้ใช้ที่ภักดี พวกเขาให้พื้นที่ฟรี 10 GB และบางครั้งก็มีโปรโมชั่นเพื่อรับพื้นที่ว่าง 50 GB แต่แผนแบบฟรีมีข้อจำกัดมากมาย ข้อจำกัดเหล่านี้ทั้งหมดจะถูกลบออกหากคุณอัปเกรดเป็นการสมัครสมาชิก

6. คลาวด์เมล.รุ

Mail.Ru Cloud เปิดตัวพร้อมพื้นที่ว่าง 100 GB จากนั้นก็มีโปรโมชันที่คุณสามารถรับ 1 TB ฟรี จากนั้นปริมาณก็ลดลงอย่างมาก และบัญชีใหม่จะได้รับพื้นที่เพียงเล็กน้อย คลาวด์มีเครื่องเล่นเสียงในตัว บูรณาการกับ Office Online และยังคงได้รับคุณสมบัติใหม่และการรองรับรูปแบบใหม่ แต่ความไม่เสถียรกับระดับเสียงที่ว่างไม่อนุญาตให้มีอันดับสูงขึ้นในการจัดอันดับ

5. ยานเดกซ์ดิสก์

ที่เก็บข้อมูลบนคลาวด์จาก Yandex มีความเสถียรอย่างน่าประหลาดใจในแง่ของปริมาณ เมื่อเปิดตัวพวกเขาให้พื้นที่เก็บข้อมูลฟรี 10 GB หลายปีผ่านไปและยังคงมีพื้นที่ 10 GB แต่มีโปรโมชั่นอย่างต่อเนื่องเมื่อคุณสามารถรับวอลุ่มฟรีชั่วคราวหรือเพิ่มคลาวด์ของคุณอย่างต่อเนื่อง เพิ่มการสนับสนุนรูปแบบจำนวนมากการรวมเข้ากับ Office Online และการพัฒนาแอปพลิเคชันอย่างต่อเนื่องที่นี่

ณ สิ้นปี 2560 Disk ก็แยกตัวออกไปเช่นกัน ทุกสิ่งที่คุณอัปโหลดไปยัง Yandex.Disk จากโทรศัพท์ของคุณจะไม่ถูกนำมาพิจารณาเมื่อคำนวณปริมาณรวม เห็นได้ชัดว่านี่ไม่ใช่การส่งเสริมการขาย เนื่องจากไม่มีการกำหนดเวลา นอกจากนี้ยังไม่มีข้อจำกัดด้านขนาด ซึ่งทำให้ฟีเจอร์นี้ดีกว่า Google Photos อีกด้วย

4.ไอคลาวด์

หากคุณรักเทคโนโลยีของ Apple คุณคงเจอที่เก็บข้อมูลบนคลาวด์นี้อย่างแน่นอน แอปพลิเคชันจำนวนมากทำงานผ่านการสำรองข้อมูลและการซิงโครไนซ์เกิดขึ้น คุณยังสามารถใช้ iCloud เป็นที่จัดเก็บข้อมูลบนคลาวด์ตามปกติของคุณได้ เรามาเพิ่มชุดสำนักงานแบบเกลียวจาก Apple และแอปพลิเคชันสำหรับ Windows และเราจะได้รับที่เก็บข้อมูลบนคลาวด์ที่ดีพร้อมฐานแฟนตัวยง

แต่ถ้าคุณไม่ได้ใช้ผลิตภัณฑ์ของ Apple ที่เก็บข้อมูลบนคลาวด์อื่นๆ ในด้านบนนี้จะเป็นตัวเลือกที่ดีกว่าสำหรับคุณ เนื่องจากจะทำให้คุณมีตัวเลือกมากขึ้น

3. ดรอปบ็อกซ์

Dropbox เองถือเป็นบริการที่เริ่มต้นการเติบโตแบบ "ระเบิด" ของที่เก็บข้อมูลบนคลาวด์ Dropbox เป็นหนึ่งในบริษัทแรกๆ ที่เผยแพร่บริการประเภทนี้ และถึงแม้จะไม่ใช่ช่วงเวลาที่ดีที่สุด แต่บริการก็ยังคงพัฒนาและได้รับโอกาสใหม่ๆ ต่อไป Dropbox ให้พื้นที่ฟรีเพียง 2 GB เท่านั้น ไม่มีโปรโมชั่นใดที่เพิ่มปริมาณฟรีมาเป็นเวลานาน และข้อจำกัดของภาษีฟรีไม่อนุญาตให้ใช้คลาวด์อย่างเต็มที่ น่าเสียดายที่ Dropbox ไม่ใช่โซลูชันพื้นที่จัดเก็บข้อมูลบนคลาวด์ในอุดมคติอีกต่อไป

2.วันไดรฟ์

ที่เก็บข้อมูลบนคลาวด์จาก Microsoft มีการบูรณาการอย่างแน่นหนากับชุดสำนักงาน Office Online ซึ่งรวมเข้ากับบริการจัดเก็บข้อมูลบนคลาวด์อื่น ๆ ด้วย โดยได้รับความยินยอมจาก Microsoft โดยค่าเริ่มต้นจะรวมเข้ากับ Windows 8.1 และ Windows 10 การรองรับรูปแบบยังค่อนข้างกว้างขวาง การทำงานในระบบคลาวด์นี้ ผู้ใช้จำนวนมากสามารถละทิ้งชุดโปรแกรม Microsoft Office หรือ Microsoft Office 365 ที่มีคุณสมบัติครบถ้วนได้อย่างปลอดภัย ซึ่งมอบความสามารถขั้นสูงสำหรับงานระดับมืออาชีพเท่านั้น

เมื่อซื้อการสมัครใช้งาน Microsoft Office 365 คุณจะได้รับพื้นที่ OneDrive ขนาด 1 TB เป็นโบนัส หลายๆ คนไม่ได้ขยายปริมาณคลาวด์แบบชำระเงิน แต่เพียงซื้อการสมัครสมาชิก Office และในขณะเดียวกันก็เพิ่มพื้นที่คลาวด์ด้วย

1. Google ไดรฟ์

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

ระบบคลาวด์ถูกรวมเข้ากับชุดโปรแกรมสำนักงานระบบคลาวด์ของ Google Docs ซึ่งมีอินเทอร์เฟซที่เรียบง่ายและใช้งานง่าย ซึ่งเป็นเหตุผลว่าทำไมหลายๆ คนจึงนิยมใช้เป็นชุดโปรแกรมสำนักงานหลัก ล่าสุด แอป Google Drive และ Google Photos ได้รวมกันเป็นแอปเดียวที่เรียกว่า Google Backup & Sync มีข่าวลือเกี่ยวกับแอปพลิเคชันสำหรับ Linux แต่จนถึงขณะนี้หลายคนยังคงใช้ไคลเอนต์ที่ไม่เป็นทางการและนี่เกือบจะเป็นข้อเสียเปรียบร้ายแรงเพียงอย่างเดียวของผู้นำระดับแนวหน้าในปัจจุบัน

ฉันแน่ใจว่าผู้ใช้อินเทอร์เน็ตที่ใช้งานอยู่ทุกคนเคยได้ยินเกี่ยวกับเรื่องราวของการปิดบริการโฮสต์ไฟล์ยอดนิยม Megaupload และเหตุการณ์ร้ายของผู้สร้าง และพวกเขาก็รู้อย่างแน่นอนเกี่ยวกับโปรเจ็กต์ใหม่ของ Kim Dotcom ที่มีชื่อว่า เมก้า- เราขอเตือนคุณว่าบริการนี้เป็นการกลับชาติมาเกิดของการสร้างสรรค์ครั้งก่อนของ Kim แต่อยู่บนแพลตฟอร์มที่แตกต่างไปจากเดิมอย่างสิ้นเชิง

เมื่อสร้างมันขึ้น ข้อบกพร่องและข้อผิดพลาดทั้งหมดของ Megaupload จะถูกนำมาพิจารณา และเน้นที่ความเสถียรของบริการโฮสต์ไฟล์เป็นหลัก และไม่เพียงแต่โหลดบนเครือข่ายเท่านั้น แต่ยังรวมไปถึงการโจมตีโดยผู้ถือลิขสิทธิ์ด้วย เพื่อให้บรรลุเป้าหมายนี้ เราจึงให้ความสำคัญกับการรักษาความลับและความปลอดภัยของข้อมูลของคุณเป็นอย่างมาก ไฟล์ทั้งหมดที่คุณอัปโหลดจะถูกเข้ารหัสด้วยอัลกอริธึมพิเศษ ดังนั้นฝ่ายบริหารบริการจึงไม่ทราบเกี่ยวกับเนื้อหาในบัญชีของคุณ และด้วยเหตุนี้ จึงไม่สามารถรับผิดชอบต่อเนื้อหาดังกล่าวได้ เพื่อจุดประสงค์เดียวกัน เซิร์ฟเวอร์ Mega ตั้งอยู่ในประเทศที่แตกต่างกัน ดังนั้นหากมีปัญหากับกฎหมายในประเทศหนึ่ง สิ่งนี้จะไม่นำไปสู่การล่มสลายของบริการทั้งหมด และข้อมูลของคุณจะยังคงไม่เสียหาย

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

ในการเริ่มต้นคุณต้องลงทะเบียน ในการดำเนินการนี้ คุณจะต้องระบุชื่อ ที่อยู่อีเมล และรหัสผ่านของคุณ บริการนี้ได้รับการออกแบบมาอย่างสมบูรณ์แบบและสมบูรณ์แบบ

หลังจากการลงทะเบียนเสร็จสมบูรณ์ คุณจะได้รับลิงค์เข้าสู่ระบบไปยังที่อยู่อีเมลที่คุณให้ไว้ เมื่อคลิกที่ลิงก์ คุณจะต้องรอสองสามนาทีก่อนที่จะสร้างคีย์ลับพิเศษให้คุณ ซึ่งข้อมูลจะถูกเข้ารหัส

เราเข้าสู่ที่เก็บข้อมูลบนคลาวด์ของเรา ทุกอย่างที่นี่ชัดเจนและเรียบง่าย: แผนผังโฟลเดอร์อยู่ด้านซ้าย พื้นที่แสดงไฟล์อยู่ตรงกลาง และแถบเครื่องมืออยู่ด้านบน สามารถดาวน์โหลดไฟล์ได้โดยคลิกที่ปุ่ม อัพโหลดใหม่หรือเพียงแค่ลากไปไว้ในหน้าต่างบริการ การดาวน์โหลดรวดเร็วเป็นพิเศษ

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

ลิงก์สำหรับดาวน์โหลดไฟล์จะถูกสร้างขึ้นในหน้าต่างป๊อปอัปที่ปรากฏขึ้น
สังเกตตัวเลือกที่ด้านบนของหน้าต่างนี้ หากเปิดใช้งานเท่านั้น ลิงค์ไฟล์จากนั้นผู้รับของคุณจะไม่สามารถดาวน์โหลดไฟล์ได้โดยไม่ต้องป้อนรหัสผ่านพิเศษซึ่งคุณสามารถส่งให้เขาแยกต่างหากทางอีเมล ด้วยวิธีนี้ คุณสามารถโพสต์ลิงก์ดาวน์โหลดในที่สาธารณะ เช่น บล็อกหรือฟอรั่ม แต่อนุญาตให้ดาวน์โหลดได้เฉพาะบางคนเท่านั้น
หากมีการทำเครื่องหมายเพิ่มเติม คีย์ไฟล์จากนั้นใครๆ ก็สามารถดาวน์โหลดไฟล์ได้โดยใช้ลิงก์ที่สร้างขึ้น ช่องทำเครื่องหมาย ชื่อและ ขนาดไฟล์เพิ่มลักษณะไฟล์ที่เหมาะสม

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

ในส่วน บัญชีคุณสามารถดูพื้นที่เก็บข้อมูลของคุณเต็ม ซื้อพื้นที่เพิ่ม เปลี่ยนการตั้งค่าการถ่ายโอนข้อมูล และตัวเลือกอื่นๆ

ความประทับใจส่วนตัวบางประการ

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

ความสามารถของบริการ Mega สามารถใช้เพื่อวัตถุประสงค์ที่หลากหลาย ก่อนอื่นนี่คือการเผยแพร่ข้อมูลประเภทต่าง ๆ ซึ่งจะทำให้โจรสลัดจากทุกทวีปพอใจอย่างมาก อย่างไรก็ตาม ความเป็นไปได้ในการเข้าถึงอย่างจำกัดโดยใช้รหัสผ่านอาจเป็นประโยชน์สำหรับการขายผลงานสร้างสรรค์ของพวกเขาอย่างถูกกฎหมาย เช่น โดยนักดนตรี การแชร์โฟลเดอร์ทำให้ Mega เป็นเครื่องมือที่น่าสนใจสำหรับการจัดระเบียบงานระยะไกล และแน่นอนว่าการสำรองข้อมูลซ้ำ ๆ ที่สำคัญสำหรับคุณ

สิ่งเดียวที่ Mega ขาดหายไปในขั้นตอนนี้คือเดสก์ท็อปและไคลเอนต์มือถือสำหรับระบบปฏิบัติการที่แตกต่างกัน เมื่อพิจารณาถึงบริการที่ยังอายุน้อย อาจมีความหวังได้ว่านักพัฒนายังไม่มีเวลาและลูกค้าดังกล่าวจะปรากฏขึ้นในไม่ช้า หลังจากนี้ ฉันไม่เห็นอุปสรรคใดๆ ที่ทำให้ Mega กลายเป็นมาตรฐานใหม่สำหรับการจัดเก็บไฟล์บนคลาวด์

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

บริการแชร์ไฟล์ใหม่ MEGA จะไม่มีข้อยกเว้น อะไรที่คุณยังไม่เคยได้ยินเกี่ยวกับ MEGA เลย? MEGA คือบริการจัดเก็บไฟล์ออนไลน์รูปแบบใหม่ที่สร้างโดย Tim Dotcom นักธุรกิจชื่อดัง บริการก่อนหน้าของเขา - Megaupload.com - ปิดเนื่องจากแรงกดดันอย่างรุนแรงจากผู้ทำการแนะนำชักชวนสมาชิกรัฐสภาต่อต้านการละเมิดลิขสิทธิ์ แต่ทิมได้รับการปล่อยตัว และเขาก็หันมาใช้วิธีเดิมและสร้างบริการจัดเก็บไฟล์ใหม่สำหรับผู้ใช้ เจ๋งยิ่งขึ้นและน่าสนใจยิ่งขึ้น และแม้ว่าโครงการจะยังชื้นอยู่ แต่ก็มีอนาคตที่ชัดเจน นับตั้งแต่บริการโฮสต์ไฟล์แบบเดิม Megaupload.com มีแฟนๆ มากมาย

จากประสบการณ์อันขมขื่นของเขา Tim Dotcom ได้ข้อสรุปว่าไฟล์ทั้งหมดที่จัดเก็บและอัปโหลดไปยังบริการจะต้องได้รับการเข้ารหัส สิ่งนี้จะเพิ่มความปลอดภัยของผู้ใช้ที่ใช้ที่เก็บข้อมูลบนคลาวด์และป้องกันการ "สกัดกั้น" ข้อมูลส่วนบุคคล ในวิดีโอนี้ Kim แบ่งปันความคิดเห็นของเธอเกี่ยวกับการเข้ารหัสข้อมูลและอื่นๆ

กลับไปที่บริการโฮสต์ไฟล์ MEGA

การตรวจสอบว่าบริการได้รับการปกป้องโดยการเชื่อมต่อที่เข้ารหัสนั้นไม่ใช่เรื่องยาก หากคุณดูที่แถบที่อยู่ของเบราว์เซอร์ของคุณ (ในกรณีนี้คือเบราว์เซอร์ Google Chrome) แสดงว่าการเชื่อมต่อนั้นถูกสร้างขึ้นโดยใช้โปรโตคอล https:// ที่ปลอดภัย ตัวอักษร s หมายถึง ปลอดภัย(ปลอดภัย).

ก่อนหน้านี้ คุณลักษณะดังกล่าวถูกใช้เฉพาะกับระบบการชำระเงินและไซต์ที่คุณต้องป้อนข้อมูลการชำระเงินเท่านั้น ปัจจุบันแม้แต่เครื่องมือค้นหาเช่น Google ก็ใช้มัน

ฉันหวังว่าคุณจะสนใจแล้ว ลองลงทะเบียนกับ MEGA และดูว่ามันทำงานอย่างไรและอย่างไร

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

เป็นที่น่าสังเกตว่าบริการนี้รองรับหลายภาษา (รวมถึงภาษารัสเซีย) นี่เป็นข้อดีที่ชัดเจนของโครงการ

ในการลงทะเบียนคุณต้องไปที่เว็บไซต์ MEGA และค้นหาปุ่ม " การลงทะเบียน" สร้างบัญชีใหม่ - ระบุชื่อของคุณ (คุณสามารถสร้างชื่อเล่นใดก็ได้) อีเมลและรหัสผ่านของคุณ

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

เข้าสู่ระบบบัญชีของคุณโดยระบุอีเมลและรหัสผ่านของคุณ ตอนนี้เรามาสร้างโฟลเดอร์ใหม่กัน เราจะทำเช่นนี้เพื่อไม่ให้สับสนเพราะในอนาคตอาจมีไฟล์จำนวนมาก ค้นหาไอคอนรูปเมฆสีแดงในตัวจัดการไฟล์แล้วคลิกขวา เมนูแบบเลื่อนลงควรปรากฏขึ้น แค่นั้นแหละ.

มาตั้งชื่อโฟลเดอร์ใหม่กันเถอะ " หนังสือ- เราจะใส่ e-book ที่เราชอบไว้ที่นั่น :)

คลิกปุ่มสร้าง เราสังเกตเห็นว่ามีโฟลเดอร์ "Books" ใหม่ปรากฏในตัวจัดการไฟล์

นอกจากความจริงที่ว่าเราสามารถสร้างโฟลเดอร์ได้ เรายังสามารถลบโฟลเดอร์ที่มีอยู่ได้ นี่เป็นเรื่องง่ายที่จะทำ เราจำเป็นต้องระบุโฟลเดอร์ที่เราไม่ต้องการอีกต่อไปและโดยการคลิกขวาเลือกรายการ " จากเมนูแบบเลื่อนลง ลบ“ทุกอย่างเป็นไปตามสัญชาตญาณ

โดยทั่วไปอินเทอร์เฟซจะคล้ายกับระบบปฏิบัติการมาก ที่นี่คุณสามารถสร้างโฟลเดอร์ เปลี่ยนชื่อ ย้ายหรือคัดลอกโฟลเดอร์ได้ที่นี่ สามารถทำได้เช่นเดียวกันกับไฟล์ปกติ ลองด้วยตัวเองแล้วคุณจะคิดออกอย่างรวดเร็ว

นอกจากนี้ยังมีโฟลเดอร์พิเศษ - “ ตะกร้า- ใช่ ใช่ นี่เป็นถังรีไซเคิลเดียวกับที่ไฟล์และโฟลเดอร์ที่ถูกลบสะสมอยู่ เช่นเดียวกับในระบบปฏิบัติการ และนี่เป็นเรื่องที่ยอดเยี่ยมมากเนื่องจากคุณสามารถลบไฟล์โดยไม่ได้ตั้งใจและเสียใจอย่างขมขื่น ไฟล์จะถูกลบลงในถังรีไซเคิลทันทีและสามารถกู้คืนได้หากต้องการ ทำได้โดยใช้คำสั่งย้ายหรือคัดลอกง่ายๆ

เห็นได้ชัดว่าถังขยะสามารถถูกกวาดล้างผ่านรายการเท่านั้น” ถังขยะเปล่า- นั่นคือไฟล์ที่ถูกลบจะถูกเก็บไว้จนกว่าคุณจะลบออกทั้งหมดและไม่สามารถเพิกถอนได้

เอาล่ะ เรามาพูดนอกเรื่องกันดีกว่า ลองอัปโหลดไฟล์ไปยังโฟลเดอร์ "Books" ที่เราสร้างขึ้น สำหรับการทดสอบ คลิกที่โฟลเดอร์ "หนังสือ" ใน "แผง" ตัวจัดการไฟล์- จากนั้นคลิกที่ปุ่ม "อัปโหลดไฟล์" ซึ่งอยู่ในเมนูด้านบน

หน้าต่างการเลือกไฟล์จะปรากฏขึ้น เลือกแล้วคลิก "เปิด"

ที่ด้านล่างของหน้า คุณจะเห็นขั้นตอนการดาวน์โหลดไฟล์

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

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

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

ตอนนี้เรามาพูดถึงวิธีที่คุณสามารถรับลิงก์ไปยังไฟล์และถ่ายโอนไปยังบุคคลอื่นได้ นี่คือบริการแชร์ไฟล์

หากดูรายชื่อไฟล์จะพบว่ามีไอคอนนี้อยู่ข้างชื่อไฟล์แต่ละไฟล์ เมื่อคุณคลิก หน้าต่างจะปรากฏขึ้นเพื่อรับลิงก์ไปยังไฟล์ (“ ลิงค์»).

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

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

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

    ชื่อไฟล์- ทำเครื่องหมายในช่องหากคุณต้องการให้รวมชื่อไฟล์ไว้ในลิงก์ เช่นเดียวกับช่องทำเครื่องหมาย " ขนาดไฟล์- คุณอาจจะหรืออาจจะไม่ระบุก็ได้ ตามนี้ครับ :)

มาดูกันว่าเกิดอะไรขึ้นหากคุณระบุเฉพาะ "" และ "" + " ในพารามิเตอร์ลิงก์ คีย์ไฟล์- ตัวเลือก " ชื่อไฟล์" และ " ขนาดไฟล์» เราจะไม่ระบุ เนื่องจากไม่ได้ส่งผลกระทบใดๆ เป็นพิเศษ แต่เป็นเพียงการให้ข้อมูลเท่านั้น

จากนั้นเปิดแท็บเบราว์เซอร์ใหม่และคัดลอกข้อความของลิงก์ที่ได้รับลงในแถบที่อยู่ คุณสามารถใช้ปุ่มลัดร่วมกันได้ CTRL+วี- การรวมกันนี้มีหน้าที่วางข้อความที่คัดลอกไปยังคลิปบอร์ด ลองไปตามลิงค์และดูหน้าดาวน์โหลด หน้าได้รับการออกแบบอย่างสวยงามมาก ในบริเวณตรงกลางของหน้าเราจะเห็นข้อความนี้

อ๊ะ! ที่นี่พวกเขาถามเราบางอย่าง คีย์ถอดรหัส- เพียงรู้รหัสของไฟล์เท่านั้นคุณจึงสามารถดาวน์โหลดได้ นี่คือคีย์ที่เราเสนอให้รับในหน้าต่างเพื่อรับลิงก์

เรามาเอามันไปวางในช่องที่เขียนว่า " ป้อนคีย์ถอดรหัส- อย่าลืมทำเครื่องหมายที่ช่องถัดจากคำว่า “ ฉันยอมรับข้อกำหนดในการให้บริการของ MEGA».

กดปุ่ม " ดาวน์โหลด" และรอให้ไฟล์ดาวน์โหลด

อย่างที่คุณเห็น ความเร็วในการดาวน์โหลดไฟล์คือ 864.5 kbps ซึ่งค่อนข้างมาก

แต่คนที่ไม่ชอบเล่นสายลับควรทำอย่างไร? ในกรณีนี้ เมื่อได้รับลิงก์ไปยังไฟล์ ให้ทำเครื่องหมายในช่อง "" + " คีย์ไฟล์“และคัดลอกมัน

เพียงเท่านี้ก็สามารถแทรกลิงก์ลงในข้อความอีเมล ข้อความ ICQ และส่งไปยังบุคคลที่คุณต้องการถ่ายโอนไฟล์ไปให้ ในหน้าดาวน์โหลดไฟล์ คุณไม่จำเป็นต้องป้อนรหัสใดๆ คุณเพียงแค่ต้องยอมรับข้อกำหนดในการให้บริการและคลิกที่ “ ดาวน์โหลด».

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

ประเภทบัญชีฟรีบน MEGA ช่วยให้คุณใช้พื้นที่เก็บข้อมูลบนคลาวด์ได้ 50 GB

หากต้องการมากกว่านี้ก็จ่ายเงิน แต่เพื่อวัตถุประสงค์ส่วนตัว 50 GB เหล่านี้ก็เพียงพอแล้ว ประเภทบัญชีที่ชำระเงินก็มีข้อดีเช่นกัน ประการแรกคือความเร็วในการดาวน์โหลดที่เพิ่มขึ้น ประการที่สองจำนวนพื้นที่ในบริการที่เพิ่มขึ้นคือ 500 GB ( โปร Ⅰ), 2 เทราไบต์ ( โปร Ⅱ), 4 เทราไบต์ ( โปรⅢ).

ที่นี่บนหน้าจะแสดงเปอร์เซ็นต์ของพื้นที่เก็บข้อมูลที่ถูกครอบครอง

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

ในหน้าเดียวกัน คุณสามารถดูยอดเงินของคุณ (หากคุณใช้ประเภทบัญชีที่ชำระเงิน) และประวัติเซสชัน

ใหม่ในเวอร์ชัน 4.5 (iOS) (01.03.2019)

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

ใหม่ในเวอร์ชัน 3.6.0 (227) (Android) (28.02.2019)

  • ชื่อสำหรับกลุ่ม
  • แก้ไขข้อบกพร่องหลายประการแล้ว

ใหม่ในเวอร์ชัน 4.0.1 (Windows) (18.01.2019)

  • การออกแบบหน้าต่างหลักใหม่
  • ผู้ช่วยการตั้งค่าที่ได้รับการปรับปรุง
  • รองรับการแสดงประกาศบริการสาธารณะ
  • การแจ้งเตือนที่ทันสมัย
  • อัปเดตไลบรารีบุคคลที่สาม
  • การแก้ไขและการปรับปรุงเล็กน้อยอื่นๆ

เมก้า(การแชร์ไฟล์) คือบริการจัดเก็บข้อมูลบนคลาวด์ที่ปลอดภัยและบริการแชร์ไฟล์ที่มอบพื้นที่เก็บข้อมูลที่เชื่อถือได้ขนาด 15 GB ฟรี คุณสามารถขยายพื้นที่เก็บข้อมูลบนคลาวด์ของคุณโดยใช้บัญชี Pro แบบชำระเงินจาก 200 GB เป็น 4 TB

แตกต่างจากผู้ให้บริการพื้นที่เก็บข้อมูลบนคลาวด์รายอื่น เนื่องจาก Mega ข้อมูลของคุณได้รับการเข้ารหัสและถอดรหัสผ่านอุปกรณ์ไคลเอนต์เท่านั้น ด้วยวิธีนี้ ข้อมูลของคุณจะได้รับการปกป้องอย่างปลอดภัยและมีเพียงคุณเท่านั้นที่เข้าถึงได้ Mega เข้ารหัสเนื้อหาทั้งหมดโดยตรงในเบราว์เซอร์หรือไคลเอนต์ MEGASync โดยใช้อัลกอริทึม AES

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

ข้อดีหลักของ MEGASync

ความปลอดภัย: ข้อมูลของคุณถูกเข้ารหัสตั้งแต่ต้นทางจนถึงการจัดส่ง จะไม่มีใครสามารถสกัดกั้นพวกมันได้ระหว่างการจัดเก็บหรือเคลื่อนย้าย

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

ความเร็ว: ใช้ประโยชน์จากโครงสร้างพื้นฐานอันทรงพลังของ MEGA และความสามารถในการส่งผ่านการเชื่อมต่อที่หลากหลาย

ความเอื้ออาทร: จัดเก็บฟรีสูงสุด 50 GB เมื่อใช้ความสำเร็จ MEGA

ไคลเอนต์ MEGASync พร้อมใช้งานสำหรับคอมพิวเตอร์ที่ใช้ Windows (คาดว่าจะรองรับ Mac OS X และ Linux) และอุปกรณ์มือถือที่ใช้ iOS และ Android

หลังจากเปิดตัวบริการ MEGA ที่ค่อนข้างอื้อฉาว การสนทนาเกี่ยวกับความปลอดภัยของบริการก็เริ่มเดือดพล่านและเงียบลง ปัจจุบันการบริการดำเนินชีวิตเป็นของตัวเองและไม่มีใครทำลายมันได้ ด้วยเหตุผลบางประการ คำว่า “การเข้ารหัสที่ควบคุมโดยผู้ใช้” (UCE หรือการเข้ารหัสที่ควบคุมโดยผู้ใช้) ซึ่ง MEGA ภูมิใจนำเสนอนั้น พลาดไปจากการสนทนาทั้งหมด สิ่งที่ฉันหมายถึงโดย "พลาด" คือความจริงที่ว่าเราไม่ได้ครอบคลุมความเป็นไปได้ทั้งหมดที่กลไกการเข้ารหัสที่ทำงานใน JavaScript บนฝั่งไคลเอ็นต์มอบให้เรา

แน่นอนว่าบริการ MEGA นั้นหมายความว่าคีย์การเข้ารหัสไม่ได้ถูกจัดเก็บไว้บนเซิร์ฟเวอร์ แต่ทั้งหมด ของพวกเขาการเข้ารหัสจะดำเนินการในบริบทของเบราว์เซอร์ นอกจากนี้ หลังจากเปิดตัวบริการ มีการพูดคุยกันมากมายเกี่ยวกับความจริงที่ว่าบริการนี้ใช้อัลกอริธึมการเข้ารหัสที่อ่อนแอ และโดยทั่วไปแล้วทุกอย่างไม่ดีและเราทุกคนจะตาย และ FSB จะอ่านไฟล์ของเรา สิ่งนี้ทำให้ฉันมีแนวคิดที่จะขยายแนวคิดของ “UCE” และควบคุมการเข้ารหัสได้อย่างแท้จริง กล่าวคือ แทนที่หรือเสริมกลไกความปลอดภัยบางอย่างของบริการ

ในบทความนี้ ฉันจะแจกแจงความมหัศจรรย์บางอย่างที่เกิดขึ้นในโค้ด MEGA JavaScript ขนาด 2 เมกะไบต์ และแสดงให้เห็นว่าคุณสามารถแทนที่วิธีการบางอย่างเพื่อหยุดความกังวลและรักการเข้ารหัสได้อย่างไร เป็นผลให้เราจะได้รับบริการจัดเก็บไฟล์บนคลาวด์พร้อมการตรวจสอบสิทธิ์แบบสองปัจจัยและการเข้ารหัสฮาร์ดแวร์ของข้อมูลสำคัญ

MEGA, UCE และทั้งหมด ทั้งหมด ทั้งหมด

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

จาวาสคริปต์

ดังที่คุณอาจทราบแล้วว่าฝั่งไคลเอ็นต์ทั้งหมดของบริการนั้นใช้ JavaScript โค้ดของหน้าหลักประกอบด้วยเช็คซัม SHA-256 สำหรับสคริปต์และเพจทั้งหมดที่โหลดโดยเบราว์เซอร์ การดาวน์โหลดเกิดขึ้นดังนี้: มีการตรวจสอบเช็คซัมสำหรับไฟล์ทั้งหมดหลังจากนั้นจะรวมเป็น BLOB เดียวซึ่งมอบให้กับเบราว์เซอร์ ซอร์สโค้ดของไฟล์ js แสดงให้เห็นว่าไฟล์เหล่านี้เขียนโดยบุคคลอื่น และบางครั้งก็มีอัญมณีตลกๆ เช่น ผลที่ตามมาของการคัดลอก-วาง เงื่อนไขที่ไม่มีความหมาย และตัวแปรแปลกๆ

ในกระบวนการศึกษาซอร์สโค้ดของไซต์ ฉันยังสังเกตเห็นว่ามีการอัปเดตค่อนข้างมาก นักพัฒนากำลังแก้ไขข้อผิดพลาดเล็กน้อยและเพิ่มประสิทธิภาพโค้ดที่เขียนไว้แล้วซึ่งเป็นข่าวดี ตัวโค้ดนั้นเขียนอย่างตรงไปตรงมาและไม่มีการสร้างต้นแบบที่ไม่จำเป็น: ไซต์ใช้ตัวแปรทั่วโลกสามร้อยตัวแปรและฟังก์ชันมากกว่า 8,000 รายการ มันง่ายมากที่จะเข้าใจสถาปัตยกรรมไซต์และเปลี่ยนโค้ด

ในบรรดาเฟรมเวิร์กของบุคคลที่สาม MEGA ใช้ jQuery (คุณไม่สามารถอยู่ได้โดยปราศจากมันตอนนี้), Ext JS และ SJCL ส่วนหลังใช้คอร์เข้ารหัสลับพร้อมการเข้ารหัส AES SJCL ยังมีรูปแบบที่น่าสนใจสำหรับการจัดเก็บคีย์และอาร์เรย์ไบต์อื่นๆ แทนที่จะจัดเก็บไบต์ในอาร์เรย์ปกติ ไบต์เหล่านั้นจะถูก "บีบอัด" เป็นรูปแบบที่เรียกว่า a32 สาระสำคัญของมันคือเนื้อหาของอาร์เรย์ไบต์ใด ๆ จะถูกบรรจุเป็นตัวเลข 32 บิตและเขียนลงในอาร์เรย์ที่มีความยาวสั้นกว่า นั่นคือทุก ๆ 4 ไบต์ของอาร์เรย์จะถูกแปลงเป็น int ซ้ำ ๆ เดียว โค้ดไซต์ประกอบด้วยฟังก์ชันที่ทำการแปลงทุกชนิดในชุดชั่วคราว (อาร์เรย์ a32, สตริง, สตริง base64)

ข้อมูลสำคัญ

ก่อนที่จะไปยังคำอธิบายของกระบวนการลงทะเบียนและการรับรองความถูกต้อง ควรพิจารณาข้อมูลที่อยู่ภายใต้การเข้ารหัส ได้แก่:
  • รหัสหลักของบัญชีซึ่งถูกสร้างขึ้นแบบสุ่มในขณะที่ลงทะเบียนผู้ใช้และมีความยาว 128 บิต และโดยหลักการแล้ว ความยาวของคีย์ทั้งหมดที่ใช้สำหรับการเข้ารหัสแบบสมมาตรคือ 128 บิต
  • รหัสส่วนตัว RSA: สร้างขึ้นในขณะที่ลงทะเบียนตามการเคลื่อนไหวของเมาส์และการป้อนข้อมูลด้วยแป้นพิมพ์ ในบทความนี้ ฉันจะไม่เน้นไปที่การเข้ารหัสแบบอสมมาตร เนื่องจากมันใช้สำหรับการแชร์ไฟล์ที่ดาวน์โหลด และงานของฉันคือเปลี่ยนกระบวนการตรวจสอบสิทธิ์และการเข้ารหัสข้อมูลผู้ใช้
  • คีย์ไฟล์แต่ละไฟล์และไฟล์เอง, อัปโหลดไปยังบริการ คีย์จะถูกสร้างขึ้นแบบสุ่มเมื่อมีการโหลดไฟล์ ตัวคีย์เองจะถูกนำมาใช้เพื่อเข้ารหัสข้อมูลไฟล์ และคีย์ที่สร้างขึ้นตามแต่ละคีย์ของไฟล์และการตรวจสอบผลรวมจะใช้ในการเข้ารหัสคุณลักษณะ

ใกล้กับรหัสมากขึ้น

ตอนนี้ฉันเสนอให้วิเคราะห์กระบวนการลงทะเบียนและการรับรองความถูกต้อง ดูวิธีการสร้างคีย์หลักและวิธีการเข้ารหัส
ฉันพยายามบรรยายกระบวนการเหล่านี้บนกระดาษ และเพื่อให้คุณเข้าใจแก่นแท้ของความบ้าคลั่ง ฉันจึงถ่ายภาพนี้ด้วย:

การลงทะเบียนผู้ใช้ใหม่

กระบวนการลงทะเบียนนั้นค่อนข้างสับสน หลังจากที่ผู้ใช้กรอกแบบสอบถามแล้ว จะมีการเรียกใช้ฟังก์ชันมากมาย แต่เราสนใจฟังก์ชัน api_createuser:

// การสร้างผู้ใช้ใหม่และฟังก์ชันคีย์หลักของเขา api_createuser(ctx, allowancecode, ชื่อเชิญ, เอ่อ) ( var i; var ssc = Array(4); // การท้าทายตนเองของเซสชัน จะถูกนำมาใช้เพื่อยืนยันรหัสผ่าน var req, res; if (!ctx.passwordkey) ( ctx.passwordkey = Array(4); for (i = 4; i--;) ctx.passwordkey[i] = rand(0x100000000); ) if (!u_k) api_create_u_k(); // การสร้างคีย์หลักแบบสุ่ม u_k สำหรับ (i = 4; i--;) ssc[i] = rand(0x100000000); // การสร้างลำดับการรับรองความถูกต้องแบบสุ่มถ้า (d) console.log("api_createuser - masterkey: " + u_k + " คีย์รหัสผ่าน: " + ctx.passwordkey); // เข้ารหัสคีย์หลักในรหัสผ่านปัจจุบันและส่งไปยังเซิร์ฟเวอร์ (ฟิลด์ k) // ฟิลด์ ts เป็นการต่อข้อมูล ssc ด้วยค่าที่เข้ารหัส req = ( a: "up" , k: a32_to_base64(encrypt_key(ใหม่ sjcl.cipher.aes(ctx.passwordkey), u_k)), ts: base64urlencode(a32_to_str(ssc) + a32_to_str(encrypt_key(ใหม่ sjcl.cipher.aes(u_k)) , ssc))) ); if (รหัสเชิญ) ( req.uh = uh; req.ic = รหัสเชิญ;
req.name = ชื่อเชิญ;

  • ) ถ้า (d) console.log("รหัสการจัดเก็บ: " + req.k);
  • ssc เป็นเพียงอาร์เรย์สุ่มที่เข้ารหัสด้วยคีย์หลัก เชื่อมต่อด้วยค่าสาธารณะ และส่งไปยังเซิร์ฟเวอร์ หลังจากนั้นจะใช้เพื่อตรวจสอบความถูกต้องของคีย์หลักระหว่างการตรวจสอบความถูกต้อง
  • sjcl - ไลบรารีการเข้ารหัสที่ใช้ AES
  • rand() - การใช้งานเครื่องกำเนิดตัวเลขสุ่มเทียมในท้องถิ่นโดยยึดตาม RC4
  • encrypt_key() เป็นฟังก์ชันหลักสำคัญของการเข้ารหัสแบบสมมาตรของบริการ ยอมรับวัตถุ sjcl ที่เริ่มต้นด้วยคีย์และอาร์เรย์ที่จำเป็นต้องเข้ารหัส รหัสฟังก์ชันอยู่ด้านล่างและหวังว่าจะอธิบายได้ในตัว
// เข้ารหัส/ถอดรหัส ฟังก์ชันอาร์เรย์จำนวนเต็ม 32 บิต 4 หรือ 8 องค์ประกอบ encrypt_key(cipher, a) ( if (a.length == 4) return cipher.encrypt(a); var x = ; for (var i = 0;< a.length; i += 4) x = x.concat(cipher.encrypt(, a, a, a])); return x; }
เป็นผลให้หลังจากการลงทะเบียนสิ่งต่อไปนี้จะถูกส่งไปยังเซิร์ฟเวอร์:
  • มาสเตอร์คีย์เข้ารหัสด้วยคีย์ที่ได้มาจากรหัสผ่านบัญชี
  • สตริงเช่น ssc||encrypt_AES-128(u_k, ssc)

เข้าสู่ระบบผู้ใช้

ตอนนี้คุณสามารถเข้าสู่กระบวนการตรวจสอบสิทธิ์ได้อย่างราบรื่น โดยสรุป ทำได้ดังนี้
  1. ผู้ใช้เข้าสู่ระบบ/รหัสผ่าน
  2. หากผ่านการรับรองความถูกต้องขั้นตอนแรก เซิร์ฟเวอร์จะได้รับคีย์หลักที่เข้ารหัสและลำดับการรับรองความถูกต้อง (ssc) ที่สร้างขึ้นระหว่างการลงทะเบียน
  3. คีย์หลักถูกถอดรหัสโดยใช้รหัสผ่านที่ผู้ใช้ป้อน
  4. ลำดับการรับรองความถูกต้องจะถูกถอดรหัสบนคีย์หลักและเปรียบเทียบกับค่าเปิด - ดังนั้นการตรวจสอบความถูกต้องของคีย์หลักและรหัสผ่าน
ฟังก์ชันการโทรกลับ api_getsid2 มีหน้าที่รับผิดชอบทั้งหมดข้างต้น:

// ถอดรหัสคีย์หลักหลังจากที่ผู้ใช้เข้าสู่ระบบฟังก์ชัน api_getsid2(res, ctx) ( var t, k; var r = false; if (typeof res == "object") ( // เริ่มต้น sjcl-aes ด้วยบัญชีปัจจุบัน รหัสผ่าน var aes = new sjcl.cipher.aes(ctx.passwordkey); // หากเราได้รับมาสเตอร์คีย์ในการตอบกลับของเซิร์ฟเวอร์... if (typeof res.k == "string") ( k = base64_to_a32(res. k); if (k.length == 4) ( // ... จากนั้นถอดรหัส k = decrypt_key(aes, k); // และเริ่มต้น sjcl-aes อีกครั้งโดยใช้คีย์หลัก aes = new sjcl.cipher aes( k); // หากเราได้รับ ssc จากขั้นตอนการลงทะเบียน if (typeof res.tsid == "string") ( t = base64urldecode(res.tsid); // เข้ารหัสครึ่งแรกของสตริงแล้วเปรียบเทียบกับ ค่าจากเซิร์ฟเวอร์ // หากตรงกัน - หมายความว่าการเข้าสู่ระบบและรหัสผ่านทั้งหมดตรงกัน และคุณสามารถให้ผู้ใช้เข้าไปได้ if (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16)))) == t .substr(-16)) r = ) // มีการวิเคราะห์คีย์ส่วนตัวของคู่ RSA ด้านล่างนี้ เรายังไม่สนใจในเรื่องนี้ หาก (typeof res.csid == "string") ( var t = mpi2b(base64urldecode (res.csid));< 4; i++) { var l = ((privk.charCodeAt(0) * 256 + privk.charCodeAt(1) + 7) >var privk = a32_to_str(decrypt_key(aes, base64_to_a32(res.privk)));< 16) { // TODO: check remaining padding for added early wrong password detection likelihood r = ; } } } } } ctx.result(ctx, r); }
var rsa_privk = อาร์เรย์(4);

// แยกรหัสส่วนตัวสำหรับ (var i = 0; i
> 3) + 2;

rsa_privk[i] = mpi2b(privk.substr(0, l));< a.length; j += 4) { key = ; for (i = 0; i < 4; i++) if (i + j < a.length) key[i] = a; aes.push(new sjcl.cipher.aes(key)); } for (r = 65536; r--;) for (j = 0; j < aes.length; j++) pkey = aes[j].encrypt(pkey); return pkey; }
คุณลักษณะนี้ทำให้เกิดการวิพากษ์วิจารณ์อย่างมากเนื่องจากใช้อัลกอริทึมที่ปลูกเอง ในขณะที่เขียนบทความนี้ ผู้สร้างบริการสามารถเปลี่ยนโค้ดได้เล็กน้อย แต่ฉันไม่สังเกตเห็นการเปลี่ยนแปลงที่สำคัญใดๆ สาระสำคัญของมันคือรหัสผ่านที่ส่งจะถูกเข้ารหัส 65536 ครั้งโดยใช้คีย์คงที่เพื่อให้ได้คีย์ที่แยกไม่ออกจากคีย์แบบสุ่ม เหตุใดผู้สร้างบริการจึงไม่ใช้อัลกอริธึมที่มีอยู่ (เช่น PBKDF2) ยังคงเป็นปริศนา

การอัพโหลดและการเข้ารหัสไฟล์

โดยสรุป กระบวนการทั้งหมดนี้สามารถแสดงได้ดังนี้:

ฉันขอเตือนคุณว่าการจมอยู่กับภาพนี้เป็นเวลานานเป็นอันตรายต่อสมอง ดังนั้นด้านล่างฉันจะบอกคุณว่ามันเกิดขึ้นได้อย่างไร

ดังที่ฉันได้กล่าวไปแล้วเมื่อโหลดแต่ละไฟล์จะสร้างคีย์อาเรย์แบบสุ่มของตัวเองซึ่งมีตัวเลข 32 บิต 6 ตัว สี่องค์ประกอบแรกของอาร์เรย์นี้ใช้เพื่อเข้ารหัสเนื้อหาของไฟล์และสององค์ประกอบสุดท้ายใช้เป็นค่าเริ่มต้นของตัวนับที่ใช้ในการคำนวณผลรวมตรวจสอบของไฟล์ อาร์เรย์นี้ถูกเก็บไว้ในตัวแปรโกลบอล ul_key เนื้อหาจะถูกป้อนลงในสตริงอนุกรม JSON ul_KeyNonce

การถอดรหัสนั้นเกิดขึ้นโดยใช้ Web Worker (หากเบราว์เซอร์รองรับเทคโนโลยีนี้) หรือเพียงแค่อยู่ภายในโค้ดของหน้าหลัก เมื่อไฟล์พร้อมที่จะส่ง คีย์ใหม่ filekey จะถูกสร้างขึ้นเพื่อเข้ารหัสคุณลักษณะ (ปัจจุบันเป็นเพียงชื่อไฟล์) โดยยึดตาม ul_key และเช็คซัมของไฟล์ จากนั้นคีย์นี้จะถูกเข้ารหัสด้วยคีย์หลักและส่งไปยังเซิร์ฟเวอร์พร้อมกับแอตทริบิวต์ของไฟล์ ฟังก์ชัน initupload3 และ api_completeupload2 มีหน้าที่รับผิดชอบในการดำเนินการทั้งหมดนี้ filekey ถูกสร้างขึ้นในฟังก์ชัน ul_chunkcomplete ฉันจะให้บางส่วนด้านล่างนี้

// เริ่มโหลดไฟล์: สร้างแต่ละคีย์และเริ่มต้นฟังก์ชันกลไกการเข้ารหัส initupload3() ( // ... cut =) // สร้างคีย์เดี่ยวแบบสุ่มสำหรับไฟล์ // ul_key ใช้ในโค้ดเพจ / / ul_keyNonce ถูกส่งไปยัง Web Worker และใช้ที่นั่น // เพื่อเข้ารหัสไฟล์และคำนวณผลรวมตรวจสอบ ul_key = Array(6);< t.length; i++) t[i] = ul_macs]; // внутри condenseMacs производится зашифрование // и "уплотнение" контрольной суммы файла в массив из 4х элементов var mac = condenseMacs(t,ul_key); ul_settimeout(-1); // на основе контрольной суммы и ключа файла создается ключ для шифрования атрибутов // он же в зашифрованном виде позже будет отправлен на сервер var filekey = ; // ... } // завершение загрузки файла: зашифрование атрибутов и ключа файла и отправка их на сервер function api_completeupload2(ctx, ut) { var p; if (ctx.path && ctx.path != ctx.n && (p = ctx.path.indexOf("/")) >สำหรับ (i = 6; i--;) ul_key[i] = แรนด์(0x100000000);

ul_keyNonce = JSON.stringify(ul_key);

ul_macs = ;

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

โดยสรุป กระบวนการรับคุณลักษณะของไฟล์สามารถอธิบายได้โดยอัลกอริธึมต่อไปนี้:

  1. รอให้ตัวจัดการไฟล์โหลด (loadfm_callback) ซึ่งคุณจะได้รับ JSON พร้อมคำอธิบายของไฟล์ที่ดาวน์โหลดทั้งหมด
  2. สร้างอาร์เรย์ฟาร์เรย์เพื่อใส่อาร์เรย์พร้อมข้อมูลเกี่ยวกับไฟล์
  3. เรียกใช้ฟังก์ชัน process_f_f (แบบเรียกซ้ำ) สำหรับแต่ละไฟล์
  4. สำหรับแต่ละไฟล์ที่มีคีย์ ให้ถอดรหัสคีย์และคุณลักษณะนั้น (ฟังก์ชัน crypto_processkey) และบันทึกกลับเข้าไปในอาร์เรย์ที่มีข้อมูลไฟล์
  5. หลังจากนั้นให้บันทึกค่าที่ถอดรหัสลงในตัวแปร FileStore (สิ้นสุดการเรียกซ้ำใน process_f_f)
ด้านล่างฉันจะให้ข้อความที่ตัดตอนมาจากโค้ดที่แสดงอัลกอริทึมนี้

// โทรกลับเพื่อโหลดฟังก์ชันตัวจัดการไฟล์ loadfm_callback(json, res) ( // ... // ประมวลผล JSON ด้วยข้อมูลเกี่ยวกับไฟล์ json = json; if (d) console.log(json); if (d) console. บันทึก (json); if (json.u) process_u(json.u, false); if (json.ok) process_ok(json.ok); if (json.s) ( สำหรับ (i ใน json.s) ( if ( u_sharekeys.h]) ( sharingData.push(( id: json.s[i].h + "_" + json.s[i].u, รหัสผู้ใช้: json.s[i].u, รหัสโฟลเดอร์: json . s[i].h, สิทธิ์: json.s[i].r, วันที่: json.s[i].ts )); sharednodes.h] = true; . .. // การป้อนข้อมูลเกี่ยวกับไฟล์ลงในอาร์เรย์ระดับโลกอื่น farray = new Object; farray.f = json.f; // เริ่มการประมวลผลการโทรกลับถูกประกาศไว้ด้านบน // ​​ในฟังก์ชันนี้และเพียงแก้ไขเค้าโครง process_f(fi, false , callback); fi++; ) // ฟังก์ชันแบบเรียกซ้ำซึ่งคีย์ไฟล์และคุณลักษณะถูกถอดรหัส // เรียกจากฟังก์ชัน process_f process_f_f(fid) ( // เงื่อนไขการเรียกซ้ำ - เราได้ประมวลผลไฟล์ทั้งหมดในอาร์เรย์ฟาร์เรย์แล้ว if (!farray.fi ]) ( ถ้า (farray.ap) FileStore.suspendEvents();< 2) || (f.t == 5)) { // тут идет обработка расшаренных файлов } else { // подготовка массива для записи в FileStore farray.mdata.push({ id: f.h.replace(/[^a-z^A-Z^0-9^_^-]/g, ""), name: f.name, size: f.s, type: filetype(f.name, f.t), icon: fileicon(f.name, icontype), parentid: f.p, folder: f.t, owner: f.u, date: f.ts, attrs: f.attrs, key: f.key, r: f.r, su: f.su, fa: f.fa, }); if (f.p == TrashbinID) trashbinfull = true; if (((f.t) && (farray.ap)) || (f.p == InboxID)) refreshtree = true; } farray.i++; // проверка таймаута (видимо, чтобы загрузка файл-менеджера не выглядела слишком долгой) timeoutcount++; if (!(timeoutcount & 63)) { // если у нас больше 63 файлов - дальше грузим их асинхронно setTimeout("process_f_f(" + fid + ")", 1); timeoutcount2++; } // иначе - запускаем обработку следующего файла else process_f_f(fid); } // обработка ключа файла и его атрибутов function crypto_processkey(me, master_aes, file) { var id, key, k, n; if (!file.k) { if (!keycache) return; file.k = keycache; } id = me; // do I own the file? (user key is guaranteed to be first in .k) // ключ записан в виде ":/// เขียนข้อมูลไปที่ FileStore FileStore.loadData(farray.mdata, true);< 0) pp = file.k.length; p += id.length + 1; key = file.k.substr(p, pp - p); // we have found a suitable key: decrypt! if (key.length < 46) { // short keys: AES k = base64_to_a32(key); // check for permitted key lengths (4 == folder, 8 == file) if (k.length == 4 || k.length == 8) { // ключ расшифровывается либо на мастер-ключе, либо на общем ключе шары k = decrypt_key(id == me ? master_aes: new sjcl.cipher.aes(u_sharekeys), k); } else { if (d) console.log("Received invalid key length (" + k.length + "): " + file.h); return; } } else { // long keys: RSA if (u_privk) { var t = mpi2b(base64urldecode(key)); if (t) k = str_to_a32(crypto_rsadecrypt(t, u_privk).substr(0, file.t ? 16: 32)); else { if (d) console.log("Corrupt key for node " + file.h); return; } } else { if (d) console.log("Received RSA key, but have no public key published: " + file.h); return; } } // декодируем атрибуты файла var ab = base64_to_ab(file.a); // и расшифровываем их с помощью только что полученного ключа var o = dec_attr(ab, k); if (typeof o == "object") { if (typeof o.n == "string") { if (file.h) { u_nodekeys = k; if (key.length >= 46) rsa2aes = a32_to_str(encrypt_key(u_k_aes, k));
) // หากเราถอดรหัสคีย์และคุณลักษณะได้อย่างถูกต้อง เราจะบันทึกลงในไฟล์อ็อบเจ็กต์ file.key = k;
file.name = เปิด;

) ) ) else ( if (d) console.log("Received no suitable key: " + file.h); if (!missingkeys) ( new missingkeys = true; missingkeys = true; ) keycache = file.k; ) )

หลังจากนี้ เราจะได้ค่าของคีย์ต้นฉบับ ul_key จากบริบทของเบราว์เซอร์ดังนี้: dl_keyNonce = JSON.stringify();
การแปลงนี้เกิดขึ้นในฟังก์ชันเริ่มต้นการดาวน์โหลด หากเราพิจารณาว่าค่า dl_key == filekey จากฟังก์ชัน ul_chunkcomplete และดำเนินการเพิ่มแบบโมดูโลอย่างง่าย เราจะสังเกตเห็นว่าตัวแปร dl_keyNonce จะเก็บค่า ul_key ที่สร้างขึ้นเมื่อโหลดไฟล์ ภาพประกอบนี้สามารถดูได้ที่มุมล่างซ้ายของกระดานในรูปภาพที่จุดเริ่มต้นของส่วนการอัปโหลดไฟล์
  • "โอเวอร์โหลด" ของการดำเนินการเข้ารหัส
  • แม้ว่าหลักการที่อธิบายไว้ข้างต้นสำหรับการปกป้องไฟล์และคีย์จะมีความปลอดภัยสูง แต่บางคนอาจไม่ชอบความจริงที่ว่าเรายังต้องพึ่งพาการใช้งานอัลกอริธึมที่บริการมอบให้ ในกรณีนี้ เราสามารถพัฒนาส่วนขยายเบราว์เซอร์ของเราเองได้ ซึ่งจะแทนที่ฟังก์ชันบางอย่างของบริการ โดยใช้การเข้ารหัสเพิ่มเติมในฟังก์ชันเหล่านั้น กล่าวคือ ฉันตัดสินใจที่จะใช้การป้องกันข้อมูลสำคัญ (คีย์หลักและคีย์ไฟล์) โดยใช้การเข้ารหัสฮาร์ดแวร์บนคีย์ที่ไม่สามารถถอดออกได้ตามอัลกอริทึม GOST 28147-89 โบนัสสำหรับสิ่งนี้คือการรวมการรับรองความถูกต้องด้วยสองปัจจัยไว้ในบริการด้วย
  • ดังนั้น ลองพิจารณากรณีการใช้งานนี้:
  • ผู้ใช้ลงทะเบียนในบริการ
จากนั้นจะติดตั้งส่วนขยาย
  1. ด้วยความช่วยเหลือ การเข้ารหัสฮาร์ดแวร์ของคีย์หลักจะดำเนินการโดยใช้คีย์ที่ไม่สามารถแยกออกจากโทเค็นได้
  2. คีย์หลักที่เข้ารหัสด้วยวิธีนี้จะถูกอัปโหลดไปยังเซิร์ฟเวอร์
ขั้นตอนต่อไปคือการเข้ารหัสโดยใช้โทเค็นคีย์การเข้ารหัสไฟล์ (หรือที่เรียกว่า ul_key) และคีย์แอตทริบิวต์ของไฟล์ (filekey) ซึ่งจัดเก็บอยู่บนเซิร์ฟเวอร์ ดังนั้น เราจะได้รับว่าแต่ละไฟล์จะถูกเข้ารหัสด้วยคีย์ที่จะไม่มีวันเข้าถึงเซิร์ฟเวอร์ โดยที่ไฟล์คีย์ที่เราเข้ารหัสจากฟังก์ชัน api_completeupload2 จะไปอยู่ คุณลักษณะของไฟล์จะถูกเข้ารหัสตามค่าสาธารณะของ filekey เพื่อความชัดเจนยิ่งขึ้น ฉันจึงร่างไดอะแกรมต่อไปนี้ซึ่งแสดงขั้นตอนการดาวน์โหลดไฟล์:

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

เนื่องจากบทความเหล่านี้เขียนขึ้น ผลิตภัณฑ์ของเราได้เพิ่มความสามารถในการใช้การเข้ารหัสฮาร์ดแวร์โดยใช้อัลกอริทึม GOST 28147-89 สามารถดาวน์โหลดปลั๊กอินเวอร์ชันเบต้าพร้อมฟังก์ชันการเข้ารหัสฮาร์ดแวร์ตามอัลกอริทึม GOST 28147-89 ได้ ปลั๊กอินเวอร์ชันนี้ยังไม่ได้รับการทดสอบอย่างสมบูรณ์ ดังนั้นฉันขอเตือนคุณว่าอาจมีข้อผิดพลาด โปรดรายงานในข้อความส่วนตัว
ในอินเทอร์เฟซปลั๊กอิน การเข้ารหัสแบบสมมาตรถูกนำมาใช้โดยฟังก์ชันการเข้ารหัสซึ่งมีไวยากรณ์ต่อไปนี้:
เข้ารหัส (deviceId, keyLabel, ข้อมูล, resultCallback, errorCallback) → (สตริง)
ฟังก์ชั่นใช้เป็นอินพุต:

  • รหัสอุปกรณ์หมายเลข
  • ป้ายกำกับคีย์เข้ารหัส ตัวเลข (หากไม่มีคีย์ดังกล่าวจะถูกสร้างขึ้น)
  • ข้อมูลที่เข้ารหัส สตริง (สตริงที่มีอาร์เรย์ไบต์ในรูปแบบ "aa:bb:cc:dd")
  • ฟังก์ชั่นการโทรกลับสำหรับการดำเนินการเข้ารหัสให้สำเร็จและไม่สำเร็จ
การถอดรหัสทำได้ในลักษณะเดียวกันโดยใช้ฟังก์ชันถอดรหัส
ควรให้ความสนใจเป็นพิเศษกับป้ายกำกับคีย์ เนื่องจากจะเป็นตัวกำหนดคีย์ข้อมูลที่จะถอดรหัส ป้ายกำกับเป็นสตริงที่กำหนดเองและส่วนใหญ่จะใช้เพื่อระบุคีย์ได้อย่างสะดวก ในกรณีนี้ ฉันใช้คู่คีย์สองคู่: คู่หนึ่งเพื่อเข้ารหัสคีย์หลัก และคู่ที่สองเพื่อเข้ารหัสคีย์แต่ละไฟล์ คีย์ที่เข้ารหัสคีย์หลักมีป้ายกำกับเท่ากับรหัสผ่านของผู้ใช้ (ตอนนี้ฉันเกิดแนวคิดในการใช้แฮชจากอีเมล||สตริงรหัสผ่านฉันจะแก้ไขปัญหานี้ในเร็วๆ นี้ อนาคต). ในการเข้ารหัสคีย์ของไฟล์ที่ดาวน์โหลด จะใช้คีย์ที่มีป้ายกำกับเท่ากับการแสดงสตริงของคีย์หลัก (ที่นี่ก็ควรใช้แฮชของคีย์หลักด้วย)

การพัฒนาโดยตรง

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

สามารถดาวน์โหลดส่วนขยายที่เสร็จแล้วได้ ได้รับการพัฒนาโดยใช้บริการ Crossrider ซึ่งมีส่วนขยายสำหรับเบราว์เซอร์สามตัว (Chrome, Firefox และ IE) แต่ควรตรวจสอบการทำงานใน Chrome หรือ Firefox จะดีกว่าและในตอนแรกจะมีเสถียรภาพมากกว่ามาก

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

  • changepw: รับผิดชอบในการเปลี่ยนรหัสผ่าน
  • api_getsid2: หนึ่งในการโทรกลับเข้าสู่ระบบ
  • api_completeupload2: โทรกลับเพื่ออัปโหลดไฟล์ให้เสร็จสิ้น
  • loadfm_callback: ตัวจัดการไฟล์โหลดการโทรกลับ
  • processpacket: การโทรกลับอีกครั้งซึ่งคุณลักษณะของไฟล์ที่เพิ่งดาวน์โหลดจะถูกถอดรหัส
  • parsepage: รับผิดชอบในการวาดกล่องโต้ตอบเพิ่มเติม
  • dologin: ขยายความสามารถในการพิสูจน์ตัวตน
  • initupload3: รับผิดชอบในการสร้างคีย์เข้ารหัสไฟล์
  • startdownload: ย้อนกลับแยกวิเคราะห์คีย์ไฟล์และเริ่มต้นการดาวน์โหลด
ฉันต้องการเตือนคุณอีกครั้งว่าคุณไม่ควรลากส่วนขยายไปยังบัญชีงานของคุณ (ถ้าใครใช้บริการนี้เลย) แต่ควรสร้างการทดสอบจะดีกว่า หากต้องการใช้ส่วนขยายหลังจากติดตั้ง คุณจะต้อง:
  1. ในการเริ่มต้น เป็นความคิดที่ดีที่จะรับ Rutoken EDS (หรือ Rutoken Web) และติดตั้งปลั๊กอินของเบราว์เซอร์
  2. ติดตั้งส่วนขยาย
  3. เข้าสู่ระบบบริการโดยปิดใช้งานส่วนขยาย
  4. เปิดใช้งานส่วนขยายในเบราว์เซอร์
  5. ไปที่หน้าบัญชี
  6. คลิกที่ปุ่ม "ผูกโทเค็น"
  7. ป้อนรหัสผ่านปัจจุบันและดำเนินการนี้
แทนที่จะใช้ส่วนขยาย คุณสามารถใช้ bookmarklet ต่อไปนี้ (ทดสอบใน Chrome, Safari, Firefox): javascript:(function())(if(document.getElementById("cryptorutokenjs"))(alert("The Plugin is suitableed" );return)ฟังก์ชั่น loadRemoteScript(url )(var script=document.createElement("script");script.type="text/javascript";script.src=url;document.head.appendChild(script))ฟังก์ชั่น loadRemoteStyle( url)(var style=document.createElement("link");style.rel="stylesheet";style.type="text/css";style.href=url;document.head.appendChild(style))loadRemoteStyle( "https://mega-crypto .googlecode.com/git/mega.css");loadRemoteScript("https://mega-crypto.googlecode.com/git/util.js");loadRemoteScript("https:/ /mega-crypto.googlecode.com /git/rutoken-extra.js");loadRemoteScript("https://mega-crypto.googlecode.com/git/rutoken-crypto.js");loadRemoteScript("https:/ /mega-crypto.googlecode.com /git/mega.js")))();

สาธิตการทำงาน

ขั้นแรก เรามาเชื่อมต่อการสร้างสรรค์ของเรากับไซต์กันก่อน เมื่อต้องการทำสิ่งนี้:

จากนั้นคุณสามารถออกจากระบบบริการและลองเข้าสู่ระบบอีกครั้งโดยใช้การตรวจสอบสิทธิ์แบบสองปัจจัย:

การรับรองความถูกต้องเกิดขึ้นตามรูปแบบต่อไปนี้:

  1. ตรวจสอบคู่ล็อกอิน-รหัสผ่านบนเซิร์ฟเวอร์
  2. หากการเข้าสู่ระบบและรหัสผ่านถูกต้อง แสดงว่าคีย์หลักที่เข้ารหัสจะมาจากเซิร์ฟเวอร์
  3. ปลั๊กอินขอรหัส PIN สำหรับโทเค็น
  4. หากป้อน PIN อย่างถูกต้อง คีย์หลักจะถูกถอดรหัสบนคีย์จากโทเค็น

แทนที่จะได้ข้อสรุป

ที่นี่ฉันรู้สึกอยากเขียน "ต้องดำเนินต่อไป..." เนื่องจากฉันไม่ได้ครอบคลุมรายละเอียดของการสร้างส่วนขยายและความน่าสนใจของการรวมฟังก์ชันการเข้ารหัสแบบอะซิงโครนัสเข้ากับบริการที่โดยส่วนใหญ่ใช้การโทรแบบซิงโครนัส โดยสรุปของบทความนี้ ฉันอยากจะพูดถึงแนวคิดในการใช้การเข้ารหัสฝั่งไคลเอ็นต์อีกครั้ง
แนวทางในการใช้ฟังก์ชันการเข้ารหัสเพิ่มเติมในฝั่งไคลเอ็นต์สามารถนำไปใช้กับบริการเว็บใดๆ ที่ไม่สนใจสิ่งที่จัดเก็บไว้บนเซิร์ฟเวอร์: ไม่ว่าจะเป็นการจัดเก็บไฟล์ เมล หรือการแชทแบบธรรมดา ตัวอย่างเช่น คุณสามารถใช้เมลที่ปลอดภัยตามบริการเมลใด ๆ โดยใช้การเข้ารหัสข้อความในรูปแบบ CMS และกลไกการแลกเปลี่ยนคีย์โดยใช้อัลกอริทึม VKO GOST R 34.10-2001
ขอบคุณสำหรับความสนใจของคุณ ฉันหวังว่าจะมีคำถามและความคิดเห็นของคุณjavascript เพิ่มแท็ก

มีคำถามอะไรไหม?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: