5. SSL IN NON-BROWSER SOFTWARE
We analyze a representative sample of non-browser software applications and libraries that use SSL for secure Internet connections. Some programs, such as instant messenger clients and simple mobile banking apps, are fairly straightforward in their use of
SSL. Others, especially middleware libraries, use SSL as part of a
multi-layer software stack. Many of the programs we analyze transmit extremely sensitive data—private files of individual users in the
case of cloud clients, financial information of customers in the case
of merchant SDKs, developer account credentials in the case of
mobile advertising software—over potentially insecure public networks, thus it is absolutely critical that they use SSL correctly.
Cloud client APIs. As cloud-computing platforms such as Amazon EC2 grow in popularity, their operators supply client SDKs
through which third-party software can transmit user data to cloudbased storage, manage cloud-based computation (e.g., start and terminate virtual instances), and access other cloud services. For example, Amazon provides EC2 API tools in Java, PHP, Python, and
Perl. Apache Libcloud is an example of an independent library for
accessing multiple cloud providers.
Merchant payment SDKs. Operators of e-commerce websites often rely on third parties such as PayPal and Amazon Flexible Payments Service (FPS) to process their customers’ payments. Payment processors provide merchant SDKs (software development
kits) in a variety of languages. These libraries are designed to be
integrated into the back end of e-commerce websites. Merchant
software uses them to transmit customers’ payment details and/or
receive notifications when payments are made by customers.
An online store typically has two options for payment processing. The first option is to have the customer enter payment details
directly into the payment processor’s website. When the customer
checks out, the merchant’s website redirects her browser to PayPal
or Amazon, where the customer enters her name, credit or debit
card number, etc. The merchant never sees these details. Once the
payment is complete, the payment processor redirects the customer
back to the merchant’s website and notifies the merchant.
The merchant’s site runs a daemon listening for IPN (InstantPayment Notification) calls from the payment processor. Upon receiving a notification, the merchant is advised to verify that the call indeed originated from the processor (some merchants skip this step,
opening the door to “shop-for-free” attacks [23]). The merchant
then completes the transaction with the customer.
The second option is preferred by larger, more established stores.
It does not require the customer to leave the merchant’s website and
allows the merchant to collect payment details directly from the
customer. The back-end software on the merchant’s website then
transmits these details to the payment processor’s gateway over an
SSL connection and receives the confirmation that the payment succeeded (often over the same SSL connection).
Fig. 4 shows schematically the interaction between the merchant’s
server and the payment gateway. The SSL client is the merchant’s
back-end software (running on the merchant’s server), while the
payment gateway acts as the SSL server.
We analyzed SSL connection establishment in popular merchant
SDKs, including Java and PHP SDKs for Amazon Flexible Payments Service and multiple interfaces to PayPal: Payments Pro,
Transactional Information, and Mass Pay (all in Java), as well as
Payments Standard and Invoicing (PHP). We also analyzed both
Amazon’s and PayPal’s utilities that merchants can use to verify
the origin of IPN (Instant Payment Notification) calls.
We also analyzed several open-source shopping carts written in
PHP: osCommerce, ZenCart, Ubercart, and PrestaShop.
Shopping carts are an important component of e-commerce websites. They
keep track of customers’ shipping and billing information and allow them to purchase multiple items in one transaction. When the
customer checks out, the shopping cart generates a summary of the
purchases and the total price and sends it to the payment gateway.
Shopping carts include modules for many payment processors.
Web-services middleware. Many modern programs rely on Web
services. A Web service is “a software system designed to support
interoperable machine-to-machine interaction over a network.”7 A
service has an interface described in a machine-readable XML format. Different providers may provide different concrete implementations of this interface. Other systems interact with the service by
sending and receiving messages.
Messages to and from Web services are sent using XML-based
Simple Object Access Protocol (SOAP) or REpresentational State
Transfer (REST). From the viewpoint of the client software, a Web
service can be thought of as providing a remote procedure call
(RPC) interface, while SOAP or REST middleware marshals and
unmarshals arguments of RPC calls.
To interact with such a Web service—for example, if a cloud
client implemented in Java wants to interact with Amazon EC2 —
existing Java software often uses SOAP middleware such as Apache
Axis, Axis 2, or Codehaus XFire (see Section 8). Similarly, if
an Android app needs real-time “push” notifications, it may use
a client-side library to connect to the REST-based Pusher service.8
These middleware frameworks are responsible for transmitting
Web-service messages over the network. If the connection must be
secure, the middleware typically uses SSL but delegates actual SSL
connection management to a data-transport library such as Apache
HttpClient or Weberknecht (see Section 4.2).
Mobile advertising. Mobile advertising services such as AdMob
supply software that providers of mobile apps install on their sites.
When a new app instance is initialized on a customer’s phone, it
connects to the provider’s site, which in turn notifies the AdMob
server so that all ads shown to this app instance will be associated
with the provider’s account (to enable ad revenue sharing, etc.).
The connection from the app provider’s site to the AdMob server
contains the provider’s credentials and must be protected by SSL.
5. SSL IN NON-BROWSER SOFTWARE
We analyze a representative sample of non-browser software applications and libraries that use SSL for secure Internet connections. Some programs, such as instant messenger clients and simple mobile banking apps, are fairly straightforward in their use of
SSL. Others, especially middleware libraries, use SSL as part of a
multi-layer software stack. Many of the programs we analyze transmit extremely sensitive data—private files of individual users in the
case of cloud clients, financial information of customers in the case
of merchant SDKs, developer account credentials in the case of
mobile advertising software—over potentially insecure public networks, thus it is absolutely critical that they use SSL correctly.
Cloud client APIs. As cloud-computing platforms such as Amazon EC2 grow in popularity, their operators supply client SDKs
through which third-party software can transmit user data to cloudbased storage, manage cloud-based computation (e.g., start and terminate virtual instances), and access other cloud services. For example, Amazon provides EC2 API tools in Java, PHP, Python, and
Perl. Apache Libcloud is an example of an independent library for
accessing multiple cloud providers.
Merchant payment SDKs. Operators of e-commerce websites often rely on third parties such as PayPal and Amazon Flexible Payments Service (FPS) to process their customers’ payments. Payment processors provide merchant SDKs (software development
kits) in a variety of languages. These libraries are designed to be
integrated into the back end of e-commerce websites. Merchant
software uses them to transmit customers’ payment details and/or
receive notifications when payments are made by customers.
An online store typically has two options for payment processing. The first option is to have the customer enter payment details
directly into the payment processor’s website. When the customer
checks out, the merchant’s website redirects her browser to PayPal
or Amazon, where the customer enters her name, credit or debit
card number, etc. The merchant never sees these details. Once the
payment is complete, the payment processor redirects the customer
back to the merchant’s website and notifies the merchant.
The merchant’s site runs a daemon listening for IPN (InstantPayment Notification) calls from the payment processor. Upon receiving a notification, the merchant is advised to verify that the call indeed originated from the processor (some merchants skip this step,
opening the door to “shop-for-free” attacks [23]). The merchant
then completes the transaction with the customer.
The second option is preferred by larger, more established stores.
It does not require the customer to leave the merchant’s website and
allows the merchant to collect payment details directly from the
customer. The back-end software on the merchant’s website then
transmits these details to the payment processor’s gateway over an
SSL connection and receives the confirmation that the payment succeeded (often over the same SSL connection).
Fig. 4 shows schematically the interaction between the merchant’s
server and the payment gateway. The SSL client is the merchant’s
back-end software (running on the merchant’s server), while the
payment gateway acts as the SSL server.
We analyzed SSL connection establishment in popular merchant
SDKs, including Java and PHP SDKs for Amazon Flexible Payments Service and multiple interfaces to PayPal: Payments Pro,
Transactional Information, and Mass Pay (all in Java), as well as
Payments Standard and Invoicing (PHP). We also analyzed both
Amazon’s and PayPal’s utilities that merchants can use to verify
the origin of IPN (Instant Payment Notification) calls.
We also analyzed several open-source shopping carts written in
PHP: osCommerce, ZenCart, Ubercart, and PrestaShop.
Shopping carts are an important component of e-commerce websites. They
keep track of customers’ shipping and billing information and allow them to purchase multiple items in one transaction. When the
customer checks out, the shopping cart generates a summary of the
purchases and the total price and sends it to the payment gateway.
Shopping carts include modules for many payment processors.
Web-services middleware. Many modern programs rely on Web
services. A Web service is “a software system designed to support
interoperable machine-to-machine interaction over a network.”7 A
service has an interface described in a machine-readable XML format. Different providers may provide different concrete implementations of this interface. Other systems interact with the service by
sending and receiving messages.
Messages to and from Web services are sent using XML-based
Simple Object Access Protocol (SOAP) or REpresentational State
Transfer (REST). From the viewpoint of the client software, a Web
service can be thought of as providing a remote procedure call
(RPC) interface, while SOAP or REST middleware marshals and
unmarshals arguments of RPC calls.
To interact with such a Web service—for example, if a cloud
client implemented in Java wants to interact with Amazon EC2 —
existing Java software often uses SOAP middleware such as Apache
Axis, Axis 2, or Codehaus XFire (see Section 8). Similarly, if
an Android app needs real-time “push” notifications, it may use
a client-side library to connect to the REST-based Pusher service.8
These middleware frameworks are responsible for transmitting
Web-service messages over the network. If the connection must be
secure, the middleware typically uses SSL but delegates actual SSL
connection management to a data-transport library such as Apache
HttpClient or Weberknecht (see Section 4.2).
Mobile advertising. Mobile advertising services such as AdMob
supply software that providers of mobile apps install on their sites.
When a new app instance is initialized on a customer’s phone, it
connects to the provider’s site, which in turn notifies the AdMob
server so that all ads shown to this app instance will be associated
with the provider’s account (to enable ad revenue sharing, etc.).
The connection from the app provider’s site to the AdMob server
contains the provider’s credentials and must be protected by SSL.
การแปล กรุณารอสักครู่..
5 . SSL ใน non-browser ซอฟต์แวร์
เราวิเคราะห์ตัวอย่างที่เป็นตัวแทนของการใช้งานซอฟต์แวร์บนเบราว์เซอร์และห้องสมุดที่ใช้ SSL สำหรับการเชื่อมต่ออินเทอร์เน็ตที่ปลอดภัย บางโปรแกรม เช่นลูกค้า messenger ทันทีและปพลิเคชันมือถือของธนาคารง่าย ค่อนข้างตรงไปตรงมาในการใช้
SSL ผู้อื่น โดยเฉพาะห้องสมุดกลาง ใช้ SSL เป็นส่วนหนึ่งของ
- ซอฟต์แวร์สแต็คหลายโปรแกรมที่เราวิเคราะห์ข้อมูลส่วนบุคคลจึงส่งความไวเลสของแต่ละผู้ใช้ใน
กรณีของลูกค้าเมฆ จึง nancial ข้อมูลของลูกค้าในกรณี
ของ SDK พ่อค้า นักพัฒนาบัญชีข้อมูลในกรณีของ
มือถือโฆษณาซอฟต์แวร์ผ่านเครือข่ายสาธารณะที่อาจไม่ปลอดภัย จึงเป็นความสำคัญอย่างยิ่งที่พวกเขาใช้ SSL อย่างถูกต้อง .
เมฆลูกค้า APIsเป็นแพลตฟอร์มคอมพิวเตอร์เมฆเช่น Amazon EC2 เติบโตในความนิยมของพวกเขา ผู้ให้บริการจัดหาลูกค้า SDK
โดยซอฟต์แวร์ของบุคคลที่สามสามารถส่งข้อมูลผู้ใช้ cloudbased กระเป๋าจัดการเมฆการคำนวณตาม ( เช่นเริ่มต้นและยุติกรณีเสมือน ) และการเข้าถึงเมฆอื่น ๆบริการ ตัวอย่างเช่น Amazon EC2 API มีเครื่องมือใน Java , PHP , Python , Perl และ
.Apache libcloud เป็นตัวอย่างของห้องสมุดที่เป็นอิสระสำหรับการเข้าถึงการให้บริการเมฆหลาย
.
พ่อค้า SDK การชําระเงิน ผู้ประกอบการของเว็บไซต์อี - คอมเมิร์ซมักจะพึ่งพาบุคคลที่สามเช่น PayPal และ Amazon มีความยืดหยุ่นการชำระเงินบริการ ( FPS ) เพื่อประมวลผลการชำระเงินของลูกค้าของพวกเขา โปรเซสเซอร์ชำระเงินให้ร้านค้า ( ชุดพัฒนาซอฟต์แวร์ SDK
) ในความหลากหลายของภาษาห้องสมุดเหล่านี้ถูกออกแบบมาให้
รวมในปลายด้านหลังของเว็บไซต์อีคอมเมิร์ซ ซอฟต์แวร์ร้านค้า
ใช้พวกเขาเพื่อส่งรายละเอียดการชำระเงินของลูกค้า และ / หรือ จึงทำให้เมื่อเงินเก็บไว้ตรงไหนก็ได้
รับทำโดยลูกค้า .
ร้านค้าออนไลน์โดยทั่วไปมีสองตัวเลือกสำหรับการประมวลผลการชำระเงิน จึงเป็นตัวเลือกแรกให้ลูกค้าระบุรายละเอียดการชำระเงินโดยตรงในเว็บไซต์การชำระเงินโปรเซสเซอร์
.เมื่อลูกค้า
ตรวจสอบเว็บไซต์ของร้านค้า การเปลี่ยนเส้นทางเบราว์เซอร์ให้เธอ PayPal
หรือ Amazon ที่ลูกค้าเข้ามา เธอชื่อ เครดิตหรือเดบิต
หมายเลขบัตร ฯลฯ พ่อค้าไม่เคยเห็นรายละเอียดเหล่านี้ เมื่อ
จ่ายเงินเสร็จแล้วชำระเงินประมวลผลการเปลี่ยนเส้นทางลูกค้า
กลับไปยังเว็บไซต์ของร้านค้าและการถ่ายทอดและพ่อค้า
เก็บไว้ตรงไหนก็ได้ .เว็บไซต์ของร้านค้าเป็นดีมอนฟัง IPN ( instantpayment จึงเก็บไว้ตรงไหนก็ได้ใน ) โทรจากการชำระเงินประมวลผล เมื่อได้รับการถ่ายทอดเก็บไว้ตรงไหนก็ได้ พ่อค้าควรตรวจสอบว่าสายแท้ที่มาจากหน่วยประมวลผล ( บางร้านให้ข้ามขั้นตอนนี้
, เปิดประตูสู่ " ร้านฟรี " การโจมตี [ 23 ] ) พ่อค้า
แล้วเสร็จธุรกรรมกับลูกค้า .
ตัวเลือกที่สองคือที่ต้องการ โดย ขนาดใหญ่ ขึ้นห้าง
ไม่ต้องลูกค้าออกจากเว็บไซต์ของร้านค้าและ
ช่วยให้พ่อค้าเพื่อเก็บรายละเอียดการชำระเงินโดยตรงจาก
ลูกค้า ส่วนหลังซอฟต์แวร์บนเว็บไซต์ของร้านค้าแล้ว
ส่งรายละเอียดเหล่านี้ในการชำระเงินการประมวลผลมากกว่า
เกตเวย์การเชื่อมต่อ SSL และคอนจึงได้รับ rmation ที่ชำระเงินสำเร็จ ( มักจะผ่านการเชื่อมต่อแบบ SSL เดียวกัน ) .
รูปที่ 4 แสดงแผนผังการปฏิสัมพันธ์ระหว่างเซิร์ฟเวอร์ของ
พ่อค้ากับเกตเวย์การชำระเงิน . SSL ลูกค้าเป็นร้านค้าส่วนหลัง (
ซอฟต์แวร์ทำงานบนเซิร์ฟเวอร์ของพ่อค้า ) ในขณะที่ทำหน้าที่เป็นเกตเวย์การชำระเงิน
SSL Serverเราวิเคราะห์การเชื่อมต่อ SSL การในความนิยมพ่อค้า
SDK รวมถึง Java และ PHP สำหรับการชำระเงินมีความยืดหยุ่น SDK Amazon บริการและหลาย interfaces Paypal : การชำระเงิน Pro
ข้อมูลธุรกรรมและมวลจ่าย ( ใน Java ) รวมทั้ง
เงินมาตรฐานและออกใบแจ้งหนี้ ( PHP ) เรายังได้วิเคราะห์ทั้ง
Amazon และ PayPal เป็นสาธารณูปโภคที่สามารถใช้เพื่อตรวจสอบ
พ่อค้าที่มาของ IPN ( ชำระเงินทันทีจึงเก็บไว้ตรงไหนก็ได้ใน ) โทร .
เรายังได้วิเคราะห์หลายโอเพนซอร์สที่เขียนใน PHP รถเข็นช้อปปิ้ง
: osCommerce , เซ็นคาร์ต ubercart , และพร .
รถเข็นช้อปปิ้งเป็นส่วนประกอบสำคัญของเว็บไซต์อีคอมเมิร์ซ พวกเขา
ติดตามการจัดส่งของลูกค้าและข้อมูลการเรียกเก็บเงินและช่วยให้พวกเขาที่จะซื้อหลายรายการในหนึ่งรายการ เมื่อ
ลูกค้าตรวจสอบแล้วรถเข็นสร้างบทสรุปของ
ซื้อและราคารวม และส่งไปยังเกตเวย์การชำระเงิน .
ตะกร้าสินค้ารวมถึงโมดูลสำหรับโปรเซสเซอร์หลาย .
บริการเว็บแล . โปรแกรมที่ทันสมัยหลายพึ่งพาบริการเว็บ
บริการเว็บ คือ " ระบบซอฟต์แวร์ที่ออกแบบมาเพื่อสนับสนุนการส่งเครื่องไปยังเครื่อง
ปฏิสัมพันธ์ผ่านเครือข่าย " 7
บริการมีอินเตอร์เฟซที่อธิบายในรูปแบบของ XML รหัส . ผู้ให้บริการที่แตกต่างกันอาจมีแตกต่างกันคอนกรีตใช้อินเตอร์เฟซนี้ ระบบอื่น ๆโต้ตอบกับบริการส่งและรับข้อความด้วย
.
ข้อความไปยังและจากบริการเว็บจะถูกส่งโดยใช้ XML ตามวัตถุการเข้าถึงโพรโทคอล ( สบู่ง่าย
โอน ) หรือตัวแทนรัฐ ( ส่วนที่เหลือ )จากมุมมองของซอฟต์แวร์ไคลเอ็นต์บริการเว็บ
สามารถคิดเป็นการให้ขั้นตอนการโทรระยะไกล ( RPC )
อินเตอร์เฟซในขณะที่สบู่ หรือพักกลางมา
unmarshals และข้อโต้แย้งของ RPC โทร .
โต้ตอบกับบริการเว็บเช่น ตัวอย่างเช่น ถ้าลูกค้าใช้ใน Java เมฆ
อยากโต้ตอบ กับ Amazon EC2 -
ที่มีอยู่ Java ซอฟต์แวร์มักจะใช้สบู่ ( เช่น Apache
แกน , แกน 2 หรือ codehaus เพลง ( ดูมาตรา 8 ) ในทำนองเดียวกันถ้า
app Android ต้องเรียลไทม์ " ดัน " จึงทำให้เก็บไว้ตรงไหนก็ได้ มันอาจจะใช้เป็นห้องสมุด
ลูกค้าเพื่อเชื่อมต่อกับบริการตามไปดัน 8
เหล่านี้ปรับปรุงกรอบรับผิดชอบส่ง
ข้อความบริการเว็บผ่านเครือข่าย ถ้าการเชื่อมต่อจะต้อง
ปลอดภัย , ตัวกลางมักจะใช้ SSL SSL แต่คน
จริงการจัดการการเชื่อมต่อการขนส่งข้อมูลห้องสมุดเช่น Apache
httpclient หรือ weberknecht ( ดูมาตรา 4.2 ) .
โฆษณามือถือ บริการโฆษณามือถือเช่น AdMob
จัดหาซอฟต์แวร์ที่ผู้ให้บริการมือถือของปพลิเคชันที่ติดตั้งบนเว็บไซต์ของตน .
เมื่ออินสแตนซ์ app ใหม่จะเริ่มต้นบนโทรศัพท์ของลูกค้า มัน
เชื่อมต่อกับผู้ให้บริการเว็บไซต์ ซึ่งจะเก็บไว้ตรงไหนก็ได้จึง es AdMob
เซิร์ฟเวอร์เพื่อให้โฆษณาแสดงตัวอย่าง app นี้จะเกี่ยวข้องกับผู้ให้บริการบัญชี
( เพื่อให้รายได้จากโฆษณาร่วมกัน ฯลฯ ) .
การเชื่อมต่อจาก app ของผู้ให้บริการเว็บไซต์กับ AdMob เซิร์ฟเวอร์
ประกอบด้วยผู้ให้บริการข้อมูลและจะต้องได้รับการคุ้มครองโดย SSL
การแปล กรุณารอสักครู่..