Peter Firmstone wrote:
Exactly, you cannot provide proxies in the wild without some kind of verification. Thats why i keep returning to things analogous to tunnels/VPNs etc. Because i want a TLS session end to end.
IPSec (VPN) packets cannot be mangled, it breaks the checksum, so the IPSec packet is wrapped in another packet that gets mangled, this provides the encryption end to end, unfortunately it requires low level Kernel support as it's below the TCP/IP Layer, so it isn't available without network admin intervention.

We have to be careful to avoid a man in the middle with our Relay, see below I have some more thoughts.

By providing a transparent packet relay, we can still provide for an end-to-end TLS session, implemented with the javax.net.ssl.SSLEngine.{wrap,unwrap} functions. And conceptually i still see this as tunneled JERI session. And because the session is running end-to-end, the change of a MITM is equivalent to other solutions. The javax.net.ssl.SSLSession. getPeerPrincipal() provides us with the Principals needed for our JERI security.

The JERI Relay is only a public reachable bi-directional mailbox for JERI packets/messages.

Perhaps JR can provide these functions:
  2. Keeps a line of communication open to the private Service
     utilising a heartbeat

This is not needed, a connection to a JR is on a polling basis, initiated from the service (acting as a client from an RPC perspective). (think XMPP, XEP-0124 BOSH).

  3. Read's ByteBuffer's from a Socket Channel, and write it's content
     to another Socket Channel without decrypting it.  If it isn't
     visible to the Relay and the Server and client can verify the JRS
     code, then there is potential there to trust the Relay.

There is no trust of the Relay. End to end TLS session is all the security we need. If you want to relay my service, be my guest. You cannot inspect, you cannot intercept.

  4. SSL Handshake: Not sure about how the handshake process from
     actual client to private service will handle the redirect.

There is no redirect. The test used in HTTPS where the CN is compared with the hostname is outside the scope of the TLS protocol IMHO.

Perhaps the BasicJeriExporter can inspect the IP Address, and if it lies within a private range, check a system property to determine if JR Services are to be utilised?

Can i reserve judgement on that? I cannot oversee the effect right now.

JR could be looked up just like any other service, it only executes local code, doesn't need to know the details but can be trusted enough by the Service and client not to peek at the details.

Indeed, only local code, and it may peek at the stream just like any other router.

JR probably needs to be identified by a public domain certificate,
although this is a weak defence (DNS cache poisoning), it adds
another layer.

No, no, no. I can not cooporate with an implementation where we include the requirement that one MUST use a domain certificate. We want to free ourselfs of the network admin, but chain ourselfs to a costly certificate authority?

I want to spray the internet with certificates, and cannot find the money to fund that!

Gr. Sim

Apache river: The Data is the Code! (and vice-versa)

--
QCG, Software voor het MKB, 071-5890970, http://www.qcg.nl
Quality Consultancy Group b.v., Leiderdorp, Kvk Leiden: 28088397

Reply via email to