throbber
Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 1 of 15 PageID #: 86
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 1 of 15 PageID #: 86
`
`EXHIBIT 4
`
`
`
`
`
`
`
`EXHIBIT 4
`
`
`
`
`
`
`
`
`
`
`

`

`
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 2 of 15 PageID #: 87
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`Communication Interface Technologies, LLC (“CIT”) provides this preliminary and exemplary infringement analysis with respect
`
`infringement of U.S. Patent No. 6,574,239, entitled “Virtual Connection of a Remote Unit to a Server” (“the ’239 patent”) by JPMorgan Chase & Co.
`(“Chase”). The following chart illustrates an exemplary analysis regarding infringement by Chase’s commercial mobile device application(s)
`including Chase Mobile, Chase Mobile Checkout, J.P. Morgan Access Mobile, J.P. Morgan Mobile, and Chase Mobile Checkout-PLUS, along with
`any hardware and/or software for provisioning that mobile device application (collectively, the “Accused Instrumentalities”). Upon information and
`belief, the exemplary version herein and previous versions of the Accused Instrumentalities distributed prior to expiration of the patents-in-suit
`operated materially in the same manner.
`
`The analysis set forth below is based only upon information from publically available resources regarding the Accused Instrumentalities, as
`
`Chase has not yet provided any non-public information.
`
`Unless otherwise noted, CIT contends that Chase directly infringes the ’239 patent in violation of 35 U.S.C. § 271(a) by selling, offering to
`
`sell, making, using, and/or importing the Accused Instrumentalities. The following exemplary analysis demonstrates that infringement.
`
`Unless otherwise noted, CIT believes and contends that each element of each claim asserted herein is literally met through Chase’s provision
`
`of the Accused Instrumentalities. However, to the extent that Chase attempts to allege that any asserted claim element is not literally met, CIT
`believes and contends that such elements are met under the doctrine of equivalents. More specifically, in its investigation and analysis of the
`Accused Instrumentalities, CIT did not identify any substantial differences between the elements of the patent claims and the corresponding features
`of the Accused Instrumentalities, as set forth herein. In each instance, the identified feature of the Accused Instrumentalities performs at least
`substantially the same function in substantially the same way to achieve substantially the same result as the corresponding claim element.
`
`CIT notes that the present claim chart and analysis are necessarily preliminary in that CIT has not obtained substantial discovery from Chase
`nor has Chase disclosed any detailed analysis for its non-infringement position, if any. Further, CIT does not have the benefit of claim construction
`or expert discovery. CIT reserves the right to supplement and/or amend the positions taken in this preliminary and exemplary infringement analysis,
`including with respect to literal infringement and infringement under the doctrine of equivalents, if and when warranted by further information
`obtained by CIT, including but not limited to information adduced through information exchanges between the parties, fact discovery, claim
`construction, expert discovery, and/or further analysis.
`
`1
`
`

`

`
`
`
`Claim 7
`7 For use in controlling a virtual session
`on a server, a method comprising:
`
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 3 of 15 PageID #: 88
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`
`Chase Service
`A method is specified for controlling a virtual session on a server. The definition of a virtual
`session is described section 7a below.
`
`See https://play.google.com/store/apps/developer?id=JPMorgan+Chase
`
`
`7a
`
`establishing a virtual session with a
`remote unit, the virtual session being
`instantiated to support at least one
`application layer program;
`
`
`
`
`Wireless push notification messages are sent over Transport Layer Security (TLS) sessions. Each
`Push message includes an encrypted push token as per Endnote #1. The push token is sent in a
`Push Notification message over TLS sessions from the Chase Server backend to the Chase App
`(application program, application layer program) running on a user’s smartphone or tablet (remote
`unit).
`
`See https://play.google.com/store/apps/details?id=com.chase.sig.android
`
`
`2
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 4 of 15 PageID #: 89
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`
`
`
`In the Chase application, for example, a push notification contains information related to charges,
`
`
`
`3
`
`

`

`
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 5 of 15 PageID #: 90
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`refunds, balance transfers, payments, balances, credit limit amounts, due dates, and other
`transactions and account information.
`
`See https://www.chase.com/personal/mobile-online-banking/login-alerts
`
`
`
`
`Also, the Server Application and the client-side App establish a separate TLS connection for
`traditional client-server communications. For example, the Chase Application Server program
`establishes a TLS session with the Chase App.
`
`
`
`
`4
`
`

`

`
`
`7b placing the virtual session in an inactive
`state;
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 6 of 15 PageID #: 91
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`The TLS session used for client-server communications between the Chase Application Server and
`the Chase App correspond to the recited virtual session.
`
`TLS session use a full handshake sequence that is used to establish connection parameters, and an
`abbreviated handshake sequence that is used to resume the TLS session from an inactive or
`dormant state to an active state whereby new payload data can be sent via the virtual session once
`again.
`
`See Endnote #2 for a discussion of the virtual session aspects of TLS.
`
`Mobile applications communicate with their application server via TLS connections. These TLS
`connections are established at the time the app is installed or launched and can be resumed at a later
`time using a session token. See Endnote #2 for a discussion of TLS.
`
`See https://threema.ch/press-files/cryptography_whitepaper.pdf - Android uses TLS 1.2 resumable
`sessions.
`
`See https://www.icir.org/johanna/papers/conext17android.pdf - Android also supports TLS and
`secure connections between client app and server are ubiquitously used.
`
`See https://developer.android.com/training/articles/security-ssl – “The Secure Sockets Layer
`(SSL)—now technically known as Transport Layer Security (TLS)—is a common building block
`for encrypted communications between clients and servers.” Note that certain certificates are used,
`and these are used to help create Android Device Tokens used in Push Notification messages. See
`Endnotes #1, and #2.
`
`See Endnote #2. Note when the application data phase is finished, the TLS client-server data
`session is placed back into the inactive state. Hence the end of application data marker is the signal
`used to place the virtual session into the inactive state.
`
`Chase Application server causes a push notification message (incoming communication) to be sent
`to the Chase App running on the user’s smartphone or tablet device (remote unit). See Endnote #1.
`
`In the Chase App, for example, a push notification contains information related to charges, refunds,
`balance transfers, payments, balances, credit limit amounts, due dates, and other transactions and
`5
`
`7c
`
`sending a signal indicative of an
`incoming communication request and an
`application-program identifying packet
`to said remote unit, said application-
`program identifying packet identifying
`
`

`

`
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 7 of 15 PageID #: 92
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`an application program that needs to
`resume a virtual session and
`communicate with said remote unit; and
`
`account information.
`
`See https://www.chase.com/personal/mobile-online-banking/login-alerts
`
`
`
`
`The signal indicative of an incoming communication request will request the application program
`running on the remote unit to resume the TLS session used for client-server communications
`between the Chase Application server and the Chase App running on the user’s smartphone or
`tablet device (remote unit). The application-program identifying packet will include information
`used to identify the App) on the remote unit.
`
`
`6
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 8 of 15 PageID #: 93
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`The Chase server and the Chase App will resume a TLS session so that the server and the remote
`unit can resume communications. To do so the Chase App will invoke a protocol stack within the
`remote unit to communicate back to the server via the remote unit.
`
`See Endnote #1 for a discussion of how each new set of data payloads coming into the Chase
`application includes an app-specific device token. The app-specific device token is indicative of
`the Chase application running on the remote unit. Each incoming wireless push notification
`message contains the app-specific device token which is part of the application-program identifying
`packet.
`
`Based upon user selection of information associated with the above-mentioned push notification,
`the Transport Layer Security (TLS) session between the Chase Application Server and the Chase
`App is resumed as discussed in Endnote #2. TLS session resumption means that the TLS session is
`placed back into the active state using an abbreviated handshake sequence so that new application
`data can be passed between the Chase Application Server and the App running on the user’s
`smartphone or tablet.
`
`See Endnote#2 for a discussion of TLS session resumption. See also,
`https://docs.microsoft.com/en-us/windows/desktop/secauthn/tls-handshake-protocol.
`
`
`placing the virtual session back into the
`active state and transferring data
`between the application and the remote
`unit via the virtual session in response to
`said step of sending.
`
`
`
`7d
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`7
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 9 of 15 PageID #: 94
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`Endnote#1 - App-Specific Device Token
`
`https://help.pushwoosh.com/hc/en-us/articles/360000364923-What-is-a-Device-token-
`Question:
`What is a Device token?
`Answer:
`Push token (device token) - is a unique key for the app-device combination which is issued by the Apple or Google push notification gateways. It
`allows gateways and push notification providers to route messages and ensure the notification is delivered only to the unique app-device combination
`for which it is intended.
`iOS device push tokens are strings with 64 hexadecimal symbols. Push token example:
`03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
`Make sure that iOS push tokens you use when targeting specific devices in your API requests are in lower case.
`
`Android device push tokens can differ in length (usually below 255 characters), and usually start with APA…Push token example:
`
`APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-
`MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-
`x-U-Y79vdPq
`
`
`Note: The Android device push tokens correspond to the app-specific device token terminology used in the claim charts.
`
`https://dev.to/jakubkoci/react-native-push-notifications-313i
`
`
`
`
`
`
`8
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 10 of 15 PageID #: 95
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`
`
`Note: In the above Architecture, the “backend” corresponds to the backend of the Application Server. The Device token corresponds to a specific
`App running on a specific device. That is what is meant by the app-specific device token in the claim charts.
`
`
`
`https://firebase.google.com/docs/cloud-messaging/android/first-message
`
`Access the registration token
`
`To send a message to a specific device, you need to know that device's registration token. Because you'll need to enter the token in a field in the
`Notifications console to complete this tutorial, make sure to copy the token or securely store it after you retrieve it.
`
`On initial startup of your app, the FCM SDK generates a registration token for the client app instance. If you want to target single devices or create
`device groups, you'll need to access this token by extending FirebaseMessagingService and overriding on NewToken.
`
`9
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 11 of 15 PageID #: 96
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`This section describes how to retrieve the token and how to monitor changes to the token. Because the token could be rotated after initial startup, you
`are strongly recommended to retrieve the latest updated registration token.
`
`The registration token may change when:
`
`• The app deletes Instance ID
`• The app is restored on a new device
`• The user uninstalls/reinstall the app
`• The user clears app data.”
`
`
`https://firebase.google.com/docs/cloud-messaging/concept-options
`
`For example, here is a JSON-formatted notification message in an IM app. The user can expect to see a message with the title "Portugal vs.
`Denmark" and the text "great match!" on the device:
`
`{
` "message":{
` "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", -- App-specific token
` "notification":{
` "title":"Portugal vs. Denmark",
` "body":"great match!"
` }
` }
`}
`
`
`https://firebase.google.com/docs/cloud-messaging/android/client
`
`
`
`
`
`
`10
`
`

`

`
`
`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 12 of 15 PageID #: 97
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`Retrieve the current registration token
`
`When you need to retrieve the current token, call FirebaseInstanceId.getInstance().getInstanceId():
`FirebaseInstanceId.getInstance().getInstanceId()
` .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
` @Override
` public void onComplete(@NonNull Task<InstanceIdResult> task) {
` if (!task.isSuccessful()) {
` Log.w(TAG, "getInstanceId failed", task.getException());
` return;
` }
`
` // Get new Instance ID token
` String token = task.getResult().getToken();
`
` // Log and toast
` String msg = getString(R.string.msg_token_fmt, token);
` Log.d(TAG, msg);
` Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
` }
` });
`
`Monitor token generation
`
`The onNewToken callback fires whenever a new token is generated.
`/**
` * Called if InstanceID token is updated. This may occur if the security of
` * the previous token had been compromised. Note that this is called when the InstanceID token
` * is initially generated so this is where you would retrieve the token.
` */
`@Override
`public void onNewToken(String token) {
`
`11
`
`MainActivity.java
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 13 of 15 PageID #: 98
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
` Log.d(TAG, "Refreshed token: " + token);
`
` // If you want to send messages to this application instance or
` // manage this apps subscriptions on the server side, send the
` // Instance ID token to your app server.
` sendRegistrationToServer(token);
`}
`After you've obtained the token, you can send it to your app server and store it using your preferred method. See the Instance ID API reference
`[https://firebase.google.com/docs/reference/android/com/google/firebase/iid/FirebaseInstanceId] for full detail on the API.
`
`
`
`
`Endnote#2 - Transport Layer Security and Virtual Sessions
`
`Transport Layer Security (TLS) is used by both Apple iOS and Android based devices. The handshake diagrams in this endnote use Apple iOS as an
`example but apply equally to Android type implementations.
`
`https://developer.android.com/training/articles/security-ssl
`
`“The Secure Sockets Layer (SSL)—now technically known as Transport Layer Security (TLS)—is a common building block for encrypted
`communications between clients and servers.”
`
`https://android-developers.googleblog.com/2018/04/protecting-users-with-tls-by-default-in.html
`
`“Android is committed to keeping users, their devices, and their data safe. One of the ways that we keep data safe is by protecting all data that enters
`or leaves an Android device with Transport Layer Security (TLS) in transit.
`
`A. Razaghpanah et al., Studying TLS Usage in Android Apps, CoNEXT ’17, Dec.12-15, 2017, Incheon, Republic of Korea
`http://abbas.rpanah.ir/publications/conext2017_tls_paper.pdf
`
`“A History of TLS Support in Android: Android has supported TLS 1.0 since its first version released in 2008 and TLS 1.1 and TLS 1.2 since
`2012.”
`
`12
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 14 of 15 PageID #: 99
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`
`“However, other protocols such as secure email (42 apps) and Google’s Cloud Messaging service for push notifications (9 apps) [11, 47] also use
`TLS.”
`
`https://developer.ibm.com/customer-engagement/docs/watson-marketing/ibm-engage-2/tls-1-2-migration-for-mobile-push-clients/
`
`What will happen on devices that are unable to support TLS 1.2?
`
`Devices which do not support TLS 1.2 will be unable to connect to our WCA servers. This will prevent users of those devices from:
`
` •
`
` Registering new mobile user IDs
`• Updating push tokens
`• Receiving inbox messages
`• Receiving In-app messages
`
`Note: As the above link shows, the creation of the App IDs of Endnote #1 are linked to the TLS protocol being run on the TLS-enabled Push-
`Notification channel.
`
`https://tools.ietf.org/html/rfc5246
`
`F.1.4. Resuming Sessions
`
`When a connection is established by resuming a session, new ClientHello.random and ServerHello.random values are hashed with the session's
`master_secret. Provided that the master_secret has not been compromised and that the secure hash operations used to produce the encryption keys
`and MAC keys are secure, the connection should be secure and effectively independent from previous connections. Attackers cannot use known
`encryption keys or MAC secrets to compromise the master_secret without breaking the secure hash operations.
`
`Sessions cannot be resumed unless both the client and server agree. If either party suspects that the session may have been compromised, or that
`certificates may have expired or been revoked, it should force a full handshake. An upper limit of 24 hours is suggested for session ID lifetimes,
`since an attacker who obtains a master_secret may be able to impersonate the compromised party until the corresponding session ID is retired.
`Applications that may be run in relatively insecure environments should not write session IDs to stable storage.
`
`https://tools.ietf.org/html/rfc5077
`
`13
`
`

`

`Case 4:20-cv-00527-SDJ Document 1-4 Filed 07/10/20 Page 15 of 15 PageID #: 100
`Analysis of Infringement of U.S. Patent No. 6,574,239 by JPMorgan Chase & Co.
` (Based on Public Information Only)
`
`
`Abstract
`
`This document describes a mechanism that enables the Transport Layer Security (TLS) server to resume sessions and avoid keeping per-client
`session state. The TLS server encapsulates the session state into a ticket and forwards it to the client. The client can subsequently resume a session
`using the obtained ticket.
`
`3. Protocol
`
`
`This specification describes a mechanism to distribute encrypted session-state information in the form of a ticket. The ticket is created by a
`TLS server and sent to a TLS client. The TLS client presents the ticket to the TLS server to resume a session.
`
`
`
`
`
`
`
`14
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket