<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Mahdi Mashrur Matin on Medium]]></title>
        <description><![CDATA[Stories by Mahdi Mashrur Matin on Medium]]></description>
        <link>https://medium.com/@mashrur123?source=rss-f74ea0ae0044------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*ndd8U_9MqxxYcU0cxsJgAg.jpeg</url>
            <title>Stories by Mahdi Mashrur Matin on Medium</title>
            <link>https://medium.com/@mashrur123?source=rss-f74ea0ae0044------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 13:28:59 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@mashrur123/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[কিভাবে এক Whatsapp মিসকলেই ফোন হ্যাক সম্ভব]]></title>
            <link>https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE/%E0%A6%95%E0%A6%BF%E0%A6%AD%E0%A6%BE%E0%A6%AC%E0%A7%87-%E0%A6%8F%E0%A6%95-whatsapp-%E0%A6%AE%E0%A6%BF%E0%A6%B8%E0%A6%95%E0%A6%B2%E0%A7%87%E0%A6%87-%E0%A6%AB%E0%A7%8B%E0%A6%A8-%E0%A6%B9%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%95-%E0%A6%B8%E0%A6%AE%E0%A7%8D%E0%A6%AD%E0%A6%AC-cb465dadbd6a?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/cb465dadbd6a</guid>
            <category><![CDATA[vulnerability]]></category>
            <category><![CDATA[whatsapp]]></category>
            <category><![CDATA[bangla]]></category>
            <category><![CDATA[malware]]></category>
            <category><![CDATA[hacking]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Tue, 11 Jun 2019 05:57:43 GMT</pubDate>
            <atom:updated>2019-06-11T06:21:38.784Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0RFCUYh465LHv32SXqiWhg.jpeg" /></figure><p>আমরা প্রত্যেকেই কোন না কোন সময় শুনেছি স্প্যাম লিঙ্কে ক্লিক করা যাবেনা , ফিশিং মেইল এ ক্লিক করা যাবেনা, অপিরিচিত সফটওয়্যার/অ্যাপ ইন্সটল করা যাবেনা ... কারন এতে আমাদের কম্পিউটার হ্যাক হবার সম্ভাবনা থাকে। তবে , ইসরাইলি গোয়েন্দা সংস্থা এনএসও Group একটা Whatsapp Exploit বের করে যেটা দিয়ে - আপনার মোবাইল এ malware Install করে ফেলা সম্ভব , আপনার ফোনের বহু গোপন তথ্য চুরি করে ফেলা সম্ভব - স্রেফ একটা Whatsapp কল করেই।</p><p>ভিক্টিমের ফোন ধরার ও দরকার নেই। শুধু কল আসলেই চলবে। গোপনে ফোনে ইন্সটল হয়ে যাবে malware, ভিকটিম টের ও পাবেনা । রিসেন্ট কল লিস্টেও নাম থাকেনা এই কল এর। কি সাঙ্ঘাতিক ব্যপার !</p><p>ইসরাইলি এই গোয়েন্দা সংস্থা এনএসও মূলত সাইবার যুদ্ধ চালানোর জন্য নানা ধরণের সফটওয়্যার তৈরি করে।এই কোম্পানি নানা রকম হ্যাকিং এর প্রযুক্তি উদ্ভাবন করে। মূলত অপরাধ এবং সন্ত্রাসবাদ দমনের লক্ষ্যে তৈরি করা তাদের হ্যাকিং প্রযুক্তি। এরপর এগুলো বিক্রি করে বিভিন্ন দেশের সরকারের কাছে।</p><p>Whatsapp দাবি করে থাকে, তাদের অ্যাপে শক্তিশালী এন্ড-টু-এন্ড এনক্রিপশন ফিচার ব্যবহার করা হয়। আর এটি থাকলে তৃতীয় পক্ষ কোনো তথ্য চুরি করতে পারে না। এখন প্রশ্ন হল, তারপরও কীভাবে এনএসও গ্রুপ হ্যাক করল?</p><p>হ্যাকাররা মূলত Whatsapp এর একটি <a href="https://en.wikipedia.org/wiki/Zero-day_(computing)">জিরো-ডে বাগ</a> দুর্বলতা খুঁজে পায়। এটি অ্যাপটির সফটওয়্যারের একধরনের দুর্বলতা। । এই দুর্বলতা চলতি মাসের শুরুতে ধরতে পারে Whatsapp। তবে এটা শুধরানোর আগেই , হ্যাকাররা এই দুর্বলতা কে কাজে লাগিয়ে গোপনে ফোনে ‘পেগাসাস’ নামের একটি স্পাইং সফটওয়্যার ইনস্টল করে । এবং এর মাধ্যমে ফোনটা তাদের দখলে চলে যায়।</p><p>‘পেগাসাস’ মোবাইল ডিভাইস থেকে তথ্য সংগ্রহ করার ক্ষমতা রাখে। এমনকি মোবাইল ফোনটির মাইক্রোফোন ও ক্যামেরার তথ্য নিতে পারে। ফোনটির অবস্থান সম্পর্কেও তথ্য সংগ্রহ করতে পারে।</p><p>এই ঘটনা নিয়ে ফিনান্সিয়াল টাইমস পত্রিকায় <a href="https://www.ft.com/content/4da1117e-756c-11e9-be7d-6d846537acab?">আর্টিকেল</a> প্রকাশের কিছুক্ষণের মাঝেই Whatsapp এর পক্ষ থেকে মালিকপক্ষ ফেসবুক এর একটি এডভাইজরি কমিটি <a href="https://www.facebook.com/security/advisories/cve-2019-3568">অফিসিয়াল বিবৃতি</a> প্রদান করে</p><blockquote><strong>CVE-2019–3568</strong></blockquote><blockquote><strong>Description: </strong>A buffer overflow vulnerability in WhatsApp VOIP stack allowed remote code execution via specially crafted series of SRTCP packets sent to a target phone number.</blockquote><blockquote><strong>Affected Versions:</strong> The issue affects WhatsApp for Android prior to v2.19.134, WhatsApp Business for Android prior to v2.19.44, WhatsApp for iOS prior to v2.19.51, WhatsApp Business for iOS prior to v2.19.51, WhatsApp for Windows Phone prior to v2.18.348, and WhatsApp for Tizen prior to v2.18.15.</blockquote><blockquote><strong>Last Updated: </strong>2019–05–13</blockquote><h3>Technical Analysis:</h3><p>VOIP Application গুলোতে কল আসলে সেটার জন্য ও Application গুলোকে কিছু তথ্য প্রসেসিং করতে হয়। এই কল এর সময় <a href="https://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol">SRTCP protocol</a> দিয়ে বিশেষ কিছু SRTCP packet দিয়ে ডাটা পাঠালে, সেই ডাটাগুলোকে প্রসেসিং করার সময় Whatsapp Application এ buffer overflow ঘটে , এবং Application টি তার নিয়ন্ত্রণ হারিয়ে ফেলে ক্র্যাশ করে । তখন remote code execution করা সম্ভব হয় , আর এই remote code execution এর মাধ্যমে হ্যাকাররা ‘পেগাসাস’ malware টি গোপনে ফোনে ইন্সটল হয়ে দেয় , ভিকটিম টের ও পাবেনা।</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/263/1*gS5TQJZo-1BbITSPHZ_u7g.png" /><figcaption><strong>প্রোগ্রাম এর মেমোরি</strong></figcaption></figure><p>buffer overflow, যেকোনো সফটওয়্যার এর খুবই কমন একটি vulnerability । ইউজার এর input data এর সাইজ , programmer এর নির্ধারণ করা data এর সাইজ থেকে বেশি হলে , অনেক ক্ষেত্রেই একটা প্রোগ্রাম এর জন্য নির্ধারিত buffer এর overflow ঘটে এবং তখন প্রোগ্রামটি তখন অনির্ধারিত মেমোরিতে গিয়ে তার নিয়ন্ত্রণ হারিয়ে ফেলে ক্র্যাশ করে।</p><h3>পরিবর্তিত source code</h3><p>WhatsApp তার android v2.19.134 এ এই বাগ টি ঠিক করে । একটু &quot;patch-diffing&quot; করলেই বের হয়ে আসে যে নতুন source code এ WhatsApp কি কি কোড পরিবর্তন করে তাদের ক্লায়েন্ট এর কোড বেজ এঃ</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/679/1*xHxcHaMRxOf-flwSnpwhOQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/724/1*MIs2c2x9aF-W5DD7iMZVhQ.png" /></figure><p>SRTCP এর implementation এর দুটি function এ তিন জায়গায় আমরা দেখি তিনটি variable এর value এর limit-checking বসানো হয়েছে যেন তাদের value 1480 bytes (0x5C8) সাইজ কে অতিক্রম না করে ।</p><p>শেষ কথা হল , আপনি যদি Whatsapp এর ১.৫ বিলিয়ন ব্যবহারকারিদের একজন হয়ে থাকেন তবে এখনই সবচেয়ে আপডেটেড ভার্সনটি ডাউনলোড করে ফেলুন । তাছাড়া , এক কলেই হতে পারে আপনার সব তথ্য চুরি ।</p><p><em>লেখক, মাহদী মাশরুর মতিন- BCC,ICT Division, Bangladesh এর একজন Internet Security Consultant এবং National Data Centre এর Certificate Authority প্রজেক্টের Manager । তিনি Obboylabs এর সহপ্রতিষ্ঠাতা .</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cb465dadbd6a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE/%E0%A6%95%E0%A6%BF%E0%A6%AD%E0%A6%BE%E0%A6%AC%E0%A7%87-%E0%A6%8F%E0%A6%95-whatsapp-%E0%A6%AE%E0%A6%BF%E0%A6%B8%E0%A6%95%E0%A6%B2%E0%A7%87%E0%A6%87-%E0%A6%AB%E0%A7%8B%E0%A6%A8-%E0%A6%B9%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%95-%E0%A6%B8%E0%A6%AE%E0%A7%8D%E0%A6%AD%E0%A6%AC-cb465dadbd6a">কিভাবে এক Whatsapp মিসকলেই ফোন হ্যাক সম্ভব</a> was originally published in <a href="https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE">প্রোগ্রামিং পাতা</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Step-By-Step Guide to Securing a Tomcat Server With LetsEncrypt SSL Certificate]]></title>
            <link>https://medium.com/@mashrur123/a-step-by-step-guide-to-securing-a-tomcat-server-with-letsencrypt-ssl-certificate-65cd26290b70?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/65cd26290b70</guid>
            <category><![CDATA[ssl]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[ssl-certificate]]></category>
            <category><![CDATA[lets-encrypt]]></category>
            <category><![CDATA[tomcat]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Wed, 24 Apr 2019 16:38:01 GMT</pubDate>
            <atom:updated>2020-05-06T16:33:31.231Z</atom:updated>
            <content:encoded><![CDATA[<h3>A Step-By-Step Guide to Securing a Tomcat Server With LetsEncrypt or Any SSL Certificate</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*iWXzOAJfrTCB5CJwV75B7A.jpeg" /></figure><p>Secure Socket Layer (SSL) is a protocol that provides security for communications between client and server by implementing encrypted data and certificate-based authentication.</p><p>If you’re using Apache Tomcat as a Server for your web-application , chances are that at least some of the data you’re handling is sensitive, and SSL is an easy way to offer your users security. But the configuration process and SSL itself can be a little confusing for first-time users.</p><p>There are many CA from which you can get a certificate, but almost all of them will cost you money. But, with Let’s Encrypt you can get a valid SSL certificate for your domain at no cost.</p><p>This guide will break down the messy process of installing a SSL certificate (that you got from letsencrypt or any other CA )- for tomcat server into easily understandable pieces:</p><h3>Step 1 — Prerequisites</h3><p>Before starting work on this task, I assume you already have:</p><ul><li>Running Centos system with sudo privileges shell access.</li><li>A domain name registered and pointed to your server’s public IP address. For this tutorial, we use example.com and <a href="http://www.example.com,/">www.example.com,</a> which is pointed to our server.</li><li>Recent version of JAVA installed.</li><li>Recent version of tomcat server installed in your .</li><li>Have port 80 and 8443 open in your <a href="https://linuxize.com/post/how-to-setup-a-firewall-with-firewalld-on-centos-7/">firewall</a>.</li><li>Have Openssl installed.</li></ul><h3>Step 2— Install Certbot(O)</h3><p>The certbot package is provided by EPEL. If the <a href="https://linuxize.com/post/how-to-enable-epel-repository-on-centos/">EPEL repository</a> is not installed on your system, you can install it using the following command:</p><pre>sudo yum install epel-release</pre><p>Once the EPEL repository is enabled, install the certbot package by typing:</p><pre>sudo yum install certbot</pre><p>If you have an active firewall, e.g firewalld<strong>, </strong>open https port on the firewall.</p><pre># firewall-cmd --add-service https --permanent<br># firewall-cmd --reload</pre><p>If you are not using letsencrypt then you can skip this step.</p><h3>Step 3—Generate keypair and get certificate against the domain using Certbot</h3><p>Once the LetsEncrypt (CA) verifies the authenticity of your domain, SSL certificate will be issued. For generating keypair and getting a SSL certificate against that keypair for your domain we need to type the following command:</p><pre>sudo certbot certonly --standalone -d www.example.com</pre><p>If everything goes fine. A new ssl will be issued at below location. Navigate to below directory and view files.</p><pre>cd /etc/letsencrypt/live/example.com<br>ls</pre><p><em>Files List:</em></p><pre>  cert.pem<br>  chain.pem<br>  fullchain.pem<br>  privkey.pem</pre><p>If you are not using letsencrypt, you will have to create the keypair and then get the certificate from a CA manually.<br>To generate a pair of private key and public Certificate Signing Request (CSR) for a webserver, “server”, use the following command :</p><pre>openssl req -nodes -newkey rsa:2048 -keyout domain.name.key -out domain.name.csr</pre><p>After you send the csr to CA and CA verifies your domain- they will provide you with a certificate/ certificate chain. So you should have a .crt certificate file with you</p><h3><strong>Step 4 — Convert keypair + certificate to Java Keystore</strong></h3><p>At first create a PKCS12 that contains both your full chain and the private key. You need to have openssl installed for that.</p><pre>openssl pkcs12 -export -out /tmp/example.com_fullchain_and_key.p12 \<br>    -in /etc/letsencrypt/live/example.com/fullchain.pem \<br>    -inkey /etc/letsencrypt/live/example.com/privkey.pem \<br>    -name tomcat</pre><p>Then convert that PKCS12 to a JKS, using java`s keytool</p><pre>keytool -importkeystore \<br>    -deststorepass samplePassword -destkeypass samplePassword -destkeystore /tmp/example.com.jks \<br>    -srckeystore /tmp/example.com_fullchain_and_key.p12  -srcstoretype PKCS12 -srcstorepass samplePassword \<br>    -alias tomcat</pre><p>Replace samplePassword with your password.</p><p>In case, you are not using certbot and letsencrypt. You will need to create the keypair yourself and you will apply for an ssl certificate from any of the recognized CAs. Then you will have a privatekey file with .key extension and .cert certificate file that you got from the CA. You will have to create a pfx file first and then convert the pfx file to jks file. Here is how to merge a private key and a certificate to generate pfx file(the following command will require you to set a password for the pfx):</p><pre>openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt</pre><p>And once you have the pfx file, here is how to convert it to JKS(the following command will require password of the pfx file and ):</p><pre>keytool -importkeystore -srckeystore www_domain.name.pfx -srcstoretype pkcs12 -destkeystore domain.name.jks -deststoretype JKS</pre><h3>Step 5— Configure Tomcat with the Java Keystore</h3><p>Now go to your tomcat application and open your server.xml file</p><pre># vim /etc/tomcat/conf/server.xml</pre><p>Ensure the following section is commented out</p><pre>&lt;!---<br>    &lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;<br>            connectionTimeout=&quot;20000&quot;<br>            redirectPort=&quot;8443&quot; /&gt;<br>    --&gt;</pre><p>Configure connector to use a shared thread pool</p><pre>&lt;Connector executor=&quot;tomcatThreadPool&quot;<br>            port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;<br>            connectionTimeout=&quot;20000&quot;<br>            redirectPort=&quot;8443&quot; /&gt;</pre><p>Next is to define SSL HTTP/1.1 Connector on port 8443</p><pre>&lt;Connector port=&quot;8443&quot; protocol=&quot;org.apache.coyote.http11.Http11Protocol&quot;<br>            maxThreads=&quot;150&quot; SSLEnabled=&quot;true&quot; scheme=&quot;https&quot; secure=&quot;true&quot;<br>            keystoreFile=&quot;/tmp/example.com.jks&quot;<br>            keystorePass=&quot;samplePassword&quot;<br>            clientAuth=&quot;false&quot; sslProtocol=&quot;TLS&quot; /&gt;</pre><p>With above configuration, http to https redirect will be done automatically for the application.</p><p>Now just Stop and Start Apache Tomcat and you are done.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/713/1*-ui3paUVp1PJBhEwjWdgFg.png" /></figure><p>Your tomcat server along with all the application that runs on it is ssl secured.</p><p><em>Mahdi Mashrur Matin(CISSP) is a seasoned professional in cryptography and information security.He is a consultant to BGD-e-GOV-CIRT ,BCC, ICT Division Bangladesh &amp; leads their Certificate Authority tech team.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=65cd26290b70" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How Ride-hailing app Pathao is dangerously close to malware]]></title>
            <link>https://medium.com/@mashrur123/how-ride-hailing-app-pathao-is-dangerously-close-to-malware-1459dbc1d93e?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/1459dbc1d93e</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[sms]]></category>
            <category><![CDATA[pathao]]></category>
            <category><![CDATA[data-steal]]></category>
            <category><![CDATA[bangladesh]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Thu, 15 Nov 2018 16:40:00 GMT</pubDate>
            <atom:updated>2018-11-16T19:21:58.874Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*nugOLUNkkrs3oDpzh5XJfQ.jpeg" /></figure><p>Pathao, Bangladesh`s version of Go-Jek- country`s most successful two-wheeler ride-sharing app of bangladesh is facing some immense criticism.The Pathao app is accused of collecting users: List of installed apps,All contacts,All SMS and sending all these confidential user data to their server on a regular basis — just like a malicious/spyware app .</p><p>Pathao, uses a classical misdirection approach always used by magicians , to trick the users to give permission to access messages &amp; contacts. Whenever the app is installed, the user is prompted saying, inorder to function properly and give the users best experience the app needs to get the location/gps permission .</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/1*WvergIURppj9d-jaQFY_UA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/1*Ojo5CNcPeqivWEM1kULXyA.png" /></figure><p>Then the user is prompted by android to give permission to the app for accessing location.</p><p>Everything was fair, up until this point. But then, out of nowhere the user is prompted by android(not the app) to give permission to the app for accessing contacts and sms.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/1*pp_1pwGt4JQ9Pi-xxyVhXg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/1*oqLKgbOHwzR-LF__fpgy4A.png" /></figure><p>See, how Pathao is misdirecting you to give unsolicited permissions. As a professional magician, I use such technique to keep my audience busy looking at a big object while I vanish small objects in front of their eyes- without them ever noticing.<br>The user`s were at first given proper reasoning why the app needed the device`s location permission to work properly, but it did not give any reason as to why it needed the permission to read SMS/contacts.<br>90% of the users never notice that they gave the app the permission to read the sms or contacts.</p><p>There was a claim in social media video , that pathao is collecting users: All contacts,All SMS and sending all these confidential user data to their server . <br>As an information security professional, I tried to find it out myself- is the claim really true?<br>Here I am describing 2 ways , how I got sure pathao is stealing data:</p><ul><li><strong>Doing a Man in the Middle Test</strong> , to check what data pathao app is sending to server</li><li><strong>Decompiling the pathao app source code</strong>, and doing a forensic analysis of its code</li></ul><p><strong>METHOD 1: Doing a Man in the Middle Test:</strong></p><p><strong>Setup:<br></strong>Firstly, I downloaded and launched Burp Suite (free, community edition is sufficient). Then I enabled a proxy module<strong>: </strong>by setting up our mobile phone`s wifi`s internet proxy to our laptops ip. In the laptop we had installed Burpsuite software and burp listened to the port at which our mobile was connected.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/945/0*pbdl8Gd1IwSkM6Gd" /></figure><p>We downloaded the burpsuite`s Portswigger CA in our mobile.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/453/0*XP9QVr3Drx4vbJHi" /></figure><p>Went to mobile` Settings -&gt; Security -&gt; Trusted Credentials should show the new “Portswigger CA” as a system trusted CA.<br>Now it’s possible to set up the proxy and start intecepting any and all app traffic with BurpSuite</p><p><strong>The https traffic analysis:</strong></p><p>Pathao sends two POST requests to api.pathao.com/v1/me everytime the Pathao is opened.The body of the request contains the contacts saved in the phoneand the SMS sent or received.It sends the updated SMS of the user`s phone every after few minutes. The following image shows the messages that pathao had spoofed it to its server:<br>It sends the updated SMS of the user`s phone every after few minutes. The following image shows the messages that pathao had spoofed it to its server:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*s7DV-L46H2xAcQJ_" /></figure><p>They were also sending whole contactlist of the user`s phone to their server. And they were sending it over and over again- if the pathao app is kept open.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*dfe6Qz9-aiefohmE" /></figure><p>Thanks to Mr. Ashik Ishtiaque Emon, who first did this Man in the middle test- and brought this issue to limelight.</p><p><strong>METHOD 2: Decompiling the pathao app source code</strong></p><p>Finding out the code behind the actions shown in the previous method can be a surefire way to validate that — pathao is really sending the private data to its server. I first got the idea to decompile the app from <a href="https://medium.com/u/ef7092d33296">Sazid Hossain Banna</a>`s blog , he does an amazing job on dissecting into the details</p><p><a href="https://blog.knightfall.me/did-pathao-steal-sms-and-contacts-dissecting-the-app-to-find-proof-9dd77d33fb23">Did Pathao steal SMS and contacts? Dissecting the app to find proof.</a></p><p>We decompiled the pathao APK 3.3.0, to get its source code.</p><p>In pathao.com.utils.ApiEndpoints, Pathao has declared the following variables for sending contact and sms to their server:</p><p>public static final String <em>SYNC_CONTACT_SMS </em>= “https://api.pathao.com/v1/me&quot;;</p><p>public static final String <em>SYNC_USER_DATA </em>= “https://api.pathao.com/v1/me&quot;;</p><p>We found the class which collects and send SMS and contacts to Pathao’s server- its named “SyncContactSMSCollection” .</p><p>“getAllPhonebook()” method is used to fetch the contacts .</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3bf332025d1f89668748603549bfd281/href">https://medium.com/media/3bf332025d1f89668748603549bfd281/href</a></iframe><p>The function for collecting SMS is “m5589a()”</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/4cb23fd90fa1637417469027409a9437/href">https://medium.com/media/4cb23fd90fa1637417469027409a9437/href</a></iframe><p>Anyone who is familiar with java can easily see- pathao is scrapping all the contact-list and sms of the user , everytime the pathao app is opened.And it keeps syncing- every-time it detects new sms or contacts, it is bundling them in a single JSON object and sending them to Pathao’s server.</p><p>You can also notice from the https traffic analysis that , Pathao is using Facebook AccountKit to perform user login. So in no way, Pathao should need contact/SMS read access to perform SMS verification.</p><p><strong>Summary :</strong></p><p>Pathao is sending sensitive personal information without user consent to their server- just like a malicious app . User`s sms contains personal identification information: like bank account number, bkash account number,OTPs,credit/debit card number, passport/visa tracking number. And sending these identification informations to server is a violation of Digital Security Act-2018 (Paragraph-26).The sheer amount of data available in SMS messages from a million people is very dangerous in the wrong hands.</p><p>There is a name for the apps which stealthily send users private data continuously — its called Malware/Spyware. A 100 million dollar valuation promising tech product- acting like a Malware is truly shameful .</p><p><strong>About the Author:</strong></p><p>The author- is an information security professional. He is the Co-founder of Obboy Labs(<a href="http://obboylabs.com/">http://obboylabs.com</a>) , a blockchain tech startup. He is also an internet security consultant to ICT Division, BD and leads their Certificate Authority project.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1459dbc1d93e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Joel Test : ১২ টি প্রশ্নে একটি  সফটওয়্যার-টিম এর মান নির্ধারণ]]></title>
            <link>https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE/joel-test-%E0%A7%A7%E0%A7%A8-%E0%A6%9F%E0%A6%BF-%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A6%B6%E0%A7%8D%E0%A6%A8%E0%A7%87-%E0%A6%8F%E0%A6%95%E0%A6%9F%E0%A6%BF-%E0%A6%B8%E0%A6%AB%E0%A6%9F%E0%A6%93%E0%A7%9F%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%B0-%E0%A6%9F%E0%A6%BF%E0%A6%AE-%E0%A6%8F%E0%A6%B0-%E0%A6%AE%E0%A6%BE%E0%A6%A8-%E0%A6%A8%E0%A6%BF%E0%A6%B0%E0%A7%8D%E0%A6%A7%E0%A6%BE%E0%A6%B0%E0%A6%A3-8aa92e0bd822?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/8aa92e0bd822</guid>
            <category><![CDATA[bangla]]></category>
            <category><![CDATA[engineering-culture]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Wed, 10 Oct 2018 13:52:51 GMT</pubDate>
            <atom:updated>2018-10-10T13:52:51.973Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Joel Test : ১২ টি প্রশ্নে একটি সফটওয়্যার-টিম এর মান নির্ধারণ</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*yqMsH0n-X98KupZ6_qQ6vA.jpeg" /></figure><p>একটা সফটওয়্যার ইঞ্জিনিয়ারিং -টিম এর মান আসলে কত ভাল এটা অনেকটাই নির্ভর করে তাদের ইঞ্জিনিয়ারিং প্র্যাকটিস গুলো কেরকম তার উপর। আজ থেকে প্রায় ১৮ বছর আগে Stack Overflow এর Founder , <a href="https://en.wikipedia.org/wiki/Joel_Spolsky">Joel Spolsky<strong> </strong></a>তার <a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">ব্লগে</a> ‘Joel Test’ সম্পর্কে লিখেছিল। Joel Test- হচ্ছে ১২ টি প্রশ্নের মাধ্যমে একটি সফটওয়্যার ইঞ্জিনিয়ারিং -টিম এর মান যাচাই এর একটি উপায়। Joel Spolsky এর সেই প্রশ্নগুলো দীর্ঘদিন সফটওয়্যার ইন্ডাস্ট্রির স্ট্যান্ডার্ড নির্ধারনের একটি বেঞ্চমার্ক হিসেবেই বিবেচিত হয়ে আসছে । <br><br> Joel Test এর প্রশ্নগুলো নিম্নরুপ :</p><ol><li>Do you use source control?</li><li>Can you make a build in one step?</li><li>Do you make daily builds?</li><li>Do you have a bug database?</li><li>Do you fix bugs before writing new code?</li><li>Do you have an up-to-date schedule?</li><li>Do you have a spec?</li><li>Do programmers have quiet working conditions?</li><li>Do you use the best tools money can buy?</li><li>Do you have testers?</li><li>Do new candidates write code during their interview?</li><li>Do you do hallway usability testing?</li></ol><p>গত ১৮ বছরে মেঘে মেঘে অনেক বেলা হবার সাথে সাথে সফটওয়ার ইন্ডাস্ট্রির অনেক ট্রেন্ড ও বদলিয়েছে। চিরচারিত Waterfall model এর বদলে Agile methodology অনেক জনপ্রিয় হয়েছে। Source Control এর ব্যবহার এখন প্রায় সার্বজনীন । Build-tool গুলোর কারনে Software build করা আর আগের মত জুজুর মত কঠিন ব্যাপার না। maintainable code লেখার জন্য peer-to-peer code-review এর জনপ্রিয়তা বাড়ছে ।Container এর জনপ্রিয়তার কারনে , Devops এর integration এর ঝক্কি ঝামেলা আগের থেকে অনেক কমেছে। নতুন চ্যালেঞ্জ এখন continuous integration এবং automated testing। তাই, ২০১৮ সালে এসে কেমন হওয়া উচিত Joel Test কে ?<br>আমার সামান্য অভিজ্ঞতা থেকে ২০১৮ সালের জন্য Joel Test এর একটি আধুনিক ভার্সন তুলে ধরছি ১২ টি প্রশ্নের মাধ্যমে ঃ</p><p><strong>১) আপনি কি Source Control এর সদ্ব্যবহার করেন ?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*03WGgE8HVuMG7hVstNvm9A.jpeg" /></figure><p>আপনি কি আপনার প্রজেক্ট এর codebase maintain ও collaborate এর জন্য Source Control, eg: git/gitlab/svn etc এর সদব্যবহার করেন ? Master brunch/Development brunch/ Feature brunch/Test brunch/ Release brunch গুলো কি আলাদা থাকে ? সব টিমমেম্বার কি Code Conflict Resolve করতে পারে? <br>Source Control এর বেস্ট -প্রাকটিস গুলো কি আপনি মেনে চলেন ?</p><p><strong>২) আপনার বিল্ড এবং ডেলিভারি প্রসেস কি সম্পূর্ণ অটোমেটেড ?</strong></p><p>আপনি কি ম্যানুয়াল হস্তক্ষেপ ছাড়া বিল্ড এবং ডেপ্লয় করতে পারেন? নাকি latest source code থেকে বিল্ড এবং ডেপ্লয় করতে আপনাকে অনেক গুলো জটিল ধাপ পার করতে হয়? বেস্ট কেস এ , সব ডেপ্লয়মেন্ট একটি Continuous Integration সার্ভার দ্বারা automated ভাবে পরিচালিত হবে- এক ক্লিকেই সবকিছু বিল্ড এবং ডেপ্লয় হবে live server এ</p><p><strong>৩) আপনি কি Bug এবং feature এর জন্য কোন Tracking-Tool ব্যবহার করেন?</strong></p><p>Bug এবং feature ট্র্যাক রাখতে পুরো টিমের জন্য Jira/Trello/Redmine এর মত কোন Tracking-Tool ব্যবহার করেন কি আপনি ? এটি বড় স্কেলের প্রোজেক্ট এর ম্যানেজমেন্ট এর জটিলতা কমায়, এফিসিয়েন্সি বাড়ায়।</p><p><strong>৪) নতুন কোড লেখার আগে কি আপনি Bug resolve করেন ?</strong></p><p>আপনি একটি Bug ফিক্স করতে যত দেরি করবেন,সেটি ফিক্স করা ততই ব্যয়বহুল (সময় এবং অর্থ দুই দিকেই) হবে । তাই, হুটহাট নতুন ফিচার তৈরির চেয়ে Bug resolve করা বেশিরভাগ সময়েই বেশি জরুরি</p><p><strong>৫) আপনি কি Code-review করেন ?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*jNnMA5qY9nQrnkJU4b3d7w.gif" /></figure><p>কম্পিউটার পড়তে পারবে এমন কোড তো সবাই লিখতে পারে, তবে মানুষ পড়তে পারবে এমন কোড লেখাই আসল ইঞ্জিনিয়ার এর কাজ। এজন্য, production এ যাবার আগে সকল কোডই একজন team-lead অথবা peer দ্বারা reviewed হয়ে যাওয়া উচিত । আপনার টিম এ কি সেটা হয় ?</p><p><strong>৬) আপনি কি সফটওয়্যার এর যথার্থ Documentation রাখেন ?</strong></p><blockquote>Writing specs is like flossing: everybody agrees that it’s a good thing, but nobody does it~ Joel Spolsky</blockquote><p>একটি সফটওয়্যার এর সঠিক Documentation রাখা অসম্ভব গুরুত্বপূর্ণ একটি ব্যাপার। Software Requirement, usecase, user manual, component interation, release note ইত্যাদির জন্য Documentation না রাখলে পরে ভীষণ বড় রকমের miscommunication আর ভুল তৈরি হয়। আপনি কি সফটওয়্যার এর যথার্থ Documentation রাখেন ?</p><p><strong>৭) ডেভেলপারদের নির্ঝঞ্ঝাট-শান্ত কাজের পরিবেশ আছে কিনা?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/533/1*gV9BMXX-6adyf5a8oVv9hg.gif" /></figure><p>ভালো Developer দের শান্ত, নির্ঝঞ্ঝাট কাজের পরিবেশ প্রদান করলে তাদের কাজের প্রডাক্টিভিটি ব্যাপকভাবে বেড়ে যায় । Developer রা ‘flow state’ এ কাজ করে — একবার কোন কারনে সে distracted হলে এই স্টেট এ ফেরত যাওয়া অনেক সময় সাপেক্ষ তাদের জন্য</p><p><strong>৮) সাধ্যের মধ্যে থাকা বেস্ট Developer Tools গুলো ক্রয় ও ব্যবহার করছেন কিনা?</strong></p><p>ডেভেলপারদের জীবনকে যতটা সহজ করা যায় ততই কোম্পানির জন্য ভাল ।কারন সন্তুষ্ট ডেভেলপাররা সাধারণের থেকে ৩গুন বেশি আউটপুট দিবে। তাই কোম্পানির উচিত তার সাধ্যমত বেস্ট Developer Tools গুলো ক্রয় করা, যেগুলো তার Developer দের কাজের এফিসিয়েন্সি বাড়াবে</p><p><strong>৯) আপনাদের ডেডিকেটেড Tester আছে কি ?</strong></p><p>আপনার টিমে যদি প্রতি ৩/৪ জন ডেভেলপার এর বিপরীতে ১ জন Tester না থাকে তবে এটা নিশ্চিত আপনি bug এ ভরা প্রোডাক্ট ডেলিভারি দিচ্ছেন ।</p><p><strong>১০)নতুন প্রার্থী তাদের ইন্টারভিউয়ের সময় কোড লিখেন কি না?</strong></p><p>আপনার অফিসে কি নতুন Developer দের নিয়োগের ইন্টার্ভিউ এর সময় code করতে দেয়া হয় ? নাকি আপনারা প্রার্থীদের CV পড়েই hire করে ফেলেন ? একটা প্রার্থীর স্কিল সম্পর্কে নিশ্চিত হবার উপায় হচ্ছে তাকে ছোট একটা প্রোজেক্ট করতে দেয়া , অথবা তাকে কোন প্রোগ্রামিং প্রবলেম সল্ভ করতে দেয়া — যেখানে তাকে actual code লিখতে হয় ।</p><p><strong>১১) আপনি কি Automated-test করেন ?</strong></p><p>আপনার কি automated unit testing এর জন্য script লেখেন ? আপনার প্রোডাক্ট কে Test করার জন্য কি আপনাদের comprehensive কোন টেস্ট প্ল্যান আছে ?</p><p><strong>১২) আপনাদের কি ডেডিকেটেড UI এবং UX ডিজাইনার আছে?<br></strong> প্রোডাক্ট এর User Experience চমৎকার না হলে সেটা তার ব্যাকেন্ড এ কত দুর্দান্ত প্রোগ্রামিং করল — তার থোরাই কোন মূল্য আছে ।এই কারনে ডেডিকেটেড UI এবং UX ডিজাইনার থাকা খুবই জরুরি</p><p>এই ১২ টি প্রশ্নের সবগুলোর উত্তর হ্যা হলে আপনি সফটওয়্যার ইন্ডাস্ট্রির টপ ১০% কম্পানি এর একটি ।</p><p><strong>লেখক সম্পর্কে :</strong></p><p>লেখক, মাহদী মাশরুর মতিন-এর ৪.৫ বছরের সফটওয়্যার ইঞ্জিনিয়ারিং ইন্ডাস্ট্রি এর অভিজ্ঞতা আছে। Office-hour এ ,তিনি ICT Division, Bangladesh এর একজন Internet Security Consultant এবং National Data Centre এর Certificate Authority প্রজেক্টের Project Manager । আর, after Office-hour এ তিনি একজন Blockchain-enthusiast এবং obboylabs এর cofounder.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8aa92e0bd822" width="1" height="1" alt=""><hr><p><a href="https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE/joel-test-%E0%A7%A7%E0%A7%A8-%E0%A6%9F%E0%A6%BF-%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A6%B6%E0%A7%8D%E0%A6%A8%E0%A7%87-%E0%A6%8F%E0%A6%95%E0%A6%9F%E0%A6%BF-%E0%A6%B8%E0%A6%AB%E0%A6%9F%E0%A6%93%E0%A7%9F%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%B0-%E0%A6%9F%E0%A6%BF%E0%A6%AE-%E0%A6%8F%E0%A6%B0-%E0%A6%AE%E0%A6%BE%E0%A6%A8-%E0%A6%A8%E0%A6%BF%E0%A6%B0%E0%A7%8D%E0%A6%A7%E0%A6%BE%E0%A6%B0%E0%A6%A3-8aa92e0bd822">Joel Test : ১২ টি প্রশ্নে একটি  সফটওয়্যার-টিম এর মান নির্ধারণ</a> was originally published in <a href="https://medium.com/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82-%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE">প্রোগ্রামিং পাতা</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How facebook`s 50m user was hacked]]></title>
            <link>https://medium.com/@mashrur123/how-facebook-s-50m-user-was-hacked-8b41496ad430?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/8b41496ad430</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[facebook-hack]]></category>
            <category><![CDATA[data-security]]></category>
            <category><![CDATA[facebook-breach]]></category>
            <category><![CDATA[mark-zuckerberg]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Sat, 29 Sep 2018 13:22:22 GMT</pubDate>
            <atom:updated>2018-09-29T13:22:22.075Z</atom:updated>
            <content:encoded><![CDATA[<p>When you log into your facebook using your id and password- you get an access token in return. These tokens are the equivalent of digital keys that keep people logged in to Facebook, so they don’t need to re-enter their password every time they use the app.<br>This access token is used to prove your identity throughout all your activities in facebook- the likes/comments that you do, the photos/videos you upload.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/618/1*6Rv5_gCACePKhzEhcEGPMg.png" /></figure><p>In 26 September, 50 millions user`s facebook login access token was compromised. It is the biggest security breach that facebook has encountered so far. So, how did that happen?<br>The answer lies in the ‘view as’ feature in facebook:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/728/1*9eU7kceMQXOZhd-OhMH8qg.jpeg" /></figure><p>The ‘View As’ feature helps a user to view his profile from the eye of a specific person. People can type in any user name and see how that person sees what their profile looks like.<br>It is a combination of 3 bugs in ‘View As’ feature and ‘video-upload’ feature that helped the hackers spoof the access-tokens of the users:<br>In July 2017 facebook rolled out a new version of their video uploader, for faster uploading of videos. It is the lack of integration between this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/622/1*zq32dJyim1bw6CVQENIjRw.png" /></figure><p>‘View As’ feature and new ‘video-upload’ feature that lead to 3 bugs- which the attacker could tap into as the vulnerability point.</p><p>The 3 bugs are as follows:<br>1) The first bug was that when using the View As product,.View As should be a view-only interface. The video upload feature actually shouldn’t have showed up at all, when in ‘View As’ mode. But in a very specific case, around posts that encouraged people to wish Happy Birthday, it did show up.So, the View As incorrectly provided the opportunity to post a video.</p><p>2)The second bug was that this video uploader incorrectly used SSO(Single sign on) to generate an access token that had the permissions of the Facebook mobile app. That’s not how SSO was intended to be used on facebook: access-tokens were only meant to be created when users log-in.</p><p>3)The third bug was that when the video uploader showed up part as View As, it generated the access token not for you the actual user who is logged in, but for the specific person/user you were looking up , to preview your profile via the View As feature.</p><p>That seems like a fundamentally unsound design. Why should it even be theoretically possible for a request under the authority of one user to create a token with the authority of another user? And it had somehow missed the eyes of all the quality assurance engineers, penetration testers of facebook</p><p>So it’s the combination of these three bugs that created a vulnerability.And This vulnerability was discovered by hackers, and the way they exploited it is not just finding this vulnerability and using it to get an access token, but then every time they have an access token, pivoting from that to other accounts, to other friends to that user to get further access token. So in a span of a day, they could get access to 50 million users access token.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*JNnf02kwZSn0hzd-11EiPQ.jpeg" /></figure><p>Stealing the access token is the worst possible attack, because it wouldn’t get logged or lead to any sort of notification. So the breach of access token means the hackers could get hold of all the personal informations: all their activities, personal messages, photos ,videos.</p><p>This ‘View As’ feature had a major security hole back in 2010, which let you view your friends live chats. Seems like it is giving facebook headache again.<br>Here is the techcrunch`s article from 2010 about that bug:</p><p><a href="https://techcrunch.com/2010/05/05/video-major-facebook-security-hole-lets-you-view-your-friends-live-chats/">Video: Major Facebook security hole lets you view your friends&#39; live chats</a></p><p>There is also <em>one other major unanswered question about this incident is whether the access tokens could have let attackers interactively log in to third-party sites as the user</em>. Tens of thousands of Web sites let users log in using nothing more than their Facebook profile credentials. If users have previously logged in at third-party sites using their Facebook profile, there’s a good chance the attackers could have had access to those third-party sites as well.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/759/1*vPr-7nkC1u2JhHBTv39N0w.jpeg" /></figure><p>“We have a responsibility to protect your data, and if we can’t then we don’t deserve to serve you,”earlier this year , Zuckerberg wrote in a public apology regarding the Cambridge Analytica breach</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8b41496ad430" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[হাবলুদের জন্য HTTPS (পার্ট-২ ) :বাক্স দিয়ে বিশ্বাস গ​ড়ার গল্প]]></title>
            <link>https://medium.com/@mashrur123/%E0%A6%B9%E0%A6%BE%E0%A6%AC%E0%A6%B2%E0%A7%81%E0%A6%A6%E0%A7%87%E0%A6%B0-%E0%A6%9C%E0%A6%A8%E0%A7%8D%E0%A6%AF-https-%E0%A6%AA%E0%A6%BE%E0%A6%B0%E0%A7%8D%E0%A6%9F-%E0%A7%A8-%E0%A6%AC%E0%A6%BE%E0%A6%95%E0%A7%8D%E0%A6%B8-%E0%A6%A6%E0%A6%BF%E0%A7%9F%E0%A7%87-%E0%A6%AC%E0%A6%BF%E0%A6%B6%E0%A7%8D%E0%A6%AC%E0%A6%BE%E0%A6%B8-%E0%A6%97-%E0%A7%9C%E0%A6%BE%E0%A6%B0-%E0%A6%97%E0%A6%B2%E0%A7%8D%E0%A6%AA-4948ca719f46?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/4948ca719f46</guid>
            <category><![CDATA[bangla]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[cryptography]]></category>
            <category><![CDATA[https]]></category>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Wed, 18 Jul 2018 15:11:51 GMT</pubDate>
            <atom:updated>2018-07-18T17:36:20.024Z</atom:updated>
            <content:encoded><![CDATA[<p>গত পর্বে গল্পের ফাকে ফাকে আমরা জেনেছিলাম কিভাবে, Symmetric/Assymetric Key Cryptography দিয়ে secure-communication করা সম্ভব। আমরা প্রথমে জেনেছিলাম কিভাবে একটি বাক্স(public key) ও তার চাবি (private key) দিয়ে জসীম-শাবানা (client-server) তাদের চিঠি-চালান কে নিরাপদ করতে পারে।</p><p>কিন্তু, আসলেও কি এটা পুরাপুরি নিরাপদ? <br>বাক্স এর ভেতর এর চিঠি ভিলেন পড়তে পারবেনা তা বুঝা গেল , কিন্তু ডিপজল যদি কবুতর এর পথরোধ করে কবুতর এর পা থেকে যদি জসীমের বাক্স খুলে যদি নিজের বাক্সটা লাগিয়ে দেয় তখন ? <br>শাবানা তো তখন ডিপজলের বাক্স কে নায়ক জসীমের বাক্স মনে করে তাতে গোপনীয় চিঠি ভরে, তারপর লক করে দিবে। সেই বাক্সের চাবি যেহেতু ডিপজলের কাছে আছে, তাই সেই গোপন চিঠি তাহলে দিপজলের কাছে চলে আসবে।</p><p>এইটা হবে একটা ক্লাসিক ‘’Man in the middle” এটাক।</p><p>এই এটাক প্রতিরোধের কি উপায় তাহলে ?</p><h4><strong>বিশ্বাস এর মাধ্যম</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/461/1*iQa_OLCug0ZJECc55qxeuw.jpeg" /></figure><p>জসীম যদি তার বাক্স এর উপর সিগনেচার করে দেয় , তাহলে হয়ত শাবানা বুঝতে পারবে যে না আসলেই এটা জসীমের বাক্স। তখন আবার প্রশ্ন আস্তে পারে যে, কিভাবে শাবানা বুঝবে এই সিগনেচারই জসীমের সিগনেচার ?</p><p>যেকোনো অজানা ব্যাক্তিই যখন শাবানাকে নিজের সিগনেচার করা বক্সে চিঠি পাঠাবে, শাবানা কিভাবে বিশ্বাস করবে এই সিগনেচার সেই ব্যক্তিরই কি না ?</p><p>খুবই যৌক্তিক প্রশ্ন ।</p><p>এটার সমাধান হচ্ছে জসীম তার নিজের বাক্স নিজে সাইন করবেনা, সাইন করে দিবে এলাকার মোড়ল শামিম । এই শামিম টা কে তাহলে ?</p><p>শামিম হচ্ছে এলাকার একজন প্রসিদ্ধ ব্যক্তি, তাকে সবাই বিশ্বাস করে । যেই তার নামে নতুন বাক্স খুলতে চায় , সে তার বাক্স শামিম কে দিবে । জসীম তার নাম লেখা একটা বাক্স শামিম কে দিলে , শামিম তখনই সাইন করবে যখন সে নিশ্চিত হবে এটা জসীমই , অন্য কেউ নয় । জসীমের বাক্সে শামিমের সাইন , জসীমের পরিচয় কে ভেরিফাই করবে ।</p><p>এই শামিম সাহেব হচ্ছে ইন্টারনেটের টেকনিকাল ভাষায়, একজন Certificate Authority(CA)। CA রা বিভিন্ন ওয়েবসাইট এর পরিচয় কে সুনিশ্চিত করার জন্য, তাদের জন্য digital certificates ইস্যু করে থাকে।</p><p>আপনি যে ব্রাইজারে করে এই আর্টিকেলটি পরছেন, সেই ব্রাউজার এ অনেকগুলো CA এর সিগনেচার স্টোর করা থাকে ।</p><p>আপনি যখন কোন নতুন ওয়েবসাইটে যান, আপনি সেই সাইটের বাক্স কে ট্রাস্ট করতেসেনে তখনি যখন আপনি শামিম(Certificate Authority) কে ট্রাস্ট করেন এবং শামিম আপনাকে বলতেসে এই সাইটের বাক্স কে ট্রাস্ট করতে ।</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/518/1*7Vt0nuFH3PJjoOBbaSs9Hg.gif" /></figure><p>একজন নির্ভরযোগ্য তৃতীয় পক্ষ(চা/ শামিম সাহেব ) এর mediator of trust হিসেবে উপস্থিতি এক্ষেত্রে অনলাইনে আমাদের অবিশ্বাস এর সমস্যাটাকে সমাধান করতেসে ।</p><h4><strong>বাক্সগুলো বেজায় ভারী</strong></h4><p>জসীম — শাবানা(client-server) এখন বাক্স দিয়ে নিজেদের মাঝে চিঠি আদান প্রদান করতে পারে । শামিম সাহেবের(CA) বদৌলতে তারা একে অপরের পরিচয়(public keys) সম্পর্কেও এখন নিশ্চিত । তবে, একটা সমস্যা ।</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/212/1*gy5898ermUP6y5zGIPf9JQ.png" /></figure><p>বাক্সগুলা খুবই ভারী। তাই কবুতরের এই বাক্স আদান প্রদানে(Asymmetric key Cryptography) সময় লাগে অনেক বেশি । তবে, কবুতরের পায়ে শুধু চিঠি থাকলে সে অনেক দ্রুত উড়তে পারে , সময় লাগে অনেক কম । কারন , Symmetric Key Cryptography দিয়ে encryption/decryption এর চেয়ে Asymmetric Key Cryptography দিয়ে encryption/decryption বেশ মন্থর-গতির ।</p><p>তাই তারা চিন্তা করলো যে তারা উভয় উপায়েরই সুবিধা নিবে। তারা বাক্সে করে প্রথমে একটা সিক্রেট কোড পাঠাবে। ঐযে সেই Caesar Cipher এর সিক্রেট কোড । তারপর, তারা আর বাক্স করে চিঠি দিবেনা। সরাসরি, সেই সিক্রেট কোড দিয়ে encrypt করা চিঠি তারা কবুতরের পায়ে করে পাঠাবে ।</p><p>এভাবে তারা Asymmetric Key Cryptography এর নিরাপত্তা এবং Symmetric Key Cryptography এর দ্রুততা দুটাই পাবে ।</p><p>কোন ওয়েবসাইটে ঢুকলে Server তার public key/digital certificate পাঠায় client কে। client সেই Server certificate এ CA এর সিগনেচার দেখে Server এর public key সম্পর্কে নিশ্চিত হবে। তারপর, client একটি secret key কে Server এর public key দিয়ে encrypt করে Server এর কাছে পাঠাবে।। Server তার private key দিয়ে সেই মেসেজ কে decrypt করে secret key পাবে। তো হয়ে গেল Secret-Key Exchange। তারপর, client-server তাদের পরবর্তী সকল মেসেজ সেই secret key দিয়ে encrypt করে পাঠাবে এবং decrypt করে পরবে ।</p><p>Congratulations !! হতে পারেন, আপনি একজন nontechnical person — কিন্তু তাতে কি ? ইন্টারনেটে তথ্য আদান-প্রদানের জন্য বহুল-ব্যবহৃত এবং নিরাপদ উপায়/protocol HTTPS (Hypertext Transfer Protocol Secure) কিভাবে কাজ করে, আপনি তা এখন প্রায় পুরাপুরিই বুঝেন ।</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4948ca719f46" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[হাবলুদের জন্য HTTPS (পার্ট-১ ) : কবুতর ও Cryptography এর গল্প]]></title>
            <link>https://medium.com/@mashrur123/%E0%A6%B9%E0%A6%BE%E0%A6%AC%E0%A6%B2%E0%A7%81%E0%A6%A6%E0%A7%87%E0%A6%B0-%E0%A6%9C%E0%A6%A8%E0%A7%8D%E0%A6%AF-https-%E0%A6%AA%E0%A6%BE%E0%A6%B0%E0%A7%8D%E0%A6%9F-%E0%A7%A7-%E0%A6%95%E0%A6%AC%E0%A7%81%E0%A6%A4%E0%A6%B0-%E0%A6%93-cryptography-%E0%A6%8F%E0%A6%B0-%E0%A6%97%E0%A6%B2%E0%A7%8D%E0%A6%AA-6787539bfe9a?source=rss-f74ea0ae0044------2</link>
            <guid isPermaLink="false">https://medium.com/p/6787539bfe9a</guid>
            <dc:creator><![CDATA[Mahdi Mashrur Matin]]></dc:creator>
            <pubDate>Sat, 07 Jul 2018 17:13:57 GMT</pubDate>
            <atom:updated>2018-07-07T18:26:27.674Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Rotv43WRlMb6ks_TQnLweQ.png" /></figure><p>ইন্টারনেটে তথ্য আদান-প্রদানের জন্য একটি বহুল-ব্যবহৃত এবংনিরাপদ উপায়/protocol হচ্ছে HTTP<strong>S </strong>(Hypertext Transfer Protocol Secure)<br>কেনই বা এটাকে নিরাপদ বলতেসি আমরা?<br>নিরাপদ কেন বলা হচ্ছে তা বোঝার জন্য আসলে আমাদের Cryptography সম্পর্কে জানতে হবে। Cryptography আবার বোঝার জন্য একটু ভারী বিষয় , Mathematical proof এ ভরা । <br>তবে কি হচ্ছে, কেন হচ্ছে তার একদম high level overview পাবার জন্য কোন রকেট-সাইন্টিস্ট হবার দরকার নেই। দুই পার্টের এই সিরিজে কবুতর দিয়েই আমরা HTTPS এর security এবং Cryptography বুঝে ফেলব । এই সিরিজে আমরা Cryptography-101 সম্পর্কে জানবো</p><h4>জসীম , শাবানা এবং … কবুতর?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*86SqF9YC4gJ0bpMK8rZ4_A.gif" /></figure><p>medium এ আর্টিকেল পড়া/ facebook এ ছবি আপলোড করা/Youtube এ ভিডিও আপলোড করা- ইন্টারনেটে আমাদের করা সব কাজই হচ্ছে আসলে Server এর সাথে client এর পারস্পরিক মেসেজ আদান-প্রদান। বিপত্তি বাঝে তখনই যখন একজন Hacker , এই Server-Client এর মাঝে চালাচালি হওয়া মেসেজ পড়ে ফেলতে পারে অথবা তা পরিবর্তন করে ফেলতে পারে। <br>বোঝার সুবিধার্থে, আমরা ধরে নেই নায়ক জসিম আমাদের Client<br>নায়িকা শাবানা আমাদের Server<br>নায়ক-নায়িকা( Client Server)এর মাঝে চিঠির(data) আদান-প্রদান হবে<br>চিঠির(Data) বাহক হবে কবুতর(internet)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/643/1*VgCrLOxRREJCZtcuLFr2Hg.jpeg" /></figure><p>আমরা ধাপে ধাপে বোঝার চেষ্টা করব, কিভাবে জসিম-শাবানা একে অপরকে securely চিঠি পাঠাতে পারে।</p><h4>যোগাযোগ এর প্রথম চেষ্টা:</h4><p>জসিম যদি শাবানাকে চিঠি পাঠাতে চায় তবে সে কি করবে? জসিম একটা চিঠি লিখে বাহক কবুতর এর পায়ের সাথে তা বেধে দিবে এবং কবুতরকে সে পাঠাবে শাবানার বাড়ির ঠিকানায়।কবুতর উড়ে গিয়ে শাবানার কাছে যাবে। শাবানা, কবুতর এর পা থেকে চিঠি খুলবে , পড়বে এবং আনন্দে আত্মহারা হবে। <br>তবে, ভিলেন ডিপজল যদি পথ এর মাঝে , কবুতর কে পথরোধ করে, এবং সেই চিঠি পড়ে তারপর আবার চিঠি বদলে তার মনগড়া চিঠি কবুতরের পায়ে এটে দেয় ? <br>শাবানার কিন্তু বোঝার কোন উপায় ই নেই যে, তার চিঠি কি কেউ পড়ে ফেললো বা বদলে ফেললো নাকি পথিমধ্যে । <br>কোন নিরাপত্তা নেই- তাইনা ? HTTP অনেকটা এভাবেই কাজ করে আসলে। একদম bare-bon এবং unsecured</p><h4>একটি সিক্রেট কোড</h4><p>HTTP দিয়ে চিঠি পাঠানোর এই সিকিউরিটির সমস্যা দুর করার জন্য জসীম একটা সিক্রেট কোড ব্যবহার করে চিঠি লেখা শুরু করলো। সিক্রেট কোড যদি ৩ হয় তবে জসীম চিঠি লেখার সময় বর্ণমালার ৩ ঘর বামে শিফট পড়ে বর্ণ লিখবে । যেমনঃ D-&gt;A, , E → B, F → C । <br>“i miss you” তখন হয়ে যাবে “f jfpp vlr”<br>এখন ভিলেন ডিপজল যদি চিঠি পড়েও ফেলে, তাতেও সমস্যা নেই- সে এই চিঠির কিছুই পাঠোধ্যার করতে পারবেনা . <br>কিন্তু, শাবানা ঠিকই “f jfpp vlr” কে decrypt করে ফেলবে “i miss you”</p><p>ওহ, প্রাইভেসির প্রথম সফল ধাপ ! <br>একটি secret key দিয়ে তথ্য encrypt-decrypt করাকে বলা হয় ‘symmetric key cryptography’</p><p>উপরে বর্ণিত , অক্ষর শিফট করার কোডটি সাধারণত সিজার সাইফার(Caesar cipher) নামে পরিচিত। বাস্তব জীবনে, আমরা ফ্যান্সিয়ার এবং আরো জটিল, আরো ফ্যান্সিয়ার কোড ব্যবহার করি, কিন্তু মূল ধারণা একই।</p><h4>সিক্রেট কোড এর বিনিময় কিভাবে হবে ?</h4><p>সিম্যাট্রিক কী ক্রিপ্টোগ্রাফি যথেষ্ট নিরাপদ , যদি প্রেরক এবং প্রাপক ছাড়া অন্য কেউ যদি তা জানতে না পারেন।<br>সমস্যা হলো, যদি কবুতর diye বার্তা পাঠানোর আগে জসীম এবং শাবানার দেখা না হয়, তবে তারা কিভাবে তাদের secret-code বিনিময় করবে ? যদি জসীম কবুতর দিয়েই সিক্রেট কোড শাবানার কাছে পাঠায়, এবং মাঝে ডিপজল যদি বার্তাটি আটকায় এবং সিক্রেট কোডটি পড়ে ফেলে? । জসীম তার বার্তাগুলি তক্ষণ এনক্রিপশনের করে পাঠালেও লাভ নেই , ডিপজল এর কাছে সিক্রেট কোড থাকায় সে সব বুঝে ফেলতে পারবে । <br>এটি Man in the middle এর একটা আদর্শ উদাহরণ এবং এটা এড়ানোর একমাত্র উপায় হল এনক্রিপশন সিস্টেমকে একবারে পরিবর্তন করা।</p><h4>কবুতর এর পায়ে বক্স</h4><p>উপরের Man in the middle দুর করার জন্য নতুন একটা উপায় বের করলো প্রেমিক-প্রেমিকা ঃ<br>১) জসীম কোন চিঠি ছাড়াই শাবানাকে একটি কবুতর পাঠায়।<br>২) শাবানা একটা বাক্স নেয় , যেটাকে চাবি দিয়ে খোলা যায় । চাবি শাবানা তার নিজের কাছেই রেখে দেয় এবং খোলা বাক্সটাকে সে কবুতর এর পায়ে বেধে দেয়<br>৩) জসীম সেই খোলা বাক্স টা পেয়ে , তার চিঠি সেটার মধ্যে ভরে দেয় এবং বাক্স টাকে লক করে দেয় । কবুতর সেই বাক্স নেয়ে আবার রওনা করে . <br>৪) শাবানা সেই লক করা বাক্স পেয়ে নিজের চাবি দিয়ে সেই লক খুলে এবং চিঠিটি পড়ে।</p><p>এভাবে, ডিপজল মাঝে থেকে বাক্স পেলেও লাভ নেই, কারন তার কাছে তো আর বাক্স আনলক করার চাবি নেই । এইভাবে , জসীম এবং শাবানা secure-communication করতে পারবে । Cryptography এর ভাষায় একে বলে Assymetric Key Cryptography <br>এখানে যে কেউ বাক্স(private key) তে চিঠি ভড়ে লক করতে পারে (encryption), তবে শুধু একজনই আনলক(decryption) করতে পারে , যার কাছে চাবি(private key) আছে।</p><p>তো গল্পের ফাকে আমরা জেনে গেলাম কিভাবে, Symmetric/Assymetric Key Cryptography দিয়ে secure-communication করা সম্ভব। <br>পার্ট-২ তে আমরা এই Cryptography এর জ্ঞান দিয়ে HTTPS এ কিভাবে দ্রুত ও নিরাপদ ‘’mutual authentication” হয় তা শিখব…</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6787539bfe9a" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>