SSL/TLS Handshake এবং Data Encryption

Computer Programming - ইউনিক্স সকেট (Unix Socket) Secure Socket Layer (SSL) এবং TLS (Transport Layer Security) |
238
238

SSL/TLS Handshake এবং Data Encryption হলো SSL/TLS প্রোটোকলের দুটি মূল উপাদান, যা নিরাপদ নেটওয়ার্ক সংযোগ এবং সুরক্ষিত ডেটা ট্রান্সমিশন নিশ্চিত করে। Handshake প্রক্রিয়াটি ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি নিরাপদ সংযোগ তৈরি করে এবং Data Encryption সেই সংযোগে ডেটা সুরক্ষিত রাখে। নিচে SSL/TLS Handshake এবং Data Encryption নিয়ে বিস্তারিত আলোচনা করা হলো।

SSL/TLS Handshake

SSL/TLS Handshake হলো একটি প্রক্রিয়া, যেখানে ক্লায়েন্ট এবং সার্ভার এনক্রিপশন অ্যালগরিদম, সিকিউরিটি প্যারামিটার এবং সিক্রেট কী নিয়ে আলোচনা করে একটি নিরাপদ সংযোগ তৈরি করে। Handshake-এর সময়, উভয় পক্ষ একে অপরকে যাচাই করে এবং সংযোগ সুরক্ষিত করে।

SSL/TLS Handshake-এর ধাপসমূহ

Client Hello:

  • ক্লায়েন্ট প্রথমে একটি Client Hello বার্তা পাঠায়, যা বিভিন্ন তথ্য ধারণ করে, যেমন: ক্লায়েন্ট সমর্থন করে এমন SSL/TLS প্রোটোকল সংস্করণ, এনক্রিপশন স্যুট, এবং একটি র্যান্ডম ভ্যালু।

Server Hello:

  • সার্ভার Server Hello বার্তা পাঠিয়ে ক্লায়েন্টের প্রস্তাবের সাথে সাড়া দেয়।
  • সার্ভার তার SSL/TLS প্রোটোকল সংস্করণ, একটি এনক্রিপশন স্যুট, এবং একটি র্যান্ডম ভ্যালু নির্বাচিত করে এবং তা ক্লায়েন্টের কাছে পাঠায়।
  • এছাড়া, সার্ভার তার SSL/TLS সার্টিফিকেটও পাঠায়, যা ক্লায়েন্ট সার্ভারের পরিচয় যাচাই করতে ব্যবহার করে।

Server Certificate and Key Exchange:

  • সার্ভার একটি সার্টিফিকেট পাঠায়, যা তার পরিচয় যাচাই করতে ক্লায়েন্ট ব্যবহার করে।
  • সার্টিফিকেটে সাধারণত সার্ভারের পাবলিক কী থাকে, যা পরবর্তী এনক্রিপশন প্রক্রিয়ায় ব্যবহার করা হয়।

Client Verification:

  • ক্লায়েন্ট সার্ভারের সার্টিফিকেট যাচাই করে এবং নিশ্চিত করে যে এটি বৈধ এবং বিশ্বাসযোগ্য। যদি সার্টিফিকেটটি যাচাইয়ে ব্যর্থ হয়, তবে সংযোগ বন্ধ করে দেওয়া হয়।

Pre-Master Secret Generation:

  • ক্লায়েন্ট একটি Pre-Master Secret তৈরি করে এবং এটি সার্ভারের পাবলিক কী ব্যবহার করে এনক্রিপ্ট করে সার্ভারের কাছে পাঠায়।
  • সার্ভার তার প্রাইভেট কী ব্যবহার করে এই Pre-Master Secret ডিক্রিপ্ট করে এবং উভয় পক্ষ একই গোপন কী (Session Key) তৈরি করে।

Session Key Generation:

  • উভয় পক্ষ (ক্লায়েন্ট এবং সার্ভার) Pre-Master Secret এবং তাদের র্যান্ডম ভ্যালুগুলোর উপর ভিত্তি করে Session Key তৈরি করে। এই Session Key পরবর্তীতে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়।

Finished Messages:

  • ক্লায়েন্ট এবং সার্ভার উভয়েই Finished বার্তা পাঠায়, যা যাচাই করে যে Handshake সফল হয়েছে এবং উভয় পক্ষেই Session Key সঠিকভাবে তৈরি হয়েছে।
  • এই Finished বার্তাগুলো এনক্রিপ্টেড থাকে, যা Handshake প্রক্রিয়ার সঠিকতা নিশ্চিত করে।

Secure Connection Established:

  • Handshake প্রক্রিয়া সফল হলে, একটি নিরাপদ সংযোগ স্থাপন হয় এবং ক্লায়েন্ট ও সার্ভার উভয়েই নিরাপদে এনক্রিপ্টেড ডেটা আদান-প্রদান করতে পারে।

Data Encryption in SSL/TLS

SSL/TLS Handshake-এর পরে, ক্লায়েন্ট এবং সার্ভার একটি Session Key ব্যবহার করে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করা শুরু করে। এই এনক্রিপশন প্রক্রিয়া নিশ্চিত করে যে ডেটা সুরক্ষিত এবং তৃতীয় পক্ষ দ্বারা পড়া বা পরিবর্তন করা যাবে না।

Data Encryption-এর ধাপসমূহ

Symmetric Encryption:

  • SSL/TLS এনক্রিপশন প্রক্রিয়ায় Symmetric Encryption ব্যবহার করা হয়, যেখানে একই কী (Session Key) ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়। এটি দ্রুত এবং কার্যকর, যা ডেটা ট্রান্সমিশনের সময় লেটেন্সি কম রাখে।
  • Symmetric Encryption Algorithm হিসেবে AES (Advanced Encryption Standard), DES (Data Encryption Standard), অথবা ChaCha20 ইত্যাদি অ্যালগরিদম ব্যবহৃত হয়।

Message Authentication Code (MAC):

  • SSL/TLS Data Transmission-এর সময় MAC (Message Authentication Code) ব্যবহার করা হয়, যা ডেটার ইন্টেগ্রিটি নিশ্চিত করে। MAC ডেটার সঠিকতা যাচাই করে এবং নিশ্চিত করে যে ডেটা পরিবর্তিত বা ম্যানিপুলেট হয়নি।
  • MAC ডেটা এনক্রিপশনের সাথে সংযুক্ত থাকে এবং ডেটা প্রেরণের সময় এটির সাথে যাচাই করা হয়।

Confidentiality:

  • Symmetric Key ব্যবহার করে SSL/TLS ডেটা এনক্রিপ্ট করা হলে, ডেটা শুধুমাত্র বৈধ ক্লায়েন্ট এবং সার্ভার দ্বারা পড়া যায়। এটি ডেটার গোপনীয়তা নিশ্চিত করে এবং তৃতীয় পক্ষের আক্রমণ থেকে সুরক্ষা প্রদান করে।

Integrity:

  • SSL/TLS ডেটার ইন্টেগ্রিটি নিশ্চিত করে, যাতে ট্রান্সমিশনের সময় ডেটা পরিবর্তন করা না যায়। ডেটার শেষে MAC যোগ করা হয় এবং এটি ডেটার পরিবর্তন শনাক্ত করতে সহায়ক।

Decryption:

  • ক্লায়েন্ট এবং সার্ভার উভয়েই Session Key ব্যবহার করে এনক্রিপ্টেড ডেটা ডিক্রিপ্ট করে। ডেটা ডিক্রিপ্ট করার পর, MAC ব্যবহার করে এটি যাচাই করা হয়, যাতে নিশ্চিত করা যায় যে ডেটা সঠিক এবং নিরাপদ আছে।

SSL/TLS Handshake এবং Data Encryption এর একটি উদাহরণ (Python)

Python-এ Secure Socket Programming করার সময় SSL/TLS Handshake এবং Data Encryption কিভাবে কাজ করে, তা দেখানো হয়েছে:

import socket
import ssl

# সার্ভার ঠিকানা এবং পোর্ট
hostname = 'localhost'
port = 8443

# SSL/TLS Context তৈরি করা
context = ssl.create_default_context()

# TCP সংযোগ তৈরি করা
sock = socket.create_connection((hostname, port))

# Secure Socket তৈরি করা
secure_sock = context.wrap_socket(sock, server_hostname=hostname)

try:
    # ডেটা পাঠানো (এনক্রিপ্টেড)
    secure_sock.sendall(b"Hello secure server!")

    # ডেটা গ্রহণ করা (এনক্রিপ্টেড)
    data = secure_sock.recv(1024)
    print(f"Received: {data.decode()}")
finally:
    secure_sock.close()
  • ব্যাখ্যা:
    • এখানে, Python-এর ssl লাইব্রেরি ব্যবহার করে SSL Context তৈরি করা হয়েছে এবং সেটি Secure Socket তৈরিতে ব্যবহার করা হয়েছে।
    • TCP সংযোগ তৈরি করা হয়েছে এবং SSL/TLS ব্যবহার করে এটি সুরক্ষিত করা হয়েছে।
    • ক্লায়েন্ট এবং সার্ভার উভয়েই এনক্রিপ্টেড ডেটা পাঠানো এবং গ্রহণ করছে, যা SSL/TLS Handshake এবং Data Encryption এর মাধ্যমে সুরক্ষিত।

SSL/TLS Handshake এবং Data Encryption-এর প্রয়োজনীয়তা

ডেটা সুরক্ষা:

  • SSL/TLS Handshake এবং Data Encryption-এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা এনক্রিপ্ট করা হয়, যা তৃতীয় পক্ষের আক্রমণ প্রতিরোধ করে। এটি নিশ্চিত করে যে শুধুমাত্র অনুমোদিত পক্ষ ডেটা পড়তে এবং পরিবর্তন করতে পারে।

সার্ভার এবং ক্লায়েন্ট প্রমাণীকরণ:

  • SSL/TLS Handshake-এর সময়, সার্ভারের সার্টিফিকেট যাচাই করে ক্লায়েন্টের কাছে তার পরিচয় প্রমাণ করা হয়। প্রয়োজনে ক্লায়েন্টও তার পরিচয় প্রমাণ করতে পারে।
  • এটি Man-in-the-Middle Attack থেকে সুরক্ষা প্রদান করে এবং ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি নিরাপদ সংযোগ নিশ্চিত করে।

ডেটার ইন্টেগ্রিটি:

  • SSL/TLS ডেটার ইন্টেগ্রিটি নিশ্চিত করে, যাতে ডেটা পরিবর্তন বা ম্যানিপুলেশন থেকে সুরক্ষিত থাকে। MAC ব্যবহার করে ডেটা যাচাই করা হয়।

Confidentiality:

  • এনক্রিপশনের মাধ্যমে ডেটার গোপনীয়তা নিশ্চিত করা হয়। এটি ব্যাংকিং, ই-কমার্স, এবং অন্যান্য সংবেদনশীল তথ্য প্রক্রিয়াজাত করার ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion