IOS Yubikey support on App77 Pwsafe

I really like app77 Pwsafe, and was excited when i heard that Iphones would have NFC and Yubikey support.

I had hoped this would permit me to use my yubikeys with my iphone.

Their website said it was still not possible, but i was hoping that was just out of date. So, i emailed them.

http://pwsafe.info/yubikey/

They returned a very nice response, and thought folks would appreciate seeing it.

Hi Marty,

The NFC support of the iPhone is read only, meaning it can read a one-type password from the key. In this mode, the password/key pair can only be used as an authentication mechanism. If pwSafe would only authenticate you, we would have access to your data and would be gating access to it using your password and key to confirm your identify.

Instead, on pwSafe, the password is used to encrypt your data. This means the password cannot vary, otherwise the data would not decrypt correctly. To use the YubiKey, pwSafe on the Mac and Password Safe on Windows send the password gathered from the user to the key and then the YubiKey cryptographically combines it securely with another password stored inside the key itself that cannot be extracted. This is much more secure, because it means we can’t see your data or even comply to a court order telling us to disclose it. Your data remains encrypted and only you can read it, because decryption is only done in-device.

Long story short, pwSafe needs read/write support via NFC to be able to use the YubiKey. I hope this eventually comes to iOS. iOS 12, so far, doesn’t have it.

Best regards,

Solon B.
App77.com

Fenix 5 iphone bluetooth continously disconnecting

I recently acquired a Garmin Fenix 5. In general, its a lovely device.

However, i found noticed the notifications were coming through to my phone very intermittently.

I enabled notifications on the watch, so that it vibrates and notifies when it looses bluetooth connectivity to the phone.

What i discovered, was it was connecting for around a minute, then disconnecting for a minute over and over and over.

The iphone bluetooth connectivity confirmed a similar thing.

I wrote to Garmin about it, and their response was

Dear Martin,

The issue you are referring to is something that we are aware of and are working hard towards a resolution, however, we do not have a timeframe for this to be completed as yet.

I have added you to the following case so that you will be notified once this issue has been resolved.

Case #: 1394354

I’m sorry for the inconvenience.

Kind regards,

Andrew

Garmin Europe

I cant find any mention of this case on the internet or in the Garmin forums.

However, the Garmin forums also are very broken now, which could be a reason.

Anyway, i post this here. Perhaps other people who have been given same case or issue can group together.

There were reports on the Garmin forums of the issue starting with IOS11. However, i never had the watch at this time, so i can’t confirm if that was a trigger.

I suspect i will give Garmin a month for more info, or i will return it.

Fenix 5 @ 6.00
Iphone 6 11.1.2

UPDATE 1. 2017-11-29. Received new email

Dear Martin,

First of all, please accept our apologies for not answering your email in the time we quoted on our website. Due to an unforeseeable high volume of emails and calls we’ve received this has led to a backlog, which we’ve been working hard to restore to our usual service levels.

Thank you for your query, I have provided answers for yourself below.

Regarding your first query please use this link below with information on the investigation and issue:

iOS 11 Bluetooth Connection Issues With Garmin Wearable Devices

I hope this should also answer your second query, all information can be found at the above FAQ link.

I completely understand what you are saying, sadly we do not currently have a time frame available for you. Although I can assure you that this is being looked into as we speak, please use the case reference provided by Andrew previously if you require an update. Once the issue is resolved we will notify you via email. As a workaround for now I would strongly recommend connecting the device to your computer to sync.

Getting pam-krb5 working with cifs and autofs

The recent update to ubuntu 17.04 broke everything about my setup, so i had to spend a lot of time understanding what changed so i could fix it.

pam-krb5 uses by default a slightly different path to the default for its credential cache.

/tmp/krb5cc_UID_RANDOM where UID is the user's UID and RANDOM is six randomly-chosen letters

cifs-utils has a helper function called cifs.upcall. It has had many changes over the last year. Notably 6.6 changed the way that correct credential caches was found.

Prior to 6.5, it would search for all cache files in /tmp/krb5cc* and see if the owner matched the requestor.

We can see this behaviour here:

Apr  9 17:33:09 rif cifs.upcall: key description: cifs.spnego;0;0;39010000;ver=0x2;host=server;ip4=192.168.50.2;sec=krb5;uid=0x0;creduid=0x44c;user=root;pid=0x8bb
Apr  9 17:33:09 rif cifs.upcall: ver=2
Apr  9 17:33:09 rif cifs.upcall: host=server
Apr  9 17:33:09 rif cifs.upcall: ip=192.168.50.2
Apr  9 17:33:09 rif cifs.upcall: sec=1
Apr  9 17:33:09 rif cifs.upcall: uid=0
Apr  9 17:33:09 rif cifs.upcall: creduid=1100
Apr  9 17:33:09 rif cifs.upcall: user=root
Apr  9 17:33:09 rif cifs.upcall: pid=2235
Apr  9 17:33:09 rif cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_1100_drGvxJ
Apr  9 17:33:09 rif cifs.upcall: find_krb5_cc: FILE:/tmp/krb5cc_1100_drGvxJ is not a valid credcache.
Apr  9 17:33:09 rif cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_0
Apr  9 17:33:09 rif cifs.upcall: find_krb5_cc: FILE:/tmp/krb5cc_0 is valid ccache
Apr  9 17:33:09 rif cifs.upcall: handle_krb5_mech: getting service ticket for grunt.variar.net
Apr  9 17:33:09 rif cifs.upcall: handle_krb5_mech: obtained service ticket
Apr  9 17:33:09 rif cifs.upcall: Exit status 0

After 6.6 it requires that the credential cache location be hard coded in the krb5.conf file.

6.7 additionally had an extra feature whereby it could find the KRB5CCNAME environment variable from the other session.

Once its working it should look something like:

Apr 17 22:27:38 rif cifs.upcall: key description: cifs.spnego;0;0;39010000;ver=0x2;host=server;ip4=192.168.50.2;sec=krb5;ui
d=0x44c;creduid=0x44c;user=root;pid=0x3584
Apr 17 22:27:38 rif cifs.upcall: ver=2
Apr 17 22:27:38 rif cifs.upcall: host=server
Apr 17 22:27:38 rif cifs.upcall: ip=192.168.50.2
Apr 17 22:27:38 rif cifs.upcall: sec=1
Apr 17 22:27:38 rif cifs.upcall: uid=1100
Apr 17 22:27:38 rif cifs.upcall: creduid=1100
Apr 17 22:27:38 rif cifs.upcall: user=root
Apr 17 22:27:38 rif cifs.upcall: pid=13700
Apr 17 22:27:38 rif cifs.upcall: get_cachename_from_process_env: pathname=/proc/13700/environ
Apr 17 22:27:38 rif cifs.upcall: get_existing_cc: default ccache is FILE:/tmp/krb5cc_1100
Apr 17 22:27:38 rif cifs.upcall: handle_krb5_mech: getting service ticket for grunt.variar.net
Apr 17 22:27:38 rif cifs.upcall: handle_krb5_mech: obtained service ticket
Apr 17 22:27:38 rif cifs.upcall: Exit status 0

The trick to getting it working was in the krb5.conf. I have to configure both kerberos and pam-krb5 to use the same file. My end config looks like the following:

[libdefaults]
default_realm = MYREALM.NET
forwardable = true
proxiable = true
default_ccache_name = FILE:/tmp/krb5cc_%{euid}

[realms]
MYREALM.NET = {
kdc = kdc.myrealm.net
admin_server = kdc.myrealm.net
}

[appdefaults]
pam = {
ccache = FILE:/tmp/krb5cc_%u
}

Critical to the above working is the creduid. This variable tells mount and cifs.upcall on whose behalf should the operation be made.

So, when i login via pam, or manually do kinit, my credential cache is always in the same place:

klist
Ticket cache: FILE:/tmp/krb5cc_1100
Default principal: mbarlow@SERVER

Valid starting     Expires            Service principal
17/04/17 22:46:32  18/04/17 22:46:32  krbtgt/MYREALM.NET@MYREALM.NET

My autofs mount looks like the following:

/etc/auto.master.d/auto.server:
/mnt/automount /etc/auto.servermaps

With the actual maps looking like:

/etc/auto.servermaps:
photos -fstype=cifs,sec=krb5,cruid=$USER,uid=$USER ://server/share