FIDO UAF Android客户端

fidouafclient  github地址: https://github.com/eBay/UAF/tree/master/fidouafclient

FIDO UAF Client是可以在Android操作的应用程序。它是一个基于基于Gradle构建系统的项目,build.gradle的特点是运行21(5.0 Lolipop)而使用GSON, Commons Codec与以前的库相同,但使用SpongyCastle则不同。虽然前面使用过BouncyCastle,但android使用的是SpongyCastle,但据我所知,由于兼容性问题,android不能使用BouncyCastle。

/fidouafclient/build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "org.ebayopensource.fidouafclient"
        minSdkVersion 21
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.google.code.gson:gson:2.3.1'
    compile files('libs/commons-codec-1.10.jar')
    compile files('libs/sc-light-jdk15on-1.47.0.2.jar')
    compile files('libs/scprov-jdk15on-1.47.0.3.jar')
}

包装的结构如下。驱动部分是org.ebayopensource.fidouafclient.util中的MainActivity。

从res/layout可以看出有5个布局。以下是每个子包的说明

以下是每个子包的说明。

“fido.uaf” 包类似于UAF Core包中的包,但有一些额外的客户端处理。它是移动端的核心软件包。

“client”包中,有Assertion构建器,Request处理程序等。在“client.op”包中,实际上有一个处理命令的类(Auth,Reg,Dereg)。
“msg”包中,除了UAF Core中的msg类之外,还实现了RP客户端消息类。
“tlv”包被标记为UAF Core,您可以在此包中看到以下内容,“msm”中的“asm”,“asm.obj”,“client”包

该应用程序不仅仅充当RP客户端,它实际上同时具有FIDO客户端,Authenticator和ASM角色。这意味着您的手机无需FIDO客户端,身份验证器或ASM即可运行。事实上,测试可以在没有内置FIDO客户端和验证器的情况下完成,如果你有内置的FIDO客户端和内置的FIDO客户端可供选择。(身份验证;验证方法)也同样如此。

为了便于理解,在三星GALAXY S6的情况下,FIDO客户端和身份验证器都内置在三星。这就是三星Fay。在这里,三星费用作为RP客户端。

“fidouafclient”包包含指向RP客户端外部部分的直接链接。
“curl”包是HTTPRequest和HTTPResponse的异步实现。
“op”包包含RP客户端的FIDO命令(Auth,Reg,Dereg)。
“util”包中包含提供各种设置(如服务器地址)和与Android系统相关的资源的类。
以下是每项活动的布局。

一个MainActivity。输入要注册的用户的名称,然后按Reg按钮。

一个FidoUAFActivity。按“同意”按钮执行特定命令(Auth,Reg,Dereg)。

一个AuthenticatedActivity。执行验证的部分。

一个RegisteredActivity。可以看到用户注册时可以执行特定命令。

设置布局。端点是URL。

 

此演示客户端最重要的功能是RP客户端,FIDO客户端和身份验证器是混合的。这似乎是因为它是为测试目的而制作的,但总的来说,一切都是分开的原则。还应注意,诸如证明证书之类的部分是硬编码的。

我们查看了安卓系统的FIDO RP Client作为参考,可以最小驱动版本为5.0的理由是,就像在这里可以确认的那样,就算没有指纹识别器,android也可以通过自主支援的方法进行本人确认,我对这一部分有点怀疑。原来本人确认过程是在Authenticator (Authenticator)进行的,但从目前的源程序来看,需要在RP客户端进行处理。这样就会脱离FIDO的规格,我不知道我是不是理解错了。

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐