درگاه پرداخت اینترنتی چگونه کار می‌کند؟

درگاه پرداخت اینترنتی چگونه کار می‌کند؟

امروزه بسیاری از چیزها اینترنتی شده‌اند. پرداخت قبوض، جریمه‌های رانندگی و حتی خرید کفش و لباس. پیش از این برای پرداخت قبض تلفن، ما مجبور بودیم ساعت‌ها در صف بانک‌ها بایستیم؛ اما امروزه کافی است گوشی خود را دربیاوریم و به یک درگاه پرداخت اینترنتی وصل شویم.

حتما هم لازم نیست به یک وب‌سایت مراجعه کنیم. کدهای دستوری فراوانی هستند که به ما کمک می‌کنند با یک گوشی ساده تمام این کارها را انجام دهیم. همان شماره ستاره و مربعی که در گوشی خود برای پرداخت یا خرید شارژ روی گوشی خود می‌گیریم، در اصل یک وب‌سایت یا سرور متصل به یک درگاه پرداخت اینترنتی است.

از بازارگردی تا خرید

فروشگاه‌های آنلاین برای من منبع خوبی برای کسب اطلاع از قیمت یک محصول هستند. این فروشگاه‌ها در طول زمان به مرجعی برای درک اوضاع بازار خصوصا وسایل الکترونیکی تبدیل می‌شوند. مهم‌تر از آن، فروشگاه‌های آنلاین امکان بسیار خوبی برای خرید محصولات اصل فراهم می‌کنند.

وقتی شما در اینترنت هستید، دائما در معرض تهدید قرار دارید.

اما در پس همه این‌ها، مسئله خرید کردن وجود دارد؛ یعنی شما پولی پرداخت می‌کنید و کالایی را تحویل می‌گیرید. روش تحویل گرفتن کالا هم مشخص است. یا توزیع‌کنند‌ه‌های فروشگاه، کالا را به دستتان می‌رسانند یا آن را از طریق پست دریافت می‌کنید.

اما برای پرداخت پول کالا باید چه‌کار کنیم؟ زمانی بود که پول کالا را هنگام دریافت کالا به پستچی تحویل می‌دادیم؛ اما اگر شما هیچ کالای فیزیکی دریافت نمی‌کنید و فقط خدمات می‌گیرید، چه؟

امروزه پرداخت اینترنتی پول، خرید اینترنتی، پرداخت قبوض و بسیار از خدماتی پرداختی تحت پروتکل‌های پرداخت اینترنتی وجود دارند. ما در این مقاله می‌خواهیم به چندوچون و نحوه کارکرد درگاه‌های پرداخت اینترنتی بپردازیم.

درگاه‌ پرداخت اینترنتی از دیروز تا امروز

هنگامی‌که شما در یک از درگاه‌ پرداخت اینترنتی، اطلاعات کارت بانکی خود را وارد می‌کنید و روی دکمه پرداخت کلیک می‌کنید، اتفاق چندان متفاوتی از یک انتقال وجه‌ کارت به کارت در دستگاه‌های خودپرداز نمی‌افتد.

در هر دو حالت مقداری پول از حساب شما کسر و به حساب مقصد واریز می‌شود. هرچند در اصل قضیه این‌گونه است که مقداری پول از حساب شما کسر می‌شود و در حساب بانک شما می‌ماند. ازآن‌سو بانک مقصد همان مقدار پول را از حساب خود کسر و به حساب مقصد واریز می‌کند.

تسویه‌حساب‌های بین‌بانکی هم معمولا در ساعات خلوت مثل نیمه‌شب‌ها که حجم تراکنش‌های مالی کم است، صورت می‌گیرند.

اگر تمهیدات امنیتی در درگاه‌های پرداخت اینترنتی رعایت نشود، اطلاعات کارت بانکی به‌راحتی ممکن است سرقت شود.

کل فرآیند‌های این انتقال وجه در داخل شبکه بانکی رخ می‌دهد. حتی اگر تمهیدات امنیتی نرم‌افزاری هم برای آن در نظر گرفته نشده باشد، به دلیل اینکه همه‌چیز درون شبکه بانکی است و دسترسی به آن برای افراد و کامپیوترهای خارج از شبکه سخت است؛ در نتیجه سیستم حدی از امنیت را دارا است.

اما هنگامی که می‌خواهید یک پرداخت اینترنتی انجام دهید، از آنجایی شما در اینترنت هستید و دائما در معرض تهدید قرار دارید، باید تمهیدات امنیتی برای جلوگیری از هرگونه سرقت اطلاعات استفاده شود.

اگر چنین تمهیداتی رعایت نشوند، اولین چیزی که احتمالا رخ ‌می‌دهد این است که کسی اطلاعات کارت بانکی شما را سرقت کرده و مقداری پول از حساب شما برداشت کند.

رمزنگاری اطلاعات

امروزه برای اینکه وب‌سایت‌ها و سرویس‌های متعدد بتوانند امنیت کاربران و خودشان را حفظ کنند، از رمزنگاری استفاده می‌کنند.

معمول‌ترین روش رمزنگاری هم استفاده از رمزنگاری TLS یا Transport Layer Security است که به اتصال https مشهور است.

سیستم‌های پرداخت اینترنتی هم برای اینکه بتوانند امنیت پرداخت‌ها را تامین کنند از دو لایه رمزگذاری استفاده می‌کنند. لایه اول رمزگذاری استفاده از همین پروتکل TLS یا https در دامنه وب‌سایت‌ها یا اپلیکیشن‌ها است.

سیستم‌های پرداخت اینترنتی برای اینکه بتوانند امنیت پرداخت‌ها را تامین کنند از دو لایه رمزگذاری استفاده می‌کنند.

لایه دوم امنیتی، کلید‌های رمزگذاری است که هر سایت پرداخت‌کننده یا بانک در اختیار وب‌سایت‌ها یا اپلیکیشن‌ها پذیرنده قرار می‌دهند و با استفاده از این کلید داده‌ها را رمزگذاری می‌کنند.

برای اینکه سیستم امنیتی و نحوه انجام یک پرداخت اینترنتی را توضیح دهیم بگذارید بهتر است کمی رمزگذاری https را تشریح کنیم.

رمزگذاری چیست؟

رمزگذاری یا رمزنگاری، مفهوم اولیه ساده‌ای دارد. رمزگذاری یعنی اینکه شما اطلاعات را با استفاده از یک کلید رمزنگاری یا همان دستورالعمل رمزگذاری، به شکل دیگری درمی‌آورید. تنها افرادی می‌توانند اطلاعات شما را بخوانند که کلید رمزگذاری را داشته باشند. بگذارید یک مثال ابتدایی بزنیم.

فرض کنید من می‌خواهم عبارت «سلام» را به‌صورت رمزگذاری شده ارسال کنم.

ابتدا یک قرارداد رمزنگاری یا همان کلید رمزنگاری (Encryption Key) باید تعریف کنیم؛ مثلا فرض کنید در قرارداد رمزنگاری درج می‌کنیم که:

عبارت «ن۱ت» همان حرف «س» باشد. «ت۳غ» حرف «ل»، «خ۹۸ن» حرف «الف» و «غ۶۵ی» حرف «م» باشد. بقیه حرف الفبا، اعداد و علامت‌ها نیز به شکل مشابهی تنظیم می‌شوند.

طبق این قرارداد رمزنگاری یا کلید رمزگذاری، کلمه «سلام» به این شکل خواهد بود «ن۱تت۳غخ۹۸نغ۶۵ی».

ایده پشت هر سیستم رمزگذاری این است که ما اطلاعات را به نحوی تغییر دهیم که برای کسی که کلید رمزگذاری یا رمزگشایی را ندارد، بی‌مفهوم باشد.

اگر کسی در بین راه این پیام را دریافت کند، چیزی از آن نخواهد فهمید. او به دلیل اینکه قرارداد رمزنگاری یا کلید رمزگذاری را ندارد، نخواهد فهمید محتوای واقعی این عبارت چیست و چنین پیامی برای او بی‌معنی خواهد بود.

اگر فقط فرد یا افراد دریافت‌کننده این پیام، کلید رمزگذاری را بدانند، می‌توانند به محتوای واقعی آن دست پیدا کنند. اگر مخاطب شما هم پاسخ خود را با استفاده از همین کلید رمزنگاری ارسال کند تنها شما و افرادی که این کلید رمزگذاری را دارند، می‌توانند محتوا پیامتان را متوجه شوند.

رمزگذاری https چیست؟

رمزگذاری https برای دو منظور استفاده می‌شود: تایید هویت و رمزگذاری ارتباط.

۱- تایید هویت

برای اینکه یک ارتباط امن بین مرورگر شما و سرور یک وب‌سایت برقرار شود، نوع خاصی از کلیدها رمزنگاری استفاده می‌شوند. این کلیدها شامل کلید‌های عمومی (Public key) و کلید‌های خصوصی (Private key) هستند. کلید‌های عمومی به‌صورت پیش‌فرض روی مرورگرها و سرورها نصب هستند و یا نصب می‌شوند. کلیدهای هم خصوصی فقط و فقط روی سرور نصب می‌شوند.

پیام‌ها با استفاده از یک کلید عمومی رمزگذاری می‌شوند. رمزگشایی این اطلاعات فقط با داشتن کلید‌ خصوصی ممکن است.

هنگامی که برای مثال شما به وب‌سایت تجارت‌نیوز که از این پروتکل برای تامین امینت کاربران خود استفاده می‌کند، مراجعه می‌کنید، مرورگر شما در ابتدا مجوزهای سایت (Certificates) را از سرور تجارت‌نیوز دریافت می‌کند.

سایت تجارت‌نیوز از شرکت Unizeto Technologies S.A تاییدیه گرفته است. فهرستی از این تاییدیه‌ها همراه با کلید‌های عمومی هر مجوز، به‌صورت پیش‌فرض در هر مرورگر نصب هستند.

اگر سایتی از مجوزی استفاده کند که در این فهرست مورد اعتماد مرورگر وجود نداشته باشد، پیامی مبنی بر ناامن بودن سایت به کاربر نشان می‌دهد و توصیه می‌کند که وارد سایت نشوید.

۲- رمزگذاری

وقتی مرورگر مجوز سایت را تایید کرد، یک کلید رمزگذاری برای این ارتباط یا کلید جلسه (Session key) تولید می‌کند. سپس این کلید را با استفاده از کلید‌های عمومی رمزگذاری می‌کند و به سرور می‌فرستد.

پس از این کار، سرور این پیام را با استفاده از کلید خصوصی خود باز می‌کند و کلید ارتباط یا کلید جلسه را می‌خواند.

توجه داشته باشید که کلید خصوصی فقط و فقط در اختیار سرور است و اگر فردی در میانه راه این پیام را بدزدد، نمی‌تواند پیام را رمزگشایی و کلید ارتباطی بین کامپیوتر شما و سرور را به دست بیاورد.

وقتی سرور کلید جلسه را که توسط مرورگر شما تولید شده است، دریافت کرد، پیامی را با استفاده از این کلید جلسه رمزگذاری کرده و به کامپیوتر شما می‌فرستد. در این مرحله مرورگر شما متوجه می‌شود که یک ارتباط امن با استفاده از این کلید با سرور ایجاد شده است.

به این کار اصطلاحا دست دادن (Handshake) گفته می‌شود.

کلید ارتباط یا همان کلید جلسه، کلیدی است که با استفاده از آن مرورگر شما و سرور به رمزگذاری و رمزگشایی پیام‌های مبادله‌شده می‌پردازند و ارتباط را امن می‌کنند.

درگاه‌های پرداخت اینترنتی

درگاه‌های پرداخت اینترنتی در حالت کلی به دو صورت هستند. درگاه‌های مستقیم و درگاه‌های غیرمستقیم.

درگاه‌های پرداخت اینترنتی مستقیم

درگاه‌های پرداخت اینترنتی مستقیم (PSP) معمولا توسط خود بانک‌ها یا شرکت‌های زیرمجموعه بانک‌ها ساخته می‌شوند. این درگاه‌ها مستقیما به بانک‌ها متصل هستند و مستقیما تراکنش‌ها را انجام می‌دهند.

ساخت چنین درگاه‌هایی مجوزها و پشتیبانی فنی زیادی لازم دارند. به همین چنین درگاه‌هایی را معمولا شرکت‌های بزرگ یا خود بانک‌ها ایجاد می‌کنند. درگاه‌هایی مثل گوگل پی (Google Pay) و اپل پی (Apple Pay) از این نوع هستند.

در ایران ۱۲ شرکت وجود دارند که درگاه پرداخت اینترنتی مستقیم ارائه می‌دهند. این شرکت‌ها باید از طرف بانک مرکزی مجوز فعالیت داشته باشند.

در ایران ۱۲ شرکت وجود دارند که درگاه پرداخت اینترنتی مستقیم ارائه می‌دهند.

اگر تاکنون پرداخت الکترونیکی انجام داده باشید، نام برخی از این درگاه‌های پرداخت مستقیم را احتمالا مشاهده کرده‌اید. مثل درگاه به‌پرداخت بانک ملت یا بانک پارسیان.

در این حالت معمولا سایت پذیرنده از شما می‌خواهد که درگاه پرداخت موردنظر خود را انتخاب کنید. بعد از کاربر به این درگاه پرداخت ارجاع داده می‌شود. این شرکت‌ها معمولا به‌ازای تراکنش‌هایی که از طریق آن‌ها انجام می‌شود، کارمزدی از سوی بانک دریافت می‌کنند.

درگاه‌های پرداخت مستقیم چند سالی است جهت اعمال نظارت‌ها و جلوگیری از تقلب و سوءاستفاده تحت دامنه شاپرک فعالیت می‌کنند.

درگاه‌های پرداخت اینترنتی غیرمستقیم

درگاه‌های پرداخت الکترونیکی غیرمستقیم توسط شرکت‌های کوچک ارائه می‌شوند. تعداد این درگاه‌های پرداخت در ایران زیاد است. این درگاه‌های پرداخت، مستقیما با سیستم بانکی در ارتباط نیستند.

وقتی پرداختی به این شرکت‌ها ارجاع داده می‌شود آن‌ها پرداخت را به یکی از درگاه‌های پرداخت مستقیم هدایت می‌کنند و در نهایت شما مشخصات کارت خود را در صفحه‌ای وارد می‌کنید که توسط یکی از این شرکت‌های پرداخت مستقیم ایجاد شده و زیر دامنه shaparak.ir قرار دارد.

چه تفاوتی بین درگاه‌های پرداخت مستقیم و غیرمستقیم وجود دارد؟

فرض کنید شما به‌تازگی یک وب‌سایت اینترنتی برای فروش برخی خدمات راه‌اندازی کرده‌اید. برای اینکه بتوانید هزینه خدمات خود را دریافت کنید، لازم است یک ابزار پرداخت در سایت خود قرار دهید.

برای اینکه بتوانید سایت خود را به یک درگاه پرداخت مستقیم وصل کنید، کارهای اداری پیچیده و طولانی لازم است.

سایت شما باید نشان تاییدیه نماد اعتماد الکترونیکی و مجوز فعالیت صنفی داشته باشید و از طرف سیستم بانکی هم باید تاییدیه فعالیت بگیرید. البته چند مورد دیگر همچون داشتن وب‌سایت طراحی‌شده و رعایت قوانین جمهوری اسلامی نیز وجود دارند که بدیهی هستند.

دریافت این مجوزها معمولا زمان‌بر و هزینه‌بر است. به همین دلیل معمولا فقط شرکت‌های بزرگ سراغ استفاده از درگاه‌های پرداخت مستقیم می‌روند. اگر پرداخت‌ها از طریق یک درگاه پرداخت مستقیم انجام شوند، کارمزدی ندارند.

ایجاد یک درگاه پرداخت مستقیم نیازمند صرف زمان و هزینه زیاد است.

اما برای اینکه یک درگاه پرداخت غیرمستقیم در سایت خود ایجاد کنید، به این مجوزها و کارهای اداری پیچیده احتیاجی نیست.

فقط کافی است یک اسکن از کارت ملی و شناسنامه خود را در هنگام ثبت‌نام در سایت این شرکت‌های پرداخت اینترنتی غیرمستقیم ثبت کنید. با این کار فقط پس از ۲۴ ساعت درگاه پرداخت شما فعال خواهد بود.

البته این نکته را هم باید در نظر داشته باشید که درگاه‌های پرداخت اینترنتی غیرمستقیم در هر تراکنش بین ۱ تا ۲.۵ درصد از مبلغ تراکنش را به‌عنوان کارمزد دریافت می‌کنند.

چنین درگاه‌هایی این مزیت را هم دارند که ممکن است هم‌زمان با چندین درگاه پرداخت اینترنتی مستقیم در ارتباط باشند. در نتیجه هنگام پرداخت، اگر یکی از آن‌ها دچار مشکل شود، سیستم مشتری را به درگاه دیگری هدایت می‌کند. در نتیجه می‌توانید اطمینان داشته باشید که مشتری شما به‌راحتی پرداخت خود را انجام خواهد داد.

درگاه‌های پرداخت غیرمستقیم معمولا در بازه زمانی ۷۲ساعته با شما تسویه‌حساب می‌کنند.

امنیت درگاه‌های پرداخت چگونه است؟

درگاه‌های پرداخت مستقیم

درگاه‌های پرداخت اینترنتی برای اینکه بتوانند امنیت کاربران خود را تامین کنند از روش‌های گوناگون رمزگذاری استفاده می‌کنند.

فرض کنید شما می‌خواهید یک درگاه پرداخت اینترنتی مستقیم در سایت خود قرار دهید. پس از اینکه کارهای اداری مربوط را انجام دادید، شرکت پرداخت، یک کلید رمزگذاری در اختیار شما قرار می‌دهد. شما باید این کلید رمزگذاری را کاملا محرمانه نگه دارید.

این کلید رمزگذاری در سرورهای شرکت پرداخت هم قرار دارد. این کلید مختص شماست. در نتیجه هنگامی که شما می‌خواهید اطلاعاتی به سرور پرداخت بفرستید باید تمام داده‌های پرداخت از جمله مبلغ را با این کلید رمزگذاری کنید. سرور می‌داند که باید از کلیدی که مخصوص شما ساخته‌شده است برای رمزگشایی اطلاعات ارسالی شما استفاده کند.

تمامی این عملیات پرداخت در بستر امن TLS انجام می‌شوند؛ یعنی شما عملا از دو لایه رمزگذاری بهره می‌برید.

سرور اطلاعات پرداخت را با استفاده از این کلید رمزگشایی کرده و کاربر را به صفحه پرداخت هدایت می‌کند. وقتی پرداخت انجام شد، دوباره، سرور اطلاعات را با همین کلید رمزگذاری و به شما ارسال می‌کند و شما متوجه می‌شوید که وضعیت پرداخت چیست.

این نکته را هم در نظر داشته باشید که تمامی این عملیات پرداخت در بستر امن TLS که در سطور پیشین گفتیم، انجام می‌شوند؛ یعنی شما عملا از دو لایه رمزگذاری بهره می‌برید.

درگاه‌های پرداخت غیرمستقیم

درگاه‌های پرداخت غیرمستقیم هم مثل درگاه‌های پرداخت مستقیم یک کلید رمزگذاری محرمانه در اختیار شما قرار می‌دهند. هنگامی که شما می‌خواهید مشتری را به درگاه پرداخت ارجاع دهید، باید اطلاعات پرداخت را با این کلید رمزگذاری کنید.

این اطلاعات در سرور درگاه پرداخت غیرمستقیم با استفاده از این همین کلید منحصر به شما رمزگشایی می‌شوند. سپس سرور پرداخت غیرمستقیم، اطلاعات پرداخت را با کلید مخصوص خود که از یکی از درگاه پرداخت مستقیم دریافت کرده، رمزگذاری می‌کند و اطلاعات را به سرور پرداخت مستقیم ارسال می‌کند.

با این کار مشتری به صفحه پرداخت یکی از شرکت‌های پرداخت مستقیم هدایت می‌شود و اطلاعات کارت بانکی خود را وارد می‌کند.

وقتی پرداخت انجام شد، نتیجه پرداخت با همین فرآیند ابتدا به سرور درگاه پرداخت غیرمستقیم ارسال می‌شود. این سرور هم نتیجه پرداخت را با کلید رمزگذاری مخصوص شما به سایت سرور سایت شما ارسال می‌کند.

بازهم باید تاکید کنیم که تمامی این عملیات تحت پروتکل TLS که بین کامپیوتر مشتری شما و سرورها و بین خود سرورها وجود دارد، انجام می‌شوند. در نتیجه یک سیستم رمزگذاری دو لایه برای هر پرداخت به کار می‌رود که احتمال هک شدن و نفوذ را به‌شدت کم می‌کند.

پرداخت ناموفق چیست؟

هنگامی که مشتری شما به صفحه پرداخت ارجاع داده می‌شود و اطلاعات کارت بانکی خود را وارد کرده و سپس روی دکمه پرداخت کلیک می‌کند، اتفاق متعددی ممکن است رخ دهد.

ممکن است پرداخت با موفقیت انجام شود. ممکن است موجودی حساب مشتری کم باشد و پرداخت ناموفق باشد. ممکن است حساب سایت پذیرنده یعنی حسابی که شما به درگاه پرداخت ارائه داده‌اید یا حسابی که درگاه پرداخت غیرمستقیم به درگاه پرداخت مستقیم ارائه داده است، به هر دلیل نامعتبر باشد.

تعداد حالت‌های ممکن برای انجام پرداخت متعدد هستند. برخی از این حالت‌ها مربوط به دیگر اطلاعات ضروری پرداخت هستند که در این مقاله به آن‌ها اشاره نکردیم.

به لحاظ فنی هیچ تفاوتی بین پرداخت موفق و ناموفق وجود ندارد.

مهم نیست چه اتفاقی در صفحه پرداخت رخ می‌دهد. در نهایت درگاه پرداخت مستقیم کدی را به شما یا سرور درگاه پرداخت غیرمستقیم مبنی بر وضعیت تراکنش ارسال می‌کند.

هر کد نشانگر یکی از حالت‌های وضعیت پرداخت است. معمولا وضعیت‌هایی که به مشتری مربوط هستند، مثل کمبود موجودی یا نامعتبر بودن اطلاعات کارت به مشتری نمایش داده می‌شوند. بقیه وضعیت‌ها فقط به سرور سایت اصلی یا همان پذیرنده یا سرور درگاه پرداخت غیرمستقیم بسته به شرایط ارسال می‌شوند.

هیچ تفاوت فنی و امنیتی هم بین یک پرداخت موفق و یک پرداخت ناموفق وجود ندارد. فقط کد متفاوتی به سایت اصلی ارسال می‌شود و سایت‌ هم متناسب با نوع کد، به مشتری بیان می‌کند، پرداخت موفق بوده و یا ناموفق. اگر هم علت این پرداخت ناموفق به مشتری مربوط است پیامی را نیز متناسب با آن نمایش می‌دهد که مثلا موجودی کم است یا رمز اشتباه است.

رمزگذاری پاشنه آشیل درگاه‌های پرداخت اینترنتی

رمزگذاری نه‌فقط برای حفظ امنیت پرداخت‌های اینترنتی، بلکه تقریبا برای حفظ امنیت هر چیزی در اینترنت استفاده می‌شود. در پس تمام رمزگذاری‌ها یک الگوریتم ریاضی پیچیده وجود دارد.

بر اساس تحقیقاتی که من برای نوشتن این مقاله انجام داده‌ام، ابزارهای خوبی برای حفظ امنیت در درگاه‌های پرداخت‌های اینترنتی وجود دارند. این ابزارها با اطمینان بالایی امنیتی پرداخت‌ها را به‌خوبی تامین می‌کنند.

اما اگر می‌خواهید امنیت پرداخت‌های اینترنتی شما از این هم بالاتر برود، بهتر است هنگامی‌که به صفحه پرداخت مراجعه می‌کند، علاوه بر شکل ظاهری سایت که باید متعلق به یکی از شرکت‌های پرداخت اینترنتی مستقیم باشد، به آدرس آن نیز بسیار توجه کنید زیرا ممکن است شما قربانی یک حمله فیشینگ باشید.

حفظ امنیت علاوه بر اینکه نیازمند اقدام‌های فنی از طرف صاحبان و ارائه‌دهندگان خدمات است، به هوشیاری بسیار زیاد کاربران نیز احتیاج دارید. به یاد داشته باشید، وقتی دائما در اینترنت هستید، همواره کسانی وجود دارند که می‌خواهند از شما سوءاستفاده و شما را شکار کنند.

این مطلب را به اشتراک بگذارید
نظرات