Secure Remote Service Execution for Web Media Streaming

Total Page:16

File Type:pdf, Size:1020Kb

Secure Remote Service Execution for Web Media Streaming Secure Remote Service Execution for Web Media Streaming vorgelegt von Dipl.-Ing. Alexandra Mikityuk geb. in Leningrad, UdSSR von der Fakultät IV – Elektrotechnik und Informatik der Technischen Universität Berlin zur Erlangung des akademischen Grades Doktor der Ingenieurwissenschaften - Dr.-Ing. - genehmigte Dissertation Promotionsausschuss: Vorsitzender: Prof. Dr. Thomas Magedanz, Technische Universität Berlin Gutachter: Prof. Dr. Jean-Pierre Seifert, Technische Universität Berlin Gutachter: Prof. Dr. Jean-Claude Dufourd, ParisTech Gutachter: Prof. Dr.-Ing. Ina Schieferdecker, Technische Universität Berlin Tag der wissenschaftlichen Aussprache: 29. August 2017 Berlin 2017 D 83 Abstract Through continuous advancements in streaming and Web technologies over the past decade, the Web has become a platform for media delivery. Web standards like HTML5 have been designed accordingly, allowing for the delivery of applications, high-quality streaming video, and hooks for interoperable content protection. Efficient video encoding algorithms such as AVC/HEVC and streaming protocols such as MPEG-DASH have served as additional triggers for this evolution. Users now employ Web browsers as a tool for receiving streaming media and rendering Web applications, and browsers have been embedded into almost every kind of connected device. The drawback of these technical developments and quick rate of user adoption is that modern Web browsers have introduced significant constraints on devices’ capabilities. First, the computational requirements have risen continuously, resulting in a cycle where modern devices can be nearly outdated after a year or two. Second, as the integration of browser technologies is a complicated matter, not every platform provides the same performance. Different Operating Systems (OSs), chipsets and software engines are the main reasons for this difference in performance. The result is a tremendous diversity of devices, which demands significant efforts in appli- cation development and requires platform-specific adaptions. Finally, browsers, with their prominence on the Web, have become an attractive weak point for hackers to attack. This thesis addresses the drawbacks of local browser execution with a novel concept for Secure Remote Service Execution (SRSE). SRSE does not treat the symptoms of the problem. Instead, it addresses the cause. By shifting application execution to a remote machine, it delivers the entire user interface as a video stream to end-users. This resolves device dependencies and enables a secure execution, as none of the application code is executed on the device. This thesis also defines various architectural approaches to SRSEs. They enable flexibility with regard to addressing traditional media services with SRSEs and can create significant computing and network resource savings. As state-of-the-art Web media delivery is based on locally executed services, SRSEs have a profound impact on existing standards and corresponding implementations. As a response to these environments, new techniques and interfaces are identified and specified throughout this thesis as the need for them arises. iii Zusammenfassung Im letzten Jahrzehnt hat sich das Internet durch kontinuierliche Fortschritte im Bereich der Streaming- und Web-Technologien zu einer Plattform für die Videobereitstellung entwickelt. Entsprechend wurden Web-Standards wie HTML5 eingeführt, welche die Bereitstellung von Anwendungen, qualitativ hochwertigem Video-Streaming und die Integrationen von interoperablen Inhalte-Schutz-Mechanismen ermöglichen. Neben effizienten Video-Kodierungsalgorithmen dienten moderne Streaming-Protokolle als zusätzliche Auslöser für diese Entwicklung. Für den Anwender ist der Web-Browser zum uni- versellen Werkzeug für den Empfang von Video und dem Rendering von Web-Anwendungen geworden und ist heute in fast alle Arten von internetfähigen Geräten integriert. Der Nachteil dieser sehr schnellen technischen Entwicklungen und großen Benutzerakzep- tanz ist, dass moderne Web-Browser erhebliche und ständig steigende Anforderungen an die Fähigkeiten der Geräte stellen. Erstens sind die Rechenanforderungen kontinuierlich gestiegen, was zu einem Zyklus führte, in dem moderne Geräte bereits nach zwei Jahren ersetzt werden müssen. Zweitens - und speziell aufgrund der Komplexität bei der Integration von Browser-Technologie in die Endgeräte - bietet nicht jede Plattform die gleiche Leis- tung: unterschiedliche Betriebssysteme, Chipsätze und Software-Treiber sind die wichtigsten Gründe für Leistungsunterschiede. Hiermit ergibt sich eine enorme Vielfalt von Geräten, die erhebliche Anstrengungen bei der Anwendungsentwicklung verlangen und oft plattformspezifische Anpassungen erfordern. Schließlich ist der Browser durch seine Bedeutung im Web und bekannte Schwachstellen zu einem attraktiven Ziel für Hacker geworden. Die vorliegende Arbeit adressiert die soeben beschriebenen Nachteile der lokalen Aus- führung von Web-Applikationen mit der Einführung eines neuartigen Konzepts, genannt Secure-Remote-Service-Execution (SRSE). SRSE behandelt nicht die Symptome der lokalen Applikationsausführung, sondern befasst sich mit der Ursache: Durch das Verlagern der Ausführung der Web-Anwendungen auf einen entfernten Rechner liefert SRSE ein Abbild der Applikation als Videostrom zum Endnutzer. Dies löst das Problem der Abhängigkeit vom Endgerät und ermöglicht hiermit eine sichere, in der Cloud gekapselte Dienstausführung. Im Rahmen der Arbeit werden verschiedene Architekturansätze für SRSEs definiert. Sie ermöglichen Flexibilität bei der Adaptierung von traditionellen Mediendiensten für SRSEs und schaffen erhebliche Einsparungen von Rechen- und Netzwerkressourcen. Durch die Einführung der SRSE ergibt sich außerdem ein nachhaltiger Anpassungsbedarf an die bisherigen Spezifikationen, Protokolle und Schnittstellen zur lokalen Applikationsaus- führung. Die neuen Anforderungen werden in der vorliegenden Arbeit analysiert, bewertet und anschließend in Form von neuen Verfahren und Schnittstellen definiert und teilweise prototypisch implementiert und evaluiert. v Acknowledgement I am very grateful to my advisor Prof. Dr. Jean-Pierre Seifert for his knowledge and assistance, as well as motivating and encouraging me through all the years of my research. I would also like to thank my supervisors Prof. Dr.-Ing. Ina Schieferdecker and Prof. Dr. Jean- Claude Dufourd for their very thorough feedback and insightful comments. I am indebted to my colleagues Dr. Oliver Friedrich, Dr. Stefan Arbanowski and Dr. Randolph Nikutta for their constant support, valuable feedback and generous guidance. Their immense knowledge was essential in building my understanding of this field of research. My special thanks go out to my lab partners Stefan Pham, Benjamin Zachey, David Livshits, Eugen Osiptschuk, Robin Stinder and Dr. Julian Vetter for contributing to my work, support- ing with their experience and our effective and fun collaboration. I want to thank my family and friends for taking on the sometimes difficult task of consis- tently supporting me throughout all the PhD years, for their patience and for constantly motivating me. To Jocky for his incredible support and endless belief in me. Alexandra Mikityuk vii Contents 1 Introduction 1 1.1 Motivation . 1 1.2 Problem Statement . 3 1.3 Scope . 4 1.4 Research Questions . 8 1.5 Research Methodology & Outline . 9 1.6 Author’s Publications . 9 2 State-of-the-Art 13 2.1 Media Service Execution . 13 2.1.1 Media Service Execution Environments . 14 2.1.2 Browser-based Approach . 15 2.1.3 Web Browser Insecurity . 17 2.2 Web Media Streaming and its Protection . 18 2.2.1 Media Streaming on the Web . 18 2.2.2 Protecting Media Streaming on the Web . 21 2.2.3 Trusted Execution Environments . 28 2.3 Interactive Services . 31 2.3.1 Interactive TV . 32 2.3.2 Hybrid Broadcast Broadband TV Standard . 32 2.3.3 Processing of HbbTV Applications . 33 2.3.4 HbbTV Insecurity . 36 2.4 Related Work . 37 2.4.1 Remote Service Execution and its Security Threats . 37 2.4.2 Protected Streaming . 40 2.4.3 Interactive Services . 43 2.5 Summary . 44 3 Requirements Analysis for Secure Remote Service Execution 47 3.1 Secure Remote Service Execution . 47 3.1.1 Remote Function Execution . 47 3.1.2 Secure Hardware-agnostic System . 49 3.1.3 Security Functions . 49 3.2 Secure Streaming . 50 3.2.1 Streaming . 50 3.2.2 Secure Streaming . 51 3.3 Secure Interactive Contents . 51 3.3.1 Secure Integration . 51 3.3.2 Interoperability . 52 ix 3.3.3 Signaling Processing . 52 3.4 Analysis of Requirements . 52 3.5 Summary . 57 4 Secure Remote Service Execution Functional Architecture and Specification 59 4.1 Secure Remote Service Execution . 59 4.1.1 Secure Remote Service Execution Functions . 59 4.1.2 SRSE Functional Architecture . 62 4.1.3 Specification of Secure Cloud Browser . 64 4.2 Secure Streaming Service . 67 4.2.1 Functional Architecture . 67 4.2.2 Specification of Streaming . 69 4.2.3 Specification of Secure Streaming . 75 4.3 Secure Interactive Contents . 80 4.3.1 Secure Interactive Contents Functions . 81 4.3.2 Functional Architecture . 82 4.3.3 Specification of Secure Interactive Contents Service . 83 4.4 Summary . 86 5 Implementation 87 5.1 Secure Cloud Browser Client . 87 5.2 Hardware-assisted EME . 89 5.2.1 Implementation Platform . 90 5.2.2 Architecture Implementation . 92 5.3 Hardware-assisted Red-button Signaling Processing . 95 6 Evaluation 99 6.1 Secure Remote Service Execution . 99 6.1.1 Media Service Execution Models . 99 6.1.2 Network Load Impact . 102 6.1.3 Cloud Browser
Recommended publications
  • An Empirical Study of Web Resource Manipulation in Real-World Mobile
    An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications Xiaohan Zhang, Yuan Zhang, Qianqian Mo, Hao Xia, Zhemin Yang, and Min Yang, Fudan University; Xiaofeng Wang, Indiana University, Bloomington; Long Lu, Northeastern University; Haixin Duan, Tsinghua University https://www.usenix.org/conference/usenixsecurity18/presentation/zhang-xiaohan This paper is included in the Proceedings of the 27th USENIX Security Symposium. August 15–17, 2018 • Baltimore, MD, USA ISBN 978-1-939133-04-5 Open access to the Proceedings of the 27th USENIX Security Symposium is sponsored by USENIX. An Empirical Study of Web Resource Manipulation in Real-world Mobile Applications Xiaohan Zhang1,4, Yuan Zhang1,4, Qianqian Mo1,4, Hao Xia1,4, Zhemin Yang1,4, Min Yang1,2,3,4, Xiaofeng Wang5, Long Lu6, and Haixin Duan7 1School of Computer Science, Fudan University 2Shanghai Institute of Intelligent Electronics & Systems 3Shanghai Institute for Advanced Communication and Data Science 4Shanghai Key Laboratory of Data Science, Fudan University 5Indiana University Bloomington , 6Northeastern University , 7Tsinghua University Abstract built into a single app. For the convenience of such an integration, mainstream mobile platforms (including Mobile apps have become the main channel for access- Android and iOS) feature in-app Web browsers to run ing Web services. Both Android and iOS feature in- Web content. Examples of the browsers include Web- app Web browsers that support convenient Web service View [9] for Android and UIWebView/WKWebView for integration through a set of Web resource manipulation iOS [8, 10]. For simplicity of presentation, we call them APIs. Previous work have revealed the attack surfaces of WebViews throughout the paper.
    [Show full text]
  • Pushing Data in Both Directions with Websockets, Part 2
    Menu Topics Archives Downloads Subscribe Pushing Data in Both CODING Directions with WebSockets, Part 2 Pushing Data in Both Directions Message Processing Modes with WebSockets, Part 2 Path Mapping Deployment of Server Using WebSockets’ long-lasting Endpoints connections to build a simple chat app The Chat Application by Danny Coward Conclusion January 1, 2016 Learn More In Part 1 of this article, I introduced WebSockets. I observed that the base WebSocket protocol gives us two native formats to work with: text and binary. This works well for very basic applications that exchange only simple information between client and server. For example, in the Clock application in that article, the only data that is exchanged during the WebSocket messaging interaction is the formatted time string broadcast from the server endpoint and the stop string sent by the client to end the updates. But as soon as an application has anything more complicated to send or receive over a WebSocket connection, it will find itself seeking a structure into which to put the information. As Java developers, we are used to dealing with application data in the form of objects: either from classes from the standard Java APIs or from Java classes that we create ourselves. This means that if you stick with the lowest-level messaging facilities of the Java WebSocket API and want to program using objects that are not strings or byte arrays for your messages, you need to write code that converts your objects into either strings or byte arrays and vice versa. Let’s see how that’s done.
    [Show full text]
  • 1. Plugin Framework Documentation
    1. Plugin Framework Documentation . 3 1.1 Writing Atlassian Plugins . 6 1.1.1 Creating your Plugin Descriptor . 8 1.1.2 Plugin Module Types . 16 1.1.2.1 Component Import Plugin Module . 16 1.1.2.2 Component Plugin Module . 20 1.1.2.3 Module Type Plugin Module . 23 1.1.2.4 Servlet Context Listener Plugin Module . 29 1.1.2.5 Servlet Context Parameter Plugin Module . 32 1.1.2.6 Servlet Filter Plugin Module . 34 1.1.2.7 Servlet Plugin Module . 38 1.1.2.8 Web Item Plugin Module . 41 1.1.2.9 Web Resource Plugin Module . 50 1.1.2.10 Web Section Plugin Module . 56 1.1.3 Adding Plugin and Module Resources . 64 1.1.4 Supporting Minification of JavaScript and CSS Resources . 70 1.1.5 Adding a Configuration UI for your Plugin . 73 1.1.6 Ensuring Standard Page Decoration in your Plugin UI . 75 1.1.7 Using Packages and Components Exposed by an Application . 77 1.1.8 Running your Plugin in the Reference Implementation . 79 1.1.9 OSGi, Spring and the Plugin Framework . 89 1.1.9.1 Behind the Scenes in the Plugin Framework . 94 1.1.9.1.1 Going from Plugin to OSGi Bundle . 94 1.1.9.1.2 Lifecycle of a Bundle . 95 1.1.9.1.3 Automatic Generation of Spring Configuration . 96 1.1.9.2 Converting a Plugin to Plugin Framework 2 . 98 1.1.9.3 OSGi and Spring Reference Documents . 99 1.2 Embedding the Plugin Framework .
    [Show full text]
  • Ajax (In)Security
    Ajax (in)security Billy Hoffman ([email protected]) SPI Labs Security Researcher Overview • Architecture of web applications • What is Ajax? • How does Ajax help? • Four security issues with Ajax and Ajax applications • Guidelines for secure Ajax development Architecture of Web Applications Traditional Web Application Browser receives input from user Uses JavaScript for simple logic and optimizations Sends HTTP request across the Internet Server processes response Backend logic evaluates input (PHP, ASP, JSP, etc) Possibly access other tiers (database, etc) Resource is returned to user Problems with Traditional Web Apps Case Study: MapQuest Reducing the Long Wait • These long pauses are very noticeable • Regular applications don't with the user this way • Reducing the delay between input and response is key – Request is a fixed size – Response is a fixed size – Network speed,latency is fixed – Server processes relatively fixed • Trick the user with better application feedback • This is what Ajax does What is Ajax? Asynchronous JavaScript And XML JavaScript takes on a larger role Send HTTP request Provides immediate feedback to user Application continues to respond to user events, interaction Eventually processes response from server and manipulates the DOM to present results Providing a Rich User Experience Case Study: Google Maps More information on Ajax • Use XmlHttpRequest Object • Sends any HTTP method – Simple: GET, POST, HEAD – WebDav: COPY, DELETE • Limited to where JavaScript came from (hostname, port) • Fetch any kind of
    [Show full text]
  • Tr 126 907 V14.0.0 (2017-04)
    ETSI TR 126 907 V14.0.0 (2017-04) TECHNICAL REPORT Universal Mobile Telecommunications System (UMTS); LTE; HTML5 for a new presentation layer in 3GPP services (3GPP TR 26.907 version 14.0.0 Release 14) 3GPP TR 26.907 version 14.0.0 Release 14 1 ETSI TR 126 907 V14.0.0 (2017-04) Reference RTR/TSGS-0426907ve00 Keywords LTE,UMTS ETSI 650 Route des Lucioles F-06921 Sophia Antipolis Cedex - FRANCE Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Siret N° 348 623 562 00017 - NAF 742 C Association à but non lucratif enregistrée à la Sous-Préfecture de Grasse (06) N° 7803/88 Important notice The present document can be downloaded from: http://www.etsi.org/standards-search The present document may be made available in electronic versions and/or in print. The content of any electronic and/or print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any existing or perceived difference in contents between such versions and/or in print, the only prevailing document is the print of the Portable Document Format (PDF) version kept on a specific network drive within ETSI Secretariat. Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx If you find errors in the present document, please send your comment to one of the following services: https://portal.etsi.org/People/CommiteeSupportStaff.aspx Copyright Notification No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm except as authorized by written permission of ETSI.
    [Show full text]
  • Entity Framework with Microsoft Azure
    Microsoft Azure Step by Step Guide This free book is provided by courtesy of C# Corner and Mindcracker Network and its authors. Feel free to share this book with your friends and co-workers. Please do not reproduce, republish, edit or copy this book. Nitin Pandit Software Engineer, Microsoft.Net Consultant Noida C# corner Delhi Chapter Lead C# corner MVP Amit Mishra (Co-Author, Format Editor) Index Page No Chapter 1 - Getting Started With Microsoft Azure 1-17 Chapter 2 - How To Host Your Web Apps On Azure Via FileZilla 18-31 Chapter 3 - Configuring A Custom Domain Name For An Azure 32-40 Website Chapter 4 - Virtual Machine In Microsoft Azure Step by Step - Part 41-50 One Chapter 5 - Creating A Virtual Disk Virtual Machine In Microsoft 51-66 Azure Step by Step: Part Two Chapter 6 - Use of SQL Azure In Visual Studio 2015 Step By Step 67-98 Guide Chapter 7 - Entity Framework With Microsoft Azure SQL 99-113 Chapter 8 - Introducing U-SQL- Make Big Data Processing Easy 114-117 Chapter 9 - Installation Of Azure SDK And Blob Storage In Azure: 118-139 Part 1 Chapter 10 - Upload Image To Azure Blob Storage In ASP.NET: Part 140-163 2 Chapter 11 - Demo Project Azure Blob Storage With ASP.NET MVC 164-204 5.0: Part 3 Chapter 12 - Getting Started With Azure DocumentDB: Day 1 205-224 Chapter 13 - Querying In The Azure DocumentDB: Day Two 225-242 Chapter 14 - Manage Azure Mobile Services: Part One 243-259 Chapter 15 - How To Create A Mobile App In Microsoft Azure 260-277 Chapter 16 - Manage Database Settings Of Azure Mobile Services 278-281 Chapter 17
    [Show full text]
  • (12) Patent Application Publication (10) Pub. No.: US 2013/017.9995 A1 Basile Et Al
    US 2013 017.9995A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/017.9995 A1 Basile et al. (43) Pub. Date: Jul. 11, 2013 (54) SYSTEMS AND METHODS FOR (52) U.S. Cl. AUTHENTICATION OF DIGITAL CONTENT USPC ............................................................ 726/32 (75) Inventors: Carmen Laura Basile, London (GB); Nigh Schottenfeld, Sebastopol, CA (57) ABSTRACT (73) Assignee: United Video Properties, Inc., Santa Clara, CA (US) Systems and methods for authenticating a digital file are (21) Appl. No.: 13/439,103 provided. The systems and methods may operate indepen (22) Filed: Apr. 4, 2012 dently or Supplement existing copy protection systems, such as CSS, and help make them more robust. The digital file may Related U.S. Application Data be stored on a computer readable medium such as a physical (60) Provisional application No. 61/584,506, filed on Jan. disc, digital content downloaded from the Internet, or any 9, 2012. sa- wws other suitable digital content. In some aspects, the systems s and methods described herein include identifying media con Publication Classification tent stored in a digital file that needs to be authenticated, and Subsequently reading Suitably chosen media blocks in (51) Int. Cl. encrypted (and unencrypted) form from the digital file for G06F2L/00 (2006.01) comparison with corresponding blocks (e.g., stored in a data G06F 7/30 (2006.01) base) obtained from a genuine copy. The digital file will be G06F 7/04 (2006.01) authenticated only in the case of a successful match. 1000 10O2 ldentify Media Content Stored in Digital File Retrieve Reference Blocks Based on dentified Content from a Remote Database Identify Media Blocks in the Media Content Corr.
    [Show full text]
  • WAVE Interoperability Boot Camp
    Thank You to Our Sponsors WAVE Interoperability Boot Camp October 2nd, 2018 Technology & Standards Forum | Los Angeles, CA AGENDA • Introduction to WAVE – Paul Hearty, Sony Electronics • Presentations: • WAVE Technical Overview – Will Law, Akamai • WAVE Content Specification – Mike Bergman, CTA • WAVE Applications Environment – Mark Vickers, Comcast • WAVE Device Playback Capabilities – Mike Bergman, CTA • WAVE Test Suites – Mike Bergman, CTA • Q&A/Wrap-up – Paul Hearty, Moderator Overview of the WAVE Project Paul Hearty / Sony Electronics, Inc. Introduction to WAVE • What are the problems WAVE is addressing? • What are the WAVE solutions? • WAVE participating companies • WAVE work structure Supporting a fragmented OTT world • Fragmentation impacts content providers and device makers: • Multiple streaming formats (HLS, HDS, DASH, Smooth) • Multiple device types from laptops to phones to gaming consoles • Inconsistent device performance capabilities • Inconsistent device compliance to industry specifications • The result: • Content providers: Increased cost to prepare, store and support OTT • Device makers: Increased test and support costs for devices Commercial OTT Video Issues: WAVE Solution Device Playback Device HTML5 Reference Content Capabilities Platform Content Specification Testable requirements Reference application • Based on MPEG Common • covering most common framework Media Application Format playback interoperability • Based on HTML5 (CMAF) issues. • Provides functional • Compatible with DASH and guidelines for playback HLS.
    [Show full text]
  • Specification for Devices 2020
    Certify Devices Specification for Devices 2020 Version: 4.20-r1 Date: 2019-12-19 Specification for Devices 2020, v4.20 © Vewd Software AS 2020. All rights reserved. _____________________________________________________________________________________ CONTENTS 1. REVISION HISTORY 2. INTRODUCTION 2.1. Scope 2.2. Versions for requirements and software 2.2.1. Backward compatibility 2.3. Definitions 2.4. Compliance terminology used in this document 2.4.1. REQUIRED and CONDITIONALLY REQUIRED features 2.4.1.1. DRM 2.4.1.2. Codecs and media formats 2.4.1.3. Keys on the remote control 2.4.1.4. Resolution 3. TECHNICAL REQUIREMENTS 3.1. HTML5 <video> and <audio> 3.1.1. Media element 3.1.1.1. Requirements for video and audio media elements 3.1.1.2. Requirements for video media elements 3.1.1.3. Codec support 3.1.2. Track element 3.1.2.1. Requirements for all track elements 3.1.2.2. Requirements for text track elements 3.2. Media streaming 3.2.1. Transport protocols 3.2.2. Progressive download 3.2.3. Adaptive Bitrate streaming protocols 3.2.3.1. Apple HTTP Live Streaming (HLS) 3.2.3.1.1. Restrictions for HLS content 3.2.3.2. MPEG-DASH 3.2.3.2.1. Restrictions for MPEG-DASH content 3.2.3.3. Microsoft Smooth Streaming (MSSS) 3.2.3.3.1. Restrictions for Smooth Streaming content 3.3. Media Source Extensions (MSE) 3.4. Subtitles and Closed Captioning 3.5. DRM 3.5.1. Content Decryption Modules (CDMs) 3.5.1.1. ClearKey 3.5.1.2.
    [Show full text]
  • 1 in the UNITED STATES DISTRICT COURT for the DISTRICT of DELAWARE VIATECH TECHNOLOGIES, INC., ) ) Plaintiff, ) Case No. 1:17Cv5
    Case 1:17-cv-00570-RGA Document 11 Filed 10/01/17 Page 1 of 37 PageID #: 145 IN THE UNITED STATES DISTRICT COURT FOR THE DISTRICT OF DELAWARE VIATECH TECHNOLOGIES, INC., ) ) Plaintiff, ) Case No. 1:17cv570 v. ) ) MICROSOFT CORPORATION, ) DEMAND FOR JURY TRIAL ) Defendant. ) AMENDED COMPLAINT FOR PATENT INFRINGEMENT Plaintiff ViaTech Technologies, Inc. (“plaintiff” or “ViaTech”), through its attorneys, for its complaint against defendant Microsoft Corporation (“defendant” or “Microsoft”), alleges as follows: THE PARTIES 1. Plaintiff is a corporation organized and existing under the laws of the State of Delaware having a place of business at 1136 Ashbourne Circle, Trinity, FL 34655-7103. 2. Defendant Microsoft is a corporation organized and existing under the laws of the State of Washington having its principal place of business at One Microsoft Way, Redmond, WA 98052. JURISDICTION AND VENUE 3. This action arises under the patent laws of the United States, Title 35 of the United States Code. Subject matter jurisdiction is proper in this Court pursuant to 28 U.S.C. §§ 1331 and 1338(a). 4. Defendant Microsoft is subject to this Court’s specific and general personal jurisdiction consistent with due process and the Delaware Long Arm Statute, 10 Del. C. § 3104. 1 Case 1:17-cv-00570-RGA Document 11 Filed 10/01/17 Page 2 of 37 PageID #: 146 5. Venue in this Judicial District is proper under 28 U.S.C. § 1400(b). 6. Microsoft is registered to do business in Delaware, and has appointed Corporation Service Company, 2711 Centerville Rd., Suite 400, Wilmington, DE 19808, as its registered agent, and either directly, or indirectly through its distribution network, has transacted and/or continues to transact business in Delaware, and has regularly solicited and continues to regularly solicit business in Delaware.
    [Show full text]
  • Nokia Lumia 925 User Guide
    User Guide Nokia Lumia 925 Issue 2.0 EN-US Psst... This guide isn't all there is... There's a user guide in your phone – it's always with you, available when needed. On the start screen, swipe left, and tap Nokia Care. Check out the videos at www.youtube.com/NokiaSupportVideos. For info on Nokia Service terms and Privacy policy, go to www.nokia.com/privacy. © 2013 Microsoft Mobile. All rights reserved. 2 User Guide Nokia Lumia 925 Contents Safety 5 Social networks 54 Get started 6 Messages 56 Keys and parts 6 Mail 60 Back, start, and search key 6 Camera 65 Antenna locations 7 Camera basics 65 Insert the SIM card 7 Advanced photography 70 Remove the SIM card 8 Photos and videos 74 Charge your phone 9 Maps & navigation 78 First start-up 12 Switch location services on 78 Transfer content to your Nokia Lumia 15 HERE Maps 78 Lock the keys and screen 18 HERE Drive+ 84 Connect the headset 19 Positioning methods 88 Change the volume 20 Internet 89 Icons shown on your phone 20 Define internet connections 89 Basics 22 Connect your computer to the web 89 Get to know your phone 22 Use your data plan efficiently 90 Personalize your phone 28 Web browser 90 Take a screenshot 33 Search the web 92 Extend battery life 34 Close all internet connections 92 Save on data roaming costs 36 Entertainment 94 Text input 36 Watch and listen 94 Scan codes or text 40 FM radio 95 Clock 41 Nokia Music 96 SkyDrive 42 Sync music and videos between your phone and computer 98 Nokia account 43 Games 99 Browse your SIM apps 44 Office 101 Store 44 Microsoft Office Mobile 101 People & messaging 47 Write a note 104 Calls 47 Continue with a document on another Contacts 51 device 104 © 2013 Microsoft Mobile.
    [Show full text]
  • Media Source Extensions
    static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; Media Source Extensions /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", on WebKit using GStreamer 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Enrique Ocaña González [email protected] Motivation for MSE ● HTML5 video tag: <video src=ºmovie.mp4º type=ºvideo/mp4º /> ● Improvement: Blob URI ● Adaptive streaming and time shift limitations ● Solution: Media Source Extensions (MSE) https://w3c.github.io/media-source/ ● JavaScript can generate and feed video data ● More control on the player state How to use MSE SourceBuffer ● Append API for JavaScript: Data... ● HTMLMediaElement, Blob SourceBuffer ● MediaSource, SourceBuffer MediaSource ● Blob URL {Audio,Video,Text}Track HTMLMediaElement <audio> <video> <video id="video"></video> MediaPlayer <script> var video = document.getElementById(©video©); var ms = new MediaSource(); ms.addEventListener(©sourceopen©, function() { var videoSb = ms.addSourceBuffer(©video/mp4; codecs="avc1.640028"©); var audioSb = ms.addSourceBuffer(©audio/mp4; codecs="mp4a.40.2"©); videoSb.appendData(...); audioSb.appendData(...); }); var blobUrl = URL.createObjectURL(ms); video.src = blobUrl; </script> Design PlatformTimeRanges m_mediaSource m_mediaElement MediaSource SourceBuffer PrivateClient PrivateClient MediaPlayer m_client MediaPlayerClient
    [Show full text]