Ik ben momenteen een beetje aan het stoeien met de default CORBA implementatie in Java (1.4.2). Aan de server-side wordt de standaard ORB die bij java zit gebruikt en het serverproces is zelf geschreven in java. Als clients gebruik ik zowel een java-client als een c++ client.
Nu wil ik een client een eigen privé-remote object geven. De meest voor de hand liggende manier is om een well known remote object te maken die een methode heeft dat dergelijke privé remote objects returned. Zolang de clients de IOR niet uitwisselen, dan blijft dat wel een privé object. Alleen is er een probleem: in hoeverre is een IOR te raden? Zijn identifiers voor objecten een sequentieel nummer zodat je gewoon wat kan proberen, of zit er een random deel in verwerkt. En zo ja, zijn er dan voorzieningen tegen brute forcers? Allemaal vragen waarop ik geen antwoord kan vinden.
Toch lijkt me dat een dergelijke situatie wel vaker voorkomt. Als ik geen aanname kan doen op het gokken van IORs, dan is het eerst volgende wat ik kan doen het bekijken van het security model in CORBA. Want in principe is het probleem ook opgelost als je een client kan authenticeren en dan via een access control list de toegang tot de prive objecten regelt. Alleen heb ik hiermee het probleem dat ik niets maar dan ook niets van security level 1 en 2 in de corba packages van java kan terugvinden. Ik begin het vermoeden te krijgen dat corba security niet in de standaard corba implementatie zit?
In principe heb ik wel een sluitende oplossing voor het probleem. Ik zorg zelf voor een secret token en voeg deze als extra parameter toe aan elke methode die ik wil aanroepen. Dan voeg ik aan elke methode een check toe op deze parameter. Code duplicatie server-side zou ik wel kunnen voorkomen door de checks via AspectJ in te voegen, maar iedereen is vast wel met me eens dat dit geen mooie oplossing is en er vast wel een betere manier moet zijn.
Heeft iemand een idee? Of verwijzingen naar bepaalde literatuur? Ik moet erbij zeggen dat ik zelf weinig soeps online kan vinden. Of ik eindig in de corba specificatie waar ik geen wijs uit kan worden, of ik kom op een of ander site-je waarin een alineatje text staat, of ik kom op een site van een commerciele orb, wat zo wie zo afwijkt van wat in java zit. In de Java Corba tutorial wordt geen woord gesproken over security.
Nu wil ik een client een eigen privé-remote object geven. De meest voor de hand liggende manier is om een well known remote object te maken die een methode heeft dat dergelijke privé remote objects returned. Zolang de clients de IOR niet uitwisselen, dan blijft dat wel een privé object. Alleen is er een probleem: in hoeverre is een IOR te raden? Zijn identifiers voor objecten een sequentieel nummer zodat je gewoon wat kan proberen, of zit er een random deel in verwerkt. En zo ja, zijn er dan voorzieningen tegen brute forcers? Allemaal vragen waarop ik geen antwoord kan vinden.
Toch lijkt me dat een dergelijke situatie wel vaker voorkomt. Als ik geen aanname kan doen op het gokken van IORs, dan is het eerst volgende wat ik kan doen het bekijken van het security model in CORBA. Want in principe is het probleem ook opgelost als je een client kan authenticeren en dan via een access control list de toegang tot de prive objecten regelt. Alleen heb ik hiermee het probleem dat ik niets maar dan ook niets van security level 1 en 2 in de corba packages van java kan terugvinden. Ik begin het vermoeden te krijgen dat corba security niet in de standaard corba implementatie zit?
In principe heb ik wel een sluitende oplossing voor het probleem. Ik zorg zelf voor een secret token en voeg deze als extra parameter toe aan elke methode die ik wil aanroepen. Dan voeg ik aan elke methode een check toe op deze parameter. Code duplicatie server-side zou ik wel kunnen voorkomen door de checks via AspectJ in te voegen, maar iedereen is vast wel met me eens dat dit geen mooie oplossing is en er vast wel een betere manier moet zijn.
Heeft iemand een idee? Of verwijzingen naar bepaalde literatuur? Ik moet erbij zeggen dat ik zelf weinig soeps online kan vinden. Of ik eindig in de corba specificatie waar ik geen wijs uit kan worden, of ik kom op een of ander site-je waarin een alineatje text staat, of ik kom op een site van een commerciele orb, wat zo wie zo afwijkt van wat in java zit. In de Java Corba tutorial wordt geen woord gesproken over security.
putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]