Toolypet
ब्लॉग पर वापस जाएं
Security

2FA संपूर्ण गाइड - TOTP, SMS, हार्डवेयर कुंजी तुलना और कार्यान्वयन

दो-कारक प्रमाणीकरण (2FA) के प्रकार और सुरक्षा स्तर। TOTP ऐप्स, SMS और हार्डवेयर कुंजियों के फायदे-नुकसान और डेवलपर्स के लिए कार्यान्वयन गाइड।

Toolypet Team

Toolypet Team

Development Team

7 मिनट पढ़ने का समय

2FA संपूर्ण गाइड: क्या, क्यों और कैसे

एक बार आपका पासवर्ड लीक हो गया, तो खेल खत्म।

2024 तक, 10 अरब से अधिक पासवर्ड लीक हो चुके हैं। चाहे आपका पासवर्ड कितना भी मजबूत हो, डेटाबेस ब्रीच के सामने यह बेकार है।

2FA (दो-कारक प्रमाणीकरण) आपके पासवर्ड के लीक होने पर भी आपके खाते की सुरक्षा करता है।


2FA क्या है?

2FA (Two-Factor Authentication) दो कारकों का उपयोग करके प्रमाणीकरण है।

प्रमाणीकरण के तीन कारक

कारकअर्थउदाहरण
ज्ञानजो आप जानते हैंपासवर्ड, PIN
अधिकारजो आपके पास हैफोन, हार्डवेयर कुंजी
अस्तित्वजो आप हैंफिंगरप्रिंट, चेहरा

2FA इनमें से दो का संयोजन करता है।

पासवर्ड (ज्ञान) + TOTP ऐप (अधिकार) = 2FA
PIN (ज्ञान) + फिंगरप्रिंट (अस्तित्व) = 2FA

यह क्यों आवश्यक है

हमले का प्रकारकेवल पासवर्ड2FA के साथ
फिशिंगभेदा गयाविलंबित या रोका गया
ब्रूट फोर्ससंभावित रूप से भेदारोका गया
DB लीकभेदा गयारोका गया
शोल्डर सर्फिंगभेदा गयारोका गया

2FA प्रकारों की तुलना

1. SMS प्रमाणीकरण

लॉगिन प्रयास → फोन पर 6-अंकीय कोड प्राप्त → कोड दर्ज करें
फायदेनुकसान
अतिरिक्त ऐप की आवश्यकता नहींSIM स्वैपिंग के प्रति कमजोर
उपयोगकर्ता परिचितफिशिंग के प्रति कमजोर
जल्दी लागू करने योग्यसेलुलर कनेक्शन आवश्यक

सुरक्षा रेटिंग: 2/5 (कम)

SMS SIM स्वैपिंग हमलों के प्रति कमजोर है। अगर हमलावर कैरियर को धोखा देकर आपका SIM क्लोन कर लें, तो वे SMS इंटरसेप्ट कर सकते हैं।

2. TOTP ऐप्स (अनुशंसित)

समय-आधारित वन-टाइम पासवर्ड
हर 30 सेकंड में नया कोड जनरेट

ऐप उदाहरण: Google Authenticator, Authy, 1Password

फायदेनुकसान
ऑफलाइन काम करता हैऐप इंस्टॉल करना आवश्यक
SIM स्वैपिंग से सुरक्षितरिकवरी कुंजी खोने का जोखिम
मुफ्तडिवाइस खोने पर समस्या

सुरक्षा रेटिंग: 4/5 (उच्च)

3. हार्डवेयर सुरक्षा कुंजी

USB या NFC के माध्यम से भौतिक प्रमाणीकरण
उदाहरण: YubiKey, Google Titan Key
फायदेनुकसान
फिशिंग से पूर्ण सुरक्षालागत ($30-70)
सबसे मजबूत सुरक्षाभौतिक नुकसान का जोखिम
उपयोग में आसानसभी सेवाओं द्वारा समर्थित नहीं

सुरक्षा रेटिंग: 5/5 (सर्वोच्च)

4. ऐप पुश प्रमाणीकरण

लॉगिन प्रयास → ऐप में पुश नोटिफिकेशन → स्वीकार/अस्वीकार
उदाहरण: Microsoft Authenticator, Duo
फायदेनुकसान
सुविधाजनकइंटरनेट आवश्यक
फिशिंग प्रतिरोधीऐप पर निर्भर

सुरक्षा रेटिंग: 4/5 (उच्च)


TOTP कैसे काम करता है

अवधारणा

TOTP = HMAC-SHA1(गुप्त कुंजी, समय) → 6-अंकीय संख्या
  1. सर्वर और ऐप एक गुप्त कुंजी (secret) साझा करते हैं
  2. वर्तमान समय को 30-सेकंड के अंतराल में विभाजित किया जाता है
  3. गुप्त कुंजी + समय से हैश जनरेट होता है
  4. हैश से 6-अंकीय संख्या निकाली जाती है

चूंकि सर्वर और ऐप समान समय और समान कुंजी का उपयोग करते हैं, वे समान कोड जनरेट करते हैं।

QR कोड में क्या है

otpauth://totp/सेवा:खाता?secret=BASE32गुप्तकुंजी&issuer=सेवा
otpauth://totp/GitHub:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=GitHub

QR कोड स्कैन करने पर, ऐप यह जानकारी सहेज लेता है।


डेवलपर्स के लिए TOTP कार्यान्वयन

Node.js उदाहरण (otplib)

const { authenticator } = require('otplib');

// 1. गुप्त कुंजी जनरेट करें (उपयोगकर्ता पंजीकरण के दौरान)
const secret = authenticator.generateSecret();
// "JBSWY3DPEHPK3PXP"

// 2. QR कोड URL जनरेट करें
const otpauthUrl = authenticator.keyuri(
  'user@example.com',
  'MyApp',
  secret
);
// QR लाइब्रेरी से छवि जनरेट करें

// 3. कोड सत्यापित करें (लॉगिन के दौरान)
const userToken = "123456";  // उपयोगकर्ता इनपुट
const isValid = authenticator.verify({ token: userToken, secret });

if (isValid) {
  console.log("प्रमाणीकरण सफल");
} else {
  console.log("अमान्य कोड");
}

Python उदाहरण (pyotp)

import pyotp

# 1. गुप्त कुंजी जनरेट करें
secret = pyotp.random_base32()

# 2. QR कोड URL
totp = pyotp.TOTP(secret)
url = totp.provisioning_uri(name='user@example.com', issuer_name='MyApp')

# 3. कोड सत्यापित करें
user_token = "123456"
is_valid = totp.verify(user_token)

सुरक्षा विचार

// समय विचलन की अनुमति दें (30 सेकंड पहले और बाद)
authenticator.options = {
  window: 1  // -30सेकंड से +30सेकंड की अनुमति
};

// पुन: उपयोग रोकें
// उपयोग किए गए कोड संग्रहीत करें और पुन: उपयोग रोकें
const usedCodes = new Set();

function verifyOnce(token, secret) {
  if (usedCodes.has(token)) return false;

  if (authenticator.verify({ token, secret })) {
    usedCodes.add(token);
    // 60 सेकंड बाद हटाएं (मेमोरी प्रबंधन)
    setTimeout(() => usedCodes.delete(token), 60000);
    return true;
  }
  return false;
}

रिकवरी कोड प्रबंधन

अगर आप 2FA खो देते हैं, तो आप अपने खाते तक पहुंच नहीं पाएंगे। हमेशा रिकवरी कोड प्रदान करें

जनरेशन

const crypto = require('crypto');

function generateRecoveryCodes(count = 10) {
  const codes = [];
  for (let i = 0; i < count; i++) {
    // 8-कैरेक्टर अपरकेस + संख्याएं
    const code = crypto.randomBytes(4).toString('hex').toUpperCase();
    codes.push(`${code.slice(0,4)}-${code.slice(4)}`);
  }
  return codes;
}

// ["A3F8-B2C1", "D4E5-F6G7", ...]

स्टोरेज

// रिकवरी कोड को स्टोर करने से पहले हैश करें (bcrypt अनुशंसित)
const bcrypt = require('bcrypt');

async function storeRecoveryCodes(codes) {
  const hashedCodes = await Promise.all(
    codes.map(code => bcrypt.hash(code, 10))
  );
  // hashedCodes को DB में स्टोर करें
}

// उपयोग करते समय सत्यापित करें
async function useRecoveryCode(inputCode, hashedCodes) {
  for (const hashed of hashedCodes) {
    if (await bcrypt.compare(inputCode, hashed)) {
      // कोड हटाएं (एक बार उपयोग)
      return true;
    }
  }
  return false;
}

उपयोगकर्ता अनुभव (UX) सुझाव

1. 2FA सेटअप को प्रोत्साहित करें

पहले लॉगिन के बाद: "अपने खाते की सुरक्षा के लिए 2FA सेट करें"
संवेदनशील कार्यों से पहले: "इस कार्य के लिए 2FA आवश्यक है"

2. चरण-दर-चरण मार्गदर्शन

चरण 1: प्रमाणक ऐप इंस्टॉल करें (Google Authenticator लिंक प्रदान करें)
चरण 2: QR कोड स्कैन करें
चरण 3: 6-अंकीय कोड से पुष्टि करें
चरण 4: रिकवरी कोड सहेजें (जोर दें!)

3. रिकवरी कोड पर जोर दें

चेतावनी: इन कोड को सुरक्षित स्थान पर सहेजें।
खो जाने पर खाता पुनर्प्राप्ति असंभव होगी।

[ कोड डाउनलोड करें ] [ कोड कॉपी करें ]

अक्सर पूछे जाने वाले प्रश्न

प्रश्न: क्या मुझे SMS 2FA से पूरी तरह बचना चाहिए?

उत्तर: यह TOTP से कमजोर है, लेकिन कुछ न होने से बहुत बेहतर है। जब संभव हो TOTP या हार्डवेयर कुंजी का उपयोग करें, लेकिन अगर कोई सेवा केवल SMS समर्थन करती है, तो निश्चित रूप से इसे सक्षम करें।

प्रश्न: अगर मैं 2FA ऐप वाला फोन खो दूं तो?

उत्तर: रिकवरी कोड से लॉगिन करें और 2FA रीसेट करें। इसीलिए आपको रिकवरी कोड को अलग और सुरक्षित रूप से संग्रहीत करना चाहिए।

प्रश्न: क्या मैं बैकअप 2FA रजिस्टर कर सकता हूं?

उत्तर: हां, एक ही खाते पर कई डिवाइस रजिस्टर करें (यदि सेवा समर्थन करती है), या प्रारंभिक सेटअप के दौरान कई डिवाइसों पर एक साथ QR कोड स्कैन करें।


सारांश

2FA प्रकारसुरक्षासुविधाअनुशंसा
SMS2/55/5अंतिम उपाय
TOTP ऐप4/54/5सामान्यतः अनुशंसित
हार्डवेयर कुंजी5/53/5उच्च सुरक्षा
ऐप पुश4/55/5एंटरप्राइज उपयोग

कम से कम TOTP का उपयोग करें। केवल पासवर्ड पर्याप्त नहीं है।


संबंधित उपकरण

उपकरणउद्देश्य
TOTP जनरेटर2FA कोड टेस्ट
पासवर्ड जनरेटरमजबूत पासवर्ड
हैश जनरेटरहैशिंग टेस्ट
2FAMFATOTPप्रमाणीकरणसुरक्षाविकास

लेखक के बारे में

Toolypet Team

Toolypet Team

Development Team

The Toolypet Team creates free, privacy-focused web tools for developers and designers. All tools run entirely in your browser with no data sent to servers.

Web DevelopmentCSS ToolsDeveloper ToolsSEOSecurity