امنیت اطلاعات در قراردادهای نرمافزاری؛ بیترس از فردا
«بیاعتمادی و احتیاط، والدین امنیت هستند.» این جمله بسیار گویا از بنجامین فرانکلین، علاوه بر…
۹ مهر ۱۴۰۳
در این نوشته تلاش خواهد شد تفاوتهای دیدگاه متخصصان نرمافزار و متخصصان حقوق نرمافزار تا حد امکان برای خوانندگان شرح داده شود. چراکه در فضای کنونی کسبوکارهای نرمافزاری و فناوری اطلاعات کشور، فاصله عظیم و عجیبی بین فهم مهندسان و حقوقدانان افتاده است که به دلیل زبان و اصطلاحات متفاوت در بسیاری مواقع باعث خواهد شد هیچ یک از این دو گروه تمایلی به استفاده از دانش و خدمات یکدیگر نداشته باشند. در حالی که موفقیت در مسیر هر پروژه یا کسبوکاری در گرو هماندیشی این افراد خواهد بود.
هنگامی که در حوزه نرمافزار صحبت از قوانین پیش میآید قوانین و اصول معروف صنعت توسعه نرمافزار به ذهن مخاطبان و متخصصان متبادر میشود، قوانینی چون Murphy’s Law (قانون مورفی) که اگر احتمال بروز خطا در کاری وجود داشته باشد آن خطا حتماً رخ خواهد داد یا اینکه مثلاً پروژهای از ددلاین عقب باشد اضافه کردن به تعداد دولوپرها تاخیر در عرضه پروژه را بیشتر میکند؛ در عوض با بهکارگیری متدولوژیهای توسعه نرمافزار همچون اجایل، آشنایی با ترفندهای زیبا، گیمینگ و غیره میتوان اثربخشی کار را دوچندان کرد که به آن Brook’s Law میگویند. یا قانون Hofstadter’s Law که میگوید همواره ارزیابیها درست از آب درنمیآیند و بیش از آن چیزی که ابتدا به ساکن در نظر گرفته بودید نیاز به زمان خواهید داشت. همواره اگر از دقیقترین ارزیابیها هم برای تکمیل پروژه نرمافزاری پیروی کنیم این قانون وجود دارد که بعضی عوامل از دست ما خارج خواهد بود و از این روی زمان بیشتری برای تکمیل آن تسک نیاز داریم. قانون دیگر و کمی عجیب قانون Conway’s Law است؛ اینکه شرکتهای نرمافزاری، اپلیکیشنهایی توسعه میدهند که نمود عینی فرهنگ و ساختار سازمانیشان است یا Postel’s Law که میگوید نسبت به چیزی که ارسال میکنید محافظهکار و سختگیر باشید اما در مقابل آنچه قرار است دریافت کنید وسواس زیادی به خرج ندهید. قانون Pareto Principle یا اصل ۸۰/۲۰ نیز ۸۰ درصد باگها را فقط و فقط ناشی از ۲۰ درصد فانکشنهای معیوب میشمارد. همین اصل پارتو اذعان کند که ۸۰ درصد از کارها را در یک تیم نرمافزاری ۲۰ درصد از اعضای تیم انجام میدهند و اصل یأسآور The Peter Principle حاکی از این عینیت است که در یک فضای کاری سلسلهمراتبی، افراد با توجه به موفقیتهای خود در سوابقشان ارتقا مییابند و بنا بر این اصل است که در برخی سازمانها شاهد مدیرانی هستیم که شایستگی کافی برای جایگاه فعلی خود ندارند.
اصل Kerchkhoff’s Principle هم که به نوعی سنگ زیربنایی public key در اصول رمزنگاری به شمار میرود حاکی از این مهم است که در رمزنگاری حتی اگر کلیه خصوصیات سیستم به جز کلید قابل رویت باشند، آن سیستم کماکان باید امن باشد. قانون دیگری که به نام خالق لینوکس، لینوس توروالدز، نامگذاری شده است Linus’s Law میگوید هرچه سورس کد در دسترس دولوپرهای بیشتری باشد باگهای آن زودتر یافت خواهند شد. Moore’s Law قانون دیگری است که مدعی است توان پردازشی سیستمهای کامپیوتری هر ۲۴ ماه دو برابر میشود. قانون عجینشده با عملکرد سیستمهای کامپیوتری Wirth’s law است و میگوید گرچه سختافزارها روزبهروز سریعتر میشوند، کاهش عملکرد نرمافزارها بهمراتب سریعتر است. Ninety-ninety Rule شبیه قانون ۸۰/۲۰ مدعی است در فاز توسعه نرمافزار ۹۰ درصد از سورس کد فقط در ۱۰ درصد از زمان توسعهدهندگان نوشته میشود و آن ۱۰ درصد از بخشهای ناتمام پروژه چیزی در حدود ۹۰ درصد از زمان تیم مهندسی را میگیرد. یا اینکه بهینهسازی زودهنگام نرمافزار ریشه همه مشکلات است را به Knuth’s Optimization Principle نسبت میدهند و با استناد به آن میگویند ابتدا باید پروژه را تکمیل، سپس مشکلات احتمالی را رفع و در نهایت بهینهسازی کرد یا با استناد به Norvig’s Law میگوییم مهم نیست اندازه مارکت چقدر باشد، رشد هر فناوریای که در میان ۵۰ درصد از افراد جامعه رخنه کند در آینده هرگز دوبرابر نخواهد شد… و قوانین دیگری که در حوزه نرمافزار متخصصان در فرایند پروژه به آنها استناد میکنند، اما آنچه حقوقدانان به آن میپردازند فضای قانونی متفاوتی است که بر حوزه حقوق نرمافزار حاکم است. قانون حمایت از حقوق پدیدآورندگان نرمافزارهای رایانهای و آییننامه اجرایی ثبت نرمافزار و نظام صنفی رایانهای نمونههایی از قوانین مدون جاری کشور به شمار میروند.
در وهله دوم، خوب است به این نکته توجه شود که تفاوت در اولویتها میتواند دردسرساز شود. برای یک مدیر (که البته میتواند مهندس باشد یا نباشد!) آنچه اولویت دارد کلید خوردن پروژه و کسب درآمد است و برای یک حقوقدان، تبعیت از قوانین و اصول مسلم حقوقی. و رعایت مقررات در اکثر موارد زمانبر و طولانی خواهد بود به طوری که میتواند به شدت موجب کاهش سرعت در تصمیمگیری و از دست رفتن فرصتهایی شود که هر اهل کسبوکاری میداند تا ابد منتظر ما نمیمانند. از طرفی فدا کردن قانون برای از دست ندادن فرصت نیز میتواند ریسکهای انکارناپذیری داشته باشد که علاوه بر ورود خسارت دیدن طرفین، به شکست پروژه بینجامد. بنابراین برای برقراری توازن بین این دو گروه، باید با نگاهی دووجهی به پروژههای نرمافزاری نگاه کرد و با استفاده از دانش فنی و حقوقی در به ثمر رسیدن محصول یاری رساند.
جالب است قراردادهای تنظیمشده به دست مهندسان عموماً بسیار کوتاه، گاه مبهم و بعضاً شتابزده است. در نقطه مقابل قراردادهای حقوقی در کمترین حالت سه برابر قراردادهای قبلی، وسواسگونه و با صرف زمان زیاد تنظیم میشود. چرا؟ چون قرارداد، قانون طرفین است و در زمان بروز اختلاف، راهگشا خواهد بود به شرطی که درست تنظیم شده باشد. شاید مشکل از همین عبارت «درست» شروع میشود. درست از نظر فنی با درست از نظر حقوقی تفاوتی فاحش دارد.
یک مهندس نرمافزار قرارداد درست را قراردادی میداند که در آن نام محصول نرمافزاری و کارکرد آن از یک طرف و مبلغ قابل پرداخت و مدتزمان انجام کار هم از طرف دیگر مشخص شده باشد. اما یک حقوقدان بدبینانهتر به موضوع نگاه میکند: خب موضوع، مبلغ و مدت مشخص است، نحوه پرداخت به چه ترتیب خواهد بود؟ مالکیت نرمافزار با کدام طرف است؟ امکان فسخ قرارداد برای یک طرف یا هر دو طرف وجود دارد؟ حل اختلاف مکانیسم خاصی دارد؟ آیا اطلاعات محرمانهای وجود دارد؟ و قس علی هذا. در اینجا هم فهم مشترک این دو گروه میتواند در تنظیم قراردادی با کمترین ابهام و نقص، نقش اساسی ایفا کند.
روند روبهرشد توسعه نرمافزارهای رایانهای در دهههای گذشته و تحولاتی که این نرمافزارها در زندگی بشر امروز رقم زدهاند، از منظر حقوق مالکیت فکری و چگونگی حمایت حقوقی از نرمافزارها حائز اهمیت بالایی است. در عرصه جهانی سازمان جهانی مالکیت فکری (WIPO) موضوع حمایت حقوقی از نرمافزارهای رایانهای را از دهه ۷۰ میلادی با ایده حمایت از نرمافزارها، در قالب یک نظام حمایتی ویژه از عناصر تشکیلدهنده یک برنامه رایانهای یعنی کد مقصد، کد منبع و دستورالعمل برنامه مد نظر قرار داد لیکن توجه قانونگذاران داخلی کشورها را جلب نکرد.
اقدام بعدی سازمان جهانی مالکیت فکری در خصوص حمایت از کپیرایت در فوریه ۱۹۸۵ با همکاری سازمان یونسکو دستاورد بزرگی بود که که متعاقباً در قوانین کشورهای فیلیپین، آمریکا، مجارستان، استرالیا و هند پیشبینی شد و کشورهای آلمان، ژاپن، فرانسه و انگلستان نیز ظرف سه ماه در قوانین کپیرایت خود مقرراتی برای حمایت از برنامههای رایانهای وضع کردند.
انتشار دستورالعمل اروپایی ۱۹۹۱ در خصوص برنامههای رایانهای و دوم تصویب موافقتنامه تریپس در سال ۱۹۹۴ در این حین نقش مهمی در تکمیل و پیشبرد مدل پیشنهادی وایپو و در نهایت معاهده کپیرایت وایپو (WCT) مصوب ۱۹۹۶ داشت تا برنامههای رایانهای به عنوان یک اثر ادبی تحت حمایت قرار گیرند.
هرچند نظام کپیرایت از جنبههای لفظی و ادبی یک برنامه حمایت میکند، ایدههای خلاقانه که اغلب هسته مرکزی یک نرمافزار و تعیینکننده ارزش تجاری آن هستند در چارچوب این نظام حمایت نمیشوند.
چنانچه مشهور است کپیرایت مانع سرقت و استفادههای غیرمجاز کاربران میشود اما لازم است حمایت از نرمافزارها در قالب نظام اختراعات از تکثیر و تقلید برنامه بهدست رقبا جلوگیری کند؛ به عنوان مثال در سال ۱۹۹۵ اداره اختراعات و علائم تجاری آمریکا رسماً اعلام کرد ادعای اختراع برای ابداعات و نوآوریها در حوزه نرمافزار قابل پذیرش است.
همچنین اتحادیه اروپا بهرغم اینکه کشورهای عضو اتحادیه قوانین داخلی خاص و مجزایی را در زمینه حمایت از حقوق پدیدآورندگان نرمافزارهای رایانهای وضع کردهاند، دستورالعملهای اروپایی سالهای ۱۹۹۱ و ۲۰۰۹ را به منظور حمایت از حقوق نرمافزارها و برنامههای رایانهای وضع کرده و با تدوین اینگونه قوانین و دستورالعملها منبع بسیاری از کشورها در زمینه این نوع حمایت حقوقی بوده است.