క్రిప్టోగ్రఫీ ఉపవ్యవస్థలో Linux మద్దతును తొలగించే తయారీలో ఉంది సున్నా కాపీ ఇంటర్ఫేస్ నుండి AF_ALG అల్గోరిథం రకాల కోసం స్కైఫర్ и AEADఈ మార్పు ఇప్పటికే క్రిప్టోడెవ్ ట్రీలో ఉంది మరియు మెర్జ్ విండోకు సమర్పణ కోసం వేచి ఉంది. Linux 7.2జూన్లో ప్రారంభం కానున్న దీనికి కారణం, ముఖ్యంగా క్రిప్టోగ్రాఫిక్ కోడ్లో ఇటీవలి లోపాల తర్వాత, కెర్నల్లోని జీరో-కాపీ మెకానిజమ్ల భద్రతపై పెరుగుతున్న ఆందోళనలే. Linux.
AF_ALG అది - వినియోగదారు ఇంటర్ఫేస్ కెర్నల్ క్రిప్టోగ్రాఫిక్ APIకి Linuxదీని ద్వారా, ప్రోగ్రామ్లు సైఫర్లు, హాష్లు మరియు AEAD అల్గారిథమ్ల యొక్క కెర్నల్ ఇంప్లిమెంటేషన్లను సాకెట్లుగా యాక్సెస్ చేయగలవు. డాక్యుమెంటేషన్ Linux splice() మరియు vmsplice() ద్వారా AF_ALG కోసం జీరో-కాపీ మోడ్ను ఇది విడిగా వివరిస్తుంది, దీనిలో కెర్నల్ మెమరీలోకి అనవసరంగా డేటాను కాపీ చేయడాన్ని కెర్నల్ నివారించడానికి ప్రయత్నిస్తుంది.
సమస్య ఏమిటంటే AF_ALG విషయంలో, ఈ పనితీరు మెరుగుదల అంత గణనీయంగా లేదు, మరియు నష్టభయాలు చాలా ఎక్కువగా ఉన్నాయి. ఈ మార్పును చేసినవారు, క్రిప్టోగ్రాఫిక్ సబ్సిస్టమ్ డెవలపర్ Linux గూగుల్కు చెందిన ఎరిక్ బిగ్గర్స్, ఎత్తి చూపారుఆ జీరో-కాపీ, su బైనరీ వంటి ఫైళ్ల పేజ్ కాష్ పేజీలపై నేరుగా క్రిప్టోగ్రాఫిక్ ఆపరేషన్లను అమలు చేయడానికి యూజర్ స్పేస్ను అనుమతిస్తుంది, మరియు మెమరీపై ఒక ఆపరేషన్తో పాటు దానిని ఏకకాలంలో సవరించగలిగినప్పుడు, TOCTOU దుర్బలత్వాలకు పరిస్థితులను కూడా సృష్టిస్తుంది.
మరో మాటలో చెప్పాలంటే, నెట్వర్క్ లేదా ఫైల్ I/O కోసం ఉపయోగపడే ఒక యంత్రాంగం AF_ALGలో అత్యంత ప్రమాదకరమైన ఆప్టిమైజేషన్గా కనిపిస్తోంది. డెవలపర్ ప్రకారం, యూజర్-స్పేస్ క్రిప్టోగ్రఫీకి ఇంకా మార్చబడని iwd వంటి కొన్ని ప్రోగ్రామ్లతో బ్యాక్వర్డ్ కంపాటిబిలిటీ కోసం AF_ALG ప్రస్తుతం ప్రధానంగా ఉంచబడింది. AF_ALG వాస్తవానికి హార్డ్వేర్ క్రిప్టో యాక్సిలరేటర్లను యాక్సెస్ చేయడానికి ఉద్దేశించబడింది, కానీ ఆచరణలో ఈ పనికి ఇది అసమర్థమైన ఇంటర్ఫేస్గా నిరూపించబడింది.
AF_ALG కోసం splice() లేదా sendfile() ఫంక్షన్లను పూర్తిగా తొలగించడం లేదని గమనించడం ముఖ్యం. ఈ మార్పును అనుకూలతకు సంబంధించిన "సాఫ్ట్ బ్రేక్"గా వర్ణించారు: splice() మరియు sendfile() ద్వారా AF_ALG అభ్యర్థనలకు డేటాను పంపడం పని చేస్తూనే ఉంటుంది, కానీ క్రిప్టోగ్రాఫిక్ ఆపరేషన్ను నిర్వహించే ముందు కెర్నల్ ఇప్పుడు డేటా యొక్క అంతర్గత స్థిరమైన కాపీని తయారు చేస్తుంది. కొన్ని సందర్భాల్లో పనితీరు తగ్గవచ్చు, కానీ యూజర్ API అధికారికంగా విచ్ఛిన్నం కాదు.
జీరో-కాపీని తొలగిస్తున్నారని ప్రత్యేకంగా నొక్కి చెప్పబడింది skcipher и తల. రకానికి మద్దతు హాష్ విడిగా పరిగణించబడుతుంది.
ఈ మార్పు జరిగిన సందర్భం దురదృష్టకరమైనది. ఏప్రిల్ నెలాఖరులో ఒక లోపం బయటపడింది. ఫైల్ను కాపీ చేయండి (CVE-2026-31431algif_aead లో, అంటే AF_ALG క్రిప్టోగ్రాఫిక్ యూజర్ ఇంటర్ఫేస్లో. AF_ALG, splice(), మరియు AEAD ప్రాసెసింగ్ ఫీచర్ల కలయిక, setuid బైనరీలకు సంబంధించిన పేజీలతో సహా పేజ్ కాష్ను ఒక అధికారాలు లేని యూజర్ కరప్ట్ చేయడానికి మరియు రూట్కు ప్రివిలేజ్ ఎస్కలేషన్ పొందడానికి అనుమతిస్తుందని పరిశోధకులు నిరూపించారు.
ప్రదర్శన ఫైల్ను కాపీ చేయండి 2017లో AEAD ఆపరేషన్లను ఇన్-ప్లేస్ ప్రాసెసింగ్కు మార్చిన ఒక ఆప్టిమైజేషన్ కారణంగా ఇది జరిగింది; splice() ద్వారా AF_ALGకు ఒక ఫైల్ను పంపినప్పుడు, కెర్నల్ ఒక కాపీకి బదులుగా పేజ్ కాష్ పేజ్ రిఫరెన్స్లతో పనిచేసింది. ఫలితంగా, కేవలం ఇన్పుట్గా మాత్రమే పరిగణించబడిన కొంత డేటా, వ్రాయబడిన స్కాటర్లిస్ట్లో చేరిపోయే అవకాశం ఉంది.
AF_ALG నుండి జీరో-కాపీని తొలగించడం అనేది ఒకే ఒక్క దుర్బలత్వానికి లక్షిత పరిష్కారం కాదు. బదులుగా, ఇది పెద్దగా ఉపయోగించని UAPI నుండి ఒక పూర్తి తరగతి ప్రమాదకరమైన పరిస్థితులను తొలగించే ప్రయత్నం. ఎందుకంటే, ఈ పరిస్థితులలో ఆప్టిమైజేషన్ వల్ల కలిగే ప్రయోజనాలు, దాని సంక్లిష్టతను మరియు సంభావ్య పరిణామాలను సమర్థించవు. సాధారణ వినియోగదారులకు, ఈ మార్పు బహుశా గమనించలేనంతగా ఉంటుంది; కానీ splice() లేదా sendfile() ద్వారా AF_ALGని చురుకుగా ఉపయోగించే అరుదైన ప్రోగ్రామ్లలో, అదనపు కాపీయింగ్ కారణంగా పనితీరు తగ్గే అవకాశం ఉంది.
మూలం: linux.org.ru
