مقالات
- بازدید: 19842
مقدمه:
در دنیای مدرن و پر سرعت امروز، و در حالیکه استفاده از کامپیوتر ها و ابزارهای دیجیتالی با سیر صعودی در حال گسترش است، باید در فکر تمهیداتی بود تا گردش کاغذ و بوروکراسی اداری جای خود را به سیستمهای خودکار و اتوماسیون اداری بدهد. در این میان بخش اعظمی از کار به اسناد حقوقی و بازرگانی ، چکها و سفته ها، تعهدنامه ها و… برمی گردد. امروزه بخش زیادی از اسناد مکتوب از شکل کاغذی به شکل الکترونیکی درآمده اند. لذا باید این اسناد نیز به نحوی دارای امضای دیجیتالی و پشتوانه حقوقی می شدند تا قابلیت جایگزین شدن بجای کاغذ را پیدا کنند.
در دنیای مجازی امروز هر مکانیزمی که بتواند سه نیاز زیر را در خصوص اسناد و مدارک دیجیتالی بر آورده کند، امضای دیجیتالی نامیده می شود:
الف) دریافت کننده سند یا پیام الکترونیکی بتواند هویت صاحب سند را به درستی تشخیص داده و از جعلی نبودن آن اطمینان حاصل کند.
ب) صاحب و امضا کننده سند بعدا نتواند محتوای سند یا پیام ارسالی خود را به هیچ طریقی انکار کند.
ج) یک متقلب ثالث نتواند پیامها یا اسناد جعلی تولید و آنها را به دیگران منتسب کند.
با دقت به سه مورد فوق درخواهید یافت که ای موارد در سیستمهای اقتصادی و مرتبط با گردش پول و اعتبار حیاتی است و برای حلوگیری از هرگونه جعل و کلاهبرداری و حفظ منافع طرفین یک پیشنیاز به شمار می آید.
اندیشه امضای دیجیتالی که به پژوهشهای دیفی و هلمن بازمی گردد در مورد الگوریتمی بود که بتواند خواص امضاهای دستی را در حد عالی و متکامل داشته باشد. ولی در عین حال توسط ماشین و بصورت خودکار تولید شود. بزرگترین تفاوت امضاهای دستی با امضاهای دیجیتالی در آن است که امضاهای دستی ثابت اند و شکل آنها نباید تغییر کند در حالی که امضاهای دیجیتالی ماهیتاً وابسته به پیام اند و به ازای هر پیام تغییر می کنند. روشهای متعددی برای پیاده سازی امضای دیجیتالی معرفی شده است که عبارتند از:
1.امضاهای دیجیتالی مبتنی برچکیده پیام (message digest) که در این نوع مکانیزم، بدون آنکه محتوای سند رمزنگاری شود یا محرمانه ماندن آن مد نظر باشد، یک امضای کوچک چند بایتی برای آن تولید می گردد
2.امضاهای دیجیتالی کلید متقارن مبتنی بر یک مرکز مورد اعتماد برای گواهی امضاء
3.امضاهای مبتنی بر روشهای رمزنگاری کلید عمومی
4.امضاهای مبتنی بر تبدیلهای مستقل از سیستمهای رمزنگاری
قابل توجه است که امروزه در بسیاری از کشورها قوانین قضایی مستحکمی در ایجاد پشتوانه حقوقی برای امضاهای دیجیتالی وضع شده اند و دادگاهها قادرند مناشقات حقوقی در این زمینه را براساس قوانین موجود حل و فصل کنند.
امضاهای دیجیتالی مبتنی بر چکیده پیام
در این مکانیزم، از هر سند (پس از ایجاد و قرار گرفتن در یک قالب استاندارد و مشخص) یک چکیده کوتاه چند بایتی استخراج می شود. این چکیده کوتاه چند بایتی ، به طرز بسیار پیچیده ای از تک تک بیتها و جایگاه آنها در متن تاثیر می پذیرد و به نحوی محاسبه و استخراج می شود که هرگونه تغییرات جزئی یا کلی در متن ، باعث تغییرات چشمگیر در چکیده آن خواهد شد. پس از استخراج چکیده پیام ، رشته بیتی حاصل ، توسط کلید خصوصی صاحب پیام رمزنگاری شده و نتیجه حاصله به اصل پیام ضمیمه می شود. برای اعتبار سنجی و تایید اصالت سند، گیرنده می تواند براحتی چکیده رمز شده سند را با کلید عمومی صاحب سند(که همه آن را می دانند) از رمز خارج کرده و همچنین یکبار دیگر خودش راسا چکیده سند را محاسبه و با مقایسه این دو مقدار و مساوی بودن آنها ،اعتبار سند تایید می شود.در غیر اینصورت سند جعلی است و یا توسط اخلا گران میانی (man in the middle) تغییراتی در آن اعمال شده است.
در مکانیزم پیشنهادی برای امضاهای دیجیتالی به دو الگوریتم عمده نیاز است:
الف) الگوریتمی برای محاسبه و استخراج چکیده پیام
به الگوریتمهایی که از درون یک پیام با طول متغیر، یک چکیده پیام با طول کوتاه و ثابت محاسبه و استخراج می کنند، اصطلاحا توابع درهم ساز (Hash function) و به چکیده پیام ، کد درهم شده (Hash code) گفته می شود.این الگوریتمها که امروزه برای محاسبه چکیده پیام بکار می روند ، بدین قرارند:
١- MD5 : این الگوریتم که در سال ١٩٩١ توسط رونالد رىوست ارائه شد، پیامها با هر طولی را پذیرفته و بادر هم فشرده کردن تمام بیتهای آن پیام، طبق رابطه ای نسبتا پیچیده و وارون ناپذیر ، یک چکیده ١٢٨ بیتی از کل پیام استخراج می کند بگونه ای که تمام بیتهای خروجی از یکایک بیتهای متن اصلی تاثیر می پذیرند. این الگوریتم شکسته شده است و استفاده از آن از نظر امنیتی درست نیست.
٢- SHA-1 : یکی از مهمترین توابع استخراج چکیده پیام است که توسط اداره استانداردها و فناوریهای مدرن آمریکا به شماره FIPS-١٨٠-١ در سال ١٩٩٣ معرفی شده و جهت استفاده عموم به ثبت رسیده است. این الگوریتم که جایگزین مناسب و مطمئن MD5 به حساب می آمد و با توجه به آنکه استاندارد دولت فدرال آمریکا را یدک می کشید بلافاصله در پروتکل ها و برنامه های کاربردی مثل S/MIME, SSL, TLS, IPSEC و حتی در سطح سخت افزار مورد استفاده قرار گرفت. در این الگوریتم بر خلاف MD5 طول چکیده پیام ١٦٠ بیت می باشد. در سال ٢٠٠٥ با پیدا شدن دو پیام با چکیده مساوی طومار این الگوریتم نیز در هم پیچیده شد .
٣- SHA-2 : version جدیدتری از SHA است و به خانواده ای از الگوریتمهای مورد تایی سازمان استاندارد آمریکا گفته می شود که در همگی آنها ، طول چکیده پیام بیشتر از ١٦٠ بیت است و روش تلفیق داده ها در آنها اندکی پیچیده تر و مطمئن تر از قبل انجام می شود. این خانواده از الگوریتمها عبارتند از SHA-512 , SHA-384 , SHA-256 , SHA-224 که اعداد انتهایی ، طول چکیده پیام تولیدی توسط الگوریتم را مشخص می کند .
ب) الگوریتمی برای رمزنگاری با کلید عمومی
الگوریتمهای مورد نیاز برای رمزنگاری با کلید عمومی مانند RSA و El Gemal (طاهر الجمال) می باشد که استفاده از هر کدام برای رمز کردن چکیده پیام بلا مانع است و استانداردهایی با هر کدام از این دو روش تعریف شده است.
مشکل مدیریت کلیدهای عمومی
روشهایی که با آنها آشنا شدید، به دو دسته تقسیم می شوند:
1.True Signature (امضای حقیقی) :که طرفین ارتباط مستقیما پیامهای خود را امضا و مبادله می کنند.چنین مکانیزمهایی به کمک یکی از روشهای رمزنگاری کلید عمومی (مانند RSA وDSA و El Gemal) یا روشهای کلید متقارن و حتی به روشهایی مستقل از رمزنگاری (مثل HMAC) قابل پیاده سازی هستند. در روشهای پیاده ساز ی امضای حقیقی ویژگی انکارناپذیری پیام وجود ندارد و هر یک از طرفین به سادگی می توانند محتوای پیام خود را به کل منکر شوند.
2.امضاهای موثق و داوری شده: رده دوم امضاهای معرفی شده که در پیاده سازی آنها حضور یک مرکز گواهی امضا الزامی است. مکانیزمی را که در این خصوص معرفی کردیم بر اساس رمزنگاری متقارن استوار شده بود و تمام تعاملات بین افراد از طریق مرکز گواهی امضا صورت می گرفت که بخودی خود خطر ایجاد گلوگاه در شبکه را افزایش می دهد و صرفا برای محیطهای کوچک و اختصاصی (مثل یک موسسه اعتباری با مشتریان کم) مفید است.
در امضاهای دیجیتالی مبتنی بر کلید عمومی ، هر کسی دارای یک کلید خصوصی و یک کلید عمومی است که بر اساس آنها می تواند به رمزنگاری و رمزگشایی امضای پیامهی خود بپردازد.بطور مپال الگوی امضای مبتنی بر چکیده پیام،الگوی بسیار کارآمدی است ولی دو اشکال عمده آن را تهدید می کند:
الف) ملاک احراز هویت یک پیام در این الگوها آن است که اگر چکیده رمز شده پیام با کلید عمومی شخصی مثل آلیس از رمز خارج شد و با چکیده پیام دریافتی تطابق داشت، نتیجه می گیریم پیام متعلق به آلیس است.حال چه تضمینی وجود دارد که آلیس کلید عمومی خود را منکر نشود و از وجود کلید عمومی و پیامهی ارسالی خود اظهار بی اطلاعی نکند؟
ب) چه تضمینی وجود دارد که کسی با تولید یک جفت کلید عمومی و خصوصی ، خود را آلیس معرفی نکند. به عنوان مثال فرض کنید کسی با ایجاد یک وب سایت دروغین، خود را شخصی دیگر معرفی کرده وکلید عمومی دلخواه خود را در این وب سایت جعلی منتشر کند. در مکانیزمی که احراز هویت پیامها بر اساس کلید عمومی صاحب پیام صورت می گیرد چگونه می توان مطمئن شد که یک کلید عمومی واقعا متعلق به همان کسی است که واقعا ادعا می کند؟
اینجاست که با چالشی جدی در امضای دیجیتالی روبرو می شویم. راه حل تمام این مشکلات مکانیزمی است که بر اساس آن افراد کلیدهای عمومی خود را بنحوی ثبت کرده و برای آن گواهینامه دریافت می کنند.بدین ترتیب کسی قادر نیست پس از آنکه پیامش را با کلیدی رمز کرد منکر آن شود چرا که شخصا آن را ثبت نموده است. در ضمن صدور گواهینامه برای افراد و درج کلیدهای عمومی در آن ، مشکل افرادی را که تلاش می کنند خودشان را جای دیگران جا بزنند، بطور ریشه ای حل خواهد کرد. این مکانیزم قدرتمند، چیزی نیست جز ساختار قدرتمندی که برای گواهینامه های دیجیتالی تعریف شده است.
- بازدید: 19704
چگونه مي توان به يك استراتژي امنيتي درست دست پيدا كرده و از آن به عنوان وسيله اي براي پيشرفت در شغل و رسيدن به موفقيت ها و دستاوردهاي مثبت استفاده كرد؟
آيا شما به دنبال يافتن فوايد راهبري امنيتي هستيديا اينكه مدير ساده يك firewall مي باشيد كه مشغله مهم ذهنش خنثي كردن حملات است؟ آيا شما يك كارآفرين هستيد؟ اگر پاسخ شما مثبت است عملكرد شما چگونه بوده؛ تاكتيكي يا راهبردي؟در طي اين مقاله شما خواهيد دانست كه هدف استراتژي امنيت صحبت درباره صرف هزينه هاي بيشتر نيست، بلكه هدف آن عملكرد متمركز در انجام امور گوناگون مي باشد.
براي شروع، تمركز خود را بر هسته تجاري سازمان خود، اولويت ها و بخش هاي شلوغ و مركزي سازمانتان معطوف كنيد. براي اين كار تمامي نقاط حساس كارتان و به ويژه قسمت هايي كه مربوط به امنيت است را در نظر بگيريد. چنانچه كسب و كارتان استراتژي قانونمندي ندارد و يا در برنامه هاي موجود هيچگونه اشاره اي به امنيت نشده، اصلا نگران نشويد.وظيفه و شغل شما تعريف يك استراتژي امنيتي بر اساس ريسكهاي موجود مي باشد بطوريكه از تجارت شما پشتباني كاملي را به عمل آورد.
چگونه امنيت مي تواند ارزش كسب و كار شما را بالا ببرد.
ماهيت كسب و كار شما و مجريان حفظ امنيت اين كسب و كار، تاييد كننده استراتژي هاي شما هستند:
چرا وجود امنيت در كسب و كارتان لازم است و چرا بابت آن هزينه صرف مي كنيد؟
مشتريان كسب و كار شما چه كساني هستند و نقش امنيت در كسب و كارتان چيست؟
آيا شما ويژگي و يا تخصص خاصي داريد كه ضامن كار شما باشد. براي مثال آيا شما طراح سخت افزار و يا نرم افزار كامپيوتريد؟
خدمات خارجي كسب و كار شما چيست؟ و آيا اين خدمات به امنيت كسب و كارتان لطمه اي وارد مي كند؟
فروشندگان، توليد كنندگان و شركاي تجاري مهم در كسب و كار شما چه كساني هستند؟
آيا شما طرفدار بازرسي امنيتي باز هستيد؟
آيا سازمان شما نيازمند اقدامات مداوم و منظم است؟
چنانچه شركت شما يك شركت بين المللي است، مشكلاتي كه به دليل تقابل فرهنگي براي شما پيش مي آيد، چه چيز هايي هستند؟
تهديدات واقعي كسب و كار شما چه چيزهايي هستند؟
نقش شهرت، جريمه هاي نقدي، فقدان تواناييها و استعدادهاي خاص ، زمان تدارك محصول در بازار، ابطال و از دست دادن جواز ها و يا توانايي لازم در تجارت، در كسب و كار شما تا چه اندازه است؟
آنچه كه واقعا در كسب و كارتان به آن نياز داريد و اولويت كاري شما محسوب مي شود را به دقت شناسايي كنيد.
برآوردي از داشته ها و سرمايه ها، تعيين كننده ملزومات امنيتي
در اولين قدم، شما بايد سرمايه گذاران، داشته ها و محدوديت هاي خود را بشناسيد كه شامل مقبوليت عام و خاص شما و سرويسي كه ارائه مي دهيد، قانوني بودن فعاليتها، منابع انساني، بازرسي هاي داخلي، تكنولوژي اطلاعات و حلقه هاي مرتبط كننده شما به آن، گزارشات مستقيم و ... مي باشد. در اين زمينه هيچگاه اصول و بخشهاي مهم كسب و كارتان را از قلم نيندازيد. ابتكارات اصلي در پروژه هايي كه كسب و كار شما را پيش مي برند در نظر گرفته و مشخص كنيد كه چگونه امنيتي كه تعريف خواهيد كرد با مدل فعاليت تجاري شما منطبق مي شود.
ارزيابي نفاط قوت، نقاط ضعف، فرصت ها و تهديدات برنامه هاي امنيتي (SWOT)
خطرات اصلي و شكاف ها، فرصت هاي غير واقعي و فرصت هايي كه مي توان با صرف وقت و هزينه كم، بيشترين بهره را از آنها برد، شناسايي كنيد. از تمام توان كاركنان خود بهره ببريد. به دنبال دستيابي به موفقيت هاي سريع باشيد تا با يك جهش بزرگ، تجارت خود را به پيش بريد .
بكار گيري روشهاي غير اصولي،همانطور كه بر صنعت و سازمان شما تاثير مي گذارد ، بر امنيت نيز تاثير خواهد گذاشت
پخش شايعات جعلي، رشد درصد جرايم on-line اي كه با فریب افراد صورت می گیرد و همچنین رشد این جرایم در بخشهای wireless و mobility ، مجازی سازی، افزایش مقررات جهانی و نیز نرم افزارهایی که بعنوان سرویس دهنده عمل کرده و با نام نه چندان جدید Cloud Computing یا Shred IT Services شناخته می شوند ،همگي بايد مورد توجه قرار گيرند زيرا احتمال آسيب رساندن آنها به كسب و كار و امنيت شما بيشتر است. حال چند مثال ديگر را برايتان مطرح مي كنيم:
هجوم دزدان لب تاپ ها: چنانچه تا كنون اطلاعات مهم روي لب تاپتان را کدگذاری نكرده ايد، اكنون زمان آن فرا رسيده است. پایگاه داده های کد گذاری شده ، حافظه های قابل انتقال، رمز عبور ها و وسایل سخت افزاری بی سیم ، همگی باید از این استراتژی پیروی کنند. با عمل به اين استراتژيها، در صورت دزديده شدن لوازم سخت افزاريتان كمتر نگران خواهيد شد.
امروزه اغلب فعاليت هاي كامپيوتري از اداره به خانه منتقل شده است. سوالي كه در اينجا مطرح خواهد شد اين است كه چنانچه برخی از کارمندان شما از خانه كارها را دنبال مي كند چگونه مي توانيد امنيت دسترسیها ها را تضمين كنيد در حاليكه نه آن كامپيوتر متعلق به شماست و نه در شبكه شما اين فعاليت انجام شده است؟
امروزه دزدان اطلاعات در همه جا پرسه مي زنند. بنابر اعلام دو شرکت SANS و ISC2 ریسک خطر و نیز تقاضا برای امن کردن برنامه های کاربردی Web-facing و نیز توسعه چرخه های زندگی ، افزایش پیدا کرده است.
چگونه مدل كسب و كار شما با مدل امنيتي لازم براي كارتان منطبق خواهد شد.
برنامه هاي عملي خود را بر اساس نتايج خروجي ها، باز خورد سرمايه گذاران و سرمایه هایتان و تحليل هاي SWOT تعريف كنيد.
براي اين كار، يك دوره زماني 12 ماهه را در نظر بگيريد. چنانچه از قبل ، برای این دوره زمانی استراتژی مشخصی داشته اید، مدت زمان آنرا به 24 تا 36 ماه افزايش داده استراتژی و اهداف خود را بر اساس آن ، توسعه داده و سازماندهی کنید.
پيش نويسي از تحولات اساسی و مبتکرانه ای که باید پیاده سازی شوند و اهدافي كه آنها را پشتيباني مي كنند، ارائه دهيد.
باز خورد سرمايه گذاران را به دقت مورد بررسي قرار داده و سپس طرحها، برنامه هایتان رابر اساس آن، از بالا به پايين رتبه بندی کنید.
استراتژي هاي خود را ثبت و مستند كنيد.
از قوانین و بندهای موجود طرحهای نوشته شده خود، استفاده كنيد و يا در صورت نیاز قوانین و بندهای جدیدی ايجاد كنيد.
بندهای جدید را به صورت خلاصه و اجرايي بنويسيد.
اهدافتان را با كلمات كاملا روان، واضح و موجز نوشته و چیزی را در لفافه بیان نکنید.
آیا شما یک مدیر عالی رتبه هستید؟ چنانچه شما مدير يك شركت و يا مالك يك سازمان نيستيد، مي بايستي مهارت هاي اجتماعي تان را مرور کرده و ياد بگيريد چگونه از كلمات استفاده كنيد.
پس از تهیه برنامه هایتان بصورت مستند:
نکات کلیدی آنها را را براي سرمايه گذارانتان ارسال كرده و يا حتي آنها را در وب سايت داخلي سازمانتان قرار دهيد. سپس آنها را به اطلاع كليه كاركنان سازمانتان در تمامي سطوح، برسانید.
هر ساله، يك گزارش مشروح امنيتي از وضعيت سازمانتان تهیه کرده و منتشر کنید و یا آن را در یک جلسه ویژه ارائه دهید.
به خاطر داشته باشيد كه موفقيت شما بستگي به وسعت دید، پشتيباني و باز خورد سرمايه گذاران شما دارد و شما بايد راهي براي رسيدن به خواسته هاي آنان ايجاد كنيد.
چنانچه شورا و يا کمیته راهبري امنيتي نداريد، با دقت کافی و در کمترین زمان آین کمیته را تشکیل دهید. سرمايه گذاران بايد در اين كميته عضو باشند. مي توانيد مطمئن باشيد كه تصميمات اين كميته در سطوح بالايي ارائه خواهد شد.
چنانچه شما مي بايستي به سازمان هاي مسئول در امر فناوري اطلاعات گزارش بدهيد، سعي كنيد نمايندگاني كه اين كار ار بر عهده دارند از دو نفر بيشتر نباشند. واحدهای تجارتي،باید در ايده آل ترين حالت اولويت هاي کاری خود را بر اساس ميزان ريسك در تجارت تنظيم کنند که اين امربدلیل ضرورت رعايت اصول كسب و كار و تاکید بر اين اصول، از اهمیت بسزایی برخوردار است. سپس باید پشتیبانهایی برای امنیت در نظر گرفت و از بکار بردن شیوه های نادرستی که از میزان امنیت می کاهند، خودداری کرد. اين موضوع با تمركز بر منابعي كه از بیشترین اهميت برخوردارند، ريسك تجاری امنيت شما را متعادل خواهد كرد.
بمنظور مديريت بهتر دستاوردها، برنامه های خود را مورد ارزیابی و سنجش قرار دهید.
بالا بردن استانداردها، میدان دید و ميزان تمركز شما را بر كسب و كارتان افزايش داده و تغييرات درست رفتاري را در پی خواهد داشت. شما باید یک دید معقول و منطقی،برای مدیریت امنیتی خود انتخاب کنید. سپس تمامي استانداردهاي لازم را با زبان مديريتي و نه زبان خودتان به كار ببريد
حال تصاویری برای شما ایجاد می شوند که بصورت واضح نشان می دهند چطور برنامه های شما، از بالا به پایین، بر ریسکهای امنیتی تاثیر می گذارند. حال در این مرحله باید مشخص كنيد در کجا و در چه مرحله ای ، ایستاده اید، شكاف ها را شناسایی كنيد ومیزان تغييرات را اندازه گیری کنید. توجه کنید که تمامي اين مباحث را به طور منظم و پيوسته به سرمايه گذاران گزارش كنيد.
برنامه هايتان را به روز نگه داريد.
يادداشت كردن برنامه ها نيمي از مبارزه شما در ميدان تجارت محسوب مي شود. پس از نوشتن حالا نوبت به اجراي آن برنامه هاست. استراتژي هاي خود را حداقل هر سه ماه يكبار مرور كرده و با همکاری و مشورت سرمایه گذارانتان، آنها را بطور سالیانه، مورد بررسی و تغییر قرار دهید.
ايجاد استراتژي هاي امنيتي بطور معمول براي شما هزينه اي در بر نخواهد داشت.
اين استراتژي حتي يك ريال هم براي شما هزينه اي به دنبال ندارد، در عوض ارزش دستاوردهاي آن در شغل و برنامه هاي امنيتي شما به ميليون ها دلار هم می تواند برسد. امنيت، تجارت شما را در بر مي گيرد نه تكنولوژي شما را. حیاتی ترین نکته در این پروسه، متمرکز ماندن، مدیریت امنیت بعنوان یک تجارت و کسب و کار، و شکستن و از بین بردن بارهایی است که بر دوش کسب و کار شماست.
- بازدید: 19659
گوگل چقدر بزرگ است؟ میتوان این سوال را براساس درآمد، ارزش سهام، تعداد کاربران و یا حتی آثار ذهنی آن، پاسخ داد. اما با این همه، گوگل یک برنامهی عظیم کامپیوتری محسوب می شود. بنابراین میتوانیم پاسخ این سوال را از نظر تعداد کد نیز، بدهیم.
ریچل پاتوین (Rachel Potvin) از گوگل، روز دوشنبه در جریان یک کنفرانس مهندسی در درهی سیلیکون، در رابطه با حجم کدهای گوگل پاسخی ارائه داد. براساس تخمین او، نرم افزاری که برای اجرای کل سرویسهای اینترنتی گوگل مانند سرویس جستجوی گوگل، جیمیل و سرویس نقشه گوگل، مورد نیاز است، بطور تقریبی شامل ۲ میلیارد خط کد است. برای مقایسه، سیستمعامل ویندوز مایکروسافت را در نظر بگیرید؛ یکی از پیچیدهترین نرم افزارهایی که تا کنون برای یک کامپیوتر خلق شده است و پروژهای که از سال ۱۹۸۰ در حال توسعه است. این سیستمعامل تقریبا شامل ۵۰ میلیون خط کد است. بنابراین، ساختن گوگل تقریبا معادل ۴۰ بار ساختن ویندوز است.
سم لمبرت (Sam Lambert) مدیر سرویس GitHub میگوید:
این آمار و ارقام واقعا حیرتآور است.
مقایسهی انجام شده از یک حیث بسیار مناسب است. درست مانند کدهای ویندوز، ۲ میلیارد خط کدی که گوگل را به پیش میرانند، به صورت یکپارچه هستند. این کدها که سرویس جستجوی گوگل، سرویس نقشه گوگل، گوگل داکس، گوگل پلاس، تقویم گوگل، جیمیل، یوتیوب و بسیاری از سرویسهای اینترنتی دیگر گوگل را اجرا میکنند، در یک محل ذخیره شدهاند و به صورت یکجا در دسترس هر ۲۵۰۰۰ مهندس گوگل قرار دارند. در داخل شرکت، با این کدها به صورت یک سیستمعامل عظیم برخورد میشود.
پاتوین میگوید:
اگرچه نمیتوان قطعی گفت، اما حدس میزنم این بزرگترین منبع کد موجود در کل دنیا باشد.
گوگل یک نمونهی بسیار بزرگ است. اما با نگاه به آن میتوان به این پی برد که چقدر نرمافزارهای ما در عصر اینترنت پیچیدهتر شدهاند و ما چگونه برای وفق دادن خود با این پیچیدگی، فلسفه و ابزارهای برنامهنویسی خود را تغییر دادهایم. منبع کد عظیم گوگل تنها در دسترس برنامهنویسهای داخل گوگل قرار دارد. اما این منبع به نحوی مشابه GitHub است؛ یک منبع عمومی و متن باز که در آن مهندسان حجم بالایی از کدها را به اشتراک میگذارند. دنیا به سمتی حرکت میکند که در آن بطور مرتب و در مقیاسی بزرگ در زمینهی کدها همکاری خواهیم کرد. این تنها راهی است که توسط آن میتوانیم همپای حرکت سریع و رو به رشد سرویسهای اینترنتی مدرن به پیش برویم.
سم لمبرت، مدیر سیستمهای GitHub میگوید:
داشتن حدود ۲۵۰۰۰ توسعهدهنده به این معنی است که گوگل، منبع کد خود را در اختیار افراد گوناگون با تواناییهای متنوع میگذارد. اما به عنوان یک شرکت کوچک، شما میتوانید امکانی مشابه را در GitHub به صورت متن باز در اختیار داشته باشید.
وی همچنین در مورد منبع کد عظیم گوگل میافزاید:
ساخت و راهاندازی یک منبع کد با این حجم، بسیار مشکل بوده و یک چالش فنی بزرگ محسوب میشود. این اعداد و ارقام واقعا حیرتآور هستند.
بخشی از نبوغ بکار رفته در GitHub مربوط به این است که به برنامهنویسها اجازه میدهد تا به سادگی کدی را به اشتراک گذاشته و در مورد آن همفکری و همکاری کنند. اما GitHub یک پروژهی نرم افزاری واحد را در بر نمیگیرد؛ بلکه میلیون ها پروژه را پوشش میدهد. گوگل پا را از این فراتر میگذارد و پروژههای زیادی را به یک پروژه واحد تبدیل میکند. با توجه به مشکلات مربوط به مدیریت این حجم از کد توسط تعداد زیادی مهندس، ممکن است این کار عقلانی به نظر نرسد، اما طبق گفتههای پاتوین، عملی است.
به پایپر گوش فرا دهید
گوگل اساسا "سیستم بررسی نسخه" اختصاصی خود را برای مدیریت کدها ساخته است. این سیستم که پایپر (Piper) نام دارد و با هدف اجرای سرویسهای آنلاین گوگل، در سراسر زیرساخت آنلاین آن در حال کار است. طبق گفتهی پاتوین، این سیستم ۱۰ دیتاسنتر مختلف گوگل را پوشش میدهد. این گونه نیست که همهی ۲ میلیارد خط کد در داخل یک سیستم قرار گرفته و در دسترس همهی مهندسان حاضر در شرکت باشد. بلکه این سیستم به مهندسان گوگل یک آزادی غیر معمول برای استفاده و تلفیق کدها در بین هزاران پروژه فراهم میکند.
پاتوین میگوید:
وقتی شروع به انجام یک پروژه جدید میکنید، از همان آغاز کار، کتابخانهای عظیم در اختیار دارید و تقریبا همه چیز از قبل انجام شده است.
علاوه بر این، مهندسان میتوانند کدی را تغییر داده و بلافاصله آن را در سراسر سرویسهای گوگل اعمال کنند. آنها میتوانند با بروزرسانی یک بخش کوچک، همهی چیز را بروزرسانی کنند.
این سیستم محدودیتهایی نیز دارد. طبق گفتهی پاتوین، کدهای با حساسیت بالا مانند الگوریتم جستجوی پیج-رنک (PageRank) گوگل، در منبعی جداگانه و در اختیار کارکنان به خصوصی قرار میگیرند. همچنین به دلیل آنکه اندروید و کروم – دو سیستمعامل گوگل – تحت شبکه نبوده و بسیار متفاوت از بقیه هستند، گوگل آنها را در سیستمهای کنترل نسخهی جداگانهای نگهداری میکند. اما در حالت کلی، کدهای گوگل یک سیستم یکپارچه هستند که اجازه جریان آزاد ایدهها و راهکارها را فراهم میکنند.
ارزش کار ماشینها
همانطور که لمبرت نیز اشاره کرد، ساخت و راهاندازی چنین سیستمی علاوه بر دانش فنی به حجم عظیمی از محاسبات کامپیوتری نیاز دارد. پایپر در حدود ۸۵ ترابایت (۸۵۰۰۰ گیگابایت) داده را پوشش میدهد؛ مهندسان گوگل روزانه در حدود ۴۵۰۰۰ هزار تغییر در کدها ایجاد میکنند. در حالیکه سیستمعامل متن باز لینوکس ۱۵ میلیون خط کد را در حدود ۴۰۰۰۰ فایل نرم افزاری پوشش میدهد، مهندسان گوگل بطور هفتگی ۱۵ میلیون خط کد را در حدود ۲۵۰۰۰۰ فایل اصلاح میکنند.
پایپر باید حجم زیادی از بار را از دوش مهندسین بردارد؛ فهم کدها را برای آنها آسان کند، از به وجود آمدن تداخل در آثار ایجاد تغییر در کدها جلوگیری به عمل آورد و در رفع باگها و حذف کدهای غیر قابل استفاده، سودمند باشد. گوگل با تعویض سیستم کنترل نسخهی سابق خود (Perforce) با سیستم پایپر، بیشتر وظایف را به ماشینهای خودکار سپرده است. این به معنی نوشتن کد توسط ماشینها نیست؛ اما آنها، بیشترِ دادهها و فایلهای مورد نیاز برای اجرای نرمافزار شرکت را تولید میکنند.
پاتوین میگوید:
برای سالم نگه داشتن کدها باید اقداماتی جدی صورت گیرد، بنابراین علاوه بر انسان، ماشینها نیز در این کار نقشی اساسی دارند.
پایپر برای همه
آیا دیگران نیز میتوانند از مزایای چنین سیستمی استفاده کنند؟ پاسخ مثبت است. نرمافزار اصلی فیسبوک بیش از ۲۰ میلیون خط کد را پوشش میدهد، و این شرکت با کل این کدها به صورت یک پروژهی واحد برخورد میکند. شرکتهای دیگر نیز چنین کاری را در مقیاسی کوچکتر انجام میدهند. با رسیدن شرکتها به ابعاد گوگل یا فیسبوک، مشکلات عدیدهای نیز در سر راه آنها قرار میگیرد؛ گوگل و فیسبوک در حال تلاش برای حل این مشکلات هستند.
دو غول اینترنتی در حال کار بر روی یک سیستم کنترل نسخهی متن باز هستند که به کمک آن میتوان کدها را در مقیاسی وسیع مدیریت کرد. این سیستم براساس سیستمی موسوم به Mercurial در حال توسعه است.
پاتوین میگوید:
در حال امکان سنجی برای توسعهی Mercurial در مقیاس منبع کد گوگل هستیم.
گوگل در حال همکاری با متخصص برنامه نویسی برایان اوسالیوان (Bryan O'Sullivan) و برخی از کارکنان فیسبوک در این زمینه است. اگرچه در حال حاضر هیچ شرکتی مانند گوگل و فیسبوک چنین حجمی از کد را در اختیار ندارند، اما در آیندهی نزدیک، شرکتهایی با ویژگی مذکور وجود خواهند داشت.
- بازدید: 23097
ماه گذشته، تیم مناظره سه نفره زندانیان یکی از مراکز بازپروری نیویورک که دارای سوابق جنایی خشونت آمیزبودند، توانستند تیم دانشجویان دوره لیسانس دانشگاه هاروارد را شکست دهند.
شکست ناباورانه تیم مناظره دانشجویان دانشگاه هاروارد از تیم زندانیان نیویورک، به مانند داستانی از فیلمنامههای نانوشته والت دیزنی است که قهرمان داستان فردی از ابتدا محکوم به شکست است اما پایان داستان آن طور که همه فکر میکنند، پیش نمیرود. البته خب به نوعی همین طور هم بوده است. اما خوب است به بنیانهای اشتباه، در برداشت اولیه افراد در مورد این مسابقه اشارهای داشته باشیم. اولین نکته که احتمالا بیشتر نتیجه گیری غلط ما نیز از این مساله نشات میگیرد، این است که در ذهن افراد تصور اشتباهی است از رابطه مستقیم بین جنایتکاری و هوش پایینتر از متوسط جامعه برای چنین جنایتکارانی، اما باید بدانیم که چنین مسالهای به هیچ وجه وجود ندارد.
علیرغم این که زندانیان پشت میلههای زندان قرار دارند، اما آنها توانستهاند آلبوم موسیقی منتشر کنند، آثار ادبی بنویسند، تشکیلات اقتصادی مجرمانه پرسود را بگردانند و کارهای بسیار دیگری را از پشت این میلهها انجام دهند.
همان طور که امسال، فرار بسیار ماهرانه از مرکز تادیبی کلینتون در نیویورک نشان داد، زندانیان نه تنها باهوشاند بلکه اغلب تواناتر و اندیشمندتر از ما که در بیرون زندان هستیم، عمل میکنند. ریچارد مت آن اندازه باهوش بود که توانست از اصول پایه مهندسی برای طرح نقشه فرار خود استفاده کند، اما به مانند بسیاری از مجرمان حرفهای، او بهترین توانمندیهایش را در راه نادرست استفاده کرده است.
مناظره مورد نظر، ماه گذشته در مرکز تادیبی شرقی نیویورک برگزار شد. زندانی با درجه بندی امنیتی بسیار بالا با یک ساعت فاصله در جنوب غربی کالج بارد. میزبانان این رویداد تیم هاروارد را شکست دادند. تیمی که سه تیم از چهار تیم قهرمان موسسه ملی انجمن مناظره آمریکا را شکست داده بود.
اتحادیه مناظره کالج هاروارد در پستی در اکانت فیس بوک خود اعلام کرد:
در مقایسه با حریف این هفتهی ما، تیمهای مناظره بسیار اندکی هستند که ما حریف را تا این حد تمجید کنیم و از باخت به آنها، خود را مفتخر بدانیم . این تیم که ما با آنها رقابت داشتیم، بسیار هوشمند و در عین حال دارای مهارت بالا در فصاحت کلامی بودند.
ما از کالج بارد و مرکز تادیبی شرقی نیویورک برای زحماتی که متحمل شدند و چنین مسابقهای را ترتیب دادند، بسیار متشکر هستیم.
در مورد پیروزی زندانیان نیویورکی بر دانشجویان هاروارد، بیش از آن که چه کسانی این کار را کردند، آنچه بیشتر جلب توجه میکند این موضوع است که چگونه این کار را توانستند انجام دهند.
جهت آمادگی برای مسابقه، زندانیان، که از اعضای بنیاد زندان بارد بودند، مجبور به جمع آوری دانش تنها از طریق سنتی یعنی بدون دسترسی به اینترنت شدند. واقعا شما فکر میکنید در سال ۲۰۱۵، آیا میشود برای کاری آماده شد، و این کار هر چه میخواهد باشد، از خرید بلیط سینما گرفته تا برای مسیر یابی یا جستجوی هر چیز دیگری و چنین امری بدون استفاده از گوگل مقدور باشد؟
دشواری چالش این زندانیان هنگامی مشخصتر میشود که بدانیم این افراد برای دسترسی به منبع هر مطلب تحقیقی شامل کتاب یا مقاله، مجبور بودهاند تاییدیه مدیریت زندان را دریافت کنند که چنین امری امکان دارد چند هفتهای به طول بکشد.
برای لحظهای هم که شده تصورش را بکنید: برای هفتهها و نه دقیقهها یا حتی روزها انتظار بکشید، و همه این اوقات در حالی میگذرد که شما در حال یافتن استراتژی تحقیقاتی خاصی برای توفیق بر رقیب خود میباشید. این زندانیان چگونه توانستهاند تدبیری بیاندیشند تا برمشکلات فایق آیند؟ منابع محدود، نیاز به تمرکز بیشتر را ایجاد کرده است. از طرفی طرح ریزی خیلی دقیقی را طلب میکرده است تا بتوان در مراحل نهایی استدلالات قویتری را پیاده سازی کرد.
زندانیان ده سالی تجربه بیشتری از زندگی نسبت به بچههای کالج داشتند. از طرفی نتیجه مسابقه اهمیت فراوانی برای ایشان داشت، چرا که میدانستند بازخورد مسابقه برای هر طرف مسابقه تا چه حد متفاوت است و چقدر برای خودشان اهمیت بیشتری دارد.
الکس هال زندانی ۳۱ سالهای از منطقه منهتن است و به جرم آدمکشی در زندان به سر میبرد، او میگوید:
اگر ما میبردیم سوالات بسیاری در ذهن بسیاری از مردم ایجاد میشد که اینجا چه خبر است. شاید ما استعداد چندانی در فصاحت بیان نداشته باشیم، اما برای بردن مسابقه واقعا خیلی سخت تمرین کردیم.
شاید فکر کنید زندانیها آدمهای تازه کار و مبتدی بودند اما بهتر است نگاهی به موفقیتهای اخیرشان بیاندازیم:
تیم زندان نیویورک اولین مناظره اش را در بهار ۲۰۱۴ انجام داد و توانست تیم آکادمی ارتش ایالات متحده در وست پوینت را شکست دهد. سپس، این تیم توانست تیم دانشگاه ورمونت که دارای رتبه ملی نیز بود را شکست دهد. در آوریل نیز مسابقه برگشت را به وست پوینت باخت.
مسابقه سالیانه با وست پوینت نیز سر و صدای زیادی به پا کرد.
مناظره پایانی در این مورد بود که آیا مدارس دولتی و عمومی میتوانند اجازه عدم ثبت نام دانش آموزان بدون مدارک و گواهی را داشته باشند یا نه، فعالیت تیم زندانیان به حدی خوب بود که این جلسه مناظره حرکتی بسیار سریع و رو به جلو برای زندانیان توصیف شد.
در آخر هم تیم زندانیان بحث و استدلال استادانهای ارایه دادند که خودشان به صورت شخصی مخالف آن بودند، به خصوص در این مورد که به داوران گفتند اگر از پذیرش این کودکان جلوگیری شود، اتفاقی که میافتد این است که مدارس غیرانتفاعی و ثروتمندتر این دانش آموزان ضعیف را ثبت نام میکنند.
اعضای تیم هاروارد اعلام کردند سطح آمادگی و موقعیت غیرمنتظره رقیبانشان، آنها را تحت تاثیر قرار داده است.
آناییس کارل دانشجوی ۲۰ ساله اهل شیکاگو نیز اعلام کرد:
آنها توانستند ما را گرفتار تبحر بالای خود در مناظره کنند.
از همه کمتر آن کسانی شگفت زده شده بودند که وظیفه آموزش دروس عمومی کالج را به این زندانیان بر عهده داشتند.
مکس کنر مدیر اجرایی بنیاد زندان بارد گفت:
بعضی از دانشجویان این پروژه توانستهاند آموزش خود را در دانشگاههایی چون کلمبیا و ییل ادامه دهند.
او تاکید کرد بعضی از دانشجویان این طرح از با جدیت از تمام فرصتهایی که در اختیارشان قرار داده شده بود، استفاده میکردند و از طرفی با ایشان به هیچ وجه در محیط آموزشی مانند مردانی با جرایم جنایی برخورد نمیشد.
کنر همچنین اشاره کرد:
انتظاری که از این دانشجویان در زندان میرود و سطح سختگیری تحصیلی به همان اندازه دانشجویان مستقر در خود کالج بارد است. اینها دانشجویانی جدی و کوشا هستند و توسط مدیریت زندان به هیچ وجه مورد تحقیر قرار نمیگیرند.
- بازدید: 21195
گوگل طی چند روز گذشته فایل ایمیج فکتوری اندروید ۶ مارشمالو را عرضه کرد؛ ارائهی آپدیت OTA نیز با تاخیر کوتاهی پس از آن، آغاز شد. همچنین گوگل کدهای مربوط به AOSP (پروژهی متن باز گوگل) را نیز ارائه داده است. به این ترتیب تیمهایی همچون سایانوژنمود قادر خواهند بود تا رامهای سفارشی خود را بر پایهی اندروید مارشمالو عرضه کنند.
طبق ادعای یکی از کاربران Reddit با نام کاربری burritofire، تیم سایانوژنمود در حال کار بر روی سایانوژنمود ۱۳ است که نسخهی مارشمالوی رام سفارشی این تیم خواهد بود. در بخش بررسی کد وبسایت آنها، می توانید ورودیهایی را در مورد سایانوژنمود ۱۳ مشاهده کنید.
علیرغم اینکه سایانوژنمود کار بر روی سایانوژنمود ۱۳ را شروع کرده است، اما این موضوع به مفهوم آن نیست که به زودی شاهد عرضهی این رام خواهیم بود. اگرچه مارشمالو در مقایسه با اندروید آبنبات چوبی یک بروزرسانی جزئی محسوب میشود، اما فرآیند ارائهی آن در قالب یک رام سفارشی بسیار زمانبر است و ممکن است در نسخههای اولیه، سرشار از باگ باشد. در گذشته شاهد آن بودیم که نسخهی اولیهی رامهای سایانوژنمود در ابتدا برای دیوایسهای نکسوس عرضه می شد؛ انتظار میرود این روند برای سایانوژنمود ۱۳ نیز تکرار شود. در واقع بسیار ساده است که در ابتدا عرضهی رام برای دستگاههایی صورت گیرد که شاخههایی از کدها را از جانب گوگل در داخل خود دارند که این ویژگی مختص دستگاههای نکسوس است. به احتمال زیاد بعد از این دستگاهها، نوبت به پرچمداران کنونی شامل موتو اکس استایل، الجی جی ۴ و سایرین می رسد. از آنجایی که گلکسی نوت ۵ از پردازندهی اکسینوس بهره میبرد، پشتیبانی سایانوژنمود ۱۳ از این دستگاه در ابتدای کار میتواند باعث شگفتی شود.
لازم به ذکر است که سایانوژنمود و Cyanogen OS متفاوت از هم هستند. سایانوژنمود یک رام متن باز است که در حال حاضر برای تلفنهای هوشمند اندرویدی زیادی در دسترس است؛ در حالیکه Cyanogen OS متن بسته بوده و تنها برای دستگاههای کمی مانند OnePlus One، ZUK Z1 و تعدادی دیگر در دسترس است.





