FAQ
Hey list,

I was wondering about the options I have in golang to protect the binary.
I have an experimental service which I want to limit the usage per
registration and to limit period of time that it is being used.
I would also want to limit the distribution of the software from machine
to machine and even VM's.
I know it's a complex issue and I do not have any experience with it.

What I am looking for is either library that does that already or
references to ideas and other implementations.
I had in mind that I will might need some special code or special online
API for some of the actions.
Basically the service should be able to access the Internet ALL the time
so I was thinking about fetching some of the runtime from the Internet
but I do not know how it will be possible with Golang.

Thanks,
Eliezer

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

  • Ian Lance Taylor at Nov 20, 2015 at 1:39 pm

    On Fri, Nov 20, 2015 at 12:47 AM, Eliezer Croitoru wrote:
    I was wondering about the options I have in golang to protect the binary.
    I have an experimental service which I want to limit the usage per
    registration and to limit period of time that it is being used.
    I would also want to limit the distribution of the software from machine to
    machine and even VM's.
    I know it's a complex issue and I do not have any experience with it.

    What I am looking for is either library that does that already or references
    to ideas and other implementations.
    I had in mind that I will might need some special code or special online API
    for some of the actions.
    Basically the service should be able to access the Internet ALL the time so
    I was thinking about fetching some of the runtime from the Internet but I do
    not know how it will be possible with Golang.
    There is no current support for linking separate code directly into
    the process, but you could, for example, fetch an executable. Or you
    might be able to use cgo to write a little C wrapper that uses
    dlopen/dlsym. Or you could just contact something on the Internet;
    there's no effective difference. In fact, it's really simpler and,
    for your customers, less frustrating, these days to provide your
    service as an Internet API, in which case it's fairly easy to impose
    whatever controls you like. Just my personal opinion, of
    course--there is nothing in Go that prohibits you from taking whatever
    approach you prefer.

    Ian

    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.
  • Eliezer Croitoru at Nov 22, 2015 at 10:33 pm
    Thanks,

    What I have decided is to use SSL with a very high encryption that will
    be used with a pinned SSL certificate for now.
    It will work and also.. since the service I wrote is no a one you will
    want traveling bare on the Internet I will only force the users to use
    the software from couple IP addresses.

    Eliezer
    On 20/11/2015 15:39, Ian Lance Taylor wrote:
    There is no current support for linking separate code directly into
    the process, but you could, for example, fetch an executable. Or you
    might be able to use cgo to write a little C wrapper that uses
    dlopen/dlsym. Or you could just contact something on the Internet;
    there's no effective difference. In fact, it's really simpler and,
    for your customers, less frustrating, these days to provide your
    service as an Internet API, in which case it's fairly easy to impose
    whatever controls you like. Just my personal opinion, of
    course--there is nothing in Go that prohibits you from taking whatever
    approach you prefer.

    Ian
    --
    You received this message because you are subscribed to the Google Groups "golang-nuts" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/d/optout.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-nuts @
categoriesgo
postedNov 20, '15 at 8:47a
activeNov 22, '15 at 10:33p
posts3
users2
websitegolang.org

People

Translate

site design / logo © 2021 Grokbase