SSL/концептуальные аспекты удаленного совместного использования объекта через Python DataProcess Object

Здравствуйте, жители стекового пространства! Я хочу изучить/поработать над обслуживанием объектов с помощью метода удаленного общего объекта

class ContainerFS():
    #contains stuffs, has its methods
    def sync(self):
         pass
    def dump(self):
         stuff()

class DataManager(BaseManager):
    def get_data(self):
        pass


class DataProcess(Process):
    def __init__(self, serverobj, authkey, public=False, port=11111):
        Process.__init__(self)
        self.authkey = authkey
        self.Obj = serverobj
        self.daemon = True
        self.port = port
        self.addr = '127.0.0.1'
        if public:
            self.addr = '0.0.0.0'

    def run(self):
        DataManager.register('get_data',
                             callable=lambda: self.Obj)
        manager = DataManager(
            address=(self.addr, self.port),
            authkey=self.authkey)

        srv = datamgr.get_server()
        srv.serve_forever()

Класс ContainerFS задается в качестве аргумента для serverobj. Затем он передает данные клиентам через сокет.

клиент пока работает так:

class DataClient(object):
    def __init__(self):
        pass

    def create(self, authkey):
        try:
            DataManager.register('get_data')
            self.m = DataManager(address=('127.0.0.1', 11111), authkey=authkey)
            return True
        except:
            return False

    def connect(self):
        try:
            self.m.connect()
            q = self.m.get_data()
            return q
        except:
            return False

Учитывая, что можно совместно использовать произвольный объект Python и таким образом получать доступ к его методам, может быть МНОГО интересных вещей, исходящих из плодородной почвы SO. Так что, если у вас есть хорошие идеи, пожалуйста, смешайте их.

Я попытался создать подкласс SocketServer и заставить его обрабатывать SSL таким образом, но мне не удалось это сделать. Как я могу использовать ленивый SSL с этой штукой? Если SSL не вариант, может ли использование магии socks для переадресации портов ssh быть достаточной альтернативой?

Могу ли я утверждать, что вызов метода serverobj каким-то образом действителен. Если да, куда мне обратиться: DataProcess, DataManager или serverobj?

Все еще занимаюсь этим, толком не разбираясь. Например, как я могу использовать этот DataManager, когда он пуст?

Я чувствую, что раскрытие объекта python таким образом действительно небезопасно. Так что мне следует воздержаться от создания собственной самодельной «безопасности». Мне нравится утверждать Ложь в своих мыслях для проверки путем уточнения. Вот где я надеюсь, что вы придете.

Если я неясен или, кажется, не вижу смысла, пожалуйста, укажите это. Я еще новичок во всем..


person krysopath    schedule 12.02.2016    source источник
comment
Я думаю, что этот вопрос является большой проблемой. Часть его посвящена программированию (можно спросить об этом здесь). С другой стороны, большая часть вашего вопроса связана с протоколами для безопасного обмена вашими объектами через TCP и с тем, насколько безопасен другой компьютер для слепого приема этого объекта (это не правильный обмен стеками). Я думаю, вам следует немного больше разделить свои вопросы, а часть о безопасности разместить на Security StackExchange. В любом случае, это УДИВИТЕЛЬНО видеть такие посты, действительно интересные и хорошо объясненные.   -  person Mr. E    schedule 12.02.2016
comment
хорошо, большое спасибо за ваши информативные слова. Как пассивный получатель, я уже получил много от SO. Так что я сейчас участвую. Я буду .split(n) и перефразирую остаток здесь... n может быть 3   -  person krysopath    schedule 13.02.2016