Using Perimeter Detect: Zymkey 4

@iohzrd
Self destruct mode only works after the lock tab has been cut.

Hi again,

I have read this in [Power Quality] topic:

In the event of poor power quality the Zymkey instantaneosly shuts down access to the security API and communication channels and retreats into sleep mode (no sleep mode on Zymkey 4i lite). In sleep mode the Zymkey continues to monitor the quality of the 5V power rail and when conditions have stabilized it reactivates the security API and communicaiton channels.

I have many questions about this:

  • is the power quality you are talking about is ONLY the 5V from the Raspberry, or does it include the coin cell of the zymkey?
  • what happens, in locked mode, if we remove the cell coin: is the zymkey will interpret this like a potential attack and will delete all these keys (if the good flag was set before to cut the PCB) during the next starting ? I mean, is the zymkey able to know when he boots than the coin cell was removed before, or it will juste start normally after.

Thx!

Hi
do you have any answer to give me for my last question?
Thx by advance!

  • Power quality monitors only +5V from the Raspberry Pi.
  • With Zymkey 4, the coin cell removal is not interpretted as an attack, so keys will not be deleted.
  • With Zymkey 5, the coin cell removal can be interpretted as an attack, and the response policy is set by the user prior to locking. Zymkey 5 is available on pre-order here:

ok thx! How the zymkey 5 will “work” to detect a coin cell removal during the next boot?

We do not disclose the details of “how” it works, but it will work :wink:

On the top of this guide it mentions Application Examples & Available Dev Kits as “Coming soon”. In a post on Oct '17 it was also said that a general use case app would be provided the next week. Are these items publicly available anywhere and if not, is there any plan to add them for the community? I’m looking for a step by step guide for taking a Zymkey 4i and Protokit4 and showing how to put them together with an example circuit using the perimeter-detect features.

Also it would be useful if someone answered the questions on this post:

Jason, thanks for pointing out that it would be helpful to have a a step-by-step guide explaining how to use perimter detect with protokit. We will take a look at this and get something posted by 2/11, and also repond to your specific questions. Thx

Thank you for the quick reply! I look forward to the post!

Jason,

Here are answers to Sept '18 questions you referenced:

Greetings! Were you able to look at it?

Thank you!

@jason ,

We have added some examples of how to use perimeter detect with Protokit 4 - we will add more examples shortly:

Hi,
I’m currently working on a project involving two zymkeys (4i) + two Raspberry Pi and I would like to use the perimeter detection feature.
I don’t need the Protokit 5 (https://store.zymbit.com/products/protokit-5) but I would be very interedted in buying the small adapter that is shown on the following page (intented for the legacy Protokit 4):
https://community.zymbit.com/t/perimeter-detect-application-examples/426
It’s meant to to connect the microUSB to standard (easier to use) connector (as the one on the ProtoKit board).
The link provided to by some is no more valid. :cry:
Do you still sell these adapters?
Thanks in advance!

@squitel - the link is now fixed. The adapter is available.

Hi,

I’m working on a project and I need to use the perimeter detection. I’m using the python library, but I doesn’t understand how to use the library.
I made a script to display the information and it’s works perfectly. (Here’s the script)

import zymkey
import time

zymkey.client.clear_perimeter_detect_info()
while True:
    print(zymkey.client.get_perimeter_detect_info())
    time.sleep(1)

But when I tried to set event action and retreive this event, the function wait_for_perimeter_event() always return None. Here’s the script I made :

import zymkey
import time

print(zymkey.client.clear_perimeter_detect_info())
print(zymkey.client.set_perimeter_event_actions(1, action_notify=True, action_self_destruct=False))
print(zymkey.client.set_perimeter_event_actions(0, action_notify=True, action_self_destruct=False))
print(zymkey.client.clear_perimeter_detect_info())
while True:
    res = zymkey.client.wait_for_perimeter_event()
    print(res)
    if not res:
        print(zymkey.client.get_perimeter_detect_info())
        zymkey.client.clear_perimeter_detect_info()
    time.sleep(1)

Can you tell me what I did wrong ?
Thanks in advance !

@Finbarr_of_Zymbit - Thank you very much!

Hello,
When the Zymkey is in DEVELOPER MODE (temporary binding) AND Perimeter Event Actions set to “ “selfdestruct”.
Will the zymkey destroy all it’s key material when a detection event is triggered ?
Or does the zelfdestruct only work when de lock tab is cut ?

@r2d2

If the tab is NOT cut, and ‘selfdestruct’ is set, then the key material will NOT be destroyed.
If the tab IS cut, and ‘selfdestruct’ is set, then the key material will be destroyed.

Ok - that is clear.

and when the tab is cut with ‘selfdestruct’ set there is no way , even when logged on ‘legally’ to the Rpi,
to alter the settings from ‘selfdestruct’ to back ‘do nothing’ ( might be usefull in some cases).

Am I correct ?

@r2d2 You are correct - “self destruct” means “self destruct”. No back doors to unself destruct.