This application is directed to systems and methods for enhancing security in networks employing virtual private networks (VPNs). In particular, the application is directed to systems and methods for managing policies to control the frequency of employing new VPN servers.
VPNs have become increasingly popular over the last decade. In particular, VPNs ensure privacy and data security in corporations, organization and the government. VPNs are generally known as private networks that extend across a public network or the internet. One of the main roles of a VPN is to create an encrypted connection, e.g., tunnel, over a less secure network. As a result, users can securely send and receive information across different networks as if their computing devices were directly connected to the same private network.
Hackers have become quite adept at monitoring and hacking activity of users over a VPN. Hackers are capable of viewing a static VPN IP address and conducting traffic analysis thereon. In turn, hackers can correlate the static VPN IP address to a specific user and/or the associated enterprise. VPN servers including these static VPN IP addresses may be compromised. Thus, they become easy targets for attacks and single points of failure.
What is desired in the art is a system and method for enhancing the security of networks when user equipment accesses the internet via VPN servers.
What is also desired is a system and method that reduces the likelihood of a system being compromised by a hacker.
The foregoing needs are met, to a great extent, by the application directed to enhancing security in networks accessing the internet via VPN servers.
One aspect of the application is directed to a computer-implemented method for enhancing security and preventing cyber-attacks on a network. The method includes a step of receiving, from a user equipment on the network, information including a source IP address and a destination IP address. The method also includes a step of selecting a first VPN server from a VPN service provider based upon a traffic-type of the user equipment. The method also includes a step of creating a policy to prevent cyber-attacks such that traffic associated with the information of the user equipment is routed to the first VPN server. The method further includes a step of sending the traffic of the user equipment to the VPN server. The method even further includes a step of provisioning the first VPN server to last a predetermined amount of time base on the created policy. The method yet even further includes a step of coordinating the created policy with a router on the network, with the traffic being sent to the first VPN server via the router. The method yet even further includes a step of sending, after a predetermined condition is met, a request to the VPN service provider to transmit a second VPN server, where the first VPN server terminates when the predetermined condition is met.
Yet another aspect of the application is directed to a computer-implemented system for enhancing security and preventing cyber-attacks on a network. The system includes a non-transitory memory having instructions stored thereon for dynamically managing web traffic of user equipment on the network. The system also includes a processor, operably coupled to the non-transitory memory. The processor is configured to execute the instructions of receiving information from the user equipment. The processor is further configured to execute the instructions of selecting a first VPN server from a VPN service provider based upon a traffic-type of the user equipment. The processor is further configured to execute the instructions of creating a policy to prevent cyber-attacks such that traffic associated with the received information of the user equipment is routed to the first VPN server. The processor is yet even further configured to execute the instructions of provisioning the first VPN server to last a predetermined amount of time based on the created policy. The processor is yet even further configured to execute the instructions of coordinating the created policy with a router on the network, with the traffic being sent to the first VPN server via the router. The processor is yet even further configured to execute the instructions of sending, after a predetermined condition is met, a request to the VPN service provider to transmit a second VPN server. The first VPN server terminates when the predetermined condition is met.
Yet even another aspect of the application is directed to a system for securing web traffic to prevent cyber-attacks on a network. The system comprises a non-transitory memory having instructions stored thereon for dynamically managing web traffic of user equipment on the network. The system also includes a processor, operably coupled to the memory. The processor is configured to execute the instructions of receiving information from the user equipment. The processor is configured to execute the instructions of selecting a first VPN server from a VPN service provider based upon a traffic-type of the user equipment. The processor is further configured to execute the instructions of creating a policy to prevent cyber-attacks such that traffic associated with the received information of the user equipment is routed to the first VPN server. The processor is further configured to execute the instructions of provisioning the first VPN server to last a predetermined amount of time based on the created policy. The processor is even further configured to execute the instructions of coordinating the created policy with a router on the network, with the traffic being sent to the VPN server via the router. The processor is yet even further configured to execute the instructions of sending, after a predetermined condition is met, a request to the VPN service provider to transmit a second VPN server, and where the first VPN server terminates. The system also includes a router on the network operably coupled to the processor to prevent cyber-attacks.
There has thus been outlined, rather broadly, certain embodiments in order that the detailed description thereof herein may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional embodiments of the invention that will be described below and which will form the subject matter of the claims appended hereto.
In order to facilitate a fuller understanding of the invention, reference is now made to the accompanying drawings, in which like elements are referenced with like numerals. These drawings should not be construed as limiting the invention and intended only to be illustrative.
In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of embodiments or embodiments in addition to those described and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein, as well as the abstract, are for the purpose of description and should not be regarded as limiting.
Reference in this application to “one embodiment,” “an embodiment,” “one or more embodiments,” or the like means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of, for example, the phrases “an embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by the other. Similarly, various requirements are described which may be requirements for some embodiments but not by other embodiments.
The present application describes techniques and systems for enhancing security in a network. Specifically, it has been observed that static IP addresses provide hackers with a greater likelihood of knowing the type of activity that corporations are researching. In turn, this increases the likelihood of hack attempts of the corporate network. To protect the network against hackers, the techniques in this application involve dynamically changing VPN servers that user equipment in the enterprise use to access the internet. In addition, the VPN servers may change due to predetermined conditions to further improve security of the network.
General Architecture
As shown in
As shown in
Referring to
Similar to the illustrated M2M service layer 22, there is the M2M service layer 22′ in the Infrastructure Domain. M2M service layer 22′ provides services for the M2M application 20′ and the underlying communication network 12 in the infrastructure domain. M2M service layer 22′ also provides services for the M2M gateway devices 14 and M2M terminal devices 18 in the field domain. It will be understood that the M2M service layer 22′ may communicate with any number of M2M applications, M2M gateway devices and M2M terminal devices. The M2M service layer 22′ may interact with a service layer by a different service provider. The M2M service layer 22′ may be implemented by one or more servers, computers, virtual machines, e.g., cloud/compute/storage farms, etc., or the like.
Referring also to
The M2M applications 20 and 20′ may include applications in various industries such as, without limitation, transportation, health and wellness, connected home, energy management, asset tracking, and security and surveillance. As mentioned above, the M2M service layer, running across the devices, gateways, and other servers of the system, supports functions such as, for example, data collection, device management, security, billing, location Tracking/geo-fencing, device/service discovery, and legacy systems integration, and provides these functions as services to the M2M applications 20 and 20′. Moreover, the M2M service layer may also be configured to interface with other devices such as UEs, service capability servers (SCSs) and mobility management entities (MMEs) as discussed in this application and illustrated in the figures.
The service layer is a software middleware layer that supports value-added service capabilities through a set of Application Programming Interfaces (APIs) and underlying networking interfaces. ETSI M2M's service layer is referred to as the Service Capability Layer (SCL). The SCL may be implemented within an M2M device (where it is referred to as a device SCL (DSCL)), a gateway (where it is referred to as a gateway SCL (GSCL)) and/or a network node (where it is referred to as a network SCL (NSCL)). The oneM2M service layer supports a set of Common Service Functions (CSFs), e.g., service capabilities. An instantiation of a set of one or more particular types of CSFs is referred to as a Common Services Entity (CSE), such as a SCS which may be hosted on different types of network nodes, e.g., infrastructure node, middle node, application-specific node
The processor 32 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. The processor 32 may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables the M2M device 30 to operate in a wireless environment. The processor 32 may be coupled to the transceiver 34, which may be coupled to the transmit/receive element 36. While
The transmit/receive element 36 may be configured to transmit signals to, or receive signals from, an M2M service platform 22. For example, in an embodiment, the transmit/receive element 36 may be an antenna configured to transmit and/or receive RF signals. The transmit/receive element 36 may support various networks and air interfaces, such as WLAN, WPAN, cellular, and the like. In an embodiment, the transmit/receive element 36 may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, for example. In yet another embodiment, the transmit/receive element 36 may be configured to transmit and receive both RF and light signals. It will be appreciated that the transmit/receive element 36 may be configured to transmit and/or receive any combination of wireless or wired signals.
In addition, although the transmit/receive element 36 is depicted in
The transceiver 34 may be configured to modulate the signals that are to be transmitted by the transmit/receive element 36 and to demodulate the signals that are received by the transmit/receive element 36. As noted above, the M2M device 30 may have multi-mode capabilities. Thus, the transceiver 34 may include multiple transceivers for enabling the M2M device 30 to communicate via multiple RATs, such as UTRA and IEEE 802.11, for example.
The processor 32 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 44 and/or the removable memory 46. The non-removable memory 44 may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 46 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 32 may access information from, and store data in, memory that is not physically located on the M2M device 30, such as on a server or a home computer.
The processor 32 may receive power from the power source 48 and may be configured to distribute and/or control the power to the other components in the M2M device 30. The power source 48 may be any suitable device for powering the M2M device 30. For example, the power source 48 may include one or more dry cell batteries, e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, and the like.
The processor 32 may also be coupled to the GPS chipset 50, which is configured to provide location information, e.g., longitude and latitude, regarding the current location of the M2M device 30. It will be appreciated that the M2M device 30 may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.
The processor 32 may further be coupled to other peripherals 52, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity. For example, the peripherals 52 may include an accelerometer, an e-compass, a satellite transceiver, a sensor, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.
In operation, CPU 91 fetches, decodes, and executes instructions, and transfers information to and from other resources via the computer's main data-transfer path, system bus 80. Such a system bus connects the components in computing system 90 and defines the medium for data exchange. System bus 80 typically includes data lines for sending data, address lines for sending addresses, and control lines for sending interrupts and for operating the system bus. An example of such a system bus 80 is the PCI (Peripheral Component Interconnect) bus.
Memory devices coupled to system bus 80 include random access memory (RAM) 82 and read only memory (ROM) 93. Such memories include circuitry that allows information to be stored and retrieved. ROMs 93 generally contain stored data that cannot easily be modified. Data stored in RAM 82 can be read or changed by CPU 91 or other hardware devices. Access to RAM 82 and/or ROM 93 may be controlled by memory controller 92. Memory controller 92 may provide an address translation function that translates virtual addresses into physical addresses as instructions are executed. Memory controller 92 may also provide a memory protection function that isolates processes within the system and isolates system processes from user processes. Thus, a program running in a first mode can access only memory mapped by its own process virtual address space; it cannot access memory within another process's virtual address space unless memory sharing between the processes has been set up.
In addition, computing system 90 may contain peripherals controller 83 responsible for communicating instructions from CPU 91 to peripherals, such as printer 94, keyboard 84, mouse 95, and disk drive 85.
Display 86, which is controlled by display controller 96, is used to display visual output generated by computing system 90. Such visual output may include text, graphics, animated graphics, and video. Display 86 may also include a graphical user interface (GUI) as shown in
Use Case
The hacker monitors and cross-correlates an organization's internet activity. In conventional systems however, IP addresses remain static. This facilitates easier monitoring of corporate activity by hackers.
Scenario 2 in
Scenario 3 in
Cloud Computing
Generally, cloud computing resources are delivered as a service over a network connection including but not limited to the Internet. Cloud computing is therefore a type of computing that relies on sharing a pool of physical and/or virtual resources, rather than deploying local or personal hardware and software. One of the key characteristics of cloud computing is the flexibility that it offers and one of the ways that flexibility is offered is through scalability. This refers to the ability of a system to adapt and scale to changes in workload. Cloud technology allows for the automatic provision and de-provision of resource as and when it is necessary, thus ensuring that the level of resource available is as closely matched to current demand as possible. That is, the end user usually pays only for the resource they use and so avoids the inefficiencies and expense of any unused capacity.
Infrastructure as a Service (laaS) is one of the three fundamental service models of cloud computing alongside Platform as a Service (PaaS) and Software as a Service (SaaS). Specifically, laaS is specifically that of virtualized hardware, e.g., computing infrastructure. The definition includes such offerings as virtual server space, network connections, bandwidth, IP addresses and load balancers. Physically, the pool of hardware resource is pulled from a multitude of servers and networks usually distributed across numerous data centers, all of which the cloud provider is responsible for maintaining. The client, on the other hand, is given access to the virtualized components in order to build their own IT platforms.
Private Cloud
A private cloud is a particular model of cloud computing that involves a distinct and secure cloud based environment in which only the specified client can operate. As with other cloud models, private clouds will provide computing power as a service within a virtualized environment using an underlying pool of physical computing resource. Here, the pool of resources is only accessible by a single organization providing that organization with greater control and privacy.
Traits that characterize private clouds include the ring fencing of a cloud for the sole use of one organization and higher levels of network security. By contrast, a public cloud has multiple clients accessing virtualized services which all draw their resource from the same pool of servers across public networks. Private cloud services draw their resource from a distinct pool of physical computers, but these may be hosted internally or externally and may be accessed across private leased lines or secure encrypted connections via public networks.
The added security offered by the ring fenced cloud model is ideal for any organization, such as for example an enterprise, that needs to store and process private data or carry out sensitive tasks. For example, a private cloud service could be utilized by a financial company that is required by regulation to store sensitive data internally and who will still want to benefit from some of the advantages of cloud computing within their business infrastructure, such as on demand resource allocation.
Controlling User Equipment Access to a Dynamic VPN Cloud Server
According to an aspect of the application, a novel technique and architecture is provided for enhancing security on a network.
Users on user equipment connect to the Internet via gateway/router 420 in the enterprise network 401. More specifically, users access the internet through a VPN server provided to the enterprise network via a VPN service provider 425.
In an embodiment, the cloud provider 430, otherwise known as an Internet hosting service (IHS), spawns a cloud server. An IHS is a service that runs Internet servers, allowing organizations and individuals to serve content to the Internet. There are various levels of service and various kinds of services offered. A common kind of hosting is web hosting.
Most IHSs 430 offer a combination of services. Generic kinds of Internet hosting provide a server where the clients can run anything they want (including web servers and other servers) and have Internet connections with good upstream bandwidth. Examples of cloud providers include Amazon web service s 431, Microsoft 432, and Google 433. The servers generated by each of the cloud providers are represented by square boxes.
According to an embodiment, the cloud server is generally spawned upon a request from the VPN service provider 425. The VPN service provider may also be referred to as the proxy server or simply service provider in this application. Cloud servers generally operate in the same way as physical servers. However, clients rent virtual server space rather than renting or purchasing physical servers.
Virtual cloud servers are often paid for by the hour depending on the capacity required at any particular time. In cloud hosting, resources can be scaled up or scaled down accordingly, making it more flexible and, therefore, more cost-effective. When there is more demand placed on the servers, capacity can be automatically increased to match that demand without needing to pay on a permanent basis.
Unlike dedicated servers, cloud servers can be run on a hypervisor. The role of a hypervisor is to control the capacity of operating systems so it is allocated where needed. With cloud hosting, there are multiple cloud servers which are available to each particular client. This allows computing resources to be dedicated to a particular client if and when it is necessary. Where there is a spike in traffic, additional capacity will be temporarily accessed by a website, for example, until it is no longer required. Cloud servers also offer more redundancy. If one server fails, others will take its place.
According to an embodiment, the VPN service provider 425 receives a notification from the cloud provider 430 that the cloud server has been generated. Subsequently, the VPN provider embeds the dynamic server with a VPN. The IP address on the newly created server is distinct from all other IP addresses. The dynamic server may also include other credential material. For example, the credential material may include a username and password.
According to an embodiment, the dynamically generated VPN server may last for a finite period of time. The duration may be fixed or variable. In so doing, hackers have a reduced risk of monitoring activity associated with an IP address. For example, the finite period may be 10 minutes, 20 minutes, 30 minutes, 40 minutes, 50 minutes or 1 hour. The finite period may also be any time ranging between 1 and 24 hours. In some embodiments, the finite period may be any time ranging from 24 hours to 72 hours. In another embodiment, the finite period is configurable by the enterprise 401 or the service provider 425.
In another embodiment, the dynamically generated VPN server may last until a predetermined condition is met. For example, the condition may be related to a specific activity. The activity may include inactivity, logging on or logging off. For example, if the user is inactive for a certain amount of time, the session on the dynamic server may end. A new session may be initiated in its place, based on enterprise policies. This is completed in a seamless fashion that is transparent to the user though enhances security.
In another embodiment, the activity may include visiting specific websites considered more susceptible to cyber-attacks. For instance, if the user is performing research in a field heavily monitored by hackers, the frequency at which the server is replaced with a new server (and new IP address) will increase.
The predetermined condition may also be related to load balancing requirements. For example, policies may be set by the policy controller 415 whereby only up to 2 users, or X amount of data may be able to go through particular dynamically created VPN server to access the Internet. This is shown, for example in
In another embodiment, the load balancing requirement may be set up such that different activity types are sent to specific cloud servers. For example, the server hosted by IHS 430a may be related to web traffic. Moreover, the server hosted by IHS 430b may be related to voice traffic. Further, the server hosted by IHS 430c may be related to video traffic.
In yet another embodiment, round-robin load balancing may be employed for distributing client requests across a group of servers. The round-robin technique forwards a client request to each server in turn going down a list. When it reaches the end of the list, the load balancer loops back and goes down the list again (sends the next request to the first listed server, the one after that to the second server, and so on). In an embodiment, weighted round robin may be employed. Here, a weight is assigned to each server based on criteria chosen by the site administrator. One criterion may be the server's traffic-handling capacity. The higher the weight, the larger the proportion of client requests the server receives. In yet another embodiment, dynamic round robin may be employed. Here, a weight is assigned to each server dynamically, based on real-time data about the server's current load and idle capacity.
In yet another embodiment, the enterprise network 401 may include a VPN policy controller 415. The VPN policy controller 415 sets policies for the enterprise network in terms of how users access the Internet. In an embodiment, the VPN policy controller 415 may request the VPN service provider to create a VPN cloud server for a particular user in the enterprise to access the internet. This is illustrated in
Further, credentials of the dynamic VPN server are sent to an entity, home or enterprise, on the network. The entity may be the enterprise 401, a policy controller 415 or the user equipment. The credentials may include an IP address. The credentials may include a port number. The credentials may include VPN client configuration parameters. The credentials may include client certificates.
According to yet another embodiment, the policy controller 415 may send a request to the VPN service provider 425 to create a VPN server for use by the user equipment. The request may include information of the user equipment. The information may include the type of traffic. The information may include the duration of time the service is required. The information may include the region or location desired.
The policy controller then receives a VPN server from the VPN service provider 425. In one embodiment, the policy controller may be able to select the VPN server based upon the traffic type of the user equipment. In another embodiment, when the policy controller 415 provides the traffic-type of the user equipment, the VPN service provider 425 may select the appropriate VPN server to meet the requirement of the user equipment.
The policy controller 415 creates a policy based upon a review of the credentials of the user equipment. The policy may be stored in a database for future retrieval. The database may be local or remove to the policy controller. The policy correlates traffic of the user equipment to be routed to a VPN server. As will be discussed below in reference to
In yet another embodiment, the traffic of the user equipment is sent by the policy controller 415 to the VPN server. In an exemplary embodiment, the policy controller sends the traffic to the VPN server via a router 420 as described above in in
According to an embodiment, the traffic from the user equipment to the VPN server terminates when a predetermined condition is met. The predetermined conditions are discussed above in detail. When this occurs, the policy controller 415 contacts the VPN service provider 425 for another VPN server. In an exemplary embodiment, the request is automatically generated and sent from the policy controller 415 after the predetermined condition is met. As a result, the VPN service provider 425 may select a suitable VPN server based upon information of the user equipment or blindly send a VPN server.
In another embodiment, once the second or subsequent VPN server is received by the policy controller 415 or the router 420, the traffic of the user equipment is redirected from the first VPN server to the second VPN server. The IP addresses of the first and second servers are different. This dynamically changing IP addresses based upon a predetermined condition, whether time or event based, helps improve the security of network employing VPN servers to access the internet.
The GUI 500 also includes a portal for requesting the VPN service provider to provide a VPN server (ultimately by embedding security on a server provided by a cloud provider) 550. Here, the policy controller can view which requests have been sent to the VPN service provider. This keeps track of the progress for VPN server receipt and dissemination. In so doing, the VPN service provider is aware of any requests that have not been fulfilled by the VPN service provider. In an embodiment, it is possible that plural VPN service providers provide services to the enterprise. If so, this mechanism permits the policy controller to rank which service provider is most efficient.
The GUI also includes a list of VPN servers 530 and, in some embodiments, a list of users for which the servers are provisioned for. The list ensures that users in the enterprise do not have to wait too long in order to obtain a VPN server.
In an embodiment, the policy controller may provision the server to last for a predetermined period of time based upon a policy. The policies may be located in a database portal 505.
In an alternative embodiment, the policy controller may select a specific time from the user interface at prompt 510 for the server to remain actice. As shown, the duration may be in minutes, hours and/or days. The time may be manually entered or selected from a further drop down of preselected time entries.
In yet another alternative embodiment, the display may include a prompt 520 to select duration based upon a predetermined condition. The condition may be based on an activity. Alternatively, the condition may be based upon load balancing. In an embodiment, the duration may be a combination of a specific time and a predetermined condition.
Another aspect of the application describes a method for enhancing security on a network as illustrated in
While the systems and methods have been described in terms of what are presently considered to be specific aspects, the application need not be limited to the disclosed aspects. It is intended to cover various modifications and similar arrangements included within the spirit and scope of the claims, the scope of which should be accorded the broadest interpretation so as to encompass all such modifications and similar structures. The present disclosure includes any and all aspects of the following claims.
This application is a continuation of U.S. Non-Provisional application Ser. No. 16/385,081 filed Apr. 16, 2019, which claims priority to U.S. Provisional Application No. 62/347,705 filed Jun. 9, 2016, and U.S. Non-Provisional application Ser. No. 15/275,982 filed Jun. 26, 2016, the disclosures of which are incorporated by reference in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
1030593 | Loguin | Jun 1912 | A |
5951694 | Choquier et al. | Sep 1999 | A |
6141777 | Cutrell et al. | Oct 2000 | A |
6330562 | Boden et al. | Dec 2001 | B1 |
6772226 | Bommareddy et al. | Aug 2004 | B1 |
7283534 | Kelly et al. | Oct 2007 | B1 |
8984621 | Burch et al. | Mar 2015 | B2 |
8997206 | Curcio et al. | Mar 2015 | B2 |
9571457 | Hoy et al. | Feb 2017 | B1 |
9853896 | Zheng | Dec 2017 | B2 |
10305935 | Chen | May 2019 | B2 |
10484428 | Chen | Nov 2019 | B2 |
10594746 | VanderKnyff | Mar 2020 | B1 |
10798132 | Chen | Oct 2020 | B2 |
20040139350 | Lyon et al. | Jul 2004 | A1 |
20040141508 | Schoeneberger et al. | Jul 2004 | A1 |
20050132229 | Zhang et al. | Jun 2005 | A1 |
20050193103 | Drabik | Sep 2005 | A1 |
20070143851 | Nicodemus et al. | Jun 2007 | A1 |
20080091803 | Liu | Apr 2008 | A1 |
20080222729 | Chen et al. | Sep 2008 | A1 |
20090217358 | Kumar et al. | Aug 2009 | A1 |
20090328192 | Yang et al. | Dec 2009 | A1 |
20100169497 | Klimentiev et al. | Jul 2010 | A1 |
20100242092 | Harris et al. | Sep 2010 | A1 |
20110116493 | Caceres et al. | May 2011 | A1 |
20110154443 | Thakur et al. | Jun 2011 | A1 |
20110162062 | Kumar et al. | Jun 2011 | A1 |
20110214176 | Burch et al. | Sep 2011 | A1 |
20120151057 | Paredes et al. | Jun 2012 | A1 |
20120233678 | Pal | Sep 2012 | A1 |
20130250947 | Zheng | Sep 2013 | A1 |
20130297933 | Fiducia et al. | Nov 2013 | A1 |
20130311778 | Cherukuri et al. | Nov 2013 | A1 |
20140119189 | Lin | May 2014 | A1 |
20140230044 | Liu et al. | Aug 2014 | A1 |
20140351801 | Shin et al. | Nov 2014 | A1 |
20150026794 | Zuk et al. | Jan 2015 | A1 |
20150052524 | Raghu | Feb 2015 | A1 |
20150143501 | Cherukuri et al. | May 2015 | A1 |
20150288765 | Skraparlis | Oct 2015 | A1 |
20150295885 | Congdon et al. | Oct 2015 | A1 |
20150365828 | Saida et al. | Dec 2015 | A1 |
20150372982 | Herle et al. | Dec 2015 | A1 |
20160028770 | Raleigh et al. | Jan 2016 | A1 |
20160065422 | Khargharia et al. | Mar 2016 | A1 |
20160065501 | Watanabe et al. | Mar 2016 | A1 |
20160164690 | Fukuda | Jun 2016 | A1 |
20160164786 | Fukuda | Jun 2016 | A1 |
20160164914 | Madhav et al. | Jun 2016 | A1 |
20160173334 | Gavrilovic et al. | Jun 2016 | A1 |
20160191600 | Scharber et al. | Jun 2016 | A1 |
20160198501 | Verkaik et al. | Jul 2016 | A1 |
20160234067 | Dolganow et al. | Aug 2016 | A1 |
20160234103 | Kotalwar et al. | Aug 2016 | A1 |
20160248511 | Wang et al. | Aug 2016 | A1 |
20160261564 | Foxhoven et al. | Sep 2016 | A1 |
20160308907 | Le | Oct 2016 | A1 |
20170149609 | Tofighbakhsh et al. | May 2017 | A1 |
20170149629 | Raleigh et al. | May 2017 | A1 |
20170171156 | Schultz et al. | Jun 2017 | A1 |
20170230335 | Walker | Aug 2017 | A1 |
20170230451 | Paramasivam | Aug 2017 | A1 |
20170332312 | Jung et al. | Nov 2017 | A1 |
20170366395 | Goldfarb et al. | Dec 2017 | A1 |
20180077202 | Xu | Mar 2018 | A1 |
20190109781 | Fan et al. | Apr 2019 | A1 |
20190268262 | Wang | Aug 2019 | A1 |
Number | Date | Country |
---|---|---|
103095701 | May 2013 | CN |
104350467 | Feb 2015 | CN |
105262753 | Jan 2016 | CN |
105897728 | Aug 2016 | CN |
106713244 | May 2017 | CN |
107920350 | Apr 2018 | CN |
2999172 | Mar 2016 | EP |
2016-208173 | Dec 2016 | JP |
10-2016-0006806 | Jan 2016 | KR |
2014177097 | Nov 2014 | WO |
2015041706 | Mar 2015 | WO |
Number | Date | Country | |
---|---|---|---|
20210029172 A1 | Jan 2021 | US |
Number | Date | Country | |
---|---|---|---|
62347705 | Jun 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16385081 | Apr 2019 | US |
Child | 17036649 | US | |
Parent | 15275982 | Sep 2016 | US |
Child | 16385081 | US |