13 पॉइंट द्वारा GN⁺ 2024-12-31 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • curl-impersonate एक विशेष curl build है जो प्रमुख web browsers जैसे Chrome, Edge, Safari, Firefox की नकल कर सकता है
    • TLS और HTTP handshake बिल्कुल असली browser की तरह करता है
    • इसे command line tool के रूप में इस्तेमाल किया जा सकता है या library के रूप में integrate किया जा सकता है
  • महत्व
    • जब कोई HTTP client किसी TLS website तक पहुँचता है, तो वह TLS handshake करता है, और इस प्रक्रिया में client की विशेषताओं की पहचान की जा सकती है
    • curl-impersonate इन handshakes को असली browser जैसा बना देता है ताकि web services client की पहचान न कर सकें
  • तकनीकी implementation
    • curl को Google की TLS library BoringSSL का उपयोग करके compile किया गया है.
    • विभिन्न TLS extensions और SSL options में बदलाव किए गए हैं.
    • HTTP/2 connection settings बदली गई हैं.
    • curl को non-standard flags के साथ चलाया जाता है.
  • समर्थित browsers
    • Chrome, Edge, Safari, Firefox सहित browsers के कई versions की नकल की जा सकती है.
    • हर browser के लिए scripts उपलब्ध हैं.
  • बुनियादी उपयोग
    • हर supported browser के लिए curl-impersonate चलाने वाली wrapper scripts दी गई हैं.
    • उदाहरण: curl_chrome123 https://www.wikipedia.org
  • उन्नत उपयोग
    • libcurl-impersonate library का उपयोग करके API के माध्यम से configuration किया जा सकता है.
    • CURL_IMPERSONATE environment variable का उपयोग करके runtime पर library को बदला जा सकता है.
  • इंस्टॉलेशन
    • Windows, Linux, macOS के लिए precompiled binaries GitHub releases page पर उपलब्ध हैं.
    • Docker image के माध्यम से भी इसका उपयोग किया जा सकता है.
  • यह repository curl-impersonate का एक अधिक सक्रिय fork है, जिसमें निम्नलिखित मुख्य अंतर हैं
    • Encrypted Client Hello(ECH) support: Chrome 119 में जोड़ी गई ECH सुविधा शामिल है.
    • ZSTD compression support: Chrome 123 में जोड़े गए ZSTD compression protocol का support.
    • X25519Kyber768 curve support: Chrome 124 में जोड़ी गई नई cryptographic curve शामिल है.
    • Akamai HTTP/2 fingerprint options expansion: Safari सहित HTTP/2 fingerprint options को और मजबूत किया गया है.
    • नवीनतम curl version में upgrade: version को curl 8.7.1 तक अपडेट किया गया है.
    • TLS extension order और GREASE configuration: TLS extension order और GREASE को enable/disable करने के options जोड़े गए हैं.
    • Webkit और Gecko आधारित browser support की तैयारी: Chrome और Firefox के लिए single binary पर काम जारी है.

1 टिप्पणियां

 
GN⁺ 2024-12-31
Hacker News राय
  • एक प्रोजेक्ट है जो Python binding के ज़रिए requests जैसी API देता है। यह पूरे browser stack को चलाए बिना HTTP requests करना आसान बनाता है

    • इससे लगता है कि open internet का अंत आ रहा है। बड़ी कंपनियां चाहती हैं कि लोग सिर्फ़ वही software इस्तेमाल करें जिसे वे मंज़ूरी दें, और वे users की पहचान करना चाहती हैं
    • वे security, bots, DDoS आदि कई कोणों से इस पर काम कर रही हैं, और यह सिर्फ़ browser तक सीमित नहीं है
    • लगता है अंतिम लक्ष्य यह है कि बड़ी कंपनियां users के हर behavior को track करें और सिर्फ़ मंज़ूरशुदा behavior ही होने दें
  • कुछ sites पर JavaScript-आधारित browser detection की ज़रूरत पड़ती है। puppeteer-extra-plugin-stealth को भी निष्प्रभावी किया जा सकता है

    • TLS fingerprinting शायद उन sites पर इस्तेमाल नहीं होगी जहां bot detection बहुत गंभीर नहीं है
    • headless browser से कम समय तक वैध रहने वाले token/cookie हासिल करके, फिर उनका इस्तेमाल lightweight client से requests करने में उपयोगी हो सकता है
  • build script जटिल है। autotools इस्तेमाल होता है, लेकिन build subdirectory में करना पड़ता है

    • default build target प्रोजेक्ट build नहीं बल्कि help text है
    • build target इस्तेमाल करने पर dependencies ठीक से सेट नहीं हैं, इसलिए इसे कई बार चलाना पड़ता है
    • BoringSSL build failure की वजह से build पूरा नहीं हो सका। Ubuntu 20 पर कोशिश की लेकिन असफल रहा
    • Ubuntu 22 पर भी कोशिश की, लेकिन BoringSSL build fail हुआ। make script बेहतर चला
    • -Werror हटाने से समस्या हल हुई। dependency list अधूरी है
    • libc++-XX-dev और libc++abi-XX-dev की ज़रूरत है। installation process थोड़ा अधूरा है
    • BoringSSL एक बड़ी library है, इसलिए build में काफ़ी समय लगता है
  • Python के लिए ऐसा ही एक प्रोजेक्ट बनाया है। Windows build में मदद करने वाले लोगों की तलाश है

  • बहुत कम websites JA3/JA4 fingerprinting का इस्तेमाल करती हैं। कुछ sites advanced techniques का भी इस्तेमाल करती हैं जो headers और fingerprints को आपस में जोड़ती हैं

    • Burp Suite के fingerprint का इस्तेमाल करके security work किया जा सकता है
  • ja3proxy का इस्तेमाल करके utls के माध्यम से HTTP proxy expose किया जाता है। HTTP/2 के लिए कोई खास फीचर नहीं है

  • Go भाषा में मुख्य रूप से tls-client package इस्तेमाल होता है

  • AI scraper farm द्वारा sites को DDoS करने से जुड़ी बातें और दिलचस्पी

  • लगता है ऐसे projects प्रकाशित नहीं होने चाहिए। दुश्मन हमारे बीच हो सकता है

    • user-agent भेदभाव अवैध होना चाहिए। लगता है EU बदलाव ला सकता है, लेकिन उसकी digital identity में भी काफ़ी रुचि है
  • अगर किसी खास website से data पढ़ना हो, तो वे handshake जानकारी का इस्तेमाल करके software से पढ़ने से रोकते हैं

    • HTTP requests के लिए default रूप से headless browser का इस्तेमाल करते हैं। कुछ websites captcha आदि की वजह से पढ़ी नहीं जा सकतीं