10 पॉइंट द्वारा GN⁺ 2025-02-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें

OpenBSD प्रोजेक्ट विभिन्न सॉफ़्टवेयर और आइडिया विकसित और मेंटेन करता है। नीचे इन्हें लगभग अपनाने के क्रम में व्यवस्थित किया गया है

अवधारणाएँ (Concepts)

  • IPSec(4): OpenBSD IPSec स्टैक प्रदान करने वाला पहला Free operating system था। 20 फ़रवरी 1997 को पेश किया गया
  • INET6(4): OpenBSD 2.7 में IPv6 का पूर्ण एकीकरण। विकास 6 जनवरी 1999 से शुरू हुआ, और उसी वर्ष 6 जून को पहले hackathon में यह लगभग पूरी तरह कार्यशील स्थिति तक पहुँच गया
  • अधिकार पृथक्करण (Privilege Separation): मार्च 2002 में पहली बार OpenSSH में लागू किया गया। बाद में bgpd(8), dhclient(8), smtpd(8), tmux(1) जैसे कई प्रोग्रामों में अपनाया गया
  • अधिकार वापसी (Privilege Revocation): विशिष्ट resource बनाए रखते हुए भी अधिकार कम करने की पद्धति लागू। उदाहरण: ping(8), traceroute(8)
  • स्टैक प्रोटेक्टर (Stack Protector): 2001 से विकसित "propolice" पर आधारित। OpenBSD 3.3 में डिफ़ॉल्ट रूप से सक्षम
  • W^X (Write XOR Execute): पहली बार OpenBSD 3.3 में लागू। OpenBSD 6.0 से डिफ़ॉल्ट रूप से सख़्ती से लागू किया गया
  • GOT और PLT सुरक्षा: OpenBSD 3.3 में ld.so को बेहतर बनाया गया ताकि GOT (Global Offset Table) और PLT (Procedure Linkage Table) सुरक्षित रहें
  • ASLR (Address Space Layout Randomization): OpenBSD 3.4 पहला संस्करण था जिसमें यह डिफ़ॉल्ट रूप से सक्षम था
  • gcc-local(1) विश्लेषण और जाँच: OpenBSD 3.4 में पहली बार पेश किया गया
  • malloc(3) सुरक्षा सुदृढ़ीकरण: memory allocation के समय randomization और delayed free लागू। OpenBSD 4.4 में पुनः कार्यान्वित
  • स्थिति-स्वतंत्र executable (PIE): OpenBSD 5.3 में पहली बार डिफ़ॉल्ट रूप से सक्षम। 7 hardware platform
  • रैंडम-आधारित memory initialization: OpenBSD 5.3 में ELF .openbsd.randomdata section जोड़ा गया
  • प्रति shared object स्टैक प्रोटेक्टर: OpenBSD 5.3 में हर shared object पर अलग stack protector cookie लागू
  • Static-PIE: /bin, /sbin और RAM disk में position-independent static binary समर्थन। OpenBSD 5.7 में पेश किया गया
  • SROP attack mitigation: OpenBSD 6.0 में डिफ़ॉल्ट रूप से सक्षम
  • library load order randomization: OpenBSD 6.0 और 6.2 में डिफ़ॉल्ट रूप से सक्षम
  • multithreaded environment में W^X सुरक्षा के लिए lazy-binding सुधार: OpenBSD 5.9 में पेश किया गया
  • memory layout hardening: OpenBSD 6.1 में सभी प्रोग्रामों और लाइब्रेरी पर लागू
  • fork+exec पद्धति का उपयोग: privilege-separated प्रोग्रामों में address space protection मज़बूत किया गया
  • trapsleds: ROP (Return-Oriented Programming) हमलों को कम करने के लिए NOP transformation तकनीक लागू
  • kernel boot पर relink: हर boot पर kernel के internal layout को randomize किया जाता है
  • i386/amd64 instruction sequence सुरक्षा सुदृढ़ीकरण: ROP हमलों को कठिन बनाने के लिए सुधार
  • MAP_STACK option जोड़ा गया: ROP हमलों में stack के अलावा memory के दुरुपयोग को रोकने के लिए
  • RETGUARD: मौजूदा stack protector से अधिक शक्तिशाली सुरक्षा तंत्र, OpenBSD 6.4 से पेश
  • MAP_CONCEAL option जोड़ा गया: संवेदनशील जानकारी को core dump में लीक होने से रोकता है
  • PROT_WRITE memory में system call ब्लॉक: OpenBSD 6.5 में पेश किया गया
  • system call location fix करना: केवल निश्चित स्थानों से system call संभव हों, इस तरह सीमित किया गया
  • address space protection सुदृढ़ीकरण: mmap(2), mprotect(2) आदि के माध्यम से memory परिवर्तन सीमित
  • sshd boot पर relink: OpenBSD 7.2 में पेश किया गया
  • non-readable code (xonly) समर्थन: executable memory को पढ़े जाने से रोकने की सीमा
  • pinsyscalls(2) system call protection: system call स्थानों को पहले से register करके सुरक्षा
  • indirect branch target protection (BTI, IBT): hardware-आधारित सुरक्षा सुविधा लागू
  • -fret-clean सुविधा जोड़ी गई: return value को stack पर बचे रहने से रोककर information leak को रोकता है। अभी केवल amd64 पर लागू

फ़ंक्शन (Functions)

  • issetugid(2): OpenBSD 2.0 में जोड़ा गया फ़ंक्शन, जो जाँचता है कि process set user ID या group ID के साथ चल रहा है या नहीं
  • arc4random(3): random number generation फ़ंक्शन, OpenBSD 2.1 में जोड़ा गया
  • bcrypt(3): password hashing के लिए फ़ंक्शन। पहली बार OpenBSD 2.1 में पेश किया गया
  • strlcpy(3), strlcat(3): सुरक्षित string copy और concatenation के लिए फ़ंक्शन। OpenBSD 2.4 में पेश
  • strtonum(3): string को number में बदलते समय त्रुटि से बचाने वाला फ़ंक्शन। OpenBSD 3.6 में पेश
  • imsg: message passing API, कई daemon में उपयोग। OpenBSD 4.8 में libutil में जोड़ा गया
  • timingsafe_bcmp(3): constant execution time सुनिश्चित करने वाला byte comparison फ़ंक्शन। OpenBSD 4.9 में पेश
  • explicit_bzero(3): memory को सुरक्षित रूप से मिटाने वाला फ़ंक्शन। OpenBSD 5.5 में जोड़ा गया
  • ohash: hash table implementation। OpenBSD 5.6 में libutil में शामिल
  • asr: वैकल्पिक DNS resolver। OpenBSD 5.6 में सक्रिय किया गया
  • reallocarray(3): memory reallocation के दौरान overflow रोकने वाला फ़ंक्शन। OpenBSD 5.6 में जोड़ा गया
  • getentropy(2): cryptographically secure random number प्रदान करने वाला फ़ंक्शन। OpenBSD 5.6 में पेश
  • sendsyslog(2): kernel से syslog message भेजने वाला फ़ंक्शन। OpenBSD 5.6 में जोड़ा गया
  • timingsafe_memcmp(3): constant execution time सुनिश्चित करने वाला memory comparison फ़ंक्शन। OpenBSD 5.6 में पेश
  • pledge(2): system call सीमित कर सुरक्षा बढ़ाने वाला फ़ंक्शन। OpenBSD 5.9 में जोड़ा गया
  • getpwnam_shadow(3), getpwuid_shadow(3): सुरक्षा बढ़ाने के लिए shadow password data प्राप्त करने वाले फ़ंक्शन। OpenBSD 5.9 में पेश
  • recallocarray(3): memory resize करते समय मौजूदा data को 0 से भरने वाला फ़ंक्शन। OpenBSD 6.1 में जोड़ा गया
  • freezero(3): memory मुक्त करते समय उसे 0 से भरने वाला फ़ंक्शन। OpenBSD 6.2 में पेश
  • unveil(2): file system access सीमित करने वाला फ़ंक्शन। OpenBSD 6.4 में जोड़ा गया
  • malloc_conceal(3), calloc_conceal(3): memory allocation के समय sensitive data की सुरक्षा की सुविधा। OpenBSD 6.5 में जोड़ा गया
  • ober: ASN.1 Basic Encoding Rules API। OpenBSD 6.6 में libutil में स्थानांतरित

प्रोग्राम और सबसिस्टम (Programs and Subsystems)

  • YP-संबंधित utilities: ypbind(8), ypset(8), ypcat(1), ypmatch(1), ypwhich(1), libc support जोड़ा गया। पहली बार NetBSD 0.9 में वितरित
  • ypserv(8): OpenBSD 2.0 में पेश किया गया YP server
  • mopd(8): MOP(Maintenance Operations Protocol) support daemon। OpenBSD 2.0 में जोड़ा गया
  • AnonCVS: OpenBSD code repository को anonymous access देने के लिए डिज़ाइन किया गया सिस्टम
  • aucat(1): audio server से संबंधित utility। OpenBSD 2.1 में जोड़ी गई
  • OpenSSH: SSH-आधारित सुरक्षित communication tool। OpenBSD 2.6 में पेश किया गया
  • mg(1): हल्का text editor। OpenBSD 2.7 में शामिल
  • m4(1): macro processor। OpenBSD 2.7 के बाद विस्तारित और मेंटेन किया गया
  • pf(4), pfctl(8), pflogd(8), authpf(8), ftp-proxy(8): packet filtering firewall। OpenBSD 3.0 में जोड़ा गया
  • systrace(4), systrace(1): system call monitoring tool। OpenBSD 3.2 में जोड़ा गया था, लेकिन OpenBSD 5.9 के बाद pledge(2) ने इसका स्थान लिया
  • spamd(8): spam filtering daemon। OpenBSD 3.3 में पेश किया गया
  • dc(1), bc(1): calculator utility। OpenBSD 3.5 में जोड़ी गई
  • sensorsd(8): hardware sensor monitoring tool। OpenBSD 3.5 में शामिल
  • pkg_add(1): package management utility। OpenBSD 3.5 में पेश किया गया
  • carp(4): failover के लिए network interface protocol। OpenBSD 3.5 में जोड़ा गया
  • OpenBGPD: BGP routing daemon। OpenBSD 3.5 में पेश किया गया
  • dhclient(8), dhcpd(8): DHCP client और server। OpenBSD 3.5~3.6 में जोड़े गए
  • hotplugd(8): hotplug event handling daemon। OpenBSD 3.6 में जोड़ा गया
  • OpenNTPD: NTP(Network Time Protocol) daemon। OpenBSD 3.6 में जोड़ा गया
  • dpb(1): distributed package build system। OpenBSD 3.6 में पेश किया गया
  • ospfd(8), ospfctl(8), ospf6d(8): OSPF(Open Shortest Path First) routing daemon। OpenBSD 3.7~4.2 में पेश किए गए
  • ifstated(8): interface state management tool। OpenBSD 3.8 में जोड़ा गया
  • bioctl(8): block device और RAID management tool। OpenBSD 3.8 में शामिल
  • hostapd(8): wireless access point management tool। OpenBSD 3.8 में पेश किया गया
  • watchdogd(8): system stability सुनिश्चित करने वाला watchdog timer। OpenBSD 3.8 में जोड़ा गया
  • sdiff(1): file comparison utility। OpenBSD 3.9 में पेश किया गया
  • dvmrpd(8), dvmrpctl(8): DVMRP(Distance Vector Multicast Routing Protocol) support। OpenBSD 4.0 में जोड़ा गया
  • ripd(8), ripctl(8): RIP(Routing Information Protocol) support। OpenBSD 4.1 में शामिल
  • pkg-config(1): package configuration tool। OpenBSD 4.1 में पेश किया गया
  • relayd(8), relayctl(8): network traffic relay tool। OpenBSD 4.1 में जोड़ा गया
  • cwm(1): lightweight window manager। OpenBSD 4.2 में जोड़ा गया
  • libtool(1): library build automation tool। OpenBSD 4.3 में शामिल
  • snmpd(8): SNMP(Simple Network Management Protocol) daemon। OpenBSD 4.3 में जोड़ा गया
  • sysmerge(8): system configuration file merge tool। OpenBSD 4.4 में जोड़ा गया
  • ypldap(8): LDAP-आधारित YP server। OpenBSD 4.4 में शामिल
  • OpenSMTPD: SMTP(Simple Mail Transfer Protocol) server। OpenBSD 4.6 में पेश किया गया
  • tmux(1): terminal multiplexer। OpenBSD 4.6 में शामिल
  • ldpd(8), ldpctl(8): Label Distribution Protocol (LDP) support। OpenBSD 4.6 में जोड़ा गया
  • mandoc(1): manual page documentation tool। OpenBSD 4.8 में पेश किया गया
  • ldapd(8), ldapctl(8): Lightweight Directory Access Protocol (LDAP) server। OpenBSD 4.8 में जोड़ा गया
  • OpenIKED: IKE(Internet Key Exchange) protocol implementation। OpenBSD 4.8 में पेश किया गया
  • iscsid(8), iscsictl(8): iSCSI daemon। OpenBSD 4.9 में शामिल
  • rc.d(8), rc.subr(8): system initialization script management। OpenBSD 4.9 में जोड़ा गया
  • npppd(8), npppctl(8): PPP(Point-to-Point Protocol) daemon। OpenBSD 5.3 में जोड़ा गया
  • ldomd(8), ldomctl(8): LDOM(Logical Domains) management tool। OpenBSD 5.3 में शामिल
  • sndiod(8): audio server। OpenBSD 5.3 में पेश किया गया
  • cu(1): serial communication utility। OpenBSD 5.4 में जोड़ी गई
  • slowcgi(8): धीमे HTTP request संभालने वाला tool। OpenBSD 5.4 में शामिल
  • signify(1): file signing और verification tool। OpenBSD 5.5 में जोड़ा गया
  • LibreSSL: OpenSSL को fork कर security hardening के लिए बनाया गया प्रोजेक्ट। OpenBSD 5.6 में पहली बार जारी
  • httpd(8): lightweight web server। OpenBSD 5.6 में शामिल
  • rcctl(8): rc.d service management utility। OpenBSD 5.7 में जोड़ा गया
  • doas(1): सरल privilege escalation utility। OpenBSD 5.8 में पेश किया गया
  • radiusd(8): RADIUS server implementation। OpenBSD 5.8 में जोड़ा गया
  • eigrpd(8), eigrpctl(8): EIGRP(Enhanced Interior Gateway Routing Protocol) support। OpenBSD 5.9 में शामिल
  • vmm(4), vmd(8), vmctl(8): virtual machine management system। OpenBSD 5.9 में जोड़ा गया
  • acme-client(1): ACME protocol का उपयोग कर certificate issuance client। OpenBSD 6.1 में पेश किया गया
  • syspatch(8): security patch management tool। OpenBSD 6.1 में जोड़ा गया
  • xenodm(1): XDM का साफ़-सुथरा fork version। OpenBSD 6.1 में शामिल
  • unwind(8): local DNS resolver। OpenBSD 6.5 में पेश किया गया
  • sysupgrade(8): system automatic upgrade tool। OpenBSD 6.6 में जोड़ा गया
  • rpki-client(8): RPKI(Route Origin Validation) client। OpenBSD 6.7 में पेश किया गया
  • resolvd(8): dynamic network environment में DNS settings प्रबंधित करने वाला tool। OpenBSD 6.9 में जोड़ा गया
  • dhcpleased(8): उन्नत DHCP client। OpenBSD 6.9 में शामिल

OpenBSD डेवलपर्स द्वारा OpenBSD के बाहर मेंटेन किए जाने वाले प्रोजेक्ट

  • sudo: ऐसा tool जो system administrator को किसी specific user को सीमित command execution अधिकार देने देता है। OpenBSD 2.7 में शामिल
  • femail: सरल mail transfer tool। 2005 में शुरू हुआ, और OpenBSD port उसी वर्ष 22 सितंबर को उपलब्ध कराया गया
  • midish: MIDI sequencer और processing tool। 2003 में शुरू हुआ, और OpenBSD port 4 नवंबर 2005 को उपलब्ध कराया गया
  • fdm: mail filtering और organizing tool। 2006 में शुरू हुआ, और OpenBSD port 18 जनवरी 2007 को उपलब्ध कराया गया
  • toad: OpenBSD के लिए software automatic deployment tool। 2013 में शुरू हुआ, और OpenBSD port उसी वर्ष 8 अक्टूबर को उपलब्ध कराया गया
  • docbook2mdoc: DocBook documents को mdoc manual page format में बदलने वाला tool। 2014 में शुरू हुआ, और OpenBSD port उसी वर्ष 3 अप्रैल को उपलब्ध कराया गया
  • portroach: FreeBSD के portscout को fork कर विकसित किया गया port update tracking tool। 2014 में शुरू हुआ, और OpenBSD port उसी वर्ष 5 सितंबर को उपलब्ध कराया गया
  • cvs2gitdump: CVS repository को Git में बदलने वाला tool। 2012 में शुरू हुआ, और OpenBSD port 1 अगस्त 2016 को उपलब्ध कराया गया
  • Game of Trees: Git का विकल्प बन सकने वाला version control system। 2017 में शुरू हुआ, और OpenBSD port 9 अगस्त 2019 को उपलब्ध कराया गया

1 टिप्पणियां

 
GN⁺ 2025-02-23
Hacker News राय
  • OpenBSD फ़ाउंडेशन ने लगभग 3.8 लाख डॉलर जुटाए

    • यह देखते हुए कि उसने OpenSSH बनाया और Fortune 500 कंपनियाँ सभी इसका उपयोग करती हैं, मेरा मानना है कि हर साल 10–20 लाख डॉलर जुटने चाहिए
    • अब समय आ गया है कि ये कंपनियाँ योगदान करें
    • हार्डवेयर वेंडरों को भी source जारी करना चाहिए, और Nvidia का सीधे उल्लेख किया गया
  • John Ioannidis का कुछ हफ़्ते पहले निधन हो गया, और लगभग किसी ने इस पर ध्यान नहीं दिया

    • वे Mobile IP (जिसने मोबाइल फ़ोन पर IP को काम करना संभव बनाया) की बुनियाद बनाने वाले व्यक्ति के रूप में भी जाने जाते थे
  • OpenBSD के privdrop/privsep डिज़ाइन और pledge(2)/unveil(2) को अपनाने के अलावा, हाल की mitigation कोशिशें जैसे mimmutable भी पर्याप्त ध्यान नहीं पा रही हैं

    • OpenBSD में अधिकांश प्रोग्रामों का static address space अपने-आप immutable हो गया है
    • आधुनिक Intel/AMD और ARM मशीनों पर execute-only memory और BTI/IBT डिफ़ॉल्ट रूप से सक्षम हैं
    • इसमें बड़े software ecosystem को तैयार करने के लिए ports development का काम भी शामिल है
  • OpenBSD 5.3 में Matthew Dempsky द्वारा random data memory लागू की गई थी

    • इस फ़ीचर का एक उपयोग RETGUARD है
    • RETGUARD stack protector की जगह लेता है और function-स्तर के random cookie का उपयोग करके stack के return address की लगातार जाँच करता है
  • AmigaOS ने 1985 में position-independent executables (PIE) और ASLR का उपयोग किया था

    • Amiga में MMU नहीं था और memory कम थी, इसलिए जो कुछ भी load होता था उसे उपलब्ध RAM में रखना पड़ता था
    • अलग-अलग sections को अलग स्थानों पर रखा जा सकता था, और compiler इसके लिए कई sections बनाता था
  • इस बात पर हैरानी जताई गई कि pledge/unveil को अधिक प्रमुखता से पेश नहीं किया गया

  • यह जानने की जिज्ञासा जताई गई कि क्या OpenBSD ने ISO C11 _Thread_local लागू किया है

    • OpenBSD पर software port करने में यही सबसे बड़ी असुविधा थी
    • OpenBSD एकमात्र प्रमुख OS था जो native thread-local storage को support नहीं करता था
  • यह सवाल उठाया गया कि OpenBSD पेज केवल basic HTML का उपयोग क्यों करते हैं और styling या CSS का उपयोग क्यों नहीं करते

    • typography पठनीयता के लिए महत्वपूर्ण है, और कम-से-कम उचित line height तथा लगभग 60 अक्षरों की line length सीमा होनी चाहिए
    • यह भी सवाल किया गया कि क्या OpenBSD संभावित users को गंभीरता से नहीं लेता
    • user experience महत्वपूर्ण है, और documentation की readability भी UX का हिस्सा है
  • एक और बेहतरीन संसाधन के रूप में <a href="https://why-openbsd.rocks/" rel="nofollow">https://why-openbsd.rocks/</a>; की सिफारिश की गई