IP Library Granted Patent US 8,914,629
Granted Patent B2
US 8,914,629 · App. 13/361,651 · Granted Dec 16, 2014

Intercepting encrypted network traffic for internet usage monitoring

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,914,629
App. No.
13/361,651
Granted
Dec 16, 2014
Kind
B2
Abstract

An example method disclosed herein to monitor Internet usage comprises intercepting, using a kernel extension executing in an operating system kernel of a device, a first request to be sent to a content source by a monitored client executing on the device, providing a first certificate to the client in response to intercepting the first request sent by the client to the content source, the first certificate associated with a meter that is to monitor Internet usage, sending a second request to the content source, receiving a second certificate that is associated with the content source in response to sending the second request to the content source, and obtaining a session key to decrypt encrypted traffic exchanged between the content source and the client, the session key being obtained from the client based on the first certificate and being sent to the content source based on the second certificate.

Claims (66)

1. A method to monitor Internet usage, the method comprising:

intercepting, using a meter comprising a kernel extension executing in an operating system kernel of a client device, a first request to be sent to a data source by a client application executing on the client device;

providing a first certificate to the client application in response to intercepting the first request sent by the client application to the data source, the first certificate being associated with the meter, the meter to monitor Internet usage associated with the client application;

receiving, at the meter from the data source, a second certificate that is associated with the data source in response to forwarding the first request to the data source, the second certificate including second information different from first information included in the first certificate;

obtaining, at the meter, a session key to decrypt encrypted traffic exchanged between the data source and the client application, the session key being obtained from the client application after being encrypted based on the first information included in the first certificate, the session key then being sent to the data source after being encrypted based on the second information included in the second certificate; and

determining Internet usage data based on using the session key to decrypt at least some of the traffic exchanged between the data source and the client application.

2. A method as defined in claim 1 wherein the meter further comprises a metering application executing on the client device, and the kernel extension causes the metering application to provide the first certificate to the client application and to forward the first request to the data source.

3. A method as defined in claim 1 wherein the first certificate is verifiable using a first root certificate issued by a provider of the meter, and the second certificate is verifiable using a second root certificate issued by a trusted certificate authority different from the provider of the meter.

4. A method as defined in claim 1 further comprising:

intercepting a reply from the client application, the reply containing the session key, the session key being encrypted using a first public key included in the first certificate;

decrypting the session key using a first private key associated with the first public key to obtain the session key;

encrypting the session key using a second public key, the second public key being included in the second certificate; and

sending the session key encrypted using the second public key to the data source to establish a secure communication session between the data source and the client application.

5. A method as defined in claim 4 wherein the meter further comprises a metering application executing on the client device, and the kernel extension causes the metering application executing on the client device to decrypt the session key using the first private key, encrypt the session key using the second public key, and send the session key encrypted using the second public key to the data source.

6. A method as defined in claim 1 further comprising:

intercepting first encrypted traffic received from the data source and being sent to the client application;

decrypting the first encrypted traffic using the session key to obtain first decrypted traffic to be used to monitor Internet usage;

intercepting second encrypted traffic received from the client application and being sent to the data source; and

decrypting the second encrypted traffic using the session key to obtain second decrypted traffic to be used to monitor Internet usage.

7. A method as defined in claim 6 wherein the meter further comprises a metering application executing on the client device, intercepting the first encrypted traffic comprises intercepting the first encrypted traffic using the kernel extension, intercepting the second encrypted traffic comprises intercepting the second encrypted traffic using the kernel extension, and the kernel extension causes the metering application to decrypt the first encrypted traffic using the session key to obtain the first decrypted traffic, and to decrypt the second encrypted traffic using the session key to obtain the second decrypted traffic.

8. A tangible machine readable medium comprising machine readable instructions which, when executed, cause a machine to at least:

intercept, using a meter comprising a kernel extension executing in an operating system kernel of a client device, a first request to be sent to a data source by a client application executing on the client device

provide a first certificate to the client application in response to intercepting the first request sent by the client application to the data source, the first certificate being associated with the meter, the meter to monitor Internet usage associated with the client application;

receive, at the meter from the data source, a second certificate that is associated with the data source in response to the first request being forwarded to the data source, the second certificate including second information different from first information included in the first certificate;

obtain, at the meter, a session key to decrypt encrypted traffic exchanged between the data source and the client application, the session key being obtained from the client application after being encrypted based on the first information included in the first certificate, the session key then being sent to the data source after being encrypted based on the second information included in the second certificate; and

determine Internet usage data based on using the session key to decrypt at least some of the traffic exchanged between the data source and the client application.

9. A tangible machine readable medium as defined in claim 8 wherein the meter further comprises a metering application to execute on the client device, and the machine readable instructions, when executed, further cause the machine to cause the metering application to provide the first certificate to the client application and to forward the first request to the data source in response to the interception of the first request by the kernel extension.

10. A tangible machine readable medium as defined in claim 8 wherein the first certificate is verifiable using a first root certificate issued by a provider of the meter, and the second certificate is verifiable using a second root certificate issued by a trusted certificate authority different from the provider of the meter.

11. A tangible machine readable medium as defined in claim 8 wherein the machine readable instructions, when executed, further cause the machine to:

intercept a reply from the client application, the reply containing the session key, the session key being encrypted using a first public key included in the first certificate;

decrypt the session key using a first private key associated with the first public key to obtain the session key;

encrypt the session key using a second public key, the second public key being included in the second certificate; and

send the session key encrypted using the second public key to the data source to establish a secure communication session between the data source and the client application.

12. A tangible machine readable medium as defined in claim 11 wherein the meter further comprises a metering application executing on the client device, and the machine readable instructions, when executed, further cause the machine to cause the metering application to decrypt the session key using the first private key, encrypt the session key using the second public key, and send the session key encrypted using the second public key to the data source in response to the interception of the reply by the kernel extension.

13. A tangible machine readable medium as defined in claim 8 wherein the machine readable instructions, when executed, further cause the machine to:

intercept first encrypted traffic received from the data source and being sent to the client application;

decrypt the first encrypted traffic using the session key to obtain first decrypted traffic to be used to monitor Internet usage;

intercept second encrypted traffic received from the client application and being sent to the data source; and

decrypt the second encrypted traffic using the session key to obtain second decrypted traffic to be used to monitor Internet usage.

14. A tangible machine readable medium as defined in claim 13 wherein the meter further comprises a metering application executing on the client device, and the machine readable instructions, when executed, further cause the machine to:

intercept the first encrypted traffic using the kernel extension;

intercept the second encrypted traffic using the kernel extension;

cause the metering application to decrypt the first encrypted traffic using the session key to obtain the first decrypted traffic; and

cause the metering application to decrypt the second encrypted traffic using the session key to obtain the second decrypted traffic.

15. A metering apparatus to monitor Internet usage, the apparatus comprising:

a request interceptor comprising a kernel extension that is to execute in an operating system kernel of a client device, the kernel extension to intercept a first request to be sent to a data source by a client application executing on the client device;

a certificate manager implemented by a first microprocessor to:

provide a first certificate to the client application in response to the first request being intercepted by the request interceptor, the first certificate being associated with a provider of the metering apparatus; and

receive, from the data source, a second certificate that is associated with the data source in response to the request interceptor having forwarded the first request to the data source, the second certificate being including second information different from first information included in the first certificate;

a key interceptor implemented by at least one of the first microprocessor or a second microprocessor to obtain a session key to decrypt encrypted traffic exchanged between the data source and the client application, the session key being obtained from the client application after being encrypted based on the first information included in the first certificate, the session key then being sent to the data source after being encrypted based on the second information included in the second certificate; and

a usage reporter to report Internet usage data determined based on using the session key to decrypt at least some of the traffic exchanged between the data source and the client application.

16. A metering apparatus as defined in claim 15 further comprising a metering application that is to execute on the client device to provide the first certificate to the client application and to forward the first request to the data source in response to the interception of the first request by the kernel extension.

17. A metering apparatus as defined in claim 15 wherein the key interceptor is to:

access a reply from the client application, the reply containing the session key, the session key being encrypted using a first public key included in the first certificate;

decrypt the session key using a first private key associated with the first public key to obtain the session key;

encrypt the session key using a second public key, the second public key being included in the second certificate; and

send the session key encrypted using the second public key to the data source to establish a secure communication session between the data source and the client application.

18. A metering apparatus as defined in claim 17 wherein the kernel extension is to intercept the reply, and the key interceptor comprises a metering application that is to execute on the client device to decrypt the session key using the first private key, to encrypt the session key using the second public key, and to send the session key encrypted using the second public key to the data source in response to the interception of the reply by the kernel extension.

19. A metering apparatus as defined in claim 15 further comprising a traffic interceptor to:

access first encrypted traffic received from the data source and being sent to the client application;

decrypt the first encrypted traffic using the session key to obtain first decrypted traffic to be used to monitor Internet usage;

access second encrypted traffic received from the client application and being sent to the data source; and

decrypt the second encrypted traffic using the session key to obtain second decrypted traffic to be used to monitor Internet usage.

20. A metering apparatus as defined in claim 19 wherein the kernel extension is to intercept the first encrypted traffic and intercept the second encrypted traffic, and the traffic interceptor comprises a metering application that is to execute on the client device to:

decrypt the first encrypted traffic using the session key to obtain the first decrypted traffic; and

decrypt the second encrypted traffic using the session key to obtain the second decrypted traffic.

Assignments (10)
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
SECURITY INTEREST Recorded May 8, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: ARES CAPITAL CORPORATION
Reel/Frame 063574/0632 →
SECURITY INTEREST Recorded Apr 28, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: CITIBANK, N.A.
Reel/Frame 063561/0381 →
SECURITY AGREEMENT Recorded Jan 31, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 063560/0547 →
RELEASE (REEL 037172 / FRAME 0415) Recorded Oct 13, 2022
From: CITIBANK, N.A.
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 061750/0221 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
SUPPLEMENTAL IP SECURITY AGREEMENT Recorded Nov 30, 2015
From: THE NIELSEN COMPANY ((US), LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT FOR THE FIRST LIEN SECURED PARTIES
Reel/Frame 037172/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2012
From: RUBIN, JONATHON BRETT; BESEHANIC, JAN; BORLAND, ROBERT PETER
To: THE NIELSEN COMPANY (US), LLC, A DELAWARE LIMITED LIABILITY COMPANY
Reel/Frame 028803/0208 →