The invention relates to creation of secret interest groups in online social networks. More precisely, the invention relates to creation of a secret interest group framework with cryptographic algorithms and protocols.
Online Social Networks (OSNs) are becoming one of the most prominent communication technologies. Platforms such as Facebook now count millions of users that share information every day.
A problem, which is particularly felt among OSNs, is identity theft and identity spoofing. The root of the problem lies in the fact that in OSNs there is little or no verification of whether a person that joins the social network is really who he or she claims to be. Furthermore, social network users base their decision on whether to accept a friendship request on name, pictures, and fragments of text, which is information that is often easily retrievable from elsewhere on the internet. It is therefore relatively simple for an impostor to set up a profile on an OSN, pretending to be somebody else, and then to convince other users to accept friendship requests, and consequently to share their private information with the impostor.
Various embodiments of computer implemented methods and systems for secret interest groups in social networks are described herein. In some embodiments, the method includes receiving a friendship request from a first OSN user to a second OSN user and capturing the friendship request by a proxy server. The method also includes extracting cryptographic information of the first and the second user by the proxy server to be used for computation of a cryptographic handshake to verify the membership of the first and the second user to a same secret interest group (SIG). Then, the method continues with creating a modified request from the friendship request by the proxy server through notifying the second user that the first user is a member of the same SIG as the second user when the cryptographic handshake is accomplished and forwarding the modified request to an OSN server. The method further includes receiving a response to the modified request from the second user via the OSN server and sending a message to the first user affirming the co-membership of the second user when the second user has accepted the modified request.
In another embodiment of the invention, the system includes one or more OSN servers within an OSN and at least two OSN users communicating via the OSN. The system also includes a proxy server in communication with the one or more OSN servers, the proxy server having a processor to execute instructions for modifying a friendship request between the at least two OSN users by computing a cryptographic handshake to verify the membership of the at least two OSN users to the same secret interest group (SIG).
These and other benefits and features of embodiments of the invention will be apparent upon consideration of the following detailed description of preferred embodiments thereof, presented in connection with the following drawings.
The claims set forth the embodiments of the invention with particularity. The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. The embodiments of the invention, together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings.
Embodiments of techniques for secret interest groups in online social networks are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize however, that the invention can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
Reference throughout this specification to “one embodiment”, “this embodiment” and similar phrases, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of these phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Typically users communicate through Online Social Networks (OSNs) to exchange information, photos, meet people and the like.
One other solution could be that users 110 create a Secret Interest Group (SIG) 150 outside of the OSN 130, as presented in
In some embodiments, the implementation of the SIG 150 in an OSN 130 is performed by algorithms that deal with authentication, handshaking, and encryption of content among users 110 of the OSN 130. The OSN 130 is used as a transport layer for cryptographic messages. In some embodiments, the SIG 150 is not maintained or administered by a central entity but rather any entitled user may be able to act as a central entity and also the algorithms may be subject to a threshold (thresholdized) in the sense that to be performed successfully, they need the cooperation of a minimum number of entitled users. Thus, the role of the central entity is split and spread among entitled users. For example, the creation of a new SIG 150 is the task of an initial set of SIG managers that create the SIG and handle the joining of the first SIG members. The initial set of SIG managers may reserve the ability of handling the joining of other members to themselves only, or may endorse other members with this capability as well. The difference between SIG managers and SIG members is that the SIG managers are not only SIG members but they are also responsible for appointing new SIG managers and to allow new members to join the SIG. Hence, for joining a SIG, at any point in time the set of SIG managers must be non-empty; and only a set of SIG managers may appoint new SIG managers. To enhance the security of SIGs, one SIG manager alone may not able to perform the task of appointing new SIG managers and handling the joining of new members, instead, the procedures require a minimum number of SIG managers to be involved. In some embodiments, prior to being allowed to join the SIG, a potential member may undergo offline verification carried out by a SIG manager. The purpose of such verification is to ensure that all members are consistent with the SIG joining policy. This procedure is group specific and may require different controls depending on the nature of the SIG.
For example, in a SIG revolving around political militancy; party membership, background check, or face-to-face interview may be the check that a user is required to pass before being admitted in the group. For a SIG representing a project consortium, it may be sufficient to send the membership or managerial credentials using the consortium email address. SIG members and SIG managers receive membership credentials and managerial credentials to certify their roles. An additional requirement may be that no coalition of less than a set number of SIG members or SIG managers may be able to grant a new credential, either membership or managerial. The existence of credentials presumes that they may also be revoked. In some embodiments, proactive techniques may be used for revocation. Proactive techniques include use of time limits embedded in the credentials. This means the credential will expire after some time or after a number of usages. In other embodiments reactive techniques may be used for revocation of credentials by publishing a revocation handle to an authenticated public site. If a single SIG manager credential falls into an intruder's hands, it will not be a problem, because an intruder would need to get hold of at least the set minimum number of SIG managerial credentials. The loss of a SIG membership credential is somehow thornier than the loss of SIG managerial credentials since SIG membership credentials may be used directly to authenticate oneself to another SIG member or to access content of a SIG member. That is why for the SIG membership credentials, the reactive approach for revocation may be more suitable since such credentials can be revoked immediately after determination of abuse.
Another part concerns the operation of the credentials granted to SIG members inside an OSN during communication between SIG members. If a SIG member eventually wants to add another alleged SIG member to his list of friends through the standard OSN invitation process, or to exchange content or to chat in a secure way, mutual authentication of the two SIG members and encryption of the content for fellow SIG members may be performed by means of granted credentials. Since the SIGs are by definition secret or privacy sensitive, the invitation process is crucial because a legitimate member (the inviter, the invitee or both) does not yet know whom he is interacting with. In some embodiments, the authentication problem may be solved by secret handshakes. Secret handshakes are known as mechanisms designed to prove group membership between fellow group members. Also non-members may not be able to either impersonate group members or to recognize legitimate group members. Besides, the communications between group members may be designed so as to ensure untraceability of any two protocol exchanges. The purpose of these protocols is to model real handshakes between group members in cryptography. Upon handshake between two SIG members, due to the nature of SIGs, users may be reluctant to disclose their affiliation to the SIG even when interacting with another legitimate SIG member. In some embodiments, Oblivious Signature-Based Envelopes (OSBEs) are used to allow two users of an OSN, owning a credential to perform a secret handshake and share a key if they both own the signature of the same message under the same public key.
Let p and q be large prime numbers such that q divides p−1; g is a generator of the subgroup of order q of Zp; and h is a one way hash function in the range {1, . . . , q−1}. Secret sharing allows a set of n parties to possess shares of a secret value, such that any t shares can be used to reconstruct the secret, but any t−1 shares provide no information about the secret. This approach may be used either for “Share”, which means n users to share a random secret without a dealer, so that t are in principle able to reconstruct the secret, or for “Redistribute”, which means t shareholders to compute n′ new, unrelated shares of the same secret, so that t′ new shareholders can reconstruct the secret. In both algorithms the secret is actually never reconstructed, and—since there is no dealer—none of the shareholders knows the secret. is an access structure, wherein a secret is shared among a population of users in the set , with ||=n, so that any subset ε with ||=t can reconstruct the secret.
Share: this algorithm is executed by each Pi belonging to an authorized set ε with cardinality t. Each Pi picks a random
forms a random polynomial fi(u)=ri+ai,1u+ . . . +ai,t−1ut−1 and sends fi (j) mod q to each Pjε/Pi; the (unknown) shared secret is R=rj. Every Piε computes its share of the secret Ri=fj(i); additionally, each Pi broadcasts gr
Redistribute: this algorithm is executed by each Pi belonging to an authorized set ε with cardinality t. The objective is to generate new shares for the new access structure . Each Pi computes a random polynomial formed as fi(u)=Ri+ai,1u+ . . . +ai,t′−1ut′−1, where Ri is the local share of the secret possessed by Pi; each Pi sends fi (j) mod q to each Piε/Pi; then, each Pi can locally generate its new share R′i by Lagrange interpolation;
Using these two algorithms, threshold signatures may be generated. A variant of the Digital Signature Standard (DSS) scheme follows. Let the secret signing key be xεZq and the public key be gx mod p. The scheme has two algorithms:
Sign: given the message m and a random number
compute the signature (w,v) such that w=(ge mod p) mod q and v=wx+h(m)e mod q;
Verify: (w,v) is a valid signature on the message m if
w=(gvh(m)
A threshold signature scheme leverages on the aforementioned secret sharing techniques in order to share the secret key among n parties, thus distributing the signing capabilities over n parties, so that any subset of t can jointly compute a signature, whereas no t−1 can. A threshold version of the aforementioned DSS signature variant follows. The variant assumes that the “Share” algorithm has been executed to create an access structure and that any principal in has a share xi of the unknown private key x. In addition, the public key gx is publicly known. The “Verify” algorithm remains the same, whereas the “Sign” algorithm becomes:
Sign: this algorithm is executed by each Pi belonging to an authorized set ε with cardinality t; each Pi has a local share xi of the secret signing key x. All the Pi engage in the Share algorithm, generating the value ge mod q and a local share ei of the (unknown) random value e; then, each Pi sends the value v1=gexi+h(m)ei mod q to the requester of the signature along with the value ge mod q; the first part of the signature is w=ge mod q; given the set of shares {v1, iε}, the second part of the signature v can be computed through Lagrange interpolation.
The Share algorithm is executed twice, once prior to signing to generate the public key and shares of the private key, and a second time to generate the first part of the signature and shares of its discrete log.
An OSBE scheme allows two parties to share a key if a predefined party among the two possesses a signature on an agreed-upon message. At first, a message m is chosen; the OSBE round happens between a party P1, who might have a signature (w,v) on m and P2. The OSBE round proceeds as follows:
OSBERound: P1 sends w to P2; P2 generates
sends g′ to P1 and computes K2=((gx)wwh(m))r; P1 computes K1=(gr)v; K1=K2, i.e. P1 and P2 will share a key if P1's signature on m was correct.
Below a SIG members handshake and relative challenge-response protocol that occur upon friendship invitation is presented:
U1→U2 w1=ge
U2→U1 gr
U
1 computes K1=((gx)w
U
2 computes K′2=((gx)w
U
2
→U
1
E
k
(N)
U
1
→U
2
E
k
(N+1)
The SIG members handshake presented above is an algorithm that may be executed by two SIG members that want to authenticate one another as members of a SIG. The two members engage in two separate instances of the OSBE round algorithm, acting in turn as both P1 and P2 over the two executions, at the end of which, each party obtains two keys. Thus the two users, U1 holding the signature (w1,v1) and U2 holding the signature (w2,v2) engage in the OSBE round sessions establishing two keys each. The two parties then have to prove to one another the knowledge of both keys simultaneously. They engage in a challenge-response protocol to prove to one another knowledge of the keys computed. Thus U1, upon receiving the last message is already able to tell whether interaction is with a legitimate SIG member.
In some embodiments, the central entity issues a credential after checking the member's compliance with a secret interest group joining policy. In some embodiments the credentials are not issued for lifetime, but a credential revocation is set. In some embodiments, the revocation is set by embedding a time-limit in the credential itself. In another embodiment, the credentials are revoked by publishing a revocation handle to an authenticated public list.
Turning back to
“GET http://www.OSNserver.com/reqs.php”. The message 450 is sent to the OSN server 430 via the proxy 420. The page is fetched as shown by message 455: the string “<a href=“http://www.OSNserver.com/profile.php?id=xyz”> . . . </a> <span class=“msg_content”>ĝe2, ĝr2, M</span>” is contained in the message coming from the OSN server 430 to the proxy server 420 and then the message that the inviter has included in the invitation is decoded by “check authenticity of M, decrypt N=Dk1(M), compute M′=Ek1(N+1)”, which is attempting to accomplish the cryptographic handshake and generate the handshake message M′ to be sent to the inviter. In case of successful handshake, the inviter is proved to be a SIG member. In this case, the html message 460: “<a href=“http://www.OSNserver.com/profile.php?id=xyz\”> . . . —certified SIG member</a> <span class=“msg_content”>—crypto handshake omitted—</span>” that is sent to the invitee 410, is a modified message, so as to notify, that the inviter is a SIG member. If the invitee 410 decides to accept the friendship request, the acceptance message (message 465 containing form parameters “ . . . id=xyz”, the id of the inviter) is not forwarded right away. Message 465 is not forwarded right away; instead the modified by the proxy 420 sends message 467 “POST http://www.OSNserver.com/gigaboxx/endpoint/MessageComposerEndpoint.php” with form parameters “ . . . status=M′&subject=AAAproxy&ids[0]=xyz” that the OSN server receives; M′ is the aforementioned message M′. If the considered OSN uses captcha to prevent automated actions by proxy servers, the OSN server 430 sends captcha request 470 containing “for (;;); {“error”: . . . , “errorSummary”: “Security Check Required” . . . ”; the captcha challenge cannot be solved by the proxy server 420 and hence the proxy server transfers the captcha challenge 470 directly to the invitee 410 to have it solved. Then the proxy server 420 receives message 475: “POST http://www.OSNserver.com/reqs.php” with form parameters “captcha response= . . . &id=xyz” with the solution to the captcha from the invitee 410 and sends a modified response 477:
“POST http://www.OSNserver.com/gigaboxx/endpoint/MessageComposerEndpoint.php” with form parameters “ . . . status=M′&subject=AAAproxy&ids[0]=xyz” to the OSN server. Then after receiving the confirmation of the security check from the OSN server 430 by means of message 480: “200 OK”, the proxy server 420 is able to accept the original friendship request and forwards the response of the OSN server 430 back to the invitee 410 (messages 485, 490, and 495). Message 485: “POST http://www.OSNserver.com/ajax/reqs.php” with form parameters “ . . . id=xyz” is sent by the proxy server 420 to the OSN server 430 to finally notify to the OSN server 430 that the invitee 410 has accepted the friendship request; this is the actual forwarding of message 465 that had previously been delayed by the proxy server 420. The response 490: ““msg”: “You are now friends with <a href=“http://www.OSNserver.com/profile.php?id=xyz”> . . . ”, that is confirmation for the friendship, is received by the proxy server 420 from the OSN server 430 and then transferred to the invitee 410 as message 495 identical to message 490.
Some embodiments of the invention may include the above-described methods being written as one or more software components. These components, and the functionality associated with each, may be used by client, server, distributed, or peer computer systems. These components may be written in a computer language corresponding to one or more programming languages such as, functional, declarative, procedural, object-oriented, lower level languages and the like. They may be linked to other components via various application programming interfaces and then compiled into one complete application for a server or a client. Alternatively, the components maybe implemented in server and client applications. Further, these components may be linked together via various distributed programming protocols. Some example embodiments of the invention may include remote procedure calls being used to implement one or more of these components across a distributed programming environment. For example, a logic level may reside on a first computer system that is remotely located from a second computer system containing an interface level (e.g., a graphical user interface). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The clients can vary in complexity from mobile and handheld devices, to thin clients and on to thick clients or even other servers.
The above-illustrated software components are tangibly stored on a computer readable medium as instructions. The term “computer readable medium” should be taken to include a single medium or multiple media that stores one or more sets of instructions. The term “computer readable medium” should be taken to include any physical article that is capable of undergoing a set of physical changes to physically store, encode, or otherwise carry a set of instructions for execution by a computer system which causes the computer system to perform any of the methods or process steps described, represented, or illustrated herein. Examples of computer-readable media include, but are not limited to: magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer readable instructions include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hard-wired circuitry in place of, or in combination with machine readable software instructions.
A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open DataBase Connectivity (ODBC), produced by an underlying software system (e.g., ERP system), and the like. Data sources may also include a data source where the data is not tangibly stored or otherwise ephemeral such as data streams, broadcast data, and the like. These data sources can include associated data foundations, semantic layers, management systems, security systems and so on.
The above descriptions and illustrations of embodiments of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. These modifications can be made to the invention in light of the above detailed description. Rather, the scope of the invention is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.