సమస్య నేరుగా TLS స్పెసిఫికేషన్లో ఉంది మరియు DH కీ మార్పిడి ప్రోటోకాల్ (Diffie-Hellman, TLS_DH_*") ఆధారంగా సాంకేతికలిపిని ఉపయోగించే కనెక్షన్లను మాత్రమే ప్రభావితం చేస్తుంది. ECDH సాంకేతికలిపితో సమస్య ఏర్పడదు మరియు అవి సురక్షితంగా ఉంటాయి. సంస్కరణ 1.2 వరకు ఉన్న TLS ప్రోటోకాల్లు మాత్రమే హాని కలిగిస్తాయి; TLS 1.3 సమస్య ద్వారా ప్రభావితం కాదు. వివిధ TLS కనెక్షన్లలో DH రహస్య కీని తిరిగి ఉపయోగించే TLS అమలులలో దుర్బలత్వం ఏర్పడుతుంది (ఈ ప్రవర్తన సుమారు 4.4% అలెక్సా టాప్ 1M సర్వర్లలో జరుగుతుంది).
OpenSSL 1.0.2e మరియు మునుపటి విడుదలలలో, SSL_OP_SINGLE_DH_USE ఎంపికను స్పష్టంగా సెట్ చేయకపోతే DH ప్రాథమిక కీ అన్ని సర్వర్ కనెక్షన్లలో తిరిగి ఉపయోగించబడుతుంది. OpenSSL 1.0.2f నుండి, స్టాటిక్ DH సాంకేతికలిపిలను ("DH-*", ఉదా. "DH-RSA-AES256-SHA") ఉపయోగిస్తున్నప్పుడు మాత్రమే DH ప్రాథమిక కీ మళ్లీ ఉపయోగించబడుతుంది. ఈ బ్రాంచ్ DH ప్రైమరీ కీని ఉపయోగించదు మరియు స్టాటిక్ DH సైఫర్లను ఉపయోగించదు కాబట్టి, OpenSSL 1.1.1లో దుర్బలత్వం కనిపించదు.
DH కీ మార్పిడి పద్ధతిని ఉపయోగిస్తున్నప్పుడు, కనెక్షన్ యొక్క రెండు వైపులా యాదృచ్ఛిక ప్రైవేట్ కీలను (ఇకపై "a" మరియు కీ "b") ఉత్పత్తి చేస్తాయి, దీని ఆధారంగా పబ్లిక్ కీలు (ga mod p మరియు gb mod p) లెక్కించబడతాయి మరియు పంపబడతాయి. ప్రతి పక్షం పబ్లిక్ కీలను స్వీకరించిన తర్వాత, ఒక సాధారణ ప్రాథమిక కీ (gab mod p) లెక్కించబడుతుంది, ఇది సెషన్ కీలను రూపొందించడానికి ఉపయోగించబడుతుంది. వెర్షన్ 1.2 వరకు ఉన్న TLS స్పెసిఫికేషన్ల ప్రకారం ప్రాథమిక కీ యొక్క అన్ని ప్రముఖ శూన్య బైట్లను దానితో కూడిన లెక్కల ముందు విస్మరించాల్సిన అవసరం ఉన్నందున, సైడ్-ఛానల్ విశ్లేషణ ద్వారా ప్రాథమిక కీని గుర్తించడానికి రకూన్ దాడి మిమ్మల్ని అనుమతిస్తుంది.
కత్తిరించబడిన ప్రైమరీ కీని చేర్చడం అనేది సెషన్ కీ జనరేషన్ ఫంక్షన్కి పంపబడుతుంది, ఇది విభిన్న డేటాను ప్రాసెస్ చేస్తున్నప్పుడు వివిధ జాప్యాలతో కూడిన హాష్ ఫంక్షన్లపై ఆధారపడి ఉంటుంది. సర్వర్ నిర్వహించే కీలక కార్యకలాపాల సమయాన్ని ఖచ్చితంగా కొలవడం వలన దాడి చేసే వ్యక్తి ప్రాథమిక కీ మొదటి నుండి ప్రారంభమవుతుందా లేదా అనేది నిర్ధారించడం సాధ్యం చేసే క్లూలను (ఒరాకిల్) గుర్తించడానికి అనుమతిస్తుంది. ఉదాహరణకు, దాడి చేసే వ్యక్తి క్లయింట్ పంపిన పబ్లిక్ కీ (ga)ని అడ్డగించవచ్చు, దానిని సర్వర్కి తిరిగి ప్రసారం చేయవచ్చు మరియు గుర్తించవచ్చు
ఫలితంగా వచ్చే ప్రాథమిక కీ సున్నా నుండి మొదలవుతుందా.
స్వతహాగా, కీ యొక్క ఒక బైట్ని నిర్వచించడం వల్ల ఏమీ ఇవ్వదు, కానీ కనెక్షన్ చర్చల సమయంలో క్లయింట్ ద్వారా ప్రసారం చేయబడిన “ga” విలువను అడ్డగించడం ద్వారా, దాడి చేసే వ్యక్తి “ga”తో అనుబంధించబడిన ఇతర విలువల సమితిని రూపొందించి, వాటిని పంపవచ్చు ప్రత్యేక కనెక్షన్ సంధి సెషన్లలో సర్వర్. "gri*ga" విలువలను రూపొందించడం మరియు పంపడం ద్వారా, దాడి చేసే వ్యక్తి, సర్వర్ ప్రతిస్పందనలో ఆలస్యం మార్పులను విశ్లేషించడం ద్వారా, సున్నా నుండి ప్రారంభమయ్యే ప్రాథమిక కీలను స్వీకరించడానికి దారితీసే విలువలను నిర్ణయించవచ్చు. అటువంటి విలువలను నిర్ణయించిన తరువాత, దాడి చేసే వ్యక్తి సమీకరణాల సమితిని సృష్టించవచ్చు
OpenSSL దుర్బలత్వాలు
అదనపు సమస్యలు విడిగా గుర్తించబడ్డాయి (
మూలం: opennet.ru