また、OpenIDを利用したログイン認証の仕組みとして、最新のOpenIDの規格であるOpenID AB規格に対応しました。今までのOpenID機能では、URLが長すぎるなどの問題から、携帯電話で扱うことができませんでした。今後、オープンガバメントラボでは、携帯電話も視野に入れたサービス開発を行い、いつでもどこでも国民の皆様に利用していただけるようにサービスの強化を図ってまいります。OpenID AB規格については、詳しくは下記をご覧ください。
(参考) ABC of OpenID/AB
http://bitbucket.org/openid/ab/wiki/Home
Hi Ben, Let me restate where Breno and I differ as I see it. Breno contends that mapping from http: identifiers to https: identifiers is the same as mapping between PPID type identifiers given to different realms. We agree that the http: to https: mapping can be done publicly and has no privacy implications, and requires no direct involvement of the user. Where we differ is that I contend mapping between PPID may have privacy implications that need to be considered, and perhaps taken into account in the technical solution. It is true that Google forces the user to disclose there email to any site that requests it otherwise they can’t login. This greatly reduces or eliminates the value of having a non-corralatable identifier. Other IdP using PPID may be using it for privacy reasons and may have different constraints on correlation of their users. If we are going to extend openID 2.0 we need to consider the needs of all of the OP not just one. Even at Google there is a significant issue that needs to be considered. On the face of it you could set up a mapping service that would take any google generated PPID identifier and translate it into the identifier that would be used at a different domain, (possible because the ID is encrypted not hashed as I understand it) however that would violate existing understandings Google has with RP who are counting on the identifiers being non-correlatable. Part of the US FICAM profile that google is certified under requires that if the RP asks for a PPID identifier the OP must return one even if the identifiers normally used by the OP are correlatable. (The requirement is based on a federal law that prevents correlation across agencies.) Because Google elected to use the existing PPID identifiers for this, you no longer have the option to just make all of them correlatable. I agree with Breno that both problems need to be addressed, however I remain to be convinced that there is a simple solution that addresses both use cases adequately. I am happy to work on this to create a solution for openID 2.0 and/or OIC. Regards John B. On 2010-07-09, at 6:57 AM, Ben Laurie wrote:
http:識別子とhttps:識別子はPPID形式の識別子のマッピングとしては同じとして扱うかどうか?プライバシが関係なくてユーザーの直接の関与が必要なければマッピングがパブリックに行なわれていいじゃないか。Googleはユーザーに対してメールアドレスを任意のサイトにディスクローズすることを強制している。同意しないとログインできません。これは非相互関連識別子を持つ、という価値を損ねている。US FICAMではもしもRPがPPID識別子を求めたらOPは返す必要がある。これは連邦法により、エージェンシー間で相互関連を持たせない為に定められている。
Having worked with both the OpenID and IETF IPR process, here is my summary of how they work: In the OpenID process, all participants in a WG must agree to not assert any patents against an implementation. This motivates the WG to be inclusive of any entity that may have patents in the area. In the IETF process, all participants must declare any patents they are aware of. This does not provide any rights to the patents, but does alert anyone implementing that there are patents. The other way for participants to deal with patents in the IETF is to state they have patents (they do not need to identify them) and issue a non-assert. This is typically what participants from large patent portfolios do in order to participate, and is equivalent to the OpenID process. — Dick
OpenID IPRプロセス:WGのすべての参加者は実装に関してパテントの主張をしないことに同意する必要がある。この分野にパテントを持っているすべての参加者がそうする必要がある。
IETFプロセス:認識しているパテントをすべての参加者は宣言する必要がある。パテントの権利を提供する物ではないが、パテントがあるところに関して実装をする人に対して警告する。
別の方法は、パテントを持っている事を述べて(識別する必要はない)、主張しない事を公布する。OpenIDプロセスに近い。
全国民に識別番号を割り当てることで、行政サービスの品質と効率の向上を目指す「国民ID」制度。7月11日投票の参議院議員選挙の争点に浮上した消費税率引き上げでも、国民ID制度は、その実現のための重要基盤に位置づけられている。低所得者ほど税負担率が高まる“逆進性”を緩和する「給付付き税額控除」を導入するには、所得の正確な把握のために個人識別番号が不可欠だからである。
うーむ。。。。。
The charter was approved. The next step is for people to get there IPR agreements in and start the work. I don’t know if David has his in yet. People who work for large companies may take some time to get approval. Regards John B.
OpenID Connect WGの設立は承認されていて、関係者の知的財産権に関する合意をするのみ。
Posted via email from TECHNODELIC | Comment »
> Let me restate where Breno and I differ as I see it. > > Breno contends that mapping from http: identifiers to https: identifiers is the same as mapping between PPID type identifiers given to different realms. > > We agree that the http: to https: mapping can be done publicly and has no privacy implications, and requires no direct involvement of the user. > > Where we differ is that I contend mapping between PPID may have privacy implications that need to be considered, and perhaps taken into account in the technical solution. Indeed, and I agree with you. Is there any reason to use PPIDs other than for privacy?
PPIDがプライバシー自体に意味あるのか?という質問。
Posted via email from TECHNODELIC | Comment »
10. Simple Public Key Infrastructure
This section defines a public key infrastructure based on URI discovery, as defined in [ref LRDD]. Specifically, given a URI such as “acct:bob@example.com” or “http://example.com/bob”, the corresponding public key(s) for that identifier can be found via Webfinger/LRDD discovery for links of type rel=”magic-public-key”. This specification defines a new MIME type for simple RSA public key(pairs).
TOC 10.1. The application/magic-key MIME type
The application/magic-key format is a very minimal format for representing public key data. It consists of a string of ASCII text, separated into 3 components, with components separated by a “.” (0x2E) character. The first component is the key type; this specification only defines the “RSA” key type for future upgradeability. Thus a magic key consists of the string “RSA.modulus(n).exponent(e)” The pair (n, e) is used as input to RSASSA-PKCS1-V1_5-VERIFY.
Each of the components is first represented as an integer in network byte order (big endian) and encoded via the “base64url” mechanism described in Section 3.1 (Magic Envelope Parameters).
TOC 10.2. Discovery
This section defines how to map from a URI based identifier to a public signing key for that identifier. Though the exact mechanism for a verifier to determine the identifier of the signer is outside the scope of this specification, the identifier MUST appear within the “data” parameter and therefore be covered by the signature, and the public key ultimately discovered using the identifier MUST hash to the “keyhash” parameter associated with the signature. (Note that the latter requirement is is for efficiency rather than security.) Many existing formats contain authorship or sender fields and these SHOULD be used or extended. Specifications which rely on this one for digital signatures MUST specify a format-dependent model for determining potential signer URIs given the signed data. This specification describes the subsequent step: How to take a general URI and map it to a public signing key.
Given an identifier such as acct:bob@example.com or http://example.org/, first perform discovery per Webfinger/LRDD (Eran, E., “LRDD: Link-based Resource Descriptor Discovery,” .) [LRDD]. Once an XRD for the identifier is located, retrieve the href value(s) for all links with rel=”magic-public-key”. Each identified resource is a valid public signing key.
Note that the data: URI scheme MAY be used, so that a public key can be embedded completely within an XRD file (and covered by its security). Alternatively the key can be stored elsewhere and retrieved via a secure connection.
Among the keys found, select the key to use for verification by using the one whose SHA-256 hash matches the “keyhash” parameter of the signature being processed. Note that it is possible for one signature to be verified but others to fail, and for only one of several potential signers to actually have a verified signature. Specifications which rely on this one MUST specify the semantics in these cases.
Example: href=”data:application/magic-public-key,RSA.mVgY8RN6URBTstndvmUUPb4UZTdwvwmddSKE5z_jvKUEK6yk1u3rrC9yN8k6FilGj9K0eeUPe2hf4Pj-5CmHww.AQAB”
Posted via email from 原宿工業大学 | Comment »
9. Verifying Messages
Verifying a message signature consists of verifying that “sig” is a valid signature for “data” using “alg”. This specification defines only the “RSA-SHA256” verification algorithm, meaning the RSASSA-PKCS1-v1_5 verification algorithm from RFC 3447 (Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1,” February 2003.) [RFC3447] section 8.2.1.
The verification is performed by executing RSASSA-PKCS1-V1_5-VERIFY ((n, e), M, S), where (n ,e) comprise the public key, M is the message string documented in Section 8 (Signing Messages), and S is the decoded value of a selected “sig”. (Note that this algorithm creates the emsa byte sequence as in Section 8 (Signing Messages) and then performing RSA verification using (n, e), emsa, and S.)
The scope of the verification covers only the contents of the Magic Envelope itself. In some cases, e.g., when using envelope data as provenance for enclosing data, the decoded “data” value must be checked against or override the enclosing data. A secure if lossy mechanism is to throw away the enclosing information and replace it with the output of the decoded “data”. Another altnernative is to compare trees, override with signed information where there are conflicts, and annotate signed parts. The correct mechanism depends on the security model required by the processor and is outside the scope of this specification.
The public key (n, e) is obtained using the simple public key infrastructure described by Section 10 (Simple Public Key Infrastructure).
Posted via email from 原宿工業大学 | Comment »
8. Signing Messages
Signing a message consists of signing the contents of “data” using the “alg”. This specification defines only the “RSA-SHA256” algorithm, meaning the RSASSA-PKCS1-v1_5 signature algorithm from RFC 3447 (Jonsson, J. and B. Kaliski, “Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1,” February 2003.) [RFC3447] section 8.2, also known as PKCS#1, using SHA-256 as the hash function for EMSA-PKCS1-v1_5.
The signature is computed as signature_octets = RSASSA-PKCS1-V1_5-SIGN (K, M), where K is the private signing key and M is the message string given below.
M is produced by concatenating the following substrings together, separated by periods (ASCII 0x2E):
- The armored string for “data” produced by Section 7.1 (Encoding)
- The Base64url encoding of the “data_type” parameter
- The Base64url encoding of the “encoding” parameter
- The Base64url encoding of the “alg” parameter
For example, if the armored data is “Tm90IHJlYWxseSBBdG9t” with MIME type application/atom+xml, then m would be the string: “Tm90IHJlYWxseSBBdG9t.YXBwbGljYXRpb24vYXRvbSt4bWw=.YmFzZTY0dXJs.UlNBLVNIQTI1Ng==”
For convenience we summarize the steps for the required EMSA-PKCS1-v1_5 with RSA-SHA256 algorithm here. In the following, ‘+’ means string concatenation.
- Let hash = the SHA256 hash digest of M
- Let prefix = the constant byte sequence [NOTE1] (JP: The octets are Elvish, of an ancient mode, but the language is that of ASN.1, which I will not utter here. But this in the Common Tongue is what is said, close enough:) [0x30, 0x31, 0x30, 0xd, 0x6, 0x9, 0x60, 0x86, 0x48, 0x1, 0x65, 0x3, 0x4, 0x2, 0x1, 0x5, 0x0, 0x4, 0x20]
- Let k = the number of bytes in the public key modulus
- Let padding = ‘\xFF’ repeated (k - length(prefix+hash) - 3) times
- Let emsa = ‘\x00’ + ‘\x01’ + padding + ‘\x00’ + prefix + hash
- RSA sign the emsa byte sequence
The signature is then encoded as in Section 7.1 (Encoding) and the resulting ASCII armored string stored as a “sig” signature. The associated “keyhash” is the base64url encoded respresentation of the SHA-256 hash of public key’s application/magic-key representation.
Posted via email from 原宿工業大学 | Comment »
How OpenID/AB Works : n>3 Parties Model
In general, OP is not the only Data Server for the person. It is likely to be spread all over. This is the n>3 Parties Model.
Returning access method (OAuth, CX Data Service… ) and security token seems to be better to claim attributes bound to the returning assertion.
