2FA संपूर्ण गाइड - TOTP, SMS, हार्डवेयर कुंजी तुलना और कार्यान्वयन
दो-कारक प्रमाणीकरण (2FA) के प्रकार और सुरक्षा स्तर। TOTP ऐप्स, SMS और हार्डवेयर कुंजियों के फायदे-नुकसान और डेवलपर्स के लिए कार्यान्वयन गाइड।
Toolypet Team
Development Team
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-अंकीय संख्या
- सर्वर और ऐप एक गुप्त कुंजी (secret) साझा करते हैं
- वर्तमान समय को 30-सेकंड के अंतराल में विभाजित किया जाता है
- गुप्त कुंजी + समय से हैश जनरेट होता है
- हैश से 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 प्रकार | सुरक्षा | सुविधा | अनुशंसा |
|---|---|---|---|
| SMS | 2/5 | 5/5 | अंतिम उपाय |
| TOTP ऐप | 4/5 | 4/5 | सामान्यतः अनुशंसित |
| हार्डवेयर कुंजी | 5/5 | 3/5 | उच्च सुरक्षा |
| ऐप पुश | 4/5 | 5/5 | एंटरप्राइज उपयोग |
कम से कम TOTP का उपयोग करें। केवल पासवर्ड पर्याप्त नहीं है।
संबंधित उपकरण
| उपकरण | उद्देश्य |
|---|---|
| TOTP जनरेटर | 2FA कोड टेस्ट |
| पासवर्ड जनरेटर | मजबूत पासवर्ड |
| हैश जनरेटर | हैशिंग टेस्ट |
लेखक के बारे में
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.