472,958 Members | 2,573 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,958 software developers and data experts.

Securely distributing python source code as an application?

Hi All,

I'll shortly be distributing a number of python applications that
use proprietary. The software is part of a much larger system and it
will need to be distributed securely. How can i achieve this?

Regards,
Ken
Dec 7 '07 #1
5 2647
Message should have read:
Hi All,

I'll shortly be distributing a number of python applications that
use proprietary source code. The software is part of a much larger
system and it
will need to be distributed securely. How can i achieve this?

Regards,
Ken
Dec 7 '07 #2
On 7 Des, 23:37, xkenneth <xkenn...@gmail.comwrote:
I'll shortly be distributing a number of python applications that
use proprietary. The software is part of a much larger system and it
will need to be distributed securely. How can i achieve this?
If you provide the application as a web service there is no need to
distribute anything all. That is what Google does.

You don't have to distribute your Python source code. You can
distribute Python bytecode (.pyc files).

Python bytecode can be decompiled, but the source can not be
retrieved. The same is true for Java bytecode, .NET assemblies, even
native executables and library files. Reverse engineering not just an
issue for programs written in Python.

You can oobfuscate the bytecode further. You can build your own Python
runtime and scramble the opcodes. You can device a system that
encrypts and decrypts the bytecode on the fly. But there is no
foolproof way of doing this. Anything you do can be cracked by an
expert. But you can make it very difficult to decompile the bytecode.

You can watermark the bytecode sent to each customer. It will not
prevent reverse engineering, but you will know who is sharing it on
BitTorrent.

You can use a license manager like Macrovision's flexlm. If you build
your own Python runtime from source and scramble the opcodes, you
would have a rather safe licence manager if it's linked with the
flexlm client library.

There is no universal answer to this question. It depends on your
assessment of the risks and the measurements you are willing and
capable of taking. How malicious do you expect your customers to be?
How technologically competent are they? How paranoid are you? Etc.



Dec 8 '07 #3
xkenneth wrote:
Message should have read:
Hi All,

I'll shortly be distributing a number of python applications that
use proprietary source code. The software is part of a much larger
system and it
will need to be distributed securely. How can i achieve this?
You need to define what you mean by "securely" by specifying what types
of threat you wish to protect against.

Tim C
Dec 8 '07 #4
xkenneth wrote:
Hi All,

I'll shortly be distributing a number of python applications that
use proprietary. The software is part of a much larger system and it
will need to be distributed securely. How can i achieve this?

Regards,
Ken
We have partnered with developers to use our product WebSafe to provide secure
software distribution (among other uses for the service). Take a look at:
http://www.websafe.com. We have a special program for developers that allows
you to put our API inside your application as well.

Larry Bates
Vice President/CTO
WebSafe, Inc.
Dec 8 '07 #5
xkenneth <xk******@gmail.comwrites:
I'll shortly be distributing a number of python applications that
use proprietary.
That's unfortunate. Hopefully it's not too late to avoid restricting
yourself and your users in this way.
The software is part of a much larger system and it will need to be
distributed securely. How can i achieve this?
That depends partly on what "distributed securely" means for you. Can
you elaborate? In particular, what threat model are you seeking
security from?

--
\ "If I ever get real rich, I hope I'm not real mean to poor |
`\ people, like I am now." -- Jack Handey |
_o__) |
Ben Finney
Dec 11 '07 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Chris | last post by:
I would like to be able to "package-up" a Python application on my development platform (Linux) so that it can be easily distributed and installed on Windows and UNIX e.g. HP-UX, AIX etc. I'd...
14
by: Phillip Mills | last post by:
I've learned enough of the Python language to be mildly dangerous and have used it in a few personal projects. All my development of commercial (or production) products over the past dozen years...
5
by: Jiri Barton | last post by:
Hi, I'd like to be able to distribute some python modules of my system (plugins) without the source. So far, I have done this by including only the *.pyc files. However, I have recently found...
6
by: Jason | last post by:
A non-python programming friend of mine has said that any programs made with Python must be distributed with, or an alternative link, to the source of the program. Is this true?
5
by: Guadala Harry | last post by:
What are my options for *securely* storing/retrieving the ID and password used by an ASP.NET application for accessing a SQL Server (using SQL Server authentication)? Please note that this ID and...
9
by: alf | last post by:
Hi, I have a small app which consist of a few .py files. Is there any way to distribute it in jar like fashion as a single file I can just run python on. I obviously look for platform...
1
by: PurpleServerMonkey | last post by:
Working on a rather large open source python application that I want to release for Linux and BSD and was wondering what methods others are using to distribute large and complex applications. ...
9
by: eliben | last post by:
Hello, I'm getting into Python now after years of Perl, and as part of my research I must understand how to do some common tasks I need. I have a bunch of Windows PCs at work to which I want...
5
by: Joe Strout | last post by:
We have a client who's paranoid about distributing the Python source to his commercial app. Is there some way I can distribute and use just the .pyc files, so as to not give away the source? ...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
4
NeoPa
by: NeoPa | last post by:
Hello everyone. I find myself stuck trying to find the VBA way to get Access to create a PDF of the currently-selected (and open) object (Form or Report). I know it can be done by selecting :...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 1 Nov 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM) Please note that the UK and Europe revert to winter time on...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...
0
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.