Brahim Elmadkoun نشر 4 مايو 2019 أرسل تقرير نشر 4 مايو 2019 من فضلكم ارجو الساعدة لمن لديه خبرة في تشفير الحماية تكون عن طريق العناوين الموقعة او منتهية صلاحية يعني token expre او المشفرة عبر مفتاح AES-128 مثال على شرحات التي اريد ان يتم شرح طريقة تطبيقهاhttp://hlsbook.net/how-to-encrypt-hls-video-with-ffmpeg/https://gist.github.com/mrbar42/09c149059f72da2f09e652d4c5079919https://www.keycdn.com/support/secure-token اقتباس
0 Kamel Mecheri نشر 19 يوليو أرسل تقرير نشر 19 يوليو مرحباً! تشفير الفيديو وحمايته عبر العناوين الموقعة أو التشفير بالمفتاح يمكن أن يكون موضوعًا معقدًا بعض الشيء، لكن سأبسط الأمور لك بشكل يناسب فهمك. سأستعرض كيفية تطبيق الحماية باستخدام كل من تشفير الفيديو بـ AES-128 و العناوين الموقعة. 1. تشفير الفيديو باستخدام AES-128 لتشفير فيديوهات HLS (HTTP Live Streaming) باستخدام خوارزمية AES-128، يمكنك اتباع الخطوات التالية: الخطوة 1: توليد مفتاح التشفير أولاً، تحتاج إلى توليد مفتاح تشفير عشوائي. يمكنك استخدام OpenSSL لتوليد مفتاح: openssl rand -hex 16 سيقوم هذا الأمر بإنشاء مفتاح عشوائي بطول 128 بت، وهو ما تحتاجه لتشفير الفيديو. الخطوة 2: إنشاء ملف مفتاح التشفير احفظ المفتاح في ملف نصي. على سبيل المثال، encryption.key. الخطوة 3: استخدام FFmpeg لتشفير الفيديو افترض أن لديك ملف فيديو باسم input.mp4 وترغب في تحويله إلى HLS مع تشفير AES-128. يمكنك استخدام FFmpeg لتنفيذ ذلك: ffmpeg -i input.mp4 -c:a aac -c:v h264 -hls_key_info_file key_info.txt -hls_segment_filename 'segment_%03d.ts' -hls_playlist_type vod output.m3u8 في هذا المثال، key_info.txt هو ملف يحتوي على معلومات حول مفتاح التشفير. يمكنك إنشاء هذا الملف بالشكل التالي: key.bin https://example.com/keys/key.bin حيث: key.bin هو اسم الملف الذي يحتوي على مفتاح التشفير. الرابط هو المكان الذي ستقوم بتحميل المفتاح منه (عادة ما يكون خادمًا آمنًا). الخطوة 4: توفير المفتاح عبر HTTP يجب أن يكون ملف المفتاح (key.bin) متاحًا عبر HTTP على الخادم الخاص بك. تأكد من توفير هذا الملف في موقع آمن وسرّي. 2. حماية عبر العناوين الموقعة (Token-based Protection) لحماية الفيديو باستخدام عناوين موقعة، تحتاج إلى اتباع الخطوات التالية: الخطوة 1: توليد توقيع URL ستحتاج إلى توليد توقيع URL يكون صالحًا لفترة زمنية محددة. يُستخدم هذا التوقيع لتحديد من يمكنه الوصول إلى الفيديو. إليك مثالًا باستخدام Node.js: const crypto = require('crypto'); const base64url = require('base64url'); // Generate a secure token function generateSignedUrl(url, secretKey, expiresInSeconds) { const expires = Math.floor(Date.now() / 1000) + expiresInSeconds; const signature = crypto.createHmac('sha256', secretKey) .update(`${url}?expires=${expires}`) .digest('hex'); const signedUrl = `${url}?expires=${expires}&signature=${signature}`; return signedUrl; } // Usage example const url = 'https://example.com/stream/video.m3u8'; const secretKey = 'your_secret_key'; const expiresInSeconds = 3600; // 1 hour const signedUrl = generateSignedUrl(url, secretKey, expiresInSeconds); console.log(signedUrl); الخطوة 2: التحقق من التوقيع عند الطلب عند طلب الفيديو، تحقق من التوقيع والتأكد من صلاحية التوقيع قبل تقديم المحتوى. يمكنك استخدام نفس الطريقة للتحقق من التوقيع. function verifySignedUrl(url, signature, secretKey) { const parsedUrl = new URL(url); const expires = parsedUrl.searchParams.get('expires'); const validSignature = crypto.createHmac('sha256', secretKey) .update(`${url}?expires=${expires}`) .digest('hex'); return validSignature === signature && Date.now() / 1000 < expires; } // Usage example const requestUrl = 'https://example.com/stream/video.m3u8?expires=1627074600&signature=valid_signature'; const signature = new URL(requestUrl).searchParams.get('signature'); if (verifySignedUrl(requestUrl, signature, secretKey)) { console.log('URL is valid'); } else { console.log('URL is invalid'); } النصائح: تأمين مفتاح التشفير: تأكد من حماية مفتاح التشفير جيدًا ولا تضعه في مكان يمكن الوصول إليه بسهولة. استخدام عناوين موقعة بشكل آمن: تأكد من استخدام خوارزميات التشفير القوية وتحديث السر بشكل دوري. التحقق من صلاحية التوقيع: تحقق من التوقيع والتأكد من أنه لم يتجاوز وقت الصلاحية. تحديث المفاتيح بانتظام: استخدم مفاتيح جديدة بانتظام لضمان الأمان. اقتباس
السؤال
Brahim Elmadkoun
من فضلكم ارجو الساعدة لمن لديه خبرة في تشفير
الحماية تكون عن طريق العناوين الموقعة او منتهية صلاحية يعني token expre او المشفرة عبر مفتاح AES-128
مثال على شرحات التي اريد ان يتم شرح طريقة تطبيقها
http://hlsbook.net/how-to-encrypt-hls-video-with-ffmpeg/
https://gist.github.com/mrbar42/09c149059f72da2f09e652d4c5079919
https://www.keycdn.com/support/secure-token
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.