WebRTC-এর জন্য ECDSA - ভালো নিরাপত্তা, ভালো গোপনীয়তা এবং ভালো পারফরম্যান্স

Chrome 52 থেকে, WebRTC সার্টিফিকেট (RTCCertificate) প্রজন্মের জন্য অনেক বেশি দক্ষ এবং সুরক্ষিত অ্যালগরিদম ব্যবহার করে: ECDSA। উপরন্তু, RTCC সার্টিফিকেট এখন IndexedDB-এর সাথে সংরক্ষণ করা যেতে পারে।

RTCC সার্টিফিকেট হল একটি WebRTC পিয়ার সংযোগ স্থাপন করার সময় DTLS হ্যান্ডশেকে ব্যবহৃত স্ব-স্বাক্ষরিত শংসাপত্র। (DTLS হল UDP- এর মতো ডেটাগ্রাম প্রোটোকলের জন্য ক্রিপ্টোগ্রাফিক প্রোটোকল TLS- এর একটি বাস্তবায়ন, যা WebRTC ব্যবহার করে।)

সম্প্রতি পর্যন্ত, WebRTC শংসাপত্রের জন্য RSA-1024 কী ব্যবহার করেছে। এই কীগুলির বেশ কয়েকটি অসুবিধা রয়েছে:

  • RSA-1024 কী জেনারেট করলে কল সেটআপ টাইমে প্রায় 1000ms যোগ হতে পারে।
  • 1024-বিট RSA কী পর্যাপ্ত ক্রিপ্টোগ্রাফিক শক্তি প্রদান করে না।

কারণ RSA-1024-এর সাথে শংসাপত্র তৈরি করা ধীরগতির, কিছু মোবাইল অ্যাপ আগে থেকে শংসাপত্র প্রস্তুত করে বা সেগুলিকে পুনরায় ব্যবহার করে৷

মূল শক্তি সমস্যাটি 2048-বিট RSA কী বা তার বেশিতে গিয়ে সমাধান করা যেতে পারে, তবে এটি কয়েক অতিরিক্ত সেকেন্ডের জন্য কল সেটআপকে বিলম্বিত করবে। RSA কী আকার পরিবর্তন করার পরিবর্তে, Chrome 52 শংসাপত্রে ব্যবহারের জন্য ECDSA কী (Elliptic Curve Digital Signature Algorithm) প্রয়োগ করে। এগুলি 3072-বিট RSA কীগুলির মতো শক্তিশালী কিন্তু কয়েক হাজার গুণ দ্রুত: ECDSA-এর সাথে কল সেটআপ ওভারহেড মাত্র কয়েক মিলিসেকেন্ড।

সব মিলিয়ে, ECDSA কী মানে আরও ভালো নিরাপত্তা, ভালো গোপনীয়তা এবং আরও ভালো পারফরম্যান্স — বিশেষ করে মোবাইলে। এই কারণে, WebRTC নিরাপত্তা স্থাপত্য খসড়াতে ECDSA বাধ্যতামূলক করা হয়েছে।

Chrome 47 থেকে আপনি ECDSA-তে নির্বাচন করতে পারেন:

// or webkitRTCPeerConnection
RTCPeerConnection.generateCertificate({
    name: "ECDSA",
    namedCurve: "P-256"
}).then(function(certificate) {
    var pc = new RTCPeerConnection({..., certificates: [certificate]});
});

Chrome 52 থেকে, যদিও ইসিডিএসএ ডিফল্টরূপে সক্রিয় থাকে, আপনি এখনও আরএসএ শংসাপত্র তৈরি করতে বেছে নিতে পারেন:

pc.generateCertificate({
    name: "RSASSA-PKCS1-v1_5",
    modulusLength: 2048,
    publicExponent: new Uint8Array([1, 0, 1]),
    hash: "SHA-256"
})

( generateCertificate() সম্পর্কে আরও তথ্যের জন্য W3C খসড়া দেখুন।)

ইনডেক্সডডিবিতে RTCC সার্টিফিকেট সংরক্ষণ করা

Chrome 52-এ আরেকটি উন্নতি: WebRTC দ্বারা ব্যবহৃত RTCC সার্টিফিকেটগুলি সেশনগুলির মধ্যে নতুন শংসাপত্র তৈরি করার প্রয়োজন এড়াতে, IndexedDB স্টোরেজ থেকে সংরক্ষণ এবং লোড করা যেতে পারে। এটি কার্যকর হতে পারে, উদাহরণস্বরূপ, যদি আপনি এখনও RSA ব্যবহার করতে চান এবং RSA জেনারেশন ওভারহেড এড়াতে চান। ECDSA এর সাথে, ক্যাশিং প্রয়োজনীয় নয় কারণ এটি প্রতিবার একটি নতুন শংসাপত্র তৈরি করার জন্য যথেষ্ট দ্রুত।

RTCCertificate IndexedDB স্টোরেজ ইতিমধ্যেই Firefox-এ পাঠানো হয়েছে এবং Opera 39-এ রয়েছে।

আরও খোঁজ