Locking transactions
Mike or Penny Novack
stepbystepfarm at mtdata.com
Wed Mar 11 08:44:44 EDT 2009
>It is not easy to make balanced changes to previous transaction details
>in such systems without trace as long as previous periods are locked in
>the user interface. That is why authorities (in probably all countries)
>trust them.
>
>Of course programmers can go into the database (or xml file), but to
>make such changes balanced and without affecting current period, would
>be quite hard. One could not claim that such changes was unintentional,
>either.
>
>
Overestimating the difficulty. You need to consider NOT just
"programmers going into the database" to make changes but ordinary users
going in using "version Q" of the application (a special version some
programmer has made for them that allows overriding the read only
feature). That requires only one rogue programmer for a whole bunch of
cheating end users.
I understand what you are saying about the single file. But the burning
(and then sequestering) of copies of this file post closing does provide
a means of guaranteeing no changes after. A "compare all transactions up
to date X and report on any differences" is a simply routine.
>The best solution, as I see it now, would be a "Set Read Only" menu item
>separate from "Close Book". The input dialog will only ask for a date.
>Then the users can turn transactions read only before the given date as
>often as they need and want to, every day if they wish. I would do it
>once a year after last year's accounts are finalized, have come back
>from the auditor, and ready to be sent off to the tax authority. Then I
>would set everything before Dec 31 as read only. (In the mean time, I
>would have continued with the new year's transactions, in the same
>file).
>
>Birger
>
>
That doesn't guarantee no changes. The user who wants to reserve
cheating capability simply makes a copy (backup) of the file immediately
before setting that read only date. If they decide to make changes, make
them in this copy and do some renames. No programmers involved.
I always took a very dim view of "protection by ignorance". The fact
that 99% of end users too ignorant of the possibilities does not make
for any protection. Those who wish to do what they shouldn't, will make
it their business to learn how to get around. That being said, I
remember only too well that it took me two years to get users disallowed
to BLP tape labels in the shop where I used to work (two years after I
showed the tech support folks that I could bypass security on tapes by
bypassing label processing and thus not have the system notice that the
"actual tape volume" I was ordering mounted had a different name than
the name I said it had --- I ask for a name to which I have security
rights, but specify a volume with a name I'm not allowed to access, but
BLP so the system doesn't notice the discrepancy). The initial response
being "But Mike, we're no worried about YOU. Who else could figure that
out?" (my point being "whoever wanted to break security would read the
manuals too").
So what I am saying here is that "application locking" provides only a
FALSE security. If we need our system to be able to provide proof "not
modified" then we need to provide a mechanism that actually does that,
not one that "does that as long as the user doesn't want to get around
it". We are at a slight disadvantage. Perhaps the "proprietary software"
folks are able to argue "users have to use our one and only version of
the application" and so locking of the sort proposed adequate in their
case. I'm saying that in our "open software" situation we have to assume
that an alternative version of the program that would allow end users to
easily bypass this lock could exist.
Michael D Novack
More information about the gnucash-user
mailing list